AL code review
This is BCQuality's host-native adapter for standalone plugin installations. It
is not a BCQuality action skill and contains no review or routing policy. Its
only responsibility is to translate the caller's request into an Entry task
context and execute the resulting dispatch.
Execute
- Resolve
PLUGIN_ROOT to the directory containing this plugin's root
plugin.json. This file is
PLUGIN_ROOT/skills/al-code-review/SKILL.md; when the host does not expose
the plugin root, resolve it two levels above this file.
- Build the
task-context required by
PLUGIN_ROOT/skills/entry.md:
- Copy the caller's actual request verbatim into
goal; do not replace a
focused request such as "review performance" with a generic full-review
goal.
- Set
inputs-available to the inputs actually available to the review:
folder-path for an app or source folder, pr-diff for changes, or
file-path for one file. Pass the caller's actual path with the selected
input type; for a whole-app request in the current working directory, use
that directory as the folder-path.
- Set
technologies: [al] when the input is known to be AL.
- Pass
bc-version, countries, and application-area only when supplied
or reliably determined.
- If
BCQUALITY_ENABLED_LAYERS is set, split its comma-separated value and
pass the trimmed, non-empty entries as enabled-layers; otherwise omit the
field and let Entry apply its default.
- If
BCQUALITY_DISABLED_SKILLS is set, split its comma-separated value and
pass the trimmed, non-empty entries as disabled-skills; otherwise omit
the field.
- Read and execute
PLUGIN_ROOT/skills/entry.md exactly as written, including
its Preparation step. Entry is authoritative for index freshness, routing,
defaults, and failure behavior; this adapter must not duplicate or weaken
those rules. Entry is written for a checkout whose root is the current
directory, so resolve every repo-relative path it names against
PLUGIN_ROOT rather than the caller's working directory, which is the
user's own project. In particular, run Preparation's index build as
pwsh PLUGIN_ROOT/tools/Build-KnowledgeIndex.ps1: the generator resolves
its own root and writes PLUGIN_ROOT/knowledge-index.json, which is not
shipped and is therefore absent on a fresh install. If pwsh is
unavailable or the build fails, continue — READ falls back to path-based
discovery — but do not treat a failed build as a failed review.
- Follow Entry's How the agent uses the dispatch instructions. Invoke only
the returned action skills, pass each dispatch entry's exact input subset,
and read
PLUGIN_ROOT/skills/read.md and PLUGIN_ROOT/skills/do.md on
demand. When a dispatched super-skill requests isolated leaf execution and
the host supports child contexts, use them.
- Return each dispatched action skill's findings report unchanged. If Entry
returns
no-match or failed, return its dispatch record unchanged.
The internal microsoft/skills/review/al-code-review.md action skill remains
the canonical coordinator for a broad AL review. Entry decides whether that
super-skill or a narrower domain skill applies; this host adapter never chooses
between them.
Layer selection is not a deny mechanism
A plugin install ships the whole BCQuality tree, so enabled-layers here can
only narrow discovery: the files of a layer left out of the list still exist
on disk. This differs from the clone model Entry's Preparation step describes,
where a consumer prunes its checkout to policy before the agent runs and the
index is rebuilt over the pruned tree. Treat BCQUALITY_ENABLED_LAYERS as a
selection filter, never as a security boundary. A host that needs a genuine
deny mechanism must prune the installed tree itself.
1---2name: al-code-review3description: Review Business Central AL code using BCQuality's curated rules. Use for an AL app folder, pull request, working-tree diff, branch, or individual AL file when BCQuality is installed as a standalone plugin.4---56# AL code review78This is BCQuality's host-native adapter for standalone plugin installations. It9is not a BCQuality action skill and contains no review or routing policy. Its10only responsibility is to translate the caller's request into an Entry task11context and execute the resulting dispatch.1213## Execute14151. Resolve `PLUGIN_ROOT` to the directory containing this plugin's root16 `plugin.json`. This file is17 `PLUGIN_ROOT/skills/al-code-review/SKILL.md`; when the host does not expose18 the plugin root, resolve it two levels above this file.192. Build the `task-context` required by20 `PLUGIN_ROOT/skills/entry.md`:21 - Copy the caller's actual request verbatim into `goal`; do not replace a22 focused request such as "review performance" with a generic full-review23 goal.24 - Set `inputs-available` to the inputs actually available to the review:25 `folder-path` for an app or source folder, `pr-diff` for changes, or26 `file-path` for one file. Pass the caller's actual path with the selected27 input type; for a whole-app request in the current working directory, use28 that directory as the `folder-path`.29 - Set `technologies: [al]` when the input is known to be AL.30 - Pass `bc-version`, `countries`, and `application-area` only when supplied31 or reliably determined.32 - If `BCQUALITY_ENABLED_LAYERS` is set, split its comma-separated value and33 pass the trimmed, non-empty entries as `enabled-layers`; otherwise omit the34 field and let Entry apply its default.35 - If `BCQUALITY_DISABLED_SKILLS` is set, split its comma-separated value and36 pass the trimmed, non-empty entries as `disabled-skills`; otherwise omit37 the field.383. Read and execute `PLUGIN_ROOT/skills/entry.md` exactly as written, including39 its Preparation step. Entry is authoritative for index freshness, routing,40 defaults, and failure behavior; this adapter must not duplicate or weaken41 those rules. Entry is written for a checkout whose root is the current42 directory, so resolve every repo-relative path it names against43 `PLUGIN_ROOT` rather than the caller's working directory, which is the44 user's own project. In particular, run Preparation's index build as45 `pwsh PLUGIN_ROOT/tools/Build-KnowledgeIndex.ps1`: the generator resolves46 its own root and writes `PLUGIN_ROOT/knowledge-index.json`, which is not47 shipped and is therefore absent on a fresh install. If `pwsh` is48 unavailable or the build fails, continue — READ falls back to path-based49 discovery — but do not treat a failed build as a failed review.504. Follow Entry's **How the agent uses the dispatch** instructions. Invoke only51 the returned action skills, pass each dispatch entry's exact input subset,52 and read `PLUGIN_ROOT/skills/read.md` and `PLUGIN_ROOT/skills/do.md` on53 demand. When a dispatched super-skill requests isolated leaf execution and54 the host supports child contexts, use them.555. Return each dispatched action skill's findings report unchanged. If Entry56 returns `no-match` or `failed`, return its dispatch record unchanged.5758The internal `microsoft/skills/review/al-code-review.md` action skill remains59the canonical coordinator for a broad AL review. Entry decides whether that60super-skill or a narrower domain skill applies; this host adapter never chooses61between them.6263## Layer selection is not a deny mechanism6465A plugin install ships the whole BCQuality tree, so `enabled-layers` here can66only narrow *discovery*: the files of a layer left out of the list still exist67on disk. This differs from the clone model Entry's Preparation step describes,68where a consumer prunes its checkout to policy before the agent runs and the69index is rebuilt over the pruned tree. Treat `BCQUALITY_ENABLED_LAYERS` as a70selection filter, never as a security boundary. A host that needs a genuine71deny mechanism must prune the installed tree itself.