bcquality/microsoft/knowledge/upgrade
Wenjie Fan 1bf5a3b276
Add precision guards for systematic agent false-positive patterns (#112)
* Add precision guards for systematic agent false-positive patterns

Encodes reviewer-confirmed FP guards from the online eval: tooltip-inherited, page-trigger default return, drill-down filter not visible in diff, dual-trigger CalcFields (do.md); and a released-baseline precondition for breaking-change/upgrade findings on never-shipped symbols.

* Scope suggested-code and location to exactly the changed lines

Addresses reviewer-reported misplaced suggestions from the eval: insert-only-property emitting the whole field, single-statement rewrites anchored on the procedure name, and reductive multi-line collapses. The skill now emits a location range that matches precisely the rewritten lines.

* Correct suggested-code scoping guidance to match one-click anchor mechanics

A lone inserted line matches no existing file line and cannot be anchored; bracket the new line with one adjacent unchanged line instead. Reductive collapses omit suggested-code and fall back to a manual snippet.

* Move BC-specific FP guards out of do.md into leaf skills

do.md is the stable action-skill template and must stay domain-agnostic (JesperSchulz review). Relocate the four known false-positive patterns to their domain leaves: ToolTip-inheritance to al-ui-review; drill-down/lookup filtering and CalcFields lifecycle to al-performance-review; page-trigger exit(true) semantics to al-error-handling-review.

* Move suggested-code line-scoping guidance out of do.md into al-code-review

do.md must not carry instructions for how the review skill behaves (JesperSchulz review). Relocate the location/suggested-code precise-span rules to al-code-review's existing Suggested-code guidance section. do.md is now unchanged vs main.

* Move false-positive guards from skills into knowledge files

Keep review skills slim (finders/appliers). The FP guards and released-baseline preconditions previously embedded in leaf skills become negative-clarification knowledge articles in their domains, and the agent-findings policy edits to al-ui/al-privacy are reverted to main. Adds 6 knowledge files: error-handling (page-boolean-triggers-default-to-true), ui (bound-page-field-inherits-source-field-tooltip), performance (calcfields-in-both-getrecord-triggers-is-not-redundant, page-effective-filter-may-live-outside-the-diff), breaking-changes (unreleased-symbol-change-is-not-a-breaking-change), upgrade (unreleased-schema-change-needs-no-upgrade-path).

* Revert branch's suggested-code scoping addition in al-code-review

The three location-span shapes added to al-code-review are output-format mechanics, not domain knowledge: one-click span correctness is the engine's job (Resolve-SuggestionPlacement) and do.md already owns the suggested-code/location contract. The AL concerns the examples illustrate are already covered by existing knowledge (use-isempty-for-existence-check, data-classification-required-on-pii-fields, no-space-before-method-parenthesis). Restores al-code-review to main; the branch now adds only the 6 knowledge files.

* Restore al-ui/al-privacy review skills to base (zero diff in PR)

These two leaf skills carried an accidental net change against the PR merge-base because an earlier revert used the current origin/main (post-#110) instead of the branch base (pre-#110). Restoring them to the merge-base version removes them from the PR diff entirely. Three-way merge still preserves main's #110 suppression.

---------

Co-authored-by: wenjiefan <wenjiefan@microsoft.com>
2026-07-17 14:17:04 +02:00
..
breaking-changes-only-on-tables-without-data.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
breaking-changes-only-on-tables-without-data.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
breaking-changes-only-on-tables-without-data.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
check-only-triggers-do-not-migrate-data.bad.al Add lifecycle error and privacy knowledge (#99) 2026-07-14 12:52:56 +02:00
check-only-triggers-do-not-migrate-data.good.al Add lifecycle error and privacy knowledge (#99) 2026-07-14 12:52:56 +02:00
check-only-triggers-do-not-migrate-data.md Add lifecycle error and privacy knowledge (#99) 2026-07-14 12:52:56 +02:00
datatransfer-for-bulk-init.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
datatransfer-for-bulk-init.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
datatransfer-for-bulk-init.md Fix knowledge corpus integrity issues (#87) 2026-07-13 10:34:23 +02:00
datatransfer-skips-triggers-and-subscribers.bad.al Fix lifecycle compatibility guidance (#93) 2026-07-14 11:26:16 +02:00
datatransfer-skips-triggers-and-subscribers.good.al Fix lifecycle compatibility guidance (#93) 2026-07-14 11:26:16 +02:00
datatransfer-skips-triggers-and-subscribers.md Fix lifecycle compatibility guidance (#93) 2026-07-14 11:26:16 +02:00
do-not-block-upgrade-on-data-errors.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
do-not-block-upgrade-on-data-errors.good.al Complete AL review knowledge readiness (#108) 2026-07-15 10:55:25 +02:00
do-not-block-upgrade-on-data-errors.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
enum-values-additive-at-end.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
enum-values-additive-at-end.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
enum-values-additive-at-end.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
first-install-dataversion-zero-check.bad.al Add lifecycle error and privacy knowledge (#99) 2026-07-14 12:52:56 +02:00
first-install-dataversion-zero-check.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
first-install-dataversion-zero-check.md Add lifecycle error and privacy knowledge (#99) 2026-07-14 12:52:56 +02:00
guard-database-reads.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
guard-database-reads.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
guard-database-reads.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
hybrid-migration-codeunits-not-standard-upgrade.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
initvalue-does-not-update-existing-rows.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
initvalue-does-not-update-existing-rows.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
initvalue-does-not-update-existing-rows.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
install-code-does-not-run-on-version-upgrade.bad.al Add lifecycle error and privacy knowledge (#99) 2026-07-14 12:52:56 +02:00
install-code-does-not-run-on-version-upgrade.good.al Add lifecycle error and privacy knowledge (#99) 2026-07-14 12:52:56 +02:00
install-code-does-not-run-on-version-upgrade.md Add lifecycle error and privacy knowledge (#99) 2026-07-14 12:52:56 +02:00
minimize-onvalidate-upgrade-triggers.bad.al Add lifecycle error and privacy knowledge (#99) 2026-07-14 12:52:56 +02:00
minimize-onvalidate-upgrade-triggers.good.al Add lifecycle error and privacy knowledge (#99) 2026-07-14 12:52:56 +02:00
minimize-onvalidate-upgrade-triggers.md Add lifecycle error and privacy knowledge (#99) 2026-07-14 12:52:56 +02:00
no-external-calls-in-upgrade.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
no-external-calls-in-upgrade.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
no-external-calls-in-upgrade.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
obsolete-pending-to-removed-staging.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
obsolete-pending-to-removed-staging.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
obsolete-pending-to-removed-staging.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
obsoletion-requires-reason-and-tag.bad.al Fix lifecycle compatibility guidance (#93) 2026-07-14 11:26:16 +02:00
obsoletion-requires-reason-and-tag.good.al Fix lifecycle compatibility guidance (#93) 2026-07-14 11:26:16 +02:00
obsoletion-requires-reason-and-tag.md Fix lifecycle compatibility guidance (#93) 2026-07-14 11:26:16 +02:00
register-upgrade-tags-with-subscribers.bad.al Fix lifecycle compatibility guidance (#93) 2026-07-14 11:26:16 +02:00
register-upgrade-tags-with-subscribers.good.al Fix lifecycle compatibility guidance (#93) 2026-07-14 11:26:16 +02:00
register-upgrade-tags-with-subscribers.md Fix lifecycle compatibility guidance (#93) 2026-07-14 11:26:16 +02:00
skip-nonessential-work-via-execution-context.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
skip-nonessential-work-via-execution-context.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
skip-nonessential-work-via-execution-context.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
triggers-call-helpers-not-implementations.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
triggers-call-helpers-not-implementations.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
triggers-call-helpers-not-implementations.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
unreleased-schema-change-needs-no-upgrade-path.md Add precision guards for systematic agent false-positive patterns (#112) 2026-07-17 14:17:04 +02:00
upgrade-codeunit-subtype.bad.al Fix lifecycle compatibility guidance (#93) 2026-07-14 11:26:16 +02:00
upgrade-codeunit-subtype.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
upgrade-codeunit-subtype.md Fix lifecycle compatibility guidance (#93) 2026-07-14 11:26:16 +02:00
use-upgrade-tags-not-version-checks.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
use-upgrade-tags-not-version-checks.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
use-upgrade-tags-not-version-checks.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00