Skip to content
Back to skills

Doc Sync

ASecurity

Find the documentation a change just made false and fix exactly that, examples copied from a passing run. Use when a flag was renamed, a path moved, a default changed, a command was removed, or a README example no longer matches what the code prints. Auto-triggers on: "update the docs", "are the docs current", "the README is out of date", "document this change", "the docs are stale"

  • 4 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 1, 2026
ai-agentsrustgobashgitdocumentation

Security analysis

A100/100

Scanned October 1, 2026

npx -y skills add Univers42/claude-deal-with-the-devil --skill doc-sync --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Doc Sync?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Doc Sync
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/univers42-doc-sync-claude-deal-with-the-devil/badge)](https://www.skillsdirectory.com/skills/univers42-doc-sync-claude-deal-with-the-devil)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
# GENERATED by 'devil export gemini' from the kit's Claude-format sources. Do not edit; run 'devil export gemini' instead.
name: doc-sync
description: >
  Find the documentation a change just made false and fix exactly that, examples
  copied from a passing run.
  Use when a flag was renamed, a path moved, a default changed, a command was removed,
  or a README example no longer matches what the code prints.
  Auto-triggers on: "update the docs", "are the docs current", "the README is out of
  date", "document this change", "the docs are stale"
allowed-tools: Read, Write, Edit, Grep, Glob, Bash
metadata:
  stage: stable
  since: "1.0.0"
---

# Doc sync

Documentation does not rot gradually. It becomes false at a specific commit, and then
stays false until someone notices — usually a new person, who trusts it, and loses an
afternoon.

This is the pass that runs *after* a change: find what the change falsified, and fix
exactly that. The `documenter` agent writes docs from scratch; this keeps existing ones
true.

## 1. Find what the change falsified

Start from the diff, not from the docs.

```sh
git diff --name-only <base>..HEAD
```

For every renamed, removed or signature-changed thing, grep the docs for it:

```sh
rg -n '<old-name>|<old-flag>|<old-path>' --glob '*.md' --glob '*.rst'
devil selfcheck  # in a .claude config: names docs claim but that are gone
```

The five that go stale first, in order of how often:

1. **Command examples** — a renamed flag, a changed default, a moved path.
2. **Output samples** — pasted once, never re-run, now showing columns that no longer
   exist.
3. **Config keys** — documented after being renamed.
4. **Cross-references** — a link to a file that moved or a section that was retitled.
5. **Counts and lists** — "the six tools", now seven. This one is invisible and
   constant.

## 2. Verify before you rewrite

Do not fix a doc from what you assume the new behaviour is. Run it.

```sh
devil watch --idle 60 -- <the documented command>
```

Paste the **real** output, unglamorous parts included. Output trimmed to look cleaner
than reality is a small lie that costs someone an hour.

## 3. Examples come from tests

Every example is copied from a passing test or is a command you just ran. Never
composed from memory — a plausible-looking snippet that does not run is worse than no
example, because it is trusted.

**No test for what you are documenting?** That is the finding. Say it and route it to
the `write-test` skill. Do not invent an example to fill the hole.

## 4. Keep one source of truth

- A concept is explained in exactly **one** place and linked from everywhere else. Two
  explanations drift, and the reader finds the stale one.
- Found a second explanation? Delete it and link. That is the fix, not "update both".
- Cut filler: "simply", "just", "easily", "powerful", "seamless", "robust".
- Keep file headers true — this repo's convention is a block comment stating the why,
  the trick, or the bug that motivated the code. When the behaviour changes, the header
  changes in the same commit (`rules/minimalism-markers.md`).
- New limitation? It gets a `Caveat:` line (`rules/caveat.md`).

## 5. Do not overreach

You are syncing, not rewriting. A doc that is merely *imperfect* is out of scope —
changing it buries the change that matters in a diff nobody reads. Fix what is now
**false**, and note the rest separately.

Never change source to make a doc easier to write. If the code is wrong, say so and hand
it to the `builder`.

## Report

- Docs updated, with the specific claim that had become false in each.
- The commands run to verify each example, and their output.
- Duplicate explanations collapsed into a link.
- **Anything you could not document** because the behaviour is untested or unclear —
  named, not silently skipped.
- Docs you deliberately left alone, and why.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.