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
This commit is contained in:
parent
b0db0145be
commit
747c91df4c
1 changed files with 167 additions and 0 deletions
167
workplans/STATE-WP-0092-workplan-flavor-and-depends-on-policy.md
Normal file
167
workplans/STATE-WP-0092-workplan-flavor-and-depends-on-policy.md
Normal file
|
|
@ -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.
|
||||||
Loading…
Add table
Add a link
Reference in a new issue