Traced the origin of the-custodian issues #1-5 (opened 2026-07-08, all reviewed and closed 2026-07-20): this ActivityDefinition's matched rule always produces a TaskSpec (rules/actions.py::_task_spec_for_rule), and RunActivityWorkflow unconditionally routes TaskSpecs through emit_tasks -> the deployment-wide IssueSink (ISSUE_SINK_TYPE=rest -> issue-core -> Forgejo). It is the fleet's only consumer of the task_template rule action -- confirmed via grep across activity-definitions/. Per current policy (Forgejo issue tracking is not the fleet coordination mechanism), paused rather than left to recreate the same sidetrack daily: enabled: false, status: paused, re-enable path documented in the file (needs a new activity-core report-sink authoring a kind: intake work record instead of an IssueSink task spec). Added as item 6 to CUST-WP-0060's stage-3 successor seed, including the reminder to grep the fleet for any other task_template consumer before stage 3 ships. This is the ADR-001 file-level fix; the live activity-core DB row and Temporal schedule pick it up on the next Railiance-deployed 'make sync-activity-definitions' run -- not something I have credentials or standing to trigger directly from this session. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
7.8 KiB
| id | type | title | domain | status | owner | topic_slug | planning_priority | planning_order | created | updated | state_hub_workstream_id |
|---|---|---|---|---|---|---|---|---|---|---|---|
| CUST-WP-0060 | workplan | Work-record canonization — unified ontology, stages 1–2 | infotech | finished | codex | custodian | high | 60 | 2026-07-20 | 2026-07-20 | 4555741c-7c54-4262-859f-7815b34cc647 |
Work-record canonization — unified ontology, stages 1–2
Execute stages 1 (canonize) and 2 (schema + CI) of
research/WorkOrchestrationArchitectureDraft.md v0.2 (founder-reviewed
2026-07-20): ratify the work-record umbrella ontology as canon and make it
machine-enforced, with binky-control as pilot — its AWQ/DEC/OH queue
items become schema-valid, hub-indexed work records without renaming a
single id. Stages 3–6 (hub intake entity, generated views/index, tags &
flow metrics, legacy retirement) follow in successor workplans once this
foundation holds.
Origin: AWQ-010 sidetrack reintegration (2026-07-19); every artefact this plan lands exists to make that class of manual reintegration structurally unnecessary.
Task: Founder ratification of the two canon standards
Present work-record-types_v0.1.md (+ work-record-types.yaml) and
autonomy-lanes_v0.1.md for founder review; apply edits; flip both from
status: draft to status: active. Ratification is a decision work record
(hub decision, red lane — canon change per constitution review gate).
Yellow lane (preparation); resolution founder-only.
id: CUST-WP-0060-T01
status: done
priority: high
state_hub_task_id: "90de8017-436e-4251-ae64-904a6f617623"
Task: Extend workplan-terminology standard, don't fork it
Add the work-record umbrella and kind vocabulary to
workplan-terminology-fleet_v0.1.md as a v0.2 revision (workplan and task
definitions unchanged; new terms cross-referenced to
work-record-types_v0.1.md). Update the terminology scan tooling exclusion
list if needed. Green lane.
id: CUST-WP-0060-T02
status: done
priority: medium
state_hub_task_id: "772a1777-d90f-4d13-9966-50344287db10"
Task: YAML block schemas per kind
Author JSON-Schema definitions for the authored YAML block of each kind
(intake, decision, engagement; task/workplan blocks already parsed by
state-hub — align, don't duplicate). Schemas live in
canon/standards/schemas/work-records/ with the machine registry as the
pattern source. Include the spine-field requirements and grandfathered
legacy patterns (AWQ-/DEC-/OH-). Green lane.
id: CUST-WP-0060-T03
status: done
priority: high
state_hub_task_id: "c394bde6-dc8b-4ce6-97b8-a73b3cab300a"
Task: Forgejo CI validation action
A reusable Forgejo workflow (repo-seed + rollout to control-plane repos)
that validates all work-record YAML blocks in changed files against the
schemas and the id-pattern registry on push/PR — the GitOps
"validate before apply" gate and the first half of the sidetrack detector.
Must be fast (<5 s), zero-config when the repo has no records. Blue lane.
id: CUST-WP-0060-T04
status: done
priority: high
state_hub_task_id: "b5f03759-c285-4b83-9037-fdf0ac669274"
Task: fix-consistency sidetrack detector (C-25)
Extend statehub fix-consistency with a check that scans registered repos
for id-like patterns ([A-Z]+-[A-Z]+-[0-9]+ heuristic) not matching the
type registry and warns with the reintegration-cost message. No
registration yet (that is stage 3) — detection only, so new species surface
the day they appear. Green/Blue lane, lands in state-hub per its
governance.
id: CUST-WP-0060-T05
status: done
priority: medium
state_hub_task_id: "43bcef67-c3e9-48e2-8de0-5cbd2f85c175"
Task: binky-control pilot — queues schema-valid
Bring binky-control's live documents (AutopilotWorkQueue, DecisionQueue,
OfficeHourQueue, RiskRegister) to schema validity: add missing spine fields
(kind, lane, owner where absent) to open items, wire the CI action,
run fix-consistency clean with the new checks. No id renames, no format
migration — grandfathered patterns must pass as-is; that is the
acceptance test for the grandfathering design. Blue lane (binky-control
commits).
id: CUST-WP-0060-T06
status: done
priority: high
state_hub_task_id: "7edac718-b659-4708-9868-b6c44364a928"
Task: Closure — stage-3 handoff package
Closure review per ADR-001; write the stage-3 successor workplan seed (state-hub intake entity, promotion transition CLI/MCP, generated per-repo index) with evidence from the pilot: schema friction observed, CI runtimes, detector findings across the fleet. Green lane.
id: CUST-WP-0060-T07
status: done
priority: medium
state_hub_task_id: "e27e7d69-c51d-48c0-8a82-57a198e0a668"
Closure Review — 2026-07-20
Outcome: All 7 tasks completed same-day; stages 1–2 delivered end-to-end with green proof runs.
Completed
- T01 — canon ratified (founder, no edits; hub decision
f4640f9e); both standards + machine registry flipped toactive. - T02 —
workplan-terminology-fleetv0.2 addendum (umbrella vocabulary; file keeps_v0.1name for reference stability). - T03 — JSON schemas:
canon/standards/schemas/work-records/(spine/intake/decision/engagement; conditional spine requirements, historical grace for terminal records). - T04 —
tools/validate_work_records.py+ reusable Forgejo workflow (repo-seedwork-records.yaml). Substrate lesson: ubuntu-latest = node:20-bookworm, python via apt (first run failed 127, fixed). - T05 — sidetrack detector landed as C-31 (C-25 was taken — the workplan text said C-25; registry numbering, not this plan, is authoritative). Unit-verified: rogue id flagged, grandfathered id passes.
- T06 — binky-control pilot green: 45 records, 0 errors, 0 warnings,
zero id renames; CI run #1751 success. Registry additions during
pilot: legacy task variants
-T1,-LEGACY-Txx. - T07 — this review.
Evidence
- Local runs: the-custodian 384 records / binky-control 45 records clean.
- CI: binky-control Work Records run 1747 (fail, substrate) → 1751 (green).
- fix-consistency on binky-control with C-31: 0 sidetrack warnings.
Stage-3 successor seed (next workplan, state-hub + the-custodian)
- Intake entity in state-hub (fresh table per founder decision;
UUIDv7 keys), fix-consistency registration for intake/decision/
engagement kinds (the write-back fields
state_hub_intake_idetc. are already in the schemas). - Promotion transition as one CLI/MCP call (
intake.routed → workplan|task|decision|engagementwithpromoted_to/originback-links, both files written, both synced). - Generated per-repo work-record index (transclusion-style; markitect
involvement) + regeneration of binky queue view tails as
[auto]. - Friction observations for stage 3: schema authoring cost was near zero for existing binky items (they passed unmodified); the only true churn risk is the view/authored split — keep authored blocks where they are, generate around them.
- Suggestion-table close-out (read-only legacy) once the intake entity is live.
- New report-sink for activity-core (added 2026-07-20, Forgejo-issue
housekeeping session):
daily-todo-md-stale-reviewwas found still routing through the deployment-wideIssueSink(ISSUE_SINK_TYPE=rest→ issue-core → Forgejo) — the only fleet consumer of thetask_templaterule action, and the source of 5 stale-review issues nobody was meant to see (Forgejo issue tracking is not the fleet coordination mechanism). Paused (enabled: false) rather than left running; re-enable requires a new activity-core report-sink type that authors akind: intakework record in the target repo (per this workplan's stage-3 promotion design) instead of anIssueSinktask spec. Any otherActivityDefinitionthat later adds arule.action.task_templateinherits the same trap — worth a fleet-wide grep before stage 3 ships.