.tiny-brain/fixes/.)
The identity model
Every PRD, feature, and task carries two names:- a human name — the slug (
id:, kebab-case) for PRDs and features, and the description for tasks. This is what commit headers use. - a UUIDv7 — the real, stable identity everything is tracked against.
PRDs and features carry it as
uuid:in their frontmatter; a task block carries it on itsid:line (tasks have no slug).
work add generates the UUID, stamps the frontmatter, and assigns
positional ordering. Renaming a task’s description later is safe — the UUID
underneath doesn’t change — but commit Task: headers must match the
description exactly at commit time.
Who owns which part
| Part | Owner |
|---|---|
Frontmatter (id, uuid, number, dates) | the CLI — never hand-edit |
| Prose sections (description, criteria, notes) | you, with your editor |
Task lifecycle fields (status:, commitSha:) | edited as work completes |
| Progress projections | derived — see the tracking model |
Statuses
PRDs, features, and fixes move throughnot_started → in_progress →
completed; fixes add a fourth, superseded. Individual tasks use the same
values — a task that became unnecessary is marked superseded with
commitSha: null rather than deleted, so the plan keeps its history.
The per-kind pages cover each file’s exact shape:
PRDs · Features & tasks
· Fixes