openspec-sync-specs

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

Updated Feb 11, 2026
One-click install
npx skills add https://github.com/74th/test-llm-agent --skill openspec-sync-specs-74th
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: openspec-sync-specs
Source: https://github.com/74th/test-llm-agent/tree/main/20260922-openai-agentapi-selfhosted-sandbox/.agents/skills/openspec-sync-specs
Command: npx skills add https://github.com/74th/test-llm-agent --skill openspec-sync-specs-74th

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Keeping main 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 to the main specs, merging intelligently instead of overwriting, and 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 content and scenario order in main specs. - 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 Guardrails: Verifies the project root before writing, honors caller-narrowed delta subsets, validates results with openspec validate --specs, and handles capability retirement only under strict conditions. - Use Case: After drafting a change with delta specs for a billing capability, ask the agent to sync the specs so the main specs/billing/spec.md gains the new requirements while the change stays active for implementation. ## Quick Start Ask the agent to run openspec sync for a named change, for example: sync the specs from the add-billing-invoices change into the main specs.

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 one from context. It reads the delta spec paths from openspec status JSON, merges ADDED, MODIFIED, REMOVED, and RENAMED requirements into each main spec, then runs 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; use sync when implementation is still in progress.

Does openspec sync 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 command that reads or writes specs and changes, treating it as sticky for the workflow.

What happens if the project has no openspec directory?▼

The skill checks openspec list --json for a root before any write. If root is null and the request was explicit, it asks whether to run openspec init, target a store, or continue without OpenSpec; it never creates the root as a side effect.

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

Yes. A caller can narrow the sync by naming explicit entries from artifactPaths.specs.existingOutputPaths. Only those paths are synced, the rest stay untouched, and the selection is never widened back to the full list.

When does openspec sync delete a main spec file?▼

A spec.md is deleted only when retiring a capability: the sync removed all requirement blocks, the spec remains well-formed, the change's .openspec.yaml declares retire_capabilities: true, and the file resolves inside the real specs root.