Picker · 200 graded Claude Code sessions

Should I use CLAUDE.md? Answer four questions.

Answer four questions about your model and your team. The picker highlights the kinds of memory that match your answers. Then it shows what 200 graded sessions measured. It never names a winner.

200

n = 200

Claude Code sessions, every one graded (120 Sonnet 5.5, 80 Haiku 4.5)

Your answers

Which model runs your sessions?

The study ran the same memory files on both models.

Does your team know facts that the code does not show?

A fact is a rate, a rule or a decision that no file in the repository holds.

Do you need rules enforced, not only advised?

Enforced means that a script blocks the session until the rule passes. A hook does this.

Do your notes grow without review?

Review means that a person or a model removes stale and one-off notes.

Kinds of memory that match your answers

Kinds of memory that match your answers: Curated, 11 lines, Raw notes, 60 lines, Dreamed notes, Handbook, 210 lines and Curated + hook.

  • Curated, 11 lines
  • Raw notes, 60 lines
  • Dreamed notes
  • Handbook, 210 lines
  • Curated + hook

A highlight shows what a kind of memory holds. It is not a result.

Full pass for each kind of memory

Each dot is the share of sessions with a full pass. Each bar is the 95% interval of that share. Point at a row to see which intervals overlap it.

No memory
/init CLAUDE.md
Curated, 11 lines
Raw notes, 60 lines
Dreamed notes
Handbook, 210 lines
Stop hook only
Curated + hook

Every interval overlaps every other: this chart does not order these rows.

8 rows. Highest Curated, 11 lines 100% (95% interval 80%–100%, n 15). Lowest /init CLAUDE.md 60% (95% interval 36%–80%, n 15). All intervals overlap.

NotesWhiskers: 95% Wilson intervaln = 15 per row4 of 8 at 100%: this task set cannot separate them.

Hidden tests pass and every convention check passes · 95% Wilson intervals

Claude Code 2.1.286, 5 tasks in one small repository. Sonnet: 3 repetitions per cell (n = 15 per condition); Haiku: 2 (n = 10). A condition is better only when its interval does not overlap the other's.

Source: Crewshal memory study: 8 kinds of project memory on Claude Code

CalculationOverlap of the intervals

All 28 pairs of kinds of memory have overlapping 95% intervals (calculation). The full-pass rate does not separate them.

What the study measured for your answers

Every number shows its n. A rate shows its 95% interval. A calculation says so.

  • Facts the code does not show

    Calculation
    • A team fact is one that no file in the repository holds, such as the changelog rule or the late-fee rate.
    • With no memory, Claude Sonnet 5.5 passed 6/15 team-knowledge checks (95% interval 19.8% to 64.3%, n = 15).
    • With the curated 11-line file, it passed 15/15 (95% interval 79.6% to 100%, n = 15).
    • The two intervals do not overlap (calculation).
    • 6/15 Team-knowledge checks, no memory

      95% interval 19.8% to 64.3%, n = 15

    • 15/15 Team-knowledge checks, curated 11-line file

      95% interval 79.6% to 100%, n = 15

  • The late-fee rate

    • A task told Claude Sonnet 5.5 to charge "our standard late fee". No file of the repository held the rate.
    • When any memory file held the rate, Claude Sonnet 5.5 used it in 15/15 sessions (95% interval 79.6% to 100%, n = 15).
    • With the raw notes, which also held an old rate, it used the current rate in 3/3 sessions (n = 3, no interval stored).
    • With the rate in no memory file, it stopped to ask in 7/9 sessions (n = 9, no interval stored) and wrote no code.
    • The other 2 guessed a rate and said it was a placeholder.
    • 15/15 Late fee right when any memory file held the rate

      95% interval 79.6% to 100%, n = 15

    • 3/3 Late-fee sessions that used the current rate, raw notes

      n = 3, no interval stored

    • 7/9 Without the rate: sessions that asked and wrote no code

      n = 9, no interval stored

