Status
A governance layer for AI-assisted software delivery. Plan, scope, approve, build, test, release — with human sign-off at every gate.
npx -y skills add lantisprime/claude-sdlc --skill statusAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use this skill when the user asks "where am I", "what's the current task", "what's blocking me", "show status", "what needs sign-off", or "what's next". Prints a snapshot of the active plan, gate, sign-off progress, and next action. Reads only — writes nothing.
SKILL.md
6.9 KB, as published. Nobody here has run it
Status
Print the current task state so the human knows exactly where they are and what's next — without reading four directories themselves.
What this skill reads
.claude/sdlc/plans/— active plan and whether it has a signed gate.claude/sdlc/gates/— active gate, which phase it covers, whether it is signed.claude/sdlc/sign-offs/— which sign-off files have landed (if any)
This skill writes nothing. It never modifies any artifact.
Step 1 — Identify the active plan
Scan .claude/sdlc/plans/*.md, excluding versioned files (*.v1.md, *.v2.md, etc. — any file matching *.v[0-9]*.md). Versioned files are superseded archives; the active plan is always the unversioned <slug>.md file.
If the directory is absent or no non-versioned files exist, print:
No active task found.
Next: run /start or /plan to begin a task.
and stop.
If multiple non-versioned plan files exist, use the most recently modified one.
Step 2 — Identify the active gate
Scan .claude/sdlc/gates/*.md. Gate filenames follow the pattern <phase>-<task-slug>.md.
Map phase names to order: plan=1, analyze=2, design=3, build=4, test=5, deploy=6, support=7. Select the gate with the highest phase number. Break ties by taking the most recently modified file.
A gate is signed if its content contains a non-empty Signed at: field. A gate is unsigned if that field is absent, blank, or holds a placeholder.
If no gates exist yet, the active gate is "none" — the plan has been drafted but not yet signed.
Step 3 — Determine sign-off state
Sign-off rendering applies only when all three conditions hold:
- An active, signed gate exists.
- That gate contains a
## Required sign-offsblock (a markdown list of role names). .claude/sdlc/sign-offs/exists as a directory.
If any condition is unmet, skip the sign-off line entirely.
Extract required roles — parse the ## Required sign-offs block as a markdown bullet list. Each item is a role name (e.g. security, product, compliance).
Extract REQ-ID — find the first REQ-\d+ token in the gate file's Work-item reference: field (e.g. Work-item reference: https://…/REQ-042 or no ticket REQ-042). If no token is found, skip the sign-off line and append to the Next line:
(add a REQ-ID to Work-item reference to enable sign-off tracking)
Check presence — for each required role, check whether .claude/sdlc/sign-offs/<REQ-ID>-<role>.md exists. Ignore .queue/ sidecars; they are transport state, not filed sign-offs.
Step 4 — Render
Print the status block. Omit any line whose data is unavailable.
Plan: <task-slug> (<signed | unsigned>)
Gate: <phase>-<task-slug> (<signed | unsigned — awaiting sign-offs | none>)
Sign-offs: <role> ✓ | <role> ✓ | <role> □
Next: <one-line action>
Next line content by state:
| State | Next line |
|---|---|
| No plan | run /start or /plan to begin a task |
| Plan exists, no gate | run /<current-phase-command> to produce the gate artifact |
| Gate unsigned, no sign-offs block | sign the gate in .claude/sdlc/gates/<gate-file>.md |
| Gate unsigned, sign-offs pending | await <missing-roles> sign-off, or /help sign-offs for the file format |
| Gate signed, all sign-offs present | advance to the next phase — run /<next-phase-command> |
| Gate signed, no sign-offs block | advance to the next phase — run /<next-phase-command> |
Use the phase order (plan→analyze→design→build→test→deploy→support) to determine current and next phase commands.
Step 5 — Graceful degradation
| Missing resource | Behavior |
|---|---|
.claude/sdlc/plans/ absent or empty | Print "No active task found." and stop |
.claude/sdlc/gates/ absent or empty | Omit Gate and Sign-offs lines; Next = produce gate |
.claude/sdlc/sign-offs/ absent | Omit Sign-offs line silently |
## Required sign-offs absent from gate | Omit Sign-offs line silently |
No REQ-\d+ in Work-item reference | Omit Sign-offs line; append note to Next line |
Never error out. If a directory or file is unreadable, omit the corresponding line and continue.
Example output
Single-signer, gate unsigned:
Plan: auth-refresh (signed)
Gate: design-auth-refresh (unsigned)
Next: sign the gate in .claude/sdlc/gates/design-auth-refresh.md
Multi-team, sign-offs pending:
Plan: auth-refresh (signed)
Gate: design-auth-refresh (signed)
Sign-offs: security ✓ | product ✓ | compliance □
Next: await compliance sign-off, or /help sign-offs for the file format
All clear:
Plan: auth-refresh (signed)
Gate: design-auth-refresh (signed)
Sign-offs: security ✓ | product ✓ | compliance ✓
Next: advance to build — run /build
No task in flight:
No active task found.
Next: run /start or /plan to begin a task
References
docs/rfcs/multi-team-approval.md§3.1–3.2 — sign-off file contract and gate-file## Required sign-offsblocktemplates/gate.md— gate file shape this skill readshooks/approval-reconcile.sh— the hook that enforces sign-off presence at phase-advance time
Next step hint
After printing the status snapshot, pipe the next_suggestions conditions to skills/_shared/next-hint.sh and print any output:
printf '%s\n' \
'no_active_work|run /start to begin a new task, or /plan if you already know what to build' \
'pending_signoff_for_current_user|write your sign-off at sign-offs/<REQ-ID>-<role>.md' \
'plan_drafted_and_unsigned|sign the plan gate to unlock /analyze' \
'phase_active_gate_unsigned|continue with the active phase commands, or sign the gate when ready' \
'analyze_gate_signed|run /design' \
'design_gate_signed|run /build' \
'build_gate_signed|run /test' \
'test_gate_signed|run /deploy' \
'deploy_gate_signed|run /support, then /docs' \
| bash skills/_shared/next-hint.sh
Print any output verbatim. If the script outputs nothing, add nothing.