bcquality/custom/setup/templates/HEARTBEAT.md
Michael Dieringer 9e5273443f 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.
2026-08-03 14:12:05 +02:00

115 lines
3.4 KiB
Markdown

# HEARTBEAT.md — {PROJECT_NAME}
Florence læser denne fil ved hver runde. Hun følger checklistet præcist
og flagger hvis det er forældet.
Sidst opdateret: {SETUP_DATE}
---
## Checklistet
### 1. BCQuality PRs
Tjek åbne PRs på `Curabis/QualityHub`:
`https://api.github.com/repos/Curabis/QualityHub/pulls?state=open`
| Klassifikation | Kriterium |
|---|---|
| Routine | Ingen åbne PRs |
| Notable | 1 åben PR, oprettet inden for 24 timer |
| Concerning | 1+ åben PR, ældre end 3 dage uden aktivitet |
| Urgent | PR afventer merge og blokerer andet arbejde |
---
### 2. CI/CD — AL-Go builds
Tjek seneste build-status på `main` og åbne branches.
| Klassifikation | Kriterium |
|---|---|
| Routine | Alle builds grønne |
| Notable | Et enkelt build fejlede men er siden rettet |
| Concerning | Seneste build på main fejler |
| Urgent | Main fejler og der er en igangværende release |
---
### 3. BC-opgaver — klar til start
Tjek opgaver med status `Accepted` i projektet.
| Klassifikation | Kriterium |
|---|---|
| Routine | Ingen nye Accepted-opgaver siden sidste runde |
| Notable | 1-2 opgaver er blevet Accepted |
| Concerning | 3+ opgaver er Accepted og ingen er taget op |
---
### 4. Forsinkede opgaver
Tjek opgaver hvor `expectedDelivery` er passeret og BC-status ikke er afsluttet.
| Klassifikation | Kriterium |
|---|---|
| Routine | Ingen forsinkede opgaver |
| Notable | 1 opgave forsinket med under 3 dage |
| Concerning | 1+ opgave forsinket med mere end 3 dage |
| Urgent | Forsinkelse påvirker kundeleverance |
---
### 5. Gamle branches
Tjek branches ældre end 14 dage uden åben PR.
| Klassifikation | Kriterium |
|---|---|
| Routine | Ingen branches ældre end 14 dage |
| Notable | 1-2 gamle branches uden PR |
| Concerning | 3+ gamle branches, eller en branch ældre end 30 dage |
---
### 6. Agent-synlighed i CLAUDE.md
Sammenlign filer i `.github/.agents/` med referencer i `CLAUDE.md`.
Kald Rømer (`roemer.agent.md`) hvis 1+ agent i mappen ikke er nævnt i
CLAUDE.md — det er præcis hans station 8 (agent visibility), og han kan
afgøre om det er drift eller en legitim lokal afvigelse der skal videre
til Ferencz.
| Klassifikation | Kriterium |
|---|---|
| Routine | Alle agenter er nævnt i CLAUDE.md |
| Concerning | 1+ agent i mappen er ikke nævnt i CLAUDE.md — Rømer kaldt |
---
### 7. Workspace & multi-app konfiguration
Se `florence.agent.md` for den fulde checkprotokol.
| Klassifikation | Kriterium |
|---|---|
| Routine | Workspace eksisterer, alle apps er med, alle har test-app |
| Notable | En eller flere main-apps mangler test-app |
| Concerning | Ingen workspace-fil, app-mappe mangler i workspace, eller CLAUDE.md dækker ikke alle apps |
---
### 8. Den rette and
Kald Weber (`weber.agent.md`) hvis der ligger nye dokumenter i `.decisions/` siden
sidste runde. Spørgsmålet er: *vidste udvikleren hvilken and der skulle bygges?*
| Klassifikation | Kriterium |
|---|---|
| Routine | Alle specs denne uge: Klar and |
| Notable | Én Uklar and — coaching-note sendt til udvikleren |
| Concerning | Blind and observeret, eller samme gap to uger i træk |
Weber rapporterer kun til udvikleren. Aggregerede mønstre, uden navne, til ledelsen.
---
## Hvad Florence aldrig gør
- Vækker Michael for et Notable
- Springer en runde over fordi "der sikkert ikke er sket noget"
- Redigerer dette dokument uden at blive bedt om det
- Lukker BC-opgaver — det kan kun en BC-bruger