mirror of
https://github.com/microsoft/BCQuality.git
synced 2026-08-06 17:36:53 +01:00
73 lines
No EOL
3.8 KiB
Markdown
73 lines
No EOL
3.8 KiB
Markdown
---
|
|
kind: action-skill
|
|
id: al-code-review
|
|
version: 1
|
|
title: AL code review
|
|
description: Reviews AL source changes by composing the AL review leaf skills, using TCOG-specific performance guidance where available.
|
|
inputs: [pr-diff, file-path]
|
|
outputs: [findings-report]
|
|
bc-version: [all]
|
|
technologies: [al]
|
|
countries: [w1]
|
|
application-area: [all]
|
|
sub-skills:
|
|
- custom/skills/review/al-performance-review.md
|
|
- microsoft/skills/review/al-security-review.md
|
|
- microsoft/skills/review/al-privacy-review.md
|
|
- microsoft/skills/review/al-upgrade-review.md
|
|
- microsoft/skills/review/al-style-review.md
|
|
- microsoft/skills/review/al-ui-review.md
|
|
- microsoft/skills/review/al-error-handling-review.md
|
|
- microsoft/skills/review/al-events-review.md
|
|
- microsoft/skills/review/al-interfaces-review.md
|
|
- microsoft/skills/review/al-breaking-changes-review.md
|
|
- microsoft/skills/review/al-web-services-review.md
|
|
---
|
|
|
|
# AL code review
|
|
|
|
Reviews AL source changes by composing the AL review leaf skills. This custom-layer variant preserves the standard BCQuality multi-domain review flow, but replaces the performance leaf with the tCOG custom performance review so local conventions participate in the same code-review route.
|
|
|
|
## Source
|
|
|
|
The sub-skills invoked by this skill are exactly those listed in frontmatter `sub-skills`. The skill does not discover sub-skills implicitly.
|
|
|
|
## Relevance
|
|
|
|
A sub-skill is relevant when both of the following hold:
|
|
|
|
- The orchestrator supplied inputs that satisfy the sub-skill's declared `inputs`.
|
|
- The orchestrator did not disable the sub-skill via configuration.
|
|
|
|
Per the DO contract, this super-skill must not filter sub-skills by diff content. Each leaf is responsible for deciding whether the task is applicable inside its own execution.
|
|
|
|
Sub-skills that fail either check are not invoked and are recorded in `skipped-sub-skills` with reason `configuration` or `not-applicable`.
|
|
|
|
## Worklist
|
|
|
|
The worklist is the list of sub-skills judged relevant by the previous step. Every sub-skill in the worklist is invoked in the Action step.
|
|
|
|
## Action
|
|
|
|
Execute the worklist as discrete iterations, one sub-skill at a time.
|
|
|
|
For each sub-skill:
|
|
|
|
1. Invoke the sub-skill with the orchestrator-supplied inputs, passing only the subset declared by that sub-skill.
|
|
2. Capture the sub-skill's full findings-report verbatim in `sub-results`.
|
|
3. If the sub-skill outcome is `failed`, keep its report in `sub-results` but do not roll its findings up into the top-level result.
|
|
4. Otherwise, append each finding from the sub-skill's `findings[]` to the super-skill's top-level `findings[]`, setting `from-sub-skill` to the producing sub-skill's `skill.id`. If the rolled-up finding uses a slug `id` rather than a reference path, prefix it with `<from-sub-skill>:` to avoid collisions.
|
|
|
|
After every sub-skill completes, perform one self-review pass over the same diff to look for concrete cross-cutting concerns that no single leaf could surface on its own. Validate each candidate against the BCQuality knowledge already loaded by the leaves:
|
|
|
|
- If a loaded knowledge file matches the concern, upgrade it to a knowledge-backed finding and attribute it to the owning sub-skill.
|
|
- If loaded knowledge explicitly contradicts the concern, suppress it.
|
|
- Otherwise, emit it as an agent finding with `references: []`, an `id` prefixed with `agent:`, `confidence` no higher than `medium`, and `severity` no higher than `minor`.
|
|
|
|
Populate `suggested-code` whenever the fix is small, local, and mechanical.
|
|
|
|
Aggregate summary counts and coverage across invoked sub-skills whose outcome is not `failed`. Agent findings produced by the super-skill contribute to counts but not to coverage.
|
|
|
|
## Output
|
|
|
|
Output conforms to the DO findings-report contract in [skills/do.md](skills/do.md), including `sub-results` and `skipped-sub-skills` for this super-skill. |