Skip to content
Back to skills

Double Knuth

ASecurity

Generic two-pass "Double-Knuth" review for ANY repo or file set: Pass 1 = correctness/bugs on the change (delegates to /code-review when a git diff exists, agent-based otherwise), Pass 2 = completeness + cross-file/doc consistency — the defect class a diff reviewer structurally cannot see (stale counts/enumerations, docs contradicting changed behavior, dead paths, orphaned files, contract drift). Read-only: returns a ranked BUG/RISK/NIT list with file:line + concrete fixes. Specialized versio...

  • 6 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 19, 2026
ai-agentsrustcode-reviewgit

Works with

  • claude code

Security analysis

A100/100

Scanned September 19, 2026

npx -y skills add karero/website-builder --skill double-knuth --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Double Knuth?

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

Security grade badge for Double Knuth
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/karero-double-knuth/badge)](https://www.skillsdirectory.com/skills/karero-double-knuth)

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
---
name: double-knuth
description: >
  Generic two-pass "Double-Knuth" review for ANY repo or file set: Pass 1 =
  correctness/bugs on the change (delegates to /code-review when a git diff
  exists, agent-based otherwise), Pass 2 = completeness + cross-file/doc
  consistency — the defect class a diff reviewer structurally cannot see (stale
  counts/enumerations, docs contradicting changed behavior, dead paths, orphaned
  files, contract drift). Read-only: returns a ranked BUG/RISK/NIT list with
  file:line + concrete fixes. Specialized versions take precedence: websites →
  website-review; this skill covers everything else (skill suites, scripts,
  tools, configs). Trigger
  phrases: "double knuth this", "double knuth the code", "double knuth the
  repo", "two-pass review", "consistency review", "did the docs drift",
  "review the whole repo, not just the diff".
---

# Double-Knuth — generic two-pass review

The review standard the website suite already uses, generalized.
Run it at the END of a work batch, after a multi-file fix wave, or before
trusting a new tool — the moments cross-file consistency silently breaks.
Read-only: report findings; fix only when asked.

## Pass 1 — correctness (the change itself)

- **In a git repo with a diff:** run the host's diff-review command if it has
  one (Claude Code: `/code-review`, effort `high` after a fix wave or for new
  analytics, `medium` for routine edits); on hosts without one (e.g. Codex),
  review the diff yourself in a fresh context with the adversarial BUG/RISK/NIT
  prompt. Either way it covers correctness bugs + reuse/simplification.
- **No repo / no diff:** spawn a read-only agent over the changed files (or, if
  the host has no sub-agent primitive, review them in a separate fresh session)
  asking the two killer questions per guard/test/check: *"can this pass while
  the thing it protects is broken?"* (Rule 9) and *"does anything skip
  silently?"* (Rule 12) — hunt latent bugs that green tests cannot see.
- If the artifact has its own gate (test suite, build, linter), it must be green
  BEFORE Pass 1 — the review is not a substitute for the gate.

## Pass 2 — completeness + cross-file/doc consistency

Hunt what no diff can show. Check the repo against its own claims, verifying
every claim against actual file contents (never from memory):

- **Counts & enumerations:** "the four modules", lists of tests/files/steps/
  options anywhere in docs vs what actually exists.
- **Paths & references:** every file path, `cp` source, link, and import that
  any doc or script mentions actually resolves.
- **Docs ↔ behavior:** README/SKILL.md/comments describing behavior that has
  since changed (soft-warn vs hard-fail, defaults, branch names, formats).
- **Orphans, both directions:** files nothing references; references to files
  that no longer exist.
- **Single source of truth:** values claimed to live in one place (config,
  constants) have no hardcoded copies drifting elsewhere.
- **Declared intent vs actual state (config parity):** what a manifest/config
  *declares* vs what is actually present — a recurring bug class the happy path
  never exercises. Check: a `.gitignore` entry for a file that is still tracked
  (`git ls-files` it — `.gitignore` does NOT untrack); a config key consumed in
  code (`getProperty("x")`, an env var, a DI/Koin name, a flavor `BuildConfig`)
  but **missing from one of the build flavors / environments / `.properties`
  files**; a CI/build step invoking a name that doesn't exist (a fastlane *lane*
  absent from the Fastfile, a gradle task, a Make target, a script path); a
  plugin/dependency still referenced after its repo or module was removed.
- **Conventions:** the repo's stated conventions (naming, URL style, error
  handling) hold in every file, including examples inside docs.

Method: deterministic grep sweeps for the terms touched by recent changes
(Rule 5 — code answers what code can answer), PLUS one fresh-eyes read-only
agent for the judgment calls. Fresh eyes matter most when reviewing your own
fixes — the second Knuth must not share the first one's assumptions.

## Output

One ranked list — **BUG** (wrong or self-contradictory now) / **RISK** (breaks
under a normal future change, or a guard that can't fire) / **NIT** — each with
`file:line`, a one-line explanation, and a concrete fix. Then list the checks
that came back **clean**: silence is not coverage (Rule 12).

## After fixes are applied

Re-run the artifact's own gate end-to-end, and **negative-test any new guard**:
deliberately break the thing it protects and watch it fail with the intended
message (Rule 9). A guard that has never fired is a hypothesis, not a guard.

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.