- 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>
161 lines
4.3 KiB
Markdown
161 lines
4.3 KiB
Markdown
---
|
|
name: "OpenSpec Project Status"
|
|
description: Show a human-readable summary of all OpenSpec changes — active, archived, artifact completion, and task progress
|
|
category: Workflow
|
|
tags: [workflow, status, openspec, reporting]
|
|
---
|
|
|
|
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**
|
|
|
|
1. **Get all changes**
|
|
|
|
Run:
|
|
```bash
|
|
openspec list --json
|
|
```
|
|
|
|
Separate 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).
|
|
|
|
2. **For each active change, gather full status**
|
|
|
|
Run in parallel for all active changes:
|
|
```bash
|
|
openspec status --change "<name>" --json
|
|
```
|
|
|
|
Also read each change's `tasks.md` to 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.
|
|
|
|
3. **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>`).
|
|
|
|
4. **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 done
|
|
- `Designing` — proposal done, design not done
|
|
- `Speccing` — design done, tasks artifact not done
|
|
- `Ready to Implement` — all artifacts done, 0 tasks complete
|
|
- `In Progress` — all artifacts done, some tasks complete but not all
|
|
- `Complete` — 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.md` file does not exist for a change, show `No tasks file` instead 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 status` fails for a specific change, show that change with `Status unavailable` and continue
|