bcquality/microsoft/skills/review
Michael Dieringer 86d809b525
Some checks are pending
Validate knowledge index / validate-index (push) Waiting to run
Validate AL review fixtures / validate-review-fixtures (push) Waiting to run
Validate skill index and report schemas / validate-contract (push) Waiting to run
Validate frontmatter and structure / validate (push) Waiting to run
UI knowledge: notification recall needs a known Id; open mixed-type documents through Page Management (#214)
* Add UI knowledge: notification recall Id and Page Management document routing

Two ui articles with compiled good/bad samples:
- notification-recall-needs-known-id: a notification that the code also
  recalls needs a fixed Id (single instance; recall before re-send) or
  per-record tracking through codeunit "Notification Lifecycle Mgt."
  (SendNotification[WithAdditionalContext] / RecallNotificationsForRecord,
  HandleDelayedInsert semantics). Never-recalled notifications are exempt.
- list-page-document-routing-uses-page-management: open documents from a
  mixed-type list with PageManagement.PageRun(Rec) instead of a hand-written
  case "Document Type" / Page.Run; register new tables through
  OnConditionalCardPageIDNotFound. Single-type opens and tables Page
  Management does not route are exempt.

Wired into al-ui-review (entry gate now covers notification send/recall
outside pages, tokens, high-signal mappings) and registered both pairs in
the ui review-fixtures override.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Address review: scope shared notification Ids, routed-table definition, pinned links

- notification-recall-needs-known-id: a fixed Id shared across records is
  valid for one-at-a-time warnings (Sales Line blocked-item, Over-Receipt
  Mgt. pass a fixed Id to SendNotification after Recall); the per-record
  anti-pattern now requires several records' notifications to be visible
  at once. Recall wording follows Learn (including its false-return
  reasons) and cites Base App's recall-before-send practice.
- list-page-document-routing-uses-page-management: definition covers
  opening a routed table directly or after Get; cite archive line lists,
  Copy Document Mgt. ShowSalesDoc/ShowPurchDoc and Office handler; no
  "document types added later" overclaim (GetSalesHeaderPageID has no
  else for the extensible enum); full GetPageID resolution order; drop
  the IRS single-page subscriber.
- al-ui-review: non-page files admitted by the notification clause are
  checked only against notification knowledge; description updated;
  drop the "Document Type" token; case-insensitive token matching; cues
  aligned with both articles.
- Pin BCApps links to 837ef802485ee457e52310d2ecaa08b93d0122fd.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Address review: notification recall defect is a lost identity, not an unassigned or generated Id

- notification-recall-needs-known-id: the defect is a Recall() whose Id
  cannot be the sent one (fresh local Notification, new CreateGuid at
  recall time) while neither the sent instance nor its Id is kept. A
  retained global instance (CreateGuid once in OnOpenPage, or Id left for
  Send to assign), a generated Id saved after Send and reassigned before
  Recall, and correctly tracked per-record Ids are explicitly not findings.
  Findings require evidence that the recalled identity differs from or
  cannot recover the sent identity. Notification Lifecycle Mgt. is
  recommended for per-record tracking, not mandatory. Cites VAT Bus. Post.
  Grp. Part, Certificate, and Data Search Lines, and the lifecycle
  helper's Send-then-read-Id sequence.
- good sample: adds a page with a retained global Notification (CreateGuid
  in OnOpenPage, Send in an action, Recall in a later action and
  OnClosePage) and a pageextension that saves the Send-assigned Id and
  recalls it from a later action. Bad sample comments name the lost
  identity.
- al-ui-review: notification cue requires that evidence and lists the
  retained-instance, saved-Id, and direct per-record tracking controls as
  exclusions.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 13:30:59 +02:00
..
al-appsource-review.md 18 more AL/BC patterns: data-modeling, testing, style, security, error-handling, ui, upgrade, web-services, appsource (#157) 2026-09-29 17:12:51 +02:00
al-breaking-changes-review.md 18 AL/BC patterns: style, data-modeling, web-services, appsource, breaking-changes, performance, testing (#156) 2026-09-29 12:48:17 +02:00
al-code-review.md Validate composed reviews against the expected leaf worklist (#204) 2026-10-02 10:27:27 +02:00
al-data-modeling-review.md 2 AL/BC patterns: TableRelation field length and RecordRef.Open Temp parameter (#208) 2026-10-06 13:30:37 +02:00
al-error-handling-review.md 3 AL/BC patterns: Insert/Delete trigger defaults on master data and declined Confirm in OnValidate (#209) 2026-10-05 14:46:27 +02:00
al-events-review.md knowledge(events): database trigger setup flags may only be set to true (#213) 2026-10-05 14:59:53 +02:00
al-finance-review.md Add source-verified Finance knowledge and review domain (#57) 2026-09-21 10:20:41 +02:00
al-interfaces-review.md Add foundational AL developer knowledge (#195) 2026-09-21 10:15:39 +02:00
al-performance-review.md knowledge(performance): grouped query (Count + ColumnFilter = HAVING) for distinct values and duplicates (#215) 2026-10-05 14:59:15 +02:00
al-privacy-review.md Add retention policy knowledge to the privacy domain (#177) 2026-10-05 15:02:04 +02:00
al-query-review.md Add query filter semantics guidance (#186) 2026-09-15 12:51:15 +02:00
al-reporting-review.md Add reporting review guidance and evaluation fixtures (#183) 2026-09-15 10:38:32 +02:00
al-scm-review.md Strengthen review contracts and add AL reliability guidance (#196) 2026-09-29 13:03:39 +02:00
al-security-review.md 18 more AL/BC patterns: data-modeling, testing, style, security, error-handling, ui, upgrade, web-services, appsource (#157) 2026-09-29 17:12:51 +02:00
al-style-review.md knowledge(style): a new procedure that changes the page's current record should take it as var Record (#216) 2026-10-05 14:42:22 +02:00
al-telemetry-review.md Add bounded knowledge retrieval (#179) 2026-09-11 12:35:31 +02:00
al-testing-review.md 2 AL/BC patterns: TableRelation field length and RecordRef.Open Temp parameter (#208) 2026-10-06 13:30:37 +02:00
al-ui-review.md UI knowledge: notification recall needs a known Id; open mixed-type documents through Page Management (#214) 2026-10-06 13:30:59 +02:00
al-upgrade-review.md knowledge(upgrade): upgrade code must not use ChangeCompany (#210) 2026-10-02 11:35:11 +02:00
al-web-services-review.md 18 more AL/BC patterns: data-modeling, testing, style, security, error-handling, ui, upgrade, web-services, appsource (#157) 2026-09-29 17:12:51 +02:00