openspec-sync-specs

Merge delta spec changes into main OpenSpec capability specifications.

4|Updated Aug 8, 2026
One-click install
npx skills add https://github.com/Jin1c-3/obsidian-advanced-maps --skill openspec-sync-specs-jin1c-3
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: openspec-sync-specs
Source: https://github.com/Jin1c-3/obsidian-advanced-maps/tree/main/.agents/skills/openspec-sync-specs
Command: npx skills add https://github.com/Jin1c-3/obsidian-advanced-maps --skill openspec-sync-specs-jin1c-3

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Keeping main capability specifications in sync with change proposals is tedious and error-prone when done by hand. This Skill applies delta specs (ADDED, MODIFIED, REMOVED, RENAMED requirements) from an OpenSpec change directly into the main specs with intelligent merging, without archiving the change. ## Core Features & Use Cases - Intelligent Requirement Merging: Applies ADDED, MODIFIED, REMOVED, and RENAMED requirement blocks from delta specs while preserving untouched scenarios and content in the main spec. - Store-Aware Operation: Discovers registered OpenSpec stores via openspec store list --json and scopes all reads and writes with --store <id> when a store is selected. - Safe Capability Retirement: Deletes a spec.md only when strict conditions hold (no remaining requirements, valid Purpose, retire_capabilities: true marker, path safety checks), and validates results with openspec validate --specs. - Use Case: After finishing a change that adds scenarios to a billing spec, ask the agent to sync the change so the main spec gains the new scenarios while the change stays active for continued work. ## Quick Start Ask the agent to sync the delta specs from change "add-billing-invoices" into the main specs without archiving the change.

Frequently Asked Questions about openspec-sync-specs

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I sync OpenSpec delta specs into main specs?

Invoke the skill with a change name, or let it infer the change from context. It reads delta specs from the change's artifactPaths.specs.existingOutputPaths, merges each requirement into the matching main spec, then runs openspec validate --specs to confirm the result.

What is the difference between syncing specs and archiving a change in OpenSpec?

Syncing updates the main specs while leaving the change active for further work. Archiving also merges the deltas but then closes and moves the change out of the active set, so sync is the right choice when implementation is still in progress.

Does openspec-sync-specs work with OpenSpec stores?

Yes. When a store is named or detected, the skill runs openspec store list --json to find the store id and appends --store <id> to every spec-reading and spec-writing command, keeping all operations scoped to that store.

When does the sync delete a main spec file?

A spec.md is deleted only when removing requirements leaves none remaining, the spec is otherwise well-formed with a Purpose section, the change declares retire_capabilities: true, and the path resolves inside the real specs root. Otherwise the sync stops and reports the blocking condition.

Can I sync only some delta specs from a change?

Yes. A caller can name an explicit subset of paths from existingOutputPaths, and the skill syncs only those entries verbatim. It never widens the selection back to the full list and reports any named path that is not present.