Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Reconstruct a repository as cited
.claude/skills/boshu2-codebase-recon/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 517% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 148% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 52% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 77% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 39% | 0% |
Build a reusable, falsifiable model of a repository. This skill reports what the tree and executable probes support; it does not edit code or issue a final PASS/WARN/FAIL verdict.
source-of-truth precedence.
fact and inference.
instead of rewriting unchanged evidence as fresh discovery.
One skill replaces a cluster of loose recon skills. Steer it with mode, view emphasis, lens, and depth — do not invent a second skill for each shape.
| Control | Values | Use when | |---|---|---| | Mode | baseline \| delta | First pack vs refresh after a prior recon | | View emphasis | mental model · bounded audit · pattern evidence · synthesis | Archaeology-style map, audit-style findings, pattern harvest, or executive synthesis | | Lens | persistence · auth · CLI · build · test (one per pass) | Domain-deep cut instead of a shallow whole-tree sweep | | Depth | quick · standard · deep | Orientation vs onboarding vs decision-grade evidence |
Ask for the shape explicitly, for example:
textcodebase-recon --mode=delta --view=audit --lens=cli --depth=standard codebase-recon baseline, mental-model view, persistence lens, deep
Natural-language equivalents count. The durable pack still carries all four views; emphasis changes what you spend tokens on and what the companion report leads with. Pattern packaging beyond evidence pointers belongs in pattern-mining. Binding PASS/FAIL stays with validate.
precedence. Search for validated prior manifests before starting with skills/codebase-recon/scripts/validate-output.sh --repo-root <target> --discover-priors. Successful empty output means no prior pack exists at either documented default.
baseline mode. If one exists, verify itsstill-valid claims against the current commit and use delta mode. Preserve valid evidence by reference and describe only changed paths and synthesis.
boundary, and test. Prefer a few complete flows over a broad file inventory.
evidence, and synthesis. Label each claim fact, inference, or unknown, assign confidence, and cite evidence for facts and inferences.
report, then run the validator. Missing evidence and hidden coverage gaps are contract failures, not prose caveats.
Enter through what the repository declares about itself — README, architecture docs, build manifests, CLI help — and only then verify those declarations against the tree. Before the first broad search, list the declared entry points and trace at least one of them to code. The named failure mode is grep-first drift: opening with keyword sweeps builds a model of whatever happened to match, and the recon inherits the search terms' blind spots instead of the repository's actual shape. When declaration and code disagree, that is a finding, not noise: record the doc's claim as inference, the traced behavior as fact, and cite both.
Each pass adopts exactly one lens — persistence, auth, CLI surface, build system, test harness — and follows it from entry point through domain logic to its tests before switching lenses. A pass ends in exactly one of two states: the lens has one complete entry-to-test flow, or the report names the file and line where the trace was cut and why. The named failure mode is the shallow sweep: touching every directory at depth one produces a file inventory that reads like a model but supports no claim, because no path was followed far enough to falsify anything.
The durable output doc earns its keep only if a future reader can re-verify a claim without redoing the recon. Every fact cites file:line; every inference cites the file:line facts it rests on. A claim that cannot be cited is downgraded to unknown before the report ships — never shipped uncited at its original confidence. The manifest validator checks citations against the exact Git commit declared by that manifest. They must be safe repository-relative regular-file paths; artifact-local and external paths are rejected because this schema has no digest field for those bytes. A supplied line number must exist in the committed blob. The validator also resolves each representative flow path at that commit. It does not require every citation to carry a line number; hold the companion report to the stricter floor: a path without a line is a pointer to homework, not a citation, and counts as a coverage gap in the report's own terms.
When reconstructing a repository other than the one that ships this skill, pass --repo-root <target> to the validator so evidence resolves against the target tree rather than the skill's own checkout.
.agents/scratch/codebase-recon/<run-id>/codebase-recon.json with companion reportcodebase-recon.md in the same directory.
codebase-recon.v1 JSON manifest plus an evidence-cited Markdownreport covering the same commit, mode, flows, claims, and scope boundaries. The manifest's report object names codebase-recon.md and binds its lowercase SHA-256. The report carries one <!-- codebase-recon-report.v1 --> marker plus manifest_commit, manifest_mode, flows_sha256, claims_sha256, and coverage_sha256 markers computed from canonical compact sorted JSON for those sections.
skills/codebase-recon/scripts/validate-output.sh <codebase-recon.json>snapshots and validates both artifacts, then rechecks their identities and the repository HEAD/index/worktree before returning.
research, planning, review, or documentation workflow; the consumer owns any decision or code-change plan.
Packs already stored under .agents/recon/<run-id>/ remain in place. The validator's --discover-priors mode enumerates validated codebase-recon.json manifests under both that legacy root and the current scratch root. Record the selected manifest's exact path in prior_recon; delta validation re-validates the cited manifest and its prior chain instead of accepting a path merely because it exists. New packs use the current default unless the caller supplies a different path. Never move, copy, or delete an earlier pack merely to make its directory match the new state tier, because that would obscure the identity a delta cites. Downstream consumers use the exact returned artifact paths rather than scanning only one default root. An earlier pack without a digest-bound companion report remains untouched but is not returned as validated prior evidence under the current contract.
Baseline manifests carry at least one complete entry-to-test flow. A manifest being handed off must name the target repository's current HEAD by its full object-format OID; abbreviations and hex-looking refs are rejected. Historical manifests cited as priors must likewise carry full immutable commit OIDs that resolve in that repository. Delta manifests name an existing prior recon, set baseline_verified: true, and list exactly the paths in Git's prior-commit-to-current-commit diff. The validator derives those facts rather than trusting the boolean or path list. It also refuses dirty tracked, staged, or untracked source state outside .agents/, because those bytes are not bound by the declared commit. Every manifest lists both inspected and uninspected scope. Manifests and companions must be real regular files, are read from one snapshot, and are rechecked along with HEAD and source status after validation so a mid-run swap cannot earn a green result for different bytes.
The validator is the machine boundary:
bashskills/codebase-recon/scripts/validate-output.sh <recon.json>
Evidence entries are repository-relative files at the manifest's commit, optionally followed by a line number. Delta manifests require a valid prior codebase-recon.json chain, an ancestor commit, baseline_verified: true, and an exact changed-path match to the Git diff ending at current HEAD. Enumerate validated manifests at both documented defaults with:
bashskills/codebase-recon/scripts/validate-output.sh --repo-root <target> --discover-priors
Executable behavior: references/codebase-recon.feature.
unknowns remain visibly typed and never masquerade as established behavior.
while inspected and uninspected scope stay explicit.
handed to a downstream consumer.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-06 | pass→pass | 4,938 | 11,986 | +143% | 1 | 1 | 0% | 688 | 4,254 | +518% | 0 | 0 | — |
case-01 | fail→fail | 5,167 | 5,792 | +12% | 1 | 1 | 0% | 229 | 2,618 | +1043% | 0 | 0 | — |
case-02 | fail→fail | 23,692 | 5,721 | -76% | 1 | 1 | 0% | 4,714 | 2,576 | -45% | 0 | 0 | — |
case-03 | fail→fail | 6,835 | 5,603 | -18% | 1 | 1 | 0% | 251 | 2,463 | +881% | 0 | 0 | — |
case-04 | fail→fail | 30,394 | 6,162 | -80% | 1 | 1 | 0% | 6,178 | 2,500 | -60% | 0 | 0 | — |
case-05 | fail→pass | 3,872 | 4,779 | +23% | 1 | 1 | 0% | 476 | 2,935 | +517% | 0 | 0 | — |
case-07 | fail→pass | 7,618 | 4,510 | -41% | 1 | 1 | 0% | 1,217 | 3,023 | +148% | 0 | 0 | — |
case-08 | fail→pass | 12,829 | 4,036 | -69% | 1 | 1 | 0% | 1,906 | 2,902 | +52% | 0 | 0 | — |
case-09 | fail→pass | 11,495 | 5,128 | -55% | 1 | 1 | 0% | 1,710 | 3,021 | +77% | 0 | 0 | — |
case-10 | fail→pass | 15,088 | 5,610 | -63% | 1 | 1 | 0% | 2,236 | 3,099 | +39% | 0 | 0 | — |
case-11 | pass→pass | 11,993 | 3,646 | -70% | 1 | 1 | 0% | 1,999 | 2,807 | +40% | 0 | 0 | — |
case-17 | fail→pass | 8,507 | 1,551 | -82% | 1 | 1 | 0% | 1,269 | 2,475 | +95% | 0 | 0 | — |
case-12 | fail→fail | 12,363 | 4,182 | -66% | 1 | 1 | 0% | 1,761 | 2,884 | +64% | 0 | 0 | — |
case-13 | fail→pass | 7,779 | 4,780 | -39% | 1 | 1 | 0% | 1,175 | 3,090 | +163% | 0 | 0 | — |
case-14 | pass→pass | 11,104 | 7,096 | -36% | 1 | 1 | 0% | 1,824 | 3,425 | +88% | 0 | 0 | — |
case-15 | fail→pass | 14,106 | 3,524 | -75% | 1 | 1 | 0% | 2,362 | 2,812 | +19% | 0 | 0 | — |
case-16 | fail→pass | 10,894 | 3,652 | -66% | 1 | 1 | 0% | 1,567 | 2,792 | +78% | 0 | 0 | — |
case-18 | fail→pass | 11,652 | 3,017 | -74% | 1 | 1 | 0% | 1,781 | 2,683 | +51% | 0 | 0 | — |
case-19 | fail→pass | 12,749 | 3,465 | -73% | 1 | 1 | 0% | 1,989 | 2,738 | +38% | 0 | 0 | — |
case-20 | fail→pass | 13,634 | 2,124 | -84% | 1 | 1 | 0% | 2,143 | 2,559 | +19% | 0 | 0 | — |
case-21 | fail→pass | 8,679 | 4,237 | -51% | 1 | 1 | 0% | 1,289 | 2,878 | +123% | 0 | 0 | — |
case-22 | pass→pass | 10,676 | 3,815 | -64% | 1 | 1 | 0% | 1,543 | 2,757 | +79% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 18 counted toward the lift figure. The other 4 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +59 percentage points is the difference between those two pass rates over the 18 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.