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.
3.4 KiB
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