bcquality/custom
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
..
agents Fix all 6 confirmed findings from today's gap audit 2026-08-03 14:12:05 +02:00
architecture Foreslaa regel: Evaluer BCApps AI Test Toolkit foer custom eval-harness til LLM-features 2026-07-22 11:14:07 +02:00
knowledge Fix all 6 confirmed findings from today's gap audit 2026-08-03 14:12:05 +02:00
scripts QualityHub: det nye private repo faar sit eget navn 2026-07-03 17:59:33 +02:00
setup Fix all 6 confirmed findings from today's gap audit 2026-08-03 14:12:05 +02:00
skills Add initial project structure with .gitignore, LICENSE, README, and CODEOWNERS 2026-04-17 05:56:10 +02:00
README.md new global standard 2026-06-21 12:22:54 +02:00

Custom layer

This folder is the template for partner- and customer-specific overrides. Use it to add knowledge and skills that apply to your organization but are not appropriate for the shared Microsoft or Community layers.

Structure

custom/
├── knowledge/    # Your organization's knowledge files (same format as /microsoft/knowledge/)
└── skills/       # Your organization's action skills

How to use

Fork or clone BCQuality into your own repository and add your content here. Knowledge files in /custom/knowledge/ follow the same frontmatter schema and section requirements as every other layer. Action skills in /custom/skills/ follow the Action Skill template defined in /skills/.

When agents consume BCQuality, the custom layer is loaded alongside Microsoft and Community — your overrides apply automatically.


CURABIS — BCQuality customizations

Developer onboarding (new machine)

Two files must be placed on the developer's machine. Everything else is automatic.

1. Global Claude Code instructions

Copy setup/machine/CLAUDE.md to ~/.claude/CLAUDE.md and fill in your name and username.

This file tells Claude Code about CURABIS Standard in every session — including brand-new, unconfigured repositories.

2. BC MCP credentials

Create ~/.bc-mcp.config.json with your BC service-to-service credentials:

{
  "tenantId": "<your-tenant-id>",
  "clientId": "<your-client-id>",
  "clientSecret": "<your-client-secret>",
  "baseUrl": "https://api.businesscentral.dynamics.com"
}

Never commit this file. It contains secrets.

Configuring a new project

Once the two machine files are in place, open any AL-Go repository in VS Code and tell Claude Code:

"Konfigurer dette projekt til CURABIS Standard"

Claude fetches setup/curabis-standard.agent.md and writes all project files automatically: CLAUDE.md, .mcp.json, .github/.agents/, cspell.json, projectmemory/.

The BC MCP bridge (bc-mcp-bridge.js) is also installed to ~/.claude/ from this repo — so it stays up to date every time setup is re-run.

Folder structure

custom/
  README.md                          ← this file
  knowledge/
    architecture/                    ← AL architecture rules
    testing/                         ← test quality rules
    mcp/                             ← BC MCP / API page rules
  setup/
    curabis-standard.agent.md        ← project setup agent
    bc-mcp-bridge.js                 ← BC MCP bridge (authoritative copy)
    machine/
      CLAUDE.md                      ← global Claude Code instructions template
    templates/
      bcquality.agent.md             ← BCQuality review agent (per project)
      immanuel.agent.md              ← Rule guardian agent (per project)
      cspell.json                    ← Standard spell-check config