Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Reports what the ratchet actually measured in this repository: the session ledger at .ratchet/ledger.jsonl, the accepted complexity mark, and every `ratchet:` shortcut comment left in the code with its ceiling and its upgrade trigger. Use when the user says "ratchet ledger", "/ratchet-ledger", "what did we defer", "show the complexity trend", "what shortcuts are in here", or asks whether the codebase is getting simpler or more complex over time. Reports real recorded numbers only, never estimate
.claude/skills/0xwilliamortiz-ratchet-ledger/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-13 | ✗→✓ | ▲ Improved | -50% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -40% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 27% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -14% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -26% | 0% |
Three sections. Real numbers only.
Read .ratchet/ledger.jsonl, one JSON object per finished session. Report the last ten: date, mode, lines added, new dependencies, findings by tag, and the repository line count at the end of that session.
Show the direction plainly. If the line count has risen for three sessions in a row, say so.
If the file is missing, say the ratchet is not initialised for this repository and that mkdir .ratchet turns it on. Do not invent a trend.
Read .ratchet/mark.json, the accepted high water mark. Compare it to the repository now.
Below or equal to the mark: At the mark. Above it: report the gap and the reason recorded on the mark, then ask whether to bring it down or accept a new mark with a written reason.
grep -rnE '(#|//|--) ?ratchet:' . --exclude-dir=node_modules --exclude-dir=.gitOne row per hit, grouped by file:
<file>:<line> <what was simplified>. ceiling: <the limit>. upgrade: <the trigger>.The convention is ratchet: <ceiling>, <upgrade path>, so both fields come straight out of the comment. Any marker with no upgrade trigger gets tagged no-trigger, those are the ones that rot silently.
End with <N> shortcuts, <M> with no trigger.
Every number here is read from a file or counted from the tree. Never report what a session "saved": the version that was not written was never written, so there is nothing to subtract from. The trend and the shortcut count are the real figures, and they are enough.
Reports only. Changes nothing unless asked to write the report to a file.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-13 | fail→pass | 8,522 | 1,853 | -78% | 1 | 1 | 0% | 1,466 | 734 | -50% | 0 | 0 | — |
case-02 | fail→fail | 5,453 | 6,461 | +18% | 1 | 1 | 0% | 299 | 758 | +154% | 0 | 0 | — |
case-01 | fail→fail | 15,447 | 7,750 | -50% | 1 | 1 | 0% | 2,855 | 883 | -69% | 0 | 0 | — |
case-03 | fail→fail | 8,063 | 7,612 | -6% | 1 | 1 | 0% | 314 | 767 | +144% | 0 | 0 | — |
case-04 | fail→pass | 20,645 | 10,329 | -50% | 1 | 1 | 0% | 3,871 | 2,319 | -40% | 0 | 0 | — |
case-05 | fail→pass | 7,061 | 7,164 | +1% | 1 | 1 | 0% | 1,423 | 1,808 | +27% | 0 | 0 | — |
case-06 | fail→pass | 5,375 | 2,349 | -56% | 1 | 1 | 0% | 885 | 762 | -14% | 0 | 0 | — |
case-07 | fail→pass | 9,835 | 4,497 | -54% | 1 | 1 | 0% | 1,514 | 1,115 | -26% | 0 | 0 | — |
case-08 | fail→pass | 22,493 | 3,102 | -86% | 1 | 1 | 0% | 1,217 | 918 | -25% | 0 | 0 | — |
case-09 | fail→pass | 8,138 | 3,163 | -61% | 1 | 1 | 0% | 1,252 | 864 | -31% | 0 | 0 | — |
case-10 | fail→fail | 8,382 | 2,217 | -74% | 1 | 1 | 0% | 1,425 | 717 | -50% | 0 | 0 | — |
case-11 | fail→pass | 2,880 | 8,517 | +196% | 1 | 1 | 0% | 418 | 1,728 | +313% | 0 | 0 | — |
case-12 | fail→fail | 18,175 | 6,304 | -65% | 1 | 1 | 0% | 2,986 | 768 | -74% | 0 | 0 | — |
case-14 | pass→pass | 13,531 | 1,751 | -87% | 1 | 1 | 0% | 2,205 | 670 | -70% | 0 | 0 | — |
case-15 | fail→pass | 6,805 | 3,587 | -47% | 1 | 1 | 0% | 1,068 | 943 | -12% | 0 | 0 | — |
case-16 | fail→pass | 8,193 | 1,975 | -76% | 1 | 1 | 0% | 1,227 | 651 | -47% | 0 | 0 | — |
case-17 | fail→pass | 8,460 | 6,569 | -22% | 1 | 1 | 0% | 1,360 | 1,504 | +11% | 0 | 0 | — |
case-18 | fail→pass | 12,815 | 5,307 | -59% | 1 | 1 | 0% | 1,800 | 1,077 | -40% | 0 | 0 | — |
case-19 | pass→pass | 10,099 | 2,766 | -73% | 1 | 1 | 0% | 1,533 | 825 | -46% | 0 | 0 | — |
case-20 | pass→pass | 6,019 | 2,556 | -58% | 1 | 1 | 0% | 1,107 | 806 | -27% | 0 | 0 | — |
case-21 | pass→pass | 10,520 | 23,222 | +121% | 1 | 1 | 0% | 1,832 | 4,317 | +136% | 0 | 0 | — |
case-22 | pass→fail | 16,010 | 19,285 | +20% | 1 | 1 | 0% | 3,025 | 3,322 | +10% | 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 17 counted toward the lift figure. The other 5 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 +50 percentage points is the difference between those two pass rates over the 17 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
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.