September 13, 2026
90.A — SYSTEM MAP CANVAS

A fillable layer-by-layer project map. Companion to Lesson 90.2. Copy it into FINAL-PROJECT/SYSTEM-MAP.md and keep it current — it is the one page that shows what exists, what is deferred, and what breaks first.
How to use this canvas
Work top to bottom in one sitting. Draw the flow first, then justify each layer, then list deferrals. If the flow needs more than nine boxes, the scope from Lesson 90.1 is too wide — narrow the job before adding boxes.
The blank canvas
# SYSTEM-MAP — [Project], [date]
## Flow (draw the request path)
[input] → [transform] → [human review] → [output] → [route] → [exchange?]
1. …
2. …
3. …
## Layer table (one row per layer — delete unused, justify the rest)
| Layer | Used? | What it does here | Why it earns its place |
|---|---|---|---|
| Files / context | y/n | … | … |
| Models | y/n | … | … |
| Tools / APIs | y/n | … | … |
| Data sources | y/n | … | … |
| Storage | y/n | … | … |
| Infrastructure / hosting | y/n | … | … |
| Agents / automation | y/n | … | … |
| Application / UI | y/n | … | … |
| Human review | y/n | … | … |
| Distribution route | y/n | … | … |
| Payment event | y/n | … | … |
| Operating loop | y/n | … | … |
## Deferred (named + trigger)
- [item] — deferred because … — revisit when …
- [item] — deferred because … — revisit when …
## Riskiest dependency + fallback
- Risk: … Fallback: …
Filled miniature (analyst brief, illustrative)
Flow: ticker + question → filing fetcher → structuring call → draft brief → human source-check → one-page workspace → newsletter placement → manual invoice. Layers used: Markdown specs, one model provider, SEC + market APIs, Postgres, static host, one collect-and-structure agent, human gate, one route. Deferred: vector search (revisit at 50 briefs), auto-publish (after 20 clean reviews), subscription billing (after 5 paying pilots). Riskiest dependency: filing fetcher freshness — fallback is a dated manual fetch with a staleness banner.
Common pitfalls
Two patterns signal a broken canvas. The everything-map lists twelve used layers for a one-flow project — cut until the request path touches every remaining box. The gateless map shows model transforms flowing straight to users with no human box between them — insert the review gate and its owner before any preview. Both fixes take ten minutes on paper and save weeks of rework after launch.
Verify fast
Trace one real request across every "used" row. Any row the request never touches moves to Deferred. Then ask of each deferred row: what evidence would bring it back? Write that trigger down, with a date to re-ask.
ARTICLE DISCUSSION
JOIN THE
CONVERSATION.
Got a question, a take, or a better way to do this? Log in and leave a comment.
