#1975·OpenSpec

openspec-archive-change skill delegates to openspec-sync-specs, which v1.3.1 does not ship

Author: YOSHIMOTOYuitoCreated Sep 25, 2026Updated Sep 25, 2026

Summary

The generated openspec-archive-change skill tells the agent to delegate the delta-spec sync to a skill named openspec-sync-specs, but that skill is not generated by openspec init / openspec update. An agent that follows the skill step by step stalls at the sync step.

Version: 1.3.1 (run via npx)

Where it appears

Both tool targets contain the same two references:

  • .claude/skills/openspec-archive-change/SKILL.md:66 — "If user chooses sync, use Task tool (subagent_type: general-purpose, prompt: Use Skill tool to invoke openspec-sync-specs for change '<name>'. ...)"
  • .claude/skills/openspec-archive-change/SKILL.md:113 — "If sync is requested, use openspec-sync-specs approach (agent-driven)"
  • .codex/skills/openspec-archive-change/SKILL.md — same two lines

Only four skills are generated, and none of them is the one being referenced:

.claude/skills/openspec-apply-change
.claude/skills/openspec-archive-change
.claude/skills/openspec-explore
.claude/skills/openspec-propose

This is upstream content, not local drift

openspec update --force regenerates the files and produces a zero git diff, so v1.3.1 ships these references as-is. Patching SKILL.md locally is not a durable workaround, since the next update rewrites it.

Impact

The subagent cannot find the skill to invoke, so the archive flow stops at step 4. We worked around it by merging the delta specs by hand and verifying with openspec validate --all --strict.

Suggested fix

The delegation looks unnecessary. The openspec archive CLI command already does both halves of the job:

$ openspec archive --help
Archive a completed change and update main specs

Options:
  -y, --yes      Skip confirmation prompts
  --skip-specs   Skip spec update operations

Step 4 of the skill could simply call the CLI instead of delegating to a skill that does not exist. Alternatively, ship openspec-sync-specs alongside the other four.

Side note

I first tried to report this with openspec feedback, which failed:

could not add label: 'feedback' not found

This repository has no feedback label, so the command aborts and no issue is created. Possibly related to #1643.