.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
After editing lifecycle fields, re-sync the projections from the markdown:
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