diff --git a/WORK-RECORDS.md b/WORK-RECORDS.md index f7d714c..8fe5c44 100644 --- a/WORK-RECORDS.md +++ b/WORK-RECORDS.md @@ -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 | diff --git a/docs/decision-packets-2026-10-03.md b/docs/decision-packets-2026-10-03.md index 7547aca..7c29845 100644 --- a/docs/decision-packets-2026-10-03.md +++ b/docs/decision-packets-2026-10-03.md @@ -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. diff --git a/docs/evidence/2026-10-03-dependency-graph-triage/README.md b/docs/evidence/2026-10-03-dependency-graph-triage/README.md index 74ad1c5..5d8fcf1 100644 --- a/docs/evidence/2026-10-03-dependency-graph-triage/README.md +++ b/docs/evidence/2026-10-03-dependency-graph-triage/README.md @@ -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 `. +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. diff --git a/docs/evidence/2026-10-03-dependency-graph-triage/activity-core-projection-read-proof.json b/docs/evidence/2026-10-03-dependency-graph-triage/activity-core-projection-read-proof.json new file mode 100644 index 0000000..57f3166 --- /dev/null +++ b/docs/evidence/2026-10-03-dependency-graph-triage/activity-core-projection-read-proof.json @@ -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": [] + } + ] +} diff --git a/docs/evidence/2026-10-03-dependency-graph-triage/activity-core-projection-route-recommendation.md b/docs/evidence/2026-10-03-dependency-graph-triage/activity-core-projection-route-recommendation.md new file mode 100644 index 0000000..46112a2 --- /dev/null +++ b/docs/evidence/2026-10-03-dependency-graph-triage/activity-core-projection-route-recommendation.md @@ -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. diff --git a/docs/evidence/2026-10-03-dependency-graph-triage/cust-0075-platform-acceptance.md b/docs/evidence/2026-10-03-dependency-graph-triage/cust-0075-platform-acceptance.md new file mode 100644 index 0000000..7f0a134 --- /dev/null +++ b/docs/evidence/2026-10-03-dependency-graph-triage/cust-0075-platform-acceptance.md @@ -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. diff --git a/docs/evidence/2026-10-03-dependency-graph-triage/file-view-workers-2026-10-04.txt b/docs/evidence/2026-10-03-dependency-graph-triage/file-view-workers-2026-10-04.txt new file mode 100644 index 0000000..eac3d77 --- /dev/null +++ b/docs/evidence/2026-10-03-dependency-graph-triage/file-view-workers-2026-10-04.txt @@ -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 diff --git a/docs/evidence/2026-10-03-dependency-graph-triage/monitor-workers-2026-10-04.json b/docs/evidence/2026-10-03-dependency-graph-triage/monitor-workers-2026-10-04.json new file mode 100644 index 0000000..d06dcdf --- /dev/null +++ b/docs/evidence/2026-10-03-dependency-graph-triage/monitor-workers-2026-10-04.json @@ -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" + } + ] +} diff --git a/docs/evidence/2026-10-03-dependency-graph-triage/owner-field-verification-2026-10-04.json b/docs/evidence/2026-10-03-dependency-graph-triage/owner-field-verification-2026-10-04.json new file mode 100644 index 0000000..dd8a9ab --- /dev/null +++ b/docs/evidence/2026-10-03-dependency-graph-triage/owner-field-verification-2026-10-04.json @@ -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." +} diff --git a/docs/evidence/2026-10-03-dependency-graph-triage/owner-handoff-receipts.json b/docs/evidence/2026-10-03-dependency-graph-triage/owner-handoff-receipts.json new file mode 100644 index 0000000..9fb224f --- /dev/null +++ b/docs/evidence/2026-10-03-dependency-graph-triage/owner-handoff-receipts.json @@ -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" + } +} diff --git a/docs/evidence/2026-10-03-dependency-graph-triage/owner-source-commits-2026-10-04.json b/docs/evidence/2026-10-03-dependency-graph-triage/owner-source-commits-2026-10-04.json new file mode 100644 index 0000000..fbb9e41 --- /dev/null +++ b/docs/evidence/2026-10-03-dependency-graph-triage/owner-source-commits-2026-10-04.json @@ -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" + ] + } +] diff --git a/docs/evidence/2026-10-03-dependency-graph-triage/worker-dispatch-2026-10-03.json b/docs/evidence/2026-10-03-dependency-graph-triage/worker-dispatch-2026-10-03.json new file mode 100644 index 0000000..336af0f --- /dev/null +++ b/docs/evidence/2026-10-03-dependency-graph-triage/worker-dispatch-2026-10-03.json @@ -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" +} diff --git a/scripts/monitor_dependency_triage.py b/scripts/monitor_dependency_triage.py index 2112199..656e694 100644 --- a/scripts/monitor_dependency_triage.py +++ b/scripts/monitor_dependency_triage.py @@ -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)) diff --git a/tests/test_dependency_triage.py b/tests/test_dependency_triage.py index b51f725..bbe7c04 100644 --- a/tests/test_dependency_triage.py +++ b/tests/test_dependency_triage.py @@ -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() diff --git a/workplans/CUST-WP-0075-dependency-graph-driven-unblocking.md b/workplans/CUST-WP-0075-dependency-graph-driven-unblocking.md index 79b466a..e33ff49 100644 --- a/workplans/CUST-WP-0075-dependency-graph-driven-unblocking.md +++ b/workplans/CUST-WP-0075-dependency-graph-driven-unblocking.md @@ -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. diff --git a/workplans/CUST-WP-0076-provisioning-window-cadence.md b/workplans/CUST-WP-0076-provisioning-window-cadence.md new file mode 100644 index 0000000..cb01030 --- /dev/null +++ b/workplans/CUST-WP-0076-provisioning-window-cadence.md @@ -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.