Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when auditing code quality in any codebase — discover and run the repo's real gates (typecheck, lint, dead-code, complexity), judge type discipline and duplication. Assess by default, apply changes on request; the compiler is the first reviewer.
.claude/skills/automagik-dev-code-quality/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 970% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -50% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 16% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 50% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 22% | 0% |
Runtime syntax: invoke the plugin copy through the active runtime's owner-qualified skill selector; use a bare selector only when intentionally selecting a user-tier copy (a separately installed personal copy; Genie no longer seeds this tier). Cross-skill prose below uses bare names as portable semantic routes; the orchestrator resolves the selector for the active runtime.
This lane treats the type system as the cheapest, fastest reviewer on the team: a codebase's quality is measured by how much of its correctness the compiler can prove. Escape hatches — any, unchecked casts, suppression comments, unsafe, # type: ignore — are places where the team chose not to know. Gates exist to be run, not admired: a quality review that doesn't execute the toolchain is an opinion.
This lane's lens is inspired by the work of Anders Hejlsberg — architect of Turbo Pascal, Delphi, C#, and TypeScript.
Assess and report by default. Apply changes only when the invocation explicitly asks. Never assess from reading alone when a gate exists — run it and report its actual output. Findings outside this lane (architecture judgment, test gaps, performance) get a one-line handoff to the relevant lane skill under skills/. When you have enough information to act, act.
Every repo defines its own gates; find them before running anything. Read the package manifest scripts, Makefile/justfile, CI workflows, and CLAUDE.md/AGENTS.md for: the full check command, the individual typecheck / lint / dead-code / complexity commands, the formatter contract, and — critically — documented known false positives and complexity-budget policies. A repo that says "tool X flags Y, it's pre-existing" has told you what not to report. Note which language(s) and type systems are in play and their idiomatic escape hatches.
Genie-framework repos: check .genie/ for quality-related wishes (e.g. a complexity-budget or refactor wish with a hotspot ledger) — new violations are drift against that ledger, not fresh discoveries.
Repo profile — recall, verify, persist. Before deriving from scratch, recall a stored profile for this repo: a memory/brain store if one is available this session, else a well-known file (in genie-framework repos, .genie/repo-profile.md). For this lane the profile records the gate commands, known false positives, complexity-budget policy, and ledger locations. Recalled gate commands are hypotheses — they must still exist and run; report drift as a finding. After the audit, persist what discovery learned: update rather than duplicate, delete what proved wrong.
Profile write boundary. During assess-only and pull-request runs, return proposed profile changes as a profile_delta; do not write memory or repository files. Persist a profile only when the user explicitly asks.
Every gate claim quotes the command, exit code, and relevant output from this session; a gate not run (e.g. tests, owned by the QA lane) is named as not run. Never report "gates pass" from memory or from documentation.
Lead with a one-sentence verdict: which gates pass, which fail. Then findings ranked by severity, each with evidence, the correctness risk in plain language, and the exact edit you'd make on ask. Distinguish "gate is red" (fact) from "discipline is eroding" (trend with examples). In a genie-framework repo, use CRITICAL/HIGH/MEDIUM/LOW for finding severities and SHIP/FIX-FIRST/BLOCKED only for the overall verdict; systemic findings (a hotspot ledger growing, strictness never enabled) belong in a wish via wish, not a drive-by fix list.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-10 | pass→pass | 10,727 | 4,340 | -60% | 1 | 1 | 0% | 1,633 | 1,900 | +16% | 0 | 0 | — |
case-11 | pass→pass | 11,805 | 5,282 | -55% | 1 | 1 | 0% | 1,979 | 2,026 | +2% | 0 | 0 | — |
case-03 | fail→fail | 4,949 | 5,846 | +18% | 1 | 1 | 0% | 325 | 1,533 | +372% | 0 | 0 | — |
case-01 | fail→fail | 17,664 | 5,855 | -67% | 1 | 1 | 0% | 954 | 1,621 | +70% | 0 | 0 | — |
case-02 | fail→fail | 5,664 | 5,924 | +5% | 1 | 1 | 0% | 263 | 1,493 | +468% | 0 | 0 | — |
case-04 | fail→pass | 2,961 | 12,172 | +311% | 1 | 1 | 0% | 252 | 2,696 | +970% | 0 | 0 | — |
case-05 | fail→pass | 22,561 | 4,035 | -82% | 1 | 1 | 0% | 3,591 | 1,790 | -50% | 0 | 0 | — |
case-06 | fail→pass | 9,459 | 6,883 | -27% | 1 | 1 | 0% | 1,519 | 1,764 | +16% | 0 | 0 | — |
case-07 | pass→pass | 3,620 | 3,365 | -7% | 1 | 1 | 0% | 529 | 1,722 | +226% | 0 | 0 | — |
case-08 | fail→pass | 9,677 | 6,149 | -36% | 1 | 1 | 0% | 1,431 | 2,145 | +50% | 0 | 0 | — |
case-09 | pass→pass | 12,775 | 6,942 | -46% | 1 | 1 | 0% | 1,997 | 2,208 | +11% | 0 | 0 | — |
case-12 | fail→pass | 8,892 | 3,076 | -65% | 1 | 1 | 0% | 1,369 | 1,665 | +22% | 0 | 0 | — |
case-13 | pass→pass | 13,663 | 8,780 | -36% | 1 | 1 | 0% | 2,054 | 2,419 | +18% | 0 | 0 | — |
case-14 | fail→pass | 11,288 | 1,998 | -82% | 1 | 1 | 0% | 1,851 | 1,490 | -20% | 0 | 0 | — |
case-15 | pass→pass | 14,454 | 7,882 | -45% | 1 | 1 | 0% | 2,160 | 2,404 | +11% | 0 | 0 | — |
case-21 | pass→pass | 15,509 | 7,439 | -52% | 1 | 1 | 0% | 2,598 | 2,511 | -3% | 0 | 0 | — |
case-16 | pass→pass | 6,278 | 4,844 | -23% | 1 | 1 | 0% | 990 | 1,844 | +86% | 0 | 0 | — |
case-17 | pass→pass | 10,700 | 4,861 | -55% | 1 | 1 | 0% | 1,606 | 1,946 | +21% | 0 | 0 | — |
case-18 | fail→fail | 14,847 | 9,182 | -38% | 1 | 1 | 0% | 2,339 | 2,582 | +10% | 0 | 0 | — |
case-19 | pass→pass | 11,633 | 8,218 | -29% | 1 | 1 | 0% | 1,697 | 2,393 | +41% | 0 | 0 | — |
case-20 | fail→pass | 11,886 | 6,984 | -41% | 1 | 1 | 0% | 1,814 | 2,295 | +27% | 0 | 0 | — |
case-22 | fail→pass | 11,383 | 3,803 | -67% | 1 | 1 | 0% | 1,661 | 1,777 | +7% | 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 19 counted toward the lift figure. The other 3 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 +36 percentage points is the difference between those two pass rates over the 19 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.