Quality skills and knowledge that help AI tools make better Business Central development decisions: catch BC-specific defects, avoid misleading advice, and explain findings with references you can read.
BCQuality contains knowledge and reusable skills, not agents or a Business Central extension. Your host supplies the agent. You can install the content as a plugin, use it from another integration, or browse the knowledge directly.
| Use | Status | Start here |
|---|---|---|
| Review your AL code on demand with the Copilot CLI plugin | Available | Quick start |
| Review pull requests automatically in AL-Go for GitHub repositories | In progress in AL-Go for GitHub | AL-Go documentation once released |
| Apply BCQuality guidance to a development plan before coding | Preview in the plugin | Plan guidance |
Install the plugin and run your first review. You need GitHub Copilot CLI, installed and signed in, with an account and organization policy that allow its use. You do not need to clone BCQuality, build a runner, or deploy an app to Business Central.
Copilot CLI runs in any terminal, including the integrated terminal in VS Code. A plugin installed in Copilot CLI is not automatically available in the Copilot Chat panel.
-
Install the plugin:
copilot plugin install microsoft/BCQuality copilot plugin listThe list should include
bcquality. In a Copilot CLI session,/skills listshows its two skills:al-code-reviewand the previewal-plan-guidance. -
Start a new Copilot CLI session in your app folder, replacing the example path:
cd "C:\Repos\MyBusinessCentralApp" copilot -
Approve access only to a project you trust, then ask:
Use the installed al-code-review skill to review the complete Business Central app in this folder without changing my source files. Return the complete BCQuality findings report.
The folder should contain app.json and your AL source; it does not need
to be a Git repository. On macOS or Linux, use your app's local path instead.
Each selected review returns findings with a source location, severity, confidence, and the guidance behind them. For example, a performance finding might read:
Major · high confidence ·
src\CustomerExport.Codeunit.al, line 42The country filter is evaluated inside the customer loop, so rows that will be discarded are still read from the database. Apply the filter with
SetRangebefore callingFindSet.Guidance: Apply filters before iterating
This example is illustrative; your host may show the same information as text,
a table, or JSON. completed with no findings means nothing was flagged in
that review's scope; partial or failed is not a clean result. See
reading your results.
Next, try a focused request, such as reviewing performance only or reviewing your uncommitted changes. See common review requests.
PowerShell 7
(pwsh) is recommended for fast knowledge discovery. If it is unavailable,
the review can still discover knowledge by reading the folders.
| I want to... | Start here |
|---|---|
| Choose direct reading, a supplied skill, or my own agent | Ways to use BCQuality |
| Review a file, changes, a branch, or a particular concern | Using BCQuality |
| Resolve setup problems, incomplete reviews, or incorrect findings | Troubleshooting and support |
| Browse the available guidance | Knowledge by domain |
| Configure the plugin or use my organization's rules | Customizing BCQuality |
| Contribute knowledge or improve a rule | Your first contribution |
| Connect a host, agent, or CI integration | Minimal integration example |
All documentation and technical references.
Today's curated content covers technical AL code review and focused Supply Chain Management (SCM) and Finance functional domains. It augments the agent's judgment; it is not an exhaustive BC manual or a substitute for compilation, analyzers, tests, or human review. See coverage and limits for the available domains and the difference between a folder review and a comparison. Mechanical issues already enforced by the AL compiler or standard analyzers are intentionally left to those deterministic tools rather than duplicated here.
The SCM domain covers selected inventory, costing, reservation, tracking, and warehouse/posting workflows. The Finance domain covers selected journal posting, financial ledger, application, VAT, and posting-dimension workflows. Neither is exhaustive functional validation. Broader functional coverage such as Manufacturing, Jobs, and Service, and technologies such as PowerShell, pipelines, and Power Platform, remain valid future scope, not current coverage claims.
BCQuality can also apply its knowledge before code is written. The
plugin's al-plan-guidance skill takes an existing AL development plan and
returns the BCQuality constraints and validation considerations that apply to
it. It is read-only: it does not create or rewrite the plan, change your code,
or implement the change.
Save your plan as a file, start a new Copilot CLI session in your app folder, and ask:
Use the installed al-plan-guidance skill to enrich the plan in
plans\my-change.mdwith applicable BCQuality guidance, without changing the plan or my source files. Return the complete guidance report.
Give the plan and the report to your coding agent together. After
implementation, review the finished change with al-code-review.
This capability is a preview, and its contract may change based on pilot feedback. Integrations can also call it without the plugin; see the plan guidance example.
Knowledge articles cover one concern each. Skills tell an agent how to find and apply the relevant knowledge. Both live in three layers:
| Layer | Purpose |
|---|---|
| Microsoft | Microsoft-endorsed skills and their knowledge. |
| Community | Community-owned skills and their knowledge. |
| Custom | Organization-specific additions and overrides in your own fork. |
All three are enabled by default; Custom is empty upstream. You do not need to configure layers to get started.
You use BCQuality through capabilities: al-code-review reviews code,
and al-plan-guidance enriches a plan. Behind every capability, BCQuality's
Entry router prepares the knowledge index, applies your layer and skill
settings, and selects the skill that does the work. You never call Entry
yourself when using the plugin.
Integrations such as CI workflows can call Entry directly with a free-text
goal instead. Both paths use the same router, knowledge, and report contracts,
so a plugin review and an automated review apply the same rules. Review skills
return a findings-report; plan guidance returns a read-only
development-guidance-report. See
how agents consume BCQuality.
Update the installed plugin from your terminal, then start a new session:
copilot plugin update bcqualitycopilot plugin list shows the installed version. Release v1.8 carries
plugin version 1.8.0. Installing from the repository without a tag uses the
current main, which can include changes after or before the matching release.
For reproducible runs and organization forks, see updates and versions.
Knowledge belongs here when it prevents a BC-specific mistake an otherwise capable agent would make, including false-positive findings. BC facts belong in knowledge articles, not skill instructions. See the admission test and examples.
Partners are welcome to contribute to the layer that owns the domain, regardless of affiliation. Start with the contribution guide. To report a problem without authoring a rule, see support.