skills/comms/SKILL.md
Manage inter-team communication, issues, and coordination
npx skillsauth add petcom/ai_team_config commsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Manage inter-team communication, issues, and coordination.
/comms [action] [options]
Determine your team identity before any action:
./team.json for team paths (inbox, issues_queue, issues_active, etc.)from_header, issue_prefix).
If sub-role not yet established this session, prompt the user to select one from team.json allowed_sub_roles.ai_team_config/roles/{sub-role}.yaml for role-specific fields (function, issue_prefix, comms.from_header)team_id from team.json to resolve paths (inbox, issues, status)Path variables used below:
{my_inbox} — dev_communication/{my_team}/inbox/{my_issues} — dev_communication/{my_team}/issues/{other_inbox} — dev_communication/{other_team}/inbox/{my_status} — dev_communication/{my_team}/status.mdQA gate references:
ai_team_config/teams/checklists/qa-gate.yamlai_team_config/scripts/qa_poll_cycle.shShared contract DTOs live in dev_communication/shared/contracts/. These are the canonical source of truth for all API request/response shapes between teams.
Rules:
Record<string, unknown>, any, or unknown to reshape them./comms send). Describe what is needed, what the contract currently provides, and which endpoint is affected. Reference the contract file. This is the entire purpose of /comms — surface mismatches, don't hide them./comms send. Backend updates the contract and the implementation. Frontend then consumes the updated DTO directly.Prohibited patterns:
order → sequence in a transform layer)in_progress → in-progress in a mapping function)dataSource from playerType instead of reading it from the response)?? 'quiz', ?? 'in-progress')Reference: ADR-DEV-004-CONSUME-CONTRACTS-DIRECTLY-NO-NORMALIZERS
Based on the user's request or argument, perform one of these actions:
Header normalization for new messages:
From/To: Backend-Dev, Backend-QA, Frontend-Dev, Frontend-QA.API Team or UI Team in newly authored messages.Check inbox, pending issues, and team status.
Trigger: /comms, /comms check, "check messages", "any updates?"
Steps:
{my_inbox}{my_issues}/queue/{my_issues}/active/Project policy:
dev_communication/backend/* unless the user explicitly asks for cross-team scope.QA polling policy:
*-qa roles, check must include detection of items marked Development Complete or Awaiting QA.ai_team_config/scripts/qa_poll_cycle.sh --watch --interval 240ai_team_config/scripts/qa_poll_cycle.sh --onceai_team_config/scripts/qa_poll_cycle.sh --once --manual-ok --approveOutput format:
## Comms Status
### {My Team} Inbox
- [filename] - [first line/subject]
- (or "No pending messages")
### {My Team} Issue Queue
- [ISS-xxx] - [title]
- (or "No pending issues")
### {My Team} Active Issues
- [ISS-xxx] - [title] - [status]
- (or "No active issues")
Send a message to another team.
Trigger: /comms send, "send message to {team}", "notify {team} team"
Steps:
dev_communication/templates/YYYY-MM-DD_{subject_slug}.md{other_inbox}If responding to a message:
In-Response-To: fieldarchive/Create a new issue.
Trigger: /comms issue, "create issue", "new issue"
Steps:
{my_issues} across queue/active/completed to determine next issue numberdev_communication/templates/issue-template.md{ISSUE_PREFIX}-{NNN}_{title_slug}.md{my_issues}/queue/Status: QUEUE in issue metadataFor cross-team issues:
Related: fieldUpdate team status.
Trigger: /comms status, "update status", "set focus"
Steps:
{my_status}Move an issue through lifecycle.
Trigger: /comms move ISS-xxx, "move issue to active", "complete ISS-xxx"
Steps:
queue -> Status: QUEUE and path issues/queue/active -> Status: ACTIVE and path issues/active/completed -> Status: COMPLETE and path issues/completed/Completion ownership (mandatory):
completed/.queue/ to active/ only.active/ until QA independently verifies and moves them.completed/, reject the action and remind them that QA owns this step.QA completion gate (mandatory):
completed/, QA must verify checklist requirements in ai_team_config/teams/checklists/qa-gate.yaml:
active/, append QA findings, and send unblock criteria to dev.Archive completed message threads.
Trigger: /comms archive, "archive messages"
Steps:
{my_inbox} and {other_inbox}dev_communication/archive/YYYY-MM-DD_{thread_subject}/dev_communication/
├── {team}/
│ ├── inbox/ # Team inbox (messages from other teams)
│ └── issues/
│ ├── queue/ # Pending issues
│ ├── active/ # In-progress issues
│ └── completed/ # Completed issues
├── shared/
│ ├── architecture/ # ADRs, gaps, suggestions
│ ├── guidance/ # Development principles, role guidance
│ ├── plans/ # Shared plans
│ ├── specs/ # Feature specs
│ └── contracts/ # Shared contract DTOs (source of truth for API shapes)
│ └── types/ # TypeScript DTO definitions — backend defines, frontend consumes
├── templates/ # Message and issue templates
└── archive/ # Archived message threads
After completing work, suggest:
/comms send)"/comms move)"/comms issue)"When encountering a mismatch between backend response and frontend expectations:
/comms send)" — ALWAYS do this instead of writing a normalizer or transform.tools
Load relevant ADRs, patterns, and memory before implementation
testing
Manage architecture decisions, gaps, and suggestions
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------