Agent Skills: status

Display current FIRE project status and validate integrity of intents, work items, and runs.

UncategorizedID: fabriqaai/specs.md/status

Install this agent skill to your local

pnpm dlx add-skill https://github.com/fabriqaai/specs.md/tree/HEAD/src/flows/fire/agents/orchestrator/skills/status

Skill Files

Browse the full folder contents for status.

Download Skill

Loading file tree…

src/flows/fire/agents/orchestrator/skills/status/SKILL.md

Skill Metadata

Name
status
Description
Display current FIRE project status and validate integrity of intents, work items, and runs.
<objective> Display current FIRE project status and validate integrity across state.yaml and file system. Detect inconsistencies and offer interactive resolution. </objective> <triggers> - User runs `/specsmd-fire status` - User asks "what's the status?" - User asks to "check" or "validate" the project state </triggers>

<degrees_of_freedom> LOW — Report facts accurately. Never auto-fix without user confirmation. </degrees_of_freedom>

<llm critical="true"> <mandate>NEVER auto-fix inconsistencies — ALWAYS ask user first</mandate> <mandate>ALWAYS scan file system — state.yaml may be incomplete</mandate> <mandate>Report ALL findings before offering fixes</mandate> <mandate>state.yaml is source of truth for status — frontmatter may be stale</mandate> </llm> <flow> <step n="1" title="Read State"> <action>Read .specs-fire/state.yaml</action> <check if="state.yaml not found"> <output>No FIRE project found. Run `/specsmd-fire` to initialize.</output> <exit/> </check> </step> <step n="2" title="Display Status"> <output> # FIRE Status
  **Project**: {project.name}
  **Workspace**: {workspace.type} / {workspace.structure}
  **Autonomy**: {workspace.autonomy_bias}
  **Version**: {project.fire_version}

  ## Intents

  {for each intent}
  ### {intent.title} [{intent.status}]

  | Work Item | Status | Complexity | Mode |
  |-----------|--------|------------|------|
  {for each work_item}
  | {title} | {status} | {complexity} | {mode} |
  {/for}

  {/for}

  ## Active Runs

  {if runs.active is array and has items}
  {for each active_run in runs.active}
  - **Run**: {active_run.id} | **Scope**: {active_run.scope}
  - **Current Item**: {active_run.current_item}
  - **Started**: {active_run.started}
  {/for}
  {else if active_run exists (legacy singular)}
  - **Run**: {active_run.id}
  - **Work Item**: {active_run.work_item}
  - **Started**: {active_run.started}
  {else}
  No active run.
  {/if}

  ## Quick Stats

  - Intents: {total_intents} ({completed_intents} completed)
  - Work Items: {total_work_items} ({completed_work_items} completed)
  - Runs: {total_runs} completed
</output>
</step> <!-- ═══════════════════════════════════════════════════════════════════════════ --> <!-- INTEGRITY VALIDATION (NEW) --> <!-- ═══════════════════════════════════════════════════════════════════════════ --> <step n="3" title="Scan File System"> <critical> File system may have artifacts not tracked in state.yaml. state.yaml may reference artifacts that no longer exist on disk. </critical>
<substep n="3a" title="Scan Intents">
  <action>Glob: .specs-fire/intents/*/brief.md</action>
  <action>Extract intent IDs from directory names</action>
  <action>Store as: intents_on_disk[]</action>
</substep>

<substep n="3b" title="Scan Work Items">
  <action>Glob: .specs-fire/intents/*/work-items/*.md</action>
  <action>Exclude design docs (*-design.md)</action>
  <action>Extract work item IDs and parent intents</action>
  <action>Store as: work_items_on_disk[]</action>
</substep>

<substep n="3c" title="Scan Runs">
  <action>Glob: .specs-fire/runs/run-*/run.md</action>
  <action>Extract run IDs from directory names</action>
  <action>For each run, check which artifacts exist:</action>
  <substep>plan.md, test-report.md, review-report.md, walkthrough.md</substep>
  <action>Store as: runs_on_disk[] with artifact_flags</action>
