- PRD.md: Product Requirements Document (single source of truth for all requirements) - .claude/settings.local.json: Claude Code agent permission config - .claude/commands/: project-specific slash commands - .claude/skills/: project-specific skill definitions Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4.3 KiB
name, description, category, tags
| name | description | category | tags | ||||
|---|---|---|---|---|---|---|---|
| OpenSpec Project Status | Show a human-readable summary of all OpenSpec changes — active, archived, artifact completion, and task progress | Workflow |
|
Show the full OpenSpec project status in a clear, human-readable format. No raw JSON — just a clean picture of where the project stands.
Input: No arguments required. Run /openspec-project-status at any time.
Steps
-
Get all changes
Run:
openspec list --jsonSeparate results into:
- Active changes (not in
archive/) - Archived changes (in
archive/)
If the command fails or no changes exist, display a friendly empty state (see Output section).
- Active changes (not in
-
For each active change, gather full status
Run in parallel for all active changes:
openspec status --change "<name>" --jsonAlso read each change's
tasks.mdto extract:- Total task count
- Completed tasks (
- [x]) - Pending tasks (
- [ ]) - Text of the next pending task (first
- [ ]item)
Also check for delta specs at
openspec/changes/<name>/specs/— note if present. -
For archived changes
List them by archive date (newest first). No need to read full status — just show name and archive date from the folder name (
YYYY-MM-DD-<name>). -
Render the human-readable status report
Use the output format defined below.
Output Format
## OpenSpec Project Status
### Active Changes (<count>)
────────────────────────────────────────
<change-name>
────────────────────────────────────────
Schema: <schema-name>
Phase: <inferred from artifact state: Proposing | Designing | Ready to Implement | In Progress | Complete>
Artifacts
✓ proposal done
✓ design done
◌ tasks pending
Tasks <done>/<total> complete
████████░░░░░░░░ 50%
Next: "<text of next pending task>"
Delta Specs <present / none>
────────────────────────────────────────
<Repeat for each active change>
---
### Archived Changes (<count>)
2026-03-20 add-initial-auth
2026-03-15 setup-ci-pipeline
2026-03-10 scaffold-project
---
### Summary
Active changes: <N>
Ready to apply: <N> (all artifacts done, tasks pending)
In progress: <N> (tasks partially complete)
Complete: <N> (all tasks done, not yet archived)
Archived: <N>
Phase inference rules (from artifact + task state):
Proposing— proposal artifact is not doneDesigning— proposal done, design not doneSpeccing— design done, tasks artifact not doneReady to Implement— all artifacts done, 0 tasks completeIn Progress— all artifacts done, some tasks complete but not allComplete— all artifacts done, all tasks complete (not yet archived)
Progress bar rules:
- 16 chars wide:
█per completed segment,░for remaining - Show percentage after bar
- If 0 tasks: show
No tasks yet - If all tasks done: show
████████████████ 100% All done!
Output: No active changes
## OpenSpec Project Status
### Active Changes (0)
No active changes. Start one with /opsx:propose
---
### Archived Changes (<count>)
2026-03-20 add-initial-auth
...
---
### Summary
Active changes: 0
Archived: <N>
Output: OpenSpec CLI unavailable
## OpenSpec Project Status
OpenSpec CLI not available. Cannot read change data.
Make sure `openspec` is installed and accessible in your PATH.
Guardrails
- Never show raw JSON — always translate to human-readable output
- Never guess artifact or task state — always read from actual files and CLI output
- If a
tasks.mdfile does not exist for a change, showNo tasks fileinstead of 0/0 - Archived changes are display-only — never modify them
- Phase labels must be inferred strictly from actual artifact + task state, not assumed
- If
openspec statusfails for a specific change, show that change withStatus unavailableand continue