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, 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.From its SKILL.md
npx -y skills add lynxlangya/techne --skill anchor-vetAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- runs commandsInstructs the agent to run 4 commands, including `gh pr view --json title,body --jq '.title + "\n\n" + (.body // "")'` and 3 more.
SKILL.md
5.0 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it
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
- Anchor the scope. Check out the reviewed head locally. Capture external
claims before
init: for PRs, save the title/body fromgh 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. - 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. - Walk the blast radius. For each candidate symbol, read the references
found by the gate. Record examined refs with
effectand a one-linenote. Examined means you opened/read the reference and judged how the change affects it. - Account weak or symbolless hunks. For weak/symbolless hunks, use a
verified
enclosingUnitwhen a named unit exists, orfile-levelwith a reason only for genuinely unit-less code/config/prose. - Cross-examine claims. Disposition every anchored claim id from
scope.json:verified,contradicted,not-verifiable-from-diff, ornon-claim. Verified/contradicted claims need citations. - Hunt findings with severity honesty. Use only
blocking,concern, andnit. Cite findings. Ablockingfinding needs R2 cited evidence or an R3 repro probe. When a behavioral assertion is cheap to demonstrate, record a failinganchor-reproledger entry against the reviewed head and cite it withentrySha256. - 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. - 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, citeverdict.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...headdiff is available. - Stop if
initrefuses because of dirty worktree, missing merge base, or head mismatch; fix the setup or recordblocked. - Stop if the review is too large to read in full; propose a split instead of sampling silently.
- Stop before
approveif 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.
What ships with it: 5 files
95.9 KB alongside SKILL.md, 1 of them executable
scripts/
- vet_gate.pyruns77.0 KB
- eval.md7.8 KB
- README-CN.md1.7 KB
- README.md1.7 KB
- reference.md7.8 KB
Gives 0 of the 12 instructions most pr commit review skills give in ~1.2k tokens
Counted across 1,055 of the 1,911 authors here whose files we hold, read 2026-09-06
- Use conventional commit message formatin 150 of 1055, across 145 files
- Announce skill usage at startin 78 of 1055
- Use imperative mood for commit descriptionsin 54 of 1055, across 51 files
- Add directory to gitignore if not ignoredin 52 of 1055, across 41 files
- Use imperative mood for commit subjectin 52 of 1055
- Run tests to verify clean baselinein 42 of 1055, across 32 files
- Push branch to originin 40 of 1055, across 38 files
- Verify worktree directory is ignored before creationin 39 of 1055, across 32 files
- Delete branches after mergingin 38 of 1055, across 30 files
- Create worktree with new branchin 37 of 1055, across 32 files
- Wrap body text at 72 charactersin 36 of 1055, across 34 files
- Auto-detect and run project setupin 35 of 1055, across 27 files
Said here and by no other author read
- Check out the reviewed head locally
- Capture external claims from the PR
- Run the init script with base and head refs
- Inspect every hunk in the scope
- Read references for each candidate symbol
- Disposition every anchored claim id
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.