What every answer shares

  • Full pass with Sonnet 5.5

    Calculation
    • A full pass means that the hidden tests and every convention check pass.
    • With no memory, Claude Sonnet 5.5 reached a full pass in 9/15 sessions (95% interval 35.8% to 80.2%, n = 15).
    • With the curated 11-line file, it reached a full pass in 15/15 sessions (95% interval 79.6% to 100%, n = 15).
    • The two intervals overlap, so the study does not separate them (calculation).
    • 9/15 Full pass, no memory

      95% interval 35.8% to 80.2%, n = 15

    • 15/15 Full pass, curated 11-line file

      95% interval 79.6% to 100%, n = 15

  • The /init file and a stale README command

    • The README held a test command that fails on Node 25. The /init file copied it.
    • Claude Sonnet 5.5 ran that command in 13/15 sessions with the /init file (95% interval 62.1% to 96.3%, n = 15).
    • With no memory, it ran the command in 12/15 sessions (95% interval 54.8% to 93.0%, n = 15).
    • With the curated 11-line file, it ran the command in 0/15 sessions (95% interval 0% to 20.4%, n = 15).
    • 13/15 Stale test command, /init file

      95% interval 62.1% to 96.3%, n = 15

    • 12/15 Stale test command, no memory

      95% interval 54.8% to 93.0%, n = 15

    • 0/15 Stale test command, curated 11-line file

      95% interval 0% to 20.4%, n = 15

  • What memory costs in context and time

    • The median input counts every turn of a session, cache reads included.
    • For Claude Sonnet 5.5, the median input was 78,455 tokens with no memory, and 65,045 with the curated 11-line file.
    • The 210-line handbook gave 85,223 tokens, and the Stop hook alone gave 125,674.
    • The hook adds turns: each block sends the agent back to work.
    • Each value has n = 15. The dataset stores no interval for a median.
    • The median time per session was 18 s with no memory and 21.9 s with the curated 11-line file (n = 15 each).
    • Up to four sessions ran at a time on one machine.
    • 78,455 Median input tokens, no memory

      n = 15, median, no interval stored

    • 65,045 Median input tokens, curated 11-line file

      n = 15, median, no interval stored

    • 85,223 Median input tokens, 210-line handbook

      n = 15, median, no interval stored

    • 125,674 Median input tokens, Stop hook alone

      n = 15, median, no interval stored

    • 18 s Median time, no memory

      n = 15, median, no interval stored

    • 21.9 s Median time, curated 11-line file

      n = 15, median, no interval stored

  • Cost per fully correct result

    Calculation
    • The study adds the list-price cost estimates of a kind of memory and divides the sum by its full passes (calculation).
    • For Claude Sonnet 5.5, the result was $0.14 with no memory (9 full passes) and $0.082 with the curated 11-line file (15 full passes).
    • A failed session still costs money, so cost per correct result falls when fewer sessions fail.
    • The sessions ran on a subscription. These values are list-price estimates, not invoices.
    • $0.14 Cost per full pass, no memory

      n = 9, n counts full passes, no interval stored

    • $0.082 Cost per full pass, curated 11-line file

      n = 15, n counts full passes, no interval stored

What memory costs

The same kinds of memory for the same model. The study measured the tokens. The cost is a calculation at list prices.

No memory
/init CLAUDE.md
Curated, 11 lines
Raw notes, 60 lines
Dreamed notes
Handbook, 210 lines
Stop hook only
Curated + hook

8 rows. Highest Stop hook only 125,674 (n 15). Lowest Curated, 11 lines 65,045 (n 15).

Notesn = 15 per row

Median input tokens per session, cache reads included (Claude Sonnet 5.5)

Input = uncached input + cache reads + cache writes over every turn, as the CLI reports it. Most of it is read from the prompt cache. The hook adds turns: each block sends the agent back to work.

Source: Crewshal memory study: 8 kinds of project memory on Claude Code

Calculation
No memory
/init CLAUDE.md
Curated, 11 lines
Raw notes, 60 lines
Dreamed notes
Handbook, 210 lines
Stop hook only
Curated + hook

Hover or focus a bar for its ratio to Curated, 11 lines (the lowest value): a ratio of list-price calculations, not a measurement.

List-price calculation, not a run. 8 rows. Highest No memory $0.14 (n 9). Lowest Curated, 11 lines $0.082 (n 15).

