What a handover documentation set contains
- C4 diagramscontext → containers → components
- Decision recordsADRs: why, and what it costs
- Interface specsAPIs, tools, data contracts
- Prompt & eval packversioned prompts + test set
- Runbookoperate, monitor, recover
- Security & dataflows, access, retention
Diagrams at the right zoom level
The C4 model gives a simple way to draw architecture for different readers. It has four levels. A system context diagram shows your system as one box, with the people and external systems around it — ideal for business stakeholders. A container diagram opens that box to show the separately deployable pieces: web app, API service, database, the Claude API, a vector store. (In C4, a “container” means any deployable unit, not specifically a Docker container.) A component diagram zooms into one container for developers, and a code level shows classes or functions. The C4 site stresses that you do not need all four levels, and that the model works with any notation or tool.
The C4 levels and who reads them
- System contextbusiness sponsors, risk, new joiners
- Containersarchitects, IT, security, operations
- Componentsdevelopers changing that part
- Codeoften skipped; the code itself serves
[Clinician] --uses--> [Review web app]
[Review web app] --calls--> [Drafting service]
[Drafting service] --reads--> [EHR export (read-only)]
[Drafting service] --retrieves--> [Guideline index]
[Drafting service] --calls--> [Claude API]
[Drafting service] --writes--> [Audit log]
[Review web app] --signed letter--> [Records system]
Notes: patient data never leaves the approved region;
every letter is signed by a clinician before filing.For Claude systems, a container view should always make three things visible: where data crosses a boundary (especially into the model API), where a human reviews or approves, and where the system’s state and logs live. These are the questions security, compliance and operations will ask first.
Record decisions, not just outcomes
A diagram shows what was built; it never shows why. Architecture decision records fill that gap. In Michael Nygard’s format each ADR is one to two pages with a title, context, decision, status and consequences. ADRs are numbered in sequence and never reused; when a decision changes, the old record stays and is marked superseded by the new one. That history is precisely what a client’s team needs a year later when someone proposes undoing a choice. How to frame the trade-off inside an ADR for stakeholders is covered in 6.2.
| Document | Main reader | Answers | Update when |
|---|---|---|---|
| System context diagram | Sponsor, risk, new joiners | What is this and what does it touch? | A new user group or external system |
| Container diagram | IT, security, operations | What runs where, and how data flows | A service or data store changes |
| ADRs | Engineers, future architects | Why was it built this way? | Every significant decision |
| Prompt & eval pack | Engineers, QA | What the model is told, and how we know it works | Any prompt, model or tool change |
| Runbook | Operations, on-call | How do I run, monitor and recover it? | After every incident or release |
Implementation guidance people can act on
Implementation guidance is where many architects stop too early. “Use retrieval and a good prompt” is advice; an implementer needs specifics they can build and verify. For a Claude system that means the interfaces (tool definitions and API contracts), the prompts themselves stored under version control, the model and settings chosen with the ADR that justifies them, the error-handling and fallback behaviour, and — most importantly — the acceptance tests. Anthropic’s evaluation guidance favours task-specific tests that mirror real traffic, include edge cases and can be graded automatically where possible. Handing over the test set and pass mark is the most precise implementation guidance you can give: it defines “done”.
Vague guidance vs actionable guidance
Slide notetext
Drafting service:
- Use Claude with RAG over
the guidelines.
- Write a good prompt.
- Make sure it is accurate.
- Handle errors properly.Implementation guidetext
Drafting service (see ADR-004)
Input: EHR export JSON v2.
Retrieve: top 5 guideline
chunks, cite chunk ids.
Prompt: prompts/discharge.md
(git tag v1.3), owner QA.
Done when: >=92% on eval set
evals/discharge-150 (rubric
in evals/rubric.md).
On API error: retry per
retry-after, then queue and
show "draft pending".Anthropic’s Building effective agents article makes a related point about tools: the tools an agent uses deserve thorough documentation and testing, because the model can only use a tool as well as its description explains it. Tool and interface documentation is therefore part of the architecture pack, not an afterthought.
Reviewing a handover pack
- Passes: System context and container diagrams
- Passes: ADRs for model, workflow and human-review choices
- Check: Prompts versioned in the repositorytwo prompts still only in a wiki page
- Missing: Acceptance test set with pass mark
- Passes: Data-flow and retention notes for security
- Fails: Runbook with alerts and rollback stepsno rollback procedure
Traps the wrong answers are built from
| Tempting but wrong | Do this instead |
|---|---|
| One exhaustive design document covering every audience. | A small, linked set: C4 diagrams by level, ADRs, interface specs, prompt-and-eval pack, runbook. |
| Diagrams that show boxes but not data boundaries or human checkpoints. | Mark where data enters the model API, where people approve, and where logs live. |
| Documenting only the final design, not the reasons. | Write ADRs with context and consequences; supersede rather than delete old ones. |
| Guidance like “write a good prompt” or “ensure accuracy”. | Hand over versioned prompts, interfaces, fallback behaviour and a test set with a pass mark. |
| Keeping prompts and eval sets outside version control. | Store them in the repository with the code so changes are reviewed and tested. |
You should now be able to
- Choose C4 diagram levels to suit business, operations and developer audiences.
- Show data boundaries, human checkpoints and logging on a container diagram of a Claude system.
- Write and maintain ADRs, including superseding decisions that change.
- Produce implementation guidance an implementer can verify: interfaces, versioned prompts, fallbacks and acceptance tests.
- Assess a handover pack for gaps before go-live.