Skip to content

ALDC Changelog

[5.1.1] - 2026-10-20

Changed — Claude Code surface

  • agent-brief now also hands BCQuality articles to the design roles (al-architect, al-spec-agent, al-planning-subagent) when they run as subagents: up to 10 articles matched against the project and the brief, to consult before deciding, cite next to each decision they shape and list under "BCQuality references". No gate: design roles record no disposition per article. Before, only reviewers received the selection, and design subagents read articles by hand.
  • The BCQuality selection (reviewers and design roles) honours the project opt-out: with external.bcquality.enabled: false in aldc.yaml nothing is discovered, scanned or added to the brief.
  • When the BCQuality plugin is not installed, the session-start warning gives both install commands (claude plugin marketplace add https://github.com/microsoft/BCQuality.git, then claude plugin install bcquality@bcquality) and Claude offers to run them in its first reply; it installs only if the user agrees.

[5.1.0] - 2026-10-19

Changed — Claude Code surface

  • claude-plugin/ is now the maintained aldc-claude edition (marked by claude-plugin/SURFACE.md) instead of being regenerated from the Copilot contracts. sync:claude leaves it untouched; --check verifies its payload lock (scripts/relock-claude-surface.js), so an edit without relock still fails. Copilot CLI, Codex and the VS Code foundation are unchanged and still generated.
  • Autonomy modes: aldc.yaml → autonomy.gates: human | pre-approved (or ALDC_GATES). Human gates become decisions recorded in decisions.md; hard stops still stop (blocked.md); commits only with autonomy.commit: true.
  • Real delegation: /aldc:conduct must delegate research, implementation and review to foreground subagents; /aldc:review and /aldc:audit run as read-only subagents. The Conductor inherits the session model and writes a Mini-design instead of requiring the Architect for every task.
  • New hooks: agent-brief (foreground subagents, full AL rules, autonomy mode, BCQuality article selection), flow-scout (inspect a standard publisher before subscribing), send-guard (no asynchronous SendMessage while a plan is open), artifact-gate (complete review reports, commented event subscribers) and stop-guard (no stop with an unfinished plan in pre-approved mode).
  • New rule al-security and mandatory review.security (5 checks); BCQuality "apply or justify" (review.bcquality.articles, selection-completed); agent SDK completeness checklist (review.agent-sdk); Standard Flow in planning; honest final report (Verification, Not verified, Decisions taken without a human, Open risks).
  • Optional test execution on a real Business Central sandbox: aldc.yaml → testing.runner (or ALDC_TEST_RUNNER); a failing test is a failed phase.
  • BCQuality plugin mode is the default for the Claude surface.
  • MCP servers and LSP bindings are unchanged.

Verified

  • Hook tests: node --test scripts/test-claude-surface.js (15 tests).
  • Process checks (16 yes/no checks over the session trace and plan artifacts) on real runs: small tasks 16/16 twice, human mode stops at the plan, a run with tests executed on a BC sandbox (20/20 passed) and a 6-phase, 2-hour run with no process cuts.

[5.0.3] - 2026-10-07

Fixed

  • Advance the package, canonical plugin, generated distributions and root marketplace catalogs to 5.0.3 so installed plugins can detect this update.
  • Architect and Spec Agent consult BCQuality through al-knowledge, including inline instruction execution on hosts without a skill-invocation tool. Manual fallback records the affected domain, reason and actual corpus.
  • Design guidance requires complete article bodies, retrieval continuations and actual consultation evidence; skipped domains cannot count as consulted.
  • Architect maps pages, wizards and cues to UI knowledge and validations to error handling; Spec Agent covers both pages and page extensions. Knowledge selection and criteria sidecars are explicit in its documentation-only write scope.
  • Regenerate the VS Code Foundation, Copilot CLI, Claude Code/plugin workspace and Codex distributions from the shared contracts without widening tool grants.
  • Normalize Windows line endings before rewriting generated surface configuration, so Codex keeps its declared plans/audit roots when regenerated on Windows.
  • Make global test fixtures portable on Windows: discover a working Python, exercise the PowerShell installer, escape YAML paths, use directory junctions for link-protection checks and normalize CRLF before creating CRLF fixtures. Codex tests read UTF-8 explicitly; surface-isolation tests use npm's JS entrypoint. Doctor fixtures use platform paths and a Windows case alias; the genuine symlink traversal check runs in Linux CI when Windows lacks symlink privileges.

The GitHub release includes the toolkit npm archive for local installation. Publication to the npm registry and VS Code Marketplace is separate. Existing project copies still require a reviewed toolkit update. The customer host cookbook remains a live acceptance test, not a result claimed by the packaging checks.

[5.0.2] - 2026-10-06

Fixed

  • Select Claude Sonnet 5.5 (copilot) in the 12 base agent templates and five explicitly modelled prompts, including Foundation copies. Chat no longer relies solely on installer projection for these model selections.
  • Recognise unmodified receipt-free 5.0.0 source installations during updates; preserve customized files as visible collisions.
  • Validate raw template models and real legacy upgrades. Terminal model choices remain unchanged. Existing projects still require a reviewed toolkit update.

[5.0.1] - 2026-10-05

Changed

  • Copilot Chat's installer projection selects Claude Sonnet 5.5 (copilot) for all 12 agents and five prompts with explicit models in BC28 and BC29-native. Model-less prompts inherit the selected agent; explicit handoff model overrides follow the same policy. Canonical shared agents and terminal model selections are unchanged.
  • Chat AL tooling guidance distinguishes AL LSP, official AL MCP and terminal providers; grants remain role-scoped and build/publication human gates remain.
  • Initialize can prepare an existing App/Test on the actual executing AL MCP connection without running full setup. Registration and retry are bounded; a parent connection does not establish readiness for a child agent.
  • Installation, profile switching and rollback retain the consumer's existing .vscode/mcp.json. The extension packages the Chat projector and guide from matching clean canonical/extension inputs.

Tool availability and model execution require the host's actual capabilities. Architect/Spec's BCQuality context path remains direct corpus reading; automatic al-knowledge integration is not included in this release.

Fixed

  • The al-symbols-mcp server never started, in any host. Every distribution launched it as npx -y @nicholasglazer/al-symbols-mcp, a package that does not exist in the npm registry: hosts reported CONNECTION_CLOSED on every session, so the AL symbol tools the agents declare were never actually reachable. The server keeps its name, so agent prose and tool allowlists are unchanged; only the package changes, to al-mcp-server@2.5.0 — the published package of StefanMaron/AL-Dependency-MCP-Server, which is the project this repository's own README has linked all along. Affected both the Claude Code plugin and the Copilot CLI distribution.

  • microsoft-docs was broken in this repository's development config. The distributed manifests already used the official learn.microsoft.com/api/mcp endpoint; only the root .mcp.json, used by contributors working on ALDC, still pointed at another nonexistent package. Users were not affected.

  • The installer could not verify itself from a real installation. Claude Code writes an .in_use lock into the installed plugin cache while a session holds the plugin, and verify() rejected any file absent from provenance.json. So init.js --verify — and the dry run — failed with Unexpected file in plugin payload precisely where the installer's own commands run. .in_use is now treated as derived, like __pycache__.

  • Templates named a plans root that two surfaces do not use. Templates are copied byte for byte to every surface, by design: path rewriting belongs in the agent bodies that reference them. Nine of them still wrote .github/plans/…, which is right for Copilot and the VS Code extension and wrong for Claude Code (.claude/plans) and Codex (.agents/plans). The sharpest case was the BCQuality design guidance: the Architect was told to write bcq-constraints.md under its own root and, in the same step, bcq-selection.json under .github/plans — so the Spec Agent, reading plans.root, would not find the selection. Templates now name the root by its key, plans.root, and check-conformance.js rejects a template that fixes one again.

  • external.bcquality.consumedBy omitted the Developer Reviewer, which runs the review path like the three agents listed. The list is informational; nothing reads it to decide behaviour.

Added

  • A packaging test that asks the registry whether declared packages exist. scripts/test-mcp-packages.js runs in npm test and npm run validate. It checks shape offline (a distributed manifest must pin an exact version, never a floating dist-tag) and then resolves every npx-launched package against npm. When the registry is unreachable it says so and names each unverified package rather than passing quietly. Nothing before this asked whether a shipped package was real, which is why the defect above survived to release.

[5.0.0] - 2026-09-18

Supersedes the unreleased 4.3.1 and 4.4.0: neither was ever tagged or published, the Marketplace still carries 4.2.0, and this release contains every commit of both. One delivery, one changelog entry, one tag. The major is for the plugin layout and the per-surface artifact roots below; everything else is additive.

Breaking Changes

  • The Claude Code plugin is generated, and its layout changed. commands/ no longer exists: the ten slash commands are skills with disable-model-invocation, and /aldc:al-agent-instructions-create is now /aldc:al-agent-instructions. rules-templates/ is now rules/. Agent frontmatter no longer declares maxTurns. Re-run /aldc:al-initialize after upgrading.
  • Requirement artifacts follow the surface. A project worked from Claude Code keeps its plans under .claude/plans, and one worked from Codex under .agents/plans, with audits alongside them. Copilot and the VS Code extension keep .github/plans. Every consumer now reads plans.root and audits.root from aldc.yaml, so a project that wants the old location sets it there and nothing else changes. Move the folder or declare the root; the shipped aldc.yaml is seeded and never overwrites a project's own.
  • The VS Code extension's Viewer reads .github/plans, so it does not yet see plans written from Claude Code or Codex. That is tracked in the extension repository and is not addressed here.

Added

  • VS Code extension 4.3.0 (distributed separately as the VSIX): the Project Manager panel and Explorer view to install, update, verify, restore and run Doctor with previews and confirmations; the ALDC Visor tree of plan artifacts per requirement; the AL Collection: Run Doctor command rendering the packaged Doctor report.
  • Bilingual installation journey with a surface selector for VS Code, Copilot CLI, Claude Code and Codex, copyable steps and a bounded first request. Published extension and source routes are explicitly separated.

  • Structured installer output for hosts: install, status, verify-install and rollback accept --json. Previews carry a plan digest and --expect-plan refuses to apply a plan that changed after the preview. Each file reports whether a replace overwrites a local customization. Human output is unchanged.

  • Upgrades from a release that recorded no receipt no longer ask about the toolkit's own untouched files. known-installations.json records what previous releases wrote at each path, generated by installing each release from its tag (npm run build:known-hashes), so the installer recognises its own content and reserves the collision question for files that were really edited. Upgrading an untouched 4.2.0 installation with two customized files goes from 35 collisions to
  • The manifest is consulted only when no receipt exists, never for seeded files, and every replacement is still previewed, backed up and reversible.
  • solution anchor in aldc.yaml: workspaceFile and roots.application / roots.test declare the multi-root layout of the AL solution. The installer detects the folders that exist (AL-Go appFolders / testFolders first, then discovery) and writes them there; it never creates a folder.
  • aldc solution reports the declared layout against the folders on disk and, with --write, rewrites solution.roots in place: the two values change and every comment and every other setting in aldc.yaml survives, with the previous file kept under .aldc-install. A root that still holds its app.json is never overridden — with several apps only the developer knows which one the solution means — and a root that lost its manifest is reported, never cleared. Detection used to run only at installation, so a customized aldc.yaml froze the layout it was installed with.
  • aldc.code-workspace is generated from that layout at installation instead of copied: root, application, tests, and the BCQuality root when the configured mode is external-multiroot. It stays a seeded file, so it is written once and then belongs to the developer.
  • The installation marker records the installed version, and status reports it as installedVersion so a host can compare it with what it packages. Markers written before this release report null and are never repaired.
  • tools/bcquality/config.js reports toolkitRoot and solution alongside the BCQuality configuration, so every Node consumer reads one source of truth. Doctor still receives --toolkit explicitly, now resolved by its caller from that value.
  • Doctor reports manifests that declare different BC application targets (for example an App on BC28 next to a Test on BC27) as an advisory configuration problem. The exit code is unchanged; the compiler adjudicates.
  • Read-only installation inspection (inspect) reporting absent, invalid, matching and drifted receipts and whether the last transaction can be restored. Receipts whose file map is not an object or contains an unsafe path are reported as invalid, never thrown or planned against. status and verify-install report the target recorded by the receipt (receiptTarget) and refuse to verify another requested --target-dir (targetMismatch).
  • Developer Reviewer for independent direct-increment review, with a shared review pipeline, one bounded correction round and human approval.

  • Explicit BCQuality plugin mode alongside external multiroot, with shared provider identity, stage evidence and native fallback rules across review agents.

  • Doctor configuration snapshots and BCQuality observations distinguish discovery, loading, execution and best-effort knowledge-index generation.

  • Architecture-led specification decomposition with stable unit ownership, separate authoring/implementation dependencies and joint review of current revisions.

  • Dedicated Spec Agent and a shared specification entrypoint, with human approval before implementation and contracts proportionate to requirement complexity.

  • Read-only Doctor diagnostics for specification, App compilation, Test compilation and test execution, with configuration and runtime observations reported separately.
  • Opt-in BC29-native profile for Copilot Chat, with role-specific AL tool permissions and AL18 guidance. BC28 remains the default for new installations.
  • Canonical adapters for Claude Code, Copilot CLI and Codex, with generated content integrity checks and project initialization.
  • Installation previews, collision reporting, verification receipts and recoverable updates that preserve existing project memory and protect subsequent edits.
  • BCQuality knowledge index. The multiroot installers build it through PowerShell 7 right after the pinned checkout and record a receipt naming the corpus revision it was built over; aldc bcq-index [--build] reports that state and builds it on request, and aldc status shows it with the command to fix it. This earns a new index state, prebuilt: weaker than generated, because it asserts a prior authorized build rather than one in this invocation, and claimable only with the receipt's generator, index path, SHA-256 and corpus revision. Missing PowerShell 7 is never fatal — reviewers fall back to path-based discovery.

  • BCQuality in the design phases. Until now the knowledge layer was reachable only during review, so an architect could contradict a house rule and learn about it from a finding two phases later, and a spec could declare acceptance criteria unrelated to the knowledge the reviewer would judge against. Architect and Spec Agent now read the corpus as context.

  • docs/templates/bcquality-design-guidance.md is the single source of the read path: where the corpus lives, which frontmatter filters decide inclusion, layer precedence (custom over community over microsoft, recording the displaced path), how to select without loading the index, the selection file to write and the evidence line to carry. Both roles link it; neither copies it. Every step is a directory listing or a file read, so it works on hosts where a role cannot execute anything, and it needs no PowerShell, no Node and no index.
  • The architect writes {req}.bcq-constraints.md — house rules first and uncapped, then platform constraints by design area — and {req}.bcq-selection.json. Deviating from a house rule is allowed and recorded with its reason in the architecture decisions; it reaches the human gate that already exists.
  • The spec declares, under section 11, a Review criteria (BCQuality) table: one row per object with the cited knowledge path, what the reviewer will check and the layer, mirrored to {req}.bcq-criteria.json. The table states what will be reviewed; it does not judge the spec.
  • review.criteria in the review report: each declared criterion comes back met, unmet or not evaluated, with house rules counted separately, and the Conductor renders the delta in the Checkpoint card and the phase-complete document.

  • One author for every surface. claude-plugin/ was the only place in the repository with hand-written primitives, and .claude/, the Copilot CLI plugin and the Codex plugin are generated from it — so all three inherited its drift from the canonical trees that ship in the VSIX. The generator now emits every file of all three packages, and the line that adopted anything it did not produce is gone: delete a package, regenerate, and it returns byte-identical.

  • Each adapted file carries the path and SHA-256 of its canonical source, plus a binding table translating every Copilot surface to its host equivalent. The adapter may change four things — frontmatter, paths, tool vocabulary and that preamble — and nothing else.
  • Role entry skills for the nine user-invocable roles (/aldc:architect, :spec, :conduct, :develop, :review, :triage, :presales, :agent-builder, :audit). The three TDD subagents are user-invocable: false in the canonical and get none; only the Conductor launches them.
  • al-agent-build-instructions exists as a workflow on Claude Code for the first time, and the twelve Codex role profiles declare sandbox_mode, derived from the tool grant each canonical contract already makes.

Changed

  • aldc.code-workspace is now a seeded file: the installer creates it when it is missing and never replaces it afterwards, not even with --force. The multi-root workspace definition belongs to the developer, like project memory. Previously a profile switch or a replace policy overwrote a customized workspace file.

  • Aligned canonical package, plugin and catalog versions to 4.3.0 for the upcoming release; previously built artifacts remain unchanged.

  • Specifications capture technical contracts and acceptance criteria without anticipating AL implementation bodies at MEDIUM complexity.

  • Agent routing preserves approved architecture and passes approved specifications to Conductor or Developer according to complexity.
  • Instruction and domain-guide references are retained for continuation from the current artifacts; native capabilities can satisfy relevant tool requirements.
  • The configured BCQuality skill is al-code-review at 0.2.0. The previous default named a skill upstream had removed, so plugin mode looked for something that no longer existed, found nothing, reported nothing and silently reviewed with native rules only. An installation exposing the pre-0.2.0 name is now an incompatible provider, never a renamed match.
  • pilotSkills is empty, which means the full corpus. It previously pinned the run to three review leaves, so fifteen never executed; Entry's own relevance decides now, and a leaf whose domain the diff does not touch returns not-applicable cheaply. Entry can also dispatch more than one first-level skill, so every returned report is retained instead of only the first.
  • Review findings gate on evidence, not severity alone. A finding gates when it is blocker/major and either knowledge-backed at confidence: high or a native check with an applicable rule; native checks gate on severity alone, because their capped confidence records the absence of a citable article, not doubt. Agent findings never gate. Only gating findings and non-gating findings carrying suggested-code become implementer work; the rest are recorded as recommendations. Conductor recomputes this from findings[], since summary.counts cannot express it.
  • The evidence validator checks what it previously only carried: severity and confidence against their vocabularies, a cited finding's id against references[0].path, and the advisory caps on native:/agent: findings.

  • The review phase closes that loop without gaining authority over it. Reporting the criteria is bookkeeping over findings that already exist: it adds no finding, changes no severity and never alters the verdict, which still depends only on findings[].

  • validate_evidence.py checks the two things a criteria block can get wrong: the buckets must add up to what was declared, and an unmet criterion must be cited by a finding that actually exists — matched across sub-results, where provider findings live.

  • Four of the eight always-on AL rules had been widened to every .al file in the Claude Code plugin, applying Codeunit- and Query-scoped guidance where it does not hold. Each generated rule now declares exactly the globs its canonical applyTo declares. al-agent-toolkit had also lost its description and its four specific globs.

  • The human gate that Copilot's handoffs: button supplied has no equivalent in Claude Code or Codex, where an agent delegates through a tool with no click. It is carried as an adapter concern — a row in the mapping table, a line in the Codex host preface — rather than as canonical text that would restate for Copilot what its own host already enforces.
  • Six agent descriptions gained the sentence that says when to use them, and al-developer's was corrected: it claimed the agent builds via the terminal and validates with tests, which stopped being true.

Removed

  • skill-manifest, the end-of-pipeline handoff contract for the sibling collections CIRCE (Copilot Studio) and DELFOS (Power BI). It shipped in the VS Code and npm distributions and was absent from the Claude Code, Copilot CLI and Codex plugins; it is now withdrawn from every surface, along with its declaration in aldc.yaml and its row in the Core Spec. Projects that already installed it keep the files on disk; the installer stops writing them.

Fixed

  • The BCQuality index was invisible from every package. aldc status reported it unobserved whatever its real state and aldc bcq-index could not load at all, because the installer required ../tools/bcquality/index-state literally — a path that exists only in this repository. Packaged, install.js sits at the package root with the toolkit trees wherever ALDC_PACKAGE_DIR points, which is how the payload it copies was already resolved; the index now resolves the same way. The gap was that nothing ever ran the installer from that shape, so a new test does, and a require written against __dirname now fails there instead of in someone's editor.

  • Requirement-set validation never ran. tools/aldc-validate read only the flat plans root, while every agent and workflow writes .github/plans/{req_name}/{req_name}.*.md, so incompleteRequirementSets reported "no requirement sets found" on every correctly laid out project and a requirement missing its test-plan passed clean. The validator now reads each requirement folder, treats the folder name as the requirement, accepts the Architect-assigned unit specs of a decomposed requirement in place of {req}.spec.md, skips the archive folder, and reports contracts left in the plans root instead of ignoring them. The specification said flat where the contracts say folder-per-requirement; it now says folder-per-requirement, and states that the plans root is host-neutral (configurable under plans.root, the same location for every surface) unlike toolkitRoot.

  • The installer and Doctor now read the same solution. The installer walks for app.json (at most three levels, pruning hidden folders, dependencies, build output and symlinks) instead of probing src, app, test and tests, and both treat a folder ending in .Test or .Tests as the test project. AL-Go names the app folder after the app, so the usual layout — MiExtension next to MiExtension.Test — previously left solution.roots empty and the generated workspace without its project folders, while Doctor classified the suite as a second app.

  • Doctor reads the solution, not just the folder it was pointed at. A manifest was classified by the path segments below the scanned root, so scanning the test folder itself left no segment to judge by and its suite was reported as an application; the scanned folder's own name now answers for a manifest at the root. Configuration is read per project as well: the .vscode of every discovered project, not only the root's, which is where mcp.json, settings.json, tasks.json and launch.json actually live in an AL-Go layout. Pointed at app/ or test/ Doctor reported no plans folder and no MCP servers while both existed one level up or down — a solution read as three unrelated projects.

  • Review coverage now distinguishes provider execution from index generation and incomplete audits from zero-finding completed reviews. Dredd remains advisory and supports explicit file scope and chat-only reports when writes are forbidden.

  • Profile projection with CRLF files, packaged template references and cross-host role links.

  • Incomplete payloads, installation recovery edge cases and inconsistent role counts.

  • Package provenance no longer lists derived build artifacts as sources. Python writes __pycache__ the first time a shipped script is imported, so it exists on a developer's disk and in a real installation but never in a clean checkout; listing one made the Copilot CLI, Claude and Codex sync --check runs drift on CI while passing locally, and would make a user's own installation look tampered with. Shipped sources are still hash-checked individually.

Compatibility

  • Node.js 20+ for command-line installation; Python 3.9+ for Doctor.
  • BC29-native selection does not upgrade BC, AL Language or project manifests.
  • Extension and registry releases are separate; canonical package, plugin and catalog metadata declare 4.3.0. Earlier VSIX files retain their original version.
  • Persisted BCQuality evidence written before this release may now fail the bcquality-evidence workflow: reports carrying an invalid severity, a cited finding whose id is not its knowledge path, or an agent: finding at blocker/major were always outside the contract and were simply not checked. Re-run the review to regenerate the report; the reports themselves are evidence and are not edited by hand.
  • aldc bcq-index exits 1 when a usable index is missing on a machine that could build one, so a script can branch on it. It exits 0 when there is nothing to do, including on a machine without PowerShell 7, where no run could build one.

[4.2.0] - 2026-06-12

Fixed

  • Fase 0 conformidad (PR #74): contadores contradictorios en CLAUDE.md, 3 enlaces rotos en README, primitivos sin declarar en aldc.yaml (al-triage, skill-manifest, skill-contribution-assistant, al-agent.build-instructions), y fichero packages/foundation/skills/skill-manifest/SKILL.md truncado (afectaba al empaquetado del VSIX).
  • Contadores del banner de install.js alineados con la realidad (10 agentes / 16 skills / 11 workflows / 9 instructions).

Added

  • ARCHITECTURE.md — mapa fuente ↔ generado ↔ canal de distribución.
  • scripts/check-conformance.js — verificador de conformidad, integrado en CI.
  • scripts/sync-foundation.js — sincronización raíz → packages/foundation (fuente del VSIX), con modo --check en CI.
  • Nota de contexto del ecosistema (CIRCE → Copilot Studio, DELFOS → Power BI) en skill-manifest.

Removed

  • packages/foundation/skills/skill-manifest/samples/ (duplicado de examples/, sin referencias).

[4.1.1 – 4.1.8]

  • Releases solo de la extensión VS Code en el Marketplace (sin cambios de framework en este repositorio).

[4.1.0] - 2026-06-05

Changed

  • Trimmed always-on entrypoint (~31% lighter) — consuming projects receive the leaner Copilot entrypoint on install; less context injected on every request.
  • Narrow instruction globs (applyTo by object type) — only rules for the file being edited are loaded.
  • Conductor context passing — passes curated context excerpts to subagents instead of whole files.
  • Condensed primitives (agents, instructions, skills) — behavior and orchestration preserved.
  • BCQuality task-context built once and passed inline — no re-derivation per call.

Added

  • BCQuality — optional external, citable BC knowledge layer for reviews & audits: a pinned fork consumed externally (multi-root), external.bcquality configuration, install scripts (tools/bcquality/), a multi-root aldc.code-workspace, evidence validation (pin coherence + citation resolvability) wired into CI, and a full guide (docs/bcquality.md). Graceful native A–G fallback when absent — never blocks.
  • @AL Triage — reactive diagnosis agent (read-only on code).
  • @Dredd — independent static auditor (read-only on code; BCQuality-cited advisory verdict).
  • skill-contribution-assistant — guided contribution workflow.
  • Restored full architecture and spec templates with section-complete authoring guidance.

[4.0.0] - 2026-05-30

Token Efficiency & Foundation Restructure

Breaking Changes:

  • Primitives reorganized into a packages/foundation/ structure (agents, instructions, prompts, skills) alongside the existing root layout
  • Agent, instruction, and skill content condensed to reduce token consumption — wording and structure changed, behavior preserved

Added:

  • packages/foundation/ package layout for framework primitives
  • Architecture Decision Records (docs/decisions/): ADR-0001 (Phase 1 restructure), ADR-0002 (distribution lifecycle), ADR-0003 (package structure)
  • al-agent.build-instructions prompt
  • skill-manifest SKILL entry and skill-agent-task-patterns usage examples

Changed:

  • Agents, instructions, and skills optimized for lower token footprint while preserving behavior and orchestration
  • Documentation templates (spec, architecture, delivery, technical-spec, test-plan) condensed for token efficiency
  • Prompts revised for conciseness and clearer GitHub Copilot alignment
  • All instruction files and templates translated to English

[3.2.3] - 2026-04-24

Updated

  • Agents updated with improved model references and refined LLM prompting strategies
  • Prompts revised for clarity and better GitHub Copilot alignment
  • Tools and workflows enhanced with latest framework improvements
  • New skill-manifest skill: Extension Manifest Generator for BC extensions
  • Claude plugin updated: commands, rules, and skills aligned with framework v3.2.3

[3.2.0] - 2026-03-06

Fixed

  • Corrected user-invocable frontmatter across all agents
  • Internal subagents now declare disable-model-invocation: true
  • Skill paths aligned to skills/ convention in all config and documentation
  • Counters and version references aligned across the framework

[3.1.0] - 2026-03-05

BC Agent Builder

Optional agent and skills for Business Central Agent development with the AI Development Toolkit and Agent SDK.

  • @AL Agent Builder agent — Designer (no-code) and SDK (pro-code) paths, 7-phase workflow with HITL gates
  • skill-agent-instructions — Responsibilities-Guidelines-Instructions authoring framework
  • skill-agent-task-patterns — 8 integration patterns (Public API, Page Action, Business Event, Attachment, Multi-Turn, Lifecycle, Session Detection, Session Event Binding)
  • skill-agent-toolkit — Agent SDK reference (core interfaces, setup, troubleshooting, quality checklist)
  • Workflows: al-agent.create, al-agent.task, al-agent.instructions, al-agent.test
  • Tools: scaffold_agent.py (project scaffolder), validate_agent_config.sh (SDK validator)

[1.1.0] - 2026-03-01

Added

  • Skills system — 11 composable knowledge modules loaded on demand by agents
  • 7 required: api, copilot, debug, performance, events, permissions, testing
  • 4 recommended: migrate, pages, translate, estimation
  • Per-requirement contracts — {req_name}.spec.md, .architecture.md, .test-plan.md in .github/plans/
  • Global memory — cross-session memory.md for project-wide decisions and context
  • Skill template — 7th immutable template for creating new skills

Changed

  • Agent model: 11 agents → 4 public + 3 internal subagents
  • Public: al-architect, al-conductor, al-developer, al-presales
  • Internal: AL Planning Subagent, AL Implementation Subagent, AL Code Review Subagent
  • Workflow model: 18 prompts → 6 workflows (spec.create, build, pr-prepare, memory.create, context.create, initialize)
  • Specialized agent capabilities (debug, events, API, etc.) absorbed into composable skills

Removed

  • Public agents: al-debugger, al-tester, al-api, al-copilot (capabilities preserved as skills)
  • 12 single-purpose prompts (replaced by skill system)

[1.0.0] - 2026-02-22

  • Initial release — ALDC Core backbone
  • 4 canonical contracts, 5 agents, 5 workflows, 9 instructions, 6 templates
  • JSON schema, validator, CI action
  • Governance model (founder-led, RFC process)