Record the 2026-09-14 open-workplan chokepoint assessment and CUST-WP-0072.
Store the campaign analysis under history/ and add the fleet backfill workplan for flavor plus depends_on, sequenced after STATE-WP-0092.
This commit is contained in:
parent
247c855107
commit
cdc86961ce
2 changed files with 298 additions and 0 deletions
189
history/20260914-open-workplan-chokepoints.md
Normal file
189
history/20260914-open-workplan-chokepoints.md
Normal file
|
|
@ -0,0 +1,189 @@
|
||||||
|
---
|
||||||
|
id: 20260914-open-workplan-chokepoints
|
||||||
|
type: assessment
|
||||||
|
title: "Why the open-workplan count will not fall by agent closure alone"
|
||||||
|
date: "2026-09-14"
|
||||||
|
assessor: grok
|
||||||
|
audience: founder
|
||||||
|
status: recorded
|
||||||
|
related_workplans:
|
||||||
|
- STATE-WP-0092
|
||||||
|
- CUST-WP-0072
|
||||||
|
- RAIL-FAB-WP-0030
|
||||||
|
- COORDINATION-WP-0005
|
||||||
|
- INFD-WP-0002
|
||||||
|
- RAIL-FAB-WP-0029
|
||||||
|
origin: "Founder request after an agent-finishable close campaign: store the chokepoint analysis, then tackle the problem space rather than more ad-hoc closures."
|
||||||
|
---
|
||||||
|
|
||||||
|
# Why the open-workplan count will not fall by agent closure alone
|
||||||
|
|
||||||
|
Date: 2026-09-14. Assessor: Grok acting as the-custodian.
|
||||||
|
This is an assessment and a programme outline. It does not authorize
|
||||||
|
credential minting, live admission, or finishing any existing workplan.
|
||||||
|
|
||||||
|
## Question
|
||||||
|
|
||||||
|
A campaign of agent-finishable closures (code, docs, catalog, evidence)
|
||||||
|
moved several workplans to `finished` and still left well over a hundred
|
||||||
|
open plans. The question is not “which leftover can an agent close next?”
|
||||||
|
It is **why the ready/active/proposed/blocked set stays large**, and which
|
||||||
|
already-started subsystems should absorb that load instead of more
|
||||||
|
parallel strands.
|
||||||
|
|
||||||
|
## Snapshot
|
||||||
|
|
||||||
|
Two captures on the same day, both against primary `railiance01`
|
||||||
|
(`http://127.0.0.1:8000`).
|
||||||
|
|
||||||
|
| Capture | Open workplans | Mix | Open tasks | `needs_human` |
|
||||||
|
| --- | ---: | --- | ---: | ---: |
|
||||||
|
| Campaign analysis (earlier 2026-09-14) | 114 | 17 proposed, 3 ready, 61 active, 28 blocked, 5 backlog | 299 (122 todo, 44 progress, 133 wait) | 12 |
|
||||||
|
| Refresh after this programme was requested | 116 | 19 proposed, 3 ready, 61 active, 28 blocked, 5 backlog | 320 (137 todo, 44 progress, 139 wait) | 12 |
|
||||||
|
|
||||||
|
`GET /state/summary` `open_workplans` is **92** (active + blocked + ready
|
||||||
|
only). Proposed and backlog are already dropped from that default list;
|
||||||
|
**residuals are not**. Finishing work therefore still inflates the number
|
||||||
|
an operator or agent treats as “open demand.”
|
||||||
|
|
||||||
|
Live Fabric coordination export from the campaign: 115 workplans, 303
|
||||||
|
open tasks, 75 `waits_on` citation edges, 796 graph elements. That view
|
||||||
|
is a *read* of State Hub (`RAIL-FAB-WP-0029`), not a second authoring
|
||||||
|
surface.
|
||||||
|
|
||||||
|
Intakes (refresh): 74 records, **42 `origin: residual`**, 61 still
|
||||||
|
`open`. Residuals are already the dominant intake origin.
|
||||||
|
|
||||||
|
Workplan-level `depends_on` in the summary: **2 edges**
|
||||||
|
(`WARDEN-WP-0034` → `WARDEN-WP-0030`, `RCLK-WP-0002` → `RCLK-WP-0001`).
|
||||||
|
`GET /workplans/` does not even return the field. `fix-consistency` C-20
|
||||||
|
indexes `depends_on_workplans` / `depends_on_tasks`, which almost nobody
|
||||||
|
authors. Task-block `depends_on` is common; **workplan-frontmatter
|
||||||
|
`depends_on` is not engaged.**
|
||||||
|
|
||||||
|
## Themes that actually hold the count up
|
||||||
|
|
||||||
|
Campaign wait/human multi-count (one task may hit several themes):
|
||||||
|
|
||||||
|
| Rank | Theme | Count | What it is |
|
||||||
|
| ---: | --- | ---: | --- |
|
||||||
|
| 1 | Cross-owner coordination | 84 | Wait on another repo, owner return, agent handoff, “not this repo” |
|
||||||
|
| 2 | Secrets / OpenBao / credential infrastructure | 74 | Keys, seals, OIDC, vault paths, issuer/registration, `warden route` |
|
||||||
|
| 3 | Live deploy / invited pilot / production journey | 61 | Real cluster, real tenant, real onboarding |
|
||||||
|
| 4 | Review / assent | 51 | Founder or owner sign-off, explicit approval |
|
||||||
|
| 5 | Operator-only acts | 43 | Login, BotFather, DNS, corpus, attended seal |
|
||||||
|
| 6 | Weekly measurement | 25 | Recurring allocation / demand review |
|
||||||
|
|
||||||
|
Refresh keyword overlap on 145 wait-or-human tasks is the same shape
|
||||||
|
(secrets 73, live deploy 61, review/assent 79, operator 50, cross-owner
|
||||||
|
32 under a stricter regex). Rank order of the first two themes is
|
||||||
|
stable enough to plan against.
|
||||||
|
|
||||||
|
**Founder confirmation (this session):** ranks 1 and 2 confirm the
|
||||||
|
impression that **introducing but not having stabilized the security
|
||||||
|
infrastructure is a major driver.** Cross-owner waits are often waits
|
||||||
|
*on* that incomplete estate (flex-auth, key-cape, OpenBao, approval-engine,
|
||||||
|
informed-decision, ops-warden routing). Residuals are the other
|
||||||
|
structural driver: finishing a plan is allowed to spawn live leftovers,
|
||||||
|
and those leftovers currently count as equal open work.
|
||||||
|
|
||||||
|
Agents close code and docs. They do not close authentication, founder
|
||||||
|
assent, or real customer journeys. A closure campaign that ignores that
|
||||||
|
will keep finding “one more finishable file” while the headline count
|
||||||
|
barely moves — and can rise, because residuals are minted on the way out.
|
||||||
|
|
||||||
|
## What is already true in canon, and what is missing
|
||||||
|
|
||||||
|
Canon today (`work-record-types_v0.1.md` § Residuals): a residual is a
|
||||||
|
**role**, not a kind. Leftovers must be live records (`origin: residual`).
|
||||||
|
That rule did its job: leftovers are no longer parked only in `SCOPE.md`.
|
||||||
|
It did **not** say they are less valuable than the main functional and
|
||||||
|
non-functional requirements, and it did not hide them from the default
|
||||||
|
open-workplan view.
|
||||||
|
|
||||||
|
`depends_on` exists in dashboard KPI math and in a handful of files. It
|
||||||
|
is not the fleet’s coordination graph. Fabric recovered waits from task
|
||||||
|
prose (`waits_on` citations) because the frontmatter field is empty.
|
||||||
|
|
||||||
|
`prj-` project repositories (`ADR-005`, `project-repository-flavor_v0.1.md`)
|
||||||
|
are the declared home of complex cross-repo work. coordination-engine has
|
||||||
|
no awareness of that flavor. Agent instructions still treat cross-repo
|
||||||
|
work as inbox messages and `wait` notes.
|
||||||
|
|
||||||
|
informed-decision already exists as the *Umlaufmappe* / informed sign-off
|
||||||
|
surface (Stage 1 still gated on a deployed `approval-engine`,
|
||||||
|
`INFD-WP-0001-T08`). Credential and decision work is not yet arriving
|
||||||
|
there as compact batches.
|
||||||
|
|
||||||
|
## Programme (founder direction, 2026-09-14)
|
||||||
|
|
||||||
|
Do not open another ad-hoc closure campaign. Use the early-stage systems
|
||||||
|
that already exist, and drive toward fewer concurrent open strands.
|
||||||
|
|
||||||
|
### 1. Flavor, `depends_on`, and residual default-exclusion
|
||||||
|
|
||||||
|
Workplans and tasks gain a **flavor** bucket, orthogonal to kind:
|
||||||
|
|
||||||
|
`planning` | `implementation` | `refactoring` | `extension` | `residual`
|
||||||
|
|
||||||
|
Residuals remain residuals because they are **not deemed as valuable** as
|
||||||
|
the main functional and non-functional requirements. The default view of
|
||||||
|
open workplans in State Hub, and the default “should we implement this?”,
|
||||||
|
**must not consider residuals** unless demand or risk meets them. That
|
||||||
|
meeting **promotes** them into another flavor; they are then no longer
|
||||||
|
residual.
|
||||||
|
|
||||||
|
Engage `depends_on` in workplan frontmatter as the indexed edge, not a
|
||||||
|
dead alias of `depends_on_workplans`.
|
||||||
|
|
||||||
|
Sequenced workplans:
|
||||||
|
|
||||||
|
1. `STATE-WP-0092` — schema and policy in state-hub (and the canon it
|
||||||
|
consumes).
|
||||||
|
2. `CUST-WP-0072` — update existing workplans and conventions.
|
||||||
|
3. `RAIL-FAB-WP-0030` — adapt the Fabric coordination perspective
|
||||||
|
(depends on `STATE-WP-0092` and `RAIL-FAB-WP-0029`).
|
||||||
|
|
||||||
|
### 2. Cross-owner coordination via coordination-engine
|
||||||
|
|
||||||
|
`COORDINATION-WP-0005`: the engine becomes aware of `prj-` workplans as
|
||||||
|
drivers of cross-repository work, and the handling mode for cross-owner
|
||||||
|
waits improves. Agent instructions for Codex, Claude, Grok and others
|
||||||
|
are updated **from that improved mode**, so cross-repo work can be
|
||||||
|
tackled or coordinated without minting another stranded `wait`.
|
||||||
|
|
||||||
|
### 3. Credentials and decisions as informed-decision batches
|
||||||
|
|
||||||
|
`INFD-WP-0002`: utilize the informed-decision framework by providing
|
||||||
|
**batches that can be signed off in a compact timeframe**. One question
|
||||||
|
per memo stays; a batch is a review-group of memos, not a forked schema.
|
||||||
|
This is demand against Stage 1, not a revival of the residual “full L3
|
||||||
|
product” from `INFD-WP-0001`.
|
||||||
|
|
||||||
|
## Success condition for this programme
|
||||||
|
|
||||||
|
Not “open workplan count = 0.” That count includes residuals, proposed
|
||||||
|
explorations, and person-gated journeys.
|
||||||
|
|
||||||
|
Success is:
|
||||||
|
|
||||||
|
- default operator/agent views show **relevant** open work (non-residual);
|
||||||
|
- residuals are listed on demand, and promote when demand or risk appears;
|
||||||
|
- workplan `depends_on` is populated enough that Fabric and State Hub
|
||||||
|
show a real graph instead of recovered citations;
|
||||||
|
- cross-owner waits are coordination-engine cases (especially `prj-`
|
||||||
|
drivers), not silent `wait` forever;
|
||||||
|
- credential and decision chokepoints arrive as signable batches rather
|
||||||
|
than twelve `needs_human` tasks with no packet.
|
||||||
|
|
||||||
|
## What this assessment does not do
|
||||||
|
|
||||||
|
- It does not finish `HOH-WP-0002-T04`, `NK-WP-0036`, `WARDEN-WP-0027-T02`,
|
||||||
|
`RAPP-QONTO-WP-0002`, `CUST-WP-0071` T02–T05, `RAPPS-WP-0014` bind,
|
||||||
|
`FLUID-WP-0008` BotFather, or any other person-gated task.
|
||||||
|
- It does not mint credentials or treat `warden` as a secret vendor.
|
||||||
|
- It does not create a new `prj-` repository for this programme. The five
|
||||||
|
workplans below live in the owning repos and sequence with `depends_on`.
|
||||||
|
A project repo remains available later if the cross-repo surface
|
||||||
|
outgrows that.
|
||||||
|
)
|
||||||
109
workplans/CUST-WP-0072-fleet-flavor-and-depends-on-backfill.md
Normal file
109
workplans/CUST-WP-0072-fleet-flavor-and-depends-on-backfill.md
Normal file
|
|
@ -0,0 +1,109 @@
|
||||||
|
---
|
||||||
|
id: CUST-WP-0072
|
||||||
|
type: workplan
|
||||||
|
title: "Backfill workplan flavor and depends_on across the fleet"
|
||||||
|
domain: infotech
|
||||||
|
repo: the-custodian
|
||||||
|
status: proposed
|
||||||
|
owner: grok
|
||||||
|
topic_slug: custodian
|
||||||
|
flavor: planning
|
||||||
|
depends_on:
|
||||||
|
- STATE-WP-0092
|
||||||
|
created: "2026-09-14"
|
||||||
|
updated: "2026-09-14"
|
||||||
|
related:
|
||||||
|
- STATE-WP-0092
|
||||||
|
- RAIL-FAB-WP-0030
|
||||||
|
- COORDINATION-WP-0005
|
||||||
|
- CUST-WP-0060
|
||||||
|
origin: residual-policy
|
||||||
|
origin_ref: the-custodian/history/20260914-open-workplan-chokepoints.md
|
||||||
|
---
|
||||||
|
|
||||||
|
# Backfill workplan flavor and depends_on across the fleet
|
||||||
|
|
||||||
|
Workplan 2 of 3 after `STATE-WP-0092`. Do not classify the fleet until
|
||||||
|
the canon and hub default-exclusion exist; otherwise flavor is
|
||||||
|
undocumented YAML.
|
||||||
|
|
||||||
|
This plan updates **existing** workplans, conventions, and agent-facing
|
||||||
|
templates. It does not implement hub schema. It does not promote
|
||||||
|
residuals into implementation just to shrink a count.
|
||||||
|
|
||||||
|
## Wait for schema and policy
|
||||||
|
|
||||||
|
```task
|
||||||
|
id: CUST-WP-0072-T01
|
||||||
|
status: wait
|
||||||
|
priority: high
|
||||||
|
depends_on: [STATE-WP-0092]
|
||||||
|
```
|
||||||
|
|
||||||
|
Start backfill only after `STATE-WP-0092` has flavor and `depends_on`
|
||||||
|
indexed and default views omitting residuals. Until then this task stays
|
||||||
|
`wait`. Record the hub revision / workplan statuses that satisfy the
|
||||||
|
gate.
|
||||||
|
|
||||||
|
## Classify open workplans (and their open tasks)
|
||||||
|
|
||||||
|
```task
|
||||||
|
id: CUST-WP-0072-T02
|
||||||
|
status: wait
|
||||||
|
priority: high
|
||||||
|
depends_on: [CUST-WP-0072-T01]
|
||||||
|
```
|
||||||
|
|
||||||
|
For every non-finished workplan in registered repos, set `flavor:` to
|
||||||
|
one of `planning`, `implementation`, `refactoring`, `extension`,
|
||||||
|
`residual`. Default: keep current functional/NFR work as
|
||||||
|
`implementation` or `planning`; mark spawned leftovers and
|
||||||
|
`origin: residual` children as `residual` unless founder demand or a
|
||||||
|
named risk already applies.
|
||||||
|
|
||||||
|
Do not auto-promote. If demand or risk is already documented, change
|
||||||
|
flavor **away from residual** and record the reason in the file. Fill
|
||||||
|
workplan-frontmatter `depends_on` where the prose already names a
|
||||||
|
blocker workplan; do not invent edges. Per-repo edits stay in the owning
|
||||||
|
repos (ADR-001). This workplan coordinates and tracks coverage.
|
||||||
|
|
||||||
|
Done when a coverage table (repo, workplan id, flavor, depends_on
|
||||||
|
filled or none) is committed under `the-custodian/docs/evidence/` and
|
||||||
|
default hub open views drop the residual cohort.
|
||||||
|
|
||||||
|
## Update conventions and templates
|
||||||
|
|
||||||
|
```task
|
||||||
|
id: CUST-WP-0072-T03
|
||||||
|
status: wait
|
||||||
|
priority: medium
|
||||||
|
depends_on: [CUST-WP-0072-T01]
|
||||||
|
```
|
||||||
|
|
||||||
|
Update `AGENTS.md`, `.claude/rules/workplan-convention.md`, session
|
||||||
|
protocol, and any repo-seed workplan template so new files include
|
||||||
|
`flavor` and workplan-level `depends_on`. State the agent rule: do not
|
||||||
|
implement residuals unless promoted. Point at `STATE-WP-0092` for hub
|
||||||
|
behaviour and `COORDINATION-WP-0005` for the later cross-repo mode.
|
||||||
|
Do not duplicate coordination-engine instructions here.
|
||||||
|
|
||||||
|
Done when a newly scaffolded workplan in this repo validates and the
|
||||||
|
convention text matches canon.
|
||||||
|
|
||||||
|
## Intakes: provenance vs flavor
|
||||||
|
|
||||||
|
```task
|
||||||
|
id: CUST-WP-0072-T04
|
||||||
|
status: wait
|
||||||
|
priority: medium
|
||||||
|
depends_on: [CUST-WP-0072-T02]
|
||||||
|
```
|
||||||
|
|
||||||
|
Keep `origin: residual` on intakes as provenance. Where an open intake
|
||||||
|
has already been promoted to a workplan, set that workplan’s flavor
|
||||||
|
consistently. Do not close intakes from this plan. Do not create a
|
||||||
|
parallel residuals queue.
|
||||||
|
|
||||||
|
Done when the residual intake list and residual workplan list can be
|
||||||
|
joined by `origin_ref` without double-counting them as two implementation
|
||||||
|
backlogs.
|
||||||
Loading…
Add table
Add a link
Reference in a new issue