CUST-WP-0075: reconcile owner waits and decision routing
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Python Tests / pytest (push) Successful in 23s

This commit is contained in:
codex 2026-10-04 01:17:18 +02:00
parent 8df9a39836
commit 786b082a19
16 changed files with 1861 additions and 23 deletions

View file

@ -75,7 +75,8 @@
| workplan | CUST-WP-0072 | finished | — | workplans/CUST-WP-0072-fleet-flavor-and-depends-on-backfill.md |
| workplan | CUST-WP-0073 | blocked | — | workplans/CUST-WP-0073-agent-credential-separation.md |
| workplan | CUST-WP-0074 | finished | — | workplans/CUST-WP-0074-qualified-wait-states.md |
| workplan | CUST-WP-0075 | active | — | workplans/CUST-WP-0075-dependency-graph-driven-unblocking.md |
| workplan | CUST-WP-0075 | finished | — | workplans/CUST-WP-0075-dependency-graph-driven-unblocking.md |
| workplan | CUST-WP-0076 | proposed | — | workplans/CUST-WP-0076-provisioning-window-cadence.md |
| workplan | THE-WP-0001 | finished | — | workplans/THE-WP-0001-federation-interface.md |
| task | CUST-WP-ADHOC-2026-05-02-T01 | done | — | workplans/ADHOC-2026-05-02.md |
| task | CUST-WP-ADHOC-2026-07-02-T01 | done | — | workplans/ADHOC-2026-07-02.md |
@ -480,8 +481,9 @@
| task | CUST-WP-0075-T02 | done | — | workplans/CUST-WP-0075-dependency-graph-driven-unblocking.md |
| task | CUST-WP-0075-T03 | done | — | workplans/CUST-WP-0075-dependency-graph-driven-unblocking.md |
| task | CUST-WP-0075-T04 | done | — | workplans/CUST-WP-0075-dependency-graph-driven-unblocking.md |
| task | CUST-WP-0075-T05 | progress | — | workplans/CUST-WP-0075-dependency-graph-driven-unblocking.md |
| task | CUST-WP-0075-T06 | wait | — | workplans/CUST-WP-0075-dependency-graph-driven-unblocking.md |
| task | CUST-WP-0075-T05 | done | — | workplans/CUST-WP-0075-dependency-graph-driven-unblocking.md |
| task | CUST-WP-0075-T06 | done | — | workplans/CUST-WP-0075-dependency-graph-driven-unblocking.md |
| task | CUST-WP-0076-T01 | wait | — | workplans/CUST-WP-0076-provisioning-window-cadence.md |
| task | THE-WP-0001-T01 | done | — | workplans/THE-WP-0001-federation-interface.md |
| task | THE-WP-0001-T02 | done | — | workplans/THE-WP-0001-federation-interface.md |
| intake | CUST-IN-0001 | closed | green | intake-legacy-suggestions-migration.md |

View file

@ -1,6 +1,6 @@
# Decision packets — 2026-10-03
Ranked list of the founder decisions recorded by `CUST-WP-0075`. Each packet is one open hub decision. Every task it gates carries its `decision_id` in the owner repo, so resolving the decision (`POST /decisions/{id}/resolve`) raises C-40 on those tasks and their owners clear them.
Ranked list of the founder decisions recorded by `CUST-WP-0075`. Each packet is one open hub decision. Tasks carry their `decision_id` in the owner repo. Resolving a decision raises C-40 for owner review; each concrete human act and verification must still be satisfied before its task can clear.
Rank is by what the decision unblocks per sitting, from the dependency graph in `docs/evidence/2026-10-03-dependency-graph-triage/`.
@ -101,3 +101,26 @@ Rank is by what the decision unblocks per sitting, from the dependency graph in
- **Why this rank:** Low fan-in operator setups; defer freely.
- **Unblocks:** TD-WP-0003, TD-WP-0004, FIN-WP-0005
- **Gated tasks (5):** `TD-WP-0003-T01`, `TD-WP-0003-T06`, `TD-WP-0004-T05`, `FIN-WP-0005-T01`, `TD-WP-0003-T07`
## 2026-10-04 worker reconciliation: additional concrete human gates
These narrow decisions preserve the actual act; broad D1/D4/D5 dispositions
do not substitute. All remain unresolved (`open` or automatically `escalated`) and their tasks remain `wait`.
| Task | Required act | Decision ID |
| --- | --- | --- |
| NK-WP-0011-T02 | Name an actual identity adoption demand and acceptance scope | `8a5d1eb8-b665-4d25-9742-a15ecfc87c0c` |
| EMERGENT-WP-0002-T02 | Ratify the doctrine/adoption scope | `d20a9750-2b29-534e-8227-fb866581a6ca` |
| RPF-WP-0035-T08 | Accept archive readback and interim bearer revocation evidence | `ab85ae8a-12a0-4945-ae64-1d3d86d5b26f` |
| INFD-WP-0005-T05 | Accept requester ESO and runtime custody | `0d6792b6-59e4-4fa0-887a-c4e51ea8e131` |
| INFD-WP-0005-T10 | Authorize the bounded rollout after prerequisites | `24b0c846-a58e-43bc-ab80-988180ddd2f9` |
| FEP-WP-0009-T01 | Obtain independent human ratings | `6f698650-de45-4402-a84f-ea19ae5f96af` |
| FLEX-WP-0020-T11 | Authorize old checkout deletion after soak; protected alias excluded | `e071b34e-c4d4-49d0-824d-2c58bb0ae496` |
| FLEX-WP-0027-T03 | Record actual signed-in user acknowledgements | `e1868a8d-cad7-48c6-84d1-78a5a566d4a4` |
| FLEX-WP-ADHOC-2026-10-03-T02 | Give the exact live fetch-pin change go-ahead | `877c268b-2089-42f1-a811-d98f549c1cb2` |
| ACTIVITY-WP-0042-T08 | Accept and authorize actual consumer runtime refresh | `6110ead5-1831-4e20-aebd-ac1f978b503b` |
D3 (`1591daa1-6e85-4dfd-aadd-5a9fe1ef47fa`) additionally retains the
explicit P3 dual-control value-path choice under RPF-WP-0050-T02. The platform
checklist is ready locally; date/cadence selection is the live residual
CUST-WP-0076-T01 and platform return RPF-WP-0050-T03. No session is scheduled.

View file

@ -61,3 +61,84 @@ Focused regression checks:
```bash
python3 -m unittest discover -s tests -p test_dependency_triage.py
```
## Repository workers and reviewed handoffs
The founder authorized repo workers for the continuation. Dispatch and results
are tracked in [worker-dispatch-2026-10-03.json](worker-dispatch-2026-10-03.json).
Assignments cover owner proposal dispositions, qualifier reconciliation, and
review of terminal predecessors. Workers preserve human gates and residuals;
source preparation and owner handoff do not establish production acceptance.
After reviewing an owner's proposal reply, record its disposition in
`owner-handoff-receipts.json`, keyed by the original proposal message UUID:
```json
{
"original-message-uuid": {
"reply_message_id": "owner-reply-uuid",
"disposition": "accepted",
"reason": "Concrete proposal disposition and remaining scope",
"owner_workplan_id": "OWNER-WP-NNNN",
"owner_task_ids": ["OWNER-WP-NNNN-T01"]
}
}
```
The monitor reads this file by default, or accepts `--handoff-receipts <path>`.
Accepted and partially accepted dispositions require a non-residual owner plan
and actual task records; a decline requires a reason. The reply must name the
right owner, recipient and proposal thread. Unreviewed or unrelated replies
leave the case waiting. A satisfied case closes the proposal handoff only;
implementation tasks retain their statuses and authority boundaries.
The registry has stale or missing paths for four locally available checkouts.
Use explicit overrides to cover them without changing registry authority:
```bash
python3 scripts/monitor_dependency_triage.py --output /tmp/dependency-triage \
--repo-path access-engine=/home/worsch/access-engine \
--repo-path repo-manager=/home/worsch/repo-manager \
--repo-path railiance-bootstrap=/home/worsch/railiance-bootstrap \
--repo-path railiance-hosts=/home/worsch/railiance-hosts
```
`registry.json` preserves the returned registry; `repos.json` is the effective
local scan input. The report records overrides explicitly. The expanded scan
found three additional unrouted Access Engine gates, assigned to its worker.
`inter-hub` and `markitect-project` remain unavailable locally.
## 2026-10-04 worker close
The closing snapshot is [monitor-workers-2026-10-04.json](monitor-workers-2026-10-04.json),
with its [authoritative graph view](file-view-workers-2026-10-04.txt). Across 146
registered repos and 144 available checkouts, the visible non-residual view has
106 open plans, 241 waits and 86 human gates. It has zero unrouted human gates,
unqualified waits, terminal-predecessor waits or qualifier differences. All three
proposal handoffs have reviewed original-thread dispositions and owner records.
These are point-in-time results; continuing human/owner gates remain binding.
[Dispatch results](worker-dispatch-2026-10-03.json) name 19 affected repo scopes.
[Selected UUID verification](owner-field-verification-2026-10-04.json) records
28 qualifier/dependency rows; six human routes and three Activity/User waits were
separately verified against their actual source blocks. Monitor regressions: 11
pass. State Hub checker/CLI: 182 pass. Warden routing/plan: 118 pass. Platform
renderer: 7 pass; existing suite retains one unrelated catalog exact-set failure
(52/53), and its broad audit retains three historical C07 failures.
The two unavailable checkouts are inter-hub and markitect-project. Sixteen
historical Vergabe task-fence fallback warnings remain. The original snapshot
and earlier headline counts are historical evidence, not closing results.
Activity Core normal registrar sync remains blocked on historical labels and
unsafe receiving derivation: see [read-only proof](activity-core-projection-read-proof.json)
and [owner recommendation](activity-core-projection-route-recommendation.md).
Current ACTIVITY0042 task UUIDs match source after the direct checker; that does
not restore historical receiving preservation. The prepared registrar-only patch
was not applied. Owner request `6bf8ca98-ada1-43ab-83e7-207d4ab195fe` and
ACTIVITY-WP-0042-T08 retain that blocker. The checker also reports three rejected
historical self-dependency writes; no legacy repair is claimed.
Live continuing records: STATE-WP-0094-T03/T04/T05, RPF-WP-0050-T02/T03/T04,
WARDEN-WP-0041-T02/T03, and the unpromoted cadence residual CUST-WP-0076-T01.
No schedule, custody choice, provisioning session or runtime rollout is inferred.

View file

