mirror of
https://github.com/microsoft/BCQuality.git
synced 2026-10-05 14:46:55 +01:00
Resolve the README scope conflict, align guidance validation with the 333-article corpus, and reject failed reports that carry unreliable knowledge constraints. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 638b66d2-9f06-4f60-8781-808709e1485c
183 lines
8.2 KiB
Markdown
183 lines
8.2 KiB
Markdown
# BC Quality - Don’t teach one agent. Teach the ecosystem. 🤝
|
||
|
||
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.
|
||
|
||
## Quick start
|
||
|
||
The walkthrough below uses **GitHub Copilot CLI in a terminal**, not the
|
||
Copilot Chat panel in VS Code. First
|
||
[install Copilot CLI and sign in](https://docs.github.com/en/copilot/get-started/cli-quickstart).
|
||
Your account and organization policy must allow its use. You do not need to
|
||
clone BCQuality, build a runner, or deploy an app to Business Central for this
|
||
source-review example.
|
||
|
||
### Standalone plugin installation
|
||
|
||
Run these commands in your terminal:
|
||
|
||
```powershell
|
||
copilot plugin install microsoft/BCQuality
|
||
copilot plugin list
|
||
```
|
||
|
||
The list should include `bcquality`. The plugin exposes the
|
||
[`al-code-review`](skills/al-code-review/SKILL.md) skill. Installation and skill
|
||
discovery are the general pattern; reviewing an app is one example of using it.
|
||
|
||
The adapter is intentionally not a second implementation:
|
||
|
||
```text
|
||
standalone host skill: skills/al-code-review/SKILL.md
|
||
-> routing contract: skills/entry.md
|
||
-> review coordinator: microsoft/skills/review/al-code-review.md
|
||
-> domain review leaves
|
||
```
|
||
|
||
Only the files under `skills/*/SKILL.md` follow the host's packaging format.
|
||
The remaining files are BCQuality's internal protocol and layered action
|
||
skills. Entry remains the single owner of routing and index preparation. This
|
||
separation keeps standalone installation available without duplicating policy
|
||
in the adapter.
|
||
|
||
### Example: Review a complete app folder
|
||
|
||
Start a **new** CLI session in your own app folder, replacing the example path:
|
||
|
||
```powershell
|
||
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.
|
||
|
||
The host adapter and internal action skill intentionally share a name: they
|
||
expose the same operation in two different skill formats. Their paths make the
|
||
boundary explicit.
|
||
|
||
Expect a report for each selected review, with findings, source locations,
|
||
severity, confidence, and references to the relevant guidance. Some hosts show
|
||
the structured JSON directly. `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](docs/using-bcquality.md#reading-your-results).
|
||
|
||
[PowerShell 7](https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell)
|
||
(`pwsh`) is recommended for fast knowledge discovery. If it is unavailable,
|
||
the review can still discover knowledge by reading the folders.
|
||
|
||
## Documentation
|
||
|
||
| I want to... | Start here |
|
||
| --- | --- |
|
||
| Choose direct reading, a supplied skill, or my own agent | [Ways to use BCQuality](docs/using-bcquality.md#choose-how-to-use-bcquality) |
|
||
| Review a file, changes, a branch, or a particular concern | [Using BCQuality](docs/using-bcquality.md) |
|
||
| Resolve setup problems, incomplete reviews, or incorrect findings | [Troubleshooting and support](docs/troubleshooting.md) |
|
||
| Browse the available guidance | [Knowledge by domain](docs/using-bcquality.md#knowledge-by-domain) |
|
||
| Configure the plugin or use my organization's rules | [Customizing BCQuality](docs/customizing-bcquality.md) |
|
||
| Contribute knowledge or improve a rule | [Your first contribution](docs/contributing.md#your-first-contribution) |
|
||
| Connect a host, agent, or CI integration | [Minimal integration example](docs/agent-consumption.md#try-a-minimal-integration) |
|
||
|
||
[All documentation and technical references](docs/README.md).
|
||
|
||
## Scope
|
||
|
||
Today's curated content covers **technical AL code review** and a focused
|
||
**Supply Chain Management (SCM)** functional domain. 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](docs/using-bcquality.md#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.
|
||
|
||
BCQuality defines a provisional internal, read-only `al-development-plan`
|
||
action-skill contract that selects relevant constraints before a consumer
|
||
implements its own existing plan. It is not registered as a standalone plugin
|
||
skill and does not change the plugin version. Consumer-owner agreement and a
|
||
runtime pilot are required before treating it as a stable public surface.
|
||
|
||
Repository-specific orchestrators retain planning, implementation, approvals,
|
||
tests, environment, propagation, and delivery ownership. The intended flow is
|
||
consumer analysis and normalized plan -> read-only BCQuality guidance ->
|
||
existing implementation phases -> independent final BCQuality review ->
|
||
delivery. Consumer uptake and a real runtime pilot are follow-up work, not
|
||
implemented integrations or demonstrated authoring improvements.
|
||
|
||
`no-knowledge` means no additional applicable BCQuality constraints, with empty
|
||
`knowledge`; it does not make a plan unsafe or prevent the consumer from using
|
||
its ordinary gates. Retrieval failures and materially unresolved conditional
|
||
guidance are distinct outcomes, not empty knowledge. Do not add generic advice
|
||
just to avoid a `no-knowledge` result.
|
||
|
||
The [SCM domain](microsoft/knowledge/scm/) covers selected inventory, costing,
|
||
reservation, tracking, and warehouse/posting workflows, not exhaustive supply
|
||
chain validation. Broader functional coverage such as Finance, Manufacturing,
|
||
Jobs, and Service, and technologies such as PowerShell, pipelines, and Power
|
||
Platform, remain valid future scope, **not current coverage claims**.
|
||
|
||
## Plan-enrichment follow-up scope
|
||
|
||
Consumer agreement, consumer-owned persistence and phase injection, a pinned
|
||
baseline comparison, and a runtime pilot remain follow-up work. BCQuality does
|
||
not claim improved repairs or authoring effectiveness from this provisional
|
||
contract alone.
|
||
|
||
## What's in this repo
|
||
|
||
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/) | Microsoft-endorsed skills and their knowledge. |
|
||
| [Community](community/) | Community-owned skills and their knowledge. |
|
||
| [Custom](custom/) | Organization-specific additions and overrides in your own fork. |
|
||
|
||
Review skills emit a `findings-report`; plan enrichment emits a read-only
|
||
`development-guidance-report`. Both contracts are defined in
|
||
[`skills/do.md`](skills/do.md). See
|
||
[how agents consume BCQuality](docs/agent-consumption.md) for the integration
|
||
flow.
|
||
|
||
All three are enabled by default; Custom is empty upstream. You do not need
|
||
to configure layers to get started.
|
||
|
||
## Versioning
|
||
|
||
Update the installed plugin from your terminal, then start a new session:
|
||
|
||
```powershell
|
||
copilot plugin update bcquality
|
||
```
|
||
|
||
Plugin versions and content-release tags are different. For reproducible runs
|
||
and organization forks, see [updates and versions](docs/customizing-bcquality.md#updates-and-versions).
|
||
|
||
## What belongs here
|
||
|
||
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](docs/contributing.md#what-belongs-here).
|
||
|
||
## Contributing
|
||
|
||
Partners are welcome to contribute to the layer that owns the domain,
|
||
regardless of affiliation. Start with the [contribution guide](docs/contributing.md).
|
||
To report a problem without authoring a rule, see [support](docs/troubleshooting.md#reporting-a-problem).
|
||
|
||
## License
|
||
|
||
[MIT](LICENSE)
|