Per-screen + per-server-helper audit. Identifies six deepening
opportunities ranked by leverage:
T1: §3.A per-question-type module bundle (highest leverage; closes a
real server-side date_ranked_choice validation gap; unblocks i18n)
T2: §3.C withOwnedInstance wrapper, §3.D findExistingSubmission helper,
§3.F testability gaps
T3: §3.B ChatPanel + FormEditor component extraction, §3.E
feedback_instances repository
Each candidate explained against the deletion test (LANGUAGE.md vocab):
modules, depth, locality, leverage, seams, adapters. Tier-1 is the only
load-bearing refactor; tier-2 are small independent wins; tier-3 is
medium-cost cleanup that gets easier after tier-1.
Anti-scope listed: no new deps, no CSS split, no real-time migration,
no auth tier on /f/[slug], no port/adapter for fdb (one adapter =
hypothetical seam, per LANGUAGE.md).
5 open questions for m at the end before any code lands.
Design only — no source files touched. Awaiting m's pick before any
coder shift.
Per-screen audit + 6 design principles + per-screen mockups + commit-by-commit
implementation plan + 7 open questions.
Boldest moves: collapse the 5-button-per-row admin list into a hover-revealed
⋯ menu with clickable status pill; fold the standalone Share section into the
detail-page header as an inline link strip; drop the JSON-questions textarea
from /new behind a <details> disclosure so the common path reads as four
inputs and a button.
No code touched — design only. Awaiting m's go before coder shift.
- README.md: stack, run-locally, test/check/build, structure tree, data
model summary, anti-abuse layers, scope notes, issue origin pointer.
- docs/plans/feedback-feature.md: copied verbatim from flexsiebels for
self-containment (single source of truth in this repo from now on).