@ -0,0 +1,430 @@
{
"commit": "8330501140aa12650f582f5832a643a472e37a8a",
"legacy_derived": [
{
"record_id": "custodian-WP-0001",
"derived_uuid": "de5de2a4-388c-5080-9aba-ca7c233e4a04",
"relative_path": "workplans/custodian-WP-0001-temporal-backbone.md",
"task_count": 0
},
{
"record_id": "custodian-WP-0002",
"derived_uuid": "4f777d2b-4fba-5fc4-baf4-fb8bddd6fbf0",
"relative_path": "workplans/custodian-WP-0002-triggers-ops.md",
"task_count": 0
},
{
"record_id": "custodian-WP-0003",
"derived_uuid": "683724d9-4249-5e0e-88e0-7baff4330d58",
"relative_path": "workplans/archived/260707-custodian-WP-0003-event-bridge.md",
"task_count": 0
},
{
"record_id": "custodian-WP-0003a",
"derived_uuid": "644017c7-c5f2-5a64-81c3-d8ee806f8251",
"relative_path": "workplans/custodian-WP-0003a-event-bridge-model-rules-registry.md",
"task_count": 0
},
{
"record_id": "custodian-WP-0003b",
"derived_uuid": "a5806df9-5b9a-50da-81c1-7e606076bed9",
"relative_path": "workplans/custodian-WP-0003b-event-bridge-parser-workflow-triggers.md",
"task_count": 0
},
{
"record_id": "custodian-WP-0003c",
"derived_uuid": "6ead901c-bada-5816-9c8f-11341f45e9a4",
"relative_path": "workplans/custodian-WP-0003c-event-bridge-context-integration.md",
"task_count": 0
},
{
"record_id": "custodian-WP-0004",
"derived_uuid": "78881823-2f1d-5d47-88d5-d47ac612520b",
"relative_path": "workplans/custodian-WP-0004-railiance-ops.md",
"task_count": 0
}
],
"missing_legacy_records": [
{
"kind": "workplan",
"record_id": "custodian-WP-0003c",
"uuid": "6ead901c-bada-5816-9c8f-11341f45e9a4"
}
],
"stale_legacy_tasks": [
{
"kind": "task",
"uuid": "0a74f29f-c07d-4338-be90-e5cf4087261b",
"title": "T10: Write activity_runs migration",
"status": "done",
"workplan": "custodian-WP-0001",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "107115b0-4476-424d-84ff-03992a85d40b",
"title": "T02: Write ActivityDefinition schema (Pydantic + JSON Schema)",
"status": "done",
"workplan": "custodian-WP-0001",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "1da921f5-86a8-488f-a015-402079194e10",
"title": "T20: Wire up worker entrypoint",
"status": "done",
"workplan": "custodian-WP-0001",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "2417912f-845d-489a-ace4-fb9280d3b679",
"title": "T15: Implement resolve_context activity (stub)",
"status": "done",
"workplan": "custodian-WP-0001",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "3dc749eb-7a73-4199-9c8d-e8f31bac5372",
"title": "T01: Define event envelope schema",
"status": "done",
"workplan": "custodian-WP-0001",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "47774e01-1026-478e-9a46-7d676bfed45c",
"title": "T09: Write activity_definitions migration",
"status": "done",
"workplan": "custodian-WP-0001",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "491a6903-8189-43bb-958f-4d16abc84f8e",
"title": "T11: Write task_instances migration",
"status": "done",
"workplan": "custodian-WP-0001",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "61cb7426-e0ec-4a52-870d-18a26b3c4f3e",
"title": "T06: Add docker-compose.dev.yml to repo",
"status": "done",
"workplan": "custodian-WP-0001",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "70a7365f-3042-4770-b3cd-3c6724b0790d",
"title": "T19: Implement TaskExecutorWorkflow (stub)",
"status": "done",
"workplan": "custodian-WP-0001",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "70e7f742-378f-4129-a0f4-f25ccaccffd0",
"title": "T05: Stand up Temporal via docker-compose",
"status": "done",
"workplan": "custodian-WP-0001",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "a03c823e-5873-4586-912a-6d1370383c7b",
"title": "T04: Define Temporal namespace and task queue naming conventions",
"status": "done",
"workplan": "custodian-WP-0001",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "aa638595-0bca-41ab-b140-b077d05994e1",
"title": "T03: Document idempotency contract",
"status": "done",
"workplan": "custodian-WP-0001",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "b05f046f-a6ba-4d96-a298-a0bbea067427",
"title": "T14: Implement load_activity_definition activity",
"status": "done",
"workplan": "custodian-WP-0001",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "b7decbb6-ad2b-4fa5-8efc-05a7eb435d76",
"title": "T16: Implement evaluate_templates (pure function)",
"status": "done",
"workplan": "custodian-WP-0001",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "d9fe3e54-ec1a-4e23-aa76-d8869f4e024d",
"title": "T08: Choose and configure DB migration tool",
"status": "done",
"workplan": "custodian-WP-0001",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "e019cb5a-adf0-4a5d-9410-c41810128190",
"title": "T17: Implement log_run activity",
"status": "done",
"workplan": "custodian-WP-0001",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "e0205c56-1d40-4142-952b-e27ff6a44e1d",
"title": "T13: Scaffold Python worker project",
"status": "done",
"workplan": "custodian-WP-0001",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "f24662ff-4a26-48bd-b997-57e7586c7f11",
"title": "T12: Seed one example ActivityDefinition",
"status": "done",
"workplan": "custodian-WP-0001",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "f28a405d-ddcc-44d8-b443-f26f3ab34eaa",
"title": "T07: Smoke test Temporal cluster and UI",
"status": "done",
"workplan": "custodian-WP-0001",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "f72bba1a-eb24-496e-9498-f4676facc5c9",
"title": "T21: Manual end-to-end test",
"status": "done",
"workplan": "custodian-WP-0001",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "fb6b3440-47d2-4b0a-97c1-6e780cc497c4",
"title": "T18: Implement RunActivityWorkflow",
"status": "done",
"workplan": "custodian-WP-0001",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "00231668-95c5-447f-b3d0-1fb8c20b487f",
"title": "T24: Handle misfire policy in schedule config",
"status": "done",
"workplan": "custodian-WP-0002",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "0eafb60c-f00e-4fd7-a921-7de75fcfe81e",
"title": "T31: Wire Temporal SDK metrics to Prometheus",
"status": "done",
"workplan": "custodian-WP-0002",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "5a1f7fa3-acb9-4f60-9892-c9eaa120272e",
"title": "T23: Bootstrap script to sync schedules on startup",
"status": "done",
"workplan": "custodian-WP-0002",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "68b6610b-159c-4f1c-92a9-7128efea0961",
"title": "T26: Implement Event Router service",
"status": "done",
"workplan": "custodian-WP-0002",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "766d602d-1b23-4247-a46d-03c0d3b8e498",
"title": "T33: Write operational runbook",
"status": "done",
"workplan": "custodian-WP-0002",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "7abfd375-ea9d-4209-8371-e5664dc2c6c4",
"title": "T25: Test schedule pause/resume lifecycle",
"status": "done",
"workplan": "custodian-WP-0002",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "7bdfc5c2-1f06-4fce-aac3-fae036dcb47e",
"title": "T32: Tag workflows with activity_id for Temporal visibility search",
"status": "done",
"workplan": "custodian-WP-0002",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "7f10b5a3-7cad-4914-b603-d57508c85629",
"title": "T29: Integration test: publish event \u2192 observe workflow run",
"status": "done",
"workplan": "custodian-WP-0002",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "9348efea-a7e9-4f92-b866-8fc82cf28fee",
"title": "T27: Implement routing rules (event.type + filters \u2192 activity_ids)",
"status": "done",
"workplan": "custodian-WP-0002",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "b27e54a1-5dcc-476d-8f4a-c995aea6a8c2",
"title": "T30: REST API (FastAPI): CRUD for ActivityDefinition",
"status": "done",
"workplan": "custodian-WP-0002",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "cac1f45a-7391-471a-9566-97cdbd96eb2d",
"title": "T28: Start/signal workflow from Event Router",
"status": "done",
"workplan": "custodian-WP-0002",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "e50550d1-9904-41d7-afd8-492a1f1e91b8",
"title": "T22: Write schedule_manager.py",
"status": "done",
"workplan": "custodian-WP-0002",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "2a2a8d02-19dc-4b09-8792-f855ed48388a",
"title": "[repo:activity-core] T61: .env.example \u2014 complete env var reference",
"status": "done",
"workplan": "custodian-WP-0004",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "2a81f9ba-47cb-480f-a5d3-af74fe238485",
"title": "[repo:activity-core] T58: Dockerfile (multi-stage, uv-based)",
"status": "done",
"workplan": "custodian-WP-0004",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "55ac37b5-5606-42e5-bf11-e8dae3a188b7",
"title": "[repo:activity-core] T62: Makefile ops targets",
"status": "done",
"workplan": "custodian-WP-0004",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "65b3229b-5f03-450d-a263-f2c205be3d28",
"title": "[repo:activity-core] T63: SIGTERM graceful shutdown (worker + event_router)",
"status": "done",
"workplan": "custodian-WP-0004",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "67981de4-b766-4c47-9985-9573297ac464",
"title": "[repo:activity-core] T59: docker-compose.railiance.yml (full stack, no Elasticsearch)",
"status": "done",
"workplan": "custodian-WP-0004",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "7c7a1617-29e9-4ea5-a675-fd75e325c451",
"title": "[repo:activity-core] T60: GET /health endpoint",
"status": "done",
"workplan": "custodian-WP-0004",
"has_backing_file": false
},
{
"kind": "task",
"uuid": "83dcd765-5715-499f-be23-f728d0261cfb",
"title": "[repo:activity-core] T64: docs/runbook.md \u2014 railiance deployment section",
"status": "done",
"workplan": "custodian-WP-0004",
"has_backing_file": false
}
],
"activity_0042_selected_parity": [
{
"record_id": "ACTIVITY-WP-0042-T05",
"uuid": "a2d95c80-bfc5-54b7-9987-ad3571d9c75f",
"fields": {
"needs_human": false,
"blocking_reason": "Platform owner must accept the candidate request/receipt contract, execution authority checks, limits and credential scope before runtime wiring.",
"decision_id": null,
"blocked_on": "message-from:railiance-platform",
"wait_until": null,
"status": "wait"
},
"differences": {
"blocked_on": {
"file": "message-from:railiance-platform",
"hub": null
}
},
"source_depends_on": [],
"projected_task_edges": []
},
{
"record_id": "ACTIVITY-WP-0042-T08",
"uuid": "020d19be-0576-5052-ad35-14b1d5a48fe1",
"fields": {
"needs_human": true,
"blocking_reason": "KV4 provider repair is delivered. Current exact-primary projection needs repo-manager historical-prefix acceptance (owner request 6bf8ca98-ada1-43ab-83e7-207d4ab195fe); separate approved CNPG hostPath/Forgejo GitOps bundle delivery, ESO/env refresh and native consumer receipt remain. Founder per-change go is required before live promotion.",
"decision_id": "6110ead5-1831-4e20-aebd-ac1f978b503b",
"blocked_on": "message-from:repo-manager",
"wait_until": null,
"status": "wait"
},
"differences": {
"needs_human": {
"file": true,
"hub": false
},
"blocking_reason": {
"file": "KV4 provider repair is delivered. Current exact-primary projection needs repo-manager historical-prefix acceptance (owner request 6bf8ca98-ada1-43ab-83e7-207d4ab195fe); separate approved CNPG hostPath/Forgejo GitOps bundle delivery, ESO/env refresh and native consumer receipt remain. Founder per-change go is required before live promotion.",
"hub": "Provider repair verified: lane KV4 coordinates-only CAS, encrypted upload/readback and independent decryption. Remaining reviewed consumer source/env refresh and acceptance unperformed; exact primary projection blocked by existing repo-manager historical identifier compatibility."
},
"decision_id": {
"file": "6110ead5-1831-4e20-aebd-ac1f978b503b",
"hub": null
},
"blocked_on": {
"file": "message-from:repo-manager",
"hub": null
}
},
"source_depends_on": [],
"projected_task_edges": []
}
]
}

View file

@ -0,0 +1,56 @@
# Activity Core: preserve historical identities while projecting current work
The October 4 `rmgr sync --path /home/worsch/activity-core --push` failure occurs
before any HTTP reconcile call. `ensure_missing_work_record_identifiers()` rejects
seven workplan labels as invalid: `custodian-WP-0001`, `0002`, `0003`, `0003a`,
`0003b`, `0003c`, and `0004`. There are no reported identity collisions. This is
the existing owner request `6bf8ca98-ada1-43ab-83e7-207d4ab195fe`, already referenced
by ACTIVITY-WP-0042-T08; RMGR-WP-0014/0015 completion does not cover these labels.
All seven files are closed historical evidence (legacy `done`, or `archived`)
and already carry UUID bindings. The primary snapshot confirms four retained
workplans: foundation e22516cc-4fdf-4dad-a928-a9e04a9fa7c7, triggers
3a4f47d9-8bc1-434e-acb4-bed5d4dacda0, event bridge
b4eb45a9-69e3-4ab0-b00c-67a53c3117c5, and ops
759b1255-aa78-42b5-8fab-c5fcf168f5f4. The archived 0003 container and split
0003a/0003b/0003c files share the event-bridge UUID; the owner must explicitly
audit and preserve that historical mapping rather than treating them as four
new workstreams.
Minimal supported repair belongs to Repo Manager: extend its bounded historical
binding-preservation path for these exact activity-core source records, terminal
statuses and existing valid UUIDs. Keep strict conformance reporting, reject new
or active uses, missing bindings and conflicting claims, and test that no source
label/UUID or primary identity changes. If registry grandfathering is used, update
the authoritative canon and Repo Manager's machine copy consistently; do not
introduce a general lowercase-prefix allowance. Verify the shared event-bridge
mapping in a read-only derive/merge test against the actual primary snapshot.
After owner acceptance, use the existing supported route:
```sh
uv run --project /home/worsch/repo-manager rmgr sync --path /home/worsch/activity-core --push
```
That route verifies clean authoritative files, preserves existing managed IDs,
checks the pushed Forge commit and primary/railiance01 identity, then calls
`POST /repos/activity-core/work-record-projection/reconcile` with the exact
expected_commit and retirement acknowledgement false. Validate the returned
exact-commit primary receipt and independently read back ACTIVITY-WP-0042-T05/T08
dependency/qualifier fields by UUID.
Do not rename legacy workplans, allocate replacement UUIDs, bypass the rejected
identifier gate with an ad-hoc API call, acknowledge retirements, or claim current
projection from a successful Git push alone. No source or runtime changes were
made for this recommendation.
Read-only receiving proof subsequently failed preservation. The current pure
derive/diff path, evaluated against the actual primary snapshot, reports one
missing legacy workplan (`custodian-WP-0003c`) and 40 stale legacy tasks. The
historical files store tasks in frontmatter YAML lists, which the current Forge
parser omits. This prevents a registrar-only repair from proving safe normal
projection. Retain owner request 6bf8ca98-ada1-43ab-83e7-207d4ab195fe; do not apply
the prepared preflight-only patch or call normal sync restored. Receiving
preservation needs owner work before the next normal reconcile can proceed.
Proof: /tmp/activity-core-projection-read-proof.json and its read-only generating
script /tmp/activity-core-projection-read-proof.py. Neither writes to the hub.

View file

