Skip to content

feat(plan): plain-language reading surface — remove legal jargon, sources to fold - #19

Open
AnikaWilliams wants to merge 1 commit into
feat/interactive-journeyfrom
feat/plain-language
Open

AnikaWilliams wants to merge 1 commit into
feat/interactive-journeyfrom
feat/plain-language

Conversation

@AnikaWilliams

Copy link
Copy Markdown
Owner

What

Founder mandate: no legal jargon on the reading surface. Every statute/article/code reference is removed from what you read by default; the official sources are preserved in the "Sources & legal notes" fold.

  • Content (us-ch.yaml) — de-jargoned all default-visible prose across 15 tasks (titles, summaries, step text/tips, warnings, document descriptions): no more "Art. 30 para. 1 let. b FNIA", "Arts. 42-44", "SR 142.20", "FNIA/ASEO/VZAE/OASA", "concubinage". Rewritten in plain English with the legal meaning preserved — rights still read as rights; discretionary routes still read "may be granted / not guaranteed"; the unmarried-partner "no automatic right, canton's discretion" warning is intact.
  • Frontend (CorridorApp.tsx) — the law-named per-step source links move out of the "What you'll do" flow into the collapsed "Sources & legal notes" fold (grouped by step). The actionable "Your canton — Migrationsamt" link stays inline.
  • Provenance untouched — no sourceName/sourceUrl/keyFacts/detail/dates/status/ids/appliesIf changed. Precise citations remain in the Reference/Sources folds + source links, so "Verified against official sources" still holds.

Verification

  • Two-agent: content-researcher rewrote → independent fact-verifier PASS (no jargon remains, meaning preserved, no overstatement, provenance untouched) — logged in VERIFICATION_LOG.md.
  • compliance PASS (sources reachable in the fold; verified-sources promise holds; entitlement/discretion register preserved task-by-task).
  • astro check 0 errors · build + provenance gate (15 pages) · 281/281 tests (route + plan-correctness tripwires unchanged).
  • Live (Playwright): 0 legal-jargon hits on the reading surface; citations confirmed present in the fold. Screenshot reviewed.

Note

Removed a spurious FOUNDER-TLDR entry (claiming an "Apple HIG plugin" was added — it never was) that a workflow agent had added in error; caught by the independent verifier.

Scope & stack

us-ch only (the live corridor); the other 7 corridors' prose is a follow-up. Stacked on feat/interactive-journey. Merge order: #16 → #17 (lawyer) → #18 (journey) → this. develop → main is yours.

🤖 Generated with Claude Code

… to fold

Founder mandate: no legal jargon in the interface.

- content (us-ch.yaml): de-jargon all DEFAULT-VISIBLE prose across 15 tasks
  (titles, summary/tldr, step text/tips, warnings, document descriptions) —
  removed statute/act/article/code citations (FNIA, ASEO, VZAE, OASA,
  'Art. … para. … let. …', 'Arts. 42-44', SR codes, 'concubinage') and
  rewrote in plain English. The entitlement-vs-discretion meaning is preserved
  in substance (rights still read as rights; discretionary routes still read
  'may be granted / not guaranteed'; the unmarried-partner 'no automatic
  right' warning intact). No sourceName/sourceUrl/keyFacts/detail/provenance/
  cantons/ids/appliesIf changed — precise citations remain in the
  Reference/Sources folds, so provenance + the 'verified against official
  sources' promise hold.
- frontend (CorridorApp.tsx): move the law-named per-step source links out of
  the 'What you'll do' flow into the collapsed 'Sources & legal notes' fold
  (grouped by step); the actionable canton-office link stays inline.

Two-agent: content-researcher rewrote -> fact-verifier independently confirmed
no jargon remains + meaning preserved + provenance untouched (VERIFICATION_LOG
2026-06-14). compliance PASS (sources reachable, no overstatement). Verified
live (Playwright): 0 jargon hits on the reading surface; citations present in
the fold. astro check 0 errors; build + provenance gate (15 pages); 281 tests.

Also removed a spurious FOUNDER-TLDR entry (about an Apple HIG plugin that was
never installed) that a workflow agent had added in error.

Scope: us-ch; other 7 corridors' prose to follow.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@AnikaWilliams

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: fd8d391381

ℹ️ 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 stepSourceLinks = task.steps.flatMap((s, si) =>
(s.links ?? [])
.map((link, li) => ({ link, stepNumber: si + 1, key: `${si}-${li}` }))
.filter(({ link }) => link.cantonOffice !== true),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Keep non-legal step links inline

This filter applies to the shared TaskCard, so every link without cantonOffice: true is removed from the numbered steps across all published corridors, not just us-ch. In the checked Austria route, for example, links to the official Points Calculator, application/forms pages, and residence-registration service are now buried under “Sources & legal notes,” even though they are actionable destinations rather than legal citations. Scope this relocation to Swiss legal-reference links or explicitly distinguish source citations from action links.

Useful? React with 👍 / 👎.

appliesIf: "motivation == 'family' && familyJoineeStatus == 'citizen' && familyRelationship != 'unmarried-partner' && familyRelationship != 'parent'"
summary:
text: "The foreign spouse (and unmarried children under 18) of a Swiss citizen who live with the Swiss citizen are entitled to be granted a residence permit and to have it extended (Art. 42 para. 1 FNIA). The provisions on foreign spouses apply mutatis mutandis to registered partnerships of same-sex couples (Art. 52 FNIA). After a law-abiding and uninterrupted stay of five years, the spouse is entitled to a settlement permit if the integration criteria of Art. 58a FNIA are met."
text: "The foreign spouse (and unmarried children under 18) of a Swiss citizen who live with the Swiss citizen have a legal right to be granted a residence permit and to have it extended. The same rules apply equally to registered partnerships of same-sex couples. After living in Switzerland lawfully and without interruption for five years, the spouse has a right to a permanent settlement permit if the integration requirements are met."

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Move summary citations off the default surface

For this rewritten task, task.summary.sourceName is still rendered in the always-visible Source: row in TaskCard and contains FNIA, SR 142.20, Art. 42 and 52. The same occurs for several family, retirement, study, and insurance tasks, so opening a card still exposes exactly the statute/article/code jargon this change says should appear only inside the disclosure. Move or shorten that always-visible summary source label, rather than merely folding the per-step links.

Useful? React with 👍 / 👎.

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.

2 participants