---
id: change/bcquality/132
type: change
title: "#132 Refine self-improvement review guidance"
summary: BCQuality guidance refined to reduce false positives in event handling, UI testing, performance analysis, and label scope rules by narrowing criteria to match documented platform behavior and actual code semantics.
tier: official
language: en
tags:
  - other
  - main
system: development
review:
  state: reviewed
  by: opus
  at: "2026-10-08T02:06:24.075Z"
  flags: []
generated:
  at: "2026-10-08T01:26:53.141Z"
  pipeline: 0.2.0
  prompts:
    extract-change: 1
  input_hash: 1a5afdc0ebb6eb3fde1c3c69a13f235275cf4549
evidence:
  - kind: code
    url: https://github.com/microsoft/BCQuality/pull/132
    title: "microsoft/BCQuality#132: Refine self-improvement review guidance"
    date: "2026-09-03"
    commit: 1a5afdc0ebb6eb3fde1c3c69a13f235275cf4549
    t: null
    quote: narrow `IsHandled` reset findings to values that can actually carry `true`, including loop-carried state
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes: []
number: 132
repo: microsoft/BCQuality
source_id: bcquality-prs
url: https://github.com/microsoft/BCQuality/pull/132
kind: pr
base_branch: main
major: null
merged_at: "2026-09-03T13:42:40Z"
author: gggdttt
author_type: User
community_contribution: false
labels: []
change_class: code
change_kind: other
behavior_change: true
breaking: false
files:
  count: 28
  additions: 295
  deletions: 224
  al: 27
apps: []
objects_touched: []
objects_unjoined:
  - path: microsoft/knowledge/events/initialize-ishandled-to-false-before-publishing.bad.al
    status: removed
    reason: removed
  - path: microsoft/knowledge/events/initialize-ishandled-to-false-before-publishing.good.al
    status: removed
    reason: removed
  - path: microsoft/knowledge/events/initialize-ishandled-to-false-before-publishing.md
    status: removed
    reason: removed
  - path: microsoft/knowledge/events/reset-ishandled-only-when-the-value-can-carry-over.bad.al
    status: added
    reason: not-in-snapshot
  - path: microsoft/knowledge/events/reset-ishandled-only-when-the-value-can-carry-over.good.al
    status: added
    reason: not-in-snapshot
  - path: microsoft/knowledge/events/reset-ishandled-only-when-the-value-can-carry-over.md
    status: added
    reason: not-in-snapshot
  - path: microsoft/knowledge/performance/avoid-commit-inside-loops.bad.al
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/performance/avoid-commit-inside-loops.good.al
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/performance/avoid-commit-inside-loops.md
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/performance/prefer-modifyall-over-per-row-modify.md
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/performance/triggers-and-media-field-regress-modifyall.md
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/performance/use-deleteall-for-filtered-bulk-deletion.md
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/style/labels-declared-at-object-scope.bad.al
    status: removed
    reason: removed
  - path: microsoft/knowledge/style/labels-declared-at-object-scope.good.al
    status: removed
    reason: removed
  - path: microsoft/knowledge/style/labels-declared-at-object-scope.md
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/testing/ui-handlers-in-tests.bad.al
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/testing/ui-handlers-in-tests.good.al
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/testing/ui-handlers-in-tests.md
    status: modified
    reason: not-in-snapshot
  - path: microsoft/skills/review/al-events-review.md
    status: modified
    reason: not-in-snapshot
  - path: microsoft/skills/review/al-performance-review.md
    status: modified
    reason: not-in-snapshot
  - path: microsoft/skills/review/al-privacy-review.md
    status: modified
    reason: not-in-snapshot
  - path: microsoft/skills/review/al-security-review.md
    status: modified
    reason: not-in-snapshot
  - path: microsoft/skills/review/al-style-review.md
    status: modified
    reason: not-in-snapshot
  - path: microsoft/skills/review/al-testing-review.md
    status: modified
    reason: not-in-snapshot
  - path: microsoft/skills/review/al-ui-review.md
    status: modified
    reason: not-in-snapshot
  - path: microsoft/skills/review/al-upgrade-review.md
    status: modified
    reason: not-in-snapshot
  - path: skills/do.md
    status: modified
    reason: not-in-snapshot
