CUST-WP-0061 finished: closure review (6/6 tasks done, same-day)
All checks were successful
CI Smoke / host-smoke (push) Successful in 1s
CI Smoke / container-smoke (push) Successful in 21s

Stage 3 delivered end-to-end: intake hub entity (T01), fix-consistency
registration (T02), the promotion transition (T03, the actual point of
this workplan), generated per-repo index (T04), queue closures
retargeted to it (T05), suggestions retired with a real-data migration
(T06). All live-verified against the running API/DB, not just tests --
including catching and fixing a real bug in T03 (silent false-success
on a missing repo_id). 563 tests green throughout.

Carried forward, not blocking: full transclusion rendering (markitect,
T04 follow-on), an engagement hub entity (T02's honest deferral), the
pre-existing sync_schedules bug found 2026-07-20 (TD f29e49eb, out of
scope), and the 10 migrated intake findings needing their actual domain
owners to pick them up.

The reconciliation that started with AWQ-010 is complete.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
codex 2026-07-21 01:57:25 +02:00
parent 020ccb1345
commit 97db2a972f

View file

@ -3,7 +3,7 @@ id: CUST-WP-0061
type: workplan
title: "Work-record stage 3 — intake entity, promotion transition, generated index"
domain: infotech
status: active
status: finished
owner: codex
topic_slug: custodian
planning_priority: high
@ -137,3 +137,79 @@ status: done
priority: low
state_hub_task_id: "af5b6c2e-c7ea-422f-884f-7c23a74c2ae0"
```
## Closure Review — 2026-07-21
**Outcome:** All 6 tasks completed same-day; stage 3 delivered end-to-end
with live proof at every step, not just tests.
### Completed
- T01 — `Intake`/`IntakeNote` hub entity (fresh, per founder decision):
`new_uuid7()`, ORM models with DB-level CHECK constraints, migration,
REST router, Pydantic schemas, 4 MCP tools. 12 tests. Live-verified: full
create→route→close cycle against the running API.
- T02 — **C-32**, fix-consistency registration for intake/decision kinds
anywhere in a repo (engagement correctly deferred, no hub entity yet).
15 tests. Live-verified on real binky-control data: found and registered
3 genuinely open, previously-unlinked AWQ items.
- T03 — **the promotion transition** (`statehub promote-intake`), the
actual point of stage 3: `intake.routed → workplan|task|decision|
engagement` in one call. 17 tests. Live proof caught a real bug (silent
false-success on missing `repo_id`) — fixed, regression-tested,
re-verified clean for workplan and decision promotion, including through
the documented CLI entrypoint itself.
- T04 — **C-33**, generated per-repo `WORK-RECORDS.md` index, file-derived
(no hub query, ADR-001 rebuild principle intact). 13 tests. Live-verified
at two scales: binky-control and the-custodian (52 workplans, 332
tasks) — both correct, both idempotent on re-run.
- T05 — queue closures retargeted to the generated index: closing an item
is now an in-place status transition on its own yaml block, not a
hand-written log entry. Zero new code — `WORK-RECORDS.md` (T04) already
was the generated view; this was a convention update across
AutopilotWorkQueue.md, DecisionQueue.md, OfficeHourQueue.md,
OperatingRhythm.md. Historical logs frozen as prose, not migrated.
- T06 — suggestions retired to read-only legacy: all 5 mutation endpoints
410, GET/list stay live. The 10 records still open at retirement (real
cross-domain signal, not noise) were migrated to file-backed intake
records in `intake-legacy-suggestions-migration.md` rather than
discarded, then declined in the hub with a pointer back. Dead code
removed (unused imports, stage-guard helpers). 7 tests replacing the
old 5 (creation-dependent tests rewritten to seed via direct DB session,
since creation is now blocked). Live-verified: POST 410s, historical
reads intact.
### Evidence
- state-hub full suite: 563 tests green throughout (started at 271 after
T03, grew through T04/T06's additions/replacements).
- Live proofs performed and cleaned up after: T01 (create/route/close
cycle), T02 (real AWQ-002/003/006 registration — kept, not test data),
T03 (workplan promotion ×2 incl. one bug-catching run, decision
promotion ×1 — all scratch artefacts removed/archived/resolved), T04
(binky-control + the-custodian index generation, idempotence confirmed),
T06 (410 + historical-read verification against the running API).
- One process note: a state-hub commit message came out slightly garbled
(unescaped backticks in a double-quoted `-m` string triggered bash
command substitution) — content still accurate, not worth a force-push
to fix cosmetically on an already-pushed commit.
### Carried forward (not blocking closure)
- **Generated index, second-generation work:** full transclusion rendering
(markitect integration) named as a T04 follow-on, not started.
- **Engagement hub entity:** still doesn't exist; C-32 defers it correctly.
Needed before engagement can flow through the promotion transition's
hub-registration path (file-only promotion already works).
- **Pre-existing bug found, not fixed:** `sync_schedules`'s
`ScheduleAlreadyRunningError` crash (found 2026-07-20, registered as
technical debt `TD f29e49eb`) — unrelated to this workplan's scope,
live production Temporal state, left for its own fix.
- **10 migrated intake findings** (`CUST-IN-0001`..`0010`) are real
cross-domain backlog now sitting in `the-custodian`, `status: open`
they need their actual domain owners (ops-warden, state-hub/financials)
to vet/route/promote them. Not this workplan's job to resolve their
content, only to preserve it faithfully — done.
The reconciliation that started with AWQ-010 is complete: intake exists as
a first-class hub entity, registration is automatic, promotion is one
call, the cross-repo index is generated, the queues point at it, and the
legacy suggestions table is closed out. Nothing about this required
another manual reintegration.