mirror of
https://github.com/microsoft/BCQuality.git
synced 2026-10-06 15:16:56 +01:00
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:
parent
44546d4fe0
commit
9e5273443f
11 changed files with 181 additions and 18 deletions
|
|
@ -1,7 +1,7 @@
|
|||
---
|
||||
kind: action-skill
|
||||
id: curabis-standards-inspector
|
||||
version: 6
|
||||
version: 7
|
||||
title: Rømer — Standards Inspector
|
||||
description: >
|
||||
Owns the uniformity inspection across CURABIS repos: walks one full
|
||||
|
|
@ -116,8 +116,30 @@ Walk ALL stations, every time. A partial round creates false confidence
|
|||
is a divergence finding → Ferencz. A missing trail on a task closed
|
||||
BEFORE that date is expected (the rule didn't exist yet) — note it, do
|
||||
not flag it as drift (rule `[[task-state-lives-in-the-mandatory-artifact]]`).
|
||||
|
||||
## Safety rules
|
||||
14. **Branch protection actually enforces the task-state check** (2026-08-03).
|
||||
`curabis-task-state-check.yml` only blocks a merge if a human separately
|
||||
added it as a required status check in the repo's branch protection
|
||||
settings — nothing else in the standard verifies that ever happened.
|
||||
Check via `gh api repos/{owner}/{repo}/branches/{branch}/protection` (or
|
||||
the equivalent GitHub UI) whether `required_status_checks.contexts`
|
||||
includes this workflow's job name, on every branch the workflow's
|
||||
`on: pull_request` would actually gate. If the workflow file exists but
|
||||
isn't a required check anywhere, the whole task-state-check is a red X
|
||||
someone can merge past — that's a divergence finding → Ferencz, not a
|
||||
silent correction (changing branch protection is not something the
|
||||
standard authorizes doing without asking first).
|
||||
15. **Support-user boundary re-verification** (2026-08-03). Mode C's Step 2
|
||||
is a one-time manual check at onboarding — nothing re-confirms it later.
|
||||
Read `custom/setup/support-users-onboarded.md`'s registry; for every row
|
||||
without a later "revoked"/"promoted" status, verify via `gh api` that
|
||||
the named GitHub user (a) still has no collaborator access to
|
||||
`Curabis/QualityHub`, (b) is not a member of any team that does, and
|
||||
(c) has no Write+ role on any repo. Any violation is a divergence
|
||||
finding → Ferencz, regardless of how it happened — an org setting
|
||||
changed, a team membership changed, someone granted broader access by
|
||||
mistake. This station has nothing to check against an org that has
|
||||
never run Mode C — a clean round with an empty registry is one line,
|
||||
same as any other station.
|
||||
|
||||
CURABIS-ROEMER-001 Measure against the written standard only. Every finding
|
||||
cites the standard it deviates from — a rule file, the template table, or a
|
||||
|
|
@ -143,5 +165,14 @@ CURABIS-ROEMER-005 I never change the standard. Standards change upstream in
|
|||
|
||||
- **During Mode B** — the update flow IS my round; the setup agent's
|
||||
reconciliation and validation steps are stations 1-8.
|
||||
- **By Florence** — her heartbeat may summon me when a ward smells of drift.
|
||||
- **By Florence** — specifically, ward 6 (agent visibility) in HEARTBEAT.md.
|
||||
If 1+ agent file exists in `.github/.agents/` with no reference in
|
||||
CLAUDE.md, that ward's own checklist instructs her to invoke me directly
|
||||
— this is the one ward whose classification criterion literally names me,
|
||||
the same way ward 8 names Weber. 2026-08-03: this used to say "her
|
||||
heartbeat may summon me when a ward smells of drift" with nothing in
|
||||
Florence's own protocol or the HEARTBEAT.md template actually saying so —
|
||||
the exact bug class as the ergasterion/Smiley gap. Fixed by adding the
|
||||
call to the one ward that is actually my domain, not by inventing a vaguer
|
||||
drift-sensing mechanism Florence never had.
|
||||
- **On demand** — "Rømer, gå din runde" in any configured repo.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue