Best for
- A diff adds a helper, a wrapper, a config layer, an abstraction, or a
- A rewrite, v2, or large refactor landed — the peak over-build context
- A reviewer asks "is all of this needed?", "could the platform do
event4u-app/agent-config/src/skills/overbuild-review-lens/SKILL.md
Use when a diff builds more than the task needs — code that should not exist, a dependency the platform already covers, or a clever form where a flat one reads better. Deletion-hunting, not quality.
Decision brief
A deletion-hunting lens. It asks one question the other judges never ask: should this code exist at all? Sibling of architecture-review-lens and the judge- family — never overlaps with them.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/event4u-app/agent-config --skill "src/skills/overbuild-review-lens"Inspect the Agent Skill "overbuild-review-lens" from https://github.com/event4u-app/agent-config/blob/6a5670b7881a676c0da90d2afb950298087c4ccb/src/skills/overbuild-review-lens/SKILL.md at commit 6a5670b7881a676c0da90d2afb950298087c4ccb. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
Read the ticket / prompt, not just the diff. Over-build is measured against the requirement, not against your taste. Anything the diff adds beyond the requirement is a candidate; anything the requirement demands is not, however large.
A diff adds a helper, a wrapper, a config layer, an abstraction, or a
The measured failure mode this fence exists for: a bare "make it simpler" critic was the only arm in a controlled comparison that dropped a safety guard — the three lines it saved were a path-traversal check. Tests, validation, authorization checks, tenant scoping, and error pat…
Read the ticket / prompt, not just the diff. Over-build is measured against the requirement, not against your taste. Anything the diff adds beyond the requirement is a candidate; anything the requirement demands is not, however large.
For every new unit (function, class, module, config key, dependency), find the highest rung that would have carried it — see agent-interaction-and-decision-quality § 8b-ladder:
Permission review
No configured static risk pattern was detected
This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.
Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 91/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 9 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
A deletion-hunting lens. It asks one question the other judges never ask: should this code exist at all? Sibling of
architecture-review-lensand thejudge-*family — never overlaps with them.
minimal-safe-diff-mechanics
§ The sanctioned-rewrite trap).Do NOT use when:
judge-bug-hunter.judge-security-auditor.judge-code-quality. That judge asks
is this code malformed; this lens asks should it exist.performance. Speed is out of scope here.CORRECTNESS, SECURITY AND PERFORMANCE ARE OUT OF SCOPE FOR THIS LENS.
THE MINIMUM RUNNABLE CHECK IS NEVER FLAGGED FOR DELETION.
A SIZE REDUCTION THAT DROPS A GUARD IS A LOSS, NOT A FINDING.
The measured failure mode this fence exists for: a bare "make it simpler" critic was the only arm in a controlled comparison that dropped a safety guard — the three lines it saved were a path-traversal check. Tests, validation, authorization checks, tenant scoping, and error paths that can actually occur are not over-build. If removing something would reduce coverage of a real case, it is not a finding here.
Read the ticket / prompt, not just the diff. Over-build is measured against the requirement, not against your taste. Anything the diff adds beyond the requirement is a candidate; anything the requirement demands is not, however large.
For every new unit (function, class, module, config key, dependency),
find the highest rung that would have carried it — see
agent-interaction-and-decision-quality
§ 8b-ladder:
| Tag | Meaning | The evidence that makes it a finding |
|---|---|---|
delete: | This should not exist at all | A fence line (see § 3) — mandatory |
stdlib: | The language stdlib or framework already does it | Name the exact API and show it is equivalent |
native: | The OS / runtime / browser / database already does it | Name the platform capability and its availability floor |
yagni: | Built for a requirement nobody stated | Quote the requirement it exceeds |
shrink: | Must exist, but smaller | Name the lines that carry no requirement |
flatten: | Must exist, but in a simpler form | Name the cognitive cost, not the line count |
flatten: is the shape-axis inverse of shrink: — same logic, simpler
form, even when that costs a line or two. Without it the lens only
ever argues downward and becomes a golfing engine. A nested ternary
replaced by an if block is a valid flatten: finding even though the
diff grows.
delete: carries a fence line — no exceptionsChesterton's Fence, operationalised. Agents are documented as
especially fence-blind: complex code reads as an invitation to simplify
when the complexity may exist for a reason the reader has no context
for. This does not restate
minimal-safe-diff's "never
delete code that looks dead without proof" — it is the output contract
that makes the proof visible.
The fence line has three fields, all required:
Fence: why=<why the code existed — blame, test, issue, or "unknown">
safe=<the evidence that removal is safe>
covered=<yes|no|partial — was the removed path under test?>
why=unknown is a legal value and it is not a pass. It downgrades
the finding to a question for the author, never an instruction.covered= is the one machine-checkable input to an otherwise
archaeological judgement (the Beyoncé rule: if you liked it, you put a
test on it). Deleting tested behaviour trips a test and is visible;
deleting untested behaviour breaks silently — so covered=no is
surfaced as higher risk, not as equivalent.A LENS THAT CANNOT SAY "NOTHING TO CUT" IS A FINDING GENERATOR.
A lean diff must produce the honest null, not an invented finding. This is the load-bearing output, not a fallback: a reviewer who sees findings on every diff stops reading them.
file:line and exactly one tag from § 2.delete: has all three fence fields.flatten: findings honestly, including
the ones that add lines.The verdict block carries these ordered fields:
Lens: — fixed value overbuild-review-lensTarget: — the diff range or file set reviewedVerdict: — exactly one of lean / trim / overbuiltFindings: — one line per finding: tag, file:line, one sentence;
delete: findings carry their Fence: line directly beneathNet: — lines removable if every finding is applied, stated as a
signed number so a line-adding flatten: is visibleLens: overbuild-review-lens
Target: <branch / diff range>
Verdict: lean | trim | overbuilt
Findings:
1. stdlib: src/util/uuid.ts:1 Hand-rolled v4 generator; crypto.randomUUID covers it.
2. delete: src/config/flags.ts:12 Flag read by nothing since the feature shipped.
Fence: why=guarded the 2026-03 rollout safe=zero readers, grep clean covered=no
3. flatten: src/parser.ts:88 Nested ternary; an if/else reads flat (+2 lines).
Net: -34 lines
The null, when there is nothing to cut — emit verbatim, do not paraphrase:
Lens: overbuild-review-lens
Target: <branch / diff range>
Verdict: lean
Findings: none — nothing in this diff exceeds the stated requirement.
Net: 0 lines
covered=no makes a deletion riskier, not more attractive. The
absence of a test is the absence of a tripwire.flatten: finding that saves lines is suspicious. If it is
shorter and simpler it is probably a shrink:; flatten: exists
for the cases where simplicity costs length.delete: lines that git already removed. The net
figure is about the diff as proposed, not the diff's own deletions.delete: finding without all three fence fields — the
output contract rejects it.Frequently asked questions
A deletion-hunting lens. It asks one question the other judges never ask: should this code exist at all? Sibling of architecture-review-lens and the judge- family — never overlaps with them.
The source record exposes this install command: npx skills add https://github.com/event4u-app/agent-config --skill "src/skills/overbuild-review-lens". Inspect the command and pinned source before running it.
Alternatives
coreyhaines31/marketingskills
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program
garrytan/gbrain
End-to-end discipline for turning any large data source (audio libraries, email takeouts, document corpora, chat exports, API dumps) into brain pages at scale. The lifecycle spine: SCHEMA → ACCESS → TRIAL → EVALUATE → IMPROVE → CODIFY → TEST → SKILLIFY → BULK → MONITOR. State is tracked in a durable JSON manifest (see MANIFEST-PATTERN.md) so any crash, session boundary, or subagent fan-out resumes from ground truth instead of memory.
alirezarezvani/claude-skills
App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist
dotnet/skills
Migrates .NET test projects from VSTest to Microsoft.Testing.Platform (MTP). Use when user asks to "migrate to MTP", "switch from VSTest", "enable Microsoft.Testing.Platform", "use MTP runner", set OutputType=Exe only for test projects in Directory.Build.props, or mentions EnableMSTestRunner, EnableNUnitRunner, or UseMicrosoftTestingPlatformRunner. USE FOR: MTP behavioral differences vs VSTest (exit code 8, zero tests discovered, --ignore-exit-code, TESTINGPLATFORM_EXITCODE_IGNORE); centralizing