Skip to content

feat(ui): cross-column constraints point-and-click in de app (#50)#56

Draft
StevenRamondt wants to merge 1 commit into
mainfrom
feat/50-constraints-ui
Draft

feat(ui): cross-column constraints point-and-click in de app (#50)#56
StevenRamondt wants to merge 1 commit into
mainfrom
feat/50-constraints-ui

Conversation

@StevenRamondt

Copy link
Copy Markdown
Contributor

Wat

Golf 3, deel 2 — het laatste issue van het UX-traject. De engine + CLI ondersteunen sinds #45 cross-column constraints via een YAML-schema; de app (primaire interface) had daar nog geen ingang voor.

#50 — Logische regels point-and-click

  • ui/config.render_constraints: niveau-2 expander "Logische regels (optioneel)" in stap 2 (Genereren), standaard ingeklapt.
    • Volgorde tussen kolommen via dropdowns: kolom A · ≤ / < / ≥ / > · kolom B, met toevoegen/verwijderen. Operator + kolomvolgorde → Inequality (strict bij </>).
    • Geldige combinaties via één multiselect (2+ kolommen) → FixedCombinations.
  • Geen YAML of tekst intypen; kolomnamen komen uit dropdowns (constraint-over-instructie).

Geen nieuwe engine-logica

core.synthesize.build_constraints(rules) is publiek gemaakt; _build_constraints(schema) delegeert ernaar. App (point-and-click) en CLI (schema) delen zo één vertaalpad rule-dict → sdv.cag. _run_tabular past de constraints toe via add_constraints vóór fit; botsende/ongeldige regels vallen in de bestaande foutafhandeling.

Detail

Ontwerp (ui-designer / ISGVO, lichte pass)

Contained niveau-2 component met in het issue al vastgelegde UI-spec → lichte ISGVO-pass i.p.v. volledige skill-ceremonie (conform de scope-gate uit de skill-evaluatie). Toegepast: Hicks (dropdowns beperken keuze), constraint-over-instructie (geen YAML), progressive disclosure (niveau 2), feedforward (regel in gewone taal getoond).

Tests & verificatie

Docs

  • docs/configuratie.md: app- én schema-pad beschreven (één vertaling).
  • docs/aan-de-slag.md: Logische regels bij stap 2.

Closes #50

De engine + CLI ondersteunen sinds #45 cross-column constraints via een YAML-
schema; de app had er nog geen ingang voor.

- ui/config.render_constraints: niveau-2 expander 'Logische regels (optioneel)' in
  stap 2. Volgorde tussen kolommen via dropdowns (≤/</≥/>) en geldige combinaties
  via multiselect — geen YAML. inequality_rule vertaalt operator-keuze naar de
  rule-vorm (kolomvolgorde × strict).
- core.synthesize.build_constraints publiek gemaakt; _build_constraints delegeert.
  App en CLI delen zo één vertaalpad rule-dict → sdv.cag (geen nieuwe engine-logica).
- _run_tabular past de constraints toe via add_constraints vóór fit; botsende/
  ongeldige regels vallen in de bestaande foutafhandeling.
- Regels resetten bij een nieuwe dataset (verwijzen naar oude kolommen).

Tests: inequality_rule-mapping (≤/</≥/>) + rule→build_constraints round-trip.
Geverifieerd met AppTest: constraints-UI rendert in stap 2, generatie-path werkt.

Closes #50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: cross-column constraints opgeven in de app (UI bovenop #45)

1 participant