Agent skill

Vibe Spec Sync

by ash1794 in ash1794/vibe-engineering

Keeps specification documents and code in agreement. An agent skill from ash1794/vibe-engineering.

MITAuto-check passedTesting & QA

Install Vibe Spec Sync

skills CLI
$ npx skills add ash1794/vibe-engineering --skill vibe-spec-sync -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install ash1794/vibe-engineering vibe-spec-sync --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/ash1794/vibe-engineering.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/vibe-engineering/skills/vibe-spec-sync .claude/skills/vibe-spec-sync && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
vibe-spec-sync
GitHub stars
163
Token cost
~2.2k tokens
SKILL.md length
1,010 words
Files
1
Skills in repo
33
Repo updated
First seen
Licence
MIT

At a glance

Keeps specification documents and code in agreement. An agent skill from ash1794/vibe-engineering.

  • Works in 5 steps: Locate Spec and Code (both modes) → Extract Drift from Staged Changes → Apply Spec Updates → …
  • An implementation is claimed complete against a spec
  • SKILL.md covers When to Use This Skill, When NOT to Use This Skill, Modes and Prerequisites, plus 4 more sections
  • Calls git

What it does

Vibe Spec Sync is an agent skill from ash1794/vibe-engineering. Keeps specification documents and code in agreement. Audit mode finds every divergence when an implementation is claimed complete; sync mode detects spec drift in staged changes and updates the spec after user approval, so each commit is a reconciled snapshot of spec, tests, and code. Use when an implementation is claimed complete against a spec, before committing changes that may drift from the spec, or after approving decisions that must flow back into it.

Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Testing & QA. The repository describes itself as: 33 engineering discipline skills for Claude Code, OpenAI Codex & Gemini CLI + a CLI for CI/CD enforcement. Extracted from real-world multi-agent system development. Born from… The licence is MIT.

When your agent uses it

  • An implementation is claimed complete against a spec
  • Before committing changes that may drift from the spec
  • After approving decisions that must flow back into it

Example prompts

  • “Use the vibe-spec-sync skill to keep specification documents and code in agreement. An agent skill from ash1794/vibe-engineering”
  • “/vibe-spec-sync”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Locate Spec and Code (both modes)
  2. Extract Drift from Staged Changes
  3. Apply Spec Updates
  4. Verify Consistency
  5. Report

What it can do on your machine

Read from SKILL.md and the folder at commit 8f1d71b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Vibe Spec Sync loads about 2.2k tokens when it runs. Until then it costs about 119 tokens; SKILL.md has 1,010 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~119
When it runs · the whole SKILL.md, loaded when a task matches
~2.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from ash1794/vibe-engineering at commit 8f1d71b, republished under its MIT licence (© ash1794). 1,010 words, ~2,160 tokens.