@ -0,0 +1,79 @@
# Platform owner acceptance for CUST-WP-0075 P2/P3
Recorded 2026-10-04. Original proposal thread: `f84637fa-2355-4971-a2dc-7f1fd01710a8`.
Owner response: `981a20fc-315b-4fd8-9783-9c3460a4840d`.
Progress receipt: `c96e614c-ae9c-41c5-8be6-09b1c8a44ffa`.
Platform accepts bounded source preparation in `RPF-WP-0050`, workplan UUID
`0c7e3b0c-1c36-568c-af51-b06f912a0f1d`. Implementation commit `46eb8be`;
managed-ID finalization `23822658de3018e7b47ba8f9f3f37dcfc1dee210`, verified applied
on State Hub primary/railiance01 with expected commit equal to derived commit.
The installed CLI additionally generated brief commit `80c9e98`; no task status
was changed by that generated commit.
## Delivered P2 source preparation
`RPF-WP-0050-T01` (`43fac4d5-98de-5469-ac86-c8925ea3a31b`) is done.
`credential-change.py window-checklist` joins open authoritative non-residual task
blocks carrying the exact decision UUID to an explicit dated metadata manifest of
CCR/lane/owner-receipt-contract files. Missing joins, stale task IDs, duplicates,
non-approved/applied CCRs and outside-repository contract paths prevent a complete
checklist. It never executes, schedules or acquires credentials, and it does not
print arbitrary CCR content. REVIEW PREPARED means source joins exist; exact
revision, upstream acceptance, current native readiness and founder execution
approval remain required. Explicit workplan roots define the checked scope.
Seven new renderer regressions pass; CLI help and diff checks pass. Existing
credential-change suite: 52/53 pass, with an unrelated exact catalog-set assertion
rejecting existing `repo-manager-forgejo-source`. No broad suite pass is claimed.
The CLI deep audit retained three historical retired-workstream C07 failures.
`--no-writeback` suppresses database-to-file status changes; generated briefs
and managed identifiers can still be written. Direct checker later hit read-only brief
write failure. Routine repo-manager exact-primary projection succeeded, and every
affected qualifier was independently verified by direct task GET.
## Remaining live owner obligations
- `RPF-WP-0050-T02` (`99b73b3f-66b1-57a9-9f68-43e3fe12bf26`): wait,
needs_human=true, decision `1591daa1-6e85-4dfd-aadd-5a9fe1ef47fa`. Founder must
explicitly choose the P3 value path: batched attended custody, response-wrapped
issuer delivery or scoped MFA silent writer, with exact actor/path/audience,
lifetime, audit, replay/crash cleanup and rollback. Generic D3 resolution without
that specific disposition does not satisfy this task. Current attended custody
remains in force.
- `RPF-WP-0050-T03` (`1ae5a6b8-9c83-5813-982f-ca8ad24be8b5`): wait,
blocked_on=message-from:the-custodian. Custodian owes reviewed scope, date and
cadence before a real manifest/window is assembled. Per-lane exact founder
execution approval remains separate. No recurring event is enabled.
- `RPF-WP-0050-T04` (`6475d924-92c6-504a-b9a1-4f035273f0e1`): todo. Warden P4
contract is source-reviewed and accepted; platform precise request schema,
CCR/policy-role/ESO/evidence scaffold and cross-owner fixture remain. No mutual
Warden return wait remains and no end-to-end delivery is claimed.
- `RPF-WP-0035-T08` (`0ef52c26-2669-5cd1-8149-b1f6fcdda6cb`): wait,
needs_human=true, accurate decision `ab85ae8a-12a0-4945-ae64-1d3d86d5b26f`.
Provision/delivery/receiver acceptance already passed on 2026-09-11. Remaining
independent archive readback and coordinated interim bearer revocation acceptance
are distinct acts. It must not return to D1 or replay applied custody.
## Custodian handoff required before finishing CUST-WP-0075
Yes: if CUST-WP-0075 finishes while the cadence/date/scope obligation above remains,
it needs a Custodian-owned live residual record, unless an existing active owner
record already explicitly owns those acts. A platform task waiting on Custodian
cannot itself provide the Custodian source record. A prose mention here does not
satisfy residual handoff.
The minimum bounded record should own: choose and review the cadence and actual
first-window date/scope; confirm authoritative owner roots and eligible CCR/lane/
receipt mappings; send the reviewed return to platform on the proposal thread,
naming its owner work-record/task ID; replace platform's message-only wait with that
exact dependency where appropriate. Keep actual scheduling, founder attended
execution approval and each lane's proof separate. P3 remains the platform-owned
human decision task, and P4 remains platform/Warden source work; do not duplicate
those implementations in Custodian.
Use `origin: residual` and `origin_ref: CUST-WP-0075` on an intake, or an appropriate
next workplan with `flavor: residual`; select its canonical ID through the repository
convention. Residuals stay unimplemented until promoted by demand/risk. No cadence
is chosen or event scheduled by this acceptance artifact. Attach its live handoff
ID to CUST-WP-0075 before status finished, and name it in the final progress receipt.

View file

