Capstone · 6.4.1Source 4210f6c ↗

Generated files, schemas, and lifecycle

Paths below use the default docs directory. Most relocate with docs_dir; the project configuration remains at the fixed docs/capstone/capstone.json path. Capstone's final documents are meant to stand on their own: decisions and their rationale belong in these outputs, not only in a local interview transcript.

Reference chapters#

File What it tells a reader Exact required ## headings, in order
00-index.md Project orientation, module map, topic links, companion links No required heading sequence or stamps; Topic/File and File/What it is tables are authoring conventions
01-architecture.md Layers, boundaries, processes, messages, composition, client structure Layers; Module boundaries; Entry points; Communication; Composition; Frontend
02-models.md Entities, field tables, transformations, validation, migration-defined schema Entities; Fields and types; Relationships; Boundaries; Validation; Schema
03-conventions.md Observed coding practices, including exceptions and violations Paradigm; Typing; Error handling; Dependency injection
04-data-flow.md Lifecycles, state ownership, I/O boundaries, failure handling Lifecycles; State; Side-effect boundaries; Failure paths
05-dependencies.md Packages and services, wiring, researched picks and pending choices Dev and tooling; External services
06-testing.md Test locations, verified commands, doubles, observed coverage Layout; Doubles; Coverage shape
07-operations.md How to run/deploy, configuration, infrastructure, developer workflow Processes; Configuration; Infrastructure; Developer workflow
08-glossary.md Project-specific terms Concepts
09-interfaces.md Contracts produced/consumed by sibling repositories Produces; Consumes

02-models.md places each entity under ### <Entity> in Fields and types. Every entity section needs a table with Field, Type, and Required; Default and Notes are optional. Names are lookup keys, not decorative titles. Enum values belong in Notes, for example accepted: draft, published.

The index does not carry a second copy of chapter freshness. Absent topics receive explanatory rows. Large subsystems may split a topic while preserving its number, such as 01-architecture-api.md and 01-architecture-worker.md.

Observed file frontmatter#

This is an illustrative shape, not a captured file:

---
generated_at_commit: 0123456789ab
generated_date: 2026-09-09
capstone_version: 6.4.1
content_hash: abcdef012345
paths_covered:
  - ":(top)src/auth/**"
  - ":(top)src/routes/**"
---

generated_at_commit and content_hash are 12-character Git values. The date is when the file was generated; capstone_version identifies the writer's template generation. paths_covered is the set of source paths used for refresh, anchored at the repository root. If the manifest cannot be read, the writer omits the version rather than inventing one. Outside Git, commit/hash requirements are waived. Prescriptive design uses mode: prescriptive; interview outputs without coverage globs have different freshness rules.

The machine schema requires generated_date on generated Markdown other than the index. Git-specific keys are waived for prescriptive and non-Git outputs; scenario/UI records waive coverage keys when they have no paths_covered. The checker handles an absent or older version in its freshness pass, not as a duplicate schema finding.

Product and design outputs#

