Propose Task Wait Qualifiers v0.1 and extend the task-block convention (CUST-WP-0074-T01)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
codex 2026-09-28 22:14:38 +02:00
parent 42a262bf83
commit 11e6202287
2 changed files with 153 additions and 2 deletions

View file

@ -20,8 +20,9 @@ depends_on:
```
Unset `flavor` is not residual. Do not implement `flavor: residual` unless
demand or risk has promoted it to another flavor. `depends_on` lists
blocker **workplan** ids; that is the field C-20 indexes.
demand or risk has promoted it to another flavor. Frontmatter `depends_on`
lists blocker **workplan** ids (C-20). Task-block `depends_on` (below) lists
what one task waits for and is indexed the same way.
Closed workplans may be moved to `workplans/archived/` with a completion-date
prefix: `YYMMDD-CUST-WP-NNNN-<slug>.md`. The frontmatter id remains
@ -44,12 +45,24 @@ Task blocks use this shape:
id: CUST-WP-NNNN-T01
status: wait | todo | progress | done | cancel
priority: high | medium | low
depends_on: [OTHER-WP-0001, OTHER-WP-0002-T03] # wait: external commitment
needs_human: true # wait: human gate
blocking_reason: "<why, one line>" # required whenever status is wait
decision_id: CCR-2026-0004 # optional, tracked decision behind a human gate
state_hub_task_id: "<uuid>" # written by fix-consistency — do not edit
```
Status progression is `todo` → `progress` → `done`; use `wait` for waiting or
blocked work and `cancel` for stopped work.
A `wait` task must be qualified: `depends_on` (clears by itself when every
target is terminal — derived state `waiting-external`), `needs_human: true`
(a person clears it — derived state `needs-human`), or both. Neither is a
fix-consistency WARN. The kind is derived, not a stored status; see
`canon/standards/task-wait-qualifiers_v0.1.md`. A `blocked` workplan is
derived as `blocked-human` when any wait task is a human gate, else
`blocked-external`.
Workplan frontmatter carries `state_hub_workstream_id` — a legacy field name
kept for compatibility; it holds the hub workplan UUID and is written by
fix-consistency. Do not edit or rename it.