Fix all 6 confirmed findings from today's gap audit

Implements every confirmed finding from the workflow-based audit of
CURABIS Standard's agent model (7 finders + adversarial verification,
8 confirmed / 5 refuted):

1. Roemer/Florence phantom wiring - roemer.agent.md claimed Florence's
   heartbeat "may summon me when a ward smells of drift" with nothing in
   florence.agent.md or HEARTBEAT.md implementing it. Fixed by adding an
   explicit "Kald Roemer" instruction to HEARTBEAT.md ward 6 (agent
   visibility, his actual domain), mirroring ward 8's existing "Kald
   Weber" pattern, and correcting roemer.agent.md's own claim to match.

2. m365.agent.md's "Florence's morning brief pattern" was a one-way
   orphaned reference - a full 4-step pattern with nothing in
   florence.agent.md implementing it. Added it to florence.agent.md as
   an explicit on-demand capability, separate from the timestamp-gated
   Round protocol.

3. An Ergasterion "PROCEED WITH CHANGES" ruling had no way to be checked
   against the eventual diff - al-review's checklists never referenced
   it. Added ERGASTERION_RULING to the [CURABIS-STATE] vocabulary,
   wired Ergasterion to write it, and added a BLOCKing checklist item to
   al-review's Titus checklist that verifies required changes were
   actually implemented.

4. curabis-task-state-check.yml was headered "Deterministic enforcement
   (not LLM diligence)" but only checks checkbox order, only blocks
   anything if a human separately enabled branch protection (never
   verified anywhere), and doesn't exist at all for the PTE track.
   Corrected the header's claims and added Roemer station 14 to verify
   branch protection is actually configured.

5. Mode C's only safeguard against a support user reaching
   Curabis/QualityHub was a single manual eyeball check with no re-check
   ever. Strengthened Step 2 to cover team-inherited and org-default
   access paths, added an append-only support-user registry, and added
   Roemer station 15 to periodically re-verify every registered user
   against it.

6. Columbo's persona was presented as genuine autobiography with no
   disclosure of its fictional TV origin (Levinson & Link, Peter Falk),
   unlike Smiley which discloses explicitly. Added a reader-facing
   editorial note - never something Columbo says aloud, since unlike
   Smiley he actually performs the persona to customers.
This commit is contained in:
Michael Dieringer 2026-08-03 14:12:05 +02:00
parent 44546d4fe0
commit 9e5273443f
11 changed files with 181 additions and 18 deletions

View file

@ -40,6 +40,8 @@ can drift; the artifact the flow already requires cannot drift from itself.
```
TASK_STARTED branch created, BC gitHubDevStatus = In Progress (PTE only)
ERGASTERION_RULING: PROCEED | PROCEED_WITH_CHANGES | RECONSIDER (HIGH tier only,
before implementation — see below)
RED_CONFIRMED test written, developer confirmed the failing run
GREEN_CONFIRMED test passes, developer/CI has actually run it
REVIEW: APPROVE | APPROVE_WITH_NOTES | BLOCK al-review's verdict
@ -47,6 +49,22 @@ ON_HOLD parked mid-task (Focus gate) — always includes why
MERGED track branch merged, BC Done (PTE) / PR merged (AppSource)
```
**2026-08-03 — `ERGASTERION_RULING` carries required changes forward.** When
a HIGH-tier task convenes the Ergasterion (`ergasterion.agent.md`) before
implementation, its ruling — and, critically, the *exact required changes*
for a PROCEED_WITH_CHANGES or RECONSIDER disposition — is written into the
same trail, not just decided in the moment and forgotten. Without this,
nothing downstream (al-review, at merge time) has any way to check whether
the implementation actually honored a design ruling that happened before
code existed. The checkpoint text includes the required-changes list
verbatim, e.g.:
[CURABIS-STATE] ERGASTERION_RULING: PROCEED_WITH_CHANGES — hide the
exchange-rate lookup behind an interface before implementation — 2026-08-03, mid
al-review's Titus checklist reads this checkpoint back and treats an
unaddressed required change as a BLOCK finding — see `al-review.agent.md`.
## PTE format — a tagged comment per transition
Write one `[CURABIS-STATE]` comment per transition via `Create_TaskComment_PAG6102902`