obsoletions: []
backports: []
fixes_issues: []
work_items: []
systems:
  - development
quote: narrow `IsHandled` reset findings to values that can actually carry `true`, including loop-carried state
joined_against:
  major: null
  commit: null
---

# #132 Refine self-improvement review guidance

> BCQuality guidance refined to reduce false positives in event handling, UI testing, performance analysis, and label scope rules by narrowing criteria to match documented platform behavior and actual code semantics.

[Pull request](https://github.com/microsoft/BCQuality/pull/132) · merged into `main` on 2026-09-03 by gggdttt · 28 files (+295 -224), 27 AL · other · tier official · reviewed (checked by Opus)

## What changed

- IsHandled reset rules refined to consider loop-carried state and values that can actually become true
- Local Label scope removed as a correctness rule since labels are supported in extension translation
- UI handler tests allowed to use semantic capture/reset/assert patterns with queues reserved for interaction contracts
- Performance guidance for ModifyAll and DeleteAll aligned with documented fallback conditions
- Persisted checkpoint and bounded retrieval requirements clarified as separate concerns
- Behaviour changes for users or extensions.

## AL objects touched

- `microsoft/knowledge/events/initialize-ishandled-to-false-before-publishing.bad.al`: removed
- `microsoft/knowledge/events/initialize-ishandled-to-false-before-publishing.good.al`: removed
- `microsoft/knowledge/events/initialize-ishandled-to-false-before-publishing.md`: removed
- `microsoft/knowledge/events/reset-ishandled-only-when-the-value-can-carry-over.bad.al`: added, not in the BC? snapshot yet
- `microsoft/knowledge/events/reset-ishandled-only-when-the-value-can-carry-over.good.al`: added, not in the BC? snapshot yet
- `microsoft/knowledge/events/reset-ishandled-only-when-the-value-can-carry-over.md`: added, not in the BC? snapshot yet
- `microsoft/knowledge/performance/avoid-commit-inside-loops.bad.al`: modified, not in the BC? snapshot
- `microsoft/knowledge/performance/avoid-commit-inside-loops.good.al`: modified, not in the BC? snapshot
- `microsoft/knowledge/performance/avoid-commit-inside-loops.md`: modified, not in the BC? snapshot
- `microsoft/knowledge/performance/prefer-modifyall-over-per-row-modify.md`: modified, not in the BC? snapshot
- `microsoft/knowledge/performance/triggers-and-media-field-regress-modifyall.md`: modified, not in the BC? snapshot
- `microsoft/knowledge/performance/use-deleteall-for-filtered-bulk-deletion.md`: modified, not in the BC? snapshot
- `microsoft/knowledge/style/labels-declared-at-object-scope.bad.al`: removed
- `microsoft/knowledge/style/labels-declared-at-object-scope.good.al`: removed
- `microsoft/knowledge/style/labels-declared-at-object-scope.md`: modified, not in the BC? snapshot
- `microsoft/knowledge/testing/ui-handlers-in-tests.bad.al`: modified, not in the BC? snapshot
- `microsoft/knowledge/testing/ui-handlers-in-tests.good.al`: modified, not in the BC? snapshot
- `microsoft/knowledge/testing/ui-handlers-in-tests.md`: modified, not in the BC? snapshot
- `microsoft/skills/review/al-events-review.md`: modified, not in the BC? snapshot
- `microsoft/skills/review/al-performance-review.md`: modified, not in the BC? snapshot
- `microsoft/skills/review/al-privacy-review.md`: modified, not in the BC? snapshot
- `microsoft/skills/review/al-security-review.md`: modified, not in the BC? snapshot
- `microsoft/skills/review/al-style-review.md`: modified, not in the BC? snapshot
- `microsoft/skills/review/al-testing-review.md`: modified, not in the BC? snapshot
- `microsoft/skills/review/al-ui-review.md`: modified, not in the BC? snapshot
- `microsoft/skills/review/al-upgrade-review.md`: modified, not in the BC? snapshot
- `skills/do.md`: modified, not in the BC? snapshot

## Context

- Systems: development
- From the description: "narrow `IsHandled` reset findings to values that can actually carry `true`, including loop-carried state"

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