Example project — Frond is not real.
Authored demo content for a fictional plant-care app, rendered by the same parsers and held to the same invariants as a real project's dashboard. This is the system in use, three months in.
Docs21
Every live doc, grouped by how guarded it is against change — the project root's own docs included, the briefing among them, since every session reads it first. Nothing starts settled: docs sink by surviving, and reopening a settled one takes a structured challenge. Amber marks docs past their tier's check-up backstop. The archive (150+ docs) is deliberately absent — reach it through the timeline.
How a doc earns a tier, and what it takes to reopen onefull physics →
Sinking — how a doc earns a tier. nothing starts at bedrock — docs earn their way down by surviving contact. A working draft that gets built against and holds becomes a commitment; a commitment that holds across phases can sink to bedrock. A sink is recorded in decisions.md with a date and what it survived.
Structured challenge — reopening one. requires three things stated up front — the reason, what has changed since it settled, and the proposed revision. Challenges are logged in decisions.md whether they succeed or fail. This applies to everything settled, including this system itself. Two guarantees: if we're re-debating something settled without new information, name the tier and move on; if we keep hitting the same wall against a settled thing, the wall is "what changed" — challenge it.
No clock on the deepest tier. A vision untouched for 200 days is a foundation holding, not rot; flagging it would nag us to churn the one thing that shouldn't churn. Bedrock has no timer because it has something better: it is read at every phase open, so a foundation that stopped matching the world gets caught by use, not by a calendar.
Read is not review. Bedrock is the most-read tier and the least-changed one — a foundation's whole job is to be the thing every session aligns to. Guarded means hard to change, never rarely consulted. But reading is how a doc earns a re-check: you read the vision at a phase open, and if it no longer matches the world, that mismatch is what a structured challenge is for. When to read is set by each doc's read-when and its mode's opening ritual, not by tier.
Possibly stale
Past their tier's review heuristic — a signal to review, not an obligation.
Bedrock
strategy/Vision.md)To change: Structured challenge — logged whether it succeeds or failsRe-checked every phase open — reading it is the check · no staleness clockCommitments
decisions.md, ROADMAPTo change: Deliberate — it's a promise, so changing it is a decision and lands in decisions.mdRe-checked at phase boundaries, or when building contradicts it · flagged after 90 days- Project InstructionsCLAUDE.md · project root2026-09-20
- Contributing Rulesdocs2026-10-02
- Decisions logdocs2026-08-25
- Demo seed datafeatures2026-09-01
- Onboardingfeatures2026-09-01
- Plant profilesfeatures2026-09-01
- Room light surveyfeatures2026-09-01
- Watering remindersfeatures2026-09-11
- The data layerimplementation2026-08-29
- Product Lifecycle — the product phase's rituals, in fulldocs2026-09-18
- Roadmapdocs2026-09-05
- The Care Modelstrategy2026-08-18
- Scope & Constraintsstrategy2026-09-03
Working
- Watering remindersphases2026-09-11
- Future Considerationsplanningreviewed 2026-09-07
- Open Questions & Assumptions Logplanningreviewed 2026-09-07
- Punch Listplanning2026-09-27
- Care history — product seedplanning/queued · queuedreviewed 2026-09-07
- Doc tree tidy — system seedplanning/queued · queued2026-09-09
- Sensor accuracy sweep — side seedplanning/queued · queuedreviewed 2026-09-01