Files
sentryagent-idp/.claude/skills/openspec-project-status/SKILL.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.2 KiB

name, description, license, compatibility, metadata
name description license compatibility metadata
openspec-project-status Show a human-readable summary of all OpenSpec changes — active, archived, artifact completion, and task progress. Use when the user wants to see the current state of the project's OpenSpec changes. MIT Requires openspec CLI.
author version generatedBy
sentryagent 1.0 1.2.0

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.

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 phase label>

  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

---

### Summary

  Active changes:    <N>
  Ready to apply:    <N>
  In progress:       <N>
  Complete:          <N>
  Archived:          <N>

Phase inference rules (derive strictly from actual 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!

Artifact status icons:

  • — done
  • — pending / not started

Output: No active changes

## OpenSpec Project Status

### Active Changes (0)

  No active changes. Start one with /opsx:propose

---

### Archived Changes (<count>)

  ...

### 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 tasks.md 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