Five weeks of forge evidence per week rather than a rolling window, so a finding survives under one key and "closed after three weeks" is computable. Rules run deterministically; agent.py hands the packet to whoever writes the prose and never calls a model itself. Model choice fails closed — no default, no substitute, and the exact named model must be served or the pass refuses to run.
25 lines
993 B
Markdown
25 lines
993 B
Markdown
# project-state — what became true, week by week
|
|
|
|
Machine-written. Internal. Nothing here publishes anywhere.
|
|
|
|
`saf/state.md` says what is true right now, in Casey's hand. This says how it
|
|
got there and what has been unresolved for how long.
|
|
|
|
```
|
|
evidence/<week>.json one ISO week of forge evidence; never overwritten
|
|
state.json the carry-forward — findings under stable keys
|
|
history/<week>.json state.json as it stood after that week's pass
|
|
reports/<week>.md the human read; disposable, regenerable from the two above
|
|
```
|
|
|
|
Written by `tools/project-state/collect.py` and `synthesize.py`. The reasoning
|
|
and the open decisions are in `docs/tasks/79-project-state.md`.
|
|
|
|
```
|
|
tools/project-state/collect.py --week last | current | 2026-W33
|
|
tools/project-state/synthesize.py --week 2026-W33 [--interpret]
|
|
tools/project-state/synthesize.py --explain f-0022
|
|
```
|
|
|
|
A finding cites evidence ids and nothing else. `--explain` prints the finding
|
|
and every row it rests on.
|