Notesn 9–15 per row

Sum of the CLI's cost estimates for a condition, divided by its full passes

Sessions ran on a subscription; these are the CLI's list-price estimates, not bills. A failed session still costs money, so cost per correct result falls when fewer sessions fail. n is the number of full passes that the cost is divided by, not the number of sessions.

Source: Crewshal memory study: 8 kinds of project memory on Claude Code

How your answers pick the highlights

Each answer highlights fixed kinds of memory. The map reads what a kind holds. It does not read the results.

Yes, your team knows such facts
Curated, 11 lines, Raw notes, 60 lines, Dreamed notes, Handbook, 210 lines, Curated + hook
Yes, you need rules enforced
Stop hook only, Curated + hook
Yes, your notes grow without review
Dreamed notes

A "no" answer highlights nothing.

What could make this picker misleading

The study states its own limits. The picker adds two more.

  • One small synthetic repository and one author of the facts: the curated file is an upper bound written with knowledge of the tasks.
  • The hook checks the same code rules as the grader. It shows what rules written as code can do; it cannot carry a fact such as the late-fee rate.
  • n = 15 per condition for Sonnet and 10 for Haiku: most full-pass intervals overlap, so most differences between conditions are not clear.
  • Costs are the CLI's list-price estimates for subscription sessions, not invoices.
  • In headless mode an agent that asks a question cannot get an answer, so asking counts as a failure here. In a live session the person would answer; the cost is the round trip.
  • The picker highlights kinds of memory. It never scores or ranks them.
  • Your repository is not this repository. Use the picker to choose what to test, not to skip the test.

Questions about CLAUDE.md

Should I use CLAUDE.md?

Use it for facts that the code does not show. With no memory, Claude Sonnet 5.5 passed 6/15 team-knowledge checks (95% interval 19.8% to 64.3%, n = 15). With the curated 11-line file, it passed 15/15 (95% interval 79.6% to 100%, n = 15).

For rules that the code shows, Claude Sonnet 5.5 passed 57/60 with no memory (95% interval 86.3% to 98.3%, n = 60).

What are CLAUDE.md best practices?

These are our recommendations from one small repository, not a standard. Write down what the code cannot show.

Check the file that /init writes. Claude Sonnet 5.5 ran its stale test command in 13/15 sessions (95% interval 62.1% to 96.3%, n = 15).

Use a hook only for a rule that a script can check. A hook alone used 1.6× the median input tokens of no memory (calculation, n = 15).

Review notes that grow. With the raw notes, Claude Haiku 4.5 ran a stale test command in 10/10 sessions (95% interval 72.3% to 100%, n = 10). With the dreamed notes, it did so in 1/10 (95% interval 1.8% to 40.4%, n = 10).

How long should a CLAUDE.md be?

The study tested two lengths: 11 lines and 210 lines. Claude Sonnet 5.5 reached a full pass in 15/15 sessions with the curated 11-line file (95% interval 79.6% to 100%, n = 15). It reached a full pass in 15/15 sessions with the 210-line handbook (95% interval 79.6% to 100%, n = 15).

Claude Haiku 4.5 passed 3/10 team-knowledge checks with the 210-line handbook (95% interval 10.8% to 60.3%, n = 10). It passed 8/10 with the curated 11-line file (95% interval 49.0% to 94.3%, n = 10). The two intervals overlap, so the gap is not clear (calculation).

Can messy CLAUDE.md notes mislead Claude Code?

They misled the smaller model in this study. With the raw notes, Claude Haiku 4.5 ran a stale test command in 10/10 sessions (95% interval 72.3% to 100%, n = 10). After one dreaming pass over the same notes, it did so in 1/10 sessions (95% interval 1.8% to 40.4%, n = 10). The two intervals do not overlap (calculation).

Claude Sonnet 5.5 ran the stale command in 0/15 sessions with the raw notes (95% interval 0% to 20.4%, n = 15).

Turn the numbers into shipped work.

Crewshal runs these choices for you: a persistent AI worker with memory and rules, on your Claude and Codex subscriptions.