openspec-sync-specs
Syncs specific requirement changes from a delta spec back into the main project documentation.
Install
mkdir -p .claude/skills/openspec-sync-specs-ruan-cat && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/14145" && unzip -o skill.zip -d .claude/skills/openspec-sync-specs-ruan-cat && rm skill.zipInstalls to .claude/skills/openspec-sync-specs-ruan-cat
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Sync delta specs from a change to main specs. Use when the user wants to update main specs with changes from a delta spec, without archiving the change.Key capabilities
- →Prompt user for change selection if not provided
- →Find delta spec files for a given change
- →Apply added requirements to main specs
- →Apply modified requirements to main specs, preserving unmentioned content
- →Remove specified requirements from main specs
How it works
The skill reads delta spec files from a specified change and intelligently applies the additions, modifications, and removals to the corresponding main spec files.
Inputs & outputs
When to use openspec-sync-specs
- →Syncing delta requirements
- →Merging feature specifications
- →Updating main project documentation
- →Propagating change-specific requirements
About this skill
Sync delta specs from a change to main specs.
This is an agent-driven operation - you will read delta specs and directly edit main specs to apply the changes. This allows intelligent merging (e.g., adding a scenario without copying the entire requirement).
Input: Optionally specify a change name. If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
Steps
-
If no change name provided, prompt for selection
Run
openspec list --jsonto get available changes. Use the AskUserQuestion tool to let the user select.Show changes that have delta specs (under
specs/directory).IMPORTANT: Do NOT guess or auto-select a change. Always let the user choose.
-
Find delta specs
Look for delta spec files in
openspec/changes/<name>/specs/*/spec.md.Each delta spec file contains sections like:
## ADDED Requirements- New requirements to add## MODIFIED Requirements- Changes to existing requirements## REMOVED Requirements- Requirements to remove## RENAMED Requirements- Requirements to rename (FROM:/TO: format)
If no delta specs found, inform user and stop.
-
For each delta spec, apply changes to main specs
For each capability with a delta spec at
openspec/changes/<name>/specs/<capability>/spec.md:a. Read the delta spec to understand the intended changes
b. Read the main spec at
openspec/specs/<capability>/spec.md(may not exist yet)c. Apply changes intelligently:
ADDED Requirements:
- If requirement doesn't exist in main spec → add it
- If requirement already exists → update it to match (treat as implicit MODIFIED)
MODIFIED Requirements:
- Find the requirement in main spec
- Apply the changes - this can be:
- Adding new scenarios (don't need to copy existing ones)
- Modifying existing scenarios
- Changing the requirement description
- Preserve scenarios/content not mentioned in the delta
REMOVED Requirements:
- Remove the entire requirement block from main spec
RENAMED Requirements:
- Find the FROM requirement, rename to TO
d. Create new main spec if capability doesn't exist yet:
- Create
openspec/specs/<capability>/spec.md - Add Purpose section (can be brief, mark as TBD)
- Add Requirements section with the ADDED requirements
-
Show summary
After applying all changes, summarize:
- Which capabilities were updated
- What changes were made (requirements added/modified/removed/renamed)
Delta Spec Format Reference
## ADDED Requirements
### Requirement: New Feature
The system SHALL do something new.
#### Scenario: Basic case
- **WHEN** user does X
- **THEN** system does Y
## MODIFIED Requirements
### Requirement: Existing Feature
#### Scenario: New scenario to add
- **WHEN** user does A
- **THEN** system does B
## REMOVED Requirements
### Requirement: Deprecated Feature
## RENAMED Requirements
- FROM: `### Requirement: Old Name`
- TO: `### Requirement: New Name`
Key Principle: Intelligent Merging
Unlike programmatic merging, you can apply partial updates:
- To add a scenario, just include that scenario under MODIFIED - don't copy existing scenarios
- The delta represents intent, not a wholesale replacement
- Use your judgment to merge changes sensibly
Output On Success
## Specs Synced: <change-name>
Updated main specs:
**<capability-1>**:
- Added requirement: "New Feature"
- Modified requirement: "Existing Feature" (added 1 scenario)
**<capability-2>**:
- Created new spec file
- Added requirement: "Another Feature"
Main specs are now updated. The change remains active - archive when implementation is complete.
Guardrails
- Read both delta and main specs before making changes
- Preserve existing content not mentioned in delta
- If something is unclear, ask for clarification
- Show what you're changing as you go
- The operation should be idempotent - running twice should give same result
When not to use it
- →When the user wants to archive the change
Prerequisites
Limitations
- →This is an agent-driven operation.
- →Do NOT guess or auto-select a change.
- →If something is unclear, ask for clarification.
How it compares
This skill performs intelligent merging of delta specs into main specs, allowing partial updates and preserving existing content, unlike a wholesale programmatic overwrite.
Compared to similar skills
openspec-sync-specs side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| openspec-sync-specs (this skill) | 0 | 5mo | No flags | Intermediate |
| markdown-to-html | 16 | 6mo | Review | Beginner |
| claude-md-enhancer | 1 | 9mo | Review | Beginner |
| deepinit | 1 | 5mo | Review | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
markdown-to-html
github
Convert Markdown files to HTML similar to `marked.js`, `pandoc`, `gomarkdown/markdown`, or similar tools; or writing custom script to convert markdown to html and/or working on web template systems like `jekyll/jekyll`, `gohugoio/hugo`, or similar web templating systems that utilize markdown documents, converting them to html. Use when asked to "convert markdown to html", "transform md to html", "render markdown", "generate html from markdown", or when working with .md files and/or web a templating system that converts markdown to HTML output. Supports CLI and Node.js workflows with GFM, CommonMark, and standard Markdown flavors.
claude-md-enhancer
alirezarezvani
Analyzes, generates, and enhances CLAUDE.md files for any project type using best practices, modular architecture support, and tech stack customization. Use when setting up new projects, improving existing CLAUDE.md files, or establishing AI-assisted development standards.
deepinit
Yeachan-Heo
Deep codebase initialization with hierarchical AGENTS.md documentation
ability-generator
lofcz
This skill generates markdown skill templates to be later used.
sample-with-references
svelte-society
Demonstrates progressive disclosure by linking to reference files. Use this pattern when your skill has detailed content that should load on-demand.
website-maintainer
yamadashy
Use this skill when working on the Repomix documentation website in `website/` directory, including VitePress configuration, multi-language content, or translation workflows.