--- name: speckit-refine-status description: Show sync status between spec, plan, and tasks — identify stale artifacts compatibility: Requires spec-kit project structure with .specify/ directory metadata: author: github-spec-kit source: refine:commands/speckit.refine.status.md --- # Artifact Sync Status Show the synchronization status between spec.md, plan.md, and tasks.md. Identifies which artifacts are stale and need propagation. ## User Input ```text $ARGUMENTS ``` You **MUST** consider the user input before proceeding (if not empty). ## Prerequisites 1. Verify a spec-kit project exists by checking for `.specify/` directory 2. Locate the current feature's spec directory ## Outline 1. **Locate artifacts**: Find all artifacts in the current feature directory: - `spec.md` — the source of truth - `plan.md` — implementation plan - `tasks.md` — task breakdown - `research.md` — research notes - `data-model.md` — data model - `contracts/` — interface contracts 2. **Check each artifact**: For each file that exists, determine: - **Last modified**: File modification timestamp - **Has refinement notes**: Check for `**Refined**:` entries (spec.md) - **Has propagation notes**: Check for `**Propagated**:` entries (plan.md, tasks.md) - **Has staleness warning**: Check for `⚠️ **STALE**` marker - **Spec user story count**: Number of user stories in spec.md - **Plan section count**: Number of `##`-level sections in plan.md - **Task count**: Number of `- [ ]` items in tasks.md 3. **Determine sync status**: Compare artifacts to assess synchronization: | Condition | Status | | ---------------------------------------------- | ----------------------------- | | spec.md refined after plan.md last propagated | plan.md is **STALE** | | spec.md refined after tasks.md last propagated | tasks.md is **STALE** | | plan.md has `⚠️ **STALE**` marker | plan.md is **STALE** | | tasks.md has `⚠️ **STALE**` marker | tasks.md is **STALE** | | No refinement notes and no staleness markers | All artifacts are **IN SYNC** | | Artifact does not exist | **MISSING** | 4. **Output status dashboard**: ```markdown # Artifact Sync Status: [Feature Name] | Artifact | Status | Last Modified | Notes | | ------------- | ---------- | ------------- | ------------------------------------- | | spec.md | ✅ Current | [date] | [N user stories, M requirements] | | plan.md | ⚠️ Stale | [date] | Refined on [date], not yet propagated | | tasks.md | ⚠️ Stale | [date] | [X total tasks, Y completed] | | research.md | ✅ Present | [date] | — | | data-model.md | ❌ Missing | — | — | | contracts/ | ❌ Missing | — | — | ## Refinement History - [DATE]: [Change description] ## Recommended Actions 1. Run `/speckit.refine.propagate` to update stale artifacts 2. Run `/speckit.refine.diff` to preview impact before propagating ``` 5. **Report**: Output the dashboard. Do not modify any files — this command is read-only. ## Rules - **Read-only** — this command never modifies any files - **Always show all artifacts** — include missing ones so user knows what to create - **Use clear status indicators** — ✅ for current, ⚠️ for stale, ❌ for missing