OpenSpec Artifact Status
Purpose
Determine the state of an OpenSpec change from files on disk and recommend the next action.
This skill observes and reports. It should not make broad edits unless the user explicitly asks for a small correction.
When To Invoke
Invoke when the user asks to:
- check a change status
- find blockers
- determine the next action
- inspect artifact readiness
- understand whether a change is ready for implementation, sync, or archive
Inputs
Useful inputs include:
- change name
- project root
- optional capability name
- current user intent, such as planning, implementing, syncing, or archiving
Repository Files
This skill reads:
openspec/changes/<change-name>/proposal.mdopenspec/changes/<change-name>/design.mdopenspec/changes/<change-name>/tasks.mdopenspec/changes/<change-name>/specs/**/spec.mdopenspec/specs/**/spec.mdopenspec/changes/archive/
Procedure
- Identify the active change.
- If multiple active changes match, ask the user to choose.
- Inspect proposal, design, tasks, change specs, and relevant main specs.
- Classify each artifact as
missing,draft,ready,stale, ordone. - Classify the overall change status.
- Identify the highest-priority blocker.
- Recommend exactly one next action.
Status Model
Artifact states:
missing: required file does not existdraft: file exists but is incomplete or placeholder-heavyready: file is sufficient for downstream workstale: file conflicts with newer decisions or implementationdone: file has served its purpose and remains consistent
Change states:
uninitializedscaffoldingplanningready-for-implementationimplementingneeds-spec-syncready-to-archivearchivedblocked
Decision Rules
- Missing or stale proposal blocks planning.
- Missing or stale required design blocks implementation.
- Missing or stale tasks blocks implementation.
- Missing or stale required specs block implementation or sync.
- Incomplete tasks block archive unless the user explicitly accepts them.
Guardrails
- Do not assume a change when multiple active changes exist.
- Do not mark a change ready if required artifacts are missing.
- Do not archive or sync; recommend those actions instead.
- Report uncertainty clearly.
Output Format
Change: <change-name>
Status: <status>
Proposal: <state>
Design: <state>
Tasks: <state>
Change specs: <state>
Main specs: <state|n/a>
Blocking issue: <one sentence>
Next action: <one sentence>
Examples
User: "What is next for add-user-auth?"
Action: inspect the change and return its status summary with one recommended next action.