From 83855f4965431ab7eaaa8396cf36b33d33516404 Mon Sep 17 00:00:00 2001 From: codex Date: Tue, 29 Sep 2026 21:50:16 +0200 Subject: [PATCH] Task Wait Qualifiers v0.2: wait_until (time window) and blocked-without-wait rule (C-42) Co-Authored-By: Claude Fable 5.1 --- .claude/rules/workplan-convention.md | 1 + canon/standards/task-wait-qualifiers_v0.1.md | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/.claude/rules/workplan-convention.md b/.claude/rules/workplan-convention.md index 140aab6..82f6690 100644 --- a/.claude/rules/workplan-convention.md +++ b/.claude/rules/workplan-convention.md @@ -48,6 +48,7 @@ priority: high | medium | low depends_on: [OTHER-WP-0001, OTHER-WP-0002-T03] # wait: external commitment needs_human: true # wait: human gate blocked_on: message-from: # wait: owner reply, no workplan id yet +wait_until: 2026-10-31 # wait: time/evidence window, clears by itself blocking_reason: "" # required whenever status is wait decision_id: CCR-2026-0004 # optional, tracked decision behind a human gate state_hub_task_id: "" # written by fix-consistency — do not edit diff --git a/canon/standards/task-wait-qualifiers_v0.1.md b/canon/standards/task-wait-qualifiers_v0.1.md index d997bba..c1eaf8c 100644 --- a/canon/standards/task-wait-qualifiers_v0.1.md +++ b/canon/standards/task-wait-qualifiers_v0.1.md @@ -4,13 +4,13 @@ type: standard title: "Task Wait Qualifiers v0.1" domain: custodian status: accepted -version: "0.1" +version: "0.2" owner: the-custodian -revision: "accepted-1" +revision: "accepted-2" last_reviewed: "2026-09-28" review_interval: 6m created: "2026-09-28" -updated: "2026-09-28" +updated: "2026-09-29" scope: fleet related_workplans: - CUST-WP-0074 @@ -93,6 +93,14 @@ hub decision or a change request; it is optional and never a substitute for `depends_on` id as soon as the owner returns one. 7. A human-gate task is never leased to a worker. Coordination tooling treats `needs_human: true` as a stop, not a wake condition. +8. A wait on a **time or evidence window** is qualified by `wait_until: + YYYY-MM-DD` on the task block (added 2026-09-29 for STATE-WP-0079-T05 and + RAPP-QONTO-WP-0002-T01). It counts as external — it clears by itself — + and the consistency check raises the blocker-satisfied WARN once the date + has passed. +9. A `blocked` workplan carries at least one task in `wait`. Blocked with no + wait task is a stale status, not a block; the consistency check warns + (C-42) until a qualified wait task exists or the workplan is re-statused. ## Scope of `depends_on` @@ -110,6 +118,8 @@ hub decision or a change request; it is optional and never a substitute for | `wait` | `depends_on` only | `waiting-external` | `wait_kind: external` | | `wait` | `needs_human: true` only | `needs-human` | `wait_kind: human` | | `wait` | both | both | `wait_kind: both` | +| `wait` | `wait_until` only | `waiting-external` (time window) | `wait_kind: external` | +| `wait` | `blocked_on: message-from:` only | `waiting-external` (owner reply) | `wait_kind: external` | | `wait` | neither | unqualified (WARN) | `wait_kind: unqualified` | Workplan: `blocked_kind` ∈ `human` \| `external` \| `none`, null unless