</substep>
</step> <step n="4" title="Compare File System vs State"> <substep n="4a" title="Find Orphaned Artifacts (on disk but not in state)"> <action>Compare intents_on_disk with state.intents</action> <action>Compare work_items_on_disk with state work_items</action> <action>Compare runs_on_disk with state.runs.completed + state.runs.active</action>
  <check if="intent on disk but not in state">
    <add_issue type="orphaned_intent" severity="warning">
      Intent '{id}' exists on disk but not tracked in state.yaml
    </add_issue>
  </check>

  <check if="work item on disk but not in state">
    <add_issue type="orphaned_work_item" severity="warning">
      Work item '{id}' exists on disk but not tracked in state.yaml
    </add_issue>
  </check>

  <check if="run folder on disk but not in state">
    <add_issue type="orphaned_run" severity="warning">
      Run '{id}' exists on disk but not tracked in state.yaml
    </add_issue>
  </check>
</substep>

<substep n="4b" title="Find Missing Files (in state but not on disk)">
  <check if="intent in state but no brief.md on disk">
    <add_issue type="missing_intent_file" severity="error">
      Intent '{id}' tracked but brief.md not found on disk
    </add_issue>
  </check>

  <check if="work item in state but no .md file on disk">
    <add_issue type="missing_work_item_file" severity="error">
      Work item '{id}' tracked but file not found on disk
    </add_issue>
  </check>

  <check if="completed run in state but no folder on disk">
    <add_issue type="missing_run_folder" severity="error">
      Run '{id}' marked complete but folder not found on disk
    </add_issue>
  </check>
</substep>
</step> <step n="5" title="Validate Status Cascade"> <critical> Status must cascade correctly: - Run completes work item → work item should be "completed" - All work items completed → intent should be "completed" - Any work item in_progress → intent should be "in_progress" </critical>
<substep n="5a" title="Work Item Status Check">
  <action>For each work item in state:</action>

  <check if="work item in runs.completed but status != completed">
    <add_issue type="status_mismatch" severity="error">
      Work item '{id}' was completed in run '{run_id}' but status is '{current_status}'
      Expected: completed
    </add_issue>
  </check>

  <check if="work item in runs.active as current_item but status != in_progress">
    <add_issue type="status_mismatch" severity="warning">
      Work item '{id}' is currently executing in run '{run_id}' but status is '{current_status}'
      Expected: in_progress
    </add_issue>
  </check>

  <check if="work item status is completed but not found in any completed run">
    <add_issue type="status_unverifiable" severity="warning" needs_code_check="true">
      Work item '{id}' marked as completed but no completed run found
      May have been done outside FIRE or run data is missing
    </add_issue>
  </check>
</substep>

<substep n="5b" title="Intent Status Check">
  <action>For each intent in state:</action>

  <derive_expected_status>
    IF any work_item.status == "in_progress":
      expected = "in_progress"
    ELSE IF all work_items.status == "completed":
      expected = "completed"
    ELSE IF all work_items.status == "pending":
      expected = "pending"
    ELSE: # mixed pending/completed
      expected = "in_progress"
  </derive_expected_status>

  <check if="intent.status != expected_status">
    <add_issue type="intent_status_mismatch" severity="error">
      Intent '{title}' has status '{current}' but should be '{expected}'
      Based on work item statuses: {breakdown}
    </add_issue>
  </check>
</substep>
</step> <step n="6" title="Validate Run Artifact Completeness"> <substep n="6a" title="Check Completed Runs"> <action>For each run in runs.completed (or runs_on_disk marked complete):</action>
  <required_artifacts>
    - run.md (mandatory)
    - plan.md (mandatory for all modes)
    - test-report.md (mandatory after tests)
    - walkthrough.md (mandatory after completion)
  </required_artifacts>

  <optional_artifacts>
    - review-report.md (created by code-review skill)
  </optional_artifacts>

  <check if="completed run missing required artifact">
    <add_issue type="incomplete_run_artifacts" severity="warning">
      Run '{id}' is marked complete but missing: {missing_artifacts}
    </add_issue>
  </check>
</substep>

<substep n="6b" title="Check Active Runs">
  <action>For each run in runs.active:</action>

  <check if="active run folder does not exist">
    <add_issue type="active_run_missing" severity="error">
      Active run '{id}' has no folder on disk
      Run may have been deleted or never initialized properly
    </add_issue>
  </check>

  <check if="active run has no run.md">
    <add_issue type="active_run_corrupted" severity="error">
      Active run '{id}' folder exists but run.md is missing
      Run initialization may have failed
    </add_issue>
  </check>
