Skip to content
Skill Authoring
Skill

/anchor-vet

Evidence-gated diff review for PRs, branches, commit ranges, staged code changes, and merge readiness checks. Use when an AI reviewer must review a concrete git-anchored diff, judge whether code is safe to merge, inspect a PR URL or branch, cross-examine PR or commit claims,

From plugin
techne
1064 skills

Claude Code

$ npx -y skills add lynxlangya/techne --skill anchor-vet --agent claude-code

SKILL.md

anchor-vet.SKILL.md
name: anchor-vet
description: Evidence-gated diff review for PRs, branches, commit ranges, staged code changes, and merge readiness checks. Use when an AI reviewer must review a concrete git-anchored diff, judge whether code is safe to merge, inspect a PR URL or branch, cross-examine PR or commit claims, account blast radius, or render approve/request-changes/blocked verdicts. Do not use for design-only review, whole-codebase audits, bug fixing, or code authoring without a git diff under judgment.

anchor-vet

Force the skipped move in code review: prove the reviewed diff's scope, blast radius, claims, findings, and verdict are anchored to git evidence.

Trigger Check

Use this skill only when there is a concrete code change to judge: a PR, branch, commit range, or staged review target.

Boundary test: can you name a `base...head` pair of git states whose difference is the artifact under judgment? If yes, use `anchor-vet`. If no, get the branch or ref first; do not review pasted diffs or prose descriptions.

Do not use `anchor-vet` for design feedback without a diff, whole-codebase audits, feature implementation, bug fixing, formatting-only tasks, or document review. If the user asks you to fix findings too, render the review verdict first; fixes are a separate task, and behavioral fixes route to `anchor-repro`.

Forced Procedure

1. **Anchor the scope.** Check out the reviewed head locally. Capture external claims before `init`: for PRs, save the title/body from `gh pr view --json title,body --jq '.title + "\n\n" + (.body // "")'` to a claims file. Run: `python3 skills/anchor-vet/scripts/vet_gate.py init --project <root> --review <slug> --base <ref> --head <ref> --claims-file <path>` or, only when there are genuinely no external claims, `--no-claims`. 2. **Read every hunk.** Inspect the full diff and every hunk in `scope.json`. If the diff is too large to read honestly, stop and propose a split. 3. **Walk the blast radius.** For each candidate symbol, read the references found by the gate. Record examined refs with `effect` and a one-line `note`. Examined means you opened/read the reference and judged how the change affects it. 4. **Account weak or symbolless hunks.** For weak/symbolless hunks, use a verified `enclosingUnit` when a named unit exists, or `file-level` with a reason only for genuinely unit-less code/config/prose. 5. **Cross-examine claims.** Disposition every anchored claim id from `scope.json`: `verified`, `contradicted`, `not-verifiable-from-diff`, or `non-claim`. Verified/contradicted claims need citations. 6. **Hunt findings with severity honesty.** Use only `blocking`, `concern`, and `nit`. Cite findings. A `blocking` finding needs R2 cited evidence or an R3 repro probe. When a behavioral assertion is cheap to demonstrate, record a failing `anchor-repro` ledger entry against the reviewed head and cite it with `entrySha256`. 7. **Write and check `review.json`.** Run: `python3 skills/anchor-vet/scripts/vet_gate.py check --project <root> --review <slug>`. Fix check failures by doing the missing review work, not by padding JSON. 8. **Render the verdict through the gate.** Run: `python3 skills/anchor-vet/scripts/vet_gate.py close --project <root> --review <slug> --verdict approve|request-changes|blocked`. Report the verdict, cite `verdict.json`, and name each finding's evidence rung.

Script Contract

Artifacts are written under the target project:

.techne/review/<slug>/
  scope.json    # computed by init
  review.json   # authored by the reviewer
  report.json   # computed by check
  verdict.json  # computed by close

Generated `.techne/` output belongs to target projects. Do not commit it to this repository.

Review skeleton:

{
  "schema": "techne.vet/1",
  "symbols": [
    {
      "id": "s-...",
      "symbol": "changedName",
      "disposition": "reviewed",
      "refs": [
        {
          "file": "src/caller.py",
          "line": 42,
          "effect": "unaffected",
          "note": "caller passes the same contract"
        }
      ]
    }
  ],
  "hunks": [],
  "claims": [
    {
      "ids": ["c-..."],
      "disposition": "verified",
      "citations": [{"file": "src/change.py", "line": 10}]
    }
  ],
  "findings": [],
  "testsAcknowledgment": "No tests changed; the diff is docs-only or existing coverage is enough because ..."
}

Use `reference.md` for the full JSON schema, rubrics, exclusions, weak spots, and probe guidance.

Stop Conditions

  • Stop if no git-anchored `base...head` diff is available.
  • Stop if `init` refuses because of dirty worktree, missing merge base, or head

mismatch; fix the setup or record `blocked`.

  • Stop if the review is too large to read in full; propose a split instead of

sampling silently.

  • Stop before `approve` if refs, hunks, claims, or test acknowledgment remain

unaccounted.

  • If head moves mid-review, do not fight the tool. Close the old slug as

`blocked --reason ...` or leave it, then start a new slug for the new head.

Read more
@lynxlangya
Ships withtechne

τέχνη · /ˈtɛk.niː/ · "TEK-nee" Ancient Greek for craft · skill · art: the practical know-how of making and doing, and the shared root of both technique and technology. Aristotle placed technē (knowing how) beside epistēmē (knowing that).

Stars on GitHub

Momentum

stars in total
106
Star history of lynxlangya/techne on GitHub, a chart by star-history.com

Other skills on techne.

More skills from other plugins.

Questions about anchor-vet.

Which coding agents can use anchor-vet?
anchor-vet installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.