@ -0,0 +1,199 @@
files: workplans 1426 open 114 Counter({'blocked': 105, 'backlog': 5, 'active': 2, 'proposed': 1, 'ready': 1})
open tasks Counter({'done': 283, 'wait': 258, 'todo': 38, 'cancel': 6})
=== A. satisfied waits in open workplans (file view) ===
=== B. blocked workplans without any wait task ===
=== B2. non-blocked open workplans whose only open tasks are wait ===
CUST-WP-0076 the-custodian proposed 1
FEP-WP-0003 frontend-patterns backlog 2
FEP-WP-0004 frontend-patterns backlog 3
FEP-WP-0006 frontend-patterns backlog 1
=== B3. open workplans with zero open tasks ===
=== C. unqualified waits in open non-residual workplans ===
=== E. roots by transitive open-workplan fan-in (file view) ===
9 SAND-WP-0015-T04 wait h=False on=message-from:railiance-platform dec=None | Credential owner railiance-platform/OpenBao with rein-aharness must es
-> ACTIVITY-WP-0032, CUST-WP-0073, EMERGENT-WP-0002, FEP-WP-0008, FI-WP-0005, GLAS-WP-0012, LLM-WP-0009, REINAH-WP-0003, SAND-WP-0014
7 SECRETS-WP-0009-T03 wait h=False on=message-from:glas-harness dec=None | Native apply/verify and credential delivery/revocation completed; owne
-> ACTIVITY-WP-0032, CUST-WP-0073, EMERGENT-WP-0002, FEP-WP-0008, GLAS-WP-0012, LLM-WP-0009, REINAH-WP-0003
6 GLAS-WP-0012 WP blocked glas-harness
-> ACTIVITY-WP-0032, CUST-WP-0073, EMERGENT-WP-0002, FEP-WP-0008, LLM-WP-0009, REINAH-WP-0003
4 FEP-WP-0009-T01 wait h=True on=None dec=6f698650-de45-4402-a84f-ea19ae5f96af | Needs an independent human reviewer to rate the masked pilot-01 answer
-> FEP-WP-0003, FEP-WP-0004, FEP-WP-0006, FEP-WP-0008
4 FEP-WP-0009-T02 todo
-> FEP-WP-0003, FEP-WP-0004, FEP-WP-0006, FEP-WP-0008
4 NK-WP-0040 WP blocked net-kingdom
-> RAIL-HO-WP-0013, RCLK-WP-0002, RCLK-WP-0004, RCLK-WP-0005
3 FLUID-WP-0008 WP blocked fluid-core
-> FLUID-WP-0009, FT-WP-0001, FT-WP-0002
3 FLUID-WP-0008-T02 wait h=True on=None dec=7f455718-66c9-4049-9aaf-1143aea39d34 | Human step: operator registers the bot via BotFather and stores the to
-> FLUID-WP-0009, FT-WP-0001, FT-WP-0002
3 FLUID-WP-0008-T03 wait h=True on=None dec=7f455718-66c9-4049-9aaf-1143aea39d34 | Human step: operator creates the private test channel, then the public
-> FLUID-WP-0009, FT-WP-0001, FT-WP-0002
3 RAPPS-WP-0014-T03 wait h=True on=None dec=d06307e5-2737-461a-a2f4-a12c3b492a9a | Await populated two-user/document workflow, coherent PostgreSQL/media/
-> CUST-WP-0071, USER-WP-0027, VERGABE-WP-0019
3 RCLK-WP-0002 WP blocked railiance-clock
-> RAIL-HO-WP-0013, RCLK-WP-0004, RCLK-WP-0005
2 FT-WP-0001-T12 todo
-> FLUID-WP-0009, FT-WP-0002
2 HFACT-WP-0001-T01 wait h=True on=None dec=62aa95e4-3ccc-4867-8806-5e3db005b483 | Exact one-cycle runtime is installed and synthetically proved on works
-> LLM-WP-0009, VERGABE-WP-0018
2 IR-WP-0005-T02 wait h=True on=message-from:secrets-engine dec=62aa95e4-3ccc-4867-8806-5e3db005b483 | Human acceptance of three apply/verify/exec approvals for the pinned i
-> IR-WP-0006, IR-WP-0007
2 RAIL-FAB-WP-0028 WP blocked railiance-fabric
-> RAIL-FAB-WP-0029, RAPP-TELEMETRY-WP-0001
2 RAIL-HO-WP-0013 WP blocked railiance-infra
-> RCLK-WP-0004, RCLK-WP-0005
2 RAPPCOREHUB-WP-0002-T05 wait h=True on=None dec=2fd5849c-240e-4d0a-bf07-5ebf8dfce3fd | Operator approval after final backup/delta verification; seven-day sta
-> CORE-WP-0010, HUB-WP-0012
2 SECRETS-WP-0006-T05 wait h=True on=message-from:railiance-platform dec=62aa95e4-3ccc-4867-8806-5e3db005b483 | OpenRouter key-check native acceptance is recorded in SECRETS-WP-0010-
-> SECRETS-WP-0007, WARDEN-WP-0037
2 USER-WP-0026-T03 wait h=False on=message-from:net-kingdom dec=None | Needs a provider-owned workload catalogue and application access decis
-> USER-WP-0027, USER-WP-0028
1 ACTIVITY-WP-0041 WP blocked activity-core
-> RPF-WP-0048
1 ACTIVITY-WP-0042 WP blocked activity-core
-> RPF-WP-0036
1 ACTIVITY-WP-0042-T05 wait h=False on=message-from:railiance-platform dec=None | Platform owner must accept the candidate request/receipt contract, exe
-> RPF-WP-0036
1 KG-WP-0005-T03 wait h=False on=message-from:qonto-assistant dec=None | Operational evidence from an authorized deployed qonto-assistant proce
-> QONTO-WP-0006
1 MASON-WP-0005-T02 todo
-> RPF-WP-0035
1 NK-WP-0003 WP completed net-kingdom
-> NK-WP-0011
1 NK-WP-0004 WP done net-kingdom
-> NK-WP-0011
1 NK-WP-0022 WP blocked net-kingdom
-> RMASTER-WP-0020
1 RCLK-WP-0005 WP blocked railiance-clock
-> RCLK-WP-0004
1 RCLK-WP-0005-T04 wait h=False on=message-from:railiance-bootstrap dec=None | Bootstrap owner fresh-estate and upgrade rehearsal, failed-time gate a
-> RCLK-WP-0004
1 REINAH-WP-0003-T04 wait h=False on=message-from:activity-core dec=None | Migration of profile-absent FI/Binky definitions with Activity Core, k
-> LLM-WP-0009
1 REINAH-WP-0003-T05 todo
-> LLM-WP-0009
1 RPF-WP-0035-T02 wait h=True on=message-from:key-cape dec=62aa95e4-3ccc-4867-8806-5e3db005b483 | SECRETS-WP-0007-T04 done 2026-09-27, so that gate is open. Real blocke
-> SECRETS-WP-0008
1 RPF-WP-0044-T03 wait h=True on=None dec=89f1058f-33bc-47a8-8a49-0b44d426c67e | Adopted 2026-09-21; the follow-on step (issue-core adoption, then auto
-> RPF-WP-0043
1 RPF-WP-0044-T04 wait h=True on=message-from:rapp-issue-core dec=89f1058f-33bc-47a8-8a49-0b44d426c67e | Founder go-ahead plus rapp-issue-core's agreement (hub message) that A
-> RPF-WP-0043
1 RPF-WP-0044-T05 wait h=True on=None dec=89f1058f-33bc-47a8-8a49-0b44d426c67e | Adopted 2026-09-21; remaining preconditions and the next step wait on
-> RPF-WP-0043
1 RPF-WP-0044-T06 wait h=True on=None dec=89f1058f-33bc-47a8-8a49-0b44d426c67e | Founder go-ahead for the ESO adoption after adding CRD Prune=false,Del
-> RPF-WP-0043
1 RPF-WP-0050-T04 todo
-> WARDEN-WP-0041
1 RTEL-WP-0002 WP blocked railiance-telemetry
-> RPF-WP-0036
1 STATE-WP-0079 WP blocked state-hub
-> HUB-WP-0006
1 STATE-WP-0079-T04 todo
-> HUB-WP-0006
1 STATE-WP-0079-T05 wait h=False on=None dec=None | Legacy-meter evidence must cover a full week (capture fixed 2026-08-20
-> HUB-WP-0006
1 UPC-WP-0002 WP blocked prj-unattended-progress-company
-> UPC-WP-0004
1 VERGABE-WP-0019 WP blocked vergabe-teilnahme
-> USER-WP-0027
1 WARDEN-WP-0034 WP blocked ops-warden
-> WARDEN-WP-0040
=== F. cycles (file view) ===
=== G. human gates by fan-in ===
4 FEP-WP-0009-T01 frontend-patterns dec=6f698650-de45-4402-a84f-ea19ae5f96af | Needs an independent human reviewer to rate the masked pilot-01 answers; no model may supply or infer these sc
3 FLUID-WP-0008-T02 fluid-core dec=7f455718-66c9-4049-9aaf-1143aea39d34 | Human step: operator registers the bot via BotFather and stores the token in OpenBao.
3 FLUID-WP-0008-T03 fluid-core dec=7f455718-66c9-4049-9aaf-1143aea39d34 | Human step: operator creates the private test channel, then the public channel.
3 RAPPS-WP-0014-T03 railiance-apps dec=d06307e5-2737-461a-a2f4-a12c3b492a9a | Await populated two-user/document workflow, coherent PostgreSQL/media/issue-state off-host recovery point, iso
2 IR-WP-0005-T02 intelligence-radar dec=62aa95e4-3ccc-4867-8806-5e3db005b483 | Human acceptance of three apply/verify/exec approvals for the pinned intelligence-radar-key-check recipient; s
2 HFACT-WP-0001-T01 prj-helixforge-factory dec=62aa95e4-3ccc-4867-8806-5e3db005b483 | Exact one-cycle runtime is installed and synthetically proved on workstation and Railiance; independent pilot
2 RAIL-HO-WP-0013-T04 railiance-infra dec=2fd5849c-240e-4d0a-bf07-5ebf8dfce3fd | Depends on T03 and reviewed live-host authorization.
2 RAPPCOREHUB-WP-0002-T05 rapp-core-hub dec=2fd5849c-240e-4d0a-bf07-5ebf8dfce3fd | Operator approval after final backup/delta verification; seven-day stabilization window from 2026-08-21.
2 SECRETS-WP-0006-T05 secrets-engine dec=62aa95e4-3ccc-4867-8806-5e3db005b483 | OpenRouter key-check native acceptance is recorded in SECRETS-WP-0010-T03. Other lanes still need exact approv
1 NK-WP-0022-T08 net-kingdom dec=5d8dcdb5-6d7b-463e-bb39-0a4737331403 | Explicit approval, rollback retention window expiry and one successful railiance01 restore/restart drill befor
1 STATE-WP-0079-T06 state-hub dec=2fd5849c-240e-4d0a-bf07-5ebf8dfce3fd | Stopping the primary is a founder decision; needs T04 handoffs and T05 retirement first; legacy meter still ha
1 ACTIVITY-WP-0042-T03 activity-core dec=89f1058f-33bc-47a8-8a49-0b44d426c67e | Founder must confirm whether activity-core's backup worker is the atm-backup-daily unit before declaring to op
1 ACTIVITY-WP-0042-T08 activity-core dec=6110ead5-1831-4e20-aebd-ac1f978b503b | KV4 provider repair is delivered. Current exact-primary projection needs repo-manager historical-prefix accept
1 ACTIVITY-WP-0041-T02 activity-core dec=89f1058f-33bc-47a8-8a49-0b44d426c67e | Adopted 2026-09-27 (manual sync); automated sync waits on RPF-WP-0048-T02: soak evidence plus founder confirma
1 ACTIVITY-WP-0041-T03 activity-core dec=89f1058f-33bc-47a8-8a49-0b44d426c67e | Founder approves the exact autonomous scope: merge paths, tests, images, ceilings, stop conditions, rollback,
1 FT-WP-0001-T01 fluid-telegram dec=7f455718-66c9-4049-9aaf-1143aea39d34 | Human step: operator registers the HelixForge bot via BotFather.
1 FT-WP-0001-T02 fluid-telegram dec=7f455718-66c9-4049-9aaf-1143aea39d34 | Human step: operator creates the private test and public channels.
1 HFACT-WP-0001-T03 prj-helixforge-factory dec=62aa95e4-3ccc-4867-8806-5e3db005b483 | September 16 native OpenRouter receipt resolves the generic requester, operator-reader, deployed approval and
1 UPC-WP-0002-T01 prj-unattended-progress-company dec=42ad2ad5-600c-41c0-a627-cad4b0d1a29b | Founder must execute OH-2026-001…005 (Orange/Red) in binky-control and record the outcome; all five still `pre
1 UPC-WP-0002-T02 prj-unattended-progress-company dec=42ad2ad5-600c-41c0-a627-cad4b0d1a29b | Founder must execute OH-2026-001…005 (Orange/Red) in binky-control and record the outcome; all five still `pre
1 UPC-WP-0002-T03 prj-unattended-progress-company dec=42ad2ad5-600c-41c0-a627-cad4b0d1a29b | Founder must execute OH-2026-001…005 (Orange/Red) in binky-control and record the outcome; all five still `pre
1 UPC-WP-0002-T04 prj-unattended-progress-company dec=42ad2ad5-600c-41c0-a627-cad4b0d1a29b | Founder must execute OH-2026-001…005 (Orange/Red) in binky-control and record the outcome; all five still `pre
1 RCLK-WP-0005-T05 railiance-clock dec=2fd5849c-240e-4d0a-bf07-5ebf8dfce3fd | Disposable VM proof after T02/T03, then specifically authorized native verification through the S1 owner.
1 RPF-WP-0048-T02 railiance-platform dec=89f1058f-33bc-47a8-8a49-0b44d426c67e | 24h soak after adoption, then founder confirmation of the scoped identity and checks before automated sync; AC
1 RPF-WP-0044-T03 railiance-platform dec=89f1058f-33bc-47a8-8a49-0b44d426c67e | Adopted 2026-09-21; the follow-on step (issue-core adoption, then automation) waits on the founder's go-ahead.
1 RPF-WP-0044-T04 railiance-platform dec=89f1058f-33bc-47a8-8a49-0b44d426c67e | Founder go-ahead plus rapp-issue-core's agreement (hub message) that ArgoCD owns production and make deploy st
1 RPF-WP-0044-T05 railiance-platform dec=89f1058f-33bc-47a8-8a49-0b44d426c67e | Adopted 2026-09-21; remaining preconditions and the next step wait on the founder's go-ahead.
1 RPF-WP-0044-T06 railiance-platform dec=89f1058f-33bc-47a8-8a49-0b44d426c67e | Founder go-ahead for the ESO adoption after adding CRD Prune=false,Delete=false and re-running the diff.
1 RPF-WP-0044-T07 railiance-platform dec=89f1058f-33bc-47a8-8a49-0b44d426c67e | Founder go-ahead to restore automated prune/selfHeal on railiance-apps-root once T03-T06 are proven.
1 RPF-WP-0035-T02 railiance-platform dec=62aa95e4-3ccc-4867-8806-5e3db005b483 | SECRETS-WP-0007-T04 done 2026-09-27, so that gate is open. Real blocker: live KeyCape registration of client s
1 VERGABE-WP-0019-T06 vergabe-teilnahme dec=d06307e5-2737-461a-a2f4-a12c3b492a9a | Source and live SSO/recovery are delivered, and one founder sign-in passed September 24. Await invited recipie
0 MARKITECT-WP-0002-T07 markitect-main dec=62aa95e4-3ccc-4867-8806-5e3db005b483 | Registry ownership/access and npm/CDN publication receipts from the standalone maintainer.
0 NK-WP-0042-T02 net-kingdom dec=cef97ccd-4ee7-40fe-859e-1df9c9360ecb | Agree the MFA-required user experience with user-engine and one pilot workload; must be accepted from a user's
0 NK-WP-0011-T02 net-kingdom dec=8a5d1eb8-b665-4d25-9742-a15ecfc87c0c | ADR-0009 adoption trigger absent; then railiance-platform/rapp-postgres must admit the database consumer and r
0 CUST-WP-0076-T01 the-custodian dec=62aa95e4-3ccc-4867-8806-5e3db005b483 | Operator must select the concrete attended provisioning scope, date and any recurrence; the checklist renderer
0 CUST-WP-0073-T05 the-custodian dec=1591daa1-6e85-4dfd-aadd-5a9fe1ef47fa | Deferred by founder decision 2026-09-24; reopened only by the founder on one of the three triggers below, in o
0 FLEX-WP-0027-T03 access-engine dec=e1868a8d-cad7-48c6-84d1-78a5a566d4a4 | Needs the operator's exact signed-in account and actual human acknowledgements; synthetic policy checks are no
0 FLEX-WP-0020-T11 access-engine dec=e071b34e-c4d4-49d0-824d-2c58bb0ae496 | Soak window after T10; destructive cleanup needs separate human approval.
0 FLEX-WP-ADHOC-2026-10-03-T02 access-engine dec=877c268b-2089-42f1-a811-d98f549c1cb2 | Live railiance01 change; founder go needed for CI image digest, helm install and tunnel.
0 EMERGENT-WP-0002-T02 emergent-security dec=d20a9750-2b29-534e-8227-fb866581a6ca | Cross-owner doctrine ratification and human exact-packet adoption remain pending; local boundary implementatio
0 FIN-WP-0005-T01 fin-hub dec=b6a44b55-8d10-4b96-8a71-524a0c34d2f3 | Operator and Steuerbuero confirm the Qonto plan, DATEV tenant, master-data owner, workflow and retention polic
0 FT-WP-0002-T01 fluid-telegram dec=7f455718-66c9-4049-9aaf-1143aea39d34 | An operator registers a dedicated account, obtains api_id/api_hash and runs the guided session bootstrap; neve
0 GLAS-WP-0015-T03 glas-harness dec=62aa95e4-3ccc-4867-8806-5e3db005b483 | Await owner returns: secrets-engine config, holder admission, lane approvals and scoped delivery; operator inp
0 HOH-WP-0002-T04 hall-of-helix dec=2fd5849c-240e-4d0a-bf07-5ebf8dfce3fd | Publishing 102 internal seats is an irreversible outward change; corpus review and disposition are the founder
0 HUB-WP-0012-T06 hub-core dec=62aa95e4-3ccc-4867-8806-5e3db005b483 | T04/T05 live admission and Railiance/platform owners' attended receipts
0 INFD-WP-0005-T05 informed-decision dec=0d6792b6-59e4-4fa0-887a-c4e51ea8e131 | Requester CLIENT_SECRET must reach the review pod by ESO (railiance-platform, msg cd811073) and the custody ch
0 INFD-WP-0005-T10 informed-decision dec=24b0c846-a58e-43bc-ab80-988180ddd2f9 | Live rollout of intake, admission branch and write-back flag needs the founder's go
0 MASON-WP-0005-T03 ops-mason dec=e9f44beb-ad15-4285-8996-1e66d312fe59 | Explicit human approval of the plan (status: approved, approved_by, approved_at) after the live survey.
0 MASON-WP-0006-T06 ops-mason dec=89f1058f-33bc-47a8-8a49-0b44d426c67e | Dated review 2026-12-21: platform confirms policy-nexus ArgoCD onboarding; founder reviews the plan-approval e
0 MASON-WP-0004-T01 ops-mason dec=e9f44beb-ad15-4285-8996-1e66d312fe59 | Founder ruling on the genuinely unclear paths; no scoped metadata grant or complete inventory yet.
0 MASON-WP-0004-T02 ops-mason dec=62aa95e4-3ccc-4867-8806-5e3db005b483 | Requires a valid scoped metadata grant (operator) before the described paths can be written and verified.
0 WARDEN-WP-0027-T02 ops-warden dec=1591daa1-6e85-4dfd-aadd-5a9fe1ef47fa | Trust-root design is a founder decision: who holds unseal shares and recovery keys, quorum, break-glass invoca
0 WARDEN-WP-0039-T03 ops-warden dec=None | Code side done 2026-10-03 (policy.fetch_flex_auth_url). Waits on founder go: deploy access-engine pin flex-aut
0 WARDEN-WP-0037-T03 ops-warden dec=1591daa1-6e85-4dfd-aadd-5a9fe1ef47fa | Founder HOLD 2026-09-21: no rotation until SECRETS-WP-0006-T06 moves the publish lane off the legacy whynot-de
0 UPC-WP-0004-T02 prj-unattended-progress-company dec=42ad2ad5-600c-41c0-a627-cad4b0d1a29b | Publish gates: IP ownership, domain, Impressum (founder) and G1 via UPC-WP-0002; DEC-2026-006 approved as prep
0 UPC-WP-0004-T03 prj-unattended-progress-company dec=42ad2ad5-600c-41c0-a627-cad4b0d1a29b | Publish gates: IP ownership, domain, Impressum (founder) and G1 via UPC-WP-0002; DEC-2026-006 approved as prep
0 UPC-WP-0003-T03 prj-unattended-progress-company dec=42ad2ad5-600c-41c0-a627-cad4b0d1a29b | Needs ≥30 days of founder-logged minutes in binky-control/briefs/load-log.csv (window starts 2026-09-28 at the
0 RAIL-HO-WP-0011-T08 railiance-infra dec=5d8dcdb5-6d7b-463e-bb39-0a4737331403 | Live recipient removal or credential replacement requires explicit operator approval after the dry run.
0 RMASTER-WP-0020-T08 railiance-master dec=5d8dcdb5-6d7b-463e-bb39-0a4737331403 | Retention expiry, a successful railiance01 DR drill and new explicit approval for destructive deletion.
0 RPF-WP-0027-T03 railiance-platform dec=62aa95e4-3ccc-4867-8806-5e3db005b483 | Attended resolver run: postchecks outstanding; NetKingdom asked to package the complete sequence as one receip
0 RPF-WP-0027-T06 railiance-platform dec=62aa95e4-3ccc-4867-8806-5e3db005b483 | Platform/OpenBao owner must publish the non-secret routing receipt for both lanes through the attended handoff
0 RPF-WP-0038-T04 railiance-platform dec=62aa95e4-3ccc-4867-8806-5e3db005b483 | Operator chooses the independent archive prefix and confirms retention/caller contract and bounded worker cred
0 RPF-WP-0044-T08 railiance-platform dec=89f1058f-33bc-47a8-8a49-0b44d426c67e | Planning only; needs an operator read-only check of coulombcore's ArgoCD, outside agent session scope.
0 RPF-WP-0015-T03 railiance-platform dec=2fd5849c-240e-4d0a-bf07-5ebf8dfce3fd | Single-node outage exercise needs operator access and a declared restart order coordinated with railiance-infr
0 RPF-WP-0050-T02 railiance-platform dec=1591daa1-6e85-4dfd-aadd-5a9fe1ef47fa | Founder must explicitly choose batched attended custody, response-wrapped issuer delivery, or scoped MFA silen
0 RPF-WP-0043-T04 railiance-platform dec=89f1058f-33bc-47a8-8a49-0b44d426c67e | Founder go-ahead: the merge is a live production change (CONSTRUCT @ railiance-platform, activation=APPROVED);
0 RPF-WP-0035-T03 railiance-platform dec=62aa95e4-3ccc-4867-8806-5e3db005b483 | Attended platform policy/schema apply after MASON-WP-0005 construction coordination confirms the capability sc
0 RPF-WP-0035-T07 railiance-platform dec=1591daa1-6e85-4dfd-aadd-5a9fe1ef47fa | Founder HOLD (2026-09-21) on the legacy whynot-design npm pointer; custody disposition is an attended decision
0 RPF-WP-0035-T06 railiance-platform dec=62aa95e4-3ccc-4867-8806-5e3db005b483 | INFD-WP-0001-T07/T08 terminal; remaining gate is human approval of the scoped delivery proof; front door stays
0 RPF-WP-0035-T08 railiance-platform dec=ab85ae8a-12a0-4945-ae64-1d3d86d5b26f | Provisioned and delivered 2026-09-11 (CCR-2026-0021/0022 applied); do not repeat. Receiver rollout with eviden
0 RPF-WP-0036-T03 railiance-platform dec=89f1058f-33bc-47a8-8a49-0b44d426c67e | activity-core replied (not accepted yet): role acceptance is the founder decision ACTIVITY-WP-0042-T01 (D2); t
0 RAPP-OPENBAO-WP-0002-T02 rapp-openbao dec=62aa95e4-3ccc-4867-8806-5e3db005b483 | Await the loopback OIDC callback accepted by the OpenBao platform-admin role and an attended MFA login (see RM
0 RAPP-POLICY-NEXUS-WP-0002-T05 rapp-policy-nexus dec=89f1058f-33bc-47a8-8a49-0b44d426c67e | Live change; runs only after the founder approves the plan with T02-T04 done.
0 REEF-RAILIANCE-WP-0003-T04 reef-railiance dec=2fd5849c-240e-4d0a-bf07-5ebf8dfce3fd | Production approval requires mitigation or explicit acceptance of the single-node/shared-control-plane risk.
0 RBT-WP-0006-T01 runbook-tutorials dec=1e517449-2114-4a8f-9c6b-fcdbe977378e | Needs a decision on which identity runs the command.
0 RBT-WP-0006-T02 runbook-tutorials dec=1e517449-2114-4a8f-9c6b-fcdbe977378e | Needs a decision on scan scope.
0 RBT-WP-0006-T03 runbook-tutorials dec=1e517449-2114-4a8f-9c6b-fcdbe977378e | Needs decisions on access, identity and what is sent where.
0 RBT-WP-0006-T04 runbook-tutorials dec=1e517449-2114-4a8f-9c6b-fcdbe977378e | Needs a decision on how a pack in another repo is identified and trusted.
0 RBT-WP-0006-T05 runbook-tutorials dec=1e517449-2114-4a8f-9c6b-fcdbe977378e | Needs a decision whether hosts without a browser justify it; the CLI already covers v0.1 runs (moved from RBT-
0 RBT-WP-0006-T06 runbook-tutorials dec=1e517449-2114-4a8f-9c6b-fcdbe977378e | Needs a decision to start a v0.3 design: conditional applicability (G1), longer horizons (G2), gate recheck (G
0 RBT-WP-0006-T07 runbook-tutorials dec=1e517449-2114-4a8f-9c6b-fcdbe977378e | Optional follow-up agreed with Bernd on 2026-09-29: the workplans close without it. Needs a decision when to r
0 TD-WP-0003-T01 test-driver dec=b6a44b55-8d10-4b96-8a71-524a0c34d2f3 | Bounded live-model experiment: run count and cost ceiling agreed with the operator before the first call.
0 TD-WP-0003-T06 test-driver dec=b6a44b55-8d10-4b96-8a71-524a0c34d2f3 | Operator establishes Playwright and clears its licence.
0 TD-WP-0003-T07 test-driver dec=b6a44b55-8d10-4b96-8a71-524a0c34d2f3 | Needs an independently timed fresh implementation by an author who does not copy the fixtures.
0 TD-WP-0004-T05 test-driver dec=b6a44b55-8d10-4b96-8a71-524a0c34d2f3 | Operator/target-owner-selected system and approved bounded engagement.
0 USER-WP-0035-T02 user-engine dec=62aa95e4-3ccc-4867-8806-5e3db005b483 | Needs the operator-owned governed transactional mail lane (email-connect plus the OpenBao delivery token).
0 USER-WP-0027-T04 user-engine dec=cef97ccd-4ee7-40fe-859e-1df9c9360ecb | Attended live acceptance of U05-U08/P04-P06 against the real provider factor (enrollment, cancellation, replac
0 USER-WP-0028-T03 user-engine dec=cef97ccd-4ee7-40fe-859e-1df9c9360ecb | Attended live acceptance of U05-U08 (enrollment, cancel, replace, lost-factor recovery, old-AAL1-session behav
88 human gates

View file

@ -0,0 +1,140 @@
{
"open_non_residual_workplans": 106,
"workplan_statuses": {
"active": 2,
"backlog": 5,
"blocked": 98,
"ready": 1
},
"wait_tasks": 241,
"human_gates": 86,
"unrouted_human_gates": [],
"unqualified_waits": [],
"owner_return_waits": 62,
"terminal_dependency_waits": [],
"qualifier_drift": [],
"parse_warnings": [
"/home/worsch/vergabe-teilnahme/workplans/VT-WP-0001-projektgeruest.md",
"/home/worsch/vergabe-teilnahme/workplans/VT-WP-0002-fachmodelle.md",
"/home/worsch/vergabe-teilnahme/workplans/VT-WP-0003-basis-ui.md",
"/home/worsch/vergabe-teilnahme/workplans/VT-WP-0005-lose-anforderungen.md",
"/home/worsch/vergabe-teilnahme/workplans/VT-WP-0006-aufgaben-bieterfragen.md",
"/home/worsch/vergabe-teilnahme/workplans/VT-WP-0007-dokumente.md",
"/home/worsch/vergabe-teilnahme/workplans/VT-WP-0008-preise.md",
"/home/worsch/vergabe-teilnahme/workplans/VT-WP-0009-abgabe-nachbetrachtung.md",
"/home/worsch/vergabe-teilnahme/workplans/VT-WP-0010-partner-bibliothek.md",
"/home/worsch/vergabe-teilnahme/workplans/VT-WP-0011-marktbegleiter.md",
"/home/worsch/vergabe-teilnahme/workplans/VT-WP-0012-querschnitt.md",
"/home/worsch/vergabe-teilnahme/workplans/VT-WP-0013-feedback-bugs.md",
"/home/worsch/vergabe-teilnahme/workplans/VT-WP-0014-aufgaben-lose-scores.md",
"/home/worsch/vergabe-teilnahme/workplans/VT-WP-0015-aufgaben-verknuepfungen-frist-issuefacade.md",
"/home/worsch/vergabe-teilnahme/workplans/VT-WP-0016-issue-facade-integration.md",
"/home/worsch/vergabe-teilnahme/workplans/VT-WP-0017-whynot-design-tokens.md"
],
"captured_at": "2026-10-03T23:13:05.837703+00:00",
"registered_repos": 146,
"checkout_overrides": {
"access-engine": "/home/worsch/access-engine",
"repo-manager": "/home/worsch/repo-manager",
"railiance-bootstrap": "/home/worsch/railiance-bootstrap",
"railiance-hosts": "/home/worsch/railiance-hosts"
},
"unavailable_checkouts": [
"inter-hub",
"markitect-project"
],
"handoffs": [
{
"case_id": "case:cross-owner:CUST-WP-0075-T06:state-hub",
"scenario_type": "cross_owner_wait",
"beneficiary_workplan_id": "CUST-WP-0075",
"obligor_repo": "state-hub",
"obligor_workplan_id": "STATE-WP-0094",
"state": "satisfied",
"reason": "P1 and P5 detection delivered. Wakeup execution, causal qualifier diagnosis and graph freshness assessment remain T03/T04/T05; legacy nightly remote sweep declined.",
"proposal_message_id": "b4825539-1425-4028-a2e9-9243785a344b",
"proposal_read_at": null,
"reply_candidates": [
{
"id": "c17795db-b3f2-47e8-8be8-04d5d6dfecbf",
"subject": "CUST-WP-0075 owner disposition: STATE-WP-0094, P1/P5 detection delivered; P6a retained",
"thread_id": "b4825539-1425-4028-a2e9-9243785a344b"
}
],
"disposition": "partially_accepted",
"owner_task_ids": [
"STATE-WP-0094-T01",
"STATE-WP-0094-T02",
"STATE-WP-0094-T03",
"STATE-WP-0094-T04",
"STATE-WP-0094-T05"
],
"reply_message_id": "c17795db-b3f2-47e8-8be8-04d5d6dfecbf",
"scope": "Proposal handoff only; owner implementation and human gates retain their own status"
},
{
"case_id": "case:cross-owner:CUST-WP-0075-T06:railiance-platform",
"scenario_type": "cross_owner_wait",
"beneficiary_workplan_id": "CUST-WP-0075",
"obligor_repo": "railiance-platform",
"obligor_workplan_id": "RPF-WP-0050",
"state": "satisfied",
"reason": "Checklist renderer delivered; explicit custody choice T02, operator cadence T03 and platform scaffold T04 remain. No standing event or live provisioning activated.",
"proposal_message_id": "f84637fa-2355-4971-a2dc-7f1fd01710a8",
"proposal_read_at": "2026-10-03T22:29:37.571988Z",
"reply_candidates": [
{
"id": "981a20fc-315b-4fd8-9783-9c3460a4840d",
"subject": "Accepted CUST-WP-0075 P2/P3 preparation: RPF-WP-0050; actual T08 gate routed",
"thread_id": "f84637fa-2355-4971-a2dc-7f1fd01710a8"
},
{
"id": "84cb5557-cc89-43fa-b8b8-13508c5ea52b",
"subject": "Re: D1 readiness: two lanes need a reviewed command before they can be approved",
"thread_id": "208c18ec-79fe-4b21-8cc8-928ecccfd4c2"
}
],
"disposition": "partially_accepted",
"owner_task_ids": [
"RPF-WP-0050-T01",
"RPF-WP-0050-T02",
"RPF-WP-0050-T03",
"RPF-WP-0050-T04"
],
"reply_message_id": "981a20fc-315b-4fd8-9783-9c3460a4840d",
"scope": "Proposal handoff only; owner implementation and human gates retain their own status"
},
{
"case_id": "case:cross-owner:CUST-WP-0075-T06:ops-warden",
"scenario_type": "cross_owner_wait",
"beneficiary_workplan_id": "CUST-WP-0075",
"obligor_repo": "ops-warden",
"obligor_workplan_id": "WARDEN-WP-0041",
"state": "satisfied",
"reason": "ops-warden owns the proposed catalog/template seam under WARDEN-WP-0041. T02 retains source implementation; T03 retains platform schema/renderer acceptance. The handoff is accepted; the scaffold is not yet delivered.",
"proposal_message_id": "79549660-4fc8-44d5-989e-074f6c7b6f07",
"proposal_read_at": "2026-10-03T21:22:49.738641Z",
"reply_candidates": [
{
"id": "cda45346-67d1-4c1c-a0b1-4a13b5032551",
"subject": "Re: P4 accepted \u2014 WARDEN-WP-0041 catalog scaffold owner work",
"thread_id": "79549660-4fc8-44d5-989e-074f6c7b6f07"
},
{
"id": "94d07ae0-a2a4-47f8-8bf7-9957aaf2a84f",
"subject": "Re: BUG: warden secret-fetch policy check is sent to the SSH signing pin and always 403s for non-ops-warden owners",
"thread_id": "faf11061-b490-435a-b472-cb315a459760"
}
],
"disposition": "accepted",
"owner_task_ids": [
"WARDEN-WP-0041-T01",
"WARDEN-WP-0041-T02",
"WARDEN-WP-0041-T03",
"WARDEN-WP-0041-T04"
],
"reply_message_id": "cda45346-67d1-4c1c-a0b1-4a13b5032551",
"scope": "Proposal handoff only; owner implementation and human gates retain their own status"
}
]
}

View file

@ -0,0 +1,382 @@
{
"verified_rows": [
{
"task_id": "ADAPTIVE-WP-0010-T01",
"uuid": "7533431c-a0de-5ac8-a811-14e4604ad651",
"source_path": "/home/worsch/adaptive-pricing/workplans/ADAPTIVE-WP-0010-plan-derived-guardrail-ceilings.md",
"file_depends_on": [],
"hub_wait_kind": "external",
"parity": true,
"drift": {},
"runtime_claim": "No runtime/deployment acceptance inferred from projection parity.",
"dependency_parity": true,
"missing_dependency_descriptions": []
},
{
"task_id": "FI-WP-0005-T04",
"uuid": "d679352f-8b0d-5ca5-9e42-4173ed87f48a",
"source_path": "/home/worsch/freedom-intelligence/workplans/FI-WP-0005-profiled-brief-execution.md",
"file_depends_on": [],
"hub_wait_kind": "external",
"parity": true,
"drift": {},
"runtime_claim": "No runtime/deployment acceptance inferred from projection parity.",
"dependency_parity": true,
"missing_dependency_descriptions": []
},
{
"task_id": "FI-WP-0005-T08",
"uuid": "3bd365ad-7e9c-54cc-ad2b-e1cbbf525636",
"source_path": "/home/worsch/freedom-intelligence/workplans/FI-WP-0005-profiled-brief-execution.md",
"file_depends_on": [
"FI-WP-0005-T07"
],
"hub_wait_kind": "external",
"parity": true,
"drift": {},
"runtime_claim": "No runtime/deployment acceptance inferred from projection parity.",
"dependency_parity": true,
"missing_dependency_descriptions": []
},
{
"task_id": "INFO-WP-0029-T05",
"uuid": "0486fcba-3609-50c5-b347-e7ee84f9f548",
"source_path": "/home/worsch/info-tech-canon/workplans/INFO-WP-0029-emission-cadence-adoption.md",
"file_depends_on": [],
"hub_wait_kind": "external",
"parity": true,
"drift": {},
"runtime_claim": "No runtime/deployment acceptance inferred from projection parity.",
"dependency_parity": true,
"missing_dependency_descriptions": []
},
{
"task_id": "KG-WP-0005-T03",
"uuid": "d2f59a1b-ee01-51b5-b9b6-6e7875d6c988",
"source_path": "/home/worsch/kings-guard/workplans/KG-WP-0005-qonto-source-cadence-admission.md",
"file_depends_on": [],
"hub_wait_kind": "external",
"parity": true,
"drift": {},
"runtime_claim": "No runtime/deployment acceptance inferred from projection parity.",
"dependency_parity": true,
"missing_dependency_descriptions": []
},
{
"task_id": "RAPP-QONTO-WP-0002-T01",
"uuid": "09483a24-55ca-5de2-a19c-a00f938dba86",
"source_path": "/home/worsch/rapp-qonto/workplans/RAPP-QONTO-WP-0002-resource-usage-and-cost-evidence.md",
"file_depends_on": [],
"hub_wait_kind": "external",
"parity": true,
"drift": {},
"runtime_claim": "No runtime/deployment acceptance inferred from projection parity.",
"dependency_parity": true,
"missing_dependency_descriptions": []
},
{
"task_id": "RAPP-TELEMETRY-WP-0001-T04",
"uuid": "95f0acc6-f9cb-542f-89ab-a6b6b61da3bb",
"source_path": "/home/worsch/rapp-telemetry/workplans/RAPP-TELEMETRY-WP-0001-foundation.md",
"file_depends_on": [],
"hub_wait_kind": "external",
"parity": true,
"drift": {},
"runtime_claim": "No runtime/deployment acceptance inferred from projection parity.",
"dependency_parity": true,
"missing_dependency_descriptions": []
},
{
"task_id": "REINAH-WP-0003-T04",
"uuid": "f6c7f80c-3807-54ac-b44a-ef582433b927",
"source_path": "/home/worsch/rein-aharness/workplans/REINAH-WP-0003-governed-runtime-integrity.md",
"file_depends_on": [],
"hub_wait_kind": "external",
"parity": true,
"drift": {},
"runtime_claim": "No runtime/deployment acceptance inferred from projection parity.",
"dependency_parity": true,
"missing_dependency_descriptions": []
},
{
"task_id": "SAND-WP-0015-T04",
"uuid": "58817ef6-76d9-5e34-908f-c024e6c99f93",
"source_path": "/home/worsch/sand-boxer/workplans/SAND-WP-0015-bwrap-runtime-and-private-state.md",
"file_depends_on": [],
"hub_wait_kind": "external",
"parity": true,
"drift": {},
"runtime_claim": "No runtime/deployment acceptance inferred from projection parity.",
"dependency_parity": true,
"missing_dependency_descriptions": []
},
{
"task_id": "WARDEN-WP-0041-T03",
"uuid": "33587361-2b8a-5540-9c4f-d7b4f8ef25e0",
"source_path": "/home/worsch/ops-warden/workplans/WARDEN-WP-0041-catalog-lane-scaffolding.md",
"file_depends_on": [
"WARDEN-WP-0041-T02",
"RPF-WP-0050-T04"
],
"hub_wait_kind": "external",
"parity": true,
"drift": {},
"runtime_claim": "No runtime/deployment acceptance inferred from projection parity.",
"dependency_parity": true,
"missing_dependency_descriptions": []
},
{
"task_id": "EMERGENT-WP-0002-T02",
"uuid": "f6b17f12-d5b0-586c-bb2a-499c566d311e",
"source_path": "/home/worsch/emergent-security/workplans/EMERGENT-WP-0002-agent-security-knowledge-and-netkingdom-integration.md",
"file_depends_on": [],
"hub_wait_kind": "human",
"parity": true,
"drift": {},
"runtime_claim": "No runtime/deployment acceptance inferred from projection parity.",
"dependency_parity": true,
"missing_dependency_descriptions": []
},
{
"task_id": "EMERGENT-WP-0002-T05",
"uuid": "012355d7-86c4-59dc-9a5c-85f4ced5a898",
"source_path": "/home/worsch/emergent-security/workplans/EMERGENT-WP-0002-agent-security-knowledge-and-netkingdom-integration.md",
"file_depends_on": [
"GLAS-WP-0012",
"CUST-WP-0073-T02"
],
"hub_wait_kind": "external",
"parity": true,
"drift": {},
"runtime_claim": "No runtime/deployment acceptance inferred from projection parity.",
"dependency_parity": true,
"missing_dependency_descriptions": []
},
{
"task_id": "EMERGENT-WP-0002-T07",
"uuid": "9cc74076-4143-58d6-8791-fca0f34f430d",
"source_path": "/home/worsch/emergent-security/workplans/EMERGENT-WP-0002-agent-security-knowledge-and-netkingdom-integration.md",
"file_depends_on": [
"EMERGENT-WP-0002-T05"
],
"hub_wait_kind": "external",
"parity": true,
"drift": {},
"runtime_claim": "No runtime/deployment acceptance inferred from projection parity.",
"dependency_parity": true,
"missing_dependency_descriptions": []
},
{
"task_id": "EMERGENT-WP-0002-T08",
"uuid": "6081755b-890c-51c7-a1ca-d4e062b7db5e",
"source_path": "/home/worsch/emergent-security/workplans/EMERGENT-WP-0002-agent-security-knowledge-and-netkingdom-integration.md",
"file_depends_on": [
"EMERGENT-WP-0002-T07"
],
"hub_wait_kind": "external",
"parity": true,
"drift": {},
"runtime_claim": "No runtime/deployment acceptance inferred from projection parity.",
"dependency_parity": true,
"missing_dependency_descriptions": []
},
{
"task_id": "EMERGENT-WP-0002-T09",
"uuid": "a92a8a62-ed4c-5720-9fa6-579ad811adcf",
"source_path": "/home/worsch/emergent-security/workplans/EMERGENT-WP-0002-agent-security-knowledge-and-netkingdom-integration.md",
"file_depends_on": [
"EMERGENT-WP-0002-T02",
"EMERGENT-WP-0002-T08"
],
"hub_wait_kind": "external",
"parity": true,
"drift": {},
"runtime_claim": "No runtime/deployment acceptance inferred from projection parity.",
"dependency_parity": true,
"missing_dependency_descriptions": []
},
{
"task_id": "EMERGENT-WP-0002-T10",
"uuid": "9d43f76c-6a16-508d-8b4a-2a9c1b813c1e",
"source_path": "/home/worsch/emergent-security/workplans/EMERGENT-WP-0002-agent-security-knowledge-and-netkingdom-integration.md",
"file_depends_on": [
"EMERGENT-WP-0002-T09"
],
"hub_wait_kind": "external",
"parity": true,
"drift": {},
"runtime_claim": "No runtime/deployment acceptance inferred from projection parity.",
"dependency_parity": true,
"missing_dependency_descriptions": []
},
{
"task_id": "QONTO-WP-0006-T02",
"uuid": "77af5db4-8919-5da7-ab91-924a5f8ad63f",
"source_path": "/home/worsch/qonto-assistant/workplans/QONTO-WP-0006-canonical-cadence-adoption.md",
"file_depends_on": [],
"hub_wait_kind": "external",
"parity": true,
"drift": {},
"runtime_claim": "No runtime/deployment acceptance inferred from projection parity.",
"dependency_parity": true,
"missing_dependency_descriptions": []
},
{
"task_id": "QONTO-WP-0006-T03",
"uuid": "9eb725b2-a9bc-594a-b43b-e24c37dfc6a1",
"source_path": "/home/worsch/qonto-assistant/workplans/QONTO-WP-0006-canonical-cadence-adoption.md",
"file_depends_on": [
"QONTO-WP-0006-T02",
"KG-WP-0005-T03"
],
"hub_wait_kind": "external",
"parity": true,
"drift": {},
"runtime_claim": "No runtime/deployment acceptance inferred from projection parity.",
"dependency_parity": true,
"missing_dependency_descriptions": []
},
{
"task_id": "NK-WP-0011-T02",
"uuid": "2fe6f100-3a5d-563e-b033-7d7b846ae487",
"source_path": "/home/worsch/net-kingdom/workplans/NK-WP-0011-enterprise-federation-saml.md",
"file_depends_on": [],
"hub_wait_kind": "human",
"parity": true,
"drift": {},
"runtime_claim": "No runtime/deployment acceptance inferred from projection parity.",
"dependency_parity": true,
"missing_dependency_descriptions": []
},
{
"task_id": "NK-WP-0011-T03",
"uuid": "32d1411b-10a4-5a8b-8f43-99ac46d83908",
"source_path": "/home/worsch/net-kingdom/workplans/NK-WP-0011-enterprise-federation-saml.md",
"file_depends_on": [
"NK-WP-0011-T02"
],
"hub_wait_kind": "external",
"parity": true,
"drift": {},
"runtime_claim": "No runtime/deployment acceptance inferred from projection parity.",
"dependency_parity": true,
"missing_dependency_descriptions": []
},
{
"task_id": "NK-WP-0011-T04",
"uuid": "6697a994-7343-5ea8-8b37-bc3b921e5a9b",
"source_path": "/home/worsch/net-kingdom/workplans/NK-WP-0011-enterprise-federation-saml.md",
"file_depends_on": [
"NK-WP-0011-T03"
],
"hub_wait_kind": "external",
"parity": true,
"drift": {},
"runtime_claim": "No runtime/deployment acceptance inferred from projection parity.",
"dependency_parity": true,
"missing_dependency_descriptions": []
},
{
"task_id": "NK-WP-0011-T05",
"uuid": "d845380d-3dbc-5e59-8f2b-5a4d1b32d89d",
"source_path": "/home/worsch/net-kingdom/workplans/NK-WP-0011-enterprise-federation-saml.md",
"file_depends_on": [
"NK-WP-0011-T04"
],
"hub_wait_kind": "external",
"parity": true,
"drift": {},
"runtime_claim": "No runtime/deployment acceptance inferred from projection parity.",
"dependency_parity": true,
"missing_dependency_descriptions": []
},
{
"task_id": "NK-WP-0011-T06",
"uuid": "9cb7fd93-c16e-5102-83ce-195b3aa87446",
"source_path": "/home/worsch/net-kingdom/workplans/NK-WP-0011-enterprise-federation-saml.md",
"file_depends_on": [
"NK-WP-0011-T03",
"NK-WP-0011-T04",
"NK-WP-0011-T05"
],
"hub_wait_kind": "external",
"parity": true,
"drift": {},
"runtime_claim": "No runtime/deployment acceptance inferred from projection parity.",
"dependency_parity": true,
"missing_dependency_descriptions": []
},
{
"task_id": "NK-WP-0011-T07",
"uuid": "38998c68-29bf-50d2-8c8d-0c75184d5833",
"source_path": "/home/worsch/net-kingdom/workplans/NK-WP-0011-enterprise-federation-saml.md",
"file_depends_on": [
"NK-WP-0011-T03",
"NK-WP-0011-T04",
"NK-WP-0011-T05"
],
"hub_wait_kind": "external",
"parity": true,
"drift": {},
"runtime_claim": "No runtime/deployment acceptance inferred from projection parity.",
"dependency_parity": true,
"missing_dependency_descriptions": []
},
{
"task_id": "NK-WP-0011-T08",
"uuid": "e5f44ddc-9645-5f61-b84c-da5ab9cccb6d",
"source_path": "/home/worsch/net-kingdom/workplans/NK-WP-0011-enterprise-federation-saml.md",
"file_depends_on": [
"NK-WP-0011-T02",
"NK-WP-0011-T03"
],
"hub_wait_kind": "external",
"parity": true,
"drift": {},
"runtime_claim": "No runtime/deployment acceptance inferred from projection parity.",
"dependency_parity": true,
"missing_dependency_descriptions": []
},
{
"task_id": "NK-WP-0011-T09",
"uuid": "d9dc4292-6b66-5797-9ff9-a1a4a556278e",
"source_path": "/home/worsch/net-kingdom/workplans/NK-WP-0011-enterprise-federation-saml.md",
"file_depends_on": [
"NK-WP-0011-T03",
"NK-WP-0011-T07",
"NK-WP-0011-T08"
],
"hub_wait_kind": "external",
"parity": true,
"drift": {},
"runtime_claim": "No runtime/deployment acceptance inferred from projection parity.",
"dependency_parity": true,
"missing_dependency_descriptions": []
},
{
"task_id": "NK-WP-0027-T06",
"uuid": "bf8b3e1d-7ee0-5ad0-8705-5a580a9fb546",
"source_path": "/home/worsch/net-kingdom/workplans/NK-WP-0027-reef-placement-reconciliation.md",
"file_depends_on": [],
"dependency_parity": true,
"missing_dependency_descriptions": [],
"hub_wait_kind": "external",
"parity": true,
"drift": {},
"runtime_claim": "No runtime acceptance inferred."
},
{
"task_id": "NK-WP-0035-T04",
"uuid": "e3fbc8b8-00d5-57ce-ba0c-19b58044c950",
"source_path": "/home/worsch/net-kingdom/workplans/NK-WP-0035-emission-cadence-security-profile.md",
"file_depends_on": [],
"dependency_parity": true,
"missing_dependency_descriptions": [],
"hub_wait_kind": "external",
"parity": true,
"drift": {},
"runtime_claim": "No runtime acceptance inferred."
}
],
"scope": "Read-only exact task UUID qualifier parity and per-task dependency description/from_task_id verification; no runtime or approval acceptance."
}

View file

@ -0,0 +1,42 @@
{
"79549660-4fc8-44d5-989e-074f6c7b6f07": {
"reply_message_id": "cda45346-67d1-4c1c-a0b1-4a13b5032551",
"disposition": "accepted",
"reason": "ops-warden owns the proposed catalog/template seam under WARDEN-WP-0041. T02 retains source implementation; T03 retains platform schema/renderer acceptance. The handoff is accepted; the scaffold is not yet delivered.",
"owner_workplan_id": "WARDEN-WP-0041",
"owner_task_ids": [
"WARDEN-WP-0041-T01",
"WARDEN-WP-0041-T02",
"WARDEN-WP-0041-T03",
"WARDEN-WP-0041-T04"
],
"source_commit": "ac112d8"
},
"b4825539-1425-4028-a2e9-9243785a344b": {
"reply_message_id": "c17795db-b3f2-47e8-8be8-04d5d6dfecbf",
"disposition": "partially_accepted",
"reason": "P1 and P5 detection delivered. Wakeup execution, causal qualifier diagnosis and graph freshness assessment remain T03/T04/T05; legacy nightly remote sweep declined.",
"owner_workplan_id": "STATE-WP-0094",
"owner_task_ids": [
"STATE-WP-0094-T01",
"STATE-WP-0094-T02",
"STATE-WP-0094-T03",
"STATE-WP-0094-T04",
"STATE-WP-0094-T05"
],
"source_commit": "831ae0e"
},
"f84637fa-2355-4971-a2dc-7f1fd01710a8": {
"reply_message_id": "981a20fc-315b-4fd8-9783-9c3460a4840d",
"disposition": "partially_accepted",
"reason": "Checklist renderer delivered; explicit custody choice T02, operator cadence T03 and platform scaffold T04 remain. No standing event or live provisioning activated.",
"owner_workplan_id": "RPF-WP-0050",
"owner_task_ids": [
"RPF-WP-0050-T01",
"RPF-WP-0050-T02",
"RPF-WP-0050-T03",
"RPF-WP-0050-T04"
],
"source_commit": "46eb8be"
}
}

View file

@ -0,0 +1,62 @@
[
{
"repo": "state-hub",
"commit": "831ae0e598ca6e5e21f7721da5e7f0ed9f81f640",
"paths": [
"scripts/consistency_check.py",
"tests/test_consistency_check.py",
"workplans/STATE-WP-0094-routed-gates-and-owner-returns.md"
]
},
{
"repo": "emergent-security",
"commit": "f542a91deb003feb7fad3ecc17504c514a7c5479",
"paths": [
"workplans/EMERGENT-WP-0002-agent-security-knowledge-and-netkingdom-integration.md"
]
},
{
"repo": "qonto-assistant",
"commit": "cc5eab2e44a1340ad3cfdeefc4f5808431a24358",
"paths": [
"workplans/QONTO-WP-0006-canonical-cadence-adoption.md"
]
},
{
"repo": "informed-decision",
"commit": "01c46ff454507fb53170dfbb028ecf073b3ab798",
"paths": [
"workplans/INFD-WP-0005-frictionless-decision-intake.md"
]
},
{
"repo": "frontend-patterns",
"commit": "9502563ecef12bf4903fbe307743aef0c5614a76",
"paths": [
"workplans/FEP-WP-0009-m1-independent-validation.md"
]
},
{
"repo": "access-engine",
"commit": "74ec4abfafe1602140abdb95a7f68487fff0a86b",
"paths": [
"workplans/FLEX-WP-0020-repository-identity-migration.md",
"workplans/FLEX-WP-0027-t03-human-review.md",
"workplans/ADHOC-2026-10-03.md"
]
},
{
"repo": "activity-core",
"commit": "8330501140aa12650f582f5832a643a472e37a8a",
"paths": [
"workplans/ACTIVITY-WP-0042-platform-backup-restore-evidence-scheduling.md"
]
},
{
"repo": "user-engine",
"commit": "ad501d032c6acd2256e5ced6647a9350387e678d",
"paths": [
"workplans/USER-WP-0037-hub-authority-lookup.md"
]
}
]

View file

@ -0,0 +1,181 @@
{
"workplan_id": "CUST-WP-0075",
"authorization": "Founder: Go on, spawning workers for repos we need to do something for us",
"dispatch_mode": "Explicit repository-scoped subagents; three concurrent workers",
"assignments": [
{
"repo": "state-hub",
"worker": "/root/state_hub_owner",
"state": "completed",
"scope": "P1/P5/P6/P6a owner disposition, checker fixes and tests",
"verification": "Selected current qualifiers and existing dependency edges verified at task UUIDs; wait status and independent gates retained",
"commit": "831ae0e598ca6e5e21f7721da5e7f0ed9f81f640",
"owner_workplan_id": "STATE-WP-0094",
"owner_task_ids": [
"STATE-WP-0094-T01",
"STATE-WP-0094-T02",
"STATE-WP-0094-T03",
"STATE-WP-0094-T04",
"STATE-WP-0094-T05"
],
"reply_message_id": "c17795db-b3f2-47e8-8be8-04d5d6dfecbf",
"checks": "182 checker/CLI tests pass; P1/P5 detection delivered, T03/T04/T05 todo"
},
{
"repo": "railiance-platform",
"worker": "/root/platform_owner",
"state": "completed",
"scope": "P2/P3 owner disposition and local checklist renderer; RPF-WP-0035-T08 decision routing; P4 platform seam",
"verification": "Selected current qualifiers and existing dependency edges verified at task UUIDs; wait status and independent gates retained",
"commit": "46eb8be",
"owner_workplan_id": "RPF-WP-0050",
"owner_task_ids": [
"RPF-WP-0050-T01",
"RPF-WP-0050-T02",
"RPF-WP-0050-T03",
"RPF-WP-0050-T04"
],
"reply_message_id": "981a20fc-315b-4fd8-9783-9c3460a4840d",
"checks": "7 renderer tests pass; existing suite 52/53 with unrelated catalog exact-set failure",
"limitation": "Custody T02, cadence T03 and source scaffold T04 remain; CUST-WP-0076-T01 owns Custodian cadence return",
"assessment": "3 historic C07 assessment failures retained; selected fields verify"
},
{
"repo": "ops-warden",
"worker": "/root/warden_owner",
"state": "completed",
"scope": "P4 catalog/template owner contract and live owner implementation records",
"commit": "ac112d8",
"owner_workplan_id": "WARDEN-WP-0041",
"owner_task_ids": [
"WARDEN-WP-0041-T01",
"WARDEN-WP-0041-T02",
"WARDEN-WP-0041-T03",
"WARDEN-WP-0041-T04"
],
"reply_message_id": "cda45346-67d1-4c1c-a0b1-4a13b5032551",
"checks": "118 routing/plan tests pass; consistency PASS with warnings",
"limitation": "Scaffold source implementation remains T02; platform seam T03. Checker produced additional commit 52b1435 and dirty generated records, preserved.",
"verification": "Selected current qualifiers and existing dependency edges verified at task UUIDs; wait status and independent gates retained"
},
{
"repo": "net-kingdom",
"state": "completed",
"scope": "NK-WP-0011-T02..T09 unqualified waits; NK-WP-0027-T06 and NK-WP-0035-T04 qualifier drift",
"worker": "/root/warden_owner",
"verification": "Selected current qualifiers and existing dependency edges verified at task UUIDs; wait status and independent gates retained",
"commit": "45a189a"
},
{
"repo": "emergent-security",
"state": "completed",
"scope": "EMERGENT-WP-0002 T02/T05/T07/T08/T09/T10 unqualified waits",
"verification": "Selected current qualifiers and existing dependency edges verified at task UUIDs; wait status and independent gates retained",
"commit": "f542a91deb003feb7fad3ecc17504c514a7c5479"
},
{
"repo": "qonto-assistant",
"state": "completed",
"scope": "QONTO-WP-0006-T02/T03 unqualified waits",
"verification": "Selected current qualifiers and existing dependency edges verified at task UUIDs; wait status and independent gates retained",
"commit": "cc5eab2e44a1340ad3cfdeefc4f5808431a24358"
},
{
"repo": "informed-decision",
"state": "completed",
"scope": "INFD-WP-0005-T05/T10 decision routing; T05 terminal predecessor review",
"verification": "Selected current qualifiers and existing dependency edges verified at task UUIDs; wait status and independent gates retained",
"commit": "01c46ff454507fb53170dfbb028ecf073b3ab798"
},
{
"repo": "frontend-patterns",
"state": "completed",
"scope": "FEP-WP-0009-T01 independent human review decision routing",
"verification": "Selected current qualifiers and existing dependency edges verified at task UUIDs; wait status and independent gates retained",
"commit": "9502563ecef12bf4903fbe307743aef0c5614a76"
},
{
"repo": "activity-core",
"state": "current_gate_reconciled_historical_sync_blocked",
"scope": "ACTIVITY-WP-0042-T05/T08 terminal predecessor review; T08 qualifier drift",
"verification": "Selected current qualifiers and existing dependency edges verified at task UUIDs; wait status and independent gates retained",
"commit": "8330501140aa12650f582f5832a643a472e37a8a",
"limitation": "Current UUID qualifier reconciliation only. Normal rmgr sync refused legacy identities; receiving derivation would omit legacy tasks. Historical receiving repair retained via ACTIVITY-WP-0042-T08 and owner request 6bf8ca98-ada1-43ab-83e7-207d4ab195fe; no bypass patch applied."
},
{
"repo": "user-engine",
"state": "completed",
"scope": "USER-WP-0037-T03 terminal predecessor and owner-return review",
"verification": "Selected current qualifiers and existing dependency edges verified at task UUIDs; wait status and independent gates retained",
"commit": "ad501d032c6acd2256e5ced6647a9350387e678d"
},
{
"repo": "adaptive-pricing",
"state": "completed",
"scope": "ADAPTIVE-WP-0010-T01 qualifier projection reconciliation",
"verification": "Selected current qualifiers and existing dependency edges verified at task UUIDs; wait status and independent gates retained",
"source_change": "None: authoritative qualifier already encoded; projection repair only"
},
{
"repo": "freedom-intelligence",
"state": "completed",
"scope": "FI-WP-0005-T04/T08 qualifier projection reconciliation",
"verification": "Selected current qualifiers and existing dependency edges verified at task UUIDs; wait status and independent gates retained",
"source_change": "None: authoritative qualifier already encoded; projection repair only",
"reconciliation": "C16 skipped initial writes; safe fast-forward to 70714ee then C41 repaired both UUID fields"
},
{
"repo": "info-tech-canon",
"state": "completed",
"scope": "INFO-WP-0029-T05 qualifier projection reconciliation",
"verification": "Selected current qualifiers and existing dependency edges verified at task UUIDs; wait status and independent gates retained",
"source_change": "None: authoritative qualifier already encoded; projection repair only"
},
{
"repo": "kings-guard",
"state": "completed",
"scope": "KG-WP-0005-T03 qualifier projection reconciliation",
"verification": "Selected current qualifiers and existing dependency edges verified at task UUIDs; wait status and independent gates retained",
"source_change": "None: authoritative qualifier already encoded; projection repair only"
},
{
"repo": "rapp-qonto",
"state": "completed",
"scope": "RAPP-QONTO-WP-0002-T01 wait_until projection reconciliation",
"verification": "Selected current qualifiers and existing dependency edges verified at task UUIDs; wait status and independent gates retained",
"source_change": "None: authoritative qualifier already encoded; projection repair only"
},
{
"repo": "rapp-telemetry",
"state": "completed",
"scope": "RAPP-TELEMETRY-WP-0001-T04 qualifier projection reconciliation",
"verification": "Selected current qualifiers and existing dependency edges verified at task UUIDs; wait status and independent gates retained",
"source_change": "None: authoritative qualifier already encoded; projection repair only"
},
{
"repo": "rein-aharness",
"state": "completed",
"scope": "REINAH-WP-0003-T04 qualifier projection reconciliation",
"verification": "Selected current qualifiers and existing dependency edges verified at task UUIDs; wait status and independent gates retained",
"source_change": "None: authoritative qualifier already encoded; projection repair only"
},
{
"repo": "sand-boxer",
"state": "completed",
"scope": "SAND-WP-0015-T04 qualifier projection reconciliation",
"verification": "Selected current qualifiers and existing dependency edges verified at task UUIDs; wait status and independent gates retained",
"source_change": "None: authoritative qualifier already encoded; projection repair only"
},
{
"repo": "access-engine",
"state": "completed",
"scope": "Recovered local checkout: FLEX-WP-0020-T11, FLEX-WP-0027-T03 and FLEX-WP-ADHOC-2026-10-03-T02 human decision routing; terminal predecessor review; use explicit repo-path override",
"verification": "Selected current qualifiers and existing dependency edges verified at task UUIDs; wait status and independent gates retained",
"commit": "74ec4abfafe1602140abdb95a7f68487fff0a86b"
}
],
"updated": "2026-10-04",
"residual_handoff": "CUST-WP-0076-T01",
"cadence_handoff_message": "d8c00f8d-7563-4d8c-8752-4dbae8ce63f8",
"qualifier_followup_message": "d8e40e88-0f6d-46f4-86d2-393f24fce8b9"
}

View file

@ -22,6 +22,7 @@ HANDOFFS = {
"railiance-platform": "f84637fa-2355-4971-a2dc-7f1fd01710a8",
"ops-warden": "79549660-4fc8-44d5-989e-074f6c7b6f07",
}
RECEIPTS = ROOT / "docs/evidence/2026-10-03-dependency-graph-triage/owner-handoff-receipts.json"
def get_rows(base, route, **filters):
@ -96,13 +97,64 @@ def audit(records, hub_tasks):
}
def handoff_case(owner, original, incoming, records, receipt=None):
message_id = original["id"]
candidates = [m for m in incoming if m["from_agent"] == owner
and m["created_at"] > original["created_at"]]
case = {
"case_id": f"case:cross-owner:CUST-WP-0075-T06:{owner}",
"scenario_type": "cross_owner_wait",
"beneficiary_workplan_id": "CUST-WP-0075", "obligor_repo": owner,
"obligor_workplan_id": None, "state": "waiting",
"reason": "Owner acceptance or decline not yet recorded",
"proposal_message_id": message_id, "proposal_read_at": original.get("read_at"),
"reply_candidates": [{"id": m["id"], "subject": m["subject"], "thread_id": m.get("thread_id")}
for m in candidates],
}
if receipt is None:
return case
reply = next((m for m in candidates if m["id"] == receipt["reply_message_id"]), None)
if reply is None or reply.get("thread_id") != message_id or reply.get("to_agent") != "the-custodian":
raise ValueError(f"{owner}: reviewed reply is missing or does not answer this proposal")
if receipt["disposition"] not in {"accepted", "declined", "partially_accepted"} or not receipt.get("reason"):
raise ValueError(f"{owner}: disposition and reason required")
plan_id = receipt.get("owner_workplan_id")
if receipt["disposition"] != "declined":
plan = records["WP"].get(plan_id)
if not plan or plan["repo"] != owner or plan["flavor"] == "residual":
raise ValueError(f"{owner}: accepted handoff needs a non-residual owner workplan")
if not receipt.get("owner_task_ids") or any(
records["T"].get(tid, {}).get("wp") != plan_id for tid in receipt["owner_task_ids"]):
raise ValueError(f"{owner}: accepted handoff needs owner task records")
case.update(state="satisfied", reason=receipt["reason"], disposition=receipt["disposition"],
obligor_workplan_id=plan_id, owner_task_ids=receipt.get("owner_task_ids", []),
reply_message_id=reply["id"],
scope="Proposal handoff only; owner implementation and human gates retain their own status")
return case
def main():
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument("--api-base", default="http://127.0.0.1:8000")
parser.add_argument("--output", type=Path, required=True)
parser.add_argument("--handoff-receipts", type=Path, default=RECEIPTS,
help="Reviewed owner dispositions; absence leaves handoffs waiting")
parser.add_argument("--repo-path", action="append", default=[], metavar="SLUG=PATH",
help="Explicit local checkout override; preserves registry evidence")
args = parser.parse_args()
args.output.mkdir(parents=True, exist_ok=True)
repos = get_rows(args.api_base, "repos")
(args.output / "registry.json").write_text(json.dumps(repos))
overrides = {}
for value in args.repo_path:
slug, separator, path = value.partition("=")
if not separator or not Path(path).is_absolute() or not Path(path).is_dir():
parser.error("--repo-path requires SLUG=existing-absolute-directory")
repo = next((r for r in repos if r["slug"] == slug), None)
if repo is None:
parser.error(f"--repo-path names unregistered repo: {slug}")
repo["local_path"] = path
overrides[slug] = path
(args.output / "repos.json").write_text(json.dumps(repos))
result = subprocess.run([sys.executable, str(SCANNER)], capture_output=True, text=True,
env=dict(os.environ, TRIAGE_SCRATCH=str(args.output.resolve())), check=True)
@ -112,26 +164,16 @@ def main():
report["parse_warnings"] = records.get("parse_warnings", [])
report["captured_at"] = datetime.now(timezone.utc).isoformat()
report["registered_repos"] = len(repos)
report["checkout_overrides"] = overrides
report["unavailable_checkouts"] = sorted(r["slug"] for r in repos
if not r.get("local_path") or not Path(r["local_path"]).is_dir())
report["handoffs"] = []
receipts = json.loads(args.handoff_receipts.read_text()) if args.handoff_receipts.exists() else {}
for owner, message_id in HANDOFFS.items():
incoming = get_rows(args.api_base, "messages", to_agent="the-custodian", from_agent=owner)
outgoing = get_rows(args.api_base, "messages", to_agent=owner, from_agent="the-custodian")
original = next(m for m in outgoing if m["id"] == message_id)
candidates = [m for m in incoming if m["from_agent"] == owner
and m["created_at"] > original["created_at"]]
report["handoffs"].append({
"case_id": f"case:cross-owner:CUST-WP-0075-T06:{owner}",
"scenario_type": "cross_owner_wait",
"beneficiary_workplan_id": "CUST-WP-0075",
"obligor_repo": owner,
"obligor_workplan_id": None,
"state": "waiting", "reason": "Owner acceptance or decline not yet recorded",
"proposal_message_id": message_id, "proposal_read_at": original.get("read_at"),
"reply_candidates": [{"id": m["id"], "subject": m["subject"], "thread_id": m.get("thread_id")}
for m in candidates],
})
report["handoffs"].append(handoff_case(owner, original, incoming, records, receipts.get(message_id)))
(args.output / "monitor.json").write_text(json.dumps(report, indent=2) + "\n")
print(json.dumps(report, indent=2))

View file

@ -93,6 +93,39 @@ wait_until: 2026-10-04
self.assertEqual(fetch.call_count, 1)
self.assertNotIn("offset", fetch.call_args.args[0])
def handoff_data(self):
original = {"id": "proposal", "created_at": "2026-10-03T01:00:00Z"}
reply = {"id": "reply", "created_at": "2026-10-03T02:00:00Z", "from_agent": "owner",
"to_agent": "the-custodian", "thread_id": "proposal", "subject": "Accepted"}
records = {"WP": {"owner-plan": {"repo": "owner", "flavor": "implementation"}},
"T": {"owner-task": {"wp": "owner-plan", "status": "todo"}}}
receipt = {"reply_message_id": "reply", "disposition": "accepted", "reason": "Owned locally",
"owner_workplan_id": "owner-plan", "owner_task_ids": ["owner-task"]}
return original, reply, records, receipt
def test_unreviewed_reply_does_not_satisfy_handoff(self):
original, reply, records, _ = self.handoff_data()
self.assertEqual(monitor.handoff_case("owner", original, [reply], records)["state"], "waiting")
def test_reviewed_owner_handoff_preserves_implementation_status(self):
original, reply, records, receipt = self.handoff_data()
case = monitor.handoff_case("owner", original, [reply], records, receipt)
self.assertEqual(case["state"], "satisfied")
self.assertEqual(case["obligor_workplan_id"], "owner-plan")
self.assertEqual(records["T"]["owner-task"]["status"], "todo")
def test_unrelated_thread_cannot_satisfy_handoff(self):
original, reply, records, receipt = self.handoff_data()
reply["thread_id"] = "different-proposal"
with self.assertRaises(ValueError):
monitor.handoff_case("owner", original, [reply], records, receipt)
def test_residual_owner_plan_cannot_accept_handoff(self):
original, reply, records, receipt = self.handoff_data()
records["WP"]["owner-plan"]["flavor"] = "residual"
with self.assertRaises(ValueError):
monitor.handoff_case("owner", original, [reply], records, receipt)
if __name__ == "__main__":
unittest.main()

View file

@ -4,12 +4,12 @@ type: workplan
title: "Use the dependency graph to shrink the blocked set and route human gates to decisions"
domain: infotech
repo: the-custodian
status: active
status: finished
owner: the-custodian
topic_slug: custodian
flavor: planning
created: "2026-10-03"
updated: "2026-10-03"
updated: "2026-10-04"
related:
- CUST-WP-0072
- CUST-WP-0074
@ -117,7 +117,7 @@ as the unit of provisioning). Proposals only; no canon change here.
```task
id: CUST-WP-0075-T05
status: progress
status: done
priority: medium
state_hub_task_id: "c78b104d-cdf0-5aca-81a4-b5569cc90479"
```
@ -140,10 +140,8 @@ the earlier T02/T03 results are point-in-time, not a current clean scan.
```task
id: CUST-WP-0075-T06
status: wait
status: done
priority: high
blocked_on: message-from:state-hub
blocking_reason: "Proposals sent 2026-10-03; waiting for state-hub (b4825539), railiance-platform (f84637fa) and ops-warden (79549660) to reply with their workplan ids or a decline."
state_hub_task_id: "91fd64c1-2dfd-57d1-8930-51477c530202"
```
@ -165,6 +163,18 @@ 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-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.
## Progress log
- 2026-10-03 start: 108 open / 100 blocked / 232 wait / 69 human gates /
@ -219,3 +229,40 @@ these proposals. No worker was woken. T06 remains `wait`.
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 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.

View file

@ -0,0 +1,39 @@
---
id: CUST-WP-0076
type: workplan
title: "Select the attended provisioning window scope and cadence"
domain: infotech
repo: the-custodian
status: proposed
owner: the-custodian
topic_slug: custodian
created: "2026-10-04"
updated: "2026-10-04"
flavor: residual
origin: residual
origin_ref: CUST-WP-0075
depends_on: []
state_hub_workstream_id: "18883eed-7f50-5ba7-a735-a76313e158b1"
---
# Select the attended provisioning window scope and cadence
## Return an explicit operator choice to platform
```task
id: CUST-WP-0076-T01
status: wait
priority: low
needs_human: true
decision_id: "62aa95e4-3ccc-4867-8806-5e3db005b483"
blocking_reason: "Operator must select the concrete attended provisioning scope, date and any recurrence; the checklist renderer does not authorize a session."
state_hub_task_id: "04cdf9ad-ac92-5f7a-87bb-8c9d34e933df"
```
Residual handoff from CUST-WP-0075 P2. RPF-WP-0050-T01 delivers the local
checklist renderer; RPF-WP-0050-T03 waits for this return. On explicit demand
promotion, obtain the operator's bounded scope/date/cadence and send it on
proposal thread `f84637fa-2355-4971-a2dc-7f1fd01710a8`. A broad D1 resolution
without that concrete choice does not satisfy this task. Scheduling and live
provisioning need their own authorized reviewed preparation. This residual
is not a request to activate a recurring automation.