the-custodian/workplans/CUST-WP-0060-work-record-canonization.md
codex 90477f3f0d
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s
Pause daily-todo-md-stale-review: sole source of the 5 closed Forgejo issues
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>
2026-07-20 23:52:54 +02:00

7.8 KiB
Raw Blame History

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 12 infotech finished codex custodian high 60 2026-07-20 2026-07-20 4555741c-7c54-4262-859f-7815b34cc647

Work-record canonization — unified ontology, stages 12

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 36 (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 12 delivered end-to-end with green proof runs.

Completed

  • T01 — canon ratified (founder, no edits; hub decision f4640f9e); both standards + machine registry flipped to active.
  • T02 — workplan-terminology-fleet v0.2 addendum (umbrella vocabulary; file keeps _v0.1 name 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-seed work-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)

  1. 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_id etc. are already in the schemas).
  2. Promotion transition as one CLI/MCP call (intake.routed → workplan|task|decision|engagement with promoted_to/origin back-links, both files written, both synced).
  3. Generated per-repo work-record index (transclusion-style; markitect involvement) + regeneration of binky queue view tails as [auto].
  4. 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.
  5. Suggestion-table close-out (read-only legacy) once the intake entity is live.
  6. New report-sink for activity-core (added 2026-07-20, Forgejo-issue housekeeping session): daily-todo-md-stale-review was found still routing through the deployment-wide IssueSink (ISSUE_SINK_TYPE=rest → issue-core → Forgejo) — the only fleet consumer of the task_template rule 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 a kind: intake work record in the target repo (per this workplan's stage-3 promotion design) instead of an IssueSink task spec. Any other ActivityDefinition that later adds a rule.action.task_template inherits the same trap — worth a fleet-wide grep before stage 3 ships.