mirror of
https://github.com/microsoft/BCQuality.git
synced 2026-10-05 06:36:55 +01:00
* Document standalone review runner contract Keep model selection and scheduling outside BCQuality while allowing orchestrators to run isolated review leaves concurrently with deterministic rollup semantics. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * Support complete app folder reviews Define folder-path as a current-state review scope and accept it across the standalone adapter, broad coordinator, and every AL review leaf. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * Add walk-up app review quick start Put the complete app-folder installation and prompt flow directly in the README so partners can discover the standalone experience without reading integration details first. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * Organize conceptual guides under docs Move architecture and standalone runner documentation out of the repository root, add a documentation index, and update all inbound links. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Jesper Schulz-Wedde <jesper.schulzwedde@microsoft.com> Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
71 lines
4.1 KiB
Markdown
71 lines
4.1 KiB
Markdown
---
|
|
name: al-code-review
|
|
description: 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.
|
|
---
|
|
|
|
# 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
|
|
|
|
1. 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.
|
|
2. 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.
|
|
3. 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.
|
|
4. 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.
|
|
5. 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.
|