mirror of
https://github.com/microsoft/BCQuality.git
synced 2026-10-06 15:16:56 +01:00
Merge pull request #10 from Curabis/feat/mandatory-breaking-changes-performance-gate
Make breaking-changes/performance review mandatory, not keyword-triggered
This commit is contained in:
commit
e8789141ee
1 changed files with 27 additions and 0 deletions
|
|
@ -66,6 +66,33 @@ Relevance filtering: `custom/` rules are always active in CURABIS repos — read
|
||||||
them all; use each file's frontmatter `domain`/`keywords` only to prioritize,
|
them all; use each file's frontmatter `domain`/`keywords` only to prioritize,
|
||||||
never to skip.
|
never to skip.
|
||||||
|
|
||||||
|
## Mandatory checks — breaking changes & performance
|
||||||
|
|
||||||
|
`community/` and `microsoft/` are normally consulted reactively, by matching
|
||||||
|
task keywords against `INDEX.md`. That is not enough for two domains where a
|
||||||
|
missed check is expensive: breaking changes (costly for both customer apps
|
||||||
|
and CURABIS AppSource apps) and the core performance anti-patterns Microsoft
|
||||||
|
warns AI tools specifically about (unbounded `FindSet`, missing
|
||||||
|
`SetLoadFields`, explicit `Commit()` inside a transaction). A task's own
|
||||||
|
wording rarely mentions "breaking" or "performance" even when it triggers
|
||||||
|
one — the trigger is the object type touched, not the request phrasing.
|
||||||
|
|
||||||
|
Before considering an AL task complete, consult
|
||||||
|
`microsoft/knowledge/breaking-changes/**` and `microsoft/knowledge/performance/**`
|
||||||
|
(via `INDEX.md` or `al_symbolsearch`, filtered to those two domains) — **regardless
|
||||||
|
of task wording** — whenever the diff:
|
||||||
|
|
||||||
|
- adds, renames, or removes a table or table extension field
|
||||||
|
- adds a procedure/event with public access, or changes the signature of one
|
||||||
|
that already has public access (obsoleting per BCQuality guidance beats
|
||||||
|
changing or deleting)
|
||||||
|
- adds or changes a permission set
|
||||||
|
- writes or modifies a loop that iterates a `Record` variable
|
||||||
|
(`FindSet`/`FindFirst`/`FindLast`), or calls `Commit()` explicitly
|
||||||
|
|
||||||
|
If none of these apply, skip — this is a targeted gate, not a blanket
|
||||||
|
re-read of both layers on every task.
|
||||||
|
|
||||||
## Action
|
## Action
|
||||||
|
|
||||||
CURABIS-ARCH-001: Logic belongs in codeunits, not pages.
|
CURABIS-ARCH-001: Logic belongs in codeunits, not pages.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue