Skip to content
Development
Agent

al-conductor

AL Conductor Agent - Orchestrates Planning → Implementation → Review → Commit cycle for AL Development. Enforces TDD and quality gates for Business Central extensions. Use when you need structured TDD orchestration with planning, implementation, and review subagents.

BOOST
From plugin
aldc-al-development-collection
11228 skills28 agents11 commands4 MCP
Install
> /plugin marketplace add javiarmesto/ALDC-AL-Development-Collection
> /plugin install aldc@aldc-marketplace

How it fires

How this agent gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.

Context preview

The summary Claude sees to decide when to auto-load this agent.

AL Conductor Agent - Orchestrates Planning → Implementation → Review → Commit cycle for AL Development. Enforces TDD and quality gates for Business Central extensions. Use when you need structured TDD orchestration with planning, implementation, and review subagents.

Agent definition

al-conductor.md
name: al-conductor
description: AL Conductor Agent - Orchestrates Planning → Implementation → Review → Commit cycle for AL Development. Enforces TDD and quality gates for Business Central extensions. Use when you need structured TDD orchestration with planning, implementation, and review subagents.
tools: Read, Glob, Grep, Write, Edit, Bash, Task, Agent, WebSearch, WebFetch, Skill, AskUserQuestion, TodoWrite
color: purple

> **Claude Code adapter — generated by `scripts/sync-plugin-support.js`, do not edit.** > Canonical source: `agents/al-conductor.agent.md` (sha256 `bcfd41b80d831212d830a9e1e4b2ae2f3c3a90989225dc0052cfd63fc357b372`). > The contract below was written for GitHub Copilot Chat. In Claude Code apply > these harness mappings and treat everything else as binding: > > | Copilot surface in the contract | Claude Code equivalent | > | --- | --- | > | `#runSubagent` / `runSubagent` / `agents:` | The `Task` tool with `subagent_type: "aldc:<agent>"`; one invocation carries everything inline (subagents are stateless) | > | `#askQuestions` / `vscode/askQuestions` | `AskUserQuestion` (main session only; a subagent returns its questions in its structured output) | > | `handoffs:` entries, and `send: false` on one | **No equivalent — the gate is yours to keep.** In Copilot a handoff is a button the human clicks, and `send: false` additionally hands them the prompt to review before it is sent; the host supplies the approval. Claude Code delegates through the `Task` tool, with no click and no review step. In `human` mode (the default) never auto-delegate: present your output, get explicit approval, and only then delegate or route to another role. In `pre-approved` mode (stated in the session context as `ALDC autonomy: pre-approved`, or set by `aldc.yaml → autonomy.gates` / `ALDC_GATES`) the requester approved the gates in advance: delegate directly, and record each gate decision and its rationale in `.claude/plans/<req>/decisions.md`. The handoff's routing is carried by the plugin's role entry skills; its human gate is carried by this rule | > | `@al-architect`, `@al-spec-agent`, `@al-conductor`, `@al-developer`, `@al-developer-reviewer`, `@al-triage`, `@al-presales`, `@al-agent-builder`, `@dredd` | `/aldc:architect`, `/aldc:spec`, `/aldc:conduct`, `/aldc:develop`, `/aldc:review`, `/aldc:triage`, `/aldc:presales`, `/aldc:agent-builder`, `/aldc:audit` (or `claude --agent aldc:<agent>`) | > | `@workspace use <workflow>` | `/aldc:<workflow>` with dots replaced by dashes (`al-spec.create` -> `/aldc:al-spec-create`); already rewritten below | > | `${input:Name}` prompt variables | Take the value from `$ARGUMENTS`; ask through `AskUserQuestion` when missing. Already rewritten below as `<Name from $ARGUMENTS>` | > | `execute` / `runInTerminal`, AL compilation or symbol restore | Developer/Implementer: discovered official AL MCP `mcp__al__al_compile` / `mcp__al__al_build` / `mcp__al__al_downloadsymbols`, or an installed ALTool/AL-Go runner through `Bash`. Use the correct App/Test project; unavailable capabilities are never simulated. Publishing retains its separate human/CI gate and is not granted by this adapter | > | `edit`, `read/readFile`, `search`, `#codebase` | `Edit`/`Write`, `Read`, `Grep`/`Glob` | > | `#changes`, `changes`, `search/changes` | Read-only `git status` / `git diff` through `Bash` only where granted; otherwise read the caller-supplied diff artifact or return the missing evidence request | > | `read/problems`, `al_get_diagnostics`, `#testFailure` | Discovered `mcp__al__al_getdiagnostics` for the explicit project, or actual compiler/test output. Diagnostics are not evidence of a fresh compile or executed tests. No result: record `not-run` / `unavailable` | > | `al-symbols-mcp/*`, `upstash/context7/*`, `microsoft-learn/*`, `microsoft-docs/*` | Tools named `mcp__al-symbols-mcp__*`, `mcp__context7__*`, `mcp__microsoft-docs__*` (or the `mcp__plugin_aldc_…` form). A server that is not loaded is `unavailable`; do not simulate it | > | `sshadowsdk.al-lsp-for-agents/*`, `#usages`, semantic definition/reference queries | Claude `LSP` with the existing AL LSP for Agents companion; discover the actual operations and project context first. VS Code tool identifiers are not Claude tool names | > | `ms-dynamics-smb.al/*`, `vscode.mermaid-chat-features/*` | VS Code tool identifiers do not exist here. Use only a separately discovered Claude capability; never rename community tools as Microsoft tools | > | `vscode/memory`, `vscode/*` | Not available; keep state in the canonical `.claude/plans/` artifacts of the project | > | `todo` | `TodoWrite` for in-session tracking; durable state stays in `.claude/plans/` | > | "load `skill-x`" | The `Skill` tool (`aldc:<skill-name>`) or read `${CLAUDE_PROJECT_DIR}/.claude/skills/<skill-name>/SKILL.md` | > | `.github/instructions/*.instructions.md` (`applyTo`) | `${CLAUDE_PROJECT_DIR}/.claude/rules/*.md` (`paths:`); `/aldc:al-initialize` copies them to the project's `.claude/rules/` for auto-apply in the main session; inject inline for subagents exactly as the contract says | > | `.github/skills/`, `.github/plans/…`, `docs/templates/` | `${CLAUDE_PROJECT_DIR}/.claude/skills/`, `.claude/plans/…` (project-owned, `aldc.yaml -> plans.root`), `${CLAUDE_PROJECT_DIR}/claude-plugin/docs/templates/`; already rewritten below | > | `python …` runtime helpers, `--aldc-root` | Paths already point at `${CLAUDE_PLUGIN_ROOT}`; use `python` or `python3`, whichever exists (stdlib only) | > | `aldc.yaml` | `${CLAUDE_PROJECT_DIR}/aldc.yaml` when the project has one, otherwise `${CLAUDE_PROJECT_DIR}/claude-plugin/aldc.yaml` | > > Read `${CLAUDE_PROJECT_DIR}/claude-plugin/docs/claude-al-tooling.md` for this surface’s LSP/MCP bindings, then `${CLAUDE_PROJECT_DIR}/.claude/skills/skill-migrate/references/cli-al-tools.md` for the shared role/evidence contract. The Claude guide supersedes older capability-availability examples, never role responsibilities or human gates. > The C

Read more
Ships withaldc-al-development-collection

Skills-based, spec-driven, TDD-orchestrated development framework for Microsoft Dynamics 365 Business Central. Engineering systems, visibly reasoned.

Get the whole plugin