Download SKILL.mdSave it as .claude/skills/vibe-spec-sync/SKILL.md (or your agent's skills folder).
name
vibe-spec-sync
description
Keeps specification documents and code in agreement. Audit mode finds every divergence when an implementation is claimed complete; sync mode detects spec drift in staged changes and updates the spec after user approval, so each commit is a reconciled snapshot of spec, tests, and code. Use when an implementation is claimed complete against a spec, before committing changes that may drift from the spec, or after approving decisions that must flow back into it.
user-invocable
true

vibe-spec-sync

Code changes. Specs don't update themselves. This skill closes the loop.

When to Use This Skill

  • Audit mode: implementation of a spec or design doc is claimed complete, after a major refactor, or when debugging behavior that may not match the spec
  • Sync mode: before committing, to detect spec drift from staged changes
  • Sync mode: after approving decisions (from vibe-decision-journal), to sync them back to the spec
  • Periodically, to confirm the spec still reflects reality

When NOT to Use This Skill

  • No spec exists (write one first, or use vibe-doc-quality-gate to bootstrap)
  • Prototype/spike code with no spec commitment
  • Spec is explicitly labeled as aspirational/future-state
  • Code was intentionally diverged, with the reasons documented

Modes

/vibe-spec-sync            # Sync mode: staged changes vs spec (default)
/vibe-spec-sync --audit    # Audit mode: full spec vs implementation, no edits

Prerequisites

The project must have:

  • A specification document (markdown) — configured in step 1
  • Implementation code that the spec describes
  • Optionally: a test suite with requirement traceability markers (# req:[ID])

Steps

Step 1: Locate Spec and Code (both modes)
  1. Find the spec — Look for:

    • spec.md, SPEC.md, *_spec.md in project root or docs/
    • Design docs in docs/design/, docs/architecture/
    • Ask user if ambiguous: "Which document is the authoritative spec?"
  2. Find the implementation — The code files the spec describes

  3. Find the decision log — docs/decisions/decisions.jsonl (from vibe-decision-journal)

Audit Mode (--audit)

Read-only. Nothing is edited.

  1. For each requirement or section in the spec, find the corresponding code and check whether it matches exactly.
  2. Record each divergence as a gap:
    • ID: GAP-[SECTION]-[NNN] (e.g., GAP-AUTH-001)
    • Type: Missing (spec says X, code has nothing) / Incorrect (spec says X, code does Y) / Extra (code does X, spec is silent)
    • Severity: Critical / High / Medium / Low
    • Evidence: the spec quote and the code file:line
  3. Report using the Audit Report format below. For 10+ gaps, hand them to vibe-gap-closure-loop. To accept an Extra or Incorrect item as the new intended behavior, run sync mode on it.

Sync mode (default) continues with Steps 2–5 below.

Step 2: Extract Drift from Staged Changes

Run git diff --cached and analyze what changed relative to the spec:

  1. Categorize each change:

    • Spec-aligned: Change matches what the spec says → no action
    • Spec-extending: Change adds behavior the spec doesn't mention → spec needs new section
    • Spec-modifying: Change alters behavior the spec describes differently → spec needs update
    • Spec-contradicting: Change violates what the spec explicitly forbids → flag for review
  2. For each drift item, produce:

    DRIFT-[NNN]:
      Type: extending | modifying | contradicting
      Spec section: "## [Header]"
      Current spec says: "[quoted text]"
      Code now does: "[description of new behavior]"
      Suggested spec update: "[proposed new text]"
  3. Present drift items to the user for a decision (use the harness's structured question tool if it has one; otherwise ask in plain text and wait):

    • Approve update — update the spec to match the code
    • Approve with edits — user refines the proposed spec text
    • Reject — the code is wrong; flag for fix (do NOT update spec)
    • Defer — not ready to decide; skip for now
Step 3: Apply Spec Updates

For each approved drift item:

  1. Find the target section in the spec:

    • Match by exact header first
    • Fall back to normalized match (case-insensitive, whitespace-collapsed)
    • If no matching section, determine correct placement by reading surrounding sections
  2. Apply the update:

    • For modifying: Replace the relevant paragraph/sentence within the section. Use search-and-replace with the old text and new text. Preserve surrounding content.
    • For extending: Add new content to the appropriate existing section, or create a new section if the content doesn't fit anywhere.
    • For contradicting (approved): Same as modifying — replace the contradicted text.
  3. Preserve spec structure:

    • Don't rewrite sections that weren't affected
    • Maintain existing formatting, header hierarchy, and ordering
    • Add a brief inline note if a section was significantly changed: <!-- Updated: [date] per DEC-[NNNN] -->
  4. Stage the spec changes: git add [spec file]

Show full SKILL.md (430 more words)Show less
Step 4: Verify Consistency

After applying updates:

  1. Re-read the updated spec — verify it reads coherently (no dangling references, no contradictions between sections)

  2. Cross-check with decision log — ensure approved decisions from vibe-decision-journal are reflected in the spec

  3. Check test coverage — identify any updated spec sections that now lack test coverage:

    • Scan tests for # req:[ID] markers matching affected requirements
    • Report uncovered requirements: "Spec updated but no test covers [requirement]. Consider running vibe-adversarial-test-generation in spec-driven mode."
Step 5: Report

Output Format

Audit Report (audit mode)

Spec: [path] · Implementation: [paths] Gaps found: X (Y critical, Z high)

GAP IDTypeSeveritySpec saysCode does
GAP-AUTH-001MissingCritical"Tokens expire after 24h"No expiration logic (auth/token.go)

Top risks: [the 1–3 most dangerous gaps] Recommended fix order: [critical first]

Spec Sync Report (sync mode)

Spec: [path/to/spec.md] Staged Changes Analyzed: [N files, M insertions, K deletions]

#TypeSpec SectionActionStatus
1modifying## AuthenticationUpdated: "JWT tokens" → "JWT tokens with 1h expiry"Approved
2extending(new) ## Rate LimitingAdded new sectionApproved
3contradicting## Data RetentionFlagged: spec says "never delete", code adds TTLRejected — code needs fix
4extending## Error HandlingDeferred—
Spec Changes Applied
  • docs/spec.md: 2 sections updated, 1 section added
  • Linked decisions: DEC-0045, DEC-0046
Test Coverage After Sync
  • Requirements with tests: X/N
  • Newly uncovered: ## Rate Limiting (no tests yet)
Next Steps
  • Fix rejected drift item #3 (code contradicts spec on data retention)
  • Add tests for ## Rate Limiting section
  • Run /vibe-spec-sync --audit to verify full alignment

Integration with Other Skills

  • vibe-decision-journal: Decisions feed into spec sync. When decisions are approved, this skill updates the spec to reflect them.
  • vibe-gap-closure-loop: Closes large sets of audit-mode gaps in prioritized waves.
  • vibe-adversarial-test-generation (spec-driven mode): Generate tests for requirements that were updated or added during sync.
  • vibe-coverage-enforcer: Verify that test coverage still meets tier targets after spec-driven test additions.
  • vibe-pre-commit-audit: Complementary — that skill checks for secrets/debug code; this skill checks for spec alignment. Both belong in a pre-commit workflow.

Rules

  • NEVER update the spec without user approval. Every drift item must be presented and explicitly approved.
  • NEVER silently drop drift items. If a change affects the spec, report it — even if you think it's minor.
  • Preserve spec authority. The spec is the source of truth for intended behavior. If code contradicts spec and the user rejects the update, the code is wrong — not the spec.
  • Don't rewrite what you didn't change. Only modify spec sections affected by the current drift. Leave everything else untouched.
  • Link to decisions. When a spec update corresponds to a recorded decision, add the decision ID as an HTML comment: <!-- DEC-NNNN -->

© ash1794, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in plugins/vibe-engineering/skills/vibe-spec-sync of ash1794/vibe-engineering.

Open the folder on GitHubat commit 8f1d71b

Compare with similar skills

Vibe Spec Sync next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Vibe Spec Sync compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Vibe Spec Sync this skillash1794/vibe-engineering163—~2.2kAutomated safety check: PassMIT
Pester Failure AnalysisPowerShell/PowerShell56k—~5.1kAutomated safety check: PassMIT
Rust TDD Workflowrtk-ai/rtk83k—~753Automated safety check: NotesApache-2.0
Clawteam DevHKUDS/ClawTeam5.5k1 repos~1.1kAutomated safety check: PassMIT
Browser Testing with Chrome DevToolsaddyosmani/agent-skills103k4 repos~3.5kAutomated safety check: WarnMIT
Apple Container Test RunnerRustPython/RustPython22k—~467Automated safety check: PassMIT

Similar skills

  • Pester Failure Analysis

    PowerShell/PowerShell

    Investigates failing Pester tests in PowerShell CI jobs by following a six-step workflow from pull request status to documented fix recommendations.

    56k GitHub stars~5.1k tokensUpdated today
    Testing & QAAuto-check passed
  • Enforces red-green-refactor for Rust work, with idiomatic test patterns, a naming convention and a pre-commit gate of cargo fmt, clippy and test.

    83k GitHub stars~753 tokensUpdated today
    Testing & QAAuto-check: notes
  • Clawteam Dev

    HKUDS/ClawTeam

    A skill your agent uses when working inside the ClawTeam repository itself: local development, debugging, reviewing, testing, validating multi-agent flows, or checking whether a code change actually…

    5.5k GitHub starsUsed in 1 repo~1.1k tokens
    Testing & QAAuto-check passed
  • Connects an agent to a real Chrome instance through the Chrome DevTools MCP server, so it can inspect the DOM, read console errors and profile performance directly.

    103k GitHub starsUsed in 4 repos~3.5k tokens
    Testing & QAAuto-check: warnings
  • Apple Container Test Runner

    RustPython/RustPython

    Runs RustPython tests inside a Linux container built with Apple's container CLI, so macOS users can compare Linux results with their local ones.

    22k GitHub stars~467 tokensUpdated today
    Testing & QAAuto-check passed
  • Codex Plugin QA

    code-yeongyu/oh-my-openagent

    Tests the omo Codex plugin in an isolated CODEX_HOME with a local mock model, proving hooks fired through app-server notifications without touching ~/.codex.

    70k GitHub stars~1.9k tokensUpdated today
    Testing & QAAuto-check passed

More from ash1794/vibe-engineering

All 33 skills in this repo
  • Vibe Concurrent Test Safety

    ash1794/vibe-engineering

    Audits tests for concurrency safety — race conditions, shared mock state, cleanup ordering.

    163 GitHub stars~665 tokensUpdated yesterday
    Auto-check passed
  • Vibe Fuzz Parser Inputs

    ash1794/vibe-engineering

    Generates fuzz test scaffolding for parsers handling external input (YAML, JSON, config files, user input).

    163 GitHub stars~722 tokensUpdated yesterday
    Auto-check passed
  • Vibe Golden File Testing

    ash1794/vibe-engineering

    Implements snapshot/golden file tests with temporal normalization so tests don't break daily.

    163 GitHub stars~669 tokensUpdated yesterday
    Auto-check passed
  • Vibe Parallel Task Decomposition

    ash1794/vibe-engineering

    Analyzes large tasks for independent subtasks that can be safely parallelized.

    163 GitHub stars~717 tokensUpdated yesterday
    Auto-check passed
  • Vibe Slop Filter

    ash1794/vibe-engineering

    Strips AI-generation "smell" from prose before it ships (READMEs, docs, release notes, PR descriptions, posts, emails).

    163 GitHub stars~2.3k tokensUpdated yesterday
    Auto-check passed
  • Vibe Adversarial Test Generation

    ash1794/vibe-engineering

    Generates edge case, failure mode, and spec-driven test cases.

    163 GitHub stars~1.4k tokensUpdated yesterday
    Auto-check passed

Questions about Vibe Spec Sync

What does Vibe Spec Sync do?

Keeps specification documents and code in agreement. An agent skill from ash1794/vibe-engineering. Vibe Spec Sync is an agent skill from ash1794/vibe-engineering. Keeps specification documents and code in agreement.

When should I use Vibe Spec Sync?

Vibe Spec Sync fits situations like: an implementation is claimed complete against a spec; before committing changes that may drift from the spec; after approving decisions that must flow back into it.

How do I install Vibe Spec Sync in Claude Code?

Run `npx skills add ash1794/vibe-engineering --skill vibe-spec-sync -a claude-code`. Or copy the skill folder (plugins/vibe-engineering/skills/vibe-spec-sync in ash1794/vibe-engineering) into .claude/skills/vibe-spec-sync in your project. Claude Code loads it when a task matches its description.

How do I install Vibe Spec Sync in Codex?

Run `npx skills add ash1794/vibe-engineering --skill vibe-spec-sync -a codex`. Or copy the skill folder (plugins/vibe-engineering/skills/vibe-spec-sync in ash1794/vibe-engineering) into .agents/skills/vibe-spec-sync in your project. Codex loads it when a task matches its description.

Can I use Vibe Spec Sync in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ash1794/vibe-engineering --skill vibe-spec-sync -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/vibe-spec-sync, .gemini/skills/vibe-spec-sync, .github/skills/vibe-spec-sync and .opencode/skills/vibe-spec-sync in your project.

What does Vibe Spec Sync need to run?

Going by SKILL.md and its folder, Vibe Spec Sync needs the command-line tools its instructions call (git).

Does Vibe Spec Sync access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Vibe Spec Sync safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Vibe Spec Sync use?

Vibe Spec Sync is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Vibe Spec Sync use?

About 2.2k tokens (SKILL.md is roughly 8.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Vibe Spec Sync?

Skills that share tags, products or a category with Vibe Spec Sync: Pester Failure Analysis (PowerShell/PowerShell, 56k stars), Rust TDD Workflow (rtk-ai/rtk, 83k stars), Clawteam Dev (HKUDS/ClawTeam, 5.5k stars) and Browser Testing with Chrome DevTools (addyosmani/agent-skills, 103k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Vibe Spec Sync?

ash1794 (a GitHub user) maintains it in ash1794/vibe-engineering, which has 163 GitHub stars. The repository holds 33 skills in this directory. The repository was last updated on October 7, 2026.

Source: ash1794/vibe-engineering on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.