Build and test AL/Business Central projects. Use after modifying AL code or tests to verify the build gate passes. Runs compilation, publishing, and test execution in a single command. Required gate before committing AL changes.
Executes AL build and test pipeline to verify Business Central projects compile and pass tests.
/plugin marketplace add FBakkensen/bc-agentic-dev-tools/plugin install fbakkensen-al-build-plugins-al-build@FBakkensen/bc-agentic-dev-toolsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
README.mdconfig/al-build.jsonscripts/build-operations.psm1scripts/clean.ps1scripts/commit-bc-container.ps1scripts/common.psm1scripts/download-symbols.ps1scripts/init.ps1scripts/new-agent-container.ps1scripts/new-bc-container.ps1scripts/pagescript-replay.ps1scripts/provision.ps1scripts/prune.ps1scripts/test.ps1scripts/validate-breaking-changes.ps1Self-contained build system for AL/Business Central development. No external task runners required.
Required Steps:
/al-build:init to create al-build.jsontestAppName to match your test app)/al-build:provisionConfig Priority (highest to lowest):
-AppDir "custom")ALBT_APP_DIR)al-build.json in repo root)After modifying AL code or tests, run:
pwsh "<skill-folder>/scripts/test.ps1"
Prerequisites:
al-build.json)provision.ps1 once)Requirements:
pwsh "<skill-folder>/scripts/test.ps1" -TestCodeunit <id>pwsh "<skill-folder>/scripts/test.ps1" -ForceOutputs:
.output/TestResults/last.xml — JUnit test results.output/TestResults/telemetry.jsonl — merged telemetryUse the Task tool with subagent_type: general-purpose to run tests. This keeps verbose build output contained and returns only essential results to the main conversation.
Task tool invocation:
subagent_type: general-purpose
prompt: |
IMPORTANT: This is a READ-ONLY task. Do NOT edit any files.
Run the AL build gate:
pwsh "<skill-folder>/scripts/test.ps1"
Report back:
1. Build result: success or failure
2. Test result: pass count, fail count
3. If failures: include the relevant error messages and stack traces
4. If warnings: list them
5. If failures and telemetry is relevant: include key entries from .output/TestResults/telemetry.jsonl
Do not include full console output - only the summary above.
Why subtask?
If /al-build:test fails and al-build.json doesn't exist in repo root:
/al-build:init to create config/al-build:provision once/al-build:testal-build.json is in git repo root (same level as .git/)/al-build:provision (one-time)testAppName in al-build.json to match your test apppwsh provision.ps1)docker ps.output/TestResults/last.xml for assertion failurestelemetry-first-test-debugging skillpwsh "<skill-folder>/scripts/test.ps1" -TestCodeunit <id>docker inspect <name> --format '{{.State.Health.Status}}'docker logs <name>