bcquality/custom
Michael Dieringer 9e66377fa6 Ret bc-mcp: config-skabelon matcher broen + fejl svaelges ikke laengere
Live incident i aften: businesscentral MCP fejlede med et generisk
30-sekunders "connection timed out", ingen brugbar fejl. To reelle, adskilte
fejl fundet ved at teste direkte mod BC's endpoint:

1. ~/.bc-mcp.config.json havde "company": "CURABIS ApS" (Vist navn), men BC's
   faktiske Navn-felt er "Curabis ApS". BC svarede korrekt og hurtigt (400,
   under 200ms) - problemet var aldrig BC.

2. bc-mcp-bridge.js svaelgede det svar stille: en fejl-krop formateret som
   almindelig JSON, men markeret content-type text/event-stream, blev sendt
   til parseSSE() som kun leder efter "data:"-linjer - fandt ingen, returnerede
   en tom liste. Broen skrev derfor INGENTING, hverken stdout eller stderr, og
   Claude Code ventede blot sin egen 30-sekunders timeout ud.

Rettet:
- forward() tjekker nu !r.ok FOER content-type-forgrening, ubetinget - en
  fejlrespons naar aldrig parseSSE, uanset hvad serveren paastaar om sin
  egen content-type. Testet direkte mod det reproducerede scenarie: fejlen
  vises nu med det samme (5s test-vindue, ikke 30s timeout), med det fulde
  BC-fejlsvar synligt i baade stdout (JSON-RPC error) og stderr.
- bc-mcp.config.template.json matchede slet ikke broens faktiske felter
  (tenantId/baseUrl vs. broens tenant/company/configurationName) - enhver ny
  udvikler der udfyldte skabelonen efter dens egne feltnavne ville faa en
  config der intet virkede med. Rettet til de rigtige feltnavne, plus en
  eksplicit advarsel om Navn vs. Vist navn i company-feltet.
- Mode A's opsaetningsbesked (Step 3b) opdateret til at naevne alle
  placeholder-felter, ikke kun secret'en.
- To nye BCQuality-videnfiler dokumenterer begge fejl til fremtidig
  fejlsoegning.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-01 00:18:37 +02:00
..
agents Tilfoej al-review: uafhaengig per-aendring-reviewer (Torvalds + Winters) 2026-07-31 23:20:50 +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 Ret bc-mcp: config-skabelon matcher broen + fejl svaelges ikke laengere 2026-08-01 00:18:37 +02:00
scripts QualityHub: det nye private repo faar sit eget navn 2026-07-03 17:59:33 +02:00
setup Ret bc-mcp: config-skabelon matcher broen + fejl svaelges ikke laengere 2026-08-01 00:18:37 +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