risk-nexus/activity-definitions/daily-register-check-sweep.md
tegwick 5b9a0e98fe RISK-WP-0004-T01: schedule the checks on activity-core
Two activity definitions, in the shape activity-core's own definitions
use. hourly-register-inbox-watch fires only when an unread message waits
for risk-nexus — the inbox is the trigger rather than the clock, because
an unread message is by construction a claim that something may have
moved, and 2026-08-19 proved the register will otherwise grade without
looking. daily-register-check-sweep is the unconditional floor at 07:15.

Both emit an instruction to a session that can exercise judgement, and
both say in their own text that they must never grow the ability to
record an outcome: stamping clean without doing the five questions
produces a 1q rung that is a lie about stability.

RISK-WP-0004 is finished.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-20 08:55:48 +02:00

3 KiB

id name type version enabled owner governance status created updated trigger dedupe_key_strategy context_sources report_sinks
daily-register-check-sweep Daily Register Check Sweep activity-definition 1.0 true risk-nexus custodian active 2026-08-20 2026-08-20
type cron_expression timezone misfire_policy
cron 15 7 * * * Europe/Berlin skip
skip
type query required params bind_to
state-hub hub_inbox false
to_agent unread_only
risk-nexus true
context.inbox
type event_type author
state-hub-progress risk_register_check activity-core

Daily Register Check Sweep

Runs daily at 07:15 Berlin time, before the working day, and unconditionally.

Why a floor exists at all

The cadence ladder is self-pacing: a finding that keeps coming back clean is checked less often, up to a quarterly ceiling. That works only if something performs checks. RISK-WP-0004-T01 recorded the honest state — the procedure and the tooling existed, and nothing ran them, so every finding sat at instant and the ladder was decoration.

This is the floor. It does not decide what is due; make due does that from the findings' own front-matter. It guarantees that the question is asked once a day whether or not anyone remembers to ask it.

The work this instruction stands for

Per docs/method/check-procedure.md, for each finding make due lists:

  1. read anything the inbox has said about it (question zero);
  2. is the grade still right;
  3. is every stated blocker still true — a blocker is a claim about the world at a date;
  4. has the fix moved, read from the owner's record rather than from memory;
  5. is the disclosure state still right.

Then make checked ARGS="<id> clean" or "<id> moved '<what changed>'", and make register. A check that is not written down did not happen.

The one thing that must not happen

Stamping clean without doing those five. It costs nothing and produces a 1q rung that is a lie about stability — the RISK-F-0002 failure mode (a control that produces a false record is worse than no control) turned on this register's own instruments. clean_streak is in the register partly so that a suspiciously smooth climb is visible.

This activity therefore emits an instruction to a session that can exercise judgement. It does not, and must not, grow the ability to record outcomes itself.

id: work-the-due-list
condition: 'true'
action:
  task_template: 'risk-nexus: work the register due list'
  description: >-
    Run `make due` in risk-nexus, then work each listed finding through the five
    questions in docs/method/check-procedure.md and record the outcome with
    `make checked`. Findings at the `instant` rung are due immediately; the
    ladder climbs only on a clean check. Escalate only what
    docs/method/escalation.md says to escalate, batched into one operator
    conversation. If nothing is due, that is a complete run and worth nothing
    further.
  target_repo: risk-nexus
  priority: medium
  labels: ["risk-register", "cadence", "check"]