Path Purpose and main consumers Lifecycle
mockup/README.md Product brief, surfaces, commercial model, Screens/Journeys/Scenarios tables; consumed by logic, uiux, architecture Final reference; amended when product decisions change
mockup/NN-screen.md Layout, Elements, States; consumed by uiux and build Final reference; rule questions are handed to logic
logic/NN-scenario.md Exact rules, branches, failures, transitions, invariants; consumed by architecture, groom, plan, build Observed files refresh from code; interview decisions absorb shipped features
uiux/README.md Links design chapters to mockup screens and logic scenarios Final folder index
uiux/01-direction.md Chosen visual direction or observed incumbent design Final reference
uiux/02-system.md Tokens, components, Implementation constraints, Assets table; consumed by stack/build/review Final reference
uiux/03-experience.md Navigation, feedback, recovery, input, accessibility; consumed by build/review Final reference
uiux/screens/NN-screen.md Mode & job, Composition, States, Motion, Copy, Not in play Final reference; numbering mirrors mockup screens
uiux/preview.html Self-contained first viewport/style tile for steering decisions Local, ignored, regenerated; not the design authority
uiux/assets/*.svg Source brand marks Kept in Git; build moves them into the app
uiux/assets/*.{png,jpg,jpeg,webp} and uiux/assets/references/ Raster exports and inspiration/reference material Local and ignored
standards.md User-chosen binding coding rules; used in planning and review No coverage globs; map never regenerates it from code
implementation.md Whole-product build plan and verification steps Indexed instructional output retained by build

Every logic scenario has these exact sections: Trigger & preconditions; Steps; Branches; Unhappy paths; State transitions; Invariants; Outcomes & side effects; Dimensions not in play. The final section distinguishes ruled-out dimensions from unanswered ones.

standards.md contains 17 domain headings and Not in play; the design chapter lists them. uiux/02-system.md has an Assets table with Asset | File | Source | Status, and the code build stops for awaited assets.

Working files and durable history#

Path Meaning Who reads it next; retention
*-interview.md Questions, answers, open items, lifecycle frontmatter The unfinished stage; ignored, never indexed
features/<date>-<slug>/feature-interview.md Feature lifecycle, approval checksum, execution choice, base commit Groom/plan/implement resume; ignored
features/<id>/spec.md What and why, requirements, approach, behavior, reference impact, exclusions Plan and implement; ignored, later absorbed and deleted
features/<id>/plan.md Constraints, file map, ordered tasks, checkboxes, coverage Implement; ignored, later deleted
features/<id>/review-ledger.md Confirmed/refuted findings and dry-round state Implement's review resume; ignored, later summarized and deleted
review.md Opt-in backend/frontend findings with separate side stamps Human review; ignored and regenerated per side
questionnaires/YYYY-MM-DD-recipient.md Questions for someone outside the interview Recipient and owning stage; kept in Git after answers arrive
changelog.d/YYYY-MM-DD-stage-target.md One complete event entry, keyed to a stage and revision All lifecycle checks; committed until folded on the default branch
changelog.md Folded decision/event ledger, newest first Resume, check, doctor, later features; always committed
changelog-YYYY.md Rotated older entries with keys intact Same ledger readers; always committed
capstone.json at the fixed project path Shared settings, pipeline fork, workspace state Every command; always committed, never indexed
.gitignore in the docs area Local-only output rules Git; committed

The factual reference follows docs_in_git; interviews, feature files, previews, rasters, and review reports remain local regardless of that choice. Ledger, project configuration, and questionnaires are committed exceptions. A fresh clone can consume completed reference outputs and their ledger without the interviews. It cannot recover unfinished local Q&A, feature plans, or checked task state that were never copied there.

Each writing stage records its ledger entry before its done marker. New entries are fragments; a later writing run on the default branch folds them. Past 200 folded entries, all but the newest 100 move into year files. Keys remain searchable in fragments and rotation files. A shipped feature's folder is deleted only after its wrap; its implement/<id> key then tells later runs it is done.

Find the event that completed a stage#

Ledger keys are internal durable identifiers, not commands. Search changelog.md, year files, and pending fragments together. <id> is a feature identifier; <stamp> is the run's source/date stamp; Q<n> is the highest incorporated interview entry. Question numbers may appear in these keys, but final chapters should not send readers back to the interview.

Event Key form
Map write map/<topic-or-all>@<stamp>
Doctor repair doctor/<scope>@<stamp>
Codebase review review/<backend-or-frontend-or-all>@<stamp>; repeat events at one stamp receive a suffix
Retro standards edit retro/<all-or-domain>@<stamp>
Mockup formalization mockup/all@Q<n>
Logic scenario written or deliberately dropped logic/<NN-scenario>@Q<n>
UI interview formalization uiux/all@Q<n>
Standalone observed UI extraction uiux/all@<stamp>
No visual UI uiux/skipped@<stamp>
Architecture formalization architecture/all@Q<n>
Standards formalization standards/all@Q<n>
Initial stack selection stack/all@Q<n>
Stack re-vetting stack/refresh@Q<n>
Cross-stage readback readback/all@<stamp>; corrections also get their owning stage's entries
Whole-product plan approval / code completion build/plan@Q<n> / build/code@Q<n>
Feature spec / plan / completed wrap groom/<id>@Q<n> / plan/<id>@Q<n> / implement/<id>@Q<n>

start and feature normally route rather than create an event of their own; their writing stages record the work. Readback is start's named exception. help, core's help route, and map check write no event. A no-op map or report-only doctor/retro also has no repair/write entry.

Generated sections may be rewritten. Manual prose edits are not generally preserved. The explicit protected exceptions are ledger history and previously confirmed to/from values on still-existing interface rows. Keep durable design decisions in their owning final files and let the relevant command record changes.

Sources: machine schema, topic definitions, index and ignore rules, ledger and lifecycle.