bcquality/custom
Michael Dieringer 0563887aea bc-mcp-bridge: timeout + one-retry-with-fresh-session self-heal
Neither fetch() call had a timeout, and the BC session (Mcp-Session-Id)
plus the underlying HTTP connection were reused for the bridge process's
entire lifetime with no proactive refresh. A long-running Claude Code
session with gaps between calls can leave either stale.

Observed today: a 30-minute hang on one call (no timeout meant it never
failed on its own), and separately an "Internal_CompanyNotFound" on two
machines that likely wasn't a real company problem but a dead session --
Michael noticed the pattern independently: Summatim's frequent quick calls
never have this issue, longer sessions with gaps do.

Added REQUEST_TIMEOUT_MS (30s) via AbortSignal.timeout on both fetch
calls, and wrapped forward() to retry once with sessionId cleared on any
failure -- self-heals a stale session/connection without the developer
noticing. Tested end to end: full initialize + tools/call succeeds
normally (no retry needed), and a forced-failure path correctly retries
once then surfaces the real error if it persists.
2026-08-05 14:05:42 +02:00
..
agents Deploy a shared MCP-tool permissions allowlist; detect legacy .claude/settings.json 2026-08-04 07:31:46 +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 Sharpen: BC MCP company-header rule — correct header isn't proof against recurrence 2026-08-03 15:10:18 +02:00
scripts QualityHub: det nye private repo faar sit eget navn 2026-07-03 17:59:33 +02:00
setup bc-mcp-bridge: timeout + one-retry-with-fresh-session self-heal 2026-08-05 14:05:42 +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