openspec-sync-specs

Sync delta specs from an OpenSpec change into main specs without archiving.

747|30|Updated Jul 28, 2020
One-click install
npx skills add https://github.com/godot-go/godot-go --skill openspec-sync-specs-godot-go
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: openspec-sync-specs
Source: https://github.com/godot-go/godot-go/tree/main/.opencode/skills/openspec-sync-specs
Command: npx skills add https://github.com/godot-go/godot-go --skill openspec-sync-specs-godot-go

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Keeping main specs up to date with in-progress OpenSpec changes normally requires archiving the change, which is premature when implementation is still underway. This Skill merges delta specs (ADDED, MODIFIED, REMOVED, RENAMED requirements) into main specs while leaving the change active. ## Core Features & Use Cases - Intelligent Requirement Merging: Applies ADDED, MODIFIED, REMOVED, and RENAMED requirement blocks from delta specs into main specs, preserving existing content the delta does not mention. - New Capability Creation: Creates a new main spec file from a delta's ADDED requirements and Purpose when the capability does not exist yet. - Store-Aware Operation: Supports OpenSpec stores via --store <id> flags and resolves the correct specs root from openspec status JSON output. - Use Case: You finished drafting a change with delta specs for user authentication and want the main specs to reflect the new requirements immediately for review, without archiving the change. Run the sync to merge the deltas, then validate with openspec validate --specs. ## Quick Start Ask the assistant to sync the delta specs from a named OpenSpec change into the main specs, for example by saying "openspec sync my-change-name".

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 to main specs?▼

Run the sync workflow by naming a change or letting it be inferred from context. The skill reads delta specs from the change's artifactPaths.specs.existingOutputPaths, merges each requirement operation into the main spec, then validates with openspec validate --specs.

What is the difference between openspec sync and openspec archive?▼

Sync updates main specs from delta specs while keeping the change active for continued implementation. Archive performs a similar merge but also closes out the change, so sync is the right choice when implementation is not yet complete.

Can I sync only some delta specs from a change?▼

Yes. A caller can narrow the sync by naming explicit entries from the change's existingOutputPaths list. Only those delta specs are merged and the rest are left untouched; the selection is never widened back to the full list.

Does openspec sync work with OpenSpec stores?▼

Yes. When a store is selected, the skill discovers registered store ids with openspec store list --json and passes --store <id> on all commands that read or write specs and changes, resolving main spec paths from the store-aware planningHome.root.

What happens if the main spec for a capability does not exist yet?▼

Only ADDED requirements may be applied for a new capability. The skill creates the spec.md with a Purpose section copied from the delta and a Requirements section; MODIFIED or RENAMED operations block the sync for that capability and are reported.

Why does sync fail when there is no openspec root?▼

The skill checks for a project root with openspec list --json before writing anything. A null root means the project is not set up with OpenSpec, so the skill stops and asks whether to run openspec init, target a store, or continue without OpenSpec.