Skip to content
Michi v2026.05.20
Save the Tokens

Documentation Structure

Michi projects organize documentation by what you’re building (epics), not by document type. The epic is the essential unit — plans, verification, and journals are structure within it.

DocumentPurposeSizeAlways loaded?
CLAUDE.mdAgent rules, conventions, build/test commands, @-referencesMYes
PROJECT.mdGoals, users, key features, success criteriaMYes
STATUS.mdCurrent state, active work, what’s nextSYes
ARCHITECTURE.mdDesign overview, component relationships, data flowM-LOn demand

File naming convention: UPPERCASE.md files are top-level, always-read, project-wide. lowercase.md files are working documents scoped to an epic or milestone. Capitalization signals importance — the filesystem communicates priority.

Epics are the universal unit of named work — anything substantive enough to track gets one, from research spikes to multi-milestone features. Multiple concurrent epics is normal; the “main thrust” is signaled in STATUS.md, not by a separate doc tier.

docs/
epics/
my-feature/ # Subdirectory for multi-milestone or accumulating work
spec.md # What to build
verification/
scenarios.md # Stories about users getting benefits
test-plan.md # How to verify (tooling, auth, strategy)
journal.md # Learnings, gotchas, open questions
plans/
m1-data-model.md # Milestone plan (the implementation contract)
m2-api-services.md
tool-evaluation.md # Flat-file epic — short-arc research or single-workshop output
reference/ # Cross-epic, long-lived
code-style.md # Applied coding principles
patterns.md # Patterns and anti-patterns

Each epic contains everything about that effort. When it’s done, archive the whole directory (or file). No hunting across docs/plans/, docs/verification/, docs/learnings/.

  • Specs — what to build, features, user stories, constraints
  • Verification scenarios — how to know it’s delivered (the other side of specs)
  • Plans — tactical implementation steps for a milestone
  • Journals — execution record: learnings, open questions, gotchas
  • Test plans — tooling, auth strategy, environment prerequisites

Not every reader needs every detail at every moment:

LevelPurposeWho readsExamples
SOrientation — what existsEveryone, every sessionSTATUS.md
MWorking context — enough to actAgent at session startCLAUDE.md, PROJECT.md, current plan
LFull detail — implementation depthDuring implementationARCHITECTURE.md, verification scenarios
XLPosterity — minimize lossRetrospectivesJournals, archived plans

The @-reference mechanism in CLAUDE.md controls what loads at session start. Point it at the current milestone’s plan, and the agent has the context it needs without loading everything.

The agent writes to one place: the current milestone’s plan doc. Decisions, notes, surprises, discussion items — all in the plan doc. One place to write, zero filing decisions during implementation.

The debrief curates what was captured:

From plan docPromoted toWhen it’s worth promoting
## DecisionsCLAUDE.md or patterns.mdDecision reveals a reusable pattern
## Notesjournal.mdDomain-specific gotcha worth preserving
## DiscussionResolved, deferred, or promotedTriaged during debrief
## ScenariosEpic’s scenario catalogScenario has ongoing regression value
  • Update CLAUDE.md @-refs for the next milestone
  • Move completed epics to docs/archive/
  • Review STATUS.md for staleness

Start with files. Split to directories when a file gets unwieldy:

  • Small epic: spec.md, journal.md, plans/m1-thing.md
  • Large epic: specs/feature-a.md, journal/service-gotchas.md, verification/scenarios/submit-flow.md

The structure grows with the work. Don’t pre-build what you don’t need yet.