skill-sync-checker

Detects content drift between skill files and their source documents. Helps maintain skills that are derived from other documentation by comparing content and flagging outdated sections.

16 stars

Best use case

skill-sync-checker is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Detects content drift between skill files and their source documents. Helps maintain skills that are derived from other documentation by comparing content and flagging outdated sections.

Teams using skill-sync-checker should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/skill-sync-checker/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/documentation/skill-sync-checker/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/skill-sync-checker/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How skill-sync-checker Compares

Feature / Agentskill-sync-checkerStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Detects content drift between skill files and their source documents. Helps maintain skills that are derived from other documentation by comparing content and flagging outdated sections.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Skill Sync Checker

A utility skill that detects when skill content has drifted from its source documents. Any skill file that includes a `<!-- source: path/to/file -->` marker can be checked for freshness and updated accordingly.

## When to Use This Skill

### User-Initiated (Agent Requested)

Use this skill when the user:

- Asks to check if a skill's content is up to date
- Has modified source documentation and wants to sync derived skills
- Is preparing a skill for publishing and wants to verify freshness
- Asks "is this skill still accurate?" or "has the source changed?"
- Performs routine maintenance on skills

### Auto-Triggered (via Cursor globs)

This skill is automatically injected into context when the user edits `README.md` (configurable via `.cursor/rules/skill-sync-checker.mdc` globs).

When auto-triggered, follow this lightweight flow:

1. Scan `skills/**/SKILL.md` for `<!-- source: ... -->` markers referencing the file being edited
2. If a match is found, **briefly remind** the user that a skill depends on this file and may need syncing
3. Do **not** automatically run the full detection workflow or modify any files — just notify

Example notification:

```
Note: skills/reskill-usage/SKILL.md is derived from README.md (last synced: 2026-02-12).
If your changes affect CLI commands, options, or usage examples, the skill may need updating.
Run a sync check when you're done editing.
```

## Source Marker Convention

Skill files that are derived from other documents should include source markers as HTML comments at the top of the file (before or after the YAML frontmatter):

```markdown
<!-- source: README.md -->
<!-- synced: 2026-02-11 -->

---
name: my-skill
description: ...
---

# My Skill
...
```

### Marker Format

| Marker                    | Required | Description                                          |
| ------------------------- | -------- | ---------------------------------------------------- |
| `<!-- source: <path> -->` | Yes      | Relative path to the source file (from project root) |
| `<!-- synced: <date> -->` | No       | ISO date of last sync (YYYY-MM-DD)                   |

A file can have **multiple source markers** if it derives from several documents:

```markdown
<!-- source: README.md -->
<!-- source: docs/cli-spec.md -->
<!-- synced: 2026-02-11 -->
```

### Where to Place Markers

- Place source markers at the very top of the file
- If the file has YAML frontmatter (`---`), markers can go before or after it
- Markers are HTML comments and will not render in the skill content

## Detection Workflow

When asked to check a skill for sync status, follow these steps:

### Step 1: Find Source Markers

Scan all `.md` files in the target skill directory. For each file, look for `<!-- source: ... -->` comments. Files without source markers are original content and can be skipped.

### Step 2: Read Source Files

For each source marker, read the referenced file. If the source file does not exist, report it as an error — the source may have been moved or deleted.

### Step 3: Compare Content

Compare the skill file against its source document(s). Focus on **structural and factual differences**, not formatting:

**Key things to check:**
- Commands, options, or features mentioned in the source but missing from the skill
- Commands, options, or features in the skill that no longer exist in the source
- Changed default values, paths, or configuration formats
- New sections in the source that should be reflected in the skill
- Deprecated or removed functionality still mentioned in the skill

**Ignore:**
- Minor wording differences (the skill may rephrase for agent consumption)
- Formatting differences (tables vs lists, heading levels)
- Content the skill intentionally omits (internal details, development docs)
- Order of sections

### Step 4: Report Results

Present findings in a clear summary:

```
Sync Check: skills/reskill-usage/SKILL.md
Source: README.md
Last synced: 2026-02-11

Status: ⚠ Out of sync

Differences found:
  1. New command `find` added in source (missing from skill)
  2. Option `--registry` added to `install` command
  3. New agent "Gemini" added to Multi-Agent Support table

Recommendation: Update the skill to reflect these changes.
```

If everything is in sync:

```
Sync Check: skills/reskill-usage/SKILL.md
Source: README.md
Last synced: 2026-02-11

Status: ✓ In sync

No significant differences found.
```

If the `<!-- synced: ... -->` marker is absent, report "Last synced: unknown":

```
Sync Check: skills/example/SKILL.md
Source: docs/example-spec.md
Last synced: unknown

Status: ⚠ Out of sync
...
```

## Update Workflow

When differences are detected and the user confirms they want to update:

### Step 1: Show Differences

Present each difference with the relevant content from the source file so the user can review what changed.

### Step 2: Update Skill Content

After user confirmation, update the skill file to reflect the source changes. Preserve the skill's structure and agent-specific content (When to Use, Workflows, Troubleshooting) — only update the sections that correspond to source material.

### Step 3: Update Synced Date

Update the `<!-- synced: ... -->` marker to today's date:

```markdown
<!-- synced: 2026-02-12 -->
```

## Detecting Potentially Relevant New Documents

When checking a skill, also scan the project for new documentation that might be relevant but is not yet tracked:

### Heuristic Rules

