The brief every author follows, human or agent. Read it before touching a
page under docs/user-guide/.
A builder, estimator, project manager or bookkeeper at a small to mid-size building business. Not technical. Busy. Reads to get something done, not to learn the product. Use their words: a job, a quote, a claim, a subbie, a bill. Never a column name, a tool name, a table, a flag, a route.
## What it is
## Before you start
## How to
### <Imperative task> (one per task; "Send the claim", not "Sending")
## What happens on its own
## Things that surprise people
Optional, after the five: ## Tutorial: <one real scenario> and
## Related. Section intros (README.md) and shape: topical pages
(overviews, tutorials) have their own headings.
Every How-to step must be checked against the real component before the
page is status: published. Open the page's route folder under
apps/web/app/ and the components it renders; read what the buttons are
called, what the dialog asks, what the API route does, what gates it (a
module flag, admin, a won job). Write only what you found. If a behaviour
cannot be confirmed from the component, leave it out or mark the page
status: draft with an HTML comment <!-- unverified: ... --> naming what
is uncertain. Writing from a plan, a memory note or the code's comments
alone is how a guide lies.
Things that change the words:
---
title: Progress claims
summary: One sentence, the reader's words, used on cards and in search.
section: money
order: 20
routes:
- /invoices
- /projects/[id]?section=invoicing
status: draft # published only after verification
---
routes: lists the app screens this page documents and nothing else. One
canonical page per screen; link to another page rather than re-describing
its screen. Run node apps/web/scripts/sync-guide.mjs after editing and
the coverage test (npx vitest run __tests__/guide/coverage.test.ts in
apps/web) before committing.
[Cost codes](../money/cost-codes.md)
becomes /docs/money/cost-codes on the site.