Two related fixes, discovered together while debugging Wareco's duplicated "Project" scope MCP entries: 1. New custom/setup/machine/settings.json template + a merge-safe deploy step in sync-bcquality-knowledge.ps1 (section 10): auto-approves the read-only/already-protocol-gated tool calls across the three CURABIS-managed MCP servers (businesscentral's 15 static tools, al's 11 dev-loop tools, microsoft-learn's 3 docs tools) via ~/.claude/settings.json's permissions.allow -- merged into whatever already exists, never overwritten, since that file also carries a developer's personal settings. Tested against a real 298-entry settings.json: preserved every existing key/array untouched, added only the 14 genuinely-missing entries. Found and fixed two real bugs while building this: -AsHashtable doesn't exist in Windows PowerShell 5.1 (this script also runs via `powershell`, not just `pwsh`) -- switched to PSCustomObject + Add-Member. And Set-Content -Encoding utf8 writes a BOM in PS5.1 with no utf8NoBOM option -- switched to [System.IO.File]::WriteAllText with an explicit no-BOM UTF8Encoding, since the original file had no BOM and a JSON parser choking on one would have silently broken every developer's settings.json. 2. Wareco's committed .claude/settings.json still has the pre-migration Dynamic Tool Mode tool names (bc_actions_search/describe) and an enabledMcpjsonServers entry for al/businesscentral -- the latter is why the MCP servers panel shows them duplicated under "Project" scope next to the correct "User" scope registration. Added detection + confirmed-removal migration step (mirroring the existing .mcp.json migration's multi-developer coordination caveat) and Roemer station 16 to catch this on other pre-migration repos (gtt-marine likely has the same file). |
||
|---|---|---|
| .. | ||
| agents | ||
| architecture | ||
| knowledge | ||
| scripts | ||
| setup | ||
| skills | ||
| README.md | ||
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