Three independent fixes, one design doc:
- Bug A: /follow-ups filters cross-party rules out (claimant perspective drops
defendant follow-ups). Fix: backend returns all rows + new is_cross_party
computed field; UI badges as "Gegenseitig", default unchecked, muted style,
excluded from write-back.
- Bug B: Verfahrensablauf scenario flag checkboxes and result-view conditional
group are independent. SSoT: new paliad.projects.scenario_flags jsonb column
+ GET/PATCH /api/projects/{id}/scenario-flags. Both surfaces read on mount
and sync via DOM CustomEvent on document. Kontextfrei stays on localStorage.
- Bug C (added by head 10:45): four *.appeal_spawn events appear in Mode A
search but are spawn consequences, not real triggers. Fix: add
sr.is_spawn = false to SearchEvents WHERE block.
m's 8 design decisions (AskUserQuestion, 2 batches of 4) all landed on
recommendation:
- "Gegenseitig" badge / always-visible muted styling / cross-party wins
+ write-back excluded
- projects.scenario_flags jsonb / localStorage for kontextfrei
- Composite condition_expr checkbox disabled in result view
- DOM CustomEvent for sync, single-tab v1
- Terminal-leaf events (Duplik etc.) stay in picker — empty result is honest UX
Two worked examples:
- def_to_ccr claimant trigger → RoP.029.d (defendant) shown with Gegenseitig
badge + with_ccr conditional badge + write-back excluded
- Mode A search for "Berufung" → only upc.apl.unified.* triggers surface;
*.appeal_spawn rows hidden
- Verfahrensablauf ↔ result-view round-trip via PATCH + CustomEvent
No code yet — coder gate held per inventor SKILL. Design only.
Closes the inventor pass on m/paliad#148.