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
| Aspect | What the agent already has (context) | What you keep re-typing (procedure) |
|---|---|---|
| The repo and recent edits | Persisted in session | Not the problem |
| Setup and environment steps | Forgotten next session | Re-explained every time |
| Review and style rules | Scattered across chats | Fragmented, inconsistent |
| How you verify a change | Remembered unreliably | Weak, ad-hoc verification |
| The fix | Already solved | Encode 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."
- A team moves between Claude Code, Cursor, and Codex, re-explaining setup, review rules, and verification each time.
- It feels like progress because there is motion, but the same instructions keep returning.
- 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.
- 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:
- Write the procedure into CLAUDE.md so the agent reads it on startup, or
- Standardize one checklist for setup, execution, and verification across tools, or
- Encode verification in hooks (see debugging Claude Code hooks) so the check runs without being re-explained.
How to apply it
- Write the runbook. Put setup, review rules, and verification in CLAUDE.md (or AGENTS.md).
- One checklist, every tool. Use the same setup-execute-verify list across Claude Code, Cursor, and Codex.
- Compress prompts into invariants. Encode the stable rules once; stop re-pasting essays.
- Let subagents inherit it. Lean on CLAUDE.md inheritance so one runbook covers the whole tree.
- 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.
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.
Concept
Agent instruction files
CLAUDE.md and AGENTS.md are where procedure belongs. They turn re-explained setup into a file the agent reads every session.
Open ↗Knowledge
Subagent CLAUDE.md inheritance
Encoded procedure that subagents inherit is the difference between one runbook and the same instructions pasted ten times.
Open ↗Knowledge
Debugging Claude Code hooks
Hooks let you encode the verification step so it runs automatically, instead of being re-explained as a manual reminder.
Open ↗Knowledge
Architecture-aware agentic workflows
Procedural debt is a workflow design problem. Designing the workflow once is what stops the per-session re-explanation tax.
Open ↗Exam Guide
CCA-F exam guide
D3 (Claude Code Configuration and Workflows) is 20% of the exam and rewards encoding procedure in config over re-prompting it.
Open ↗