|
| 1 | +--- |
| 2 | +name: regelrecht-scenario-traces |
| 3 | +description: Maakt regelrecht-scenario's vindbaar en hun norm-ketens leesbaar/geassert. Aan de invoerkant — vertaal een platte lijst leaf-parameters naar benoemde casus-assen + een herbruikbare persona-bibliotheek, met een reverse-lookup casus-matrix. Aan de uitvoerkant — maak de norm-keten zichtbaar via keten-checkpoints (assert elke knoop op het kritieke pad, niet alleen de endpoint) en golden-trace-snapshots + branch-coverage. Gebruik dit bij het schrijven of opschonen van scenario-/feature-files, het terugvinden of ontwerpen van een specifieke casus in een grote variabelenlijst, het reviewen van engine-traces, of het regressie-bestendig maken van cross-law-ketens zodat een ketenfout niet stil achter een correcte endpoint verdwijnt. Dossier-agnostisch; de regelrecht-methode is de vaste taal. Haakt aan op regelrecht-stelselanalyse (engine-tests / meta-check) en regelrecht-audit-products (testcase-scenario's). |
| 4 | +allowed-tools: Read, Write, Edit, Grep, Glob, Bash, AskUserQuestion, Agent |
| 5 | +--- |
| 6 | + |
| 7 | +# Regelrecht scenario's & traces — casus vindbaar, keten leesbaar |
| 8 | + |
| 9 | +Een dossier-agnostische techniek-skill die beide werk-skills delen: |
| 10 | +`regelrecht-audit-products` schrijft scenario's (de casus-kant), |
| 11 | +`regelrecht-stelselanalyse` reviewt traces (de keten-kant). Deze skill levert de |
| 12 | +*methode* om scenario's zó te modelleren dat (A) de casuïstiek terugvindbaar is en |
| 13 | +(B) de juridische logica-keten zichtbaar én geassert is. |
| 14 | + |
| 15 | +Geen casus-inhoud in de skill; concrete persona's, assen en norm-namen komen uit het |
| 16 | +corpus tijdens toepassing. |
| 17 | + |
| 18 | +## Het probleem dat deze skill oplost |
| 19 | + |
| 20 | +Een scenario dat alleen een handvol leaf-parameters flipt en de **endpoint** assert, |
| 21 | +verbergt twee dingen tegelijk: |
| 22 | + |
| 23 | +- **A — casus onvindbaar.** De casus ("welke persoon is dit?") bestaat alleen in je |
| 24 | + hoofd, in de scenario-titel en in comments. Met tientallen platte booleans moet je de |
| 25 | + mapping *persona → leafs* elke keer handmatig reverse-engineeren. Twee scenario's met |
| 26 | + identieke invoer maar een ander bedóeld onderscheid zien er identiek uit. |
| 27 | +- **B — keten onzichtbaar.** De engine berekent een keten van tussen-normen tussen de |
| 28 | + leafs en de endpoint. Alleen de endpoint asserten betekent: een *foute keten* die op |
| 29 | + jouw gesamplede casus toevallig dezelfde endpoint geeft, slipt er geluidloos door. En |
| 30 | + lezend is de juridische structuur niet uit het scenario te halen. |
| 31 | + |
| 32 | +## Kernprincipe: de ontbrekende middenlaag |
| 33 | + |
| 34 | +Tussen *menselijke casus* en *engine-output* zit een middenlaag die first-class, |
| 35 | +vindbaar én geassert moet zijn: |
| 36 | + |
| 37 | +``` |
| 38 | + menselijke casus ENGINE uitkomst |
| 39 | + "wie is deze persoon?" ─► leaf-feiten ─► keten ─► endpoint |
| 40 | + │ │ │ │ |
| 41 | + [A] benoemde persona ───────────┘ │ │ |
| 42 | + op casus-assen │ │ |
| 43 | + [B] benoemde norm-keten ┘ |
| 44 | + (keten-checkpoints + golden trace) |
| 45 | +``` |
| 46 | + |
| 47 | +- **Invoerkant (A):** geef de casus een naam en plaats hem op een paar **casus-assen**; |
| 48 | + bundel de leaf-deltas in een herbruikbare **persona**. → `references/casus-assen.md`, |
| 49 | + `references/persona-bibliotheek.md`. |
| 50 | +- **Uitvoerkant (B):** bepaal het **kritieke pad** door de YAML-DAG en assert *elke knoop* |
| 51 | + erop; leg de volledige trace vast als **golden snapshot** met branch-coverage. → |
| 52 | + `references/keten-checkpoints.md`, `references/golden-traces.md`. |
| 53 | + |
| 54 | +## De vier mechanismen |
| 55 | + |
| 56 | +| # | Mechanisme | Lost op | Reference / template | |
| 57 | +|---|---|---|---| |
| 58 | +| 1 | **Assen-groepering** — platte leaf-lijst → casus-assen (dimensie-reductie) | A | `references/casus-assen.md` | |
| 59 | +| 2 | **Persona-bibliotheek** — benoemde, herbruikbare leaf-bundel op de assen; twin-persona's (één-as-verschil) | A | `references/persona-bibliotheek.md` · `templates/persona-bibliotheek.md` · `templates/casus-matrix.md` | |
| 60 | +| 3 | **Keten-checkpoints** — assert elke knoop op het kritieke pad, niet alleen de endpoint | B | `references/keten-checkpoints.md` · `templates/keten-kaart.md` | |
| 61 | +| 4 | **Golden traces** — volledige trace snapshotten + diffen + branch-coverage | B | `references/golden-traces.md` · `templates/golden-trace-review.md` | |
| 62 | + |
| 63 | +Schaal naar de vraag: een snelle opschoning gebruikt 1+3; een regressie-bestendige |
| 64 | +cross-law-keten gebruikt alle vier. |
| 65 | + |
| 66 | +## Werkstroom |
| 67 | + |
| 68 | +1. **Vind de assen.** Reduceer de platte leaf-lijst tot een handvol onafhankelijke |
| 69 | + casus-assen (zie `references/casus-assen.md`). Groepeer de baseline-parameters per as |
| 70 | + — alleen al volgorde + kopjes maken de lijst scanbaar. |
| 71 | + |
| 72 | +2. **Bouw de persona-bibliotheek + casus-matrix.** Druk elke casus uit als benoemde |
| 73 | + bundel leaf-deltas op de assen (`templates/persona-bibliotheek.md`). Leg de |
| 74 | + reverse-lookup vast: persona ↔ scenario ↔ keten-pad ↔ uitkomst |
| 75 | + (`templates/casus-matrix.md`). Voeg twin-persona's toe waar een onderscheid anders |
| 76 | + onzichtbaar blijft. |
| 77 | + |
| 78 | +3. **Bepaal het kritieke pad & leg keten-checkpoints vast.** Leid uit de YAML de DAG van |
| 79 | + tussen-normen naar de endpoint af (`templates/keten-kaart.md`). Laat elk scenario |
| 80 | + *elke knoop op zijn pad* asserten, niet alleen de endpoint |
| 81 | + (`references/keten-checkpoints.md`). |
| 82 | + |
| 83 | +4. **Snapshot golden traces + branch-coverage.** Leg de volledige engine-trace per |
| 84 | + scenario vast en diff bij wijziging; rapporteer welke takken nog ongetest zijn |
| 85 | + (`references/golden-traces.md`, `templates/golden-trace-review.md`). |
| 86 | + |
| 87 | +5. **Voer de meta-check uit.** Maken de scenario's en de YAML dezelfde fout? Dan |
| 88 | + valideert de suite de YAML, niet de wet. Keten-checkpoints + golden-traces zijn het |
| 89 | + concrete wapen hiertegen — zie de hook naar `regelrecht-stelselanalyse`. |
| 90 | + |
| 91 | +6. **Schrijf naar het corpus/dossier, niet in de skill.** Persona's, matrices en |
| 92 | + trace-snapshots horen bij het corpus (bijv. `scenarios/`, `features/`, `docs/`). |
| 93 | + Wijzig nooit de skill-bestanden met casus-inhoud. Commit/push alleen op verzoek. |
| 94 | + |
| 95 | +## Bestanden in deze skill |
| 96 | + |
| 97 | +**references/** |
| 98 | +- `casus-assen.md` — van een platte leaf-lijst naar onafhankelijke casus-assen |
| 99 | + (dimensie-reductie); hoe je assen herkent en de baseline groepeert. |
| 100 | +- `persona-bibliotheek.md` — persona = benoemde leaf-bundel op de assen; expressievormen |
| 101 | + (Scenario Outline / custom `Given persona`-step / fixtures); twin-persona's. |
| 102 | +- `keten-checkpoints.md` — kritiek pad uit de YAML-DAG; de conventie "assert elke knoop"; |
| 103 | + sensitiviteits-/twin-scenario's; band met de features-vs-YAML meta-check. |
| 104 | +- `golden-traces.md` — volledige trace vastleggen, diffen, branch-coverage; wanneer wel/niet. |
| 105 | + |
| 106 | +**templates/** |
| 107 | +- `persona-bibliotheek.md` — persona | assen-coördinaat | leaf-deltas | keten-checkpoints | endpoint. |
| 108 | +- `casus-matrix.md` — reverse-lookup index: persona ↔ scenario ↔ keten-pad ↔ uitkomst. |
| 109 | +- `keten-kaart.md` — per endpoint de knoop-DAG met coverage-markering per schakel. |
| 110 | +- `golden-trace-review.md` — trace-snapshot-review + branch-coverage-rapport. |
| 111 | + |
| 112 | +## Routing & handoff |
| 113 | + |
| 114 | +Dit is een techniek-laag die beide werk-skills bedienen. Twijfel je waar te beginnen → |
| 115 | +`regelrecht-dossier`. Bij het ontwerpen van expert-testcases gebruikt |
| 116 | +`regelrecht-audit-products/templates/testcase-scenarios` deze persona-methode; bij |
| 117 | +regressie/validatie voert `regelrecht-stelselanalyse` (engine-tests + de |
| 118 | +features-vs-YAML meta-check) de keten-checkpoints + golden-traces uit. |
| 119 | + |
| 120 | +## Belangrijke regels |
| 121 | + |
| 122 | +- **Dossier-agnostisch blijven.** Geen vaste wet-namen, norm-namen, bedragen of |
| 123 | + casus-voorbeelden in de skill-bestanden. In *output* (corpus/features) mag casus-inhoud |
| 124 | + uiteraard wel. |
| 125 | +- **Assert de keten, niet alleen de endpoint.** Een groene endpoint met een ongeteste |
| 126 | + keten bewijst niets over de tussenstappen. |
| 127 | +- **Persona is de bron, scenario is de afgeleide.** Eén persona-definitie, hergebruikt |
| 128 | + over scenario's — niet dezelfde leaf-bundel telkens opnieuw met de hand. |
| 129 | +- **Twin-scenario's voor elk onderscheid dat het model niet vanzelf ziet.** Eén-as-verschil |
| 130 | + maakt de keten falsifieerbaar. |
| 131 | +- **Stille truncatie loggen.** Cap je coverage (top-N personas, niet alle takken) → meld |
| 132 | + expliciet wat je overslaat. |
0 commit comments