clone-check
Decide whether a finished build is a clone of one already shipped, the way the final_verdict reviewer decides it. Carries the discrimination the check turns on (reusing a proven component is legitimat
Files3
View on GitHubSKILL.md.claude/skills/clone-check/SKILL.md
GitHubClone check
Two builds are not the same task because they share a device. They are the same task when the thing a solver has to see is the same thing.
Part 0. What this is for
The final_verdict reviewer excludes a package that fingerprints against anything delivered, and the client has said these builds read as templated. The question is whether a reviewer holding both builds learns nothing new from the second, which is about the driver, not the surface. The check reports at the severity a reviewer would attach and never repairs; a clone is answered by a redraw, which is the author's.
Where it runs. Every build runs the free half, guard.py heart and guard.py surface, at stage 3. The
adjudicated check (the clone-auditor agent, medium effort) runs only when the author asks, through
/clone-check, because it spends tokens. The corpus baseline is corpus/fingerprints.json (tracked); the
working cache under .cache/ is seeded from it and never committed. The author refreshes the baseline on a
checkout holding every pack: fingerprint.py extract --out .claude/skills/clone-check/corpus/fingerprints.json. The mechanical screen is fingerprint.py extract then
fingerprint.py screen (default the last 15 builds), whose hard tells (byte-identical files, same-seed
tables surviving a rename, identical column sets, shared multi-word invented names, masked prompt wording)
route straight to adjudication.
Part 1. The discrimination
- Reusing a component is legitimate; reusing the driver is not. A proven device is meant to be spent again. The driver, the one insight the solver has to reach, is what a reviewer remembers and a solver can be primed against. Familiar moves in a new order with a new decisive move is a new task; new moves arriving at the same insight is the old task reskinned. A similarity score ranks these backwards, so the check is never a score.
- The stumping strategy is not a component. Different drivers can share a strategy (a withheld rule under an official decoy; a certified record blessing the wrong method until a forward condition breaks it). The client names the first as about 40 percent of what it receives and rejects replicated approaches, so a strategy carrying a large share of a batch is a finding even when every pair is clean.
- The prompt shape is a component (
guide-to-prompt/references/shapes/): it supplies the 25 criteria and will repeat. Score a shared shape as Track A; escalate only when it hides the same decisive rung. It is very visible, so vary it across a batch and check it in pre-flight. - Read the position, not the inventory. A device decisive in one build and at rung 1 in the other is demoted, which is reuse. Decisive in both is spent twice, whatever the surface distance.
Part 2. Two tracks, never merged into one score
Track A, what a reviewer sees: prompt wording, file names, schemas, row counts, values, invented names,
dated windows, deliverable species, write-up phrasing. A Track A hit against a delivered task is exclusion
level by itself. The repair is a rename, not optional. Run
../guide-to-prompt/references/voice-check.py bare on a batch first: the script measures the surface
(question forms, repeated phrases, length, file count, format mix) and this skill adjudicates. A
monoculture spread thinly is invisible pair by pair and obvious in the counts (eighteen prompts, no two
clones, one skeleton).
Track B, the mechanism: gap, pattern, decisive rung, calibration form, decision family. A hit means the draw failed; the repair is a redraw that usually invalidates the data, so catch it early. Check the mechanism axes independently, never behind a surface threshold: a fully reskinned surface over a repeated driver scores near zero on surface and is the worst case.
Part 3. The tiers, by cost to answer
| Tier | What it is |
|---|---|
| Exact | The same artifacts. |
| Same seed | Renamed surface over the same generated values (row counts, column sets, numbers survive). Reads as hiding. |
| Dataset | The same spine dataset or schema; banned between consecutive builds (stumping Part 6). |
| Template | The same driver: gap, pattern and decisive rung line up whatever the nouns. The tier the client's note was about, and the only one surviving a full rename. |
| Shape echo | Different mechanism, same outline (ask sentence, deliverable species, decision shape, calibration organ). Soft flag. |
| Idiom | Author habits across the corpus (a file role, an ask construction, a deliverable pairing). Corpus wide, reported apart from pairs. |
| Strategy monoculture | Read each card's stump_strategy, decisive_rule_filed, official_decoy, validated_decoy (design notes for older builds). A finding, builds named, when the withheld rule with an official decoy exceeds two in any twelve, the certified-record decoy exceeds three, or any one strategy holds a third of the batch. Corpus wide. |
| Clean, shares components by design | A verdict, stated out loud when devices are shared and drivers differ, so the author keeps reusing what works. |
Part 4. Evidence that is not there
Read the fingerprint cards first (../fingerprint/cards/): one vocabulary, a domain-stripped driver
sentence, and mechanism_source: submission_only where the mechanism was never recorded. Back-fitted labels
are accurate about the mechanism and approximate about the name, so two builds sharing one share a guess.
Where the mechanism cannot be read, report the pair as checked on Track A only. A driver reconstructed
from a prompt is a fabrication and sends an author to redraw a sound build.
Part 5. How the check goes wrong
- Flags legitimate reuse. Proximity is not a finding; no Template finding without the shared decisive move named in one sentence.
- Misses the reskin. The mechanism axes need their own route to adjudication.
- Scores instead of deciding. A number is triage; the verdict comes from reading both builds.
- Treats the corpus as flat. A collision with a delivered build excludes; with a failed or retired build it is weaker; with the slot's own earlier architecture it is not a finding.
Part 6. What a finding carries
The tier, the track, the two builds and both delivery statuses, the shared thing stated as a mechanism in one sentence (or it is not a finding), and the one axis to redraw. Say when a finding is Track A only: the repair is a rename, not a rebuild.