the-custodian/history/20260914-open-workplan-chokepoints.md
codex cdc86961ce
All checks were successful
CI Smoke / host-smoke (push) Successful in 1s
CI Smoke / container-smoke (push) Successful in 3s
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.
2026-09-14 13:48:17 +02:00

189 lines
8.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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 fleets 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` T02T05, `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.
)