
al-build
by FBakkensen
Business Central agentic development tools - skills for AI-assisted AL development
SKILL.md
name: al-build description: 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.
AL Build
Self-contained build system for AL/Business Central development. No external task runners required.
Project Setup (First Time)
Required Steps:
- Initialize config: Run
/al-build:initto createal-build.json - Customize config (especially
testAppNameto match your test app) - Run provision (one-time): Run
/al-build:provision
Config Priority (highest to lowest):
- Script parameters (e.g.,
-AppDir "custom") - Environment variables (e.g.,
ALBT_APP_DIR) - Project config (
al-build.jsonin repo root)
Canonical Gate
After modifying AL code or tests, run:
pwsh "<skill-folder>/scripts/test.ps1"
Prerequisites:
- Project config exists and customized (
al-build.json) - Provision completed (run
provision.ps1once) - Docker container healthy
Requirements:
- Zero warnings, zero errors
- Faster iteration:
pwsh "<skill-folder>/scripts/test.ps1" -TestCodeunit <id> - Force republish:
pwsh "<skill-folder>/scripts/test.ps1" -Force
Outputs:
.output/TestResults/last.xml— JUnit test results.output/TestResults/telemetry.jsonl— merged telemetry
Running Tests in Subtask (Recommended)
Use 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?
- Build/test output is verbose (compilation logs, test runner output)
- Main task only needs results and actionable error context
- Keeps conversation focused on the development task
Troubleshooting
Build fails and no config exists
If /al-build:test fails and al-build.json doesn't exist in repo root:
- Run
/al-build:initto create config - Customize settings as needed
- Run
/al-build:provisiononce - Re-run
/al-build:test
Config Issues
- Config not loading: Ensure
al-build.jsonis in git repo root (same level as.git/) - Provision not found: Run
/al-build:provision(one-time) - Wrong test app: Update
testAppNameinal-build.jsonto match your test app
Build Failures
- Check compiler output for error messages
- Ensure symbols are provisioned (user runs:
pwsh provision.ps1) - Verify container is healthy:
docker ps
Test Failures
- Check
.output/TestResults/last.xmlfor assertion failures - Use telemetry for debugging: see
telemetry-first-test-debuggingskill - Run specific codeunit:
pwsh "<skill-folder>/scripts/test.ps1" -TestCodeunit <id>
Container Issues
- Check container health:
docker inspect <name> --format '{{.State.Health.Status}}' - View container logs:
docker logs <name>
Score
Total Score
Based on repository quality metrics
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
Reviews
Reviews coming soon

