---
id: change/bcquality/146
type: change
title: "#146 knowledge: three false-positive guards from BCApps PR 10277, 10278 and 10346"
summary: "Three BCQuality knowledge articles were added or updated to stop false positives: insert-only transfers that rely on the caller to clean up first, member affixes in apps that do not configure an AppSourceCop mandatory affix, and permission tests that lower the context through a composed role. Genuine defects remain reportable."
tier: official
language: en
tags:
  - fix
  - main
system: development
review:
  state: reviewed
  by: opus
  at: "2026-10-08T02:06:43.037Z"
  flags: []
generated:
  at: "2026-10-08T01:26:53.141Z"
  pipeline: 0.2.0
  prompts:
    extract-change: 1
  input_hash: 35a7e72f124d6ab6d32003b1381397928ac9b050
evidence:
  - kind: code
    url: https://github.com/microsoft/BCQuality/pull/146
    title: "microsoft/BCQuality#146: knowledge: three false-positive guards from BCApps PR 10277, 10278 and 10346"
    date: "2026-09-02"
    commit: 35a7e72f124d6ab6d32003b1381397928ac9b050
    t: null
    quote: Three false-positive guards adjudicated from self-improvement runs on BCApps PR 10277, 10278 and 10346.
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes: []
number: 146
repo: microsoft/BCQuality
source_id: bcquality-prs
url: https://github.com/microsoft/BCQuality/pull/146
kind: pr
base_branch: main
major: null
merged_at: "2026-09-02T09:25:20Z"
author: gggdttt
author_type: User
community_contribution: false
labels: []
change_class: code
change_kind: fix
behavior_change: false
breaking: false
files:
  count: 3
  additions: 34
  deletions: 6
  al: 3
apps: []
objects_touched: []
objects_unjoined:
  - path: microsoft/knowledge/appsource/two-level-namespace-replaces-object-affix-not-extension-member-affix.md
    status: modified
    reason: not-in-snapshot
  - path: microsoft/knowledge/data-modeling/insert-only-transfer-may-rely-on-caller-cleanup.md
    status: added
    reason: not-in-snapshot
  - path: microsoft/knowledge/testing/permission-tests-must-lower-the-execution-context.md
    status: modified
    reason: not-in-snapshot
obsoletions: []
backports: []
fixes_issues: []
work_items: []
systems:
  - development
quote: Three false-positive guards adjudicated from self-improvement runs on BCApps PR 10277, 10278 and 10346.
joined_against:
  major: null
  commit: null
---

# #146 knowledge: three false-positive guards from BCApps PR 10277, 10278 and 10346

> Three BCQuality knowledge articles were added or updated to stop false positives: insert-only transfers that rely on the caller to clean up first, member affixes in apps that do not configure an AppSourceCop mandatory affix, and permission tests that lower the context through a composed role. Genuine defects remain reportable.

[Pull request](https://github.com/microsoft/BCQuality/pull/146) · merged into `main` on 2026-09-02 by gggdttt · 3 files (+34 -6), 3 AL · fix · tier official · reviewed (checked by Opus)

## What changed

- New article clarifies that insert-only transfers are safe when the caller's OnValidate trigger cleans up the target range first
- AppSource affix requirement now correctly scoped to apps with AppSourceCop enabled and configured with mandatory affix
- Permission test guidance refined to recognize effective permission context through role composition, not just direct permission set assignment
- All three false positives were verified against actual BCApps code before writing the rules
- Genuine defects remain reportable: missing cleanup with different filters or reachable paths without cleanup

## AL objects touched

- `microsoft/knowledge/appsource/two-level-namespace-replaces-object-affix-not-extension-member-affix.md`: modified, not in the BC? snapshot
- `microsoft/knowledge/data-modeling/insert-only-transfer-may-rely-on-caller-cleanup.md`: added, not in the BC? snapshot yet
- `microsoft/knowledge/testing/permission-tests-must-lower-the-execution-context.md`: modified, not in the BC? snapshot

## Context

- Systems: development
- From the description: "Three false-positive guards adjudicated from self-improvement runs on BCApps PR 10277, 10278 and 10346."

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