# The linear template

Linear's defaults as a format you own: teams hold issues (Linear's exact
default statuses, priorities as an enum, every write a declared form),
projects are documents with milestones and health, docs are the PRDs
beside the work. The five Linear categories are the dashboard's
where-clauses — which is all they ever were.

    dj init my-tracker --template linear
    cd my-tracker
    dj dashboard --dashboard dashboard.yaml     # serves on :4173

Rename a status, add a `Shaping`, forbid a column — the format is yours;
the engine enforces what you declare. `dj lint --all` is the gate.

## The weekly report — shipped, and off

`surfaces/report.yaml` is a three-section report over the issue log:
burndown and burnup, a cumulative-flow band per declared status, and a
cycle-time distribution with its median and its exclusions stated. It
places three named views from `vault/views/` (`burndown`, `flow`,
`cycle-summary`) and reads the **operational event log** — what issues
*said*, day by day — not what they say now.

It is **off**. A host reads three surface names beside `format.yaml`:
`dashboard.yaml`, `report.yaml` and `intake.yaml`. This report sits one
directory over, so nothing publishes it, nothing bakes it, and the app
you get from `dj init` is byte-for-byte the app you would have got
without it. Turn it on with one line:

    cp surfaces/report.yaml report.yaml

(On an existing cloud knowledge base, PUT that file's text as
`reportYaml` instead — same declaration, through the door that owns
control-plane state.) Or render it locally without turning anything on:

    dj report --surface surfaces/report.yaml --vault vault --out report.html

(`--vault vault` is not decoration: the named-view library defaults to
`<vault>/views`, and without it the three sections find no views and
render three stubs. `--format` defaults to `format.yaml`.)

Away from a host there is no event log to read, so each chart renders a
note saying what it reads and why it is empty — never an empty chart
that looks like a real zero.