</substep>
</step> <step n="7" title="Detect Stale Runs"> <action>For each run in runs.active[]:</action> <action>Calculate age: now - run.started</action>
<check if="active run started more than 24 hours ago">
  <add_issue type="stale_run" severity="info" needs_user_decision="true">
    Active run '{id}' was started {age} ago
    Current item: {current_item}
    Artifacts present: {artifact_list}
    May be abandoned or work was done outside FIRE
  </add_issue>
</check>

<check if="active run has plan.md but no test-report.md and age > 1 hour">
  <add_issue type="interrupted_run" severity="warning" needs_user_decision="true">
    Run '{id}' appears interrupted mid-execution
    Has: plan.md
    Missing: test-report.md, walkthrough.md
    Execution may have been stopped before completion
  </add_issue>
</check>
</step> <step n="8" title="Check Frontmatter Sync"> <note>state.yaml is source of truth. Frontmatter may drift.</note>
<action>For each work item with status in state.yaml:</action>
<action>Read work item file, parse frontmatter</action>

<check if="frontmatter.status != state.yaml.status">
  <add_issue type="frontmatter_drift" severity="info">
    Work item '{id}' frontmatter says '{frontmatter_status}' but state.yaml says '{state_status}'
    state.yaml is authoritative
  </add_issue>
</check>
</step> <step n="9" title="Report Findings"> <check if="no issues found"> <output> ## ✅ Integrity Check Passed
    All artifacts are consistent:
    - {intent_count} intents tracked and verified
    - {work_item_count} work items with correct status
    - {run_count} runs with complete artifacts
    - No orphaned or missing files detected
  </output>
  <exit/>
</check>

<check if="issues found">
  <output>
    ## ⚠️ Integrity Issues Detected

    Found {issue_count} issue(s) requiring attention:

    | # | Type | Location | Issue | Suggested Fix |
    |---|------|----------|-------|---------------|
    {for each issue, numbered}
    | {n} | {severity_icon} | {location} | {description} | {fix_suggestion} |
    {/for}

    **Severity**: 🔴 Error | 🟡 Warning | 🔵 Info

    ---

    ### Actions

    **[1] fix-all** — Apply all recommended fixes automatically
    **[2] review** — Go through each issue one by one
    **[3] skip** — Continue without fixing
    {if any issue has needs_code_check}
    **[4] check-code** — Verify by inspecting the codebase
    {/if}

    Choose an action [1/2/3{if check-code available}/4{/if}]:
  </output>
</check>
</step> <step n="10" title="Process User Choice"> <check if="response == 1 (fix-all)"> <goto step="11"/> </check>
<check if="response == 2 (review)">
  <goto step="12"/>
</check>

<check if="response == 3 (skip)">
  <output>Skipping integrity fixes. Issues may cause unexpected behavior.</output>
  <exit/>
</check>

<check if="response == 4 (check-code)">
  <goto step="13"/>
</check>
</step> <step n="11" title="Apply All Fixes"> <action>For each issue with a fix:</action>
<fix_actions>
  <fix for="orphaned_intent">
    Read brief.md frontmatter, add intent to state.yaml with status: pending
  </fix>

  <fix for="orphaned_work_item">
    Read work item frontmatter, add to parent intent in state.yaml
  </fix>

  <fix for="orphaned_run">
    Parse run.md, determine if complete or incomplete
    If complete: add to runs.completed
    If incomplete: offer to add to runs.active or delete
  </fix>

  <fix for="missing_intent_file">
    Remove intent from state.yaml (data loss warning)
    Or: Create placeholder brief.md from state data
  </fix>

  <fix for="status_mismatch">
    Update state.yaml status to expected value
  </fix>

  <fix for="intent_status_mismatch">
    Update intent status in state.yaml
  </fix>

  <fix for="frontmatter_drift">
    Update work item frontmatter to match state.yaml
  </fix>

  <fix for="incomplete_run_artifacts">
    Mark run as incomplete in state, or generate missing artifacts
  </fix>

  <fix for="stale_run">
    User must decide: resume, abandon, or check code
  </fix>