| File Pattern                            | Likely Relevant          | Action                   |
| --------------------------------------- | ------------------------ | ------------------------ |
| `*-spec.md`, `*-summary.md`             | Yes — user-facing specs  | Suggest adding as source |
| `README.md`, `README.*.md`              | Yes — user-facing docs   | Suggest adding as source |
| `API.md`, `docs/*.md`                   | Yes — user-facing docs   | Suggest adding as source |
| `CHANGELOG.md`                          | No — auto-generated      | Skip                     |
| `CONTRIBUTING.md`                       | No — contributor guide   | Skip                     |
| `*-design.md`                           | No — internal design     | Skip                     |
| `*-plan.md`, `*-implementation-plan.md` | No — internal plans      | Skip                     |
| `*-migration-plan.md`                   | No — internal migration  | Skip                     |
| `*-adaptation.md`                       | No — internal adaptation | Skip                     |

When a potentially relevant new document is found, notify the user:

```
New document detected: docs/new-feature-spec.md
This looks like a user-facing spec that might be relevant to the skill.
Would you like to review it for inclusion?
```

**Never automatically add new sources or modify skill content without user confirmation.**

## Example: Checking reskill-usage

Here is a complete example of checking the `reskill-usage` skill:

```
User: "Check if the reskill-usage skill is up to date"

Agent steps:
1. Read skills/reskill-usage/SKILL.md
2. Find marker: <!-- source: README.md -->
3. Read README.md
4. Compare commands table, source formats, configuration, etc.
5. Report: "The skill is missing the new `find` command that was
   added to README.md. Would you like me to update it?"
```

After user confirms:

```
Agent steps:
1. Add `find` command to the Commands table in SKILL.md
2. Update <!-- synced: 2026-02-12 -->
3. Report: "Updated SKILL.md — added `find` command, synced date
   updated to 2026-02-12"
```

## Batch Checking

To check all skills in a project at once:

```
User: "Check all skills for sync status"

Agent steps:
1. Find all SKILL.md files in the project (skills/, .cursor/skills/, etc.)
2. For each file with source markers, run the detection workflow
3. Present a summary of all results:

   Sync Check Summary:
     ✓ skills/find-skills/SKILL.md — no source markers (original content)
     ⚠ skills/reskill-usage/SKILL.md — 2 differences found (source: README.md)
     ✓ skills/skill-sync-checker/SKILL.md — no source markers (original content)
```

## Limitations

- This skill guides the agent through a manual comparison process — it does not run automated diffing tools
- The agent uses judgment to determine what constitutes a "significant" difference
- Source markers are a convention, not enforced — files without markers are simply skipped
- The heuristic rules for new document detection are suggestions, not definitive classifications

Related Skills

sync-docs

16
from diegosouzapw/awesome-omni-skill

Strategic documentation sync - review docs before implementation (pull context) OR export learnings after implementation (push to living docs). NOT bidirectional - two separate one-way operations at different phases.

openclaw-docs-sync

16
from diegosouzapw/awesome-omni-skill

Sync OpenClaw + ClawHub + Skills docs into a local mirror for the QMD memory backend.

docs-sync

16
from diegosouzapw/awesome-omni-skill

Sync AILANG documentation website with codebase reality. Use after releases, when features are implemented, or when website accuracy is questioned. Checks design docs vs website, validates examples, updates feature status.

async

16
from diegosouzapw/awesome-omni-skill

Regel 10: Async-First mit Symfony Messenger. Use when working with async.

synchronization

16
from diegosouzapw/awesome-omni-skill

Convergence to common trajectory in coupled systems

sync-specs

16
from diegosouzapw/awesome-omni-skill

Sync ALL increment specifications to living docs structure by default. Creates FS-XXX folders for each increment. Use with increment ID to sync single increment.

asyncredux-error-handling

16
from diegosouzapw/awesome-omni-skill

Implement comprehensive error handling for actions. Covers the `wrapError()` method for action-level error wrapping, GlobalWrapError for app-wide error transformation, ErrorObserver for logging/monitoring, and the error handling flow (before → reduce → after).

ado-sync

16
from diegosouzapw/awesome-omni-skill

Help and guidance for Azure DevOps synchronization with SpecWeave increments. Use when asking how to set up ADO sync, configure credentials, or troubleshoot integration issues. For actual syncing, use /sw-ado:sync command.

a11y-checker-ci

16
from diegosouzapw/awesome-omni-skill

Adds comprehensive accessibility testing to CI/CD pipelines using axe-core Playwright integration or pa11y-ci. Automatically generates markdown reports for pull requests showing WCAG violations with severity levels, affected elements, and remediation guidance. This skill should be used when implementing accessibility CI checks, adding a11y tests to pipelines, generating accessibility reports, enforcing WCAG compliance, automating accessibility scans, or setting up PR accessibility gates. Trigger terms include a11y ci, accessibility pipeline, wcag ci, axe-core ci, pa11y ci, accessibility reports, a11y automation, accessibility gate, compliance check.

unsafe-checker

16
from diegosouzapw/awesome-omni-skill

CRITICAL: Use for unsafe Rust code review and FFI. Triggers on: unsafe, raw pointer, FFI, extern, transmute, *mut, *const, union, #[repr(C)], libc, std::ffi, MaybeUninit, NonNull, SAFETY comment, soundness, undefined behavior, UB, safe wrapper, memory layout, bindgen, cbindgen, CString, CStr, 安全抽象, 裸指针, 外部函数接口, 内存布局, 不安全代码, FFI 绑定, 未定义行为

sync

16
from diegosouzapw/awesome-omni-skill

Fast save-point: sync all session-context files and MEMORY.md with current progress. Zero questions, zero delay. Use when user says /sync, save progress, save state, sync context, or /sync --full for capability inventory.

sync-db

16
from diegosouzapw/awesome-omni-skill

This skill should be used when the user asks to "sync database", "get production data", "download prod db", "migrate database", "update local db", "refresh dev database", or needs to sync production data to local/dev environment.