Version: 1.9.0 (latest on npm at time of writing).
The generated skill .claude/skills/openspec-archive-change/SKILL.md, step 4 ('Assess delta spec sync state'), instructs the agent to delegate spec syncing via:
Task tool (subagent_type: 'general-purpose', prompt: "Use Skill tool to invoke openspec-sync-specs for change '' ...")
But 'openspec init' only generates four skills: openspec-apply-change, openspec-archive-change, openspec-explore, openspec-propose. There is no openspec-sync-specs skill anywhere, so the Skill call fails with 'Unknown skill'. The same dangling reference is in .claude/commands/opsx/archive.md and the .opencode/ copies.
Impact: any archive of a change that carries delta specs hits this. The agent either stops, or improvises the sync by hand, which is exactly the step you would not want improvised — it writes the main specs.
This also looks redundant with the CLI. 'openspec archive [change-name]' is documented as 'Archive a completed change and update main specs' and already has --skip-specs / --no-validate / --yes. The skill reimplements that as manual mkdir/mv plus a delegation to the missing skill, so it can drift from the CLI's behaviour even once the reference is fixed.
Suggested fix, in rough order of preference:
- Have the archive skill shell out to 'openspec archive' instead of hand-rolling the move and sync, so the CLI stays the single implementation.
- Or generate the missing openspec-sync-specs skill from 'openspec init'.
- Or inline the sync steps into the archive skill and drop the delegation.
Repro: openspec init in a fresh project, create a change with a specs/ delta, complete it, then follow the archive skill.
Submitted via OpenSpec CLI
- Version: 1.9.0
- Platform: linux
- Timestamp: 2026-08-14T11:42:53.345Z
Version: 1.9.0 (latest on npm at time of writing).
The generated skill .claude/skills/openspec-archive-change/SKILL.md, step 4 ('Assess delta spec sync state'), instructs the agent to delegate spec syncing via:
Task tool (subagent_type: 'general-purpose', prompt: "Use Skill tool to invoke openspec-sync-specs for change '' ...")
But 'openspec init' only generates four skills: openspec-apply-change, openspec-archive-change, openspec-explore, openspec-propose. There is no openspec-sync-specs skill anywhere, so the Skill call fails with 'Unknown skill'. The same dangling reference is in .claude/commands/opsx/archive.md and the .opencode/ copies.
Impact: any archive of a change that carries delta specs hits this. The agent either stops, or improvises the sync by hand, which is exactly the step you would not want improvised — it writes the main specs.
This also looks redundant with the CLI. 'openspec archive [change-name]' is documented as 'Archive a completed change and update main specs' and already has --skip-specs / --no-validate / --yes. The skill reimplements that as manual mkdir/mv plus a delegation to the missing skill, so it can drift from the CLI's behaviour even once the reference is fixed.
Suggested fix, in rough order of preference:
Repro: openspec init in a fresh project, create a change with a specs/ delta, complete it, then follow the archive skill.
Submitted via OpenSpec CLI