Blog · 2026-06-25· 4 min read

Why does Claude Code forget your setup every session? (CCA-F D3)

Claude Code remembers context, not your operating procedure. If you re-explain setup, review rules, and verification every session, the debt is in your workflow, not the model - encode it in a CLAUDE.md runbook. Fixing this is a CCA-F D3 configuration skill.

D3claude-codeclaude-mdworkflow-config
Loop the orange ACP mascot as a small archivist filing one worn canonical runbook on a workbench, beside a chaotic pile of repeated sticky-note instructions being cleared away.

Quick answer

Claude Code can remember your context. It still cannot remember your operating procedure. If you re-explain setup, review rules, and verification every session, the debt is in your workflow, not the model. Encode the procedure once in a CLAUDE.md runbook. For CCA-F D3, that encoding is the skill.

What changed

Coding agents like Claude Code, Cursor, and Codex now hold real context across a session. The repo, the recent edits, the open files (🟢 first-hand: Claude Code keeps project context across a session and reads a CLAUDE.md project file on startup). So it feels like the agent "knows" your project.

But context is not procedure. The agent can know your files and still not know your setup steps, your review checklist, or how you verify a change. Those are instructions, not context, and if they are not written down, you re-type them every session.

That re-typing masquerades as work. Tabs switch, prompts grow, context gets pasted. Visible motion, nothing moving forward.

Memory of context vs memory of procedure

AspectWhat the agent already has (context)What you keep re-typing (procedure)
The repo and recent editsPersisted in sessionNot the problem
Setup and environment stepsForgotten next sessionRe-explained every time
Review and style rulesScattered across chatsFragmented, inconsistent
How you verify a changeRemembered unreliablyWeak, ad-hoc verification
The fixAlready solvedEncode it in CLAUDE.md

How procedural debt actually accrues

The tell is four symptoms that travel together:

  • Prompt bloat. Prompts keep growing because you keep adding the setup back in.
  • Re-explanation tax. The same instructions every session, paid in your time.
  • Instruction fragmentation. Rules live in scattered chats, not one place.
  • Weak verification. The check gets remembered inconsistently, so it slips.

The non-obvious part is that this is not a memory failure. It is a workflow design failure. If the same playbook keeps coming back, the process is not encoded.

Worked example - "tool-switching that feels productive."

  1. A team moves between Claude Code, Cursor, and Codex, re-explaining setup, review rules, and verification each time.
  2. It feels like progress because there is motion, but the same instructions keep returning.
  3. The fix is not a better model. Put the procedure in a canonical runbook (CLAUDE.md or AGENTS.md), keep one checklist for setup, execution, and verification, and compress prompts into invariants.
  4. Now the agent reads the procedure on startup, subagents inherit it, and the re-explanation tax goes to zero.

A name for it: Procedural Debt

Procedural Debt - the recurring cost of re-explaining your operating procedure to an agent that already has your code context. It looks like a memory gap, but it is a workflow gap: the procedure was never encoded, so you pay the explanation every session. You pay it down by writing the procedure once, in config the agent reads, not by buying more memory or a stronger model.

Why it matters for CCA-F

This sits in D3 - Claude Code Configuration and Workflows, which is 20% of the exam, and connects to agent instruction files and subagent CLAUDE.md inheritance.

The proprietary read: D3 questions reward encoding procedure in config over re-prompting it. The CLAUDE.md is not a nicety, it is where the operating procedure lives so the workflow stops depending on your memory.

  • Old instinct: the agent forgot, so add memory or use a stronger model.
  • D3 instinct: the procedure was never written down, so encode it in CLAUDE.md.

The distractor pattern to memorize. On D3 scenarios where every session restarts with the same setup and the build drags, the trap answer is "add memory" or "switch to a stronger model." The architecturally correct move is one of:

  1. Write the procedure into CLAUDE.md so the agent reads it on startup, or
  2. Standardize one checklist for setup, execution, and verification across tools, or
  3. Encode verification in hooks (see debugging Claude Code hooks) so the check runs without being re-explained.

How to apply it

  1. Write the runbook. Put setup, review rules, and verification in CLAUDE.md (or AGENTS.md).
  2. One checklist, every tool. Use the same setup-execute-verify list across Claude Code, Cursor, and Codex.
  3. Compress prompts into invariants. Encode the stable rules once; stop re-pasting essays.
  4. Let subagents inherit it. Lean on CLAUDE.md inheritance so one runbook covers the whole tree.
  5. Treat repeated setup as waste. If the same instructions keep coming back, that is the debt. Encode it and delete the re-explanation.

The meta-skill, and the D3 exam skill, is the same: perfect memory is not reusable procedure. If the agent needs the same playbook every session, the fix is in the workflow, not the model.

01 · Read next in the pillars

Where this lands in the exam-prep map

Each blog post bridges into the evergreen pillars. These are the most relevant follow-ups for this story.

02 · FAQ

6 questions answered

What is procedural debt in an agent workflow?
The recurring cost of re-explaining your operating procedure (setup, review rules, verification) to an agent that already has your code context. The repo memory persists, but the procedure does not, so you pay the same explanation every session. It is a workflow design problem, not a memory problem.
If the agent remembers the repo, why re-explain anything?
Because memory of context is not memory of procedure. The agent can know your files and still not know your setup steps, your review checklist, or how you verify a change. Those are instructions, and unless they live in a file the agent reads, they get re-typed every time.
What are the symptoms of procedural debt?
Four show up together: prompt bloat (prompts keep growing), a re-explanation tax (the same setup every session), instruction fragmentation (rules scattered across chats), and weak verification (checks remembered inconsistently). If the same playbook keeps coming back, the process is not encoded.
How do you pay down procedural debt?
Encode procedure in a canonical runbook (CLAUDE.md or AGENTS.md), standardize one checklist for setup, execution, and verification, compress prompts into invariants instead of essays, and treat repeated setup as workflow waste to remove. The model does not change; the workflow does.
Does a better model or more memory fix this?
No. A stronger model still does not know your unwritten procedure, and more memory persists context you already had, not the steps you keep re-typing. The fix is encoding the procedure once, in config the agent reads, so it stops depending on your retyping.
How does this show up on the CCA-F exam (D3)?
D3 (Claude Code Configuration and Workflows) is 20% of the exam. Expect a scenario where each session restarts with the same setup and the build feels slow. The trap answer is 'add memory' or 'use a stronger model.' The correct answer encodes the procedure in CLAUDE.md and a standard checklist.
Blog post · D3 · Blog

Why does Claude Code forget your setup every session? (CCA-F D3), complete.

You've covered the full ten-section breakdown for this primitive, definition, mechanics, code, false positives, comparison, decision tree, exam patterns, and FAQ. One technical primitive down on the path to CCA-F.

More platforms →