Help us improve
Share bugs, ideas, or general feedback.
From runesmith-sprint
Show the active sprint board state plus any open comms summary. Auto-fires a session-init comm if the active sprint changed since last cache. Use when the user says "sprint status", "what's in the sprint", "where are we in the sprint", "show me the sprint", "sprint update", "any blockers in the sprint".
npx claudepluginhub runemarklabs/runesmith --plugin runesmith-sprintHow this skill is triggered — by the user, by Claude, or both
Slash command
/runesmith-sprint:sprint-statushaikuThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Read-only sprint summary plus comms triage hint. Atlassian-enabled only - replaces `project-status` for this config.
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-only sprint summary plus comms triage hint. Atlassian-enabled only - replaces project-status for this config.
If the active sprint id from Jira differs from the cached activeSprintId in the marker, this skill implicitly fires a session-init comm (per start-sprint) before reporting. That keeps CC in sync without requiring the user to remember.
lib/atlassian-rest.md - search/sprint endpointslib/comms-check.md - runs firstlib/atlassian-enabled.mdlib/sprint-handshake.mdlib/jira-tags.mdlib/user-prompts.md - structured-input requirement for any user promptThis 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".
Surface any to: user items immediately.
If not, route the user to /atlassian:enable or /atlassian:project-status (the existing read-only skill that works in any config).
Cowork-side .credentials for Jira read.
GET {SITE_URL}/rest/agile/1.0/board/{BOARD_ID}/sprint?state=active
Pick first active sprint (or surface multi-active for user pick if rare).
Compare new sprint id to cached atlassian.activeSprintId in marker.
If different (or null):
start-sprint workflow: write session-init comm, archive any superseded one, update marker.If same: no comm action.
POST {SITE_URL}/rest/api/3/search/jql
{
"jql": "sprint = {SPRINT_ID} ORDER BY status ASC, updated DESC",
"fields": ["summary", "status", "assignee", "priority", "labels", "updated"],
"maxResults": 100
}
Bucket tickets by status.name. Highlight tickets carrying tags from jira-tags.md:
cc-blocked - surface separately as Blockerscc-done - pending transitionneeds-user - pending user actioncowork-planned - Cowork-spawned this sprintRead {PROJECT}.cc/comms/open/. Count by to::
to: userto: coworkto: ccSprint {SPRINT_ID} - {SPRINT_NAME} (board {BOARD_ID})
By status
In Progress (n)
{KEY-1} {summary} {assignee} {tags}
...
To Do (n)
...
Done (n)
...
Blockers ({cc-blocked count})
{KEY-3} {summary} ← cc-blocked, needs-user
CC done, pending transition ({cc-done count})
{KEY-7} {summary}
Comms ({PROJECT}.cc/comms/open/)
{n} to user - run /atlassian:check-comms
{n} to cowork
{n} to cc
Board: {SITE_URL}/jira/software/projects/{JIRA_PROJECT_KEY}/boards/{BOARD_ID}
If a session-init was fired in step 2, prepend:
ℹ Active sprint changed → wrote session-init comm.
CC will ack via comms on next session start.
/search/jql POST (not deprecated GET /search)No active sprint: "No active sprint on board {BOARD_ID}. Use Jira UI to start one or run /atlassian:start-sprint to pick a future sprint."
Sprint has 0 tickets: Note "Sprint empty. Run /atlassian:plan-to-tickets to populate from a plan."
API 401 on sprint endpoint: Re-read .credentials, retry once, then suggest /core:setup.
Multiple active sprints: List them; ask user to pick which is "the" one for purposes of the marker.