OP

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.zip

Installs 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.
152 chars✓ has a “when” trigger
Intermediate

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

You give it
Optional change name, or inferred from conversation context
You get back
Updated main spec files and a summary of changes

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

  1. If no change name provided, prompt for selection

    Run openspec list --json to 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.

  2. 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.

  3. 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
  4. 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

openspec CLI

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.

SkillInstallsUpdatedSafetyDifficulty
openspec-sync-specs (this skill)05moNo flagsIntermediate
markdown-to-html166moReviewBeginner
claude-md-enhancer19moReviewBeginner
deepinit15moReviewBeginner

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.

1662

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.

113

deepinit

Yeachan-Heo

Deep codebase initialization with hierarchical AGENTS.md documentation

15

ability-generator

lofcz

This skill generates markdown skill templates to be later used.

13

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.

12

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.

12

Search skills

Search the agent skills registry