Help us improve
Share bugs, ideas, or general feedback.
From runesmith-sprint
Triage open comms in {PROJECT}.cc/comms/open/ - surface to-user items, draft replies, archive resolved pairs. Use when the user says "check comms", "any messages from CC", "what does CC need", "check messages", "is CC blocked", "triage comms", or wants to clear out CC's open comms.
npx claudepluginhub runemarklabs/runesmith --plugin runesmith-sprintHow this skill is triggered — by the user, by Claude, or both
Slash command
/runesmith-sprint:check-commsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Read every `*.md` in `{PROJECT}.cc/comms/open/`. Surface `to: user` items first. Let user reply or defer. Resolve pairs and move to archive.
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
Read every *.md in {PROJECT}.cc/comms/open/. Surface to: user items first. Let user reply or defer. Resolve pairs and move to archive.
Works in both base config and atlassian-enabled config. In atlassian config, comms may carry ticket: <KEY> and type: ticket-transition - this skill executes the Jira mutation when that's the request, via the workspace's MCP-connected Atlassian tools.
agents/comms-triager.md - subagent for per-comm parsing and action
lib/comms-protocol.md - file format and lifecycle
lib/comms-check.md - same-named lib doc, but DIFFERENT thing (lib is the on-entry helper; this is the standalone triage skill)
lib/atlassian-enabled.md
lib/jira-tags.md - tags to add/remove on resolution
lib/user-prompts.md - structured-input requirement for any user prompt
This skill follows the marketplace-wide user-prompt standard in lib/user-prompts.md. Every user prompt MUST use the host client's structured input UI (single-pick, multi-pick, or text-input form). Never freeform plain-text yes/no questions. The only exception is the consent-trigger gate documented in lib/consent.md, which waits for user-initiated phrases like "make the ticket".
Find {PROJECT}.cc/comms/open/. If missing or empty: report and exit clean.
Read marker. Used to decide whether to handle type: ticket-transition items inline.
Use for:
Do not use for:
Read every *.md in comms/open/. Parse frontmatter. Group by to::
to: user (highest priority)to: coworkto: cc (informational; user can't act on these)For each to: user comm:
[from cc, type: blocker] <slug>
ticket: PROJ-42 (if atlassian-enabled)
created: <ISO>
body: <first 5 lines>
What do you want to do?
[r]eply - write an answer comm
[d]efer - leave open, move on
[s]how - print full comm
On [r]eply: prompt user for answer text. Write a new comm in open/ with from: user, to: cc, parent: <id>, type: answer. Flip the original's status: resolved (in-place edit). On next iteration, both will archive.
On [d]efer: skip.
On [s]how: print full body, return to action prompt.
For each to: cowork comm:
CC asked Cowork to transition a Jira ticket. Body specifies ticket: <KEY> and target state.
Show user:
[from cc, type: ticket-transition] <KEY>: <summary>
Target state: <state>
Surface a structured single-pick prompt: question "Approve transition?", options "Approve" / "Deny" / "Show details first".
On approve:
GET {SITE_URL}/rest/api/3/issue/{KEY}/transitions.from: cowork, to: cc, type: answer, parent: <id>, status: resolved. Add cowork-transition label to the ticket. Remove cc-done label per jira-tags.md.On deny: write reply with reason. Don't archive yet - let user re-engage later.
CC is asking Cowork directly (e.g., "what's the convention for X?"). Show user, prompt for guidance, write reply on user's behalf.
For to: cc comms (Cowork → CC, awaiting CC pickup):
[from cowork, type: task] <slug>
status: open since <ISO>
CC will pick this up on next session.
[c]ancel an outgoing task if it shouldn't be there.For every comm pair where both files have status: resolved:
<slug> (from filename or frontmatter slug field).comms/archive/<YYYY-MM>/<slug>/.✓ Comms triaged
Surfaced to user: n
Handled (replied/transitioned): m
Archived: k pairs
Still open: x
Open comms by audience:
to user: {n}
to cowork: {n}
to cc: {n}
jira-tags.md on transitionMalformed frontmatter: Surface filename + parse error; ask user - fix manually, delete (with consent), or skip.
Transition fails (Jira 400/403): Show error; reply comm captures the failure; ticket stays in current state. User can retry after fixing the cause.
Comms folder doesn't exist: Either CC head doesn't exist (suggest /devtools:bootstrap-cc) or user is in the wrong workspace.
User wants to bulk-defer: Provide a [d]efer all shortcut that skips through.
Comm references a ticket the user can't access: Surface the auth error; user fixes Jira permissions; retry.