From 747c91df4c45cb7b40c5264e530bba879051d98f Mon Sep 17 00:00:00 2001 From: tegwick Date: Mon, 14 Sep 2026 13:48:17 +0200 Subject: [PATCH] Add STATE-WP-0092 for workplan flavor, depends_on, and residual views. Schema and policy change so residuals are a flavor excluded from default open-workplan views until demand or risk promotes them. Assistant: grok Assistant-Session: 01a09dc1-b21e-77e1-919e-fcad2f82b267 --- ...2-workplan-flavor-and-depends-on-policy.md | 167 ++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100644 workplans/STATE-WP-0092-workplan-flavor-and-depends-on-policy.md diff --git a/workplans/STATE-WP-0092-workplan-flavor-and-depends-on-policy.md b/workplans/STATE-WP-0092-workplan-flavor-and-depends-on-policy.md new file mode 100644 index 0000000..f32b06a --- /dev/null +++ b/workplans/STATE-WP-0092-workplan-flavor-and-depends-on-policy.md @@ -0,0 +1,167 @@ +--- +id: STATE-WP-0092 +type: workplan +title: "Workplan flavor, depends_on indexing, and residual default-exclusion" +domain: infotech +repo: state-hub +status: proposed +owner: grok +topic_slug: infotech +flavor: planning +created: "2026-09-14" +updated: "2026-09-14" +related: + - CUST-WP-0072 + - RAIL-FAB-WP-0030 + - COORDINATION-WP-0005 + - CUST-WP-0060 +origin: residual-policy +origin_ref: the-custodian/history/20260914-open-workplan-chokepoints.md +--- + +# Workplan flavor, depends_on indexing, and residual default-exclusion + +Founder direction 2026-09-14 (assessment +`the-custodian/history/20260914-open-workplan-chokepoints.md`): the open +workplan count will not fall by agent closure alone. First change the +schema and policy so residuals are a **flavor**, not equal open demand, +and so `depends_on` in workplan frontmatter is actually indexed. + +This is workplan 1 of 3 for that change. Canon lands in `the-custodian`; +the hub remains a read model (ADR-001). Do not register workplans by +hand. Do not treat `flavor: residual` as a new work-record **kind**. + +## Policy to encode + +Flavor is a bucket on workplans **and** tasks, orthogonal to kind: + +`planning` | `implementation` | `refactoring` | `extension` | `residual` + +Residuals are leftovers that are **not deemed as valuable** as the main +functional and non-functional requirements. Default State Hub views of +open workplans, `/state/summary` `open_workplans`, `/state/next_steps`, +and agent “should we implement this?” **exclude** `flavor: residual` +unless an explicit include flag is set. + +Demand or risk **promotes** a residual into another flavor. After +promotion it is no longer residual and it re-enters the default view. +`origin: residual` on intakes may remain as provenance; flavor is the +live classification. + +`depends_on` in workplan frontmatter is the canonical edge (list of +workplan ids). C-20 today looks at `depends_on_workplans` / +`depends_on_tasks`, which the fleet does not author. Unify on +`depends_on`. Keep the old keys as aliases until a legacy-meter says +otherwise. + +`flavor:` on this file is advisory until T01–T02 land; do not fail +parsing unknown frontmatter keys. + +## Ratify flavor and depends_on in custodian canon + +```task +id: STATE-WP-0092-T01 +status: todo +priority: high +``` + +In `the-custodian`, extend `canon/standards/work-record-types_v0.1.md` +(and the YAML machine copy / spine schema) so flavor is a closed list on +workplan and task, residual stays a flavor rather than a kind, and +promotion (residual → planning|implementation|refactoring|extension) is +a first-class transition with a recorded reason (`demand` or `risk`). + +State the default-view rule: open-workplan lists and implementation +triage omit residuals. Update the workplan-terminology standard and the +workplan convention so frontmatter `depends_on` and `flavor` are +documented. Founder ratification is required for the canon change +(yellow/red lane). Do not silently rewrite `origin: residual` semantics +on intakes. + +Done when the canon files are merged, the closed flavor list is +machine-checkable, and the residual section no longer implies that every +live leftover is equal open demand. + +## Index flavor and depends_on from files + +```task +id: STATE-WP-0092-T02 +status: todo +priority: high +depends_on: [STATE-WP-0092-T01] +``` + +Parse workplan (and task-block) `flavor` and workplan-frontmatter +`depends_on`. Persist them on the hub read model. Expose them on +`GET /workplans/`, `GET /workplans/{id}`, `GET /state/summary` +`open_workplans[]`, and the dependencies endpoint. Accept +`depends_on_workplans` as an alias on read. C-20 creates missing +dependency edges from `depends_on`. Unknown flavor fails closed after +canon lands; before that, warn. + +Done when a fixture workplan with `flavor: residual` and +`depends_on: [STATE-WP-0091]` round-trips into the DB and the summary, +and C-20 no longer requires the unused `depends_on_workplans` spelling. + +## Default views omit residuals + +```task +id: STATE-WP-0092-T03 +status: todo +priority: high +depends_on: [STATE-WP-0092-T02] +``` + +`/state/summary` `open_workplans`, `/state/next_steps`, dashboard +open-workplan widgets, and any “implement next” ranking **exclude** +`flavor: residual` by default. Add an explicit query flag +(`include_residuals=true` or `flavor=` filter) for the residual list +the fleet already wanted (`statehub residuals` in the canon). Totals +must still be honest: show residual counts as a separate figure so the +headline cannot hide them, but do not mix them into actionable open +work. + +Unspecified flavor is **not** residual; treat it as relevant until +backfill (`CUST-WP-0072`) classifies it. Do not auto-classify. + +Done when a residual workplan is absent from the default summary list, +present when included, and next_steps does not recommend implementing +it. + +## Policy for agents and operators + +```task +id: STATE-WP-0092-T04 +status: todo +priority: medium +depends_on: [STATE-WP-0092-T03] +``` + +Document the rule in state-hub agent/API docs: do not pick up residual +workplans or residual tasks for implementation unless the flavor has +been promoted. Promotion is a file edit (`flavor:` + short reason), then +`fix-consistency`. Hub docs point at `CUST-WP-0072` for fleet backfill +and `COORDINATION-WP-0005` for cross-owner waits. No secret-vending +language. + +Done when the documented default matches T03 behaviour and a short +agent snippet exists for later instruction rollout. + +## Tests and consistency checks + +```task +id: STATE-WP-0092-T05 +status: todo +priority: high +depends_on: [STATE-WP-0092-T02, STATE-WP-0092-T03] +``` + +API tests for default exclusion, include flag, flavor filter, and +`depends_on` round-trip. Consistency checks: unknown flavor; residual +without `origin`/`origin_ref` when spawned from a finished parent +(warn, do not invent); `depends_on` target missing (existing C-20). +Do not add a check that forces every historic workplan to declare +flavor — that is `CUST-WP-0072`. + +Done when the new tests are green and `fix-consistency` on this repo +does not warn on this file’s advisory `flavor:` / `depends_on` keys.