Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when laying out cached research files: chapter pads to 2 digits, section never pads, fixed .research/ tree.
.claude/skills/research-storage-paths/SKILL.md| Model | Eval pass | Runs |
|---|---|---|
| gemini-3.6-flash | 75% | 12 |
| Model | Lift | Δ tokens | Δ turns | Cases | Verified |
|---|---|---|---|---|---|
| gemini-3.5-flashbest | +100% | — | 0% | 24 | 86d ago |
| gemini-3.6-flash | +73% | +108% | 0% | 22 | 52d ago |
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-21 | ✗→✓ | ▲ Improved | — | — |
| case-17 | ✗→✓ | ▲ Improved | — | — |
| case-20 | ✗→✓ | ▲ Improved | — | — |
| case-15 | ✗→✓ | ▲ Improved | — | — |
| case-10 | ✗→✓ | ▲ Improved | — | — |
Enforces the exact directory name and file path for cached research results. Apply whenever you produce a path under which a section's or the project's research is stored. The values below are fixed — derive them, do not invent a new layout.
.research/The cache root is the dotfile directory .research/. There are exactly two sub-trees:
.research/sections/… — per-section research..research/init/… — project-wide (init) research, not tied to any one section.Never use research/ (no dot), docs/, cache/, a top-level chapter-N/ folder, or any nesting by chapter. The root is always .research/.
{chapter}-{section}-{slug}A section's directory is .research/sections/{chapter}-{section}-{slug}/. The name has exactly three components joined by a single hyphen -, in this order: chapter, section, slug. No other separators, no dots, no underscores between components.
Parse the chapter as an integer (strip any leading zeros), then left-pad with 0 to a minimum width of 2.
1 → 01, 3 → 03, 9 → 09.10 → 10, 12 → 12 (already 2 digits).100 → 100 (pad is a minimum width of 2,never a truncation). Never produce a 1-digit chapter and never produce 010.
Parse the section as an integer (strip leading zeros), then write the digits as-is with no leading zero.
1 → 1, 2 → 2, 03 → 3, 07 → 7.10 → 10 (stripping leading zeros neverremoves significant ones). Never zero-pad the section: 01, 02, 005 are all wrong.
This is the asymmetry that trips models up: chapter pads, section does not.
Apply these five steps to the title, in order:
-.a-z, 0-9, or -.- into a single -.-.Digits are kept (HTTP 2 → http-2). Letters are lowercased. Everything else — ?, &, :, !, +, ., /, (, ) — is removed, not transliterated.
research.md and sources.mdInside a section directory there are exactly two files, named precisely:
research.md — the section's research results.sources.md — the section's source registry.No summary.md, index.md, notes.md, README.md, or .txt variants in a section directory.
summary.md and sources.mdProject-wide research lives directly in .research/init/:
.research/init/summary.md — the init research summary..research/init/sources.md — the init source registry.The init summary is named summary.md, not research.md. The section research file is named research.md, not summary.md. Both trees use sources.md for sources.
Each shows the base model's plausible-but-wrong default (BEFORE) → the conforming result (AFTER).
R1 — root
research/sections/01-2-core-concepts/research.md.research/sections/01-2-core-concepts/research.md.research/, not research/.)R2 — separators / ordering
.research/sections/01_2_core-concepts/ or .research/sections/ch01/s2/core-concepts/.research/sections/01-2-core-concepts/R3 — chapter padding
.research/sections/1-2-core-concepts/ (chapter not padded).research/sections/01-2-core-concepts/.research/sections/010-3-advanced-patterns/ (over-padded chapter 10).research/sections/10-3-advanced-patterns/R4 — section NOT padded
.research/sections/02-03-data-models/ (section zero-padded).research/sections/02-3-data-models/02 padded, section 3 left bare.)R5 — slug normalization
Core-Concepts (case preserved) → AFTER: core-conceptswhat-is-react? (punctuation kept) → AFTER: what-is-reactsetup-&-installation or setup--installation → AFTER: setup-installationc++-programming → AFTER: c-programming-multiple-spaces- (untrimmed) → AFTER: multiple-spaceshttp_2_basics (underscores, digit dropped) → AFTER: http-2-basicsR6 — section files
.research/sections/04-2-routing/summary.md.research/sections/04-2-routing/sources.md (and research.md)R7 — init summary name
.research/init/research.md.research/init/summary.md03): normalize by parsing to aninteger first → 3. The input format is irrelevant; the output is always the bare integer.
100 → 100, section 10 → 10. Don't chop digits to hit a width.
Setup & Installation): the &is deleted and the surrounding spaces collapse, so you get a single hyphen (setup-installation), never a double (setup--installation).
Best Practices! ): trimmed andstripped → best-practices, with no trailing hyphen from the removed !.
HTTP 2 Basics): digits survive normalization →http-2-basics. Don't drop them as "non-letters".
{chapter}-{section}-{slug} directory. It lives flat in .research/init/.
.research/ (with the dot). DON'T use research/ or docs/.research.md. DON'T name it summary.md.summary.md. DON'T name it research.md.?, &, :,!, or +, and DON'T transliterate + to plus.
-. DON'T use _, ., or extra directorynesting.
02-03-… instead of 02-3-…).1-2-… instead of 01-2-…).research/ instead of .research/.summary.md, or the init file research.md — the twoare swapped relative to intuition.
What-is-React?).setup--installation)..research/ (with the dot).{chapter}-{section}-{slug}, single-hyphen joined.-.research.md + sources.md. Init files: summary.md + sources.md.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-21 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-14 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-11 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-17 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-20 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-15 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-10 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-03 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-06 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-01 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-05 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
DecimalAI ran this skill against gemini-3.5-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 21 counted toward the lift figure. The other 1 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 +73 percentage points is the difference between those two pass rates over the 21 comparable cases.
The per-case answers from this run were removed by the retention sweep, so the case table below shows the verdicts without the text either arm produced. The counts above were recorded at the time and are unaffected. Answers are now kept for 180 days.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.5-flash | verified | 6/27/2026 | +100% |
Other measured skills in the registry, with their headline benchmark lift.