September 13, 2026
90.B — MINIMUM PROJECT MEMORY STARTER

README, CONTEXT, SPEC, TASKS, DECISIONS, and AGENTS templates. Companion to Lesson 90.3. Copy into FINAL-PROJECT/PROJECT-MEMORY/ and fill every file in one pass — short and current beats long and aspirational.
The starter templates
# README.md — [Project], [date]
- Job (one paragraph from 90.1): …
- User / buyer: …
- File map (where each memory file + code lives): …
- Run + verify locally: [commands + expected result]
- Owner + where to ask: …
# CONTEXT.md — [date]
- Domain facts (each with source link): …
- Assumptions (marked ASSUMED): …
- Open unknowns: …
# SPEC.md — [date]
- Outcome + first flow (numbered steps): …
- Data shapes / interfaces: …
- Acceptance criteria (testable): …
# TASKS.md — [date]
- Now: [1–3 tasks, each ≤ half a day, with branch]
- Next: […] / Done: [… + date]
# DECISIONS.md
- [date] Decision: … Options: … Reason: … Revisit when: …
# AGENTS.md
- May read: … / May write: … / Must propose first: …
- Must never: …
- Review gate (what + owner + record location): …
- Stop control (what + owner): …
Rules that keep memory honest
- Date every file. Undated memory is untrusted memory — re-read or rewrite anything older than the last real change.
- One job per file. Tasks in TASKS, reasons in DECISIONS, rules in AGENTS. Cross-link, do not duplicate.
- Skills only on third use. A procedure that repeated three times earns
SKILLS/[name].mdwith trigger, inputs, steps, and a verification check. Fewer uses stay inline. - Orient before editing. Every new session reads README → CONTEXT → SPEC → TASKS → DECISIONS → AGENTS, then summarizes project, next safe task, and must-not-assume list before touching code.
Filled miniature (launcher excerpt, illustrative)
README: "Same-week booking flow for homeowners; form → DB → calendar → notify → human queue." CONTEXT: "Calendar API quota 10k/day (docs link); ASSUMED: most requests weekday evenings." SPEC: "Flow completes unassisted; criterion: confirmation within 4h." TASKS Now: "form validation branch form-v1." DECISIONS: "2026-10-01: one Postgres over two stores — reason: single flow; revisit at second flow." AGENTS: "May read form rows; may never confirm bookings; gate: owner approves queue; stop: pause scheduler."
Pruning rule
Quarterly, archive anything no session read in thirty days into an ARCHIVE folder rather than deleting it outright. Memory that nobody reads is either finished history worth keeping once or clutter worth removing. The test is the orient exercise: if the fresh session never opens the file, the file does not earn residence in the active set. Six live files beat sixty forgotten ones every time.
Verify fast
Open a fresh session, point it at the folder, ask for the three orient answers with no edits. Whatever it gets wrong, fix at the source file. Then delete any Skill with fewer than three real uses.
ARTICLE DISCUSSION
JOIN THE
CONVERSATION.
Got a question, a take, or a better way to do this? Log in and leave a comment.
