2026-10-03 03:06:28 +02:00
|
|
|
|
---
|
|
|
|
|
|
id: CUST-WP-0075
|
|
|
|
|
|
type: workplan
|
|
|
|
|
|
title: "Use the dependency graph to shrink the blocked set and route human gates to decisions"
|
|
|
|
|
|
domain: infotech
|
|
|
|
|
|
repo: the-custodian
|
2026-10-04 01:17:18 +02:00
|
|
|
|
status: finished
|
2026-10-03 03:06:28 +02:00
|
|
|
|
owner: the-custodian
|
|
|
|
|
|
topic_slug: custodian
|
|
|
|
|
|
flavor: planning
|
|
|
|
|
|
created: "2026-10-03"
|
2026-10-04 01:17:18 +02:00
|
|
|
|
updated: "2026-10-04"
|
2026-10-03 03:06:28 +02:00
|
|
|
|
related:
|
|
|
|
|
|
- CUST-WP-0072
|
|
|
|
|
|
- CUST-WP-0074
|
|
|
|
|
|
- STATE-WP-0092
|
|
|
|
|
|
- COORDINATION-WP-0005
|
|
|
|
|
|
origin: analysis
|
|
|
|
|
|
origin_ref: the-custodian/docs/evidence/2026-10-03-dependency-graph-triage/README.md
|
2026-10-03 03:27:00 +02:00
|
|
|
|
state_hub_workstream_id: "6dac666d-b2f8-5d50-b060-272713b6e8a1"
|
2026-10-03 03:06:28 +02:00
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# Use the dependency graph to shrink the blocked set
|
|
|
|
|
|
|
|
|
|
|
|
## Why
|
|
|
|
|
|
|
|
|
|
|
|
`CUST-WP-0072` and `CUST-WP-0074` built the facility: `flavor`, workplan
|
|
|
|
|
|
and task `depends_on`, `needs_human`, `blocked_on`, `wait_until`,
|
|
|
|
|
|
`decision_id`, indexed by C-20 and checked by C-39/C-40/C-41. Nobody has
|
|
|
|
|
|
yet *read* the resulting graph. On 2026-10-03 the open set is 108
|
|
|
|
|
|
workplans (100 blocked) with 232 wait tasks. The security concepts
|
|
|
|
|
|
(credential custody, attended OpenBao provisioning, identity, access
|
|
|
|
|
|
engine) are the dominant blockers, and every one of their 69 human gates
|
|
|
|
|
|
is free text: zero carry a `decision_id`, so Bernd has no single list to
|
|
|
|
|
|
resolve and C-40 rule 4 never fires.
|
|
|
|
|
|
|
|
|
|
|
|
This workplan uses the graph in three ways: clear what the graph says is
|
|
|
|
|
|
already satisfied, correct what the graph says is mis-statused, and
|
|
|
|
|
|
collapse the human gates into a handful of hub decisions that one
|
|
|
|
|
|
attended session can resolve. Evidence and scripts:
|
|
|
|
|
|
`docs/evidence/2026-10-03-dependency-graph-triage/`.
|
|
|
|
|
|
|
|
|
|
|
|
Rules: owner repos are edited directly (Bernd's 2026-09-30 direction on
|
|
|
|
|
|
`CUST-WP-0074-T06`), one commit per repo, synced by `fix-consistency`;
|
|
|
|
|
|
no hub writes except recording and resolving decisions; residual-flavor
|
|
|
|
|
|
workplans are left alone except to finish one whose tasks are all done.
|
|
|
|
|
|
|
|
|
|
|
|
## Capture the graph and publish the triage
|
|
|
|
|
|
|
|
|
|
|
|
```task
|
|
|
|
|
|
id: CUST-WP-0075-T01
|
|
|
|
|
|
status: done
|
|
|
|
|
|
priority: high
|
2026-10-03 03:27:00 +02:00
|
|
|
|
state_hub_task_id: "9d9e994d-0b48-5945-ab13-f301f3343aae"
|
2026-10-03 03:06:28 +02:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
File-view and hub-view scans committed under
|
|
|
|
|
|
`docs/evidence/2026-10-03-dependency-graph-triage/` with the headline
|
|
|
|
|
|
numbers in its README. Done 2026-10-03.
|
|
|
|
|
|
|
|
|
|
|
|
## Clear satisfied waits and correct mis-statused workplans
|
|
|
|
|
|
|
|
|
|
|
|
```task
|
|
|
|
|
|
id: CUST-WP-0075-T02
|
2026-10-03 03:59:10 +02:00
|
|
|
|
status: done
|
2026-10-03 03:06:28 +02:00
|
|
|
|
priority: high
|
2026-10-03 03:27:00 +02:00
|
|
|
|
state_hub_task_id: "0e524c1f-3fd7-5736-9fb2-883f4e6df70a"
|
2026-10-03 03:06:28 +02:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Graph says satisfied (every `depends_on` target terminal):
|
|
|
|
|
|
`ACTIVITY-WP-0032-T05`, `COORDINATION-WP-0004-T02`, `TD-WP-0003-T07`,
|
|
|
|
|
|
`USER-WP-0027-T04`, `USER-WP-0028-T03`, `RCLK-WP-0005-T04` (keeps its
|
|
|
|
|
|
`blocked_on`), `RAPPS-WP-0014-T03` and `MARKITECT-WP-0002-T07` (keep
|
|
|
|
|
|
their human gate; drop the satisfied `depends_on`).
|
|
|
|
|
|
Mis-statused: `UPC-WP-0002/0003/0004` blocked without a wait task;
|
|
|
|
|
|
`MARKITECT-WP-0002` and `RBT-WP-0006` active while every open task
|
|
|
|
|
|
waits; `ACTIVITY-WP-0042` proposed with three unqualified waits;
|
|
|
|
|
|
`RAIL-FAB-WP-0031` blocked with all tasks done; `FLUID-WP-0007` carries
|
|
|
|
|
|
the non-canonical status `done`; `NK-WP-0011` depends on
|
|
|
|
|
|
`NK-WP-0003/0004/0006`, which no file carries.
|
|
|
|
|
|
Done when each owner repo is committed and synced and a re-run of the
|
|
|
|
|
|
file scan lists none of the above.
|
|
|
|
|
|
|
|
|
|
|
|
## Route the human gates to decisions
|
|
|
|
|
|
|
|
|
|
|
|
```task
|
|
|
|
|
|
id: CUST-WP-0075-T03
|
2026-10-03 03:59:10 +02:00
|
|
|
|
status: done
|
2026-10-03 03:06:28 +02:00
|
|
|
|
priority: high
|
2026-10-03 03:27:00 +02:00
|
|
|
|
state_hub_task_id: "a363639a-d688-5c72-9224-63d06dec670e"
|
2026-10-03 03:06:28 +02:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Cluster the 69 `needs_human` waits by the person's actual act (one
|
|
|
|
|
|
attended OpenBao provisioning window, one ArgoCD go-ahead, one Telegram
|
|
|
|
|
|
operator session, Vergabe two-user acceptance, trust-root design, and
|
|
|
|
|
|
so on). For each cluster record one hub decision whose description lists
|
|
|
|
|
|
the task ids, then set `decision_id` on those tasks in the owner files.
|
|
|
|
|
|
Done when every `needs_human` wait in a non-residual open workplan
|
|
|
|
|
|
carries a `decision_id` and Bernd has one ranked decision list.
|
|
|
|
|
|
|
|
|
|
|
|
## Record the security-infrastructure lessons
|
|
|
|
|
|
|
|
|
|
|
|
```task
|
|
|
|
|
|
id: CUST-WP-0075-T04
|
2026-10-03 03:27:00 +02:00
|
|
|
|
status: done
|
2026-10-03 03:06:28 +02:00
|
|
|
|
priority: medium
|
2026-10-03 03:27:00 +02:00
|
|
|
|
state_hub_task_id: "b861e0af-43ad-5052-b224-9bd95762ddfd"
|
2026-10-03 03:06:28 +02:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Write `history/20261003-security-gate-packets.md`: what the graph shows
|
|
|
|
|
|
about how credential, identity and access work gets blocked, and the
|
|
|
|
|
|
improvements that make it easier to maintain and extend (decision-linked
|
|
|
|
|
|
gates, batched attended windows, delegated-applier scope, catalog lanes
|
|
|
|
|
|
as the unit of provisioning). Proposals only; no canon change here.
|
|
|
|
|
|
|
|
|
|
|
|
## Monitor: keep repo and hub in step
|
|
|
|
|
|
|
|
|
|
|
|
```task
|
|
|
|
|
|
id: CUST-WP-0075-T05
|
2026-10-04 01:17:18 +02:00
|
|
|
|
status: done
|
2026-10-03 03:06:28 +02:00
|
|
|
|
priority: medium
|
2026-10-03 03:27:00 +02:00
|
|
|
|
state_hub_task_id: "c78b104d-cdf0-5aca-81a4-b5569cc90479"
|
2026-10-03 03:06:28 +02:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
After every slice: commit, `statehub fix-consistency` for each touched
|
|
|
|
|
|
repo, one progress event on this workplan, and the headline numbers
|
|
|
|
|
|
appended below so progress is visible from the hub.
|
|
|
|
|
|
|
2026-10-03 23:10:54 +02:00
|
|
|
|
2026-10-03 Codex continuation: repeatable read-only monitor implemented in
|
|
|
|
|
|
`scripts/monitor_dependency_triage.py`, with seven regression checks covering
|
|
|
|
|
|
YAML lists/quoting, pagination, missing projections, decision drift, residual
|
|
|
|
|
|
exclusion and independent human gates. Run it with `--output <scratch-dir>`;
|
|
|
|
|
|
review `monitor.json` before acting. Current live findings are retained in
|
|
|
|
|
|
`docs/evidence/2026-10-03-dependency-graph-triage/monitor-2026-10-03.json`:
|
|
|
|
|
|
four unrouted human gates, sixteen unqualified waits and twelve qualifier
|
|
|
|
|
|
differences. This task remains in progress until those findings are reconciled;
|
|
|
|
|
|
the earlier T02/T03 results are point-in-time, not a current clean scan.
|
|
|
|
|
|
|
2026-10-03 03:59:10 +02:00
|
|
|
|
## Hand the infrastructure proposals to their owners
|
|
|
|
|
|
|
|
|
|
|
|
```task
|
|
|
|
|
|
id: CUST-WP-0075-T06
|
2026-10-04 01:17:18 +02:00
|
|
|
|
status: done
|
2026-10-03 03:59:10 +02:00
|
|
|
|
priority: high
|
2026-10-03 04:00:18 +02:00
|
|
|
|
state_hub_task_id: "91fd64c1-2dfd-57d1-8930-51477c530202"
|
2026-10-03 03:59:10 +02:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
`history/20261003-security-gate-packets.md` proposes P1 (unrouted human
|
|
|
|
|
|
gate is a WARN), P2 (standing attended provisioning window with a
|
|
|
|
|
|
generated checklist), P3 (decide the dual-control value path), P4 (catalog
|
|
|
|
|
|
lane as the unit of extension), P5 (daily owner-return sweep) and P6a (CLI
|
|
|
|
|
|
qualifier sync gap, already reported to state-hub as message `70d08f35`).
|
2026-10-03 04:00:58 +02:00
|
|
|
|
2026-10-03: sent state-hub `b4825539` (P1, P5, P6), railiance-platform
|
|
|
|
|
|
`f84637fa` (P2, P3), ops-warden `79549660` (P4). Send each owner one message with
|
2026-10-03 03:59:10 +02:00
|
|
|
|
the proposal and the evidence; record their workplan ids here. Do not
|
|
|
|
|
|
write their workplans for them.
|
|
|
|
|
|
|
2026-10-03 23:10:54 +02:00
|
|
|
|
2026-10-03 Codex continuation: all three original proposal messages remain
|
|
|
|
|
|
unread; no acceptance, owner workplan ID or decline found. Three local derived
|
|
|
|
|
|
`cross_owner_wait` observations are attached under `handoffs` in the monitor
|
|
|
|
|
|
snapshot, with stable case IDs and original message IDs. Obligor workplan IDs
|
|
|
|
|
|
remain unknown pending owner identification. Newer platform/warden replies
|
|
|
|
|
|
concern D1 readiness and the fetch-policy bug, respectively; neither answers
|
|
|
|
|
|
these proposals. No worker was woken. T06 remains `wait`.
|
|
|
|
|
|
|
2026-10-04 01:17:18 +02:00
|
|
|
|
2026-10-03 worker continuation (founder explicitly requested repo workers):
|
|
|
|
|
|
state-hub, railiance-platform and ops-warden workers dispatched first, with
|
|
|
|
|
|
further affected repos queued in
|
|
|
|
|
|
`docs/evidence/2026-10-03-dependency-graph-triage/worker-dispatch-2026-10-03.json`.
|
|
|
|
|
|
ops-warden accepted P4 through reply `cda45346-67d1-4c1c-a0b1-4a13b5032551`:
|
|
|
|
|
|
`WARDEN-WP-0041` owns catalog/template source delivery, with T02 implementation
|
|
|
|
|
|
and T03 platform-seam acceptance still open. Source review and handoff are done
|
|
|
|
|
|
in `ac112d8`. The proposed contract is
|
|
|
|
|
|
`ops-warden/wiki/CatalogLaneScaffoldContract.md`; platform owns its rendering
|
|
|
|
|
|
schema. This resolves that owner handoff, not the downstream implementation.
|
|
|
|
|
|
Reviewed dispositions live in `owner-handoff-receipts.json` in the evidence folder.
|
|
|
|
|
|
|
2026-10-03 03:06:28 +02:00
|
|
|
|
## Progress log
|
|
|
|
|
|
|
|
|
|
|
|
- 2026-10-03 start: 108 open / 100 blocked / 232 wait / 69 human gates /
|
|
|
|
|
|
0 with `decision_id`.
|
2026-10-03 03:27:00 +02:00
|
|
|
|
- 2026-10-03 T02: satisfied or mis-statused records fixed in 11 repos.
|
|
|
|
|
|
COORDINATION-WP-0004, RAIL-FAB-WP-0031 and FLUID-WP-0007 finished.
|
|
|
|
|
|
ACTIVITY-WP-0032-T05, COORDINATION-WP-0004-T02 and TD-WP-0003-T07 had
|
|
|
|
|
|
prose-only blockers; the real edge was encoded (or, for the canon
|
|
|
|
|
|
registration, found already delivered and closed).
|
|
|
|
|
|
- 2026-10-03 T03: eleven hub decisions recorded (D1 attended OpenBao window
|
|
|
|
|
|
`62aa95e4` … D11 operator setups `b6a44b55`). 70 human gates carry a
|
|
|
|
|
|
`decision_id` in their owner files across 29 repos. `WARDEN-WP-0037-T03` has
|
|
|
|
|
|
no stated gate and stays with its owner.
|
|
|
|
|
|
- 2026-10-03 T04: `history/20261003-security-gate-packets.md`.
|
|
|
|
|
|
- 2026-10-03 sweep: 17 owner-return waits had an unread reply from the very
|
|
|
|
|
|
agent they wait on. Repo agents dispatched for ops-mason (5) and
|
|
|
|
|
|
gate-house (5); user-engine (3), activity-core, railiance-platform and
|
|
|
|
|
|
rapp-policy-nexus follow.
|
2026-10-03 03:46:36 +02:00
|
|
|
|
- 2026-10-03 sweep results: COORDINATION-WP-0004 finished (owner return sat
|
|
|
|
|
|
unread a week). RCLK-WP-0002-T01 done: railiance-master ruled 2026-09-21,
|
|
|
|
|
|
gate-house reviewed today, repo-manager registered `RCLK-WP` (`03869ff`).
|
|
|
|
|
|
GH-WP-0004-T07/T08 and MASON-WP-0007-T03 done; MASON-WP-0005-T02 and
|
|
|
|
|
|
RPF-WP-0043-T02 to todo (the latter broke a mutual wait with
|
|
|
|
|
|
rapp-policy-nexus). Other replies were questions back (answered) or
|
|
|
|
|
|
hand-offs to a founder decision (encoded).
|
|
|
|
|
|
- 2026-10-03 D12 recorded for the company-vessel founder actions; WARDEN-WP-0037-T03
|
|
|
|
|
|
routed to D3. All 83 human-gated waits in open non-residual workplans carry
|
|
|
|
|
|
a `decision_id`. Ranked list: `docs/decision-packets-2026-10-03.md`.
|
|
|
|
|
|
- 2026-10-03 finding: the CLI sync left the hub without the `decision_id` on
|
|
|
|
|
|
57 of 58 routed tasks; a direct checker run with `--fix` is pushing them
|
|
|
|
|
|
(see the assessment, P6a).
|
2026-10-03 03:59:10 +02:00
|
|
|
|
- 2026-10-03 close of day: every routed gate verified in the hub (84 of 84
|
|
|
|
|
|
carry the file's `decision_id` after a direct `consistency_check.py --fix`
|
|
|
|
|
|
over 32 repos). File view: 107 open workplans, 232 wait tasks, 83 human
|
|
|
|
|
|
gates in non-residual plans, all routed to 12 decisions; 0 satisfied
|
|
|
|
|
|
waits, 0 unqualified waits, 0 blocked plans without a wait task. Owner-return
|
|
|
|
|
|
waits 62 → 52. T02/T03 done; T05 continues as the monitor; T06 next.
|
2026-10-03 11:39:45 +02:00
|
|
|
|
- 2026-10-03 later: CCR-2026-0031 live end to end (fetch gate fixed and deployed,
|
|
|
|
|
|
core-hub rev 29, verify-publisher 121/2). Re-scan: 109 open, 0 satisfied or
|
|
|
|
|
|
unqualified waits. Next candidates: 45 open todo tasks that agents can pick up
|
|
|
|
|
|
(NK-WP-0011 T02–T09 active, NK-WP-0045 T02/T03, INFD-WP-0005 T04/T07,
|
|
|
|
|
|
FEP-WP-0002-T03, GH-WP-0004-T12, ORGREF-WP-0001 T01/T03–T05, MASON-WP-0005-T02,
|
|
|
|
|
|
RPF-WP-0043-T02, STATE-WP-0079-T04, REINAH-WP-0003-T05, CR-WP-0005 T01–T03),
|
|
|
|
|
|
and two unread owner replies: GH-WP-0004-T06 (informed-decision) and
|
|
|
|
|
|
NK-WP-0042-T02 (user-engine). Follow-up on the CCR-2026-0031 lane: ops-warden
|
|
|
|
|
|
catalog entry plus fetch-pin regeneration (checklist row 6).
|
2026-10-03 23:10:54 +02:00
|
|
|
|
- 2026-10-03 Codex continuation: monitored 146 registered repos; six checkouts
|
|
|
|
|
|
unavailable. Visible file view: 107 open plans including residuals; actionable
|
|
|
|
|
|
non-residual view: 100 open / 94 blocked / 232 wait / 79 human gates, four
|
|
|
|
|
|
unrouted; 56 owner returns. Twelve qualifier differences and sixteen
|
|
|
|
|
|
unqualified waits are recorded as T05 follow-up. Four waits have terminal
|
|
|
|
|
|
predecessors, but separate human/owner gates and task prose still need review.
|
|
|
|
|
|
T06's three proposals remain unanswered. The monitor and seven regression
|
|
|
|
|
|
checks are implemented; no fleet cleanup or proposal acceptance is claimed.
|
2026-10-04 01:17:18 +02:00
|
|
|
|
|
|
|
|
|
|
- 2026-10-04 owner handoffs complete: STATE-WP-0094, RPF-WP-0050 and
|
|
|
|
|
|
WARDEN-WP-0041 are live implementation records. State Hub reply
|
|
|
|
|
|
`c17795db-b3f2-47e8-8be8-04d5d6dfecbf` partially accepts P1/P5/P6a;
|
|
|
|
|
|
P1 and owner-return detection are delivered, wakeup execution, causal diagnosis
|
|
|
|
|
|
and graph freshness remain T03/T04/T05. Legacy remote nightly sweep declined.
|
|
|
|
|
|
Platform reply `981a20fc-315b-4fd8-9783-9c3460a4840d` accepts local checklist
|
|
|
|
|
|
preparation; P3 remains an explicit human custody choice and P4 remains source
|
|
|
|
|
|
scaffold delivery. Reviewed original-thread receipts close T06 only.
|
|
|
|
|
|
- Residual handed off before closure: CUST-WP-0076-T01 owns the operator's
|
|
|
|
|
|
provisioning scope/date/cadence choice, returning to RPF-WP-0050-T03.
|
|
|
|
|
|
It remains residual and is not implemented or scheduled.
|
|
|
|
|
|
- Activity Core current source gates are reconciled separately from the
|
|
|
|
|
|
historical registrar defect. Request `6bf8ca98-ada1-43ab-83e7-207d4ab195fe`
|
|
|
|
|
|
and ACTIVITY-WP-0042-T08 retain that actual blocker. Read-only derivation proof
|
|
|
|
|
|
found omitted legacy YAML task lists and a shared bound UUID; the prepared
|
|
|
|
|
|
preflight-only patch is deliberately unapplied. No receiving preservation,
|
|
|
|
|
|
consumer refresh or runtime acceptance is inferred.
|
|
|
|
|
|
|
|
|
|
|
|
- 2026-10-04 closing verification: all 28 selected qualifier/dependency rows,
|
|
|
|
|
|
six human decision routes and three Activity/User actual-wait records match
|
|
|
|
|
|
source at their task UUIDs. Freedom Intelligence was fast-forwarded before
|
|
|
|
|
|
its checker repair; warning-level PASS alone was not accepted.
|
|
|
|
|
|
T05 completes this reconciliation and the repeatable read-only monitor.
|
|
|
|
|
|
Continuing automation and receiving diagnosis remain STATE-WP-0094,
|
|
|
|
|
|
owner source scaffolds remain RPF-WP-0050/WARDEN-WP-0041, and cadence
|
|
|
|
|
|
remains the unpromoted live residual CUST-WP-0076.
|
|
|
|
|
|
Validation: 11 monitor tests; 182 State Hub checker/CLI tests; 118 Warden
|
|
|
|
|
|
routing/plan tests; 7 platform renderer tests. Platform existing-suite
|
|
|
|
|
|
catalog assertion (52/53) and three historical C07 assessment failures
|
|
|
|
|
|
remain explicitly reported; no broad estate-wide clean audit is claimed.
|
|
|
|
|
|
|
|
|
|
|
|
- Closing monitor: `monitor-workers-2026-10-04.json`: 146 registered repos,
|
|
|
|
|
|
144 available checkouts; 106 open non-residual plans, 241 waits, 86 human
|
|
|
|
|
|
gates; zero unrouted/unqualified/terminal-predecessor waits and zero qualifier
|
|
|
|
|
|
drift. All three owner handoffs satisfied. Two missing checkouts and sixteen
|
|
|
|
|
|
historical parse warnings remain explicit coverage limits.
|