code change · fixAL Developmentofficial - Microsoftreviewed - checked by Opus

#180 Normalize recoverable leaf finding ranges

Review findings whose primary line lies inside location.range but differs from start-line are no longer rejected. A deep-copied candidate drops the optional range, keeps the raw output unchanged, and must pass the existing strict acceptance gate. All other invalid or ambiguous leaves still fail.

Pull request · merged into main on 2026-09-11 by JesperSchulz · 6 files (+250 -21), 2 AL · fix · tier official · reviewed (checked by Opus)

What changed

  • Optional location.range is removed when start-line <= line <= end-line, start-line differs from line, and no suggested-code is present
  • Raw Task output is kept unchanged as the audit payload; normalization is recorded separately in private telemetry
  • The normalized candidate must pass the full existing strict acceptance gate before rollup
  • Reversed or out-of-bounds ranges, missing fields, and bad JSON or paths still fail the whole leaf
  • New Test-ReviewContract.ps1 regression test keeps the DO, coordinator and standalone runner docs aligned
  • Behaviour changes for users or extensions.

AL objects touched

  • microsoft/skills/review/al-code-review.md: modified, not in the BC? snapshot
  • skills/do.md: modified, not in the BC? snapshot

Context

  • Systems: development, platform

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).