Edison sharpening runde 1: to regler faar skarpe kanter (Type A)

Foerste eval-runde nogensinde (korpus: Jernpladsen @ b7656b1, 36 pages,
77 testprocedurer) fandt to regler med uskarpe graenser:

- pages-must-not-contain-business-logic: undtagelse 3 tilfoejet -
  singleton-init-idiomet paa Cue/Activities-pages (if not Get then
  Init+Insert i OnOpenPage) er praesentations-bootstrap, ikke
  forretningslogik. Basisappen bruger samme moenster paa alle cue-pages.
  Evidens: reglen flagede ScrapDealerActivities; adjudikeret FP.
  Precision som skrevet: 0,67 (2 TP / 1 FP) - de to TP'er staar ved magt.

- test-one-when-per-test: flow-test-graensen defineret. Multi-WHEN er
  tilladt naar navnet deklarerer flowet, hver WHEN er en runde af EET
  scenarie, og THEN asserter den akkumulerede sluttilstand. Unit-tests
  beholder streng een-WHEN. Evidens: 5 bevidst runde-maerkede
  procedurer i SVPartialFlowTests, som reglen ikke kunne doemme.

Scorecards i PR-beskrivelsen. Rute: Edison -> Francis (Type A) ->
Immanuel -> Michael, jf. edison.agent.md Step 6.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Michael Dieringer 2026-07-02 08:04:22 +02:00
parent a6422aa038
commit 11eab57723
2 changed files with 32 additions and 1 deletions

View file

@ -18,10 +18,16 @@ In CURABIS codebases, pages serve exclusively as presentation layers. All busine
## Permitted Exceptions
Two specific scenarios allow deviation from this rule:
Three specific scenarios allow deviation from this rule:
1. **Setup Pages**: May directly read and write their own setup records
2. **Conversion Pages**: The designated "Run Conversion" page may invoke the conversion codeunit directly
3. **Cue/Activities Pages**: The standard singleton-initialization idiom in
`OnOpenPage` — `if not Rec.Get() then begin Rec.Init(); Rec.Insert(); end` —
is permitted. It bootstraps the page's own presentation-state record and is
the same pattern Microsoft uses on every base-app cue page; it is not
business logic. (Edison eval 2026-07-02, Jernpladsen @ b7656b1: the rule
flagged this idiom on an Activities page; adjudicated false positive.)
## Anti-Pattern Examples