Files
sentryagent-idp/.claude/commands/openspec-project-status.md
SentryAgent.ai Developer dceefebf18 chore(config): add PRD.md and .claude/ project config to repository
- 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>
2026-04-07 08:43:04 +00:00

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
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:

    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:

    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