</fix_actions>

<output>
  ## Fixes Applied

  {for each fix applied}
  ✓ {description}
  {/for}

  {if any fixes skipped}
  ⏭️ Skipped (requires user decision):
  {for each skipped}
  - {description}
  {/for}
  {/if}
</output>

<goto step="14"/>
</step> <step n="12" title="Interactive Review"> <action>For each issue:</action>
<output>
  ## Issue {n} of {total}

  **Type**: {type}
  **Severity**: {severity}
  **Location**: {location}

  ### Details
  {full_description}

  ### Suggested Fix
  {fix_suggestion}

  ---

  **[y]** Apply fix
  **[n]** Skip this issue
  **[c]** Check codebase for this item
  **[q]** Quit review (remaining issues skipped)

  Choice [y/n/c/q]:
</output>

<check if="response == y">
  <action>Apply fix for this issue</action>
  <output>✓ Fixed: {description}</output>
</check>

<check if="response == c">
  <action>Invoke code check for this specific item</action>
  <goto_substep>code-check for {item}</goto_substep>
</check>

<check if="response == q">
  <output>Review ended. {remaining} issues skipped.</output>
  <goto step="14"/>
</check>

<action>Continue to next issue</action>
</step> <step n="13" title="Code Verification"> <critical> This is a BEST EFFORT verification. AI will look for evidence but may not catch everything. User should confirm findings. </critical>
<ask>
  I'll check the codebase for evidence that work items were completed.
  This involves reading work item acceptance criteria and looking for
  matching implementations.

  Which items should I check?

  {for each item with needs_code_check}
  **[{n}]** {work_item_title}
  {/for}
  **[a]** All items
  **[b]** Back to actions

  Choice:
</ask>

<substep n="13a" title="Verify Single Work Item">
  <action>Read work item file: .specs-fire/intents/{intent}/work-items/{id}.md</action>
  <action>Extract acceptance criteria</action>
  <action>Extract expected files/endpoints/components mentioned</action>

  <verification_checks>
    <check title="File Existence">
      Look for files mentioned in the work item description
      Example: "Create src/auth/login.ts" → check if file exists
    </check>

    <check title="Test Existence">
      Look for test files for the component
      Pattern: {filename}.test.ts, {filename}.spec.ts, __tests__/{filename}.ts
    </check>

    <check title="Implementation Markers">
      If file exists, do a quick scan for expected functions/classes
      Example: Work item mentions "login endpoint" → look for login handler
    </check>
  </verification_checks>

  <output>
    ## Code Verification: {work_item_title}

    ### Expected (from acceptance criteria)
    {list acceptance criteria}

    ### Found in Codebase
    {for each check}
    {check_result_icon} {check_description}
    {/for}

    ### Assessment
    {if all checks pass}
    ✅ **Likely Complete** — Implementation evidence found
    Recommend: Mark as completed in state.yaml
    {else if some checks pass}
    🟡 **Partially Complete** — Some evidence found
    Missing: {missing_items}
    Recommend: Review manually or continue implementation
    {else}
    ❌ **Not Found** — No implementation evidence
    Recommend: Keep as pending, implementation needed
    {/if}

    ---

    Apply this assessment? [y/n]:
  </output>

  <check if="response == y">
    <action>Update state.yaml based on assessment</action>
  </check>
</substep>
</step> <step n="14" title="Log Maintenance"> <check if="any fixes were applied"> <action>Append to .specs-fire/maintenance-log.md (create if needed):</action>
  <log_entry>
    ## {ISO-8601-timestamp} - Integrity Check

    **Triggered by**: status skill validation

    | Issue | Fix Applied | Details |
    |-------|-------------|---------|
    {for each fix}
    | {type} | {fix_description} | {location} |
    {/for}

    ---
  </log_entry>

  <output>
    Changes logged to: .specs-fire/maintenance-log.md
  </output>
</check>
</step> <step n="15" title="Final Summary"> <output> ## Status Check Complete
  {if fixes applied}
  **Fixes Applied**: {fix_count}
  **Issues Remaining**: {remaining_count}
  {/if}

  {if all clean}
  ✅ Project state is consistent and ready for work.
  {else}
  ⚠️ Some issues remain unresolved. Run `/specsmd-fire status` again to review.
  {/if}

  ---

  **Next**: {suggest next action based on current state}
