From fec6b5fdff0c60291a74f64adf1ed32461ea4341 Mon Sep 17 00:00:00 2001 From: tegwick Date: Tue, 13 Oct 2026 22:19:15 +0200 Subject: [PATCH] STATE-WP-0097: propose unlinked-supersession check; decline hub contest state Co-Authored-By: Claude Opus 5.5 Assistant: claude-code Assistant-Model: opus Assistant-Process: 356991@bnt-lap001 Assistant-Session: 5d99ea69-ed55-4a1e-8d97-f4f312db247f --- .custodian-brief.md | 27 ++++---- ...-WP-0097-unlinked-decision-supersession.md | 62 +++++++++++++++++++ 2 files changed, 76 insertions(+), 13 deletions(-) create mode 100644 workplans/STATE-WP-0097-unlinked-decision-supersession.md diff --git a/.custodian-brief.md b/.custodian-brief.md index a24451c..ea91d3b 100644 --- a/.custodian-brief.md +++ b/.custodian-brief.md @@ -2,11 +2,20 @@ # Custodian Brief — state-hub **Domain:** infotech -**Last synced:** 2026-10-06 11:35 UTC +**Last synced:** 2026-10-13 19:57 UTC **State Hub:** http://127.0.0.1:8000 *(adjust if running on a remote machine)* ## Active Workstreams +### Route human gates and expose actionable owner returns +Progress: 3/5 done | workplan_id: `2c4e96a3-ca0d-5003-b759-880976600ecc` + +**Open tasks:** +- ! Integrate deduplicated owner wakeups with the supported runner `cd73e265` + *(wait: Memo 2 plan-only and submit trials wait for a live owner return; C-25 found zero findings across 13 public repos on 2026-10-04)* +- ! Prepare approved receiving promotion and assess graph freshness (P6) `ec0acd06` + *(wait: Memo 3 apply trials need a read-only Forgejo token for the Activity Core worker (draft CCR-2026-0034 in railiance-platform); then memo 4 schedule and 48 h freshness evidence)* + ### State Hub retirement strangler and disposition execution Progress: 6/9 done | workplan_id: `ed077b62-7048-5752-bf65-f90471f45854` @@ -18,21 +27,13 @@ Progress: 6/9 done | workplan_id: `ed077b62-7048-5752-bf65-f90471f45854` - ! Stabilization window and archive prep `9230c99b` *(wait: Stopping the primary is a founder decision; needs T04 handoffs and T05 retirement first; legacy meter still has live callers.)* -### Route human gates and expose actionable owner returns -Progress: 3/5 done | workplan_id: `2c4e96a3-ca0d-5003-b759-880976600ecc` - -**Open tasks:** -- ! Integrate deduplicated owner wakeups with the supported runner `cd73e265` - *(wait: Memo 2 plan-only and submit trials wait for a live owner return; C-25 found zero findings across 13 public repos on 2026-10-04)* -- ! Prepare approved receiving promotion and assess graph freshness (P6) `ec0acd06` - *(wait: Memo 3 apply trials need a read-only Forgejo token for the Activity Core worker (draft CCR-2026-0034 in railiance-platform); then memo 4 schedule and 48 h freshness evidence)* - ## Inbox Hygiene -**Stale unread:** 7 message(s) older than 3 day(s) — triage at session start. -**Missing thread_id:** 7 unread message(s) lack supersession chains. +**Stale unread:** 11 message(s) older than 3 day(s) — triage at session start. +**Missing thread_id:** 9 unread message(s) lack supersession chains. +- ! repo-manager: RMGR-WP-0019-T03: Activity owner sync pending_commit (dirty ACTIVITY-WP-0045) `59c50c6a` +- ! the-custodian: P6a retained: Forge derivation omits qualifiers; checker verifies current UUID fields `d8e40e88` - ! informed-decision: INFD-WP-0005: hub as memo submitter + decision write-back `e30dea31` -- ! the-custodian: Proposal from CUST-WP-0075: P1 routed human gates, P5 owner-return sweep, P6 nightly graph sync `b4825539` --- ## MCP Orientation (when available) diff --git a/workplans/STATE-WP-0097-unlinked-decision-supersession.md b/workplans/STATE-WP-0097-unlinked-decision-supersession.md new file mode 100644 index 0000000..8ab8f04 --- /dev/null +++ b/workplans/STATE-WP-0097-unlinked-decision-supersession.md @@ -0,0 +1,62 @@ +--- +id: STATE-WP-0097 +type: workplan +title: "Flag resolved decisions that a later decision supersedes without a link" +domain: infotech +repo: state-hub +status: proposed +owner: claude-code +topic_slug: infotech +created: "2026-10-13" +updated: "2026-10-13" +flavor: implementation +related: [STATE-WP-0094] +--- + +Owner response to activity-core suggestion ff7d2152-75dd-4a49-8dac-e0ebe7343039 +(contest path for resolved decisions). + +Disposition: State Hub does not add a first-class `contested` decision state or +a `/decisions/{id}/contest` route. State Hub is in retirement +(`prj-state-hub-retirement`). Decisions are file-first work records whose +writer convention is repo-manager (RMGR-WP-0008). The worked example was +settled the same day by a superseding decision. The defect was that the hub +never linked the two decisions. 1c9817ee (Activity Core owns the publisher) +remained `resolved` with `superseded_by: null` after c6f23433 superseded it. +The link was set by hand on 2026-10-13 with founder approval. + +The existing model already expresses re-assignment (`status: superseded`, +`superseded_by`). This plan makes a missing link visible. It does not add a new +authoring surface. + +## Add a consistency check for unlinked supersession + +```task +id: STATE-WP-0097-T01 +status: todo +priority: medium +``` + +Add C-43 (WARN, not auto-fixable) to `scripts/consistency_check.py`. It fires +when a resolved decision's title or rationale cites another decision id with +"supersedes"/"superseding" while that cited decision is still `resolved`, or +has `superseded_by` unset or pointing elsewhere. Report both ids. The fix stays +a deliberate founder/decider action: PATCH `status: superseded` and +`superseded_by`. Add tests for the linked, unlinked and mismatched cases. +Document C-43 in the checker header table. + +## Document the interim contest convention + +```task +id: STATE-WP-0097-T02 +status: todo +priority: low +``` + +Document the convention in `docs/`. An owner whose checked-in charter +(INTENT.md, SCOPE.md, ADRs) excludes an assigned decision replies on the +relaying thread with `CONTEST ` and charter refs. Only the founder +or the original decider re-resolves. Re-assignment is a new decision that +supersedes the old one, followed by the link that C-43 checks. A first-class +contest state is routed to the-custodian canon and repo-manager as the +long-term owners. It is not built here.