#178 Separate deterministic analyzer rules from BCQuality
Deterministic analyzer rules and their documentation are removed from BCQuality, leaving only knowledge that adds BC-specific context beyond what the compiler already enforces.
- 60files
- 55AL files
- 0objects
Pull request · merged into main on 2026-09-11 by JesperSchulz · 60 files (+45 -1095), 55 AL · refactor · tier official · reviewed (checked by Opus)
What changed
- 18 deterministic rules and their samples are retired, including CodeCop formatting and style rules, AS0062, AS0011, AS0007 and compiler-enforced subscriber parameter matching
- The Style, AppSource and Breaking Changes review skills no longer contain detection or example logic for these rules
- The admission test now excludes compiler and analyzer duplicates for both review and authoring
- Analyzer-related knowledge stays only when it adds exceptions, version boundaries, cross-object implications or remediation constraints
- Deterministic tooling handles mechanical facts, while BCQuality focuses on BC-specific reasoning
- Behaviour changes for users or extensions.
AL objects touched
microsoft/knowledge/appsource/object-affixes-prevent-collisions.bad.al: removedmicrosoft/knowledge/appsource/object-affixes-prevent-collisions.good.al: removedmicrosoft/knowledge/appsource/object-affixes-prevent-collisions.md: removedmicrosoft/knowledge/appsource/two-level-namespace-replaces-object-affix-not-extension-member-affix.bad.al: removedmicrosoft/knowledge/appsource/two-level-namespace-replaces-object-affix-not-extension-member-affix.good.al: removedmicrosoft/knowledge/appsource/two-level-namespace-replaces-object-affix-not-extension-member-affix.md: removedmicrosoft/knowledge/breaking-changes/namespace-is-part-of-published-object-identity.bad.al: removedmicrosoft/knowledge/breaking-changes/namespace-is-part-of-published-object-identity.good.al: removedmicrosoft/knowledge/breaking-changes/namespace-is-part-of-published-object-identity.md: removedmicrosoft/knowledge/style/applicationarea-required-on-page-controls.bad.al: removedmicrosoft/knowledge/style/applicationarea-required-on-page-controls.good.al: removedmicrosoft/knowledge/style/applicationarea-required-on-page-controls.md: removedmicrosoft/knowledge/style/begin-on-same-line-as-then-else-do.bad.al: removedmicrosoft/knowledge/style/begin-on-same-line-as-then-else-do.good.al: removedmicrosoft/knowledge/style/begin-on-same-line-as-then-else-do.md: removedmicrosoft/knowledge/style/block-keywords-start-new-line.bad.al: removedmicrosoft/knowledge/style/block-keywords-start-new-line.good.al: removedmicrosoft/knowledge/style/block-keywords-start-new-line.md: removedmicrosoft/knowledge/style/event-subscriber-param-names-match-publisher.md: removedmicrosoft/knowledge/style/function-call-parentheses-required.bad.al: removedmicrosoft/knowledge/style/function-call-parentheses-required.good.al: removedmicrosoft/knowledge/style/function-call-parentheses-required.md: removedmicrosoft/knowledge/style/label-suffix-approved-list.bad.al: removedmicrosoft/knowledge/style/label-suffix-approved-list.good.al: removedmicrosoft/knowledge/style/label-suffix-approved-list.md: removedmicrosoft/knowledge/style/lowercase-reserved-keywords.bad.al: removedmicrosoft/knowledge/style/lowercase-reserved-keywords.good.al: removedmicrosoft/knowledge/style/lowercase-reserved-keywords.md: removedmicrosoft/knowledge/style/no-begin-end-around-single-statement.bad.al: removedmicrosoft/knowledge/style/no-begin-end-around-single-statement.good.al: removedmicrosoft/knowledge/style/no-begin-end-around-single-statement.md: removedmicrosoft/knowledge/style/no-space-before-method-parenthesis.bad.al: removedmicrosoft/knowledge/style/no-space-before-method-parenthesis.good.al: removedmicrosoft/knowledge/style/no-space-before-method-parenthesis.md: removedmicrosoft/knowledge/style/optioncaption-required-and-matches-membercount.bad.al: removedmicrosoft/knowledge/style/optioncaption-required-and-matches-membercount.good.al: removedmicrosoft/knowledge/style/optioncaption-required-and-matches-membercount.md: removedmicrosoft/knowledge/style/single-space-after-not-operator.bad.al: removedmicrosoft/knowledge/style/single-space-after-not-operator.good.al: removedmicrosoft/knowledge/style/single-space-after-not-operator.md: removedmicrosoft/knowledge/style/single-space-around-binary-operators.bad.al: removedmicrosoft/knowledge/style/single-space-around-binary-operators.good.al: removedmicrosoft/knowledge/style/single-space-around-binary-operators.md: removedmicrosoft/knowledge/style/this-keyword-in-codeunits.bad.al: removedmicrosoft/knowledge/style/this-keyword-in-codeunits.good.al: removedmicrosoft/knowledge/style/this-keyword-in-codeunits.md: removedmicrosoft/knowledge/style/variable-declaration-order-by-type.bad.al: removedmicrosoft/knowledge/style/variable-declaration-order-by-type.good.al: removedmicrosoft/knowledge/style/variable-declaration-order-by-type.md: removedmicrosoft/knowledge/style/variable-name-must-not-shadow.bad.al: removedmicrosoft/knowledge/style/variable-name-must-not-shadow.good.al: removedmicrosoft/knowledge/style/variable-name-must-not-shadow.md: removedmicrosoft/skills/review/al-appsource-review.md: modified, not in the BC? snapshotmicrosoft/skills/review/al-breaking-changes-review.md: modified, not in the BC? snapshotmicrosoft/skills/review/al-style-review.md: modified, not in the BC? snapshot
Context
- Systems: development, platform
- From the description: “deterministic tooling establishes mechanical facts; BCQuality and the LLM focus on BC-specific context and reasoning”
Source: metadata of a merged pull request in microsoft/BCQuality (bcquality): title, labels, changed paths and counts, with a summary in our words. No source text and no description beyond one short quote (D10, D61).