diff --git a/workplans/RISK-WP-0004-run-the-register.md b/workplans/RISK-WP-0004-run-the-register.md index b4db073..8dba460 100644 --- a/workplans/RISK-WP-0004-run-the-register.md +++ b/workplans/RISK-WP-0004-run-the-register.md @@ -4,7 +4,7 @@ type: workplan title: "Run the register: make the cadence actually happen, and close the gaps the first week found" domain: infotech repo: risk-nexus -status: active +status: finished owner: the-custodian topic_slug: risk-nexus created: "2026-08-20" @@ -48,7 +48,7 @@ Every task below traces to something that happened, not something imagined. ```task id: RISK-WP-0004-T01 -status: progress +status: done priority: high ``` @@ -67,7 +67,31 @@ stamps `clean` without doing that is worse than no job, because it manufactures a stability signal that is false. That is the `RISK-F-0002` failure mode applied to this repo's own instruments. -In progress 2026-08-20. The procedure exists (`docs/method/check-procedure.md`), `make due` prints the work list, and `make checked` records an outcome. **What does not exist is the thing that runs it on schedule**, and this register does not get to arm a standing compute commitment on the operator's behalf. The doc names the three options and says which survives the operator being busy. Stays open until that decision is made; until then, every finding sitting at `instant` is telling the truth about how often `make check` is run. +Completed 2026-08-20, in two halves. The procedure exists (`docs/method/check-procedure.md`), `make due` prints the work list, and `make checked` records an outcome. **What does not exist is the thing that runs it on schedule**, and this register does not get to arm a standing compute commitment on the operator's behalf. The doc names the three options and says which survives the operator being busy. The operator chose the scheduled agent, on `activity-core`, and it is written: + +- `activity-definitions/hourly-register-inbox-watch.md` — hourly at :05, fires + **only when an unread message is waiting for `risk-nexus`**. The inbox is the + trigger rather than the clock: an unread message is by construction a claim + that something in the register may have moved, and 2026-08-19 proved the + register will otherwise grade without looking. +- `activity-definitions/daily-register-check-sweep.md` — daily at 07:15, + unconditional. The floor that guarantees the question gets asked. + +Both emit an **instruction to a session that can exercise judgement**. Neither +grades, closes, publishes, escalates nor records an outcome, and both say so in +their own text: stamping `clean` without doing the five questions produces a +`1q` rung that is a lie about stability — `RISK-F-0002`'s failure mode turned +on this register's own instruments. + +Residual, routed rather than worked around: no context resolver knows what this +register has due, so the instruction says "run `make due`" instead of naming +findings. A `risk_register_due` query in `activity-core` would let the daily +sweep fire only when something is actually due. It works without it; it is +just louder than it needs to be. + +The definitions are the ADR-001 source of truth. Live rows pick them up on the +next `make sync-activity-definitions`, which runs on the Railiance deployment +and not from this checkout. ### T02 — Inbox before grading, as a check rather than a habit