108 lines
3.8 KiB
Markdown
108 lines
3.8 KiB
Markdown
---
|
|
id: CUST-WP-0053
|
|
type: workplan
|
|
title: "Coordination hygiene: unblock sweep, inbox triage, workplan lint"
|
|
domain: infotech
|
|
repo: the-custodian
|
|
status: proposed
|
|
owner: the-custodian
|
|
topic_slug: custodian
|
|
created: "2026-07-01"
|
|
updated: "2026-07-01"
|
|
state_hub_workstream_id: "735a9026-9731-4d56-94a2-1fa485f58889"
|
|
---
|
|
|
|
# Coordination hygiene: unblock sweep, inbox triage, workplan lint
|
|
|
|
## Context
|
|
|
|
A railiance-cluster review (2026-07-01) found systemic coordination gaps
|
|
across the railiance and net-kingdom repo sets. Concrete incident:
|
|
RAILIANCE-WP-0014 sat `blocked` for 13 days after llm-connect posted the
|
|
unblocking message (inbox `7c05dde1`, 2026-06-18) — nobody cross-checked
|
|
blocked workplans against the inbox. Other findings: 8+ unread inbox messages
|
|
dating back weeks with no thread_ids, workplan ID collisions across repos
|
|
(`RAILIANCE-WP-0005` is two different plans in railiance-platform and
|
|
railiance-apps), non-canonical statuses (`completed`, `done`), and stale
|
|
SCOPE "Current State" lines contradicting live workplan status.
|
|
|
|
These fixes belong in state-hub / fix-consistency tooling, so this plan is
|
|
anchored here rather than in any single railiance repo.
|
|
|
|
## Unblock sweep for blocked workplans
|
|
|
|
```task
|
|
id: CUST-WP-0053-T01
|
|
status: todo
|
|
priority: high
|
|
state_hub_task_id: "d570829d-7ccb-4a84-b91c-a90bc062d414"
|
|
```
|
|
|
|
When a workplan goes `blocked`, record the unblock condition and counterpart
|
|
agent in frontmatter (e.g. `blocked_on: message-from:llm-connect`). Add a
|
|
sweep (fix-consistency check or scheduled agent) that cross-references
|
|
`blocked` workplans against unread inbox messages from the counterpart agent
|
|
and raises a warning ("blocker may have cleared") in the repo brief.
|
|
|
|
## Inbox triage discipline
|
|
|
|
```task
|
|
id: CUST-WP-0053-T02
|
|
status: todo
|
|
priority: medium
|
|
state_hub_task_id: "612d23b9-90f4-409b-9da0-b80483e49b28"
|
|
```
|
|
|
|
- Agents set `thread_id` on follow-up messages so supersession is visible.
|
|
- Add an "unread messages older than N days" warning to `get_domain_summary`
|
|
output and `.custodian-brief.md` generation.
|
|
- Inbound asks that require multi-step work get promoted to a workplan file
|
|
in the receiving repo (convention exists; make the sweep flag violations).
|
|
|
|
## Workplan ID prefix lint
|
|
|
|
```task
|
|
id: CUST-WP-0053-T03
|
|
status: todo
|
|
priority: medium
|
|
state_hub_task_id: "8143ef3d-48e5-4c11-8898-8d3ca8c0bbee"
|
|
```
|
|
|
|
fix-consistency check: workplan frontmatter `id` must start with the repo's
|
|
canonical prefix (e.g. `RAIL-BS-WP-` for railiance-cluster). Warn on strays
|
|
(existing `RAILIANCE-WP-*` files keep their ids — the convention forbids id
|
|
renames — but new plans must conform) and detect cross-repo id collisions.
|
|
|
|
## SCOPE Current State freshness
|
|
|
|
```task
|
|
id: CUST-WP-0053-T04
|
|
status: todo
|
|
priority: low
|
|
state_hub_task_id: "039a7ec2-581c-4e84-bcf7-731bb38d1b17"
|
|
```
|
|
|
|
fix-consistency already syncs task status; teach the brief writer to refresh
|
|
(or flag as stale) the SCOPE.md "Current State" section when it contradicts
|
|
live workplan statuses, so agents don't orient on wrong facts.
|
|
|
|
## Complete workplan_id aliases across MCP tools
|
|
|
|
```task
|
|
id: CUST-WP-0053-T05
|
|
status: todo
|
|
priority: low
|
|
state_hub_task_id: "b906b3da-43f0-4f1d-9759-b790b1ff52ff"
|
|
```
|
|
|
|
2026-07-02: `add_progress_event` gained a `workplan_id` param (preferred) with
|
|
`workstream_id` as legacy alias, mirroring `create_task`. Thirteen MCP tools
|
|
still expose only `workstream_id`: list_blocked_tasks,
|
|
list_human_interventions, record_decision, update_workstream_status,
|
|
update_workstream, create_dependency, list_dependencies,
|
|
register_extension_point, register_technical_debt, register_contribution,
|
|
request_capability, patch_capability_request, record_token_event. Add the
|
|
same alias pattern to each; keep legacy params working. Also note the
|
|
transient false C-03 "stale reference" failures under load — add retry logic
|
|
to `_api_get` in consistency_check.py while in there.
|