</output>
</step> </flow> <!-- ═══════════════════════════════════════════════════════════════════════════ --> <!-- ISSUE TYPE REFERENCE --> <!-- ═══════════════════════════════════════════════════════════════════════════ -->

<issue_types>

| Type | Severity | Auto-fixable | Description | |------|----------|--------------|-------------| | orphaned_intent | warning | yes | Intent on disk but not in state.yaml | | orphaned_work_item | warning | yes | Work item on disk but not in state.yaml | | orphaned_run | warning | partial | Run folder on disk but not tracked | | missing_intent_file | error | partial | Intent in state but file missing | | missing_work_item_file | error | partial | Work item in state but file missing | | missing_run_folder | error | no | Completed run in state but folder missing | | status_mismatch | error | yes | Work item status doesn't match run history | | status_unverifiable | warning | no | Status can't be verified from run data | | intent_status_mismatch | error | yes | Intent status inconsistent with work items | | incomplete_run_artifacts | warning | partial | Run missing required artifacts | | active_run_missing | error | no | Active run folder doesn't exist | | active_run_corrupted | error | no | Active run folder missing run.md | | stale_run | info | no | Active run is old, may be abandoned | | interrupted_run | warning | no | Run appears stopped mid-execution | | frontmatter_drift | info | yes | Frontmatter status differs from state |

</issue_types>

<!-- ═══════════════════════════════════════════════════════════════════════════ --> <!-- EXAMPLE OUTPUT --> <!-- ═══════════════════════════════════════════════════════════════════════════ -->

<example_output>

# FIRE Status

**Project**: my-saas-app
**Workspace**: brownfield / monolith
**Autonomy**: balanced
**Version**: 0.1.8

## Intents

### User Authentication [in_progress]

| Work Item | Status | Complexity | Mode |
|-----------|--------|------------|------|
| login-endpoint | completed | medium | confirm |
| session-management | in_progress | medium | confirm |
| password-reset | pending | high | validate |

## Active Runs

- **Run**: run-fabriqa-2026-002 | **Scope**: single
- **Current Item**: session-management
- **Started**: 2026-01-19T10:30:00Z

## Quick Stats

- Intents: 1 (0 completed)
- Work Items: 3 (1 completed)
- Runs: 1 completed

---

## ⚠️ Integrity Issues Detected

Found 3 issue(s) requiring attention:

| # | Type | Location | Issue | Suggested Fix |
|---|------|----------|-------|---------------|
| 1 | 🟡 | run-fabriqa-2026-002 | Run started 3 days ago, may be stale | Resume or abandon |
| 2 | 🔵 | login-endpoint | Frontmatter says 'pending' but state says 'completed' | Sync frontmatter |
| 3 | 🟡 | analytics-dashboard.md | Work item on disk but not tracked | Add to state.yaml |

**Severity**: 🔴 Error | 🟡 Warning | 🔵 Info

---

### Actions

**[1] fix-all** — Apply all recommended fixes automatically
**[2] review** — Go through each issue one by one
**[3] skip** — Continue without fixing
**[4] check-code** — Verify by inspecting the codebase

Choose an action [1/2/3/4]:

</example_output>

<success_criteria> <criterion>State file read successfully</criterion> <criterion>All intents and work items displayed</criterion> <criterion>Active run status shown</criterion> <criterion>Quick stats accurate</criterion> <criterion>File system scanned for all artifacts</criterion> <criterion>Orphaned artifacts detected (disk → state)</criterion> <criterion>Missing files detected (state → disk)</criterion> <criterion>Status cascade validated (work items → intents)</criterion> <criterion>Run artifact completeness checked</criterion> <criterion>Stale/interrupted runs detected</criterion> <criterion>Frontmatter sync checked</criterion> <criterion>Issues reported in clear table format</criterion> <criterion>User given choice: fix-all, review, skip, check-code</criterion> <criterion>Fixes logged to maintenance-log.md</criterion> <criterion>Code verification available for ambiguous cases</criterion> </success_criteria>