Emit human-readable domain label on review findings#54
Open
JesperSchulz wants to merge 3 commits into
Open
Conversation
Add an optional findings[].domain field to the DO review output contract so each finding carries its own human-readable review-domain display label. Leaf review skills set it on every finding they emit; the al-code-review super-skill copies it verbatim during rollup and sets it to "Agent" for its own cross-cutting agent findings. This decouples consumers from BCQuality's domain taxonomy: they render finding.domain verbatim instead of maintaining a sub-skill-id -> label map. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
JeremyVyska
approved these changes
Jun 29, 2026
added 2 commits
July 14, 2026 14:46
Merge current main because it added four active AL review leaves, then extend the findings domain contract across all 15 leaves, generic composition guidance, plugin documentation, and the self-review knowledge-upgrade path. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 77d0a40e-8bf5-40ac-a450-40eb0255db03
Clarify that review domains may contain internal whitespace, punctuation, case-sensitive text, and non-ASCII characters. Require consumers to preserve and safely encode the complete label instead of relying on lossy slugs, matching the replacement BC-ALAgents consumer. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 77d0a40e-8bf5-40ac-a450-40eb0255db03
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
The live Copilot PR-review consumer is now the reusable engine in microsoft/BC-ALAgents; BCApps delegates to it after microsoft/BCApps#9210. The engine currently maps each finding's
from-sub-skillid to a display label through a static$DomainMap. Every new BCQuality review domain therefore requires a matching engine change; otherwise findings silently render as Other.This PR makes BCQuality own the display label:
findings[].domainto the shared DO output schema.domainon every finding it emits, including leaf-level agent findings.al-code-reviewpreserves a leaf finding's optionaldomainverbatim during rollup, including its absence from older producers.al-code-reviewusedomain: "Agent".Labels
findings[].domainAccessibilityintentionally preserves the existing rendered label foral-ui-review.Display-label contract
domainis display text, not a stable machine identifier. Producers emit a non-empty, trimmed, single-line string. Internal whitespace, punctuation, case, and non-ASCII characters are valid and significant.Consumers must preserve the complete label when rendering it, escaping only for the output format. They must not split on whitespace or restrict labels to identifier characters. Metadata and deduplication keys must retain the exact string, use a lossless encoding, or use a collision-resistant digest; lowercasing or lossy slugification alone is not sufficient because distinct labels can collapse to the same slug.
Backward compatibility
The field is additive and optional in the shared schema:
domainare unaffected.from-sub-skillfallback.BCApps no longer hosts the review engine or owns its BCQuality pin. Consumer support and activation now belong in BC-ALAgents.
Rollout
The live consumer counterpart is microsoft/BC-ALAgents#21, Decouple review domains from BCQuality taxonomy.
finding.domain, retains$DomainMaponly for legacy findings without it, and safely handles multi-word, punctuation-bearing, and non-ASCII labels in rendering, grouping, metadata, and deduplication.agent/bcquality.config.yamlin BC-ALAgents to a BCQuality commit containing this PR, update its content version, and publish an engine release so thelatesttag consumed by BCApps includes both changes.Validation
python .github/scripts/validate_frontmatter.py --root .— 0 errors, 0 warnings.al-code-review; 27 JSON examples parsed; all 30 populated example findings carry the expected label.$DomainMap; BC-ALAgents#21 is the consumer change that implements this producer-owned contract.Fixes: AB#640493