Repository navigation
feat(ui): calmer plan + post-intake disclaimer modal gate (HOLD: lawyer sign-off) - #17
AnikaWilliams wants to merge 2 commits into
Conversation
Design-research-led overhaul to make the relocation guide less overwhelming
and legal-heavy while keeping every claim sourced and the disclaimer present.
- Remove the gold 'not legal advice' banner everywhere (intake, plan, waitlist).
- Post-intake DISCLAIMER MODAL GATE: a required, focus-trapped dialog (no
bypass) the user must confirm ('I've read and understand') before the plan
renders; also gates shared-link opens. Wording single-sourced from the
compliance-owned Disclaimer in new src/utils/disclaimer.ts; ack persisted in
localStorage rg-disclaimer-ack-v1.
- Task cards re-sequenced action-first (tldr -> steps -> documents); key facts,
legal citations and detail moved behind one 'Reference' fold; per-card
caveats consolidated into one 'Sources & legal notes' fold, with a short
always-visible 'not legal advice' line kept on each card (compliance).
- Plain-language intake options (drop L/B/C permit codes, 'concubinage');
stable phase-based progress (Your route -> situation -> details) with
progressbar a11y; warm all-breakpoint intro; quiet per-step momentum + a
calmer document gate.
Disclaimer remains in the modal + footer (every page) + per-card + Impressum +
the no-JS guide. Required Russia-sanctions notice untouched.
Verified: astro check 0 errors; build + provenance gate (15 pages); 277/277
tests; a11y review (modal focus-trap, ARIA, no-bypass) PASS; live preview of
the full flow. COMPLIANCE: CONDITIONAL — the modal-acknowledgement posture
(vs a persistent banner) needs human-lawyer sign-off before merge.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 83efe18140
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| const stepsInPhase = visibleSteps.filter((s) => phaseOfStep(s.id) === currentPhaseId); | ||
| const idxInPhase = stepsInPhase.findIndex((s) => s.id === currentStep.id); |
There was a problem hiding this comment.
Use a stable denominator for phase progress
When selecting a branch that reveals additional questions, the progress bar moves backward because stepsInPhase.length is recalculated from the newly expanded visibleSteps. For example, the motivation step is 50% before a choice, then selecting work changes it to 25%; selecting “I have a job offer” on work-status similarly drops that phase from 75% to 50%. This defeats the stated stable-progress behavior, so the fill should use a branch-stable denominator or be clamped against previously displayed progress.
Useful? React with 👍 / 👎.
| {link.lastVerified && ( | ||
| <span className="ml-1 text-xs text-slate-500">link verified {link.lastVerified}</span> | ||
| )} |
There was a problem hiding this comment.
Forward verification dates to the island
On every generated corridor page, these new verification labels never render because src/pages/[origin]/[destination]/index.astro projects summaries and step links into appTasks without their lastVerified fields (lines 27 and 34), even though the YAML claims contain those dates. Since the property is optional, no type check catches the omission; pass it through the projection so the newly added provenance UI receives the data.
Useful? React with 👍 / 👎.
…island - phaseProgressPct now divides by the phase's full step set (STEPS filtered by phase), not the branch-expanded visibleSteps, so revealing branch questions no longer shrinks the bar (motivation 50%->25%, work-status 75%->50% regressions). The numerator still counts visible phase steps passed, keeping fill monotonic. - index.astro appTasks projection now forwards lastVerified on task summary and step links so the provenance labels (CorridorApp.tsx 1562/1582/1599) actually render with the dates carried in the corridor YAML.
What & why
Design-research-led overhaul to make the relocation guide less overwhelming / legal-heavy and more encouraging, while keeping every claim sourced and the disclaimer present.
src/utils/disclaimer.ts; ack persisted inlocalStorage rg-disclaimer-ack-v1. No Esc/backdrop bypass.tldr → "What you'll do" steps → Documents, with key facts, legal citations and detail behind one "Reference" fold; the repeated caveats consolidated into one "Sources & legal notes" fold (a short "General guidance only — not legal advice." line stays always visible on each card, per compliance).Disclaimer remains in: the modal · the footer on every page · a per-card line + "Sources & legal notes" fold · Impressum · the no-JS guide. The required Russia-sanctions notice is untouched.
Verification
astro check0 errors · build + provenance gate (15 pages) · 277/277 tests · a11y review PASS (modal focus-trap, ARIA, no-bypass) · full flow confirmed live (modal gates → confirm reveals plan + persists; gold banner gone; canton-office links + cantonal fee notes intact).Coverage is technically intact, but moving from an always-visible banner to a one-time gate + collapsed notice is a legal-posture change outside the agents' authority. Lawyer must confirm:
Merge order (stacked)
Base is
fix/cantonal-cost-notes(PR #16) so this shows only the UI diff. Merge #16 → develop first (it has no hold), then retarget/merge this → develop after lawyer sign-off. As always,develop → mainis yours.Non-blocking follow-ups
a11y nits to polish later: phase-progress announcement already added; consider QA on very small viewports for the modal; both are noted.
🤖 Generated with Claude Code