Fix Finance review applicability and ownership boundaries

Remove application-area gating and later VAT-field dependencies, align dynamic shared conventions, separate SCM ownership, and keep journal examples focused on the intended invariant.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
Jesper Schulz-Wedde 2026-09-17 18:10:21 +02:00
parent fa63d5526c
commit 7c17aa3ab8
18 changed files with 77 additions and 52 deletions

View file

@ -15,12 +15,13 @@ application-area: [all]
# AL Finance review
Reviews the `finance` knowledge domain. This is a leaf action skill composed by
`al-code-review`; it invokes no other skills. Application-area discovery is
broad enough for posting-linked dimensions, but source relevance is narrow.
`al-code-review`; it invokes no other skills. Application-area metadata does
not gate Finance coverage; resolved source records and operations do.
## Source
Use READ's **Bounded retrieval for review skills** workflow with
Apply the source-surface gate in Relevance before retrieving knowledge.
If it passes, use READ's **Bounded retrieval for review skills** workflow with
`-Domain finance`. Consume every catalog page across enabled layers, preserving
each exact path and applicability metadata. Do not select a top-k catalog or
deduplicate by basename. Open complete bodies only for exact Worklist paths,
@ -41,10 +42,20 @@ changed executable behavior involving at least one of these surfaces:
- General-journal construction or posting, journal-batch processing, or an
event subscriber whose resolved publisher is in the financial posting path.
- Writes or correction/application/reversal calls involving standard financial
ledger records, detailed customer/vendor entries, VAT entries, or G/L registers.
- Writes or correction/application/reversal calls involving `G/L Entry`,
`Cust. Ledger Entry`, `Vendor Ledger Entry`, `Detailed Cust. Ledg. Entry`,
`Detailed Vendor Ledg. Entry`, `VAT Entry`, or financial-posting/G/L-register
records.
- Dimension transfer or dimension-set mutation connected by visible data flow
to an existing journal, posting document, or financial ledger record.
to an existing general journal, financial posting document, or Finance-owned
ledger record.
Exclude `Item Ledger Entry`, `Value Entry`, Capacity/Warehouse entries,
`Item Application Entry`, and other inventory-posting records owned by SCM.
Do not adopt their findings when the SCM skill is absent or disabled. For one
inventory-originated posting bypass, equivalent findings have one SCM primary
owner; distinct independent financial defects remain Finance. Classify the
operation and actual record, not an inventory/finance word in a module name.
Return `not-applicable` when none is present. Imports, object names, comments,
read-only ledger displays, generic `Amount`/`Date`/`Open` fields, and calls to
@ -61,7 +72,7 @@ maps to the changed behavior; generic financial vocabulary is not enough.
The following deterministic cues must select their named articles even if
keyword ranking would otherwise omit them:
- Persistent standard financial ledger inserts reached from extension posting
- Persistent Finance-owned ledger inserts reached from extension posting
code — `post-ledger-entries-through-posting-codeunits`.
- Persisted general-journal lines posted through a line-codeunit loop or custom
aggregate check, with visible template/document/date balancing context —
@ -69,28 +80,30 @@ keyword ranking would otherwise omit them:
- Imported net/tax/gross values mapped into `Gen. Journal Line.Amount`, with
evidence of the VAT posting mode and posting-setup combination —
`normal-vat-journal-amount-includes-vat`.
- Persisted original accounting-value changes, deletion of posted rows, or
- Persisted original Finance accounting-value changes, deletion of Finance rows, or
fabricated reversal flags/links — `do-not-modify-or-delete-posted-ledger-entries`.
- Settlement/reopening code writing `Open`, closure fields, detailed
application amounts, or unapplication flags —
- Customer/vendor settlement/reopening code writing `Open`, closure fields,
detailed customer/vendor application amounts, or unapplication flags —
`apply-ledger-entries-through-application-codeunits`.
- A due-date change persisted on an existing customer/vendor ledger entry —
`change-ledger-due-dates-through-entry-edit`.
- A `Reversal Entry.ReverseTransaction` or `ReverseRegister` argument with
visible ledger-entry, transaction, or register provenance —
`reverse-transactions-by-transaction-number`.
- A complete posting-dimension transfer represented by shortcut/global fields
or a `Dimension Set ID` assignment —
- A complete Finance posting-dimension transfer represented by shortcut/global
fields or a `Dimension Set ID` assignment —
`write-dimensions-as-dimension-set-entries`.
- A dimension/value membership change on `Dimension Set Entry`, reached from
a journal/document/ledger set ID — `do-not-edit-shared-dimension-sets`.
a general-journal/financial-document/Finance-ledger set ID —
`do-not-edit-shared-dimension-sets`.
These are retrieval cues, not findings. Use the selected articles' normative
exceptions to classify standard workflows, temporary records, operational
edits, and extension fields. Finance does not own generic custom-table/master
dimension wiring, number-series API migration, or general AL validation,
locking, transaction, and event-style advice. Do not add those concerns as
Finance agent findings.
exceptions and ownership boundaries to classify standard workflows, temporary
records, operational edits, and extension fields. Do not select a Finance
ledger rule from `*Ledger Entry` or `Insert`/`Modify` alone. Finance does not
own SCM records, generic custom-table/master dimension wiring, number-series
API migration, or general AL validation, locking, transaction, and event-style
advice. Do not add those concerns as Finance agent findings.
Resolve actual normative conflicts across layers per READ and record suppressed
candidates per DO. Keep every remaining exact path in a stable worklist.
@ -109,7 +122,10 @@ about callers.
Use the most specific article for the correction: application-state, due-date,
and shared-dimension findings must not also become generic posted-row findings
for the same change. Emit `major` for a demonstrated financial-correctness
for the same change. Do not emit an equivalent Finance finding for the
financial-row leg of one SCM-owned inventory posting bypass; evaluate a
distinct financial defect only when its corrective action is independent.
Emit `major` for a demonstrated financial-correctness
violation and reserve `blocker` for directly evidenced destructive corruption
under DO's severity rules. Applicability alone produces no finding.