[
  {
    "file": "apps/staff/src/components/StaffGate.test.tsx",
    "line": 63,
    "name": "shows the staff sentence on a 403",
    "purpose": "shows the staff sentence on a 403",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText('This page is for Persynl staff.')).toBeInTheDocument() | expect(screen.queryByText('Queue is open')).toBeNull() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/components/StaffGate.test.tsx",
    "line": 70,
    "name": "returns to sign-in on 401 staff_session_expired",
    "purpose": "returns to sign-in on 401 staff_session_expired",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByRole('heading', { name: 'Staff sign-in' })).toBeInTheDocument() | expect(screen.queryByText('Queue is open')).toBeNull() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/components/StaffGate.test.tsx",
    "line": 78,
    "name": "opens the queue after a correct code without a reload",
    "purpose": "opens the queue after a correct code without a reload",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText('Queue is open')).toBeInTheDocument() | expect(screen.queryByRole('heading', { name: 'Staff sign-in' })).toBeNull() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/components/StaffGate.test.tsx",
    "line": 94,
    "name": "hides Ingest when /me omits is_admin",
    "purpose": "hides Ingest when /me omits is_admin",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByRole('link', { name: 'Staff' })).toBeInTheDocument() | expect(screen.queryByRole('link', { name: 'Ingest' })).toBeNull() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/layouts/AppShell.test.tsx",
    "line": 20,
    "name": "hides Staff from a verifier",
    "purpose": "hides Staff from a verifier",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.queryByRole('link', { name: 'Staff' })).toBeNull() | expect(screen.queryByRole('link', { name: 'Ingest' })).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/layouts/AppShell.test.tsx",
    "line": 27,
    "name": "hides Ingest from a lead who is not an operator",
    "purpose": "hides Ingest from a lead who is not an operator",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.queryByRole('link', { name: 'Ingest' })).toBeNull() | expect(screen.getByRole('link', { name: 'Staff' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/layouts/AppShell.test.tsx",
    "line": 33,
    "name": "shows Ingest to an operator",
    "purpose": "shows Ingest to an operator",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByRole('link', { name: 'Ingest' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/layouts/AppShell.test.tsx",
    "line": 38,
    "name": "shows Staff to a lead",
    "purpose": "shows Staff to a lead",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByRole('link', { name: 'Staff' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/lib/caseActions.test.ts",
    "line": 58,
    "name": "ignores a cleared report when logging a call",
    "purpose": "ignores a cleared report when logging a call",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(openReports([hold(), hold({ id: 'gone', cleared_at: '2026-10-13T00:00:00Z' })]).map((item) => item.id)).toEqual(['block-1']). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/lib/caseActions.test.ts",
    "line": 62,
    "name": "stays closed until who and what are chosen",
    "purpose": "stays closed until who and what are chosen",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(raiseReady('', '')).toBe(false) | expect(raiseReady('executor:quinn', '')).toBe(false). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/lib/caseActions.test.ts",
    "line": 70,
    "name": "sends the person who was picked, not the member chosen before them",
    "purpose": "sends the person who was picked, not the member chosen before them",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(raisePayload('executor:quinn', 'member_alive', 'email', 'amy', [quinn])).toEqual({ trigger: 'named_report', said: 'member_alive', reporter_role: 'executor', reporter_person_id: 'quinn', reporter_designation_id: null, source: 'email', }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/lib/caseActions.test.ts",
    "line": 81,
    "name": "sends the member after the member is chosen",
    "purpose": "sends the member after the member is chosen",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(raisePayload(MEMBER_WHO, 'member_alive', 'staff_call', 'amy', [quinn])).toMatchObject({ trigger: 'member_contact', reporter_role: 'member', reporter_person_id: 'amy', }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/lib/caseActions.test.ts",
    "line": 89,
    "name": "sends no person for an unmatched caller",
    "purpose": "sends no person for an unmatched caller",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(raisePayload(UNMATCHED_WHO, 'did_not_want', 'voicemail', 'amy', [quinn])).toEqual({ trigger: 'lead_manual', said: 'did_not_want', reporter_role: 'unmatched', reporter_person_id: null, reporter_designation_id: null, source: 'voicemail', }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/lib/caseActions.test.ts",
    "line": 100,
    "name": "sends STOP as a text from the member",
    "purpose": "sends STOP as a text from the member",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(raisePayload(STOP_WHO, 'member_alive', 'staff_call', 'amy', [quinn])).toMatchObject({ trigger: 'member_stop', said: 'stop', reporter_role: 'member', reporter_person_id: 'amy', source: 'text', }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/lib/caseActions.test.ts",
    "line": 110,
    "name": "offers a two-Lead clear only when that path is ready",
    "purpose": "offers a two-Lead clear only when that path is ready",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(twoLeadReady(hold())).toBe(true) | expect(twoLeadReady(hold({ proposed_by_name: 'Ada' }))).toBe(false). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/lib/caseActions.test.ts",
    "line": 116,
    "name": "offers a certificate clear only with a listed certificate",
    "purpose": "offers a certificate clear only with a listed certificate",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(certificateClearReady(hold(), 'cert-1')).toBe(true) | expect(certificateClearReady(hold(), '')).toBe(false). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/lib/staffWords.test.ts",
    "line": 5,
    "name": "leaves a medical box key off the open check",
    "purpose": "leaves a medical box key off the open check",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(staffReason('name_matches', 'Amy')).toBe(\"This isn't ready yet.\") | expect(readinessLabel('medical_paper', 'Amy', 'name_matches')).toBe('The medical paper is checked'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/lib/staffWords.test.ts",
    "line": 12,
    "name": "uses the stop phrase on an unwell case",
    "purpose": "uses the stop phrase on an unwell case",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(staffReason('an unresolved block stands', 'Amy', true)).toBe('Someone said to stop for Amy') | expect(readinessLabel('no_hold', 'Amy', undefined, true)).toBe('Nobody has said to stop for Amy'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/lib/staffWords.test.ts",
    "line": 19,
    "name": "shows a plain medical reason in those same words",
    "purpose": "shows a plain medical reason in those same words",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(readinessLabel('medical_paper', 'Amy', 'Name matches')).toBe('Name matches') | expect(staffReason('Name matches', 'Amy')).toBe('Name matches'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/lib/stepInStaff.test.ts",
    "line": 28,
    "name": "fetches with the auth helper and saves the disposition filename",
    "purpose": "fetches with the auth helper and saves the disposition filename",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(authedFetch).toHaveBeenCalledWith('/api/staff/requests/req-1/evidence/ev-1/file') | expect(anchor.download).toBe('certificate.pdf')",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "apps/staff/src/lib/whereItStands.test.ts",
    "line": 16,
    "name": "names each of the eleven phrases",
    "purpose": "names each of the eleven phrases",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(whereItStands(row({ owner_staff_person_id: '', owner_name: '' }))).toBe('Needs an owner') | expect(whereItStands(row({}))).toBe('Calling the family'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/lib/whereItStands.test.ts",
    "line": 30,
    "name": "uses the member when the name is blank or a pronoun",
    "purpose": "uses the member when the name is blank or a pronoun",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(firstName('')).toBe('') | expect(firstName('them')).toBe(''). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/lib/whereItStands.test.ts",
    "line": 39,
    "name": "gives an unwell block its own phrase",
    "purpose": "gives an unwell block its own phrase",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(whereItStands(row({ open_block_count: 1, event: 'incapacity' }))).toBe('Someone said to stop for Amy') | expect(whereItStands(row({ open_block_count: 1, event: 'death' }))).toBe('Someone said Amy is alive'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/AdminIngestHealthPage.test.tsx",
    "line": 92,
    "name": "says the page is for operators instead of admin only",
    "purpose": "says the page is for operators instead of admin only",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Only an operator can open Ingest.')).toBeInTheDocument() | expect(screen.queryByText('admin only')).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/AdminIngestHealthPage.test.tsx",
    "line": 99,
    "name": "treats any 403 as an operator page",
    "purpose": "treats any 403 as an operator page",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Only an operator can open Ingest.')).toBeInTheDocument() | expect(screen.queryByText('forbidden')).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/AdminIngestHealthPage.test.tsx",
    "line": 106,
    "name": "loads chassis, band counts, and the work list from extract-job APIs",
    "purpose": "loads chassis, band counts, and the work list from extract-job APIs",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Ingest' })).toBeInTheDocument() | expect(mockApi).toHaveBeenCalledWith('/api/admin/extract-jobs/summary'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/AdminIngestHealthPage.test.tsx",
    "line": 127,
    "name": "filters the work list by band without calling G1 ingest-failures",
    "purpose": "filters the work list by band without calling G1 ingest-failures",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(mockApi.mock.calls.some(([path]) => String(path).includes('band=failed'))).toBe(true). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/AdminIngestHealthPage.test.tsx",
    "line": 136,
    "name": "opens the job drawer and fetches GET /api/admin/extract-jobs/:id",
    "purpose": "opens the job drawer and fetches GET /api/admin/extract-jobs/:id",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByTestId('job-drawer')).toBeInTheDocument() | expect(mockApi.mock.calls.some(([path]) => String(path) === '/api/admin/extract-jobs/job-queued')).toBe(true). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 144,
    "name": "shows the member and the person who reported it",
    "purpose": "shows the member and the person who reported it",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 156,
    "name": "says Not on file when the member has no address",
    "purpose": "says Not on file when the member has no address",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 166,
    "name": "collapses take and shows the claimed sentence",
    "purpose": "collapses take and shows the claimed sentence",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion and title: test asserts rendered content/state and the title accurately summarizes that user-facing scenario. expect(await screen.findByText(/Taken by Ada/)).toBeInTheDocument() | expect(screen.getByText('You')).toBeInTheDocument()",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 181,
    "name": "disables Open from the server check and shows the reason",
    "purpose": "disables Open from the server check and shows the reason",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion and title: test asserts rendered content/state and the title accurately summarizes that user-facing scenario. expect(open).toBeDisabled() | expect(screen.getByText('Needs a logged call to Amy')).toBeInTheDocument()",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 191,
    "name": "posts Open only from Yes, open",
    "purpose": "posts Open only from Yes, open",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion and title: test asserts rendered content/state and the title accurately summarizes that user-facing scenario. expect(post).not.toHaveBeenCalled() | expect(screen.getByText(/This records Amy's death and opens what was set up for Mike/)).toBeInTheDocument()",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 202,
    "name": "shows who said the member is alive, and keeps the banned words off the page",
    "purpose": "shows who said the member is alive, and keeps the banned words off the page",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 215,
    "name": "shows Agree and tell to a second Lead and hides it from the proposer",
    "purpose": "shows Agree and tell to a second Lead and hides it from the proposer",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 246,
    "name": "keeps account safety folded",
    "purpose": "keeps account safety folded",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 254,
    "name": "logs a reporter call only against a chosen report",
    "purpose": "logs a reporter call only against a chosen report",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 280,
    "name": "logs an unmatched report with the number the caller gave",
    "purpose": "logs an unmatched report with the number the caller gave",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 299,
    "name": "keeps Record off until who and what are chosen, and sends that person",
    "purpose": "keeps Record off until who and what are chosen, and sends that person",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion and title: test asserts rendered content/state and the title accurately summarizes that user-facing scenario. expect(record).toBeDisabled() | expect(post).not.toHaveBeenCalled()",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 331,
    "name": "sends no person for someone we could not match",
    "purpose": "sends no person for someone we could not match",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 346,
    "name": "hides what and how when the member texted STOP",
    "purpose": "hides what and how when the member texted STOP",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion and title: test asserts rendered content/state and the title accurately summarizes that user-facing scenario. expect(step.queryByRole('combobox', { name: 'What they said' })).toBeNull() | expect(step.queryByRole('combobox', { name: 'How they reached us' })).toBeNull()",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 363,
    "name": "hides Lead actions from a verifier and still lets them take the case",
    "purpose": "hides Lead actions from a verifier and still lets them take the case",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 397,
    "name": "shows the Lead actions when the server will accept them",
    "purpose": "shows the Lead actions when the server will accept them",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 424,
    "name": "shows Send it back on a waiting clear when the server says so",
    "purpose": "shows Send it back on a waiting clear when the server says so",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 432,
    "name": "shows Send it back when the server says a Lead may",
    "purpose": "shows Send it back when the server says a Lead may",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 457,
    "name": "does not offer Hand it back",
    "purpose": "does not offer Hand it back",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 464,
    "name": "says the read failed instead of pretending the case is clear",
    "purpose": "says the read failed instead of pretending the case is clear",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 482,
    "name": "says a case failed to load, and reserves the barred sentence for 403",
    "purpose": "says a case failed to load, and reserves the barred sentence for 403",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 494,
    "name": "offers a safety hold only for a recorded change",
    "purpose": "offers a safety hold only for a recorded change",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 519,
    "name": "opens a certificate through the session and skips a removed file",
    "purpose": "opens a certificate through the session and skips a removed file",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 539,
    "name": "names a funeral home as named, and does not show a raw reason",
    "purpose": "names a funeral home as named, and does not show a raw reason",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 554,
    "name": "hides a two-Lead clear until that path is ready, and after it is proposed",
    "purpose": "hides a two-Lead clear until that path is ready, and after it is proposed",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 573,
    "name": "posts the clear reason a Lead chose",
    "purpose": "posts the clear reason a Lead chose",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 586,
    "name": "offers Unfreeze and Unlock only while that lock stands",
    "purpose": "offers Unfreeze and Unlock only while that lock stands",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 603,
    "name": "hides certificate checks when the member removed the certificate",
    "purpose": "hides certificate checks when the member removed the certificate",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 614,
    "name": "shows the death date the claimant wrote",
    "purpose": "shows the death date the claimant wrote",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 633,
    "name": "disables Record when the people list did not load",
    "purpose": "disables Record when the people list did not load",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 642,
    "name": "hides Agree, Send it back, Unfreeze, and Unlock from a verifier",
    "purpose": "hides Agree, Send it back, Unfreeze, and Unlock from a verifier",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 663,
    "name": "requires where the number came from and a confirmed death before the funeral home answer",
    "purpose": "requires where the number came from and a confirmed death before the funeral home answer",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 686,
    "name": "offers the issuing office call while a report is open and a certificate is on the case",
    "purpose": "offers the issuing office call while a report is open and a certificate is on the case",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 716,
    "name": "does not offer the issuing office call when the only report is cleared",
    "purpose": "does not offer the issuing office call when the only report is cleared",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 727,
    "name": "reloads the case when an action is refused",
    "purpose": "reloads the case when an action is refused",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 742,
    "name": "ignores a case reload that finishes after the page moved on",
    "purpose": "ignores a case reload that finishes after the page moved on",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 791,
    "name": "keeps raw keys and ids off the page",
    "purpose": "keeps raw keys and ids off the page",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 825,
    "name": "hides Freeze while a hold is on",
    "purpose": "hides Freeze while a hold is on",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 838,
    "name": "shows Log this call and Ask to a verifier who owns the case",
    "purpose": "shows Log this call and Ask to a verifier who owns the case",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 854,
    "name": "says someone else has the case when the viewer does not",
    "purpose": "says someone else has the case when the viewer does not",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 865,
    "name": "a non-owner sees no Open button",
    "purpose": "a non-owner sees no Open button",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 883,
    "name": "hides the member-call outcome from a non-owner",
    "purpose": "hides the member-call outcome from a non-owner",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 899,
    "name": "hides Log this call from a Lead who does not own the case",
    "purpose": "hides Log this call from a Lead who does not own the case",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 914,
    "name": "hides every action once the case is closed",
    "purpose": "hides every action once the case is closed",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 959,
    "name": "shows the server sentence when an action is refused",
    "purpose": "shows the server sentence when an action is refused",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 969,
    "name": "shows how they reached us when that report is refused",
    "purpose": "shows how they reached us when that report is refused",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 980,
    "name": "does not call a lock a report that someone is alive",
    "purpose": "does not call a lock a report that someone is alive",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 1013,
    "name": "says a lifted hold once",
    "purpose": "says a lifted hold once",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 1032,
    "name": "uses who were for a freeze of the named people",
    "purpose": "uses who were for a freeze of the named people",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 1044,
    "name": "orders an unwell case and names the first missing box",
    "purpose": "orders an unwell case and names the first missing box",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 1121,
    "name": "records that someone said to stop on an unwell case",
    "purpose": "records that someone said to stop on an unwell case",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 1128,
    "name": "says someone said to stop under Open on an unwell case",
    "purpose": "says someone said to stop under Open on an unwell case",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 1146,
    "name": "titles an unwell case with a block as someone said to stop",
    "purpose": "titles an unwell case with a block as someone said to stop",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 1157,
    "name": "shows Mark recovered only on an open incapacity case",
    "purpose": "shows Mark recovered only on an open incapacity case",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/CasePage.test.tsx",
    "line": 1175,
    "name": "names the claimant on the estate guardian box",
    "purpose": "names the claimant on the estate guardian box",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/QueuePage.test.tsx",
    "line": 51,
    "name": "shows a new death case with no owner",
    "purpose": "shows a new death case with no owner",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('link', { name: 'Amy Whitfield' })).toBeInTheDocument() | expect(screen.getByText('Death')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/QueuePage.test.tsx",
    "line": 63,
    "name": "labels an unwell case Unwell",
    "purpose": "labels an unwell case Unwell",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Unwell')).toBeInTheDocument() | expect(screen.queryByText('incapacity')).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/QueuePage.test.tsx",
    "line": 70,
    "name": "shows a barred row as the event, the time, and a refusal, and the row does not open",
    "purpose": "shows a barred row as the event, the time, and a refusal, and the row does not open",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText(/You can't work this case\\./)).toBeInTheDocument() | expect(screen.getByText(/Death/)).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/QueuePage.test.tsx",
    "line": 88,
    "name": "filters by the counts and keeps the soonest clock first",
    "purpose": "filters by the counts and keeps the soonest clock first",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(links.map((link) => link.textContent)).toEqual(['Soon Person', 'Free Person', 'Later Person']) | expect(screen.getByRole('link', { name: 'Free Person' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/SeparatePeoplePage.test.tsx",
    "line": 13,
    "name": "requires a checked join and explicit confirmation, then submits the reviewed revision",
    "purpose": "requires a checked join and explicit confirmation, then submits the reviewed revision",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.queryByRole('button', { name: 'Confirm separation' })).toBeNull() | expect(api).toHaveBeenCalledWith('/api/staff/people/member/joins/join/separate', { method: 'POST', body: { revision: 'checked' } }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/SeparatePeoplePage.test.tsx",
    "line": 24,
    "name": "does not expose recovery to a verifier",
    "purpose": "does not expose recovery to a verifier",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.queryByRole('button')).toBeNull() | expect(api).not.toHaveBeenCalled(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/SeparatePeoplePage.test.tsx",
    "line": 29,
    "name": "discards the checked revision when the member changes",
    "purpose": "discards the checked revision when the member changes",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.queryByRole('button', { name: 'Confirm separation' })).toBeNull() | expect(api).toHaveBeenCalledTimes(1). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/StaffRolesPage.test.tsx",
    "line": 34,
    "name": "U1 a Lead sees the list and Grant posts email and role",
    "purpose": "U1 a Lead sees the list and Grant posts email and role",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Staff' })).toBeInTheDocument() | expect(screen.getByText('vera@persynl.com')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/StaffRolesPage.test.tsx",
    "line": 53,
    "name": "U2 a verifier does not see the screen",
    "purpose": "U2 a verifier does not see the screen",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.queryByRole('heading', { name: 'Staff' })).toBeNull() | expect(screen.queryByRole('button', { name: 'Grant' })).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/StaffRolesPage.test.tsx",
    "line": 60,
    "name": "U3 each refusal code shows its sentence",
    "purpose": "U3 each refusal code shows its sentence",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('button', { name: 'Grant' })).toBeInTheDocument() | expect(await screen.findByText(sentence)).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/StaffRolesPage.test.tsx",
    "line": 84,
    "name": "U4 there is no Remove button on your own row",
    "purpose": "U4 there is no Remove button on your own row",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('vera@persynl.com')).toBeInTheDocument() | expect(buttons).toHaveLength(1). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/StaffRolesPage.test.tsx",
    "line": 96,
    "name": "U5 Remove asks to confirm, then posts to that person",
    "purpose": "U5 Remove asks to confirm, then posts to that person",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText('Remove staff access for vera@persynl.com? They lose access immediately.')).toBeInTheDocument() | expect(api).toHaveBeenCalledWith( '/api/staff/roles/22222222-2222-4222-8222-222222222222/revoke', { method: 'POST', body: {} }, ). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/StaffRolesPage.test.tsx",
    "line": 112,
    "name": "U6 a failed remove says the change did not go through",
    "purpose": "U6 a failed remove says the change did not go through",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('That change did not go through.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/StaffSignInPage.test.tsx",
    "line": 19,
    "name": "says when a limited send can be tried again",
    "purpose": "says when a limited send can be tried again",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Too many tries. You can try again in 30 minutes.')).toBeInTheDocument() | expect(screen.queryByText('slow down')).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/StaffSignInPage.test.tsx",
    "line": 31,
    "name": "says when a limited verify can be tried again",
    "purpose": "says when a limited verify can be tried again",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Too many tries. You can try again in 15 minutes.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/StaffSignInPage.test.tsx",
    "line": 49,
    "name": "shows Sending while the code request is still running",
    "purpose": "shows Sending while the code request is still running",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('button', { name: 'Sending…' })).toBeDisabled() | expect(screen.queryByLabelText('Code')).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/StaffSignInPage.test.tsx",
    "line": 63,
    "name": "stays on the email step when the send fails",
    "purpose": "stays on the email step when the send fails",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText(\"We couldn't send a code. Try again.\")).toBeInTheDocument() | expect(screen.queryByLabelText('Code')).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/StaffSignInPage.test.tsx",
    "line": 73,
    "name": "stays on the email step when the send cannot reach the server",
    "purpose": "stays on the email step when the send cannot reach the server",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText(\"We couldn't send a code. Try again.\")).toBeInTheDocument() | expect(screen.queryByLabelText('Code')).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/StaffSignInPage.test.tsx",
    "line": 85,
    "name": "says 60 minutes when the wait is one hour",
    "purpose": "says 60 minutes when the wait is one hour",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Too many tries. You can try again in 60 minutes.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "apps/staff/src/pages/StaffSignInPage.test.tsx",
    "line": 96,
    "name": "rounds a 61 second wait up to 2 minutes",
    "purpose": "rounds a 61 second wait up to 2 minutes",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Too many tries. You can try again in 2 minutes.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/DashboardCard.test.tsx",
    "line": 15,
    "name": "exposes navigation only via the open arrow, linking to openTo",
    "purpose": "exposes navigation only via the open arrow, linking to openTo",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(link).toHaveAttribute('href', '/documents') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/DashboardCard.test.tsx",
    "line": 21,
    "name": "makes the whole card a single link for informational cards (no separate arrow)",
    "purpose": "makes the whole card a single link for informational cards (no separate arrow)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getAllByRole('link')).toHaveLength(1) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/DashboardCard.test.tsx",
    "line": 26,
    "name": "renders no link when there is no destination (body is never a tap target)",
    "purpose": "renders no link when there is no destination (body is never a tap target)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.queryByRole('link')).toBeNull() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/DocumentTypeChip.test.tsx",
    "line": 170,
    "name": "loads grouped kinds and does not show type keys in the menu",
    "purpose": "loads grouped kinds and does not show type keys in the menu",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion and title: test asserts rendered content/state and the title accurately summarizes that user-facing scenario. expect(within(dialog).getByRole('heading', { name: \"Change this document's kind\" })).toBeVisible() | expect(within(dialog).getByRole('option', { name: 'Retirement account' })).toBeInTheDocument()",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/components/DocumentTypeChip.test.tsx",
    "line": 192,
    "name": "writes nothing when the member cancels",
    "purpose": "writes nothing when the member cancels",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion and title: test asserts rendered content/state and the title accurately summarizes that user-facing scenario. expect(mockSetKind).not.toHaveBeenCalled() | expect(mockKindReread).not.toHaveBeenCalled()",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/components/DocumentTypeChip.test.tsx",
    "line": 211,
    "name": "saves a same-reader kind without rereading",
    "purpose": "saves a same-reader kind without rereading",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass. Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/DocumentTypeChip.test.tsx",
    "line": 246,
    "name": "leaves facts in place when the new kind has no reader",
    "purpose": "leaves facts in place when the new kind has no reader",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass. Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/DocumentTypeChip.test.tsx",
    "line": 273,
    "name": "prompts a confirmed reread when the server allows a different reader",
    "purpose": "prompts a confirmed reread when the server allows a different reader",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion and title: test asserts rendered content/state and the title accurately summarizes that user-facing scenario. expect(mockSetKind).toHaveBeenCalled() | expect(await screen.findByRole('heading', { name: 'Read it again as a Living will or advance directive?' })).toBeVisible()",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/components/DocumentTypeChip.test.tsx",
    "line": 318,
    "name": "does not reread when the member answers No after a confirmed different kind",
    "purpose": "does not reread when the member answers No after a confirmed different kind",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass. Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/DocumentTypeChip.test.tsx",
    "line": 345,
    "name": "shows the filed kind and filed-unread copy, not an unclear document",
    "purpose": "shows the filed kind and filed-unread copy, not an unclear document",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass. Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/DocumentTypeChip.test.tsx",
    "line": 361,
    "name": "offers useful clarification including Unsure only when the backend allows it",
    "purpose": "offers useful clarification including Unsure only when the backend allows it",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion and title: test asserts rendered content/state and the title accurately summarizes that user-facing scenario. expect(screen.getByRole('button', { name: \"Driver's license\" })).toBeVisible() | expect(screen.getByRole('button', { name: 'Non-driver state ID' })).toBeVisible()",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/components/DocumentTypeChip.test.tsx",
    "line": 389,
    "name": "does not invent a clarification control when the backend forbids it",
    "purpose": "does not invent a clarification control when the backend forbids it",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass. Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/DocumentTypeChip.test.tsx",
    "line": 401,
    "name": "shows an honest catalog error with retry and does not keep a stale menu",
    "purpose": "shows an honest catalog error with retry and does not keep a stale menu",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass. Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/DocumentTypeChip.test.tsx",
    "line": 414,
    "name": "surfaces stale CAS without queueing a second write",
    "purpose": "surfaces stale CAS without queueing a second write",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass. Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/DocumentTypeChip.test.tsx",
    "line": 434,
    "name": "does not apply a delayed 409 refresh after a newer fenced item update",
    "purpose": "does not apply a delayed 409 refresh after a newer fenced item update",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass. Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/DocumentTypeChip.test.tsx",
    "line": 478,
    "name": "does not apply a delayed 409 refresh after the chip unmounts",
    "purpose": "does not apply a delayed 409 refresh after the chip unmounts",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass. Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/DocumentTypeChip.test.tsx",
    "line": 508,
    "name": "does not apply a successful kind save after the chip unmounts",
    "purpose": "does not apply a successful kind save after the chip unmounts",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass. Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/DocumentTypeChip.test.tsx",
    "line": 545,
    "name": "does not apply a successful reread after the chip unmounts",
    "purpose": "does not apply a successful reread after the chip unmounts",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass. Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/DocumentTypeChip.test.tsx",
    "line": 586,
    "name": "does not apply a successful clarification after the chip unmounts",
    "purpose": "does not apply a successful clarification after the chip unmounts",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass. Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/DocumentTypeChip.test.tsx",
    "line": 628,
    "name": "allows in-flight filing and keeps the picker open across a poll update",
    "purpose": "allows in-flight filing and keeps the picker open across a poll update",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass. Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/DocumentTypeChip.test.tsx",
    "line": 666,
    "name": "posts the selected packet document_id, never documents[0]",
    "purpose": "posts the selected packet document_id, never documents[0]",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass. Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/DocumentTypeChip.test.tsx",
    "line": 693,
    "name": "corrects a mismatch with the server-provided kind and never calls it Worth a look",
    "purpose": "corrects a mismatch with the server-provided kind and never calls it Worth a look",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass. Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/DocumentTypeChip.test.tsx",
    "line": 718,
    "name": "hides old actions when the menu revision moved on, and does not reread with the fresh revision",
    "purpose": "hides old actions when the menu revision moved on, and does not reread with the fresh revision",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass. Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/DocumentTypeChip.test.tsx",
    "line": 736,
    "name": "hides new actions while the menu is still on an older revision",
    "purpose": "hides new actions while the menu is still on an older revision",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass. Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/DocumentTypeChip.test.tsx",
    "line": 757,
    "name": "sends the action stamp mapping_revision, not an unrelated menu revision",
    "purpose": "sends the action stamp mapping_revision, not an unrelated menu revision",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass. Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/DocumentTypeChip.test.tsx",
    "line": 793,
    "name": "uses the returned save snapshot for clarify when the parent has not rerendered",
    "purpose": "uses the returned save snapshot for clarify when the parent has not rerendered",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass. Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/DocumentTypeChip.test.tsx",
    "line": 828,
    "name": "does not enable mutation from a stale document prop when the authoritative list lacks that id",
    "purpose": "does not enable mutation from a stale document prop when the authoritative list lacks that id",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass. Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/DocumentTypeChip.test.tsx",
    "line": 852,
    "name": "shows Choose a kind after a fresh remap clears kind on the same document UUID",
    "purpose": "shows Choose a kind after a fresh remap clears kind on the same document UUID",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass. Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/EnumChoiceEditor.test.tsx",
    "line": 28,
    "name": "picking an approved option sends the canonical token, not the label",
    "purpose": "picking an approved option sends the canonical token, not the label",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(onPick).toHaveBeenCalledWith('checking') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/EnumChoiceEditor.test.tsx",
    "line": 34,
    "name": "exposes the choice group and Something else as an expander",
    "purpose": "exposes the choice group and Something else as an expander",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByRole('group', { name: 'Account type choices' })).toBeInTheDocument() | expect(somethingElse).toHaveAttribute('aria-expanded', 'false') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/EnumChoiceEditor.test.tsx",
    "line": 43,
    "name": "Something else stages a review with the trimmed raw text",
    "purpose": "Something else stages a review with the trimmed raw text",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(save).toBeDisabled() | expect(save).toBeEnabled() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/EnumChoiceEditor.test.tsx",
    "line": 56,
    "name": "a blank Something else cannot be saved",
    "purpose": "a blank Something else cannot be saved",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByRole('button', { name: /save as written/i })).toBeDisabled() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/EnumChoiceEditor.test.tsx",
    "line": 64,
    "name": "busy disables every control and the draft survives a failed save",
    "purpose": "busy disables every control and the draft survives a failed save",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByRole('button', { name: 'Checking' })).toBeDisabled() | expect(screen.getByRole('button', { name: /save as written/i })).toBeDisabled() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/EnumChoiceEditor.test.tsx",
    "line": 79,
    "name": "Back collapses the manual entry without calling onElse",
    "purpose": "Back collapses the manual entry without calling onElse",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(onElse).not.toHaveBeenCalled() | expect(screen.queryByRole('textbox', { name: /entered as something else/i })).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/FindingActions.snooze.test.tsx",
    "line": 33,
    "name": "posts one month and shows no choice group",
    "purpose": "posts one month and shows no choice group",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.queryByRole('group', { name: 'Remind me later' })).toBeNull() | expect(mockApi).toHaveBeenCalledWith('/api/me/worth-a-look/snooze', { method: 'POST', body: { id: afterDeath.id, fingerprint: afterDeath.fingerprint, interval: '1m' }, }) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/First72HoursGuidePrint.test.tsx",
    "line": 7,
    "name": "prints filled fields and skips blank rows",
    "purpose": "prints filled fields and skips blank rows",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByRole('heading', { name: 'What Grace prepared for you' })).toBeInTheDocument() | expect(screen.getByText('Call Ada first')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/IncomingSpouseInvites.test.tsx",
    "line": 22,
    "name": "asks for the inviter email only when accept requires a knowledge check",
    "purpose": "asks for the inviter email only when accept requires a knowledge check",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByLabelText(/enter the email address/)).toBeInTheDocument() | expect(screen.queryByRole('alert')).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/IncomingSpouseInvites.test.tsx",
    "line": 31,
    "name": "accepts an already verified invitation without the knowledge form",
    "purpose": "accepts an already verified invitation without the knowledge form",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.queryByTestId('incoming-spouse-invite-gate')).not.toBeInTheDocument() | expect(screen.queryByLabelText(/enter the email address/)).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/IncomingSpouseInvites.test.tsx",
    "line": 40,
    "name": "keeps Decide later available during the knowledge check",
    "purpose": "keeps Decide later available during the knowledge check",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByLabelText(/enter the email address/)).toBeInTheDocument() | expect(state.dismissIncomingInvite).toHaveBeenCalledWith('invite') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/IncomingSpouseInvites.test.tsx",
    "line": 49,
    "name": "refreshes after %s and releases the stale invitation",
    "purpose": "refreshes after %s and releases the stale invitation (parameterized: 2 cases)",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(state.refreshMe).toHaveBeenCalledTimes(2) | expect(screen.queryByTestId('incoming-spouse-invite-gate')).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/IncomingSpouseInvites.test.tsx",
    "line": 66,
    "name": "shows the inviter shown name on the heading and the decline confirm",
    "purpose": "shows the inviter shown name on the heading and the decline confirm",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByRole('heading', { name: 'Nora Lane invited you to link your Persynl accounts' })).toBeInTheDocument() | expect(confirm).toHaveBeenCalledWith(\"Decline Nora Lane's invitation?\") Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/IncomingSpouseInvites.test.tsx",
    "line": 76,
    "name": "fails when a missing inviter name puts Someone mid-sentence",
    "purpose": "fails when a missing inviter name puts Someone mid-sentence",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByRole('heading', { name: 'Someone invited you to link your Persynl accounts' })).toBeInTheDocument() | expect(screen.getByText('If you accept, you are linked as spouses. Persynl will try to move items marked for you to your account. Yo Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/IncomingSpouseInvites.test.tsx",
    "line": 95,
    "name": "says the role starts on accept, on the card and on the link screen",
    "purpose": "says the role starts on accept, on the card and on the link screen",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByTestId('incoming-step-in-line-card')).toHaveTextContent( 'Hana Quinn also named you to step in. Accepting starts that role too.', ) | expect(await screen.findByLabelText(/enter the email address/)).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/IncomingSpouseInvites.test.tsx",
    "line": 114,
    "name": "says nothing when the inviter named nobody",
    "purpose": "says nothing when the inviter named nobody",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByRole('button', { name: 'Accept' })).toBeInTheDocument() | expect(screen.queryByTestId('incoming-step-in-line-card')).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/IncomingSpouseInvites.test.tsx",
    "line": 132,
    "name": "shows the sentence after a refused accept, and retries nothing",
    "purpose": "shows the sentence after a refused accept, and retries nothing",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.queryByTestId('incoming-step-in-line-card')).not.toBeInTheDocument() | expect(await screen.findByTestId('incoming-step-in-line-card')).toHaveTextContent( 'Hana Quinn also named you to step in. Accepting starts that role too.', ) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/IncomingSpouseInvites.test.tsx",
    "line": 162,
    "name": "tells the partner to try again when the refusal cannot produce the sentence",
    "purpose": "tells the partner to try again when the refusal cannot produce the sentence",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByRole('alert')).toHaveTextContent( 'Try again. We could not confirm the note about stepping in yet.', ) | expect(screen.queryByTestId('incoming-step-in-line-card')).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ItemAccessPanel.test.tsx",
    "line": 132,
    "name": "drops a stale access reload that fails after a newer one succeeds",
    "purpose": "drops a stale access reload that fails after a newer one succeeds",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(mockShares).toHaveBeenCalledTimes(2) | expect(screen.queryByText('Unable to complete that. Please try again.')).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ItemAccessPanel.test.tsx",
    "line": 157,
    "name": "lists a person on My People who has no account and no Ready flag",
    "purpose": "lists a person on My People who has no account and no Ready flag",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByRole('option', { name: 'Sam Lee — Invite to join' })).toBeInTheDocument() | expect(screen.queryByRole('option', { name: /everyone|family|advisors/i })).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ItemAccessPanel.test.tsx",
    "line": 175,
    "name": "shares a seeded person through the access API and does not infer capability",
    "purpose": "shares a seeded person through the access API and does not infer capability",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(mockShare).toHaveBeenCalledWith('item-will', 'person-emily') | expect(await screen.findByText('Emily Whitfield can now open this document.')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ItemAccessPanel.test.tsx",
    "line": 207,
    "name": "updates the parent access label after a share without leaving the page",
    "purpose": "updates the parent access label after a share without leaving the page",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText('Only you can open it')).toBeInTheDocument() | expect(await screen.findByText('Emily Whitfield can open it')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ItemAccessPanel.test.tsx",
    "line": 242,
    "name": "locks when the server says the item can lock",
    "purpose": "locks when the server says the item can lock",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(mockLock).toHaveBeenCalledWith('item-will') | expect(onItemChange).toHaveBeenCalled() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ItemAccessPanel.test.tsx",
    "line": 252,
    "name": "grants after-I-die access with a person id",
    "purpose": "grants after-I-die access with a person id",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(mockGrant).toHaveBeenCalledWith('item-will', 'person-emily') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ItemAccessPanel.test.tsx",
    "line": 269,
    "name": "lets a Ready graph person be invited without a person id",
    "purpose": "lets a Ready graph person be invited without a person id",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(mockInvite).toHaveBeenCalledWith('item-will', 'nora@example.com') | expect(mockShare).not.toHaveBeenCalled() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ItemAccessPanel.test.tsx",
    "line": 307,
    "name": "requires a fresh invitation email after changing the sharing recipient",
    "purpose": "requires a fresh invitation email after changing the sharing recipient",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByLabelText('Email for the invitation')).toHaveValue('') | expect(screen.getByRole('button', { name: 'Invite to join' })).toBeDisabled() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ItemAccessPanel.test.tsx",
    "line": 333,
    "name": "reports email delivery %s from Invite someone by email and preserves the link",
    "purpose": "reports email delivery %s from Invite someone by email and preserves the link (parameterized: 2 cases)",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(mockInvite).toHaveBeenCalledWith('item-will', 'recipient@example.com') | expect(await screen.findByText(sent ? 'Invitation emailed. You can also share the link.' : 'No email was sent. Copy the link to share the invitation.')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ItemAccessPanel.test.tsx",
    "line": 349,
    "name": "hides share and lock when capabilities are false",
    "purpose": "hides share and lock when capabilities are false",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(mockShares).toHaveBeenCalled() | expect(screen.queryByRole('button', { name: 'Share' })).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ItemAccessPanel.test.tsx",
    "line": 361,
    "name": "shows the partner name and status on a joint item and never designate copy",
    "purpose": "shows the partner name and status on a joint item and never designate copy",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText('Who steps in on this shared record')).toBeInTheDocument() | expect(screen.getByText('Your partner named Nora Chen · Asked, waiting. Naming someone does not open these files.')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ItemAccessPanel.test.tsx",
    "line": 382,
    "name": "says a partner is named but not asked yet",
    "purpose": "says a partner is named but not asked yet",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText('Nora Chen is named but not asked yet.')).toBeInTheDocument() | expect(screen.queryByText(/Naming someone does not open these files/)).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ItemAccessPanel.test.tsx",
    "line": 401,
    "name": "uses Someone when a partner who is not asked is %j",
    "purpose": "uses Someone when a partner who is not asked is %j (parameterized: 2 cases)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText('Someone is named but not asked yet.')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ItemAccessPanel.test.tsx",
    "line": 417,
    "name": "lets a co-owner pull an ours item out of the default package without scores",
    "purpose": "lets a co-owner pull an ours item out of the default package without scores",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.queryByText(/\\d+ of \\d+/)).not.toBeInTheDocument() | expect(mockRevokeOurs).toHaveBeenCalledWith('item-will') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ItemAccessPanel.test.tsx",
    "line": 456,
    "name": "does not request partner settings for an unrelated read-only joint recipient",
    "purpose": "does not request partner settings for an unrelated read-only joint recipient",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(mockShares).toHaveBeenCalled() | expect(mockPartnerStepsIn).not.toHaveBeenCalled() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ItemAccessPanel.test.tsx",
    "line": 465,
    "name": "offers estate revocation on the survivor owned non-joint copy",
    "purpose": "offers estate revocation on the survivor owned non-joint copy",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(mockRevokeOurs).toHaveBeenCalledWith(item.id) | expect(mockPartnerStepsIn).not.toHaveBeenCalled() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ItemAccessPanel.test.tsx",
    "line": 472,
    "name": "separates the owner package recipient from the partner nomination",
    "purpose": "separates the owner package recipient from the partner nomination",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText('Your partner named Sam · Ready. Naming someone does not open these files.')).toBeInTheDocument() | expect(screen.getByText('This shared record is out of your default list for Alex. A grant made by hand is unchanged.')).toBeInThe Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ItemAccessPanel.test.tsx",
    "line": 481,
    "name": "uses Someone when the partner nomination has no name",
    "purpose": "uses Someone when the partner nomination has no name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText('Your partner named Someone · Ready. Naming someone does not open these files.')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ItemAccessPanel.test.tsx",
    "line": 487,
    "name": "uses Someone when the partner nomination is a pronoun",
    "purpose": "uses Someone when the partner nomination is a pronoun",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText('Your partner named Someone · Ready. Naming someone does not open these files.')).toBeInTheDocument() | expect(screen.queryByText(/named them/i)).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ItemAccessPanel.test.tsx",
    "line": 494,
    "name": "names the partner when nobody is nominated",
    "purpose": "names the partner when nobody is nominated",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText('Your partner has not named who steps in if Dave cannot.')).toBeInTheDocument() | expect(screen.queryByText(/if they cannot/)).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ItemAccessPanel.test.tsx",
    "line": 500,
    "name": "says the member when the unnominated partner has no name",
    "purpose": "says the member when the unnominated partner has no name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText('Your partner has not named who steps in if the member cannot.')).toBeInTheDocument() | expect(screen.queryByText(/if they cannot/)).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ItemAccessPanel.test.tsx",
    "line": 518,
    "name": "shows the server shown name in the share and grant pickers",
    "purpose": "shows the server shown name in the share and grant pickers",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findAllByRole('option', { name: 'Theodore' })).not.toHaveLength(0) | expect(screen.getAllByRole('option', { name: 'Michael Whitfield' }).length).toBeGreaterThan(0) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ItemAccessPanel.test.tsx",
    "line": 545,
    "name": "shares two same-name entries to their own person ids",
    "purpose": "shares two same-name entries to their own person ids",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(options.map((option) => option.textContent)).toEqual(['Choose a person', 'Frank Delgado', 'Frank Delgado']) | expect(options.map((option) => (option as HTMLOptionElement).value)).toEqual(['', 'person-frank-a', 'person-frank-b']) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ItemModeModal.test.tsx",
    "line": 27,
    "name": "explains and requires independent copies for Ours to Yours",
    "purpose": "explains and requires independent copies for Ours to Yours",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText(/independent editable copy/i)).toBeInTheDocument() | expect(screen.getByRole('button', { name: 'Save change' })).toBeDisabled() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/PeoplePlans.test.tsx",
    "line": 22,
    "name": "shows sourced jobs from own documents and leaves reverse roles to the person page (22)",
    "purpose": "shows sourced jobs from own documents and leaves reverse roles to the person page (22)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByRole('heading', { name: 'If something happens to you' })).toBeInTheDocument() | expect(within(health).getByRole('link', { name: \"Named as health care agent in Amy's directive\" })).toHaveAttribute('href', '/items/packet?document=amy-health') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/PeoplePlans.test.tsx",
    "line": 33,
    "name": "keeps an executor who has passed and asks for someone new (23)",
    "purpose": "keeps an executor who has passed and asks for someone new (23)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(executor).toHaveTextContent('Michael Whitfield, who has passed. Name someone new.') | expect(within(executor).getByRole('link', { name: 'Name someone new.' })).toHaveAttribute('href', '/documents') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/PeoplePlans.test.tsx",
    "line": 44,
    "name": "does not infer a death from the step-in status alone (264)",
    "purpose": "does not infer a death from the step-in status alone (264)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(executor).toHaveTextContent('Michael Whitfield') | expect(executor).not.toHaveTextContent('who has passed') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/PeoplePlans.test.tsx",
    "line": 51,
    "name": "uses a qualified empty state and a working document action without a score (24)",
    "purpose": "uses a qualified empty state and a working document action without a score (24)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(health).toHaveTextContent('No one found named for health care decisions.') | expect(within(health).getByRole('link', { name: 'Add your health care documents' })).toHaveAttribute('href', '/documents') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/PeoplePlans.test.tsx",
    "line": 59,
    "name": "lists every supported beneficiary source and the member choice, with source links (28)",
    "purpose": "lists every supported beneficiary source and the member choice, with source links (28)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByRole('heading', { name: 'In your plans' })).toBeInTheDocument() | expect(screen.getByRole('link', { name: \"Named as beneficiary in Michael's will\" })).toHaveAttribute('href', '/items/will?document=will-doc') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/PeoplePlans.test.tsx",
    "line": 72,
    "name": "shows a reverse role on You with whose document it is",
    "purpose": "shows a reverse role on You with whose document it is",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByRole('link', { name: \"Named as executor in Michael's will\" })).toHaveAttribute('href', '/items/packet?document=michael-will') | expect(screen.getByText('Document for Michael Whitfield')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/PeoplePlans.test.tsx",
    "line": 81,
    "name": "keeps the $status status on a step-in choice",
    "purpose": "keeps the $status status on a step-in choice (parameterized declaration)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText(`You named · ${want}`)).toBeInTheDocument() | expect(screen.queryByRole('link', { name: 'Steps in for you' })).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/PeoplePlans.test.tsx",
    "line": 91,
    "name": "says the role waits for the partner when the invite is pending (asked=%s)",
    "purpose": "says the role waits for the partner when the invite is pending (asked=%s) (parameterized declaration)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText('You named · Waiting for Michael Quinn to accept your invite')).toBeInTheDocument() | expect(screen.queryByText(/Not asked yet/)).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/PersonJoinPanel.test.tsx",
    "line": 35,
    "name": "shows one pair at a time and advances only after Different people is saved",
    "purpose": "shows one pair at a time and advances only after Different people is saved",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText('Nia Calder and Nina Calder')).toBeInTheDocument() | expect(screen.queryByText('Nia Calder and Another entry')).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/PersonJoinPanel.test.tsx",
    "line": 44,
    "name": "requires a name choice and submits that choice with the checked revision",
    "purpose": "requires a name choice and submits that choice with the checked revision",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(confirm).toBeDisabled() | expect(join.joinPeople).toHaveBeenCalledWith(pair, 'right', undefined) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/PersonJoinPanel.test.tsx",
    "line": 52,
    "name": "cancels without writing and explains a stale confirmation",
    "purpose": "cancels without writing and explains a stale confirmation",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(join.joinPeople).not.toHaveBeenCalled() | expect(await screen.findByRole('alert')).toHaveTextContent('These entries changed.') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/PersonJoinPanel.test.tsx",
    "line": 63,
    "name": "requires an explicit step-in position when the preview has two",
    "purpose": "requires an explicit step-in position when the preview has two",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByRole('button', { name: 'Make one person' })).toBeDisabled() | expect(join.joinPeople).toHaveBeenCalledWith(expect.objectContaining({ positions: expect.any(Array) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/PersonJoinPanel.test.tsx",
    "line": 71,
    "name": "keeps the dated Includes record while honoring the server separation window",
    "purpose": "keeps the dated Includes record while honoring the server separation window",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText(/Includes Nina Calder, joined/)).toBeInTheDocument() | expect(screen.queryByRole('button', { name: 'Separate' })).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/PersonJoinPanel.test.tsx",
    "line": 77,
    "name": "ignores a preview response after leaving the person",
    "purpose": "ignores a preview response after leaving the person",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(join.joinPeople).not.toHaveBeenCalled() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/PersonJoinPanel.test.tsx",
    "line": 84,
    "name": "keeps actions disabled until the detail refresh after Separate finishes",
    "purpose": "keeps actions disabled until the detail refresh after Separate finishes",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(onChange).toHaveBeenCalled() | expect(screen.getByRole('button', { name: 'Same person as someone else?' })).toBeDisabled() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/PersonJoinPanel.test.tsx",
    "line": 97,
    "name": "refreshes a kept entry before navigating with its Undo notice",
    "purpose": "refreshes a kept entry before navigating with its Undo notice",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(onChange).toHaveBeenCalled() | expect(screen.queryByText('Opened /people/left')).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/PersonJoinPanel.test.tsx",
    "line": 110,
    "name": "opens an incoming kept entry without refreshing the old page",
    "purpose": "opens an incoming kept entry without refreshing the old page",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText('Opened /people/right')).toBeInTheDocument() | expect(onChange).not.toHaveBeenCalled() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ProfileMenu.test.tsx",
    "line": 36,
    "name": "renders the avatar chip with the member initials, menu closed",
    "purpose": "renders the avatar chip with the member initials, menu closed",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(trigger).toHaveTextContent('DM') | expect(trigger).toHaveAttribute('aria-expanded', 'false') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ProfileMenu.test.tsx",
    "line": 44,
    "name": "opens a menu with name, email, and both actions",
    "purpose": "opens a menu with name, email, and both actions",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByRole('menu')).toBeInTheDocument() | expect(screen.getByText('Dave Matlock')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ProfileMenu.test.tsx",
    "line": 54,
    "name": "navigates to /profile from Profile settings",
    "purpose": "navigates to /profile from Profile settings",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(navigate).toHaveBeenCalledWith('/profile') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ProfileMenu.test.tsx",
    "line": 61,
    "name": "signs out then routes to /login",
    "purpose": "signs out then routes to /login",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(signOut).toHaveBeenCalledTimes(1) | expect(navigate).toHaveBeenCalledWith('/login') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ProfileMenu.test.tsx",
    "line": 69,
    "name": "closes on Escape",
    "purpose": "closes on Escape",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByRole('menu')).toBeInTheDocument() | expect(screen.queryByRole('menu')).toBeNull() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ProtectedRoute.test.tsx",
    "line": 50,
    "name": "lets a member with the server minimum open home and import without a cached name",
    "purpose": "lets a member with the server minimum open home and import without a cached name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText('Home')).toBeInTheDocument() | expect(screen.getByText('Import surface')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ProtectedRoute.test.tsx",
    "line": 61,
    "name": "keeps an unfinished member on onboarding except the guided import queue",
    "purpose": "keeps an unfinished member on onboarding except the guided import queue",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText('Onboarding form')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ProtectedRoute.test.tsx",
    "line": 66,
    "name": "opens the guided wrap while the checklist queue is in session",
    "purpose": "opens the guided wrap while the checklist queue is in session",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText('Import surface')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ProtectedRoute.test.tsx",
    "line": 72,
    "name": "sends /import?onboarding=1 back to onboarding when the queue is missing",
    "purpose": "sends /import?onboarding=1 back to onboarding when the queue is missing",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText('Onboarding form')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ProtectedRoute.test.tsx",
    "line": 77,
    "name": "lets a member who just finished stay on onboarding long enough to open the report",
    "purpose": "lets a member who just finished stay on onboarding long enough to open the report",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText('Onboarding form')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ProtectedRoute.test.tsx",
    "line": 84,
    "name": "keeps a completed member on the optional wizard while who-for is still in session",
    "purpose": "keeps a completed member on the optional wizard while who-for is still in session",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText('Onboarding form')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ProtectedRoute.test.tsx",
    "line": 91,
    "name": "keeps documents open after an upload while the checklist queue is still in session",
    "purpose": "keeps documents open after an upload while the checklist queue is still in session",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText('Documents')).toBeInTheDocument() | expect(authState.completeOnboarding).not.toHaveBeenCalled() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ProtectedRoute.test.tsx",
    "line": 105,
    "name": "lets a completed member open /documents once names are saved",
    "purpose": "lets a completed member open /documents once names are saved",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText('Home')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/RetryReadAction.test.tsx",
    "line": 17,
    "name": "keeps one request in flight and replays the same failed id after a lost response",
    "purpose": "keeps one request in flight and replays the same failed id after a lost response",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(retryItemExtraction).toHaveBeenCalledTimes(1) | expect(button).toBeDisabled() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/RetryReadAction.test.tsx",
    "line": 49,
    "name": "refreshes current state after a conflict and leaves the action retryable",
    "purpose": "refreshes current state after a conflict and leaves the action retryable",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByRole('alert')).toHaveTextContent('Another read is already current.') | expect(onConflict).toHaveBeenCalledTimes(1) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ScopeChangeModal.test.tsx",
    "line": 32,
    "name": "previews and changes visibility only through item scope endpoints",
    "purpose": "previews and changes visibility only through item scope endpoints",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(authedJSON).toHaveBeenCalledWith('/api/items/item%2Fone/scope') | expect(authedJSON).toHaveBeenCalledWith('/api/items/item%2Fone/scope', { method: 'POST', body: { target_scope: 'shared' }, }) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ScopeChangeModal.test.tsx",
    "line": 59,
    "name": "makes a shared item private through POST /api/items/:id/scope",
    "purpose": "makes a shared item private through POST /api/items/:id/scope",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(authedJSON).toHaveBeenCalledWith('/api/items/item-ours/scope') | expect(authedJSON).toHaveBeenCalledWith('/api/items/item-ours/scope', { method: 'POST', body: { target_scope: 'private' }, }) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ScopeChangeModal.test.tsx",
    "line": 91,
    "name": "does not say only you when removing a spouse while someone else can still open it",
    "purpose": "does not say only you when removing a spouse while someone else can still open it",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(dialog.textContent).toMatch(/Stop sharing\\s+Will\\s+with\\s+Shannon/) | expect(dialog.textContent?.toLowerCase() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ScopeChangeModal.test.tsx",
    "line": 111,
    "name": "does not say only you when adding a spouse while someone else can already open it",
    "purpose": "does not say only you when adding a spouse while someone else can already open it",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(dialog.textContent).toMatch(/Share\\s+Will\\s+with\\s+Shannon/) | expect(dialog.textContent?.toLowerCase() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/SearchBox.test.tsx",
    "line": 23,
    "name": "searches after typing and shows results",
    "purpose": "searches after typing and shows results",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText('Will & testament')).toBeInTheDocument() | expect(screen.getByText('Document')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/SearchBox.test.tsx",
    "line": 40,
    "name": "shows an error line when search fails",
    "purpose": "shows an error line when search fails",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText(\"Search isn't working right now. Try again.\")).toBeInTheDocument() | expect(screen.queryByText('No matches')).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/SearchBox.test.tsx",
    "line": 48,
    "name": "does not search for a single character",
    "purpose": "does not search for a single character",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(mockApi).not.toHaveBeenCalled() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/UploadModal.test.tsx",
    "line": 32,
    "name": "visibly preselects Yours and offers spouse modes",
    "purpose": "visibly preselects Yours and offers spouse modes",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByRole('group', { name: 'Whose document is this?' })).toBeInTheDocument() | expect(screen.getByRole('radio', { name: /Yours/ })).toBeChecked() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/UploadModal.test.tsx",
    "line": 43,
    "name": "keeps a waiting invite nameless until a name exists",
    "purpose": "keeps a waiting invite nameless until a name exists",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(note).toHaveTextContent('Then it can belong to the invited person.') | expect(note.textContent ?? '').not.toMatch(/\\b(he|she|her|his|they|them|their|hers|theirs) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/UploadModal.test.tsx",
    "line": 64,
    "name": "shows no ownership-mode chrome without an eligible spouse",
    "purpose": "shows no ownership-mode chrome without an eligible spouse",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.queryByText('Whose document is this?')).not.toBeInTheDocument() | expect(screen.queryByText('Yours')).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ValueReviewSection.test.tsx",
    "line": 51,
    "name": "shows the approved guidance and resolves with the canonical token",
    "purpose": "shows the approved guidance and resolves with the canonical token",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText(VALUE_REVIEW_GUIDANCE)).toBeInTheDocument() | expect(onResolve).toHaveBeenCalledWith(expect.objectContaining({ id: 'review-1' }) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ValueReviewSection.test.tsx",
    "line": 58,
    "name": "keeps raw key text out of the member copy",
    "purpose": "keeps raw key text out of the member copy",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.queryByText('acct_subtype')).not.toBeInTheDocument() | expect(screen.getByText('Account type')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ValueReviewSection.test.tsx",
    "line": 64,
    "name": "revise flow stages a new raw text, never an enum pick",
    "purpose": "revise flow stages a new raw text, never an enum pick",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(onRevise).toHaveBeenCalledWith(expect.objectContaining({ id: 'review-1' }) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ValueReviewSection.test.tsx",
    "line": 73,
    "name": "save stays disabled for a blank or unchanged draft",
    "purpose": "save stays disabled for a blank or unchanged draft",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(save).toBeDisabled() | expect(save).toBeDisabled() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ValueReviewSection.test.tsx",
    "line": 85,
    "name": "withdraw calls onWithdraw",
    "purpose": "withdraw calls onWithdraw",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(onWithdraw).toHaveBeenCalledWith(expect.objectContaining({ id: 'review-1' }) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ValueReviewSection.test.tsx",
    "line": 91,
    "name": "shows questions without actions when the review surface is inactive",
    "purpose": "shows questions without actions when the review surface is inactive",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText('You entered “money market”.')).toBeInTheDocument() | expect(screen.getByText('Kept as written for now.')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ValueReviewSection.test.tsx",
    "line": 100,
    "name": "disables actions while a mutation is in flight",
    "purpose": "disables actions while a mutation is in flight",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByRole('button', { name: 'Checking' })).toBeDisabled() | expect(screen.getByRole('button', { name: /remove this question/i })).toBeDisabled() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ValueReviewSection.test.tsx",
    "line": 106,
    "name": "renders an accessible section and labelled choice group",
    "purpose": "renders an accessible section and labelled choice group",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByRole('heading', { name: 'Questions about this document' })).toBeInTheDocument() | expect(screen.getByRole('group', { name: 'Choices for Account type' })).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ValueReviewSection.test.tsx",
    "line": 112,
    "name": "accents only the claimed question row, without a count or warning color",
    "purpose": "accents only the claimed question row, without a count or warning color",
    "classification": "mixed",
    "restates": "partial",
    "reason": "Contains real output/interaction assertions plus an implementation-coupled subset. Restates evidence: Asserts internal CSS token class names `border-attention`, `error`, and `caution`. Assertion evidence: expect(screen.getByTestId('value-review-reminder-review-1')).toBeInTheDocument() | expect(screen.queryByTestId('value-review-reminder-review-2')).not.toBeInTheDocument()",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/ValueReviewSection.test.tsx",
    "line": 125,
    "name": "does not accent a claimed row for a reader",
    "purpose": "does not accent a claimed row for a reader",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.queryByTestId('value-review-reminder-review-1')).not.toBeInTheDocument() | expect(screen.getByText('You entered “money market”.')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/home/DocumentsCard.test.tsx",
    "line": 23,
    "name": "lists recent documents from the live endpoint",
    "purpose": "lists recent documents from the live endpoint",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText('Homeowners policy')).toBeInTheDocument() | expect(mockApi).toHaveBeenCalledWith('/api/home/recent-documents') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/home/DocumentsCard.test.tsx",
    "line": 40,
    "name": "shows a day-zero empty prompt when there are no documents",
    "purpose": "shows a day-zero empty prompt when there are no documents",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText(/Add your first document/i)).toBeInTheDocument() | expect(screen.queryByText(/Couldn't load your documents/i)).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/home/DocumentsCard.test.tsx",
    "line": 49,
    "name": "shows processing and failed status on rows",
    "purpose": "shows processing and failed status on rows",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText('Scan in progress')).toBeInTheDocument() | expect(screen.getByText('Processing…')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/home/JournalCard.test.tsx",
    "line": 49,
    "name": "lists entries without a share pill",
    "purpose": "lists entries without a share pill",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText('Dear diary')).toBeInTheDocument() | expect(screen.queryByText('Private')).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/home/JournalCard.test.tsx",
    "line": 60,
    "name": "writes an entry via POST",
    "purpose": "writes an entry via POST",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText('Write')).toBeInTheDocument() | expect(mockApi).toHaveBeenCalledWith('/api/journal-entries', { method: 'POST', body: { body_text: 'today was good' }, }) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/home/JournalCard.test.tsx",
    "line": 75,
    "name": "Speak opens the composer and starts Web Speech dictation",
    "purpose": "Speak opens the composer and starts Web Speech dictation",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByRole('button', { name: 'Speak' })).toBeInTheDocument() | expect(screen.getByLabelText('Journal entry')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/home/JournalCard.test.tsx",
    "line": 84,
    "name": "shows listening status, interim text, and Stop while dictating",
    "purpose": "shows listening status, interim text, and Stop while dictating",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText('Write')).toBeInTheDocument() | expect(screen.getByText(/listening/i)).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/home/JournalCard.test.tsx",
    "line": 99,
    "name": "surfaces mic permission errors while still allowing typing",
    "purpose": "surfaces mic permission errors while still allowing typing",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByRole('button', { name: 'Speak' })).toBeInTheDocument() | expect(screen.getByText(/permission to use your microphone/i)).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/home/JournalCard.test.tsx",
    "line": 111,
    "name": "hides Speak when Web Speech is unsupported",
    "purpose": "hides Speak when Web Speech is unsupported",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText('Write')).toBeInTheDocument() | expect(screen.queryByRole('button', { name: 'Speak' })).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/home/JournalCard.test.tsx",
    "line": 119,
    "name": "stops dictation on cancel and on successful save",
    "purpose": "stops dictation on cancel and on successful save",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByRole('button', { name: 'Speak' })).toBeInTheDocument() | expect(dictationState.stop).toHaveBeenCalled() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/home/TodoCard.test.tsx",
    "line": 23,
    "name": "shows active todos and hides completed ones",
    "purpose": "shows active todos and hides completed ones",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText('Call the attorney')).toBeInTheDocument() | expect(screen.queryByText('Old done thing')).toBeNull() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/home/TodoCard.test.tsx",
    "line": 35,
    "name": "shows an empty prompt when there are no todos",
    "purpose": "shows an empty prompt when there are no todos",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText(/add your first to-do/i)).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/home/TodoCard.test.tsx",
    "line": 41,
    "name": "adds a todo via POST",
    "purpose": "adds a todo via POST",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByLabelText('Add a to-do')).toBeInTheDocument() | expect(mockApi).toHaveBeenCalledWith('/api/todos', { method: 'POST', body: { content: 'buy salt' } }) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/home/TodoCard.test.tsx",
    "line": 52,
    "name": "completes a todo with a strikethrough + undo",
    "purpose": "completes a todo with a strikethrough + undo",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText('Renew passport')).toBeInTheDocument() | expect(mockApi).toHaveBeenCalledWith('/api/todos/1', { method: 'PATCH', body: { completed: true } }) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/home/WorthALookCard.test.tsx",
    "line": 30,
    "name": "leads with one finding",
    "purpose": "leads with one finding",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByTestId('home-lead-finding')).toHaveTextContent(/Robert Whitfield as executor/) | expect(screen.getByRole('link', { name: 'Review' })).toHaveAttribute('href', '/document/will-2014') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/home/WorthALookCard.test.tsx",
    "line": 52,
    "name": "marks a critical finding in red and keeps a standard finding on the attention icon",
    "purpose": "marks a critical finding in red and keeps a standard finding on the attention icon",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByRole('heading', { name: 'A few things worth a look' })).toBeInTheDocument() | expect(screen.getByTestId('finding-severity-critical')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/home/WorthALookCard.test.tsx",
    "line": 67,
    "name": "renders the self-testator will-attach CTA with a document link",
    "purpose": "renders the self-testator will-attach CTA with a document link",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText('This looks like your will.')).toBeInTheDocument() | expect(screen.getByRole('link', { name: 'This is your will' })).toHaveAttribute( 'href', '/document/will-self', ) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/home/WorthALookCard.test.tsx",
    "line": 82,
    "name": "shows a living-layer prompt when records exist and there are no findings",
    "purpose": "shows a living-layer prompt when records exist and there are no findings",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByTestId('home-all-clear')).toHaveTextContent(/journal note or a to-do/i) | expect(screen.queryByTestId('home-lead-finding')).toBeNull() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/home/WorthALookCard.test.tsx",
    "line": 97,
    "name": "hides finding chrome on day-zero",
    "purpose": "hides finding chrome on day-zero",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(container).toBeEmptyDOMElement() | expect(screen.queryByTestId('home-lead-finding')).toBeNull() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/home/WorthALookCard.test.tsx",
    "line": 111,
    "name": "shows an error state with a retry",
    "purpose": "shows an error state with a retry",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByRole('button', { name: /retry/i })).toBeInTheDocument() | expect(onRetry).toHaveBeenCalled() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/home/WorthALookCard.test.tsx",
    "line": 119,
    "name": "shows one lead and an \"N more on Worth a look\" note",
    "purpose": "shows one lead and an \"N more on Worth a look\" note",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByTestId('home-lead-finding')).toHaveTextContent('one') | expect(screen.getByRole('link', { name: '2 more on Worth a look' })).toHaveAttribute('href', '/alerts') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/home/WorthALookCard.test.tsx",
    "line": 132,
    "name": "does not post a follow-up nudge for a stale anchor",
    "purpose": "does not post a follow-up nudge for a stale anchor",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText('Alex has not accepted yet.')).toBeInTheDocument() | expect(urls.some((url) => url.includes('steps-in/nudge'))).toBe(false) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/nav/RailNav.test.tsx",
    "line": 16,
    "name": "marks the active route with aria-current=\"page\" (T17)",
    "purpose": "marks the active route with aria-current=\"page\" (T17)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByRole('link', { name: 'Home' })).toHaveAttribute('aria-current', 'page') | expect(screen.getByRole('link', { name: 'Documents' })).not.toHaveAttribute('aria-current') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/nav/RailNav.test.tsx",
    "line": 23,
    "name": "routes not-yet-built items to /coming-soon so nothing 404s",
    "purpose": "routes not-yet-built items to /coming-soon so nothing 404s",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByRole('link', { name: /Reminders/ })).toHaveAttribute('href', '/coming-soon') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/nav/RailNav.test.tsx",
    "line": 29,
    "name": "routes the live To-dos and Journal items to their real pages",
    "purpose": "routes the live To-dos and Journal items to their real pages",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByRole('link', { name: 'To-dos' })).toHaveAttribute('href', '/todos') | expect(screen.getByRole('link', { name: 'Journal' })).toHaveAttribute('href', '/journal') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/nav/RailNav.test.tsx",
    "line": 35,
    "name": "does not link Ingest from the member rail",
    "purpose": "does not link Ingest from the member rail",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.queryByRole('link', { name: 'Ingest' })).toBeNull() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/nav/RailNav.test.tsx",
    "line": 40,
    "name": "does not mark every soon item aria-current on /coming-soon (they are plain links)",
    "purpose": "does not mark every soon item aria-current on /coming-soon (they are plain links)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(current).toHaveLength(0) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/LifeDetailsSeen.test.tsx",
    "line": 32,
    "name": "lists who opened a document and confirms End access",
    "purpose": "lists who opened a document and confirms End access",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByRole('heading', { name: 'Who has seen your Life details' })).toBeInTheDocument() | expect(screen.getByText('Casey opened Living will on October 16, 2026')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/LifeDetailsSeen.test.tsx",
    "line": 47,
    "name": "shows an enabled End access button when the first name is blank",
    "purpose": "shows an enabled End access button when the first name is blank",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(button).toBeEnabled() | expect(end).toHaveBeenCalledWith('req-3') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/LifeDetailsSeen.test.tsx",
    "line": 71,
    "name": "calls the existing stop before Open",
    "purpose": "calls the existing stop before Open",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(stop).toHaveBeenCalledWith('req-2') | expect(end).not.toHaveBeenCalled() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInCopy.test.ts",
    "line": 10,
    "name": "uses the same words for the heading and the picker",
    "purpose": "uses the same words for the heading and the picker",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(WHO_STEPS_IN_HEADING).toBe(words) | expect(STEPS_IN_PICKER_LABEL).toBe(words) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInCopy.test.ts",
    "line": 18,
    "name": "names only for afterDeath=$afterDeath level=$level",
    "purpose": "names only for afterDeath=$afterDeath level=$level (parameterized declaration)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(text).not.toMatch(pronoun) | expect(shared).not.toMatch(pronoun) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInCopy.test.ts",
    "line": 42,
    "name": "uses no name when the person who asked has none",
    "purpose": "uses no name when the person who asked has none",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(text).toBe('You were named to step in after the person who asked dies. If that person can no longer handle things, you can see the health documents.') | expect(midSentenceSomeoneHits(text)).toEqual([]) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInCopy.test.ts",
    "line": 49,
    "name": "treats a pronoun name as blank",
    "purpose": "treats a pronoun name as blank",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(stepsInRequestCopy(name, false, true, 'health_papers')).toBe(blank) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInCopy.test.ts",
    "line": 56,
    "name": "uses the same five sentences as the invitation",
    "purpose": "uses the same five sentences as the invitation",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(stepsInRequestCopy('Dave', false, true, 'nothing')).toBe('Dave named you to step in after Dave dies.') | expect(stepsInRequestCopy('Dave', false, false, 'nothing')).toBe('Dave named you to help if Dave can no longer handle things.') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInCopy.test.ts",
    "line": 64,
    "name": "names the email field after the person",
    "purpose": "names the email field after the person",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(stepsInEmailLabel('Alex Kim')).toBe(\"Alex's email\") | expect(stepsInEmailLabel('')).toBe('Email') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInCopy.test.ts",
    "line": 72,
    "name": "states both answers on the choices line",
    "purpose": "states both answers on the choices line",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(stepsInChoicesLine(true, 'health_papers')).toBe( 'After my death: Yes. If I can no longer handle things: Health documents only.', ) | expect(stepsInChoicesLine(false, 'nothing')).not.toMatch(pronoun) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 174,
    "name": "uses one heading on My People, On my death, and onboarding, and a People save shows on On my death",
    "purpose": "uses one heading on My People, On my death, and onboarding, and a People save shows on On my death",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByRole('heading', { name: 'Who can open your records if something happens to you?' })).toBeInTheDocument() | expect(screen.getByRole('button', { name: 'Save who steps in' })).toBeEnabled() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 195,
    "name": "shows the request on Home and My People, and Accept answers it",
    "purpose": "shows the request on Home and My People, and Accept answers it",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText(copy)).toBeInTheDocument() | expect(screen.queryByText(/You already see what you two share/)).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 215,
    "name": "names the member on the request card and uses no pronoun",
    "purpose": "names the member on the request card and uses no pronoun",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(text).toBe(\"Casey named you to step in after Casey dies. If Casey can no longer handle things, you can see Casey's health documents.\") | expect(text).not.toMatch(/\\b(her|she|his|he|their|they|hers) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 226,
    "name": "adds the shared-records sentence only when the person who named you is your spouse",
    "purpose": "adds the shared-records sentence only when the person who named you is your spouse",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText(shared)).toBeInTheDocument() | expect(await screen.findByText(shared)).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 250,
    "name": "offers a will-only suggestion on My People and refuses a bad email",
    "purpose": "offers a will-only suggestion on My People and refuses a bad email",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByRole('option', { name: 'Alex Rivera' })).toBeInTheDocument() | expect(screen.getByRole('button', { name: 'Save who steps in' })).toBeDisabled() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 275,
    "name": "keeps Accept disabled after a stale request",
    "purpose": "keeps Accept disabled after a stale request",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByRole('button', { name: 'Accept' })).toBeDisabled() | expect(screen.getByText('Request is no longer available.')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 285,
    "name": "offers the spouse on My People and on On my death",
    "purpose": "offers the spouse on My People and on On my death",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByRole('button', { name: 'Name Shannon' })).toBeInTheDocument() | expect(screen.getByRole('button', { name: 'Name someone else' })).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 308,
    "name": "offers the invited partner first, with no second email ask",
    "purpose": "offers the invited partner first, with no second email ask",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText(/Michael Quinn/)).toBeInTheDocument() | expect(screen.getByText(/Invited, not joined yet/)).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 335,
    "name": "leaves people who have died out of My People, onboarding, and On my death",
    "purpose": "leaves people who have died out of My People, onboarding, and On my death",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(options.getByRole('option', { name: /Alex Kim/ })).toBeInTheDocument() | expect(await screen.findByRole('button', { name: 'Pia Agent · Financial power of attorney' })).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 396,
    "name": "never offers the member as their own choice",
    "purpose": "never offers the member as their own choice",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.queryByRole('option', { name: /Dana Reeve/ })).not.toBeInTheDocument() | expect(screen.getByRole('option', { name: /Alex Kim/ })).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 425,
    "name": "leaves a deceased person out of the picker",
    "purpose": "leaves a deceased person out of the picker",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.queryByRole('option', { name: /Shannon/ })).not.toBeInTheDocument() | expect(screen.getByRole('option', { name: /Alex Kim/ })).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 444,
    "name": "decides the picker from deceased, not the step-in status (264)",
    "purpose": "decides the picker from deceased, not the step-in status (264)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByRole('option', { name: /Vera Status/ })).toBeInTheDocument() | expect(screen.queryByRole('option', { name: /Shannon/ })).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 462,
    "name": "keeps a person who cannot be shared out of the picker, and still offers a will-only name",
    "purpose": "keeps a person who cannot be shared out of the picker, and still offers a will-only name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.queryByRole('option', { name: /Raw Name/ })).not.toBeInTheDocument() | expect(screen.getByRole('option', { name: /Alex Kim/ })).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 476,
    "name": "says who was named on My People",
    "purpose": "says who was named on My People",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText('Alex Kim is named to step in after you die and to help if you can no longer handle things.')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 484,
    "name": "says the death-only line when nothing opens while the member is alive",
    "purpose": "says the death-only line when nothing opens while the member is alive",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText('Alex Kim is named to open your records after you die.')).toBeInTheDocument() | expect(screen.queryByText('Alex Kim is named to help if you can no longer handle things.')).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 495,
    "name": "uses Someone when the saved name is a pronoun",
    "purpose": "uses Someone when the saved name is a pronoun",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText('Someone is named to open your records after you die.')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 505,
    "name": "says the help line when after my death is no and an if-unwell level is chosen",
    "purpose": "says the help line when after my death is no and an if-unwell level is chosen",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText('Alex Kim is named to help if you can no longer handle things.')).toBeInTheDocument() | expect(screen.queryByText(/after you die/)).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 516,
    "name": "does not save and says choose at least one when after my death is no and nothing opens while alive",
    "purpose": "does not save and says choose at least one when after my death is no and nothing opens while alive",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText('Choose at least one.')).toBeInTheDocument() | expect(saveStepsIn).not.toHaveBeenCalled() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 528,
    "name": "uses Someone when the saved name is blank",
    "purpose": "uses Someone when the saved name is blank",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText('Someone is named to open your records after you die.')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 538,
    "name": "says Invitation sent on My People and does not offer a copy link",
    "purpose": "says Invitation sent on My People and does not offer a copy link",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText('Invitation sent')).toBeInTheDocument() | expect(screen.queryByRole('button', { name: 'Copy link' })).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 548,
    "name": "says Invitation sent on On my death and does not offer a copy link",
    "purpose": "says Invitation sent on On my death and does not offer a copy link",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText('Invitation sent')).toBeInTheDocument() | expect(screen.queryByRole('button', { name: 'Copy link' })).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 558,
    "name": "copies the invite once on My People and keeps that link for the same ask",
    "purpose": "copies the invite once on My People and keeps that link for the same ask",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText('No email was sent.')).toBeInTheDocument() | expect(writeText).toHaveBeenCalledWith('https://app.test/signup') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 578,
    "name": "copies the invite once on On my death and keeps that link for the same ask",
    "purpose": "copies the invite once on On my death and keeps that link for the same ask",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText('No email was sent.')).toBeInTheDocument() | expect(writeText).toHaveBeenCalledWith('https://app.test/signup') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 598,
    "name": "shows Nobody named until someone is named, then Clear returns to that line",
    "purpose": "shows Nobody named until someone is named, then Clear returns to that line",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText('Nobody named')).toBeInTheDocument() | expect(screen.queryByRole('button', { name: 'Clear' })).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 620,
    "name": "renders the same choices on My People, On my death, and onboarding, and saving posts both answers",
    "purpose": "renders the same choices on My People, On my death, and onboarding, and saving posts both answers",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(within(box).getByRole('radio', { name: 'Health documents only' })).toBeChecked() | expect(within(box).getByRole('radio', { name: 'Yes' })).toBeChecked() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 677,
    "name": "shows the failed-load line and keeps Save unavailable on My People",
    "purpose": "shows the failed-load line and keeps Save unavailable on My People",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(within(box).getByText(choicesDidNotLoad)).toBeInTheDocument() | expect(within(box).queryByRole('radio', { name: 'Yes' })).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 704,
    "name": "keeps Save unavailable and shows no line before the choices have loaded on My People",
    "purpose": "keeps Save unavailable and shows no line before the choices have loaded on My People",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.queryByRole('radio', { name: 'Yes' })).not.toBeInTheDocument() | expect(screen.queryByText(choicesDidNotLoad)).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 717,
    "name": "does not name the spouse and says choose at least one when nothing is chosen",
    "purpose": "does not name the spouse and says choose at least one when nothing is chosen",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText('Choose at least one.')).toBeInTheDocument() | expect(saveStepsIn).not.toHaveBeenCalled() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 727,
    "name": "does not save on On my death and says choose at least one, without restoring a set-aside note",
    "purpose": "does not save on On my death and says choose at least one, without restoring a set-aside note",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText('No one, your choice')).toBeInTheDocument() | expect(await screen.findByText('Choose at least one.')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 745,
    "name": "does not continue onboarding and says choose at least one when nothing is chosen",
    "purpose": "does not continue onboarding and says choose at least one when nothing is chosen",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText('Choose at least one.')).toBeInTheDocument() | expect(saveStepsIn).not.toHaveBeenCalled() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 758,
    "name": "keeps Name Shannon unavailable before the choices have loaded on My People",
    "purpose": "keeps Name Shannon unavailable before the choices have loaded on My People",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(name).toBeDisabled() | expect(screen.queryByText(choicesDidNotLoad)).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 769,
    "name": "keeps Name Shannon unavailable after the choices failed to load on My People",
    "purpose": "keeps Name Shannon unavailable after the choices failed to load on My People",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText(choicesDidNotLoad)).toBeInTheDocument() | expect(name).toBeDisabled() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 781,
    "name": "keeps Save unavailable and shows no line before the choices have loaded on On my death",
    "purpose": "keeps Save unavailable and shows no line before the choices have loaded on On my death",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.queryByText(choicesDidNotLoad)).not.toBeInTheDocument() | expect(save).toBeDisabled() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 793,
    "name": "shows the failed-load line and keeps Save unavailable on On my death",
    "purpose": "shows the failed-load line and keeps Save unavailable on On my death",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText(choicesDidNotLoad)).toBeInTheDocument() | expect(save).toBeDisabled() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 816,
    "name": "keeps Name Shannon unavailable before the choices have loaded on On my death",
    "purpose": "keeps Name Shannon unavailable before the choices have loaded on On my death",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(name).toBeDisabled() | expect(screen.queryByText(choicesDidNotLoad)).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 827,
    "name": "keeps Name Shannon unavailable after the choices failed to load on On my death",
    "purpose": "keeps Name Shannon unavailable after the choices failed to load on On my death",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText(choicesDidNotLoad)).toBeInTheDocument() | expect(name).toBeDisabled() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 838,
    "name": "does not name a spouse on On my death when nothing is chosen",
    "purpose": "does not name a spouse on On my death when nothing is chosen",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(saveStepsIn).not.toHaveBeenCalled() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 847,
    "name": "says choose at least one when naming a spouse on On my death with nothing chosen",
    "purpose": "says choose at least one when naming a spouse on On my death with nothing chosen",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText('Choose at least one.')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 856,
    "name": "keeps Continue unavailable and shows no line before the choices have loaded on onboarding",
    "purpose": "keeps Continue unavailable and shows no line before the choices have loaded on onboarding",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.queryByText(choicesDidNotLoad)).not.toBeInTheDocument() | expect(save).toBeDisabled() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 871,
    "name": "stays on onboarding until the choices load again",
    "purpose": "stays on onboarding until the choices load again",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText(choicesDidNotLoad)).toBeInTheDocument() | expect(save).toBeDisabled() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/stepsInSurfaces.test.tsx",
    "line": 899,
    "name": "sends the choices the member is looking at with the name",
    "purpose": "sends the choices the member is looking at with the name",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(saveStepsIn).toHaveBeenCalledWith({ person_id: 'person-alex', entity_id: undefined, email: 'alex@example.test', after_death: false, incapacity_level: 'health_papers', }) | expect(authedJSON).toHaveBeenCalledWith('/api/me/steps-in', { method: 'PUT', body Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/unwellCopy.test.ts",
    "line": 8,
    "name": "uses %s and no pronoun",
    "purpose": "uses %s and no pronoun (parameterized: 2 cases)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(line).not.toMatch(PRONOUN) | expect(line).not.toMatch(RETIRED) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/unwellCopy.test.ts",
    "line": 17,
    "name": "uses the member or Someone when the name is blank or a pronoun",
    "purpose": "uses the member or Someone when the name is blank or a pronoun",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(physicianLine('him', ['Ada Chen'])).toBe(\"The member's doctor, as named in the member's health documents: Ada Chen.\") | expect(namedOr('', 'the member')).toBe('the member') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/unwellCopy.test.ts",
    "line": 30,
    "name": "starts with The member when the first name is %s",
    "purpose": "starts with The member when the first name is %s (parameterized: 17 cases)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(sentenceStart(namedOr(name, 'the member'))).toBe('The member') | expect(physicianLine(name, ['Ada Chen'])).toBe(\"The member's doctor, as named in the member's health documents: Ada Chen.\") Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/unwellCopy.test.ts",
    "line": 39,
    "name": "keeps My as a given name",
    "purpose": "keeps My as a given name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(namedOr('My', 'the member')).toBe('My') | expect(namedOr('My Whitfield', 'the member')).toBe('My Whitfield') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/unwellCopy.test.ts",
    "line": 45,
    "name": "names one doctor, or two or three doctors",
    "purpose": "names one doctor, or two or three doctors",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(physicianLine('Robert', ['Ada Chen'])).toBe(\"Robert's doctor, as named in Robert's health documents: Ada Chen.\") | expect(physicianLine('Robert', ['Ada Chen', 'Robin Quill'])).toBe(\"Robert's doctors, as named in Robert's health documents: Ada Chen and R Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/unwellCopy.test.ts",
    "line": 53,
    "name": "keeps the death stop label when the event is a death",
    "purpose": "keeps the death stop label when the event is a death",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(memberStopLabel(filers(['Ada']))).toBe(\"I'm alive. Ada doesn't need to step in.\") | expect(memberStopLabel(filers(['Ada']), 'incapacity')).toBe(\"I'm fine. Ada doesn't need to step in.\") Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/components/stepsIn/unwellCopy.test.ts",
    "line": 58,
    "name": "names one filer, both filers, or nobody",
    "purpose": "names one filer, both filers, or nobody",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(filers([])).toEqual({ kind: 'one', name: '' }) | expect(filers(['Shannon Whitfield'])).toEqual({ kind: 'one', name: 'Shannon Whitfield' }) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/config/nav.test.ts",
    "line": 5,
    "name": "primaryNavItems returns only isPrimary items and includes Home + Documents",
    "purpose": "primaryNavItems returns only isPrimary items and includes Home + Documents",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(primary.length).toBeGreaterThan(0) | expect(primary.every((item) => item.isPrimary)).toBe(true). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/config/nav.test.ts",
    "line": 14,
    "name": "navTarget sends live items to their real route and soon items to /coming-soon",
    "purpose": "navTarget sends live items to their real route and soon items to /coming-soon",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(navTarget(HOME_ITEM)).toBe('/') | expect(soon).toBeDefined(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/config/nav.test.ts",
    "line": 26,
    "name": "matches the approved-mockup taxonomy (Photos & videos + My people present, no Family history)",
    "purpose": "matches the approved-mockup taxonomy (Photos & videos + My people present, no Family history)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(labels).toContain('Photos & videos') | expect(labels).toContain('My people'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/contexts/AuthContext.invites.test.tsx",
    "line": 109,
    "name": "does not repost a cached display label through the legacy writer",
    "purpose": "does not repost a cached display label through the legacy writer",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByRole('heading', { name: /Who can open your records/i })).toBeInTheDocument() | expect(api.mock.calls.filter(([path]) => path === '/api/me/onboarding')).toHaveLength(0) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/contexts/AuthContext.invites.test.tsx",
    "line": 123,
    "name": "can invite a different person after an incoming invitation is %s",
    "purpose": "can invite a different person after an incoming invitation is %s (parameterized: 2 cases)",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByRole('button', { name: 'Continue' })).toBeEnabled() | expect(api).toHaveBeenCalledWith('/api/spouse-invite', { method: 'POST', body: { email: 'another@example.test', first_name: 'Shannon', last_name: 'Whitfield', incoming_invite_id: undefine Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/contexts/AuthContext.invites.test.tsx",
    "line": 194,
    "name": "retains the notice after the shared incoming gate unmounts",
    "purpose": "retains the notice after the shared incoming gate unmounts",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.queryByTestId('incoming-spouse-invite-gate')).not.toBeInTheDocument() | expect(screen.queryByLabelText(/enter the email address/)).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/contexts/AuthContext.invites.test.tsx",
    "line": 203,
    "name": "retains the notice after explicitly accepting a crossed onboarding invitation",
    "purpose": "retains the notice after explicitly accepting a crossed onboarding invitation",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText(/Persynl will try to move items Inviter Legal marked for you/)).toBeInTheDocument() | expect(screen.queryByText(/If you accept, items they marked for you move to your account/)).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/contexts/AuthContext.invites.test.tsx",
    "line": 228,
    "name": "retains the notice after token acceptance continues into the app",
    "purpose": "retains the notice after token acceptance continues into the app",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: { renderApp('/signup?invite=opaque'); fireEvent.click(await screen.findByRole('button', { name: 'Accept' })); fireEvent.change(screen.getByLabelText(/enter the email address/), { target: { value: 'inviter@example.test' } }); fireEvent.click(screen.getByRole('b Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/contexts/AuthContext.invites.test.tsx",
    "line": 240,
    "name": "retains the notice after new-account sign-in, explicit acceptance, and continuation",
    "purpose": "retains the notice after new-account sign-in, explicit acceptance, and continuation",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: { auth.getSession.mockResolvedValue({ data: { session: null }, error: null }); serverMe.onboarding.completed = false; renderApp('/signup?invite=opaque'); fireEvent.click(await screen.findByRole('button', { name: 'Accept' })); fireEvent.change(screen.getByLabel Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/contexts/AuthContext.login-work.test.tsx",
    "line": 55,
    "name": "hides old mapped data immediately for %s while the new read waits",
    "purpose": "hides old mapped data immediately for %s while the new read waits (parameterized: 2 cases)",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByRole('status')).toHaveTextContent(`${current.user.id}|none`) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/contexts/AuthContext.login-work.test.tsx",
    "line": 69,
    "name": "revokes displayed member state at sign-out start, before the SDK finishes",
    "purpose": "revokes displayed member state at sign-out start, before the SDK finishes",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByRole('status')).toHaveTextContent('signed-out|none') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/contexts/AuthContext.login-work.test.tsx",
    "line": 82,
    "name": "retains mapped data and does not hydrate again for ordinary token refresh",
    "purpose": "retains mapped data and does not hydrate again for ordinary token refresh",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByRole('status')).toHaveTextContent('member-a|old-login') | expect(vi.mocked(fetch).mock.calls.length).toBe(reads) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/contexts/AuthContext.login-work.test.tsx",
    "line": 92,
    "name": "never dispatches old completion with the next login bearer after %s",
    "purpose": "never dispatches old completion with the next login bearer after %s (parameterized: 2 cases)",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(sent.every((header) => header === ['Bearer', original.access_token].join(' '))).toBe(true) | expect(sent).not.toContain(['Bearer', current.access_token].join(' ') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/contexts/AuthContext.login-work.test.tsx",
    "line": 113,
    "name": "does not let an old sign-out completion erase a newly loaded login",
    "purpose": "does not let an old sign-out completion erase a newly loaded login",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByRole('status')).toHaveTextContent('member-b|new-login') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/contexts/AuthContext.test.tsx",
    "line": 116,
    "name": "signs into the D6 admin-confirmed identity and explicitly accepts without claiming an Auth session from signup",
    "purpose": "signs into the D6 admin-confirmed identity and explicitly accepts without claiming an Auth session from signup",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText('linked')).toBeInTheDocument() | expect(await screen.findByText('spouse loaded')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/contexts/AuthContext.test.tsx",
    "line": 125,
    "name": "preserves dismissal and selection on refocus and resets them for a new login",
    "purpose": "preserves dismissal and selection on refocus and resets them for a new login",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText('invite-1|invite-2|Member')).toBeInTheDocument() | expect(screen.getByText('||none')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/contexts/AuthContext.test.tsx",
    "line": 140,
    "name": "does not apply hydration from a signed-out identity",
    "purpose": "does not apply hydration from a signed-out identity",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(mockAuthedJSON).toHaveBeenCalled() | expect(screen.getByText('||none')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/contexts/AuthContext.test.tsx",
    "line": 151,
    "name": "keeps explicit refresh newer than the initial hydration",
    "purpose": "keeps explicit refresh newer than the initial hydration",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(mockAuthedJSON).toHaveBeenCalled() | expect(screen.getByText('||Latest')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/contexts/AuthContext.test.tsx",
    "line": 163,
    "name": "ignores initial getSession when %s already established the login",
    "purpose": "ignores initial getSession when %s already established the login (parameterized: 2 cases)",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText('||Member')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/contexts/AuthContext.test.tsx",
    "line": 173,
    "name": "post-accept hydration wins over sign-in hydration that resolves later",
    "purpose": "post-accept hydration wins over sign-in hydration that resolves later",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText('spouse loaded')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/contexts/AuthContext.test.tsx",
    "line": 189,
    "name": "hydrates through StrictMode effect remounting",
    "purpose": "hydrates through StrictMode effect remounting",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText('||Member')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/contexts/AuthContext.test.tsx",
    "line": 195,
    "name": "discards onboarding completion that was superseded by a newer refresh",
    "purpose": "discards onboarding completion that was superseded by a newer refresh",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText('||After accept')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/contexts/AuthContext.test.tsx",
    "line": 209,
    "name": "clears selected invitation after a fresh slice omits the %s row",
    "purpose": "clears selected invitation after a fresh slice omits the %s row (parameterized: 3 cases)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText('invite-1|invite-2|Member')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/contexts/AuthContext.test.tsx",
    "line": 220,
    "name": "retains a pending selected invitation across a fresh slice",
    "purpose": "retains a pending selected invitation across a fresh slice",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(mockAuthedJSON).toHaveBeenCalledTimes(2) | expect(screen.getByText('invite-1|invite-2|Member')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/contexts/AuthContext.test.tsx",
    "line": 231,
    "name": "reports a failed refresh without replacing the current account",
    "purpose": "reports a failed refresh without replacing the current account",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText('failed||Member')).toBeInTheDocument() | expect(screen.queryByText(\"Couldn't load your account\")).not.toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/contexts/AuthContext.test.tsx",
    "line": 241,
    "name": "does not let an older failed refresh replace a newer account",
    "purpose": "does not let an older failed refresh replace a newer account",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(await screen.findByText('ok||Latest')).toBeInTheDocument() | expect(screen.getByText(/\\|Latest$/)).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/contexts/AuthContext.test.tsx",
    "line": 256,
    "name": "reopens only the chosen invitation and ignores a missing id",
    "purpose": "reopens only the chosen invitation and ignores a missing id",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByText('keep,open||keep,open')).toBeInTheDocument() | expect(screen.getByText('keep|open|keep,open')).toBeInTheDocument() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/contexts/AuthContext.test.tsx",
    "line": 275,
    "name": "K1 drops the people roster when the signed-in user changes",
    "purpose": "K1 drops the people roster when the signed-in user changes",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(auth.getSession).toHaveBeenCalled() | expect(resetPeopleRoster).toHaveBeenCalledTimes(1) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/contexts/AuthContext.test.tsx",
    "line": 292,
    "name": "K1b drops the people roster when signing out",
    "purpose": "K1b drops the people roster when signing out",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(auth.getSession).toHaveBeenCalled() | expect(resetPeopleRoster).toHaveBeenCalledTimes(1) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/contexts/DocumentTypesContext.test.tsx",
    "line": 73,
    "name": "maps published kind labels and groups from the kinds catalog",
    "purpose": "maps published kind labels and groups from the kinds catalog",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByTestId('kind-label')).toHaveTextContent('Will') | expect(screen.getByTestId('label')).toHaveTextContent('Last Will') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/contexts/DocumentTypesContext.test.tsx",
    "line": 88,
    "name": "does not fetch or crash when logged out",
    "purpose": "does not fetch or crash when logged out",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByTestId('loading')).toHaveTextContent('false') | expect(mockTypes).not.toHaveBeenCalled() Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/contexts/DocumentTypesContext.test.tsx",
    "line": 104,
    "name": "treats 401 as an empty catalog instead of crashing",
    "purpose": "treats 401 as an empty catalog instead of crashing",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByTestId('loading')).toHaveTextContent('false') | expect(screen.getByTestId('error')).toHaveTextContent('') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/contexts/DocumentTypesContext.test.tsx",
    "line": 117,
    "name": "does not keep a stale kinds catalog when the live catalog fails",
    "purpose": "does not keep a stale kinds catalog when the live catalog fails",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(screen.getByTestId('error')).toHaveTextContent('kinds unavailable') | expect(screen.getByTestId('kind-label')).toHaveTextContent('') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/hooks/useDictation.test.ts",
    "line": 54,
    "name": "reports unsupported when SpeechRecognition is missing",
    "purpose": "reports unsupported when SpeechRecognition is missing",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(result.current.supported).toBe(false)",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/hooks/useDictation.test.ts",
    "line": 61,
    "name": "starts listening and delivers final phrases via onFinal",
    "purpose": "starts listening and delivers final phrases via onFinal",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(result.current.supported).toBe(true) | expect(result.current.listening).toBe(true)",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/hooks/useDictation.test.ts",
    "line": 85,
    "name": "exposes interim text and maps mic permission errors",
    "purpose": "exposes interim text and maps mic permission errors",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(result.current.interim).toBe('partial') | expect(result.current.error).toMatch(/microphone/i)",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/hooks/useDictation.test.ts",
    "line": 109,
    "name": "restarts after silence end while the user still wants dictation",
    "purpose": "restarts after silence end while the user still wants dictation",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(instances).toHaveLength(1) | expect(instances).toHaveLength(2)",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/hooks/useDictation.test.ts",
    "line": 127,
    "name": "does not restart after an explicit stop",
    "purpose": "does not restart after an explicit stop",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(instances).toHaveLength(1) | expect(result.current.listening).toBe(false)",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/hooks/useFilePolling.test.ts",
    "line": 47,
    "name": "keeps the placeholder in processing until facts are committed",
    "purpose": "keeps the placeholder in processing until facts are committed",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(itemExtractPollStatus(item({ id: 'item-1', classification_status: 'in_progress', documents: [{ type_key: 'any_document' }], }))).toMatchObject({ id: 'item-1', processing_status: 'processing', document_type: 'any_document', ai_summary: null, retry_extrac Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/hooks/useFilePolling.test.ts",
    "line": 61,
    "name": "rests as completed when classification finishes, including Unclassified",
    "purpose": "rests as completed when classification finishes, including Unclassified",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(itemExtractPollStatus(item({ id: 'item-1', classification_status: 'complete', summary: 'Last will of Dave Matlock.', documents: [{ type_key: 'any_document', summary: 'Last will of Dave Matlock.' }], }))).toMatchObject({ id: 'item-1', processing_status:  Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/hooks/useFilePolling.test.ts",
    "line": 76,
    "name": "shows a ledger constituent in the status payload",
    "purpose": "shows a ledger constituent in the status payload",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(itemExtractPollStatus(item({ id: 'item-1', classification_status: 'complete', constituents: [constituent], }))).toMatchObject({ document_type: 'brokerage_statement', constituents: [constituent], read_outcome: 'unsupported', }) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/hooks/useFilePolling.test.ts",
    "line": 95,
    "name": "shows a real classified type immediately",
    "purpose": "shows a real classified type immediately",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(itemExtractPollStatus(item({ id: 'item-1', classification_status: 'in_progress', documents: [{ type_key: 'will' }], })).document_type).toBe('will') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/hooks/useFilePolling.test.ts",
    "line": 103,
    "name": "surfaces a failed extract with its retry capability so pages can stop polling",
    "purpose": "surfaces a failed extract with its retry capability so pages can stop polling",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(itemExtractPollStatus(item({ id: 'item-1', classification_status: 'failed', documents: [{ type_key: 'any_document' }], retry_extraction: { failed_job_id: 'failed-successor' }, }))).toMatchObject({ id: 'item-1', processing_status: 'failed', document_type Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/hooks/useFilePolling.test.ts",
    "line": 131,
    "name": "polls GET /api/items/:id/extract-status and not retired /api/files/:id/status",
    "purpose": "polls GET /api/items/:id/extract-status and not retired /api/files/:id/status",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(mockJSON).toHaveBeenCalledWith('/api/items/item%2F1/extract-status') | expect(mockJSON.mock.calls.flat().join(' ')).not.toContain('/api/files')",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/hooks/useFilePolling.test.ts",
    "line": 157,
    "name": "stops polling an item once extract classification completes",
    "purpose": "stops polling an item once extract classification completes",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(onStatusChange).toHaveBeenCalledWith('item-1', expect.objectContaining({ processing_status: 'processing', }) | expect(onStatusChange).toHaveBeenCalledWith('item-1', expect.objectContaining({ processing_status: 'completed', document_type: 'will', ai_summ",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/hooks/useFilePolling.test.ts",
    "line": 197,
    "name": "stops polling and surfaces failed when extract classification fails",
    "purpose": "stops polling and surfaces failed when extract classification fails",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(onStatusChange).toHaveBeenCalledWith('item-1', expect.objectContaining({ processing_status: 'failed', document_type: 'any_document', retry_extraction: { failed_job_id: 'failed-successor' }, }) | expect(mockJSON.mock.calls.length).toBe(callsAfterFailed)",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/hooks/useFilePolling.test.ts",
    "line": 232,
    "name": "drops a hung in-progress extract after the time-box without overlaying failed",
    "purpose": "drops a hung in-progress extract after the time-box without overlaying failed",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(onStatusChange).toHaveBeenCalledWith('item-1', expect.objectContaining({ processing_status: 'processing', }) | expect(mockJSON.mock.calls.length).toBe(callsAfterTimeout)",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/hooks/useFilePolling.test.ts",
    "line": 262,
    "name": "ignores a stale in-flight GET after the time-box so processing cannot re-queue the id",
    "purpose": "ignores a stale in-flight GET after the time-box so processing cannot re-queue the id",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(resolvers.length).toBeGreaterThanOrEqual(1) | expect(onStatusChange.mock.calls.length).toBe(callsAtDrop)",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/hooks/useFilePolling.test.ts",
    "line": 303,
    "name": "stops after repeated GET failures without inventing an extraction failure",
    "purpose": "stops after repeated GET failures without inventing an extraction failure",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(onStatusChange).toHaveBeenCalledWith('item-1', expect.objectContaining({ processing_status: 'processing', poll_error: true, }) | expect(mockJSON.mock.calls.length).toBeGreaterThanOrEqual(2)",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/hooks/useVaultData.test.ts",
    "line": 5,
    "name": "keeps files and excludes notes and manual captures",
    "purpose": "keeps files and excludes notes and manual captures",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(fileItemsOnly(items).map((item) => item.id)).toEqual(['1']) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/hooks/useVaultData.test.ts",
    "line": 17,
    "name": "keeps the placeholder in processing until automatic classification finishes",
    "purpose": "keeps the placeholder in processing until automatic classification finishes",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(processingStatusForItem({ classification_status: 'in_progress' }, 'any_document')) .toBe('processing') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/hooks/useVaultData.test.ts",
    "line": 22,
    "name": "rests an unresolved placeholder after classification completes",
    "purpose": "rests an unresolved placeholder after classification completes",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(processingStatusForItem({ classification_status: 'complete' }, 'any_document')) .toBe('completed') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/hooks/useVaultData.test.ts",
    "line": 27,
    "name": "keeps a requested re-read in processing even when the stored type is already real",
    "purpose": "keeps a requested re-read in processing even when the stored type is already real",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(processingStatusForItem({ classification_status: 'in_progress' }, 'will')) .toBe('processing') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/hooks/useVaultData.test.ts",
    "line": 32,
    "name": "surfaces a failed extract job as failed",
    "purpose": "surfaces a failed extract job as failed",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(processingStatusForItem({ classification_status: 'failed' }, 'any_document')) .toBe('failed') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/hooks/useVaultData.test.ts",
    "line": 39,
    "name": "prefers documents[0].type_key over kind",
    "purpose": "prefers documents[0].type_key over kind",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(classifiedTypeKey({ kind: 'file', documents: [{ type_key: 'will' }] })).toBe('will') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/hooks/useVaultData.test.ts",
    "line": 43,
    "name": "keeps living_will distinct from will",
    "purpose": "keeps living_will distinct from will",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(classifiedTypeKey({ kind: 'file', documents: [{ type_key: 'living_will' }], })).toBe('living_will') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/hooks/useVaultData.test.ts",
    "line": 50,
    "name": "falls back to a ledger constituent before the item kind",
    "purpose": "falls back to a ledger constituent before the item kind",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(classifiedTypeKey({ kind: 'file', constituents: [{ type_key: 'brokerage_statement' }], })).toBe('brokerage_statement') | expect(classifiedTypeKey({ kind: 'file' })).toBe('file') Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/hooks/useVaultData.test.ts",
    "line": 58,
    "name": "keeps every constituent on a multi-document file",
    "purpose": "keeps every constituent on a multi-document file",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(classifiedTypeKey(item)).toBe('trust_agreement') | expect(item.documents).toHaveLength(3) Test title concisely states the asserted UI, hook state, context transition, or submitted public action. No source/AST or copied expected computation evidence found in this assertion summary.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/layouts/AppShell.test.tsx",
    "line": 17,
    "name": "offers a skip-to-content link that targets the focusable main region",
    "purpose": "offers a skip-to-content link that targets the focusable main region",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(skip).toHaveAttribute('href', '#main-content') | expect(main).toHaveAttribute('id', 'main-content'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/layouts/AppShell.test.tsx",
    "line": 34,
    "name": "opens guided import from the gold Add beside search",
    "purpose": "opens guided import from the gold Add beside search",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(add).toHaveAttribute('href', '/import') | expect(add).toHaveTextContent('Add'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/layouts/initials.test.ts",
    "line": 5,
    "name": "derives initials from the name, not a handle-style display_name",
    "purpose": "derives initials from the name, not a handle-style display_name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(initialsFor({ first_name: 'Pat', last_name: 'Rivera', display_name: 'qa-home-123' })).toBe('PR'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/layouts/initials.test.ts",
    "line": 10,
    "name": "handles a first name only",
    "purpose": "handles a first name only",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(initialsFor({ first_name: 'Pat', last_name: null })).toBe('P'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/layouts/initials.test.ts",
    "line": 13,
    "name": "falls back to display_name initials when no name is set",
    "purpose": "falls back to display_name initials when no name is set",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(initialsFor({ display_name: 'Dave Matlock' })).toBe('DM'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/layouts/initials.test.ts",
    "line": 16,
    "name": "falls back to \"You\" when nothing is set",
    "purpose": "falls back to \"You\" when nothing is set",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(initialsFor(null)).toBe('You') | expect(initialsFor({})).toBe('You'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/acceptedNameSource310.test.ts",
    "line": 14,
    "name": "T-310-4 a document name credits From {Title} (M-310-4 restores You entered this)",
    "purpose": "T-310-4 a document name credits From {Title} (M-310-4 restores You entered this)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(copy).toBe('From Durable power of attorney for Rosa') | expect(copy).not.toContain('You entered this') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/acceptedNameSource310.test.ts",
    "line": 24,
    "name": "T-310-4 an empty title credits From a document (M-310-4b restores a blank)",
    "purpose": "T-310-4 an empty title credits From a document (M-310-4b restores a blank)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(sourceCopy({ item_title: '', capture_method: 'ocr' })).toBe('From a document') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/acceptedNameSource310.test.ts",
    "line": 28,
    "name": "T-310-4b a typed value credits You told us (M-310-4b classifies typed as From)",
    "purpose": "T-310-4b a typed value credits You told us (M-310-4b classifies typed as From)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(copy).toBe('You told us') | expect(copy).not.toContain('From ') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/acceptedNameSource310.test.ts",
    "line": 37,
    "name": "T-310-4 the person credit never says You entered this",
    "purpose": "T-310-4 the person credit never says You entered this",
    "classification": "internals",
    "restates": "yes",
    "reason": "Restates evidence: Slices implementation source and checks exact substrings. Reviewed against test body: asserts exact source text, file contents, or private migration structure; this is an implementation guard, not runtime behavior. extracts sourceCopy implementation text and asserts exact strings are present/absent.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/acceptedNameSource310.test.ts",
    "line": 52,
    "name": "T-310-5 the feature map covers privacy and credit (M-310-5 strips them)",
    "purpose": "T-310-5 the feature map covers privacy and credit (M-310-5 strips them)",
    "classification": "internals",
    "restates": "no",
    "reason": "Checks documentation/archival or generated-artifact consistency, not production behavior. It does not restate a production algorithm; keep separate from behavior coverage. Artifact evidence: Scans feature documentation for exact copy and acceptance lines. Assertion evidence: expect(feature).toContain('Acceptance (#310) | expect(feature).toContain('does not read that name through `_g6_person_shown_name`')",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/acceptedNameSource310.test.ts",
    "line": 62,
    "name": "T-310-5 the product spec covers privacy and credit",
    "purpose": "T-310-5 the product spec covers privacy and credit",
    "classification": "internals",
    "restates": "no",
    "reason": "Checks documentation/archival or generated-artifact consistency, not production behavior. It does not restate a production algorithm; keep separate from behavior coverage. Artifact evidence: Scans product spec source for exact phrases. Assertion evidence: expect(spec).toContain('follows the paper\\'s access') | expect(spec).toContain('“From {Title}”')",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/acceptedNameSource310.test.ts",
    "line": 69,
    "name": "T-310-7 only the new migration stamp is added (M-310-7 patches an older one)",
    "purpose": "T-310-7 only the new migration stamp is added (M-310-7 patches an older one)",
    "classification": "internals",
    "restates": "yes",
    "reason": "Restates evidence: Checks exact SQL function signature/stamp strings in migration source. Reviewed against test body: asserts exact source text, file contents, or private migration structure; this is an implementation guard, not runtime behavior. scans migration text for exact function signatures and stamp literals.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/acceptedNameSource310.test.ts",
    "line": 77,
    "name": "T-310-7 the person-offer body is the rewritten caller (M-310-7 drops it)",
    "purpose": "T-310-7 the person-offer body is the rewritten caller (M-310-7 drops it)",
    "classification": "internals",
    "restates": "yes",
    "reason": "Restates evidence: Counts private helper call spellings and exact arguments in migration source. Reviewed against test body: asserts exact source text, file contents, or private migration structure; this is an implementation guard, not runtime behavior. slices migration source and asserts two exact internal helper call occurrences and argument strings.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/access.test.ts",
    "line": 28,
    "name": "shares an item through Go with the server person id",
    "purpose": "shares an item through Go with the server person id",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(mockAuthed).toHaveBeenCalledWith('/api/items/item%2F1/shares', { method: 'POST', body: { person_id: 'person-emily' }, })",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/access.test.ts",
    "line": 39,
    "name": "accepts an invite with a session and a claim token on the public endpoint",
    "purpose": "accepts an invite with a session and a claim token on the public endpoint",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(mockAuthed).toHaveBeenCalledWith('/api/invites/accept', { method: 'POST', body: { token: 'invite-token' }, }) | expect(mockPublic).toHaveBeenCalledWith('/api/claims/accept', { method: 'POST', body: { token: 'seed-daniel-claim' }, })",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/access.test.ts",
    "line": 56,
    "name": "builds one-time accept paths without storing the token",
    "purpose": "builds one-time accept paths without storing the token",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(inviteAcceptPath('abc+1')).toBe('/invite?token=abc%2B1') | expect(claimAcceptPath('seed-daniel-claim')).toBe('/claim?token=seed-daniel-claim') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/access.test.ts",
    "line": 61,
    "name": "maps missing access records to a short not-found message",
    "purpose": "maps missing access records to a short not-found message",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(accessError(new ApiError(404, 'Not found', null))).toBe('Not found') | expect(accessError(new ApiError(403, 'A free account can only share documents one at a time.', null))).toBe('A free account can only share documents one at a time.') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/accountTypeLabel.test.ts",
    "line": 5,
    "name": "labels every known account type",
    "purpose": "labels every known account type",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(accountTypeLabel(token)).toBe(label) | expect(accountTypeLabel(token)).not.toBe(token) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/accountTypeLabel.test.ts",
    "line": 14,
    "name": "labels an unknown token instead of showing it raw",
    "purpose": "labels an unknown token instead of showing it raw",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(accountTypeLabel('joint_checking')).toBe('Joint Checking') | expect(accountTypeLabel('money market')).toBe('Money Market') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/captionFloor.test.ts",
    "line": 36,
    "name": "keeps audited surfaces on the label token or larger",
    "purpose": "keeps audited surfaces on the label token or larger",
    "classification": "internals",
    "restates": "yes",
    "reason": "Restates evidence: Scans TSX source for raw utility-class spellings with a regex. Reads component source and checks raw utility class tokens with a regex; this guards implementation text rather than computed/rendered font size.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/documentFamily.test.ts",
    "line": 5,
    "name": "does not invent a family from a stored type key",
    "purpose": "does not invent a family from a stored type key",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(getDocumentFamily('will')).toBeFalsy() | expect(getDocumentFamily('bank_statement')).toBeFalsy() Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentFamily.test.ts",
    "line": 15,
    "name": "uses the published kind group and ignores Other",
    "purpose": "uses the published kind group and ignores Other",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(getDocumentFamily('will', 'Wills, trusts, and legal')).toBe('Wills, trusts, and legal') | expect(getDocumentFamily('unknown', 'Other')).toBeFalsy() Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentKind.test.ts",
    "line": 30,
    "name": "keeps automatic classification copy while a file is still being read",
    "purpose": "keeps automatic classification copy while a file is still being read",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(memberKindChromeLabel({ document: document({ type_key: 'any_document' }), classificationStatus: 'in_progress', })).toBe(AUTOMATIC_CLASSIFICATION_IN_PROGRESS) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentKind.test.ts",
    "line": 37,
    "name": "shows Choose a kind when a typed read succeeded without a kind",
    "purpose": "shows Choose a kind when a typed read succeeded without a kind",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(memberKindChromeLabel({ document: document({ type_key: 'brokerage_statement', read_outcome: 'read' }), classificationStatus: 'complete', })).toBe(CHOOSE_A_KIND) | expect(visibleReadOutcomeCopy(document({ type_key: 'brokerage_statement', read_outcome: 'r Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentKind.test.ts",
    "line": 48,
    "name": "uses the published kind label, not the stored type key",
    "purpose": "uses the published kind label, not the stored type key",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(memberKindChromeLabel({ document: document({ type_key: 'brokerage_statement', kind_key: 'retirement_account', kind_label: 'Retirement account', read_outcome: 'read', }), classificationStatus: 'complete', })).toBe('Retirement account') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentKind.test.ts",
    "line": 60,
    "name": "does not treat a failed item overlay as the kind when a label exists",
    "purpose": "does not treat a failed item overlay as the kind when a label exists",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(memberKindChromeLabel({ document: document({ type_key: 'any_document' }), classificationStatus: 'failed', })).toBe(COULDNT_FINISH_READING) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentKind.test.ts",
    "line": 67,
    "name": "keeps Choose a kind on a successful unassigned document even when the item aggregate failed",
    "purpose": "keeps Choose a kind on a successful unassigned document even when the item aggregate failed",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(memberKindChromeLabel({ document: document({ type_key: 'brokerage_statement', read_outcome: 'read' }), classificationStatus: 'failed', })).toBe(CHOOSE_A_KIND) | expect(visibleReadOutcomeCopy(document({ type_key: 'brokerage_statement', read_outcome: 'rea Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentKind.test.ts",
    "line": 80,
    "name": "keeps the outcomes distinct",
    "purpose": "keeps the outcomes distinct",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(readOutcomeCopy('pending')).toBe(READING_THIS_DOCUMENT) | expect(readOutcomeCopy('unclear')).toBe(OUTCOME_UNCLEAR) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentKind.test.ts",
    "line": 93,
    "name": "known type with no kind keeps Choose a kind and %s copy",
    "purpose": "known type with no kind keeps Choose a kind and %s copy (parameterized declaration)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(memberKindChromeLabel({ document: row, classificationStatus: 'complete' })).toBe(CHOOSE_A_KIND) | expect(visibleReadOutcomeCopy(row)).toBe(copy) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentKind.test.ts",
    "line": 110,
    "name": "does not let item-wide failed hide a successful sibling or a failed sibling outcome",
    "purpose": "does not let item-wide failed hide a successful sibling or a failed sibling outcome",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(memberKindChromeLabel({ document: successful, classificationStatus: 'failed', })).toBe(CHOOSE_A_KIND) | expect(visibleReadOutcomeCopy(successful)).toBeUndefined() Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentKind.test.ts",
    "line": 139,
    "name": "omits generation CAS when no publication exists",
    "purpose": "omits generation CAS when no publication exists",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(itemGenerationCas(undefined)).toEqual({}) | expect(itemGenerationCas('')).toEqual({}) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentKind.test.ts",
    "line": 145,
    "name": "never selects documents[0] by position",
    "purpose": "never selects documents[0] by position",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(findItemDocument(docs, 'b')?.type_key).toBe('trust_agreement') | expect(findItemDocument(docs, undefined)).toBeUndefined() Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentKind.test.ts",
    "line": 159,
    "name": "recognizes Something else as filing-only",
    "purpose": "recognizes Something else as filing-only",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(isSomethingElseKind(KIND_SOMETHING_ELSE)).toBe(true) | expect(isSomethingElseKind('will')).toBe(false) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentKind.test.ts",
    "line": 164,
    "name": "requires coherent action stamps before offering reread or clarify",
    "purpose": "requires coherent action stamps before offering reread or clarify",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(kindActionsMatchCatalog(stamped, catalog)).toBe(true) | expect(kindActionMappingRevision(stamped)).toBe(1) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentKind.test.ts",
    "line": 200,
    "name": "rejects an r2 card against an r3 catalog",
    "purpose": "rejects an r2 card against an r3 catalog",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(kindActionsMatchCatalog(stamped, catalog)).toBe(false) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.test.ts",
    "line": 60,
    "name": "never defaults mixed selection to documents[0]",
    "purpose": "never defaults mixed selection to documents[0]",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(resolveSelectedDocument(docs, null)).toBeNull() | expect(resolveSelectedDocument(docs, 'doc-a')?.id).toBe('doc-a') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.test.ts",
    "line": 72,
    "name": "implicitly selects a sole document",
    "purpose": "implicitly selects a sole document",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(resolveSelectedDocument(docs, null)?.id).toBe('doc-1') | expect(isMixedDocuments(docs)).toBe(false) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.test.ts",
    "line": 78,
    "name": "does not treat unscoped mixed rows as the selected document",
    "purpose": "does not treat unscoped mixed rows as the selected document",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(onSelectedDocument({}, 'doc-a', true)).toBe(false) | expect(onSelectedDocument({ document_id: 'doc-a' }, 'doc-a', true)).toBe(true) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.test.ts",
    "line": 85,
    "name": "hides mixed holes rather than using first-document catalog",
    "purpose": "hides mixed holes rather than using first-document catalog",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(filterHolesForDocument([ { kind: 'bind', type_key: 'will', subject_key: 'testator', prompt: 'Who is this will for?' }, ], 'doc-a', true)).toEqual([]) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.test.ts",
    "line": 91,
    "name": "requires open/close generation and document ids to match before mixed writes",
    "purpose": "requires open/close generation and document ids to match before mixed writes",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(fenceIsCoherent(open, open)).toBe(true) | expect(fenceIsCoherent(open, item({ generation_id: 'job-2' }))).toBe(false) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.test.ts",
    "line": 144,
    "name": "disables writes on an incoherent fence even when open is still one document",
    "purpose": "disables writes on an incoherent fence even when open is still one document",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(fenceIsCoherent(one, item({ generation_id: 'job-1' }))).toBe(false) | expect(fencedWritesEnabled({ fenceCoherent: false, editor: true, mixed: false, mixedEnabled: false, })).toBe(false) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.test.ts",
    "line": 164,
    "name": "keys live review scope by item and selected document, not a captured string",
    "purpose": "keys live review scope by item and selected document, not a captured string",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(liveReviewScopeKey('item-1', 'doc-1')).toBe('item-1::doc-1') | expect(liveReviewScopeKey('item-1', 'doc-2')).not.toBe(liveReviewScopeKey('item-1', 'doc-1') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.test.ts",
    "line": 169,
    "name": "hides retained people on the first render of a different item or viewer",
    "purpose": "hides retained people on the first render of a different item or viewer",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rosterRowsForScope(cache, 'item-1', 'person-1')).toEqual([{ entity_id: 'secret' }]) | expect(rosterRowsForScope(cache, 'item-2', 'person-1')).toEqual([]) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.test.ts",
    "line": 177,
    "name": "picker options for a new item or viewer are empty in that same evaluation, without waiting for a clear effect",
    "purpose": "picker options for a new item or viewer are empty in that same evaluation, without waiting for a clear effect",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(scopedPersonPickerRows(roster, acknowledged, 'item-1', 'person-1').map((row) => row.entity_id)).toEqual(['secret', 'minted']) | expect(scopedPersonPickerRows(roster, acknowledged, 'item-2', 'person-1')).toEqual([]) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.test.ts",
    "line": 185,
    "name": "merges acknowledged people by entity id and prefers the GET row",
    "purpose": "merges acknowledged people by entity id and prefers the GET row",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(mergePeopleByEntityId( [{ entity_id: 'p1', display_name: 'From GET' }], [{ entity_id: 'p1', display_name: 'From Create' }, { entity_id: 'p2', display_name: 'Minted' }], )).toEqual([ { entity_id: 'p1', display_name: 'From GET' }, { entity_id: 'p2', displ Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.test.ts",
    "line": 199,
    "name": "does not stamp a close generation onto an incoherent fence",
    "purpose": "does not stamp a close generation onto an incoherent fence",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(fenceIsCoherent(open, close)).toBe(false) | expect(writeGenerationId(open, mixedWritesEnabled({ open, close, peopleGenerationId: 'job-2', peopleCanWrite: true, }))).toBeUndefined() Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.test.ts",
    "line": 211,
    "name": "treats 409 stale generation, offer, binding, and unfinished as refresh-without-replay",
    "purpose": "treats 409 stale generation, offer, binding, and unfinished as refresh-without-replay",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(isStaleWriteConflict(new ApiError(409, 'stale selected offer', {}))).toBe(true) | expect(isStaleWriteConflict(new ApiError(409, 'stale selected instrument binding', {}))).toBe(true) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.test.ts",
    "line": 219,
    "name": "treats unfinished extract 409 as temporary and stale selected offer as permanent on that offer",
    "purpose": "treats unfinished extract 409 as temporary and stale selected offer as permanent on that offer",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(isUnfinishedExtractConflict(unfinished)).toBe(true) | expect(isStaleSelectedOfferConflict(unfinished)).toBe(false) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.test.ts",
    "line": 228,
    "name": "labels connect-existing instruments without Your or UUID",
    "purpose": "labels connect-existing instruments without Your or UUID",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(instrumentConnectLabel({ id: 'ent-1', entity_uid: 'instrument:will:doc:aaaa', entity_type_subtype: 'instrument.will', resolved: [], bindings: [], })).toBe('will') | expect(instrumentConnectLabel({ id: 'ent-2', entity_uid: 'instrument:will:doc:bbbb', ent Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.value.test.ts",
    "line": 31,
    "name": "treats domain class and qualifier as part of identity",
    "purpose": "treats domain class and qualifier as part of identity",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(valueReviewIdentityKey({ ...identity, domain_class_key: 'account.retirement' })).not.toBe(base) | expect(valueReviewIdentityKey({ ...identity, qualifier_key: 'joint' })).not.toBe(base) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.value.test.ts",
    "line": 39,
    "name": "finds a slot token only on the full identity",
    "purpose": "finds a slot token only on the full identity",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(slotTargetToken(snapshot, identity)).toBe('tok-right') | expect(slotTargetToken(snapshot, { ...identity, qualifier_key: 'joint' })).toBeUndefined() Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.value.test.ts",
    "line": 81,
    "name": "never fabricates an assertion id for another member's row",
    "purpose": "never fabricates an assertion id for another member's row",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rows).toHaveLength(1) | expect(rows[0].id).toBe('') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.value.test.ts",
    "line": 91,
    "name": "prefers the viewer's own fanout row for the same slot",
    "purpose": "prefers the viewer's own fanout row for the same slot",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rows).toHaveLength(1) | expect(rows[0].id).toBe('assert-1') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.value.test.ts",
    "line": 98,
    "name": "keeps same-fact-key rows from different slots distinct",
    "purpose": "keeps same-fact-key rows from different slots distinct",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rows).toHaveLength(2) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.value.test.ts",
    "line": 104,
    "name": "removes all write capabilities when the viewer cannot edit",
    "purpose": "removes all write capabilities when the viewer cannot edit",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rows).toHaveLength(1) | expect(rows[0].capabilities.can_write).toBe(false) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.value.test.ts",
    "line": 114,
    "name": "uses the exact approved guidance",
    "purpose": "uses the exact approved guidance",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(VALUE_REVIEW_GUIDANCE).toBe( 'Choose an option only if it means the same thing, or leave it as written for now.', ) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.value.test.ts",
    "line": 120,
    "name": "attributes manual reviews to you or a member only",
    "purpose": "attributes manual reviews to you or a member only",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(valueReviewLeadIn(base)).toBe('You entered “money market”.') | expect(valueReviewLeadIn({ ...base, entered_by: 'member' })).toBe('A member entered “money market”.') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.value.test.ts",
    "line": 133,
    "name": "labels a question by catalog label or member prompt, never the key",
    "purpose": "labels a question by catalog label or member prompt, never the key",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(valueReviewFieldLabel({ identity, metadata: { display_label: 'Account type' }, })).toBe('Account type') | expect(valueReviewFieldLabel({ identity, metadata: { member_prompt: 'What kind of account is this?' }, })).toBe('What kind of account is this?') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.value.test.ts",
    "line": 147,
    "name": "returns catalog labels for canonical tokens only",
    "purpose": "returns catalog labels for canonical tokens only",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(closedEnumChoices(metadata)).toEqual([ { token: 'checking', label: 'Checking' }, { token: 'savings', label: 'Savings' }, ]) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.value.test.ts",
    "line": 159,
    "name": "treats anything but an explicit closed policy as open",
    "purpose": "treats anything but an explicit closed policy as open",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(closedEnumChoices({ enum_policy: 'open', enum_values: ['a'] })).toEqual([]) | expect(closedEnumChoices({ enum_values: ['a'] })).toEqual([]) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.value.test.ts",
    "line": 165,
    "name": "falls back to the raw token when no label is published",
    "purpose": "falls back to the raw token when no label is published",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(closedEnumChoices({ enum_policy: 'closed', enum_values: ['cd'] })).toEqual([ { token: 'cd', label: 'cd' }, ]) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.value.test.ts",
    "line": 173,
    "name": "classifies the member-safe 409 copies as refresh-and-retry",
    "purpose": "classifies the member-safe 409 copies as refresh-and-retry",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(isReviewStaleConflict(new ApiError(409, 'This changed while you were looking. Refresh and try again.', {}))).toBe(true) | expect(isReviewStaleConflict(new ApiError(409, 'That was already sent. Refresh and try again.', {}))).toBe(true) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.value.test.ts",
    "line": 181,
    "name": "does not classify other errors as stale",
    "purpose": "does not classify other errors as stale",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(isReviewStaleConflict(new ApiError(422, 'That change is not available right now.', {}))).toBe(false) | expect(isReviewStaleConflict(new ApiError(409, 'something else', {}))).toBe(false) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.value.test.ts",
    "line": 220,
    "name": "treats due_at at or before now as due, and a future clock as not due",
    "purpose": "treats due_at at or before now as due, and a future clock as not due",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(reminderIsDue({ eligible: true, due_at: due, consumed: false }, now)).toBe(true) | expect(reminderIsDue({ eligible: true, due_at: now.toISOString() Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.value.test.ts",
    "line": 226,
    "name": "refuses consumed, ineligible, or unparseable reminder rows",
    "purpose": "refuses consumed, ineligible, or unparseable reminder rows",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(reminderIsDue({ eligible: true, due_at: due, consumed: true }, now)).toBe(false) | expect(reminderIsDue({ eligible: false, due_at: due, consumed: false }, now)).toBe(false) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.value.test.ts",
    "line": 234,
    "name": "selects due unconsumed editor rows when both gates are on",
    "purpose": "selects due unconsumed editor rows when both gates are on",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(claimableReminderReviews(snapshot(), { now, canEdit: true })).toEqual([ { review_id: 'review-1', expected_revision: 1 }, ]) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.value.test.ts",
    "line": 240,
    "name": "skips when the reminder gate, marker, or editor capability is off",
    "purpose": "skips when the reminder gate, marker, or editor capability is off",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(claimableReminderReviews(snapshot({ capabilities: { ...capabilities, reminders_active: false }, }), opts)).toEqual([]) | expect(claimableReminderReviews(snapshot({ capabilities: { ...capabilities, reviews_active: false }, }), opts)).toEqual([]) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.value.test.ts",
    "line": 254,
    "name": "skips not-due, consumed, resolved, withdrawn, retired, and inactive rows",
    "purpose": "skips not-due, consumed, resolved, withdrawn, retired, and inactive rows",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(claimableReminderReviews(snapshot({ reviews: [review({ reminder: { eligible: true, due_at: notDue, consumed: false } })], }), opts)).toEqual([]) | expect(claimableReminderReviews(snapshot({ reviews: [review({ reminder: { eligible: true, due_at: due, con Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.value.test.ts",
    "line": 273,
    "name": "caps the batch at 64 distinct ids and ignores duplicates",
    "purpose": "caps the batch at 64 distinct ids and ignores duplicates",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(selected).toHaveLength(VALUE_REVIEW_REMINDER_CLAIM_LIMIT) | expect(new Set(selected.map((row) => row.review_id)).size).toBe(VALUE_REVIEW_REMINDER_CLAIM_LIMIT) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentReview.value.test.ts",
    "line": 284,
    "name": "only accents winning claim rows and coalesces one fact-row key",
    "purpose": "only accents winning claim rows and coalesces one fact-row key",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(accentedReviewIdsFromClaim([ { review_id: 'a', status: 'accent' }, { review_id: 'b', status: 'consumed' }, { review_id: 'c', status: 'not_due' }, { review_id: 'd', status: 'skipped' }, ])).toEqual(new Set(['a']) | expect(keys.size).toBe(1) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentTypeLabel.test.ts",
    "line": 18,
    "name": "hides the catalog placeholder while automatic classification is running",
    "purpose": "hides the catalog placeholder while automatic classification is running",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(memberDocumentTypeLabel('any_document', 'in_progress', catalogLabel)) .toBe(AUTOMATIC_CLASSIFICATION_IN_PROGRESS) | expect(documentProcessingStatus('any_document', 'in_progress')).toBe('processing') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentTypeLabel.test.ts",
    "line": 24,
    "name": "uses an honest resting label when classification finishes without a real type",
    "purpose": "uses an honest resting label when classification finishes without a real type",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(memberDocumentTypeLabel('any_document', 'complete', catalogLabel)) .toBe(UNCLASSIFIED_DOCUMENT) | expect(documentProcessingStatus('any_document', 'complete')).toBe('completed') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentTypeLabel.test.ts",
    "line": 30,
    "name": "keeps polling while a requested re-read is in progress even if the stored type is already real",
    "purpose": "keeps polling while a requested re-read is in progress even if the stored type is already real",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(memberDocumentTypeLabel('will', 'in_progress', catalogLabel, 'bank_statement')) .toBe(readingAsLabel('bank statement') | expect(memberDocumentTypeLabel('any_document', 'in_progress', catalogLabel, 'will')) .toBe(readingAsLabel('Will') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentTypeLabel.test.ts",
    "line": 38,
    "name": "shows progress for an automatic retry that preserves an existing classified type",
    "purpose": "shows progress for an automatic retry that preserves an existing classified type",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(memberDocumentTypeLabel('will', 'in_progress', catalogLabel)).toBe('Reading as a Will…') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentTypeLabel.test.ts",
    "line": 42,
    "name": "shows a real classified type when no requested re-read is open",
    "purpose": "shows a real classified type when no requested re-read is open",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(memberDocumentTypeLabel('will', 'complete', catalogLabel)).toBe('Will') | expect(documentProcessingStatus('will', 'complete')).toBe('completed') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentTypeLabel.test.ts",
    "line": 47,
    "name": "surfaces a failed read without claiming classification failed",
    "purpose": "surfaces a failed read without claiming classification failed",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(memberDocumentTypeLabel('any_document', 'failed', catalogLabel)) .toBe(COULDNT_FINISH_READING) | expect(memberDocumentTypeLabel('will', 'failed', catalogLabel)).toBe(COULDNT_FINISH_READING) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentTypeLabel.test.ts",
    "line": 55,
    "name": "names a retryable BDA failure as a read problem, not a classification error",
    "purpose": "names a retryable BDA failure as a read problem, not a classification error",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(memberDocumentTypeLabel('any_document', 'failed', catalogLabel, undefined, true)) .toBe(\"Couldn't read this document.\") | expect(memberDocumentTypeLabel('will', 'failed', catalogLabel, undefined, true)) .toBe(\"Couldn't read this document.\") Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentsNotPapers318.test.ts",
    "line": 17,
    "name": "T-318-1 document detail says document (M-318-1 restores This paper)",
    "purpose": "T-318-1 document detail says document (M-318-1 restores This paper)",
    "classification": "internals",
    "restates": "yes",
    "reason": "Restates evidence: Scans page source for exact text fragments instead of rendering the page. Reviewed against test body: asserts exact source text, file contents, or private migration structure; this is an implementation guard, not runtime behavior. reads DocumentDetailPage.tsx and asserts source contains/excludes exact copy fragments; it does not render the page.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/documentsNotPapers318.test.ts",
    "line": 25,
    "name": "T-318-2 step-in choices say health documents (M-318-2 restores Health papers only)",
    "purpose": "T-318-2 step-in choices say health documents (M-318-2 restores Health papers only)",
    "classification": "mixed",
    "restates": "partial",
    "reason": "Contains real output/interaction assertions plus an implementation-coupled subset. Restates evidence: Combines output assertions with exact source-copy substring checks. Reviewed: asserts exported copy values, then scans source text for matching literals; only the exported values test behavior.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentsNotPapers318.test.ts",
    "line": 33,
    "name": "T-318-6 onboarding hints say documents (M-318-6 restores Will or trust papers)",
    "purpose": "T-318-6 onboarding hints say documents (M-318-6 restores Will or trust papers)",
    "classification": "mixed",
    "restates": "partial",
    "reason": "Contains real output/interaction assertions plus an implementation-coupled subset. Restates evidence: Combines output data with exact component-source substring checks. Reviewed: checks onboarding data output and scans GuidedImportPage.tsx text for exact phrases; the page assertions are static.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentsNotPapers318.test.ts",
    "line": 42,
    "name": "T-318-7 empty title fallback is a document (M-318-7 restores A paper)",
    "purpose": "T-318-7 empty title fallback is a document (M-318-7 restores A paper)",
    "classification": "mixed",
    "restates": "partial",
    "reason": "Contains real output/interaction assertions plus an implementation-coupled subset. Restates evidence: Scans TS and Go implementation bodies for exact fallback literals. Reviewed: checks sourceCopy output and scans TS/Go implementation text for exact fallback literals.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentsNotPapers318.test.ts",
    "line": 52,
    "name": "T-318-8 invariant is green (M-318-8 plants This paper in Member sees)",
    "purpose": "T-318-8 invariant is green (M-318-8 plants This paper in Member sees)",
    "classification": "mixed",
    "restates": "no",
    "reason": "Runs the invariant checker and checks supporting documentation; does not itself duplicate production implementation.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentsNotPapers318.test.ts",
    "line": 64,
    "name": "T-318-9 feature acceptance quotes documents (M-318-9 restores Health papers)",
    "purpose": "T-318-9 feature acceptance quotes documents (M-318-9 restores Health papers)",
    "classification": "internals",
    "restates": "no",
    "reason": "Checks documentation/archival or generated-artifact consistency, not production behavior. It does not restate a production algorithm; keep separate from behavior coverage. Artifact evidence: Scans feature/spec source for exact copy literals. Assertion evidence: expect(member).toContain('\"Health documents\" / \"No health documents are on file.\"') | expect(member).not.toContain('\"Health papers\"')",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/documentsNotPapers318.test.ts",
    "line": 72,
    "name": "T-318-13 context.md keeps the Documents section and #305 spouse rows (M-318-13 strips the section)",
    "purpose": "T-318-13 context.md keeps the Documents section and #305 spouse rows (M-318-13 strips the section)",
    "classification": "internals",
    "restates": "no",
    "reason": "Checks documentation/archival or generated-artifact consistency, not production behavior. It does not restate a production algorithm; keep separate from behavior coverage. Artifact evidence: Scans a Markdown source file for exact sections and row strings. Assertion evidence: expect(context).toContain('## Documents, not papers') | expect(context).toContain(\"{Member}'s {Relationship}\")",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/estateInstrument.test.ts",
    "line": 10,
    "name": "maps the six estate types plus living will onto catalog instruments",
    "purpose": "maps the six estate types plus living will onto catalog instruments",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(estateInstrumentKind('advance_directive')).toBe('instrument.advance_directive') | expect(estateInstrumentKind('poa')).toBe('instrument.poa_financial') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/estateInstrument.test.ts",
    "line": 20,
    "name": "does not treat a will or certification_of_trust as an estate principal",
    "purpose": "does not treat a will or certification_of_trust as an estate principal",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(isEstatePrincipalType('will')).toBe(false) | expect(isEstatePrincipalType('certification_of_trust')).toBe(false) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factMetadata.test.ts",
    "line": 35,
    "name": "returns the published display label and nothing when absent",
    "purpose": "returns the published display label and nothing when absent",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(metadataFactLabel(accountTypeMetadata)).toBe('Account type') | expect(metadataFactLabel({ value_kind: 'text' })).toBeNull() Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factMetadata.test.ts",
    "line": 44,
    "name": "shows the approved label for a canonical token",
    "purpose": "shows the approved label for a canonical token",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(metadataValueText('checking', accountTypeMetadata)).toBe('Checking') | expect(metadataValueText('money_market', accountTypeMetadata)).toBe('Money market') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factMetadata.test.ts",
    "line": 49,
    "name": "shows the approved label for an explicit alias",
    "purpose": "shows the approved label for an explicit alias",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(metadataValueText('Checking Account', accountTypeMetadata)).toBe('Checking') | expect(metadataValueText('MMA', accountTypeMetadata)).toBe('Money market') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factMetadata.test.ts",
    "line": 54,
    "name": "maps unqualified ira/IRA to Traditional IRA without rewriting the stored token path",
    "purpose": "maps unqualified ira/IRA to Traditional IRA without rewriting the stored token path",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(metadataValueText('ira', meta)).toBe('Traditional IRA') | expect(metadataValueText('IRA', meta)).toBe('Traditional IRA') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factMetadata.test.ts",
    "line": 78,
    "name": "keeps unknown strings verbatim — no trim, case fold, or underscore humanizing",
    "purpose": "keeps unknown strings verbatim — no trim, case fold, or underscore humanizing",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(metadataValueText('MY ODD_THING', accountTypeMetadata)).toBe('MY ODD_THING') | expect(metadataValueText(' padded ', accountTypeMetadata)).toBe(' padded ') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factMetadata.test.ts",
    "line": 85,
    "name": "keeps non-ASCII strings verbatim",
    "purpose": "keeps non-ASCII strings verbatim",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(metadataValueText('compte épargne', accountTypeMetadata)).toBe('compte épargne') | expect(metadataValueText('口座', accountTypeMetadata)).toBe('口座') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factMetadata.test.ts",
    "line": 90,
    "name": "keeps a known token verbatim when no label is published",
    "purpose": "keeps a known token verbatim when no label is published",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(metadataValueText('checking', { value_kind: 'enum', enum_values: ['checking'] })).toBe('checking') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factMetadata.test.ts",
    "line": 94,
    "name": "keeps the raw alias verbatim when the resolved token has no label",
    "purpose": "keeps the raw alias verbatim when the resolved token has no label",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(metadataValueText('MMA', { value_kind: 'enum', enum_values: ['money_market'], enum_aliases: { MMA: 'money_market' }, })).toBe('MMA') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factMetadata.test.ts",
    "line": 102,
    "name": "ignores malformed aliases whose target is not a canonical token",
    "purpose": "ignores malformed aliases whose target is not a canonical token",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(metadataValueText('MMA', malformed)).toBe('MMA') | expect(metadataValueText('rogue_token', malformed)).toBe('rogue_token') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factMetadata.test.ts",
    "line": 114,
    "name": "returns null for blank and non-string values so callers fall back",
    "purpose": "returns null for blank and non-string values so callers fall back",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(metadataValueText('', accountTypeMetadata)).toBeNull() | expect(metadataValueText(7, accountTypeMetadata)).toBeNull() Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factMetadata.test.ts",
    "line": 122,
    "name": "formats USD only when the unit is explicitly usd",
    "purpose": "formats USD only when the unit is explicitly usd",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(metadataValueText(1234.5, meta)).toBe('$1,234.50') | expect(metadataValueText(0, meta)).toBe('$0.00') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factMetadata.test.ts",
    "line": 128,
    "name": "formats count and percent only at the stated scale",
    "purpose": "formats count and percent only at the stated scale",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(metadataValueText(3, { value_kind: 'number', unit: 'count' })).toBe('3') | expect(metadataValueText(0, { value_kind: 'number', unit: 'count' })).toBe('0') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factMetadata.test.ts",
    "line": 135,
    "name": "never silently rounds count or percent precision away",
    "purpose": "never silently rounds count or percent precision away",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(metadataValueText(0.0001, { value_kind: 'number', unit: 'count' })).toBe('0.0001') | expect(metadataValueText(0.0001, { value_kind: 'number', unit: 'percent' })).toBe('0.0001%') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factMetadata.test.ts",
    "line": 141,
    "name": "formats only native JSON numbers — strings stay verbatim via fallback",
    "purpose": "formats only native JSON numbers — strings stay verbatim via fallback",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(metadataValueText('1234.5', meta)).toBeNull() | expect(metadataValueText('0x10', meta)).toBeNull() Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factMetadata.test.ts",
    "line": 152,
    "name": "returns null without an explicit safe unit — no guessed units",
    "purpose": "returns null without an explicit safe unit — no guessed units",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(metadataValueText(1234.5, { value_kind: 'number' })).toBeNull() | expect(metadataValueText(1234.5, { value_kind: 'number', unit: 'none' })).toBeNull() Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factMetadata.test.ts",
    "line": 163,
    "name": "formats exact ISO dates timezone-safe",
    "purpose": "formats exact ISO dates timezone-safe",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(metadataValueText('2026-03-09', meta)).toBe('March 9, 2026') | expect(metadataValueText('2024-02-29', meta)).toBe('February 29, 2024') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factMetadata.test.ts",
    "line": 168,
    "name": "renders days that do not exist in some local timezone",
    "purpose": "renders days that do not exist in some local timezone",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(metadataValueText('2011-12-30', meta)).toBe('December 30, 2011') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factMetadata.test.ts",
    "line": 173,
    "name": "renders small years faithfully — no JS 0-99 to 1900 mapping",
    "purpose": "renders small years faithfully — no JS 0-99 to 1900 mapping",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(metadataValueText('0099-06-15', meta)).toBe('June 15, 99') | expect(metadataValueText('0001-01-01', meta)).toBe('January 1, 1') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factMetadata.test.ts",
    "line": 178,
    "name": "declines year 0 — Intl cannot render the era faithfully",
    "purpose": "declines year 0 — Intl cannot render the era faithfully",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(metadataValueText('0000-01-01', meta)).toBeNull() Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factMetadata.test.ts",
    "line": 182,
    "name": "declines impossible and non-exact dates so the raw value shows",
    "purpose": "declines impossible and non-exact dates so the raw value shows",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(metadataValueText('2024-02-30', meta)).toBeNull() | expect(metadataValueText('2025-02-29', meta)).toBeNull() Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factMetadata.test.ts",
    "line": 193,
    "name": "returns null for non-string values",
    "purpose": "returns null for non-string values",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(metadataValueText(20260309, meta)).toBeNull() | expect(metadataValueText('', meta)).toBeNull() Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factMetadata.test.ts",
    "line": 200,
    "name": "returns null for unsupported kinds and missing metadata",
    "purpose": "returns null for unsupported kinds and missing metadata",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(metadataValueText('hello', { value_kind: 'text' })).toBeNull() | expect(metadataValueText(false, { value_kind: 'boolean' })).toBeNull() Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factMetadata.test.ts",
    "line": 210,
    "name": "does not mutate the value or metadata",
    "purpose": "does not mutate the value or metadata",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(meta.enum_labels?.checking).toBe('Checking') | expect(meta.enum_aliases?.MMA).toBe('money_market') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factMetadata.test.ts",
    "line": 219,
    "name": "passes group, rank, icon, and prompt through with null defaults",
    "purpose": "passes group, rank, icon, and prompt through with null defaults",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(metadataDisplayGroup(accountTypeMetadata)).toBe('value') | expect(metadataDisplayRank(accountTypeMetadata)).toBe(20) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factMetadata.test.ts",
    "line": 231,
    "name": "defaults enum policy to open and reminder eligibility to false",
    "purpose": "defaults enum policy to open and reminder eligibility to false",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(metadataEnumPolicy({})).toBe('open') | expect(metadataEnumPolicy({ enum_policy: 'closed' })).toBe('closed') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factPresentation.test.ts",
    "line": 10,
    "name": "folds an unknown group into Other details and leaves a missing group unset",
    "purpose": "folds an unknown group into Other details and leaves a missing group unset",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(presentationGroup(meta({ display_group: 'surprise' }))).toBe('other') | expect(presentationGroupLabel('other')).toBe('Other details') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factPresentation.test.ts",
    "line": 17,
    "name": "orders by group, then rank, and keeps the incoming order when metadata is absent",
    "purpose": "orders by group, then rank, and keeps the incoming order when metadata is absent",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(orderFactsForPresentation(facts).map((fact) => fact.id)).toEqual([ 'name', 'money', 'late', 'plain', 'also-plain', ]) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factReviewGroups.test.ts",
    "line": 20,
    "name": "keeps a single-account review as a flat list",
    "purpose": "keeps a single-account review as a flat list",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(groupFactsByHolding(facts)).toEqual([{ key: 'all', heading: null, facts }]) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factReviewGroups.test.ts",
    "line": 28,
    "name": "groups two last4s under institution headings",
    "purpose": "groups two last4s under institution headings",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(groups.map((group) => group.heading)).toEqual([ 'Vantage West Checking ••1111', 'Vantage West Savings ••2222', ]) | expect(groups[0].facts.map((row) => row.id)).toEqual(['1', '2', '3', '4']) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factReviewGroups.test.ts",
    "line": 50,
    "name": "groups a checking account and a card under separate headings",
    "purpose": "groups a checking account and a card under separate headings",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(groups.map((group) => group.heading)).toEqual([ 'Vantage West ••1111', 'Chase card ••4321', ]) | expect(groups[0].facts.map((row) => row.id)).toEqual(['1', '2']) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factReviewGroups.test.ts",
    "line": 69,
    "name": "puts non-holding facts after the account groups",
    "purpose": "puts non-holding facts after the account groups",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(groups[2]).toMatchObject({ key: 'other', heading: 'Other details' }) | expect(groups[2].facts.map((row) => row.id)).toEqual(['3']) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factReviewGroups.test.ts",
    "line": 81,
    "name": "names a holding from institution, type, and last4",
    "purpose": "names a holding from institution, type, and last4",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(holdingReviewHeading([ fact({ id: '1', subject_key: 'acct', fact_key: 'acct_institution_name', value: 'Vantage West' }), fact({ id: '2', subject_key: 'acct', fact_key: 'acct_number_last4', value: '7777' }), fact({ id: '3', subject_key: 'acct', fact_key: Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factReviewGroups.test.ts",
    "line": 89,
    "name": "shows a share suffix without a last4 mask",
    "purpose": "shows a share suffix without a last4 mask",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(holdingReviewHeading([ fact({ id: '1', subject_key: 'acct', fact_key: 'acct_institution_name', value: 'Vantage West' }), fact({ id: '2', subject_key: 'acct', fact_key: 'acct_number_last4', value: '00' }), fact({ id: '3', subject_key: 'acct', fact_key: ' Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factReviewGroups.test.ts",
    "line": 97,
    "name": "names a card holding from lender, type, and last4",
    "purpose": "names a card holding from lender, type, and last4",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(holdingReviewHeading([ fact({ id: '1', subject_key: 'liab', fact_key: 'liab_lender', value: 'Chase' }), fact({ id: '2', subject_key: 'liab', fact_key: 'liab_account_last4', value: '4321' }), fact({ id: '3', subject_key: 'liab', fact_key: 'liab_subtype', Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factReviewGroups.test.ts",
    "line": 105,
    "name": "names a visa brand on a credit-card entity as a card",
    "purpose": "names a visa brand on a credit-card entity as a card",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(holdingReviewHeading([ fact({ id: '1', subject_key: 'liab', fact_key: 'liab_lender', value: 'North Credit Union', domain_class_key: 'liability.credit_card' }), fact({ id: '2', subject_key: 'liab', fact_key: 'liab_account_last4', value: '4321', domain_cl Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factReviewGroups.test.ts",
    "line": 113,
    "name": "does not infer a card from subtype %s alone",
    "purpose": "does not infer a card from subtype %s alone (parameterized: 7 cases)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(holdingReviewHeading([ fact({ id: '1', subject_key: 'liab', fact_key: 'liab_lender', value: 'North Credit Union' }), fact({ id: '2', subject_key: 'liab', fact_key: 'liab_subtype', value: subtype }), ])).toBe('North Credit Union loan') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factReviewGroups.test.ts",
    "line": 122,
    "name": "uses the catalog enum label instead of sentence case",
    "purpose": "uses the catalog enum label instead of sentence case",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(holdingReviewHeading([ fact({ id: '1', subject_key: 'acct', fact_key: 'acct_institution_name', value: 'Vanguard' }), fact({ id: '2', subject_key: 'acct', fact_key: 'acct_account_type', value: 'traditional_ira', metadata: { value_kind: 'enum', enum_value Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/factReviewGroups.test.ts",
    "line": 139,
    "name": "accepts exact card subtype %s",
    "purpose": "accepts exact card subtype %s (parameterized: 2 cases)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(holdingReviewHeading([ fact({ id: '1', subject_key: 'liab', fact_key: 'liab_lender', value: 'North Credit Union' }), fact({ id: '2', subject_key: 'liab', fact_key: 'liab_subtype', value: subtype }), ])).toBe('North Credit Union card') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 28,
    "name": "masks exactly four letters or digits and leaves account digits on the other helper",
    "purpose": "masks exactly four letters or digits and leaves account digits on the other helper",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(formatLast4Alnum('1EG4')).toBe('••1EG4') | expect(formatLast4Alnum('1234')).toBe('••1234') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 40,
    "name": "credits a document by title and a typed value to the member",
    "purpose": "credits a document by title and a typed value to the member",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(sourceCopy({ item_title: undefined, capture_method: 'manual', })).toBe('You told us') | expect(sourceCopy({ item_title: 'You added this.', capture_method: 'manual', })).toBe('You added this') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 63,
    "name": "T-310-4 credits a document name by its title, never as typed",
    "purpose": "T-310-4 credits a document name by its title, never as typed",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(copy).toBe('From Durable power of attorney for Rosa') | expect(copy).not.toContain('You entered this') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 75,
    "name": "T-310-4 / M-310-4b a typed value never reads as a document",
    "purpose": "T-310-4 / M-310-4b a typed value never reads as a document",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(copy).toBe('You told us') | expect(copy).not.toContain('From') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 84,
    "name": "T-310-4 an untitled document falls back to a document, not a title",
    "purpose": "T-310-4 an untitled document falls back to a document, not a title",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(sourceCopy({ item_title: '', capture_method: 'ocr' })).toBe('From a document') | expect(sourceCopy({ item_title: 'scan.pdf', capture_method: 'ocr' })).toBe('From a document') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 90,
    "name": "keeps the as-of date on both credits",
    "purpose": "keeps the as-of date on both credits",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(sourceCopy({ item_title: 'Durable power of attorney for Rosa', capture_method: 'ocr', as_of_date: '2026-03-04', })).toContain('From Durable power of attorney for Rosa · ') | expect(sourceCopy({ item_title: undefined, capture_method: 'manual', as_of_date Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 105,
    "name": "never returns JSON text",
    "purpose": "never returns JSON text",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(factValue({ token: 'raw-json' })).toBe('') | expect(factValue('Amy')).toBe('Amy') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 113,
    "name": "keeps packet documents separate and drops a repeated document",
    "purpose": "keeps packet documents separate and drops a repeated document",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rows.map((row) => row.id)).toEqual(['1', '3']) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 124,
    "name": "keeps person facts and drops account facts",
    "purpose": "keeps person facts and drops account facts",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(isPersonPageFact({ fact_key: 'legal_full_name' })).toBe(true) | expect(isPersonPageFact({ fact_key: 'balance', domain_class_key: 'account.depository' })).toBe(false) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 132,
    "name": "keeps entered copy and names the document for extract",
    "purpose": "keeps entered copy and names the document for extract",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(holdingSourceCopy({ capture_method: 'manual' })).toBe('You entered this') | expect(holdingSourceCopy({ item_title: 'You added this during setup.', capture_method: 'manual', })).toBe('From your setup') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 156,
    "name": "never shows Untitled record",
    "purpose": "never shows Untitled record",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(sourceDocumentTitle('June statement')).toBe('June statement') | expect(sourceDocumentTitle('')).toBe('A statement') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 162,
    "name": "builds a document name from institution and type",
    "purpose": "builds a document name from institution and type",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(sourceListTitle({ item_title: 'document', document_type_key: 'bank_statement', period_end: '2026-07-31', page_count: 3, item_created_at: '2026-08-30T12:00:00Z', }, 'Vantage West')).toBe('Vantage West statement · July 2026 · 3 pages · added Aug 30') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 174,
    "name": "opens the source item when present",
    "purpose": "opens the source item when present",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(sourceItemHref({ item_id: 'item-stmt' })).toBe('/items/item-stmt') | expect(sourceItemHref({ item_id: '' })).toBeNull() Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 184,
    "name": "uses institution, type, and last4 — never the entity uid",
    "purpose": "uses institution, type, and last4 — never the entity uid",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(moneyHoldingTitle([ fact({ fact_key: 'acct_institution_name', value: 'VyStar Credit Union' }), fact({ fact_key: 'acct_type', value: 'checking' }), fact({ fact_key: 'acct_number_last4', value: '4471' }), ], 'account.depository')).toBe('VyStar Credit Unio Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 192,
    "name": "title-cases ALL CAPS institutions",
    "purpose": "title-cases ALL CAPS institutions",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(moneyHoldingTitle([ fact({ fact_key: 'acct_institution_name', value: 'VANTAGE WEST CREDIT UNION' }), fact({ fact_key: 'acct_type', value: 'checking' }), fact({ fact_key: 'acct_number_last4', value: '1695' }), ], 'account.depository')).toBe('Vantage West Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 200,
    "name": "falls back to liability lender and last4",
    "purpose": "falls back to liability lender and last4",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(moneyHoldingTitle([ fact({ fact_key: 'liab_lender', value: 'Chase' }), fact({ fact_key: 'liab_account_last4', value: '4321' }), ], 'liability.credit_card')).toBe('Chase card ••4321') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 207,
    "name": "shows a share suffix without pretending it is last4",
    "purpose": "shows a share suffix without pretending it is last4",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(moneyHoldingTitle([ fact({ fact_key: 'acct_institution_name', value: 'Vantage West Credit Union' }), fact({ fact_key: 'acct_type', value: 'Regular Shares' }), fact({ fact_key: 'acct_number_last4', value: '00' }), ], 'account.depository')).toBe('Vantage  Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 215,
    "name": "does not display a partially masked identifier as real",
    "purpose": "does not display a partially masked identifier as real",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(moneyHoldingTitle([ fact({ fact_key: 'acct_institution_name', value: 'Vantage West Credit Union' }), fact({ fact_key: 'acct_number_last4', value: '12XX34' }), ], 'account.depository')).toBe('Vantage West Credit Union') | expect(formatHoldingFactValue( f Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 227,
    "name": "labels and formats member-facing values",
    "purpose": "labels and formats member-facing values",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(holdingFactLabel(fact({ fact_key: 'acct_number_last4', value: '4471' }))).toBe('Account ending') | expect(holdingFactLabel(fact({ fact_key: 'acct_number_last4', value: '00' }))).toBe('Account suffix') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 245,
    "name": "collapses title-repeat and qualifier facts",
    "purpose": "collapses title-repeat and qualifier facts",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(visible).toHaveLength(1) | expect(visible[0].fact_key).toBe('acct_balance') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 261,
    "name": "shows history newest first when more than one balance exists",
    "purpose": "shows history newest first when more than one balance exists",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(holdingHistory([winner], [winner, prior], 'acct_balance').map((row) => row.id)).toEqual(['july', 'june']) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 267,
    "name": "marks a stale statement without a score",
    "purpose": "marks a stale statement without a score",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(headerOnlyFactsCopy('2026-07-31')).toBe('That is everything the July 2026 statement told us.') | expect(statementFreshnessCopy('2026-07-31', new Date('2026-09-01T12:00:00Z'))).toBe( 'Newest statement is from July 31, 2026. You may have a newer statement Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 274,
    "name": "hides instrument header facts and formats signed dates",
    "purpose": "hides instrument header facts and formats signed dates",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(visible).toHaveLength(1) | expect(visible[0].fact_key).toBe('will_execution_date') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 287,
    "name": "prefers catalog money and enum labels over the temporary allowlist",
    "purpose": "prefers catalog money and enum labels over the temporary allowlist",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(formatHoldingFactValue(fact({ fact_key: 'acct_account_type', value: 'traditional_ira', metadata: ira, }))).toBe('Traditional IRA') | expect(formatHoldingFactValue(fact({ fact_key: 'acct_account_type', value: 'traditional_ira', }))).toBe('Traditional ira Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 336,
    "name": "treats directive existence as a header while keeping a member label for pinned facts",
    "purpose": "treats directive existence as a header while keeping a member label for pinned facts",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(holdingFactLabel(exists)).toBe('Advance directive on file') | expect(visibleHoldingFacts([exists], () => false)).toEqual([]) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 344,
    "name": "names each self-instrument kind in member words",
    "purpose": "names each self-instrument kind in member words",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(instrumentKindCopy('instrument.will')).toBe('will') | expect(instrumentTitle([], 'instrument.will')).toBe('Will') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 375,
    "name": "keeps the viewer connection using document-local names before the roster loads",
    "purpose": "keeps the viewer connection using document-local names before the roster loads",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rows).toEqual([{ role: 'testator', name: 'Alex Quinn', entityId: 'self', itemId: 'packet', unbound: false, isViewer: true, }]) | expect(instrumentTitle([], 'instrument.will', 'will', rows[0])).toBe('Your will') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 389,
    "name": "does not borrow a same-name binding from another packet document",
    "purpose": "does not borrow a same-name binding from another packet document",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rows).toEqual([{ role: 'testator', name: 'Alex Quinn', itemId: 'packet', unbound: true }]) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 398,
    "name": "keeps the confirmed principal when the roster uses a different display name",
    "purpose": "keeps the confirmed principal when the roster uses a different display name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rows).toEqual([{ role: 'testator', name: 'Alex', entityId: 'self', itemId: 'packet', unbound: false, isViewer: true, }]) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 409,
    "name": "shows an unbound document-local grantor without DOB or other non-name facts",
    "purpose": "shows an unbound document-local grantor without DOB or other non-name facts",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rows).toEqual([{ role: 'grantor', name: 'Alex Quinn', itemId: 'packet', unbound: true }]) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 420,
    "name": "keeps a confirmed grantor with roster $names",
    "purpose": "keeps a confirmed grantor with roster $names (parameterized: 2 cases)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rows).toEqual([{ role: 'grantor', name: expectedName, entityId: 'self', itemId: 'packet', unbound: false, isViewer: true, }]) | expect(instrumentTitle([], 'instrument.trust', 'trust_agreement', rows[0])).toBe('Your trust') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 437,
    "name": "does not borrow a grantor binding scoped to %s",
    "purpose": "does not borrow a grantor binding scoped to %s (parameterized: 2 cases)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rows).toEqual([{ role: 'grantor', name: 'Alex Quinn', itemId: 'packet', unbound: true }]) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 446,
    "name": "does not use sibling or unscoped grantor names for a confirmed person",
    "purpose": "does not use sibling or unscoped grantor names for a confirmed person",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rows).toEqual([]) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 457,
    "name": "labels healthcare POA agent facts in member words",
    "purpose": "labels healthcare POA agent facts in member words",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(estatePersonFactLabel('poa_hc_agent')).toBe('Healthcare agent') | expect(estatePersonFactLabel('poa_hc_successor')).toBe('Successor healthcare agent') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 463,
    "name": "keeps bound and unbound numbered %s successors",
    "purpose": "keeps bound and unbound numbered %s successors (parameterized: 3 cases)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(instrumentNamedPeople('poa', [alice], facts, { alice: 'Alice Quinn' })).toEqual([ { role: 'successor agent', name: 'Alice Quinn', entityId: 'alice', itemId: 'poa', unbound: false, isViewer: false }, { role: 'successor agent', name: 'Bob Quinn', itemId:  Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 482,
    "name": "groups named people by role without inventing You alone",
    "purpose": "groups named people by role without inventing You alone",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rows.map((row) => `${row.role}:${row.name}:${row.unbound}`)).toEqual([ 'executor:Robert Whitfield:false', 'beneficiary:Shannon Marie Whitfield:false', 'beneficiary:Emily Whitfield Marsh:true', ]) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 507,
    "name": "marks uncited extracted beneficiary names as needing a document check",
    "purpose": "marks uncited extracted beneficiary names as needing a document check",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rows.map((row) => `${row.name}:${row.needsReview === true}`)).toEqual([ 'Sage Quill:true', 'Ellis Quill:true', ]) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 523,
    "name": "keeps a beneficiary name settled when a cited fact on the same document covers it",
    "purpose": "keeps a beneficiary name settled when a cited fact on the same document covers it",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(byName.get('Sage Quill')).toBe(false) | expect(byName.get('Ellis Quill')).toBe(true) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 539,
    "name": "flags a bound beneficiary name when its producing fact is uncited",
    "purpose": "flags a bound beneficiary name when its producing fact is uncited",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rows).toHaveLength(1) | expect(rows[0]).toMatchObject({ role: 'beneficiary', name: 'Sage Quill', entityId: 'person-sage', unbound: false, needsReview: true, }) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 557,
    "name": "keeps a bound beneficiary name settled when a cited fact covers it",
    "purpose": "keeps a bound beneficiary name settled when a cited fact covers it",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rows).toHaveLength(1) | expect(rows[0]).toMatchObject({ name: 'Sage Quill', entityId: 'person-sage' }) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 573,
    "name": "flags a bound beneficiary renamed in People via document+subject provenance",
    "purpose": "flags a bound beneficiary renamed in People via document+subject provenance",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(bound).toMatchObject({ name: 'Robin Quill', unbound: false, needsReview: true }) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 585,
    "name": "cannot drop a flagged bound row behind a settled bound row for the same person",
    "purpose": "cannot drop a flagged bound row behind a settled bound row for the same person",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(bound).toHaveLength(1) | expect(bound[0].needsReview).toBe(true) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 601,
    "name": "resolves a renamed historical beneficiary from the original parent array position",
    "purpose": "resolves a renamed historical beneficiary from the original parent array position",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rows).toHaveLength(1) | expect(rows[0]).toMatchObject({ name: 'Robin Quill', entityId: 'person-sage', unbound: false, needsReview: true }) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 613,
    "name": "retains a review flag across documents regardless of source order: %s",
    "purpose": "retains a review flag across documents regardless of source order: %s (parameterized: 2 cases)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rows).toHaveLength(1) | expect(rows[0].needsReview).toBe(true) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 629,
    "name": "does not let a cited beneficiary fact on another document settle the name",
    "purpose": "does not let a cited beneficiary fact on another document settle the name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rows).toEqual([ { role: 'beneficiary', name: 'Sage Quill', itemId: 'item-will', unbound: true, needsReview: true }, ]) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/facts.test.ts",
    "line": 647,
    "name": "equals title_case for every shared name-split row",
    "purpose": "equals title_case for every shared name-split row",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect({ input: row.input, title_case: titleCaseIfAllCaps(row.input) }).toEqual({ input: row.input, title_case: want, }) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/first72HoursGuide.test.ts",
    "line": 10,
    "name": "names the step-in person in the warning",
    "purpose": "names the step-in person in the warning",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(first72Warning('Shannon')).toBe(warningNamed) | expect(first72Warning('Shannon')).not.toMatch(/\\b(they|them|their) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/first72HoursGuide.test.ts",
    "line": 15,
    "name": "uses your step-in person when the warning has no name",
    "purpose": "uses your step-in person when the warning has no name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(first72Warning(null)).toBe(warningPlain) | expect(first72Warning(' ')).toBe(warningPlain) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/first72HoursGuide.test.ts",
    "line": 21,
    "name": "names the step-in person when nothing is written yet",
    "purpose": "names the step-in person when nothing is written yet",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(first72EmptyLine('Shannon')).toBe(emptyNamed) | expect(first72EmptyLine('Shannon')).not.toMatch(/\\b(they|them|their) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/first72HoursGuide.test.ts",
    "line": 26,
    "name": "treats a blank or pronoun as no name",
    "purpose": "treats a blank or pronoun as no name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(stepInFirstName({ displayName: '' })).toBeNull() | expect(stepInFirstName({ displayName: 'them Ng' })).toBeNull() Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/first72HoursGuide.test.ts",
    "line": 58,
    "name": "uses your step-in person when nothing is written and nobody is named",
    "purpose": "uses your step-in person when nothing is written and nobody is named",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(first72EmptyLine(null)).toBe(emptyPlain) | expect(first72EmptyLine('')).toBe(emptyPlain) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/first72HoursGuide.test.tsx",
    "line": 12,
    "name": "joins the faith name and phone the same way as the funeral home",
    "purpose": "joins the faith name and phone the same way as the funeral home",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(both).toEqual([{ label: 'Faith or clergy', value: 'Rev. Ames · 904-555-0142' }]) | expect(phoneOnly).toEqual([{ label: 'Faith or clergy', value: '904-555-0142' }]) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/first72HoursGuide.test.tsx",
    "line": 33,
    "name": "treats a faith phone alone as something the member wrote",
    "purpose": "treats a faith phone alone as something the member wrote",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(guideHasMemberFields({ ...EMPTY_FIRST_72_HOURS_GUIDE, faith_contact_phone: '904-555-0142', })).toBe(true) | expect(guideHasMemberFields(EMPTY_FIRST_72_HOURS_GUIDE)).toBe(false) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/first72HoursGuide.test.tsx",
    "line": 41,
    "name": "saves the name and phone the member typed",
    "purpose": "saves the name and phone the member typed",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(onSave).toHaveBeenCalledOnce() | expect(saved.faith_contact_name).toBe('Rev. Ames') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/formatPasswordRetryAt.test.ts",
    "line": 5,
    "name": "shows the clock only when retry_at is the same America/New_York day",
    "purpose": "shows the clock only when retry_at is the same America/New_York day",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(formatPasswordRetryAt('2026-10-09T19:40:00.000Z', now, 'America/New_York')).toBe('3:40 PM') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/formatPasswordRetryAt.test.ts",
    "line": 10,
    "name": "adds the short date when retry_at is just after midnight in America/New_York",
    "purpose": "adds the short date when retry_at is just after midnight in America/New_York",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(formatPasswordRetryAt('2026-10-10T04:05:00.000Z', now, 'America/New_York')).toBe('Oct 10, 12:05 AM') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/formatPasswordRetryAt.test.ts",
    "line": 15,
    "name": "shows the clock only when that same instant is still the America/Phoenix day",
    "purpose": "shows the clock only when that same instant is still the America/Phoenix day",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(formatPasswordRetryAt('2026-10-10T04:05:00.000Z', now, 'America/Phoenix')).toBe('9:05 PM') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/formatPasswordRetryAt.test.ts",
    "line": 20,
    "name": "adds the short date when retry_at is just after midnight in America/Phoenix",
    "purpose": "adds the short date when retry_at is just after midnight in America/Phoenix",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(formatPasswordRetryAt('2026-10-10T07:05:00.000Z', now, 'America/Phoenix')).toBe('Oct 10, 12:05 AM') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/formatPasswordRetryAt.test.ts",
    "line": 25,
    "name": "ignores a UTC date change that is still the same local day",
    "purpose": "ignores a UTC date change that is still the same local day",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(formatPasswordRetryAt('2026-10-10T03:40:00.000Z', now, 'America/New_York')).toBe('11:40 PM') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/formatPasswordRetryAt.test.ts",
    "line": 30,
    "name": "rounds 2:35:40 up to 2:36 in America/New_York",
    "purpose": "rounds 2:35:40 up to 2:36 in America/New_York",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(formatPasswordRetryAt('2026-10-09T18:35:40.000Z', now, 'America/New_York')).toBe('2:36 PM') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/formatPasswordRetryAt.test.ts",
    "line": 35,
    "name": "leaves an exact 2:35:00 on that minute",
    "purpose": "leaves an exact 2:35:00 on that minute",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(formatPasswordRetryAt('2026-10-09T18:35:00.000Z', now, 'America/New_York')).toBe('2:35 PM') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/formatPasswordRetryAt.test.ts",
    "line": 40,
    "name": "rounds 2:35:00.500 up to 2:36",
    "purpose": "rounds 2:35:00.500 up to 2:36",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(formatPasswordRetryAt('2026-10-09T18:35:00.500Z', now, 'America/New_York')).toBe('2:36 PM') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/formatPasswordRetryAt.test.ts",
    "line": 45,
    "name": "shows the next day when 11:59:30 PM rounds up to midnight",
    "purpose": "shows the next day when 11:59:30 PM rounds up to midnight",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(formatPasswordRetryAt('2026-10-10T03:59:30.000Z', now, 'America/New_York')).toBe('Oct 10, 12:00 AM') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/graphRoutesGone.test.ts",
    "line": 18,
    "name": "has no router registration containing \"/graph/",
    "purpose": "has no router registration containing \"/graph/",
    "classification": "internals",
    "restates": "yes",
    "reason": "Restates evidence: Parses server source text and searches for a literal router token. Reviewed against test body: asserts exact source text, file contents, or private migration structure; this is an implementation guard, not runtime behavior. reads server router source and searches for the literal route substring; does not register or call routes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/graphRoutesGone.test.ts",
    "line": 27,
    "name": "has no frontend caller of the unmounted graph API",
    "purpose": "has no frontend caller of the unmounted graph API",
    "classification": "internals",
    "restates": "yes",
    "reason": "Restates evidence: Scans frontend source text for an exact API path string. Reviewed against test body: asserts exact source text, file contents, or private migration structure; this is an implementation guard, not runtime behavior. reads frontend source and searches for the literal API path; does not exercise a runtime caller.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/guidedImport.test.ts",
    "line": 40,
    "name": "parses unique item ids from a query string",
    "purpose": "parses unique item ids from a query string",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(parseItemIds(' a, a, b , ')).toEqual(['a', 'b']) | expect(parseItemIds('')).toEqual([]) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/guidedImport.test.ts",
    "line": 45,
    "name": "reads one progress line instead of a fraction",
    "purpose": "reads one progress line instead of a fraction",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(readingCopy(6)).toBe('Reading 6 documents…') | expect(readingCopy(1)).toBe('Reading 1 document…') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/guidedImport.test.ts",
    "line": 51,
    "name": "groups two statements that share institution and last4",
    "purpose": "groups two statements that share institution and last4",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(groups).toHaveLength(2) | expect(account?.title).toBe('VyStar account ••4821') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/guidedImport.test.ts",
    "line": 90,
    "name": "formats money from metadata or the temporary allowlist and keeps enum labels",
    "purpose": "formats money from metadata or the temporary allowlist and keeps enum labels",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(group.title).toBe('Vanguard traditional ira ••1234') | expect(group.facts.map((row) => `${row.label}: ${row.value}`)).toEqual([ 'Acct Institution Name: Vanguard', 'Acct Number Last4: 1234', 'Account type: Traditional IRA', 'Acct Balance: $18,420.50', 'Y Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/guidedImport.test.ts",
    "line": 130,
    "name": "shows a shared suffix without a last4 mask",
    "purpose": "shows a shared suffix without a last4 mask",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(groupHoldings([account])[0]?.title).toBe('VyStar shares 00') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/guidedImport.test.ts",
    "line": 143,
    "name": "splits one statement that lists two last4s into two holdings",
    "purpose": "splits one statement that lists two last4s into two holdings",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(groups).toHaveLength(2) | expect(groups.map((group) => group.title).sort()).toEqual([ 'Vantage West account ••1111', 'Vantage West account ••2222', ]) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/guidedImport.test.ts",
    "line": 162,
    "name": "names failed documents and keeps them out of holdings",
    "purpose": "names failed documents and keeps them out of holdings",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(groupHoldings([failed, ready])).toHaveLength(1) | expect(failedDocuments([failed, ready])).toEqual([{ id: 'scan', title: 'Scan.jpg' }]) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/guidedImport.test.ts",
    "line": 173,
    "name": "resumes on reading while any item is still in progress",
    "purpose": "resumes on reading while any item is still in progress",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(resolveInitialStep([])).toBe('select') | expect(resolveInitialStep([doc({ id: 'a', title: 'A', classificationStatus: 'in_progress' })])).toBe('reading') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/guidedImport.test.ts",
    "line": 181,
    "name": "keeps a deposit and a liability that share an institution and last4 apart",
    "purpose": "keeps a deposit and a liability that share an institution and last4 apart",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(groups).toHaveLength(2) | expect(groups.map((group) => group.title).sort()).toEqual([ 'Chase checking ••2290', 'Chase credit card ••2290', ]) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/guidedImport.test.ts",
    "line": 214,
    "name": "gives a card with no lender or last4 its own row and invents nothing",
    "purpose": "gives a card with no lender or last4 its own row and invents nothing",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(groups).toHaveLength(2) | expect(group.title).not.toMatch(/pdf/i) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/guidedImport.test.ts",
    "line": 235,
    "name": "groups repeats for the same card only when the identity is confident",
    "purpose": "groups repeats for the same card only when the identity is confident",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(groups).toHaveLength(1) | expect(groups[0].documentCountLabel).toBe('2 documents') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/guidedImport.test.ts",
    "line": 259,
    "name": "never titles a holding with the document filename",
    "purpose": "never titles a holding with the document filename",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(group.title).toBe('Saved item') | expect(group.title).not.toContain('IMG_4021') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/guidedImport.test.ts",
    "line": 268,
    "name": "aggregates bind offers and one unconfirmed fact per remaining document",
    "purpose": "aggregates bind offers and one unconfirmed fact per remaining document",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rows).toHaveLength(2) | expect(rows[0]).toMatchObject({ kind: 'bind', question: 'Who is this person?', extractedName: 'Nora G6 Import Person' }) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/guidedImport.test.ts",
    "line": 292,
    "name": "asks to add a first-time statement holding",
    "purpose": "asks to add a first-time statement holding",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rows).toHaveLength(1) | expect(rows[0]).toMatchObject({ kind: 'bind', question: 'Is this a new Vantage West ••1234 account?', entityTypeSubtype: 'account.depository', }) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/guidedImport.test.ts",
    "line": 312,
    "name": "asks to add a card from a bank statement offer",
    "purpose": "asks to add a card from a bank statement offer",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rows[0]).toMatchObject({ kind: 'bind', question: 'Is this a new Chase card ••4321?', entityTypeSubtype: 'liability.credit_card', }) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/guidedImport.test.ts",
    "line": 336,
    "name": "routes a flagged person offer to the document check, not Add",
    "purpose": "routes a flagged person offer to the document check, not Add",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rows).toHaveLength(1) | expect(rows[0]).toMatchObject({ kind: 'bind', question: 'Check this name in the document', needsReview: true, }) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/guidedImport.test.ts",
    "line": 356,
    "name": "does not promote proposed facts into the OK list",
    "purpose": "does not promote proposed facts into the OK list",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(buildReviewRows([bank], [])).toEqual([]) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/guidedImport.test.ts",
    "line": 379,
    "name": "round-trips batch ids without a server store",
    "purpose": "round-trips batch ids without a server store",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(readStoredImportBatch()).toEqual(['one', 'two']) | expect(sessionStorage.getItem(GUIDED_IMPORT_STORAGE_KEY)).toContain('one') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/homeState.test.ts",
    "line": 5,
    "name": "is day-zero when the household has no records",
    "purpose": "is day-zero when the household has no records",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(resolveHomeState(false, 0)).toBe('day-zero') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/homeState.test.ts",
    "line": 9,
    "name": "stays day-zero even if findings exist but there are no records",
    "purpose": "stays day-zero even if findings exist but there are no records",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(resolveHomeState(false, 3)).toBe('day-zero') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/homeState.test.ts",
    "line": 13,
    "name": "is returning when there are records and at least one finding",
    "purpose": "is returning when there are records and at least one finding",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(resolveHomeState(true, 1)).toBe('returning') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/homeState.test.ts",
    "line": 17,
    "name": "is all-clear when there are records and no findings",
    "purpose": "is all-clear when there are records and no findings",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(resolveHomeState(true, 0)).toBe('all-clear') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/homeState.test.ts",
    "line": 23,
    "name": "is null for zero or one finding",
    "purpose": "is null for zero or one finding",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(moreOnWorthALookLabel(0)).toBeNull() | expect(moreOnWorthALookLabel(1)).toBeNull() Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/homeState.test.ts",
    "line": 28,
    "name": "names the rest on Worth a look",
    "purpose": "names the rest on Worth a look",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(moreOnWorthALookLabel(2)).toBe('1 more on Worth a look') | expect(moreOnWorthALookLabel(5)).toBe('4 more on Worth a look') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/insurancePresentation.test.ts",
    "line": 13,
    "name": "leads %s with %s followed by premium",
    "purpose": "leads %s with %s followed by premium (parameterized: 11 cases)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(orderInsuranceFacts([carrier, premium, benefit])).toEqual([benefit, premium, carrier]) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/insurancePresentation.test.ts",
    "line": 32,
    "name": "copies zero benefits and leaves absent benefits and other document facts alone",
    "purpose": "copies zero benefits and leaves absent benefits and other document facts alone",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(orderInsuranceFacts([premium, face, net])).toEqual([net, premium, face]) | expect(orderInsuranceFacts([premium])).toEqual([premium]) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/inviteNameCopy.test.ts",
    "line": 67,
    "name": "fails when a capitalized Someone sits mid-sentence",
    "purpose": "fails when a capitalized Someone sits mid-sentence",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(hits).toEqual([]) | expect(optionalEmailLead('')).toBe('This email address') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/inviteNameCopy.test.ts",
    "line": 79,
    "name": "fails when a crossed invite with no name puts Someone mid-sentence",
    "purpose": "fails when a crossed invite with no name puts Someone mid-sentence",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(midSentenceSomeoneHits(explanation)).toEqual([]) | expect(explanation).toBe('An invitation is already waiting. Review it to continue.') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/inviteNameCopy.test.ts",
    "line": 90,
    "name": "shows Fred's removed-person sentence and a restore path",
    "purpose": "shows Fred's removed-person sentence and a restore path",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(presented.explanation).toBe(line) | expect(presented.restorePath).toBe('/people/person-ada') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/inviteOnboardingPronouns.test.ts",
    "line": 25,
    "name": "fails when a pronoun is in the copy",
    "purpose": "fails when a pronoun is in the copy",
    "classification": "internals",
    "restates": "yes",
    "reason": "Restates evidence: Runs a lexical pronoun regex over source files, not rendered copy. Reviewed against test body: asserts exact source text, file contents, or private migration structure; this is an implementation guard, not runtime behavior. strips comments then runs a pronoun regex over selected source files; guards source text, not rendered copy.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/itemFetchEpoch.test.ts",
    "line": 16,
    "name": "does not let a delayed fetch from before a member-kind save replace a later member kind",
    "purpose": "does not let a delayed fetch from before a member-kind save replace a later member kind",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(itemFetchIsFresh('item-1', stale)).toBe(false) | expect(itemFetchIsFresh('item-1', next)).toBe(true) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/itemFetchEpoch.test.ts",
    "line": 25,
    "name": "covers member-to-member on the same generation, not only automatic-to-member",
    "purpose": "covers member-to-member on the same generation, not only automatic-to-member",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(itemFetchIsFresh('item-1', firstMember)).toBe(false) | expect(itemFetchIsFresh('item-1', firstMember)).toBe(false) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/itemFetchEpoch.test.ts",
    "line": 39,
    "name": "does not freeze later server member-kind updates from a fresh fetch",
    "purpose": "does not freeze later server member-kind updates from a fresh fetch",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(itemFetchIsFresh('item-1', laterServer)).toBe(true) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/itemFetchEpoch.test.ts",
    "line": 46,
    "name": "scopes epochs per item",
    "purpose": "scopes epochs per item",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(itemFetchIsFresh('item-a', a)).toBe(false) | expect(itemFetchIsFresh('item-b', b)).toBe(true) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/itemFetchEpoch.test.ts",
    "line": 54,
    "name": "drops an older overlapping GET when a newer one for the same item has started",
    "purpose": "drops an older overlapping GET when a newer one for the same item has started",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(itemFetchIsLatest('item-1', older)).toBe(false) | expect(itemFetchIsLatest('item-1', newer)).toBe(true) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/itemFetchEpoch.test.ts",
    "line": 63,
    "name": "accepts a fresh post-save remap or other-member kind on the same UUID",
    "purpose": "accepts a fresh post-save remap or other-member kind on the same UUID",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(itemFetchShouldApply('item-1', afterSave)).toBe(true) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/itemReview.test.ts",
    "line": 59,
    "name": "names the first name on the one-name card",
    "purpose": "names the first name on the one-name card",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(paperOwnWordsMessage('Amy')).toBe('Tell us how Amy is related to you, in up to 80 characters.') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/itemReview.test.ts",
    "line": 63,
    "name": "says someone when the first name is blank",
    "purpose": "says someone when the first name is blank",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(paperOwnWordsMessage('')).toBe('Tell us how someone is related to you, in up to 80 characters.') | expect(paperOwnWordsMessage(' ')).toBe('Tell us how someone is related to you, in up to 80 characters.') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/itemReview.test.ts",
    "line": 72,
    "name": "treats account and liability offers as holdings",
    "purpose": "treats account and liability offers as holdings",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(isHoldingBindOffer({ entity_type_subtype: 'account.depository' })).toBe(true) | expect(isHoldingBindOffer({ entity_type_subtype: 'liability.credit_card' })).toBe(true) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/itemReview.test.ts",
    "line": 82,
    "name": "uses card and loan words for liability holdings",
    "purpose": "uses card and loan words for liability holdings",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(holdingMemberNoun(card)).toBe('card') | expect(holdingAddLabel(card)).toBe('Add this card') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/itemReview.test.ts",
    "line": 95,
    "name": "loads the item, unresolved facts, and create offers through Go endpoints",
    "purpose": "loads the item, unresolved facts, and create offers through Go endpoints",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(loadItemReview('item/1')).resolves.toEqual({ item, facts, bindings, bind_create_offers: offers, holes }) | expect(mockJSON).toHaveBeenNthCalledWith(1, '/api/items/item%2F1')",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/itemReview.test.ts",
    "line": 116,
    "name": "loads a fenced review once for the item, then checks the poll, and keeps the open generation",
    "purpose": "loads a fenced review once for the item, then checks the poll, and keeps the open generation",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(review.item.generation_id).toBe('job-1') | expect(review.item.capabilities.can_edit).toBe(true)",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/itemReview.test.ts",
    "line": 159,
    "name": "marks a fence incoherent when close generation advances and does not expose close as the item token",
    "purpose": "marks a fence incoherent when close generation advances and does not expose close as the item token",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(review.item.generation_id).toBe('job-1') | expect(review.fence_coherent).toBe(false)",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/itemReview.test.ts",
    "line": 175,
    "name": "follows the open item can_edit for people writes",
    "purpose": "follows the open item can_edit for people writes",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(review.item).toEqual(open) | expect(review.item.generation_id).toBe('job-1')",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/itemReview.test.ts",
    "line": 210,
    "name": "loads member bind offers from GET /api/me/bind-offers",
    "purpose": "loads member bind offers from GET /api/me/bind-offers",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(loadMemberBindOffers()).resolves.toEqual(offers) | expect(mockJSON).toHaveBeenCalledWith('/api/me/bind-offers')",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/itemReview.test.ts",
    "line": 217,
    "name": "accepts, attaches, and declines bind create offers without a browser data client",
    "purpose": "accepts, attaches, and declines bind create offers without a browser data client",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(mockJSON).toHaveBeenNthCalledWith(1, '/api/items/item%2F1/bind-offers/offer%2F1/accept', { method: 'POST' }) | expect(mockJSON).toHaveBeenNthCalledWith(2, '/api/items/item%2F1/bind-offers/offer%2F1/attach', { method: 'POST', body: { entity_id: 'entity/d",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/itemReview.test.ts",
    "line": 235,
    "name": "attaches a spouse-link principal without a copied name",
    "purpose": "attaches a spouse-link principal without a copied name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(mockJSON).toHaveBeenCalledWith('/api/items/item%2F1/bind-offers/offer%2F1/spouse-attach', { method: 'POST', body: { confirmed_document_check: true, document_id: 'doc/1' }, })",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/itemReview.test.ts",
    "line": 247,
    "name": "adds the named person and attaches through one route",
    "purpose": "adds the named person and attaches through one route",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(mockJSON).toHaveBeenCalledWith('/api/items/item%2F1/bind-offers/offer%2F1/add-attach', { method: 'POST', body: { confirmed_document_check: true }, })",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/itemReview.test.ts",
    "line": 256,
    "name": "sends structured name parts and the nickname",
    "purpose": "sends structured name parts and the nickname",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(mockJSON).toHaveBeenCalledWith('/api/items/item%2F1/bind-offers/offer%2F1/add-attach', { method: 'POST', body: { first_name: 'Amy', middle_name: 'Lynn', last_name: 'Whitfield', name_suffix: 'Jr.', nickname: 'Dee', }, })",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/itemReview.test.ts",
    "line": 277,
    "name": "sends expected_generation_id on bind and pin helpers when provided",
    "purpose": "sends expected_generation_id on bind and pin helpers when provided",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(mockJSON).toHaveBeenNthCalledWith(1, '/api/items/item%2F1/bind-offers/offer%2F1/accept', { method: 'POST', body: { expected_generation_id: 'job/1' }, }) | expect(mockJSON).toHaveBeenNthCalledWith(2, '/api/items/item%2F1/bind-offers/offer%2F1/attach', { ",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/itemReview.test.ts",
    "line": 306,
    "name": "attaches an already-bound self testator without a create-person offer",
    "purpose": "attaches an already-bound self testator without a create-person offer",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(mockJSON).toHaveBeenCalledWith('/api/items/item%2F1/bind-offers/attach', { method: 'POST', body: { entity_id: 'entity/dave' }, })",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/itemReview.test.ts",
    "line": 317,
    "name": "adds a legal record for one document without a browser data client",
    "purpose": "adds a legal record for one document without a browser data client",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(mockJSON).toHaveBeenCalledWith('/api/items/item%2F1/instruments', { method: 'POST', body: { document_id: 'doc/1', expected_generation_id: 'job/1' }, })",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/itemReview.test.ts",
    "line": 331,
    "name": "disconnects a legal record for one document",
    "purpose": "disconnects a legal record for one document",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(mockJSON).toHaveBeenCalledWith('/api/items/item%2F1/instruments', { method: 'DELETE', body: { document_id: 'doc/1', expected_generation_id: 'job/1', expected_binding_id: 'bind/1' }, })",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/itemReview.test.ts",
    "line": 346,
    "name": "posts fact review actions without a browser data client",
    "purpose": "posts fact review actions without a browser data client",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(mockJSON).toHaveBeenCalledWith('/api/items/item%2F1/facts/fact%2F1/pin', { method: 'POST' })",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/itemReview.test.ts",
    "line": 354,
    "name": "writes a document correction and pins in one request",
    "purpose": "writes a document correction and pins in one request",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(mockJSON).toHaveBeenCalledWith('/api/items/item%2F1/facts', { method: 'POST', body: { subject_key: 'testator', fact_key: 'legal_full_name', value: 'Janet', document_id: 'doc/1', }, })",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/itemReview.test.ts",
    "line": 375,
    "name": "posts a contact-point correction with qualifier_key",
    "purpose": "posts a contact-point correction with qualifier_key",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(mockJSON).toHaveBeenCalledWith('/api/items/item%2F1/facts', { method: 'POST', body: { subject_key: 'person', fact_key: 'address', value: { label: '14 Cedar Street' }, qualifier_key: 'current', }, })",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/itemReview.test.ts",
    "line": 396,
    "name": "treats will name and role rows as bindable",
    "purpose": "treats will name and role rows as bindable",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(isBindableNameRole({ subject_key: 'testator', fact_key: 'legal_full_name' })).toBe(true) | expect(isBindableNameRole({ subject_key: 'principal', fact_key: 'legal_full_name' })).toBe(true) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/itemReview.test.ts",
    "line": 406,
    "name": "loads published catalog types and reclassifies through item APIs, not /api/files",
    "purpose": "loads published catalog types and reclassifies through item APIs, not /api/files",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(loadPublishedDocumentTypes()).resolves.toEqual([{ key: 'will', label: 'will' }]) | expect(mockJSON).toHaveBeenCalledWith('/api/document-types')",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/itemReview.test.ts",
    "line": 423,
    "name": "loads grouped document kinds and writes kind, reread, and clarify without type keys",
    "purpose": "loads grouped document kinds and writes kind, reread, and clarify without type keys",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(loadPublishedDocumentKinds()).resolves.toMatchObject({ catalog_version: 'v2-2026-07-22', mapping_revision: 1, }) | expect(mockJSON).toHaveBeenCalledWith('/api/document-kinds')",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/itemReview.test.ts",
    "line": 491,
    "name": "keeps current capabilities when a reread payload omits them",
    "purpose": "keeps current capabilities when a reread payload omits them",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(merged?.capabilities.can_edit).toBe(true) | expect(merged?.classification_status).toBe('in_progress') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/itemReview.test.ts",
    "line": 516,
    "name": "rereads saved pages through POST /api/items/:id/reread",
    "purpose": "rereads saved pages through POST /api/items/:id/reread",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(rereadItem('item/1')).resolves.toEqual({ id: 'item/1', classification_status: 'in_progress', }) | expect(mockJSON).toHaveBeenCalledWith('/api/items/item%2F1/reread', { method: 'POST' })",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/itemReview.test.ts",
    "line": 525,
    "name": "retries a failed read through POST /api/items/:id/retry-extraction",
    "purpose": "retries a failed read through POST /api/items/:id/retry-extraction",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(retryItemExtraction('item/1', 'job-1')).resolves.toEqual({ id: 'item/1', classification_status: 'in_progress', }) | expect(mockJSON).toHaveBeenCalledWith('/api/items/item%2F1/retry-extraction', { method: 'POST', body: { failed_job_id: 'job-1' }, })",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/itemReview.test.ts",
    "line": 540,
    "name": "asks about one item through the Go chat endpoint",
    "purpose": "asks about one item through the Go chat endpoint",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(askItem('item/1', 'What is the policy number?', [ { role: 'user', content: 'earlier' }, { role: 'assistant', content: 'earlier answer' }, ])).resolves.toBe('From this record: POL-4421') | expect(mockJSON).toHaveBeenCalledWith('/api/items/item%2F1/chat',",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/livingAccess.test.ts",
    "line": 10,
    "name": "says only you when nothing is shared",
    "purpose": "says only you when nothing is shared",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(livingAccessLabel({ mark: 'mine', scope: 'private' }, 'Shannon')).toBe('Only you can open it') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/livingAccess.test.ts",
    "line": 14,
    "name": "names a spouse-only share",
    "purpose": "names a spouse-only share",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(livingAccessLabel({ mark: 'mine', scope: 'shared', spouse_share: true, living_shares: [shannon], }, 'Shannon')).toBe('Shannon can view') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/livingAccess.test.ts",
    "line": 23,
    "name": "names a non-spouse share even when there is no spouse",
    "purpose": "names a non-spouse share even when there is no spouse",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(label).toBe('Frank Delgado can open it') | expect(label).not.toBe('Only you can open it') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/livingAccess.test.ts",
    "line": 34,
    "name": "says others when a living share has no usable name",
    "purpose": "says others when a living share has no usable name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(livingAccessLabel({ mark: 'mine', scope: 'shared', spouse_share: true, living_shares: [shannon, { id: 'unnamed', display_name: 'them' }], }, 'Shannon')).toBe('Others can open it') | expect(livingAccessLabel({ mark: 'mine', scope: 'shared', spouse_share: Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/livingAccess.test.ts",
    "line": 49,
    "name": "names two people and collapses a longer list",
    "purpose": "names two people and collapses a longer list",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(livingAccessLabel({ mark: 'mine', scope: 'shared', spouse_share: true, living_shares: [frank, shannon], }, 'Shannon')).toBe('Frank Delgado and Shannon Whitfield can open it') | expect(livingAccessLabel({ mark: 'mine', scope: 'shared', spouse_share: true Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/memberCopyPronouns.test.ts",
    "line": 38,
    "name": "fails when a swept file uses a pronoun",
    "purpose": "fails when a swept file uses a pronoun",
    "classification": "internals",
    "restates": "yes",
    "reason": "Restates evidence: Scans source text lines with a pronoun regex after comment stripping. Strips comments then scans selected source lines with a regex for pronoun tokens; this is a source-text guard.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/memberName.test.ts",
    "line": 8,
    "name": "returns a trimmed name or an empty string",
    "purpose": "returns a trimmed name or an empty string",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(memberShownName(' Ada Chen ')).toBe('Ada Chen') | expect(memberShownName('')).toBe('') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/memberName.test.ts",
    "line": 16,
    "name": "refuses a pronoun",
    "purpose": "refuses a pronoun",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(memberShownName(value)).toBe('') | expect(memberSpokenName('them', 'Someone')).toBe('Someone') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/memberName.test.ts",
    "line": 26,
    "name": "refuses a pronoun first token and keeps My (M-320-2)",
    "purpose": "refuses a pronoun first token and keeps My (M-320-2)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(memberShownName(value)).toBe('') | expect(stepInFirstName(value)).toBe('') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/memberName.test.ts",
    "line": 38,
    "name": "sanitizes roster and review labels",
    "purpose": "sanitizes roster and review labels",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rosterPersonLabel({ display_name: 'Frank Delgado' })).toBe('Frank Delgado') | expect(rosterPersonLabel({ display_name: 'them' })).toBe('Someone') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/memberReceipt.test.ts",
    "line": 11,
    "name": "repeats a grid figure and does not total, advise, or ask",
    "purpose": "repeats a grid figure and does not total, advise, or ask",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(receipt.summary).toBe('Retirement account for Robert Whitfield, dated March 31, 2026.') | expect(receipt.bullets).toEqual(['Balance: 100', 'Other balance: 40']) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/memberReceipt.test.ts",
    "line": 23,
    "name": "keeps dates with the same year on separate bullets",
    "purpose": "keeps dates with the same year on separate bullets",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(composeReceipt('Deed', '', '', facts).bullets).toEqual([ 'Recorded: March 5, 2014', 'Signed: March 2, 2014', ]) | expect(bulletAllowed('Balances: 100 and 40', balances[0])).toBe(false) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/memberReceipt.test.ts",
    "line": 36,
    "name": "uses the shared catalog formatter for %s",
    "purpose": "uses the shared catalog formatter for %s (parameterized: 2 cases)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(composeReceipt('Document', '', '', [{ key, label: 'Answer', value }]).bullets).toEqual(['Answer: Catalog wording']) | expect(composeReceipt('Document', '', '', [{ key, label: 'Answer', value: raw }]).bullets).toEqual([`Answer: ${raw}`]) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/memberReceipt.test.ts",
    "line": 48,
    "name": "no longer treats account survivorship as a silent echo",
    "purpose": "no longer treats account survivorship as a silent echo",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(isSilentSurvivorship('acct_survivorship', 'does_not_say')).toBe(false) | expect(isSilentSurvivorship('deed_survivorship', 'does_not_say')).toBe(true) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/memberReceipt.test.ts",
    "line": 62,
    "name": "omits attribution when account subjects differ",
    "purpose": "omits attribution when account subjects differ (parameterized: 2 cases)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(composeReceipt('Bank account', whose, dated, facts).summary).toBe('Bank account.') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/memberReceipt.test.ts",
    "line": 69,
    "name": "never attributes an account to a name, even on one subject",
    "purpose": "never attributes an account to a name, even on one subject",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(receiptAttribution([september])).toEqual({ whose: '', dated: 'September 30' }) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/memberReceipt.test.ts",
    "line": 73,
    "name": "still withholds a date when two are present on one subject",
    "purpose": "still withholds a date when two are present on one subject",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(receiptAttribution([september, { ...august, subjectKey: 'acct_1' }])).toEqual({ whose: '', dated: '' }) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/memberReceipt.test.ts",
    "line": 77,
    "name": "omits ambiguous and missing subjects",
    "purpose": "omits ambiguous and missing subjects",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(receiptAttribution([{ ...september, subjectKey: undefined }])).toEqual({ whose: '', dated: '' }) | expect(receiptAttribution([september, { key: 'acct_balance', label: 'Balance', value: '10', subjectKey: 'acct' }])).toEqual({ whose: '', dated: '' }) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/memberReceipt.test.ts",
    "line": 82,
    "name": "keeps document-level names and dates across their role subjects",
    "purpose": "keeps document-level names and dates across their role subjects",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(receiptAttribution([ { key: 'legal_full_name', label: 'Name', value: 'Mary', subjectKey: 'testator' }, { key: 'will_execution_date', label: 'Signed', value: 'September 30', subjectKey: 'instrument' }, ])).toEqual({ whose: 'Mary', dated: 'September 30' } Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/onMyDeathCopy.test.ts",
    "line": 23,
    "name": "keeps the phrase off member-visible source",
    "purpose": "keeps the phrase off member-visible source",
    "classification": "internals",
    "restates": "yes",
    "reason": "Restates evidence: Scans source files for forbidden phrase variants. Scans TypeScript source text for forbidden phrase spellings; it does not inspect rendered member copy.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/onboardingV2.test.ts",
    "line": 17,
    "name": "keeps checked categories in session and teaches the three sources once",
    "purpose": "keeps checked categories in session and teaches the three sources once",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(readOnboardingUpload()?.remaining).toEqual(['home', 'pets']) | expect(readOnboardingUpload()?.sourcesTaught).toBe(false) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/onboardingV2.test.ts",
    "line": 28,
    "name": "keeps the legal name in session and opens import only while a queue exists",
    "purpose": "keeps the legal name in session and opens import only while a queue exists",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(readOnboardingWho()).toEqual({ legalFullName: 'David Alan Matlock', preferredName: 'Dave' }) | expect(onboardingWizardOpen()).toBe(true) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/onboardingV2.test.ts",
    "line": 42,
    "name": "does not skip who-for when only a leftover checklist queue is stored",
    "purpose": "does not skip who-for when only a leftover checklist queue is stored",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(initialOnboardingStep()).toBe('who') | expect(initialOnboardingStep(true)).toBe('checklist') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/packetInventory.test.ts",
    "line": 112,
    "name": "keeps seven rows, both wills, a zero-fact unrecognized section, and compact labels",
    "purpose": "keeps seven rows, both wills, a zero-fact unrecognized section, and compact labels",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rows).toHaveLength(7) | expect(rows.map((row) => row.paperTitle)).toEqual([ 'Harborvale Family Trust', 'Last Will of Morgan Quill', 'Financial power of attorney', 'Healthcare power of attorney', 'Last Will of Ellis Quill', 'Financial power of attorney', Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/packetInventory.test.ts",
    "line": 161,
    "name": "does not treat a person waiting for confirmation as a reading failure",
    "purpose": "does not treat a person waiting for confirmation as a reading failure",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rows[0].state).toBe('Needs a look') | expect(rows[0].state).not.toMatch(/couldn'?t read/i) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/packetInventory.test.ts",
    "line": 173,
    "name": "omits Named here after the principal is attached, and never rewrites the document title to Your will",
    "purpose": "omits Named here after the principal is attached, and never rewrites the document title to Your will",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(title).toBe('Last Will of Morgan Quill') | expect(namedHereCopy({ document: FLAGSHIP[1], facts, offers, bindings })).toBeUndefined() Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/packetInventory.test.ts",
    "line": 188,
    "name": "keeps missing names explicit on a will with no principal evidence",
    "purpose": "keeps missing names explicit on a will with no principal evidence",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(namedHereCopy({ document: { id: 'doc-empty-will', type_key: 'will', page_start: 1, page_end: 2 }, facts: [], offers: [], })).toBe('Name missing') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/packetInventory.test.ts",
    "line": 196,
    "name": "lists unique people who still need a look and ignores holdings",
    "purpose": "lists unique people who still need a look and ignores holdings",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(names.map((row) => row.name)).toEqual(['Morgan Quill', 'Ellis Quill', 'Robin Quill', 'Pat Vesper', 'Casey Quill']) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/packetInventory.test.ts",
    "line": 214,
    "name": "groups one person card with roles by constituent instead of repeating the name",
    "purpose": "groups one person card with roles by constituent instead of repeating the name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(cards.map((card) => card.name)).toEqual(['Morgan Quill', 'Ellis Quill', 'Robin Quill']) | expect(morgan.offerIds).toEqual(['offer-morgan', 'offer-morgan-poa']) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/packetInventory.test.ts",
    "line": 244,
    "name": "groups two successor slots for the same healthcare agent name",
    "purpose": "groups two successor slots for the same healthcare agent name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(cards).toHaveLength(1) | expect(cards[0].name).toBe('WILLIAM A. MATLOCK') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/packetInventory.test.ts",
    "line": 257,
    "name": "prefers a create offer as the mint target on a mixed create/review card",
    "purpose": "prefers a create offer as the mint target on a mixed create/review card",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(cards[0].primaryOfferId).toBe('offer-create') | expect(personCardCanMint(cards[0], cards[0].offerIds.map((id) => ( id === 'offer-create' ? { ...offer(id, 'doc-poa-hc-morgan', 'agent', 'Ellis Quill'), offer_kind: 'create' } : { ...offer(id, 'doc-poa-hc-m Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/packetInventory.test.ts",
    "line": 273,
    "name": "matches a successor JSON fact to a numbered successor binding",
    "purpose": "matches a successor JSON fact to a numbered successor binding",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(personBindingsForFact( { fact_key: 'poa_hc_successor', subject_key: 'successor', value: ['William Matlock'] }, bindings, )).toEqual(bindings) | expect(personBindingsForFact( { fact_key: 'poa_hc_agent', subject_key: 'agent' }, bindings, )).toEqual([]) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/packetInventory.test.ts",
    "line": 292,
    "name": "links only the matching individual %s successor",
    "purpose": "links only the matching individual %s successor (parameterized: 3 cases)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(personBindingsForFact(fact, [alice])).toEqual([]) | expect(personBindingsForFact(fact, [alice, bob])).toEqual([bob]) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/packetInventory.test.ts",
    "line": 311,
    "name": "marks a person card needs_review when its beneficiary offer is uncited",
    "purpose": "marks a person card needs_review when its beneficiary offer is uncited",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(sage?.needsReview).toBe(true) | expect(sage?.roles[0]?.needsReview).toBe(true) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/packetInventory.test.ts",
    "line": 327,
    "name": "does not mint a review-only person card",
    "purpose": "does not mint a review-only person card",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(personCardCanMint(cards[0], offers)).toBe(false) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/packetInventory.test.ts",
    "line": 335,
    "name": "does not grow packet labels for a single document",
    "purpose": "does not grow packet labels for a single document",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(compactConstituentLabels(docs)).toEqual([CHOOSE_A_KIND]) | expect(compactConstituentLabels([{ id: 'doc-one', type_key: 'will', kind_key: 'will', kind_label: 'Will', page_start: 1, page_end: 4, }])).toEqual(['Will']) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/packetInventory.test.ts",
    "line": 358,
    "name": "exposes a source page number without a hash fragment",
    "purpose": "exposes a source page number without a hash fragment",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(row.sourcePage).toBeGreaterThan(0) | expect(row.pageLabel).toMatch(/page(s) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/packetInventory.test.ts",
    "line": 368,
    "name": "treats a multi-line page inventory as a skeleton, not a member overview",
    "purpose": "treats a multi-line page inventory as a skeleton, not a member overview",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(isSkeletonOverview(OVERVIEW)).toBe(true) | expect(isSkeletonOverview('Morgan Quill will and Ellis Quill will in one file. Synthetic fixture.')).toBe(false) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/packetInventory.test.ts",
    "line": 375,
    "name": "keeps unsupported, empty, and failed rows distinct rather than unidentified",
    "purpose": "keeps unsupported, empty, and failed rows distinct rather than unidentified",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rows.map((row) => row.state)).toEqual([ 'Not supported', 'No details to add', \"Couldn't read\", 'Unrecognized', ]) | expect(rows.every((row) => rowNeedsTypeLook(row))).toBe(true) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/packetInventory.test.ts",
    "line": 394,
    "name": "adds ledger-only sections to a mixed packet without borrowing a document id",
    "purpose": "adds ledger-only sections to a mixed packet without borrowing a document id",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(isPacketDocuments([{ id: 'doc-will', type_key: 'will' }], constituents)).toBe(true) | expect(rows).toHaveLength(2) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/packetInventory.test.ts",
    "line": 418,
    "name": "keeps every ledger-only occurrence and deduplicates materialized ids only",
    "purpose": "keeps every ledger-only occurrence and deduplicates materialized ids only",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rows).toHaveLength(4) | expect(rows.map((row) => row.id)).toEqual(['same-paper', 'other-paper', undefined, undefined]) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/packetInventory.test.ts",
    "line": 452,
    "name": "keeps matched and others apart",
    "purpose": "keeps matched and others apart",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(principalPeopleLists(card, [{ id: 'offer-principal', item_id: 'item-1', subject_key: 'principal', extracted_name: 'Michael James Whitfield', match_state: 'names_someone_else', matched: [{ entity_id: 'entity-mike', label: 'Michael James Whitfield' }], ot Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/packetInventory.test.ts",
    "line": 477,
    "name": "offers add from match_state, including when others is non-empty",
    "purpose": "offers add from match_state, including when others is non-empty",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(principalShowsAdd('no_match', [])).toBe(true) | expect(principalSentenceForCard('Amy Lynn Whitfield', 'no_match', [])).toBe( 'Amy Lynn Whitfield is not in your people yet.', ) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/packetInventory.test.ts",
    "line": 500,
    "name": "names one match and several matches from match_state, without a pronoun",
    "purpose": "names one match and several matches from match_state, without a pronoun",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(principalMatchSentence('Amy Lynn Whitfield', 'your_spouse', 'Amy Whitfield · Your spouse')).toBe( 'Amy Whitfield · Your spouse', ) | expect(principalSentenceForCard('Amy Lynn Whitfield', 'your_spouse', [ { entity_id: 'spouse-link:amy', label: 'Amy Whitf Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/packetInventory.test.ts",
    "line": 642,
    "name": "leaves a non-principal card to the roster",
    "purpose": "leaves a non-principal card to the roster",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(principalPeopleLists({ ...card, offerIds: ['offer-agent'], primaryOfferId: 'offer-agent', }, [{ id: 'offer-agent', item_id: 'item-1', subject_key: 'agent', extracted_name: 'Nora Chen', match_state: 'no_match', matched: [], others: [{ entity_id: 'entity- Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/people.test.ts",
    "line": 29,
    "name": "treats a document label as unnamed and keeps a saved name",
    "purpose": "treats a document label as unnamed and keeps a saved name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(isUnnamedPersonLabel('Person to review')).toBe(true) | expect(isUnnamedPersonLabel(\"Someone on Michael's will\")).toBe(true) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/people.test.ts",
    "line": 39,
    "name": "keeps one You card for the same self person",
    "purpose": "keeps one You card for the same self person",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rows.filter((row) => row.relationship === 'You')).toHaveLength(1) | expect(rows.map((row) => row.entity_id)).toEqual(['self-uuid', 'spouse-link:helen']) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/people.test.ts",
    "line": 51,
    "name": "never renders an internal bind-offer uid",
    "purpose": "never renders an internal bind-offer uid",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(safePersonDisplayName('Shannon Marie Matlock')).toBe('Shannon Marie Matlock') | expect(safePersonDisplayName('bind-offer:76047af4-85f6-4fdf-9045-ddd1a93b2c53')).toBe(peopleReviewDisplayName) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/people.test.ts",
    "line": 63,
    "name": "groups published keys without inventing a Family dump for friends",
    "purpose": "groups published keys without inventing a Family dump for friends",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(groups.map((group) => group.label)).toEqual(['Family', 'Professionals', 'Emergency', 'Other connections']) | expect(groups.find((group) => group.label === 'Other connections')?.options.map((option) => option.choice)).toEqual(['friend']) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/people.test.ts",
    "line": 76,
    "name": "keeps parent_of orientation from the parent page",
    "purpose": "keeps parent_of orientation from the parent page",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(relationUndoEndpoints('parent', { direction: 'from', other_entity_id: 'child', })).toEqual({ fromEntityID: 'parent', objectEntityID: 'child' }) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/people.test.ts",
    "line": 83,
    "name": "restores parent_of as parent→child from the child page",
    "purpose": "restores parent_of as parent→child from the child page",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(relationUndoEndpoints('child', { direction: 'to', other_entity_id: 'parent', })).toEqual({ fromEntityID: 'parent', objectEntityID: 'child' }) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/people.test.ts",
    "line": 92,
    "name": "names the person when they can sign in and stays quiet otherwise",
    "purpose": "names the person when they can sign in and stays quiet otherwise",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(signInCopy(person({ entity_id: 'helen', display_name: 'Helen Walk', first_name: 'Helen', has_account: true }))).toBe('Helen can sign in') | expect(signInCopy(person({ entity_id: 'helen', display_name: 'Helen Walk', first_name: 'Mailbox', has_account: tr Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/people.test.ts",
    "line": 101,
    "name": "marks overlay-only spouse rows",
    "purpose": "marks overlay-only spouse rows",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(isSpouseLinkOverlay('spouse-link:helen')).toBe(true) | expect(isSpouseLinkOverlay('ent-real')).toBe(false) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/people.test.ts",
    "line": 110,
    "name": "hides You even when that person cannot sign in",
    "purpose": "hides You even when that person cannot sign in",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(passedStatusControl({ ...parent, relationship: 'You', has_account: false }, 'person-you')).toBe('hidden') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/people.test.ts",
    "line": 114,
    "name": "hides a spouse-link page that would otherwise show the radios",
    "purpose": "hides a spouse-link page that would otherwise show the radios",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(passedStatusControl(parent, 'spouse-link:helen')).toBe('hidden') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/people.test.ts",
    "line": 118,
    "name": "shows the sign-in sentence for an account and an invite",
    "purpose": "shows the sign-in sentence for an account and an invite",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(passedStatusControl({ ...parent, has_account: true }, 'person-emily')).toBe('sign-in') | expect(passedStatusControl({ ...parent, invite_placeholder: true }, 'person-ivy')).toBe('sign-in') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/people.test.ts",
    "line": 123,
    "name": "shows the radios for someone who cannot sign in",
    "purpose": "shows the radios for someone who cannot sign in",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(passedStatusControl(parent, 'person-robert')).toBe('radios') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/people.test.ts",
    "line": 131,
    "name": "reads the roster deceased boolean and nothing else",
    "purpose": "reads the roster deceased boolean and nothing else",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(stepsInPersonHasDied({ deceased: false, steps_in_status: 'deceased' })).toBe(false) | expect(stepsInPersonHasDied({ deceased: true })).toBe(true) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/people.test.ts",
    "line": 140,
    "name": "keeps living people with a person id or Ready flag and drops the viewer",
    "purpose": "keeps living people with a person id or Ready flag and drops the viewer",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(accessRecipients(rows, 'dave').map((row) => row.display_name)).toEqual(['Emily', 'Nora']) | expect(accessIdentities(rows, 'dave').map((row) => row.display_name)).toEqual(['Emily']) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/people.test.ts",
    "line": 153,
    "name": "keeps a manually passed person out of the pickers",
    "purpose": "keeps a manually passed person out of the pickers",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(myPeopleChoices(rows, 'dave').map((row) => row.display_name)).toEqual(['Emily']) | expect(accessIdentities(rows, 'dave').map((row) => row.display_name)).toEqual(['Emily']) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/people.test.ts",
    "line": 166,
    "name": "drops a verified-dead roster person from every picker (264)",
    "purpose": "drops a verified-dead roster person from every picker (264)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(accessRecipients(rows, 'dave').map((row) => row.display_name)).toEqual(['Emily']) | expect(accessIdentities(rows, 'dave').map((row) => row.display_name)).toEqual(['Emily']) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/people.test.ts",
    "line": 187,
    "name": "offers Set up sharing only when there is no access person and no Ready flag",
    "purpose": "offers Set up sharing only when there is no access person and no Ready flag",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(canSetUpSharing(person({ entity_id: 'e3', display_name: 'Nora' }))).toBe(true) | expect(canSetUpSharing(person({ entity_id: 'e5', display_name: 'Nora', share_ready: true }))).toBe(false) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/people.test.ts",
    "line": 200,
    "name": "refuses Set up sharing for a verified-dead row (264)",
    "purpose": "refuses Set up sharing for a verified-dead row (264)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(canSetUpSharing(person({ entity_id: 'e7', display_name: 'Veronica Marsh', deceased: true }))).toBe(false) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/people.test.ts",
    "line": 206,
    "name": "returns the same roster rows in order",
    "purpose": "returns the same roster rows in order",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rows.map((row) => row.entity_id)).toEqual(['ent-a', 'ent-b']) | expect(rows).toHaveLength(2) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/people.test.ts",
    "line": 219,
    "name": "uses identity / add-person copy and never names the person as the record",
    "purpose": "uses identity / add-person copy and never names the person as the record",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(sourceCopy({ id: 'f1', item_id: '', subject_key: 'person:self', fact_key: 'legal_full_name', value: 'David Alan Matlock', is_pinned: false, capture_method: 'manual', capabilities, })).toBe('You told us') | expect(sourceCopy({ id: 'f2', item_id: 'cap', i Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/people.test.ts",
    "line": 255,
    "name": "uses the server shown name and does not join a first name to a last name",
    "purpose": "uses the server shown name and does not join a first name to a last name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rosterPersonLabel({ display_name: 'mike.kit275', first_name: 'Michael', last_name: 'Whitfield' })).toBe('mike.kit275') | expect(rosterPersonLabel({ display_name: 'Theodore', first_name: 'Theodore', last_name: 'Whitfield' })).toBe('Theodore') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/people.test.ts",
    "line": 263,
    "name": "writes document and role counts as sentences and hides zero",
    "purpose": "writes document and role counts as sentences and hides zero",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(paperCountSentence(0)).toBeNull() | expect(paperCountSentence(1)).toBe('One document you can open.') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/people.test.ts",
    "line": 271,
    "name": "shows the label the server sent and treats a missing asked flag as not asked",
    "purpose": "shows the label the server sent and treats a missing asked flag as not asked",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(stepsInChipLabel('Not asked yet')).toBe('Not asked yet') | expect(stepsInChipLabel('Expired')).toBe('Expired') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/people.test.ts",
    "line": 294,
    "name": "shares one in-flight roster call and fetches again after it settles",
    "purpose": "shares one in-flight roster call and fetches again after it settles",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(peopleCalls()).toBe(1) | expect(a).toEqual({ people: [] })",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/people.test.ts",
    "line": 311,
    "name": "clears the share when the roster call is rejected",
    "purpose": "clears the share when the roster call is rejected",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(loadPeople()).rejects.toThrow('no') | expect(loadPeople()).resolves.toEqual({ people: [] })",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/people.test.ts",
    "line": 319,
    "name": "K1a starts a new roster call when the signed-in user changes",
    "purpose": "K1a starts a new roster call when the signed-in user changes",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(peopleCalls()).toBe(1) | expect(getSession.mock.calls.length).toBeGreaterThanOrEqual(2)",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/people.test.ts",
    "line": 344,
    "name": "K1b starts a new roster call after resetPeopleRoster",
    "purpose": "K1b starts a new roster call after resetPeopleRoster",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(peopleCalls()).toBe(1) | expect(peopleCalls()).toBe(2)",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/people.test.ts",
    "line": 358,
    "name": "K1c starts a new roster call after retractEntityRelation",
    "purpose": "K1c starts a new roster call after retractEntityRelation",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(peopleCalls()).toBe(1) | expect(peopleCalls()).toBe(2)",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/people.test.ts",
    "line": 372,
    "name": "K1c starts a new roster call after addEntityRelation",
    "purpose": "K1c starts a new roster call after addEntityRelation",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(peopleCalls()).toBe(1) | expect(peopleCalls()).toBe(2)",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/peopleNameSave.test.ts",
    "line": 28,
    "name": "posts the five name parts once as a JSON object",
    "purpose": "posts the five name parts once as a JSON object",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(fetchMock).toHaveBeenCalledTimes(1) | expect(path).toBe('/api/people/6256ab86-0000-4000-8000-000000000001/name')",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/peopleNameSave.test.ts",
    "line": 46,
    "name": "shares one session read across overlapping name saves",
    "purpose": "shares one session read across overlapping name saves",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(auth.getSession).toHaveBeenCalledTimes(1) | expect(auth.getSession).toHaveBeenCalledTimes(1)",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/peopleRosterReset.test.ts",
    "line": 84,
    "name": "$name starts a second roster call",
    "purpose": "$name starts a second roster call (parameterized declaration)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rosterGets()).toBe(1) | expect(rosterGets()).toBe(2) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/peopleRosterReset.test.ts",
    "line": 94,
    "name": "keeps the in-flight roster when the write fails",
    "purpose": "keeps the in-flight roster when the write fails",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rosterGets()).toBe(1) | expect(keepPersonName('person-1', 'assert-1', 1)).rejects.toThrow('no') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/peopleRosterReset.test.ts",
    "line": 105,
    "name": "keeps the in-flight roster after a successful GET",
    "purpose": "keeps the in-flight roster after a successful GET",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(rosterGets()).toBe(1) | expect(rosterGets()).toBe(1) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/personName.test.ts",
    "line": 28,
    "name": "keeps the middle name between the first and last",
    "purpose": "keeps the middle name between the first and last",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(composedLegalName({ first_name: 'Amy', middle_name: 'Lynn', last_name: 'Whitfield', name_suffix: '', })).toBe('Amy Lynn Whitfield') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/personName.test.ts",
    "line": 37,
    "name": "joins a suffix after the last name",
    "purpose": "joins a suffix after the last name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(composedLegalName({ first_name: 'Amy', middle_name: '', last_name: 'Whitfield', name_suffix: 'Jr', })).toBe('Amy Whitfield Jr') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/personName.test.ts",
    "line": 48,
    "name": "lowercases particles on the whole name and title-cases a one-word name",
    "purpose": "lowercases particles on the whole name and title-cases a one-word name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(paperDisplayName('MARIA DE LA CRUZ')).toBe('Maria de la Cruz') | expect(paperDisplayName('ROSA')).toBe('Rosa') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/personName.test.ts",
    "line": 57,
    "name": "keeps a mixed-case title and the capitals behind it, matching _g6_paper_name_parts",
    "purpose": "keeps a mixed-case title and the capitals behind it, matching _g6_paper_name_parts",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(paperDisplayName('Dr. MARIA DE LA CRUZ')).toBe('Dr. MARIA DE LA CRUZ') | expect(paperDisplayName('Mr. JOHN SMITH')).toBe('Mr. JOHN SMITH') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/personName.test.ts",
    "line": 69,
    "name": "displayNameParts matches typed and paperNameParts matches document for every row",
    "purpose": "displayNameParts matches typed and paperNameParts matches document for every row",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(displayNameParts(row.input), row.input).toEqual(row.typed) | expect(paperNameParts(row.input), row.input).toEqual(row.paper) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/personName.test.ts",
    "line": 76,
    "name": "regenerates g6_name_split_cases.sql byte for byte",
    "purpose": "regenerates g6_name_split_cases.sql byte for byte",
    "classification": "internals",
    "restates": "no",
    "reason": "Checks documentation/archival or generated-artifact consistency, not production behavior. It does not restate a production algorithm; keep separate from behavior coverage. Artifact evidence: Compares generated SQL byte-for-byte with a checked-in generated artifact. Compares generated SQL bytes to a checked-in SQL artifact; asserts exact generated representation.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/personRemoval.test.ts",
    "line": 12,
    "name": "dates a UTC midnight on that calendar day",
    "purpose": "dates a UTC midnight on that calendar day",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(removalDate('2026-03-02T00:00:00Z', 'UTC')).toBe('March 2, 2026') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/personRemoval.test.ts",
    "line": 16,
    "name": "dates a Phoenix evening removal on that calendar day",
    "purpose": "dates a Phoenix evening removal on that calendar day",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(removalDate('2026-10-24T02:30:00Z', 'America/Phoenix')).toBe('October 23, 2026') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/personRemoval.test.ts",
    "line": 20,
    "name": "states each refusal in the approved words",
    "purpose": "states each refusal in the approved words",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(removalReason('linked_spouse', 'Shannon')).toBe(\"Shannon is your linked spouse, so Shannon can't be removed.\") | expect(removalReason('other_login', 'Shannon')).toBe(\"Shannon signs in to Persynl, so Shannon can't be removed from your people.\") Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/personRemoval.test.ts",
    "line": 27,
    "name": "states each blocker in the approved words",
    "purpose": "states each blocker in the approved words",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(removalBlockerLine('steps_in', 'Shannon')).toBe('Shannon is named to step in. Change who steps in first.') | expect(removalBlockerLine('executor', 'Shannon')).toBe('Shannon is your executor. Name a different executor first.') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/personRemoval.test.ts",
    "line": 37,
    "name": "links a blocker to the place that ends it",
    "purpose": "links a blocker to the place that ends it",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(removalBlockerHref('steps_in', 'ref', 'entity')).toBe('/if-something-happens') | expect(removalBlockerHref('step_in_request', 'req-1', 'entity')).toBe('/if-something-happens/requests/req-1') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/personRemoval.test.ts",
    "line": 47,
    "name": "keeps a removed name on the document line",
    "purpose": "keeps a removed name on the document line",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(removedPaperLine('Rosa')).toBe('Rosa is attached to this document but was removed from your people.') | expect(removedPaperLine(' ')).toBe('Someone is attached to this document but was removed from your people.') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/personRemoval.test.ts",
    "line": 54,
    "name": "uses the saved shown name when the roster misses a bound person",
    "purpose": "uses the saved shown name when the roster misses a bound person",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(nameForPaperBinding({ entity_id: 'e', shown_name: 'Rosa' }, '', '', 'ROSA')).toBe('Rosa') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/personRemoval.test.ts",
    "line": 58,
    "name": "says Someone when a bound person has no shown name",
    "purpose": "says Someone when a bound person has no shown name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(nameForPaperBinding({ entity_id: 'e', shown_name: ' ' }, '', '', 'ROSA')).toBe('Someone') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/personRemoval.test.ts",
    "line": 62,
    "name": "uses the extracted name when the document is not bound",
    "purpose": "uses the extracted name when the document is not bound",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(nameForPaperBinding(undefined, '', '', 'ROSA')).toBe('ROSA') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/personRemoval.test.ts",
    "line": 66,
    "name": "prefers the roster name over the saved copy",
    "purpose": "prefers the roster name over the saved copy",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(nameForPaperBinding({ entity_id: 'e', shown_name: 'Rosa' }, 'Rosa Marsh', '', 'ROSA')).toBe('Rosa Marsh') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/recordsHubConfirm.test.ts",
    "line": 22,
    "name": "posts protocol 2 and the generation id to the existing item confirm",
    "purpose": "posts protocol 2 and the generation id to the existing item confirm",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(mockJSON).toHaveBeenCalledWith('/api/records-hub/items/item%2F1/confirm', { method: 'POST', body: { expected_generation_id: 'gen-9', protocol_version: 2 }, })",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/recordsHubConfirm.test.ts",
    "line": 30,
    "name": "sends a null generation when the item has none",
    "purpose": "sends a null generation when the item has none",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(mockJSON).toHaveBeenCalledWith('/api/records-hub/items/item-1/confirm', { method: 'POST', body: { expected_generation_id: null, protocol_version: 2 }, })",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/recordsHubDisplay.test.ts",
    "line": 6,
    "name": "opens the account when a bound money row carries entity_id",
    "purpose": "opens the account when a bound money row carries entity_id",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(hubRowHref({ item_id: 'item-checking', entity_id: 'ent-checking' })).toBe('/accounts/ent-checking') | expect(hubRowHref({ item_id: 'item-stmt' })).toBe('/items/item-stmt') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/recordsHubDisplay.test.ts",
    "line": 12,
    "name": "opens the instrument when a bound legal row carries entity_id",
    "purpose": "opens the instrument when a bound legal row carries entity_id",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(hubRowHref({ item_id: 'item-will', entity_id: 'ent-will' }, 'legal')).toBe('/legal/ent-will') | expect(hubRowHref({ item_id: 'item-will' }, 'legal')).toBe('/items/item-will') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/recordsHubDisplay.test.ts",
    "line": 20,
    "name": "counts money rows as accounts and dates them as holdings",
    "purpose": "counts money rows as accounts and dates them as holdings",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(hubSectionCountCopy('accounts', 1)).toBe('1 account') | expect(hubSectionCountCopy('accounts', 3)).toBe('3 accounts') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/recordsHubDisplay.test.ts",
    "line": 29,
    "name": "uses grammatical empty-state sentences",
    "purpose": "uses grammatical empty-state sentences",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(emptySectionCopy('accounts', 'Money and accounts')).toBe( 'No accounts in the records you can open.', ) | expect(emptySectionCopy('property', 'Property')).toBe( 'No property in the records you can open.', ) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/recordsHubDisplay.test.ts",
    "line": 44,
    "name": "title-cases extracted ALL CAPS names and leaves mixed case",
    "purpose": "title-cases extracted ALL CAPS names and leaves mixed case",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(personChipLabel('SHANNON S. MATLOCK')).toBe('Shannon S. Matlock') | expect(personChipLabel('SHANNON S. MATLOCK · executor')).toBe('Shannon S. Matlock · executor') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/recordsHubDisplay.test.ts",
    "line": 51,
    "name": "treats living will and advance directive empty reach as expected",
    "purpose": "treats living will and advance directive empty reach as expected",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(isExpectedSoloLegal('living_will')).toBe(true) | expect(isExpectedSoloLegal('advance_directive')).toBe(true) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/recordsHubDisplay.test.ts",
    "line": 58,
    "name": "states the Hub Worth a look count once and frames the finding as a question",
    "purpose": "states the Hub Worth a look count once and frames the finding as a question",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(hubWorthALookHeading(0)).toBe('Worth a look') | expect(hubWorthALookHeading(1)).toBe('One thing worth a look') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/retiredPhrase.test.ts",
    "line": 21,
    "name": "is gone from live copy",
    "purpose": "is gone from live copy",
    "classification": "internals",
    "restates": "yes",
    "reason": "Restates evidence: Scans source files for one literal phrase. Reviewed against test body: asserts exact source text, file contents, or private migration structure; this is an implementation guard, not runtime behavior. recursively scans source and product copy for one forbidden literal; no runtime copy surface is loaded.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/retiredStopWords.test.ts",
    "line": 21,
    "name": "are gone from src, server, and the notices migration",
    "purpose": "are gone from src, server, and the notices migration",
    "classification": "internals",
    "restates": "yes",
    "reason": "Restates evidence: Static scan duplicates forbidden phrase literals and source-tree exclusions. Reviewed against test body: asserts exact source text, file contents, or private migration structure; this is an implementation guard, not runtime behavior. recursively reads source and migration files and searches forbidden phrase literals; runtime UI behavior is not exercised.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/session.test.ts",
    "line": 32,
    "name": "keeps the auth user id and does not invent a household",
    "purpose": "keeps the auth user id and does not invent a household",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(profile.id).toBe('auth-dave') | expect(profile.display_name).toBe('Dave') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/session.test.ts",
    "line": 41,
    "name": "does not copy another person onto the profile",
    "purpose": "does not copy another person onto the profile",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(profile.display_name).not.toBe('Emily') | expect(profile.id).not.toBe('person-dave') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/session.test.ts",
    "line": 47,
    "name": "keeps a new signup not onboarded until the server says otherwise",
    "purpose": "keeps a new signup not onboarded until the server says otherwise",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(profile.onboarding_completed).toBe(false) | expect(profile.comfort_level).toBe('intermediate') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/session.test.ts",
    "line": 60,
    "name": "copies is_admin from GET /api/me and fails closed when omitted",
    "purpose": "copies is_admin from GET /api/me and fails closed when omitted",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(mapMeToProfile(dave, 'auth-dave').is_admin).toBe(false) | expect(mapMeToProfile({ ...dave, is_admin: true }, 'auth-dave').is_admin).toBe(true) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/session.test.ts",
    "line": 66,
    "name": "treats a null display name as no name",
    "purpose": "treats a null display name as no name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(profile.display_name).toBe('') | expect(profile.first_name).toBeNull() Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/session.test.ts",
    "line": 79,
    "name": "uses the server shown first name and does not split the display name",
    "purpose": "uses the server shown first name and does not split the display name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(profile.first_name).toBe('Dora') | expect(profile.last_name).toBeNull() Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/session.test.ts",
    "line": 96,
    "name": "does not treat a pending invite as an active spouse",
    "purpose": "does not treat a pending invite as an active spouse",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(profile.household_id).toBeNull() | expect(profile.display_name).toBe('Dave') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/stepIn.test.ts",
    "line": 6,
    "name": "keeps the member stop line and uses the refused pattern for a staff phone close",
    "purpose": "keeps the member stop line and uses the refused pattern for a staff phone close",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(closedHomeLine({ request_id: 'req-stop', claimant_name: 'Shannon', member_name: 'Robert', status: 'stopped', viewer: 'claimant', close_source: '', })).toBe('Robert stopped the request. Nothing further will open from it.') | expect(closedHomeLine({ reque Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/stepIn.test.ts",
    "line": 25,
    "name": "uses the member when the name is blank or a pronoun",
    "purpose": "uses the member when the name is blank or a pronoun",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(closedHomeLine({ request_id: 'req-blank', claimant_name: 'Shannon', member_name, status: 'stopped', viewer: 'claimant', close_source: '', })).toBe('The member stopped the request. Nothing further will open from it.') | expect(closedHomeLine({ request_id Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/stepIn.test.ts",
    "line": 59,
    "name": "names the person who opened the document",
    "purpose": "names the person who opened the document",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(lifeDetailsOpenLine({ who: 'Emily', title: 'Living will', how: 'view', occurred_at: opened })) .toBe('Emily opened Living will on October 16, 2026') | expect(lifeDetailsOpenLine({ who: 'Casey Ng', title: 'Living will', how: 'view', occurred_at: opened } Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/stepIn.test.ts",
    "line": 66,
    "name": "says downloaded when the open was a download",
    "purpose": "says downloaded when the open was a download",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(lifeDetailsOpenLine({ who: 'Emily', title: 'Living will', how: 'download', occurred_at: opened })) .toBe('Emily downloaded Living will on October 16, 2026') | expect(lifeDetailsOpenLine({ who: '', title: 'Living will', how: 'download', occurred_at: open Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/stepIn.test.ts",
    "line": 73,
    "name": "rewrites a blank or pronoun name so the line needs no name",
    "purpose": "rewrites a blank or pronoun name so the line needs no name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(line).toBe('Opened Living will on October 16, 2026') | expect(line).not.toMatch(PRONOUN) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/stepIn.test.ts",
    "line": 112,
    "name": "names every filer, dated and undated",
    "purpose": "names every filer, dated and undated",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(memberStoppedLine({ request_id: 'req-own', claimant_names: form.names, stopped_on: day, close_source: '', }, false)).toBe(form.undated) | expect(memberStoppedLine({ request_id: 'req-own-dated', claimant_names: form.names, stopped_on: day, }, true)).toBe Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/stepIn.test.ts",
    "line": 128,
    "name": "keeps a staff phone close unnamed",
    "purpose": "keeps a staff phone close unnamed",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(memberStoppedLine({ request_id: 'req-staff', claimant_names: ['Shannon Whitfield'], stopped_on: day, close_source: 'staff_phone', }, false)).toBe('The request was stopped.') | expect(memberStoppedLine({ request_id: 'req-staff-dated', claimant_names: ['S Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/stepIn.test.ts",
    "line": 143,
    "name": "says someone when the only name is blank or a pronoun",
    "purpose": "says someone when the only name is blank or a pronoun",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(memberStoppedLine({ request_id: 'req-blank', claimant_names: [name], stopped_on: day, close_source: '', }, false)).toBe(\"You stopped someone's request.\") Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/stepIn.test.ts",
    "line": 156,
    "name": "formats a timestamp in the member zone",
    "purpose": "formats a timestamp in the member zone",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(memberStoppedLine(notice, true, 'America/Phoenix')).toBe('The request was stopped on October 19, 2026.') | expect(memberStoppedLine({ ...notice, close_source: '' }, true, 'America/Phoenix')) .toBe(\"You stopped Shannon Whitfield's request on October 19,  Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/stepIn.test.ts",
    "line": 174,
    "name": "reads a missing timestamp as a calendar date in every zone",
    "purpose": "reads a missing timestamp as a calendar date in every zone",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(memberStoppedLine(notice, true, zone)).toBe(\"You stopped Shannon Whitfield's request on October 19, 2026.\") Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/stepIn.test.ts",
    "line": 188,
    "name": "names the member when a newer request replaced this one",
    "purpose": "names the member when a newer request replaced this one",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(closedHomeLine({ request_id: 'req-old', claimant_name: 'Shannon', member_name: 'Grace', status: 'ended', ended_reason: 'superseded', viewer: 'claimant', })).toBe(\"You can no longer see Grace's Life details on Persynl. A newer request for Grace replaced  Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/stepIn.test.ts",
    "line": 205,
    "name": "links a relative stop path and an absolute stop path, and keeps the guide",
    "purpose": "links a relative stop path and an absolute stop path, and keeps the guide",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(stop).toEqual({ kind: 'stop', text: button, href: stopPath }) | expect(relative.map((part) => part.kind === 'text' ? part.text : '').join('')).toBe('Please tap here: If you did expect it, you do not need to do anything.') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/stepInCopy.test.ts",
    "line": 8,
    "name": "uses a first name and no pronouns",
    "purpose": "uses a first name and no pronouns",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(stepInFirstName('Pat Member')).toBe('Pat') | expect(stepInFirstName('')).toBe('') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/stepInCopy.test.ts",
    "line": 64,
    "name": "uses the member local day when the UTC day has already changed",
    "purpose": "uses the member local day when the UTC day has already changed",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(formatToldOn(sent, 'America/Los_Angeles')).toBe('October 15') | expect(formatToldOn(sent, 'UTC')).toBe('October 16') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/stepInEvidence.test.ts",
    "line": 5,
    "name": "formats the date in the viewer zone",
    "purpose": "formats the date in the viewer zone",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(stepInEvidenceAddedLine('Casey', '2026-10-09T16:00:00Z', 'America/New_York')).toBe( 'Casey added this on October 9, 2026 while asking to step in for you.', ) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/stepInEvidence.test.ts",
    "line": 11,
    "name": "says Someone when the first name is missing",
    "purpose": "says Someone when the first name is missing",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(stepInEvidenceAddedLine(name, '2026-10-09T16:00:00Z', 'America/New_York')).toBe( 'Someone added this on October 9, 2026 while asking to step in for you.', ) Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/stepInLine305.test.ts",
    "line": 9,
    "name": "records the death and unwell spouse notices in context.md",
    "purpose": "records the death and unwell spouse notices in context.md",
    "classification": "internals",
    "restates": "no",
    "reason": "Checks documentation/archival or generated-artifact consistency, not production behavior. It does not restate a production algorithm; keep separate from behavior coverage. Artifact evidence: Scans context.md for exact table rows and phrase literals. Reviewed against test body: asserts exact source text, file contents, or private migration structure; this is an implementation guard, not runtime behavior. reads context.md and checks exact documentation phrases; no runtime notice is generated.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/stepInLine305.test.ts",
    "line": 31,
    "name": "keeps any number of people in the step-in specs",
    "purpose": "keeps any number of people in the step-in specs",
    "classification": "internals",
    "restates": "no",
    "reason": "Checks documentation/archival or generated-artifact consistency, not production behavior. It does not restate a production algorithm; keep separate from behavior coverage. Artifact evidence: Scans product spec Markdown for exact phrase literals. Reviewed against test body: asserts exact source text, file contents, or private migration structure; this is an implementation guard, not runtime behavior. reads six product spec files and checks exact phrase inclusion.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/stepInLine305.test.ts",
    "line": 37,
    "name": "keeps everyone else in line where the notice audience is specified",
    "purpose": "keeps everyone else in line where the notice audience is specified",
    "classification": "internals",
    "restates": "no",
    "reason": "Checks documentation/archival or generated-artifact consistency, not production behavior. It does not restate a production algorithm; keep separate from behavior coverage. Artifact evidence: Scans product spec Markdown for exact phrase literals. Reviewed against test body: asserts exact source text, file contents, or private migration structure; this is an implementation guard, not runtime behavior. reads product spec files and checks exact phrase inclusion.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/stepInNames320.test.ts",
    "line": 11,
    "name": "records the rules in context.md",
    "purpose": "records the rules in context.md",
    "classification": "internals",
    "restates": "no",
    "reason": "Checks documentation/archival or generated-artifact consistency, not production behavior. It does not restate a production algorithm; keep separate from behavior coverage. Artifact evidence: Scans documentation text for exact internal names/rules. Assertion evidence: expect(text).toContain('Screens and a newly rendered email use the same shown name') | expect(text).toContain('My Whitfield stays')",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/stepInNames320.test.ts",
    "line": 21,
    "name": "keeps one trailing Acceptance on the step-in member map",
    "purpose": "keeps one trailing Acceptance on the step-in member map",
    "classification": "internals",
    "restates": "no",
    "reason": "Checks documentation/archival or generated-artifact consistency, not production behavior. It does not restate a production algorithm; keep separate from behavior coverage. Artifact evidence: Checks Markdown heading/section structure and exact line count. Assertion evidence: expect(headings).toHaveLength(4) | expect(acceptance.startsWith('Acceptance:')).toBe(true)",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/stepInNames320.test.ts",
    "line": 36,
    "name": "keeps one pronoun token list in SQL, TypeScript, and Go",
    "purpose": "keeps one pronoun token list in SQL, TypeScript, and Go",
    "classification": "internals",
    "restates": "yes",
    "reason": "Restates evidence: Requires a copied token-list literal and synchronization comment in multiple implementations. Reviewed against test body: asserts exact source text, file contents, or private migration structure; this is an implementation guard, not runtime behavior. asserts one exact token-list literal and synchronization comment across TS/Go/SQL source files.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/stepInPaths.test.ts",
    "line": 30,
    "name": "uses one stop and guide pattern in SQL, the constants, and App routes",
    "purpose": "uses one stop and guide pattern in SQL, the constants, and App routes",
    "classification": "mixed",
    "restates": "yes",
    "reason": "Restates evidence: Parses SQL and React source text and requires exact route-string parity. Reviewed: derives a regex from migration source and asserts equality to exported constants plus exact JSX route fragments.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/stepInPaths.test.ts",
    "line": 38,
    "name": "has no other emailed /step-in/ path in the filing migration",
    "purpose": "has no other emailed /step-in/ path in the filing migration",
    "classification": "internals",
    "restates": "yes",
    "reason": "Restates evidence: Searches migration source text for a path literal. Removes a parsed SQL function from migration source and asserts no matching literal path remains elsewhere in that source.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/stepInPaths.test.ts",
    "line": 44,
    "name": "keeps soon and formats an instant in the viewer local zone",
    "purpose": "keeps soon and formats an instant in the viewer local zone",
    "classification": "mixed",
    "restates": "partial",
    "reason": "Contains real output/interaction assertions plus an implementation-coupled subset. Restates evidence: Computes the expected timestamp using a second Intl formatter of the same shape as implementation. The date formatting output is asserted against a separately constructed Intl.DateTimeFormat expression identical in shape to the implementation formatter, so the oracle duplicates the implementation logic and can share its defects.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/stepInWords.records.test.ts",
    "line": 13,
    "name": "keeps Don's two decision records byte for byte",
    "purpose": "keeps Don's two decision records byte for byte",
    "classification": "internals",
    "restates": "no",
    "reason": "Checks documentation/archival or generated-artifact consistency, not production behavior. It does not restate a production algorithm; keep separate from behavior coverage. Artifact evidence: Pins two Markdown artifacts to fixed byte hashes. Reviewed against test body: asserts exact source text, file contents, or private migration structure; this is an implementation guard, not runtime behavior. hashes two Markdown files and compares fixed SHA-256 values, enforcing byte-for-byte snapshots.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/stepInWords.records.test.ts",
    "line": 18,
    "name": "keeps the invitation row and the request pointer",
    "purpose": "keeps the invitation row and the request pointer",
    "classification": "internals",
    "restates": "no",
    "reason": "Checks documentation/archival or generated-artifact consistency, not production behavior. It does not restate a production algorithm; keep separate from behavior coverage. Artifact evidence: Checks exact Markdown row/sentence structure and literals. Reviewed against test body: asserts exact source text, file contents, or private migration structure; this is an implementation guard, not runtime behavior. reads context.md and asserts exact row text and literal snippets.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/stepInWords.records.test.ts",
    "line": 39,
    "name": "does not call the step-in seed from seed:core",
    "purpose": "does not call the step-in seed from seed:core",
    "classification": "internals",
    "restates": "yes",
    "reason": "Restates evidence: Scans seed script source for exact call-name strings. Reviewed against test body: asserts exact source text, file contents, or private migration structure; this is an implementation guard, not runtime behavior. reads seed-core.py and searches for literal step-in seed names.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/supportContactLaunch.test.ts",
    "line": 13,
    "name": "sets the phone and the reply-to together",
    "purpose": "sets the phone and the reply-to together",
    "classification": "internals",
    "restates": "yes",
    "reason": "Restates evidence: Checks exact env-variable strings in launch/config/docs files without executing the scripts. Reads launch/config/skill/doctor files and checks literal env-variable values and names; it does not execute launch or doctor.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/verifiedDeathPeople264.test.ts",
    "line": 16,
    "name": "T-264-8 the feature map names verified death and the deceased-only rule (M-264-8)",
    "purpose": "T-264-8 the feature map names verified death and the deceased-only rule (M-264-8)",
    "classification": "internals",
    "restates": "no",
    "reason": "Checks documentation/archival or generated-artifact consistency, not production behavior. It does not restate a production algorithm; keep separate from behavior coverage. Artifact evidence: Checks exact feature Markdown wording. Checks exact feature-map source phrases with readFileSync; documentation text is the asserted artifact.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/verifiedDeathPeople264.test.ts",
    "line": 24,
    "name": "T-264-8 the feature map says the read writes nothing (M-264-8)",
    "purpose": "T-264-8 the feature map says the read writes nothing (M-264-8)",
    "classification": "internals",
    "restates": "no",
    "reason": "Checks documentation/archival or generated-artifact consistency, not production behavior. It does not restate a production algorithm; keep separate from behavior coverage. Artifact evidence: Checks exact feature Markdown wording. Checks exact feature-map and gotcha copy via source text.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/verifiedDeathPeople264.test.ts",
    "line": 33,
    "name": "T-264-8 the product spec covers verified death (M-264-8)",
    "purpose": "T-264-8 the product spec covers verified death (M-264-8)",
    "classification": "internals",
    "restates": "no",
    "reason": "Checks documentation/archival or generated-artifact consistency, not production behavior. It does not restate a production algorithm; keep separate from behavior coverage. Artifact evidence: Checks exact product-spec Markdown wording. Checks literal product-spec phrases from the Markdown source.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/verifiedDeathPeople264.test.ts",
    "line": 43,
    "name": "T-264-9 the change adds no migration (M-264-9)",
    "purpose": "T-264-9 the change adds no migration (M-264-9)",
    "classification": "internals",
    "restates": "yes",
    "reason": "Restates evidence: Scans plan, migration, and Go source for exact implementation strings/structure. Reads plan, migration and Go implementation files and checks exact declarations/query strings; it is a source-structure guard.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/lib/whatPersynlFound.test.ts",
    "line": 20,
    "name": "groups known rows in member words and leaves empty categories as words to add",
    "purpose": "groups known rows in member words and leaves empty categories as words to add",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(bank?.items.map((item) => item.title)).toEqual(['Vantage West checking ••1111']) | expect(bank?.items[0].href).toBe('/accounts/ent-bank') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/whatPersynlFound.test.ts",
    "line": 34,
    "name": "shows Safe deposit and Pets when the records have them, and hides each when empty",
    "purpose": "shows Safe deposit and Pets when the records have them, and hides each when empty",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(empty.find((group) => group.key === 'safe_deposit')).toBeUndefined() | expect(empty.find((group) => group.key === 'pets')).toBeUndefined() Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/worthALook.test.ts",
    "line": 10,
    "name": "types critical and standard and treats anything else as standard",
    "purpose": "types critical and standard and treats anything else as standard",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(findingSeverity({ severity: 'critical' })).toBe('critical') | expect(findingSeverity({ severity: 'standard' })).toBe('standard') Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/lib/worthALook.test.ts",
    "line": 45,
    "name": "does not turn the approved headline into a Hub question",
    "purpose": "does not turn the approved headline into a Hub question",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion evidence: expect(hubFindingQuestion({ fingerprint: 'displayed-values', id: 'pending_successor:owner', kind: FINDING_KIND_PENDING_SUCCESSOR, group: 'people', headline: 'Alex has not accepted yet.', explanation: 'Pending acceptance.', href: '/after-i-die', cta: 'Follow up Pure helper/serialization/API-boundary result assertion; the fixed expected value is an output contract, not duplicated implementation. Purpose retained from the test title.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AcceptItemInvitePage.test.tsx",
    "line": 23,
    "name": "preserves the token through sign in and accepts on the recipient session",
    "purpose": "preserves the token through sign in and accepts on the recipient session",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.queryByRole('button', { name: 'Accept invitation' })).not.toBeInTheDocument() | expect(screen.getByRole('link', { name: 'Create an account' })).toHaveAttribute('href', '/signup?returnTo=%2Finvite%3Ftoken%3Dproof%252Btoken'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AcceptItemInvitePage.test.tsx",
    "line": 39,
    "name": "verifies another email on the signed-in account before accepting",
    "purpose": "verifies another email on the signed-in account before accepting",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText(/A verification code was sent/)).toBeInTheDocument() | expect(requestInviteVerification).toHaveBeenCalledWith('invitation'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AcceptItemInvitePage.test.tsx",
    "line": 58,
    "name": "retries acceptance without resubmitting a successfully verified code",
    "purpose": "retries acceptance without resubmitting a successfully verified code",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('alert')).toHaveTextContent('This invitation could not be accepted. Check your account and try again.') | expect(screen.getByLabelText('Email verification code')).toHaveValue(''). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AcceptItemInvitePage.test.tsx",
    "line": 72,
    "name": "discards an external return destination",
    "purpose": "discards an external return destination",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Home destination')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AccountDetailPage.test.tsx",
    "line": 86,
    "name": "renders the holding title, facts, and source chips — never the entity uid",
    "purpose": "renders the holding title, facts, and source chips — never the entity uid",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { level: 1, name: 'VyStar Credit Union checking ••4471' })).toBeInTheDocument() | expect(screen.getByText('Checking account · from 2 statements')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AccountDetailPage.test.tsx",
    "line": 107,
    "name": "keeps cents, hides unlabeled keys, and never says Untitled record",
    "purpose": "keeps cents, hides unlabeled keys, and never says Untitled record",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('$5,412.18')).toBeInTheDocument() | expect(screen.queryByText('ent-inst')).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AccountDetailPage.test.tsx",
    "line": 165,
    "name": "explains empty facts and missing documents without alarm red",
    "purpose": "explains empty facts and missing documents without alarm red",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('We do not have details for this account yet.')).toBeInTheDocument() | expect(screen.getByText('No source documents are attached yet.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AccountDetailPage.test.tsx",
    "line": 185,
    "name": "does not describe a bound bank record as a statement",
    "purpose": "does not describe a bound bank record as a statement",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Checking account')).toBeInTheDocument() | expect(screen.getByText('We do not have details for this account yet.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AccountDetailPage.test.tsx",
    "line": 216,
    "name": "does not become a generic entity viewer",
    "purpose": "does not become a generic entity viewer",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'We could not find that account.' })).toBeInTheDocument() | expect(screen.getByRole('link', { name: 'What you have' })).toHaveAttribute('href', '/records'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AccountDetailPage.test.tsx",
    "line": 236,
    "name": "treats a missing entity as not found",
    "purpose": "treats a missing entity as not found",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'We could not find that account.' })).toBeInTheDocument() | expect(screen.getByRole('link', { name: 'What you have' })).toHaveAttribute('href', '/records'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AccountDetailPage.test.tsx",
    "line": 251,
    "name": "ignores an older account response after navigating",
    "purpose": "ignores an older account response after navigating",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { level: 1, name: 'Account B Bank checking ••4471' })).toBeInTheDocument() | expect(screen.getByRole('heading', { level: 1, name: 'Account B Bank checking ••4471' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AccountDetailPage.test.tsx",
    "line": 276,
    "name": "ignores a completed pin after navigating to another account",
    "purpose": "ignores a completed pin after navigating to another account",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText('Loading this account…')).toBeInTheDocument() | expect(screen.queryByRole('heading', { level: 1, name: 'VyStar Credit Union checking ••4471' })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AccountDetailPage.test.tsx",
    "line": 316,
    "name": "names the document, collapses as-of, and shows history",
    "purpose": "names the document, collapses as-of, and shows history",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { level: 1, name: 'Vantage West Credit Union checking ••1695' })).toBeInTheDocument() | expect(screen.queryByText('VANTAGE WEST CREDIT UNION')).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AddPersonPage.test.tsx",
    "line": 49,
    "name": "does not explain storage or ask who can see a record",
    "purpose": "does not explain storage or ask who can see a record",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Add a person' })).toBeInTheDocument() | expect(screen.getByText('Only you can see this page.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AddPersonPage.test.tsx",
    "line": 65,
    "name": "uses a name, or no name, and no pronoun",
    "purpose": "uses a name, or no name, and no pronoun",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('A first and last name is enough.')).toBeInTheDocument() | expect(screen.getByText('How is this person connected to you?')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AddPersonPage.test.tsx",
    "line": 87,
    "name": "does not offer Parent of, and Grandchild is Family",
    "purpose": "does not offer Parent of, and Grandchild is Family",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('option', { name: 'Grandchild' })).toBeInTheDocument() | expect(screen.queryByRole('option', { name: 'Parent of' })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AddPersonPage.test.tsx",
    "line": 95,
    "name": "opens the person and does not save when Same person is chosen",
    "purpose": "opens the person and does not save when Same person is chosen",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('You may already have this person: Bob Whitfield. Same person?')).toBeInTheDocument() | expect(await screen.findByTestId('where')).toHaveTextContent('/people/entity-bob'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AddPersonPage.test.tsx",
    "line": 115,
    "name": "saves when No, add separately is chosen",
    "purpose": "saves when No, add separately is chosen",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByTestId('where')).toHaveTextContent('/people/entity-new') | expect(api.authedJSON).toHaveBeenCalledWith('/api/people', expect.objectContaining({ method: 'POST', body: expect.objectContaining({ first_name: 'Bob', last_name: 'Whitfield' . Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AddPersonPage.test.tsx",
    "line": 137,
    "name": "clears the same-name warning when the date of birth changes",
    "purpose": "clears the same-name warning when the date of birth changes",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('You may already have this person: Bob Whitfield. Same person?')).toBeInTheDocument() | expect(screen.queryByText('You may already have this person: Bob Whitfield. Same person?')).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AddPersonPage.test.tsx",
    "line": 154,
    "name": "ignores a same-name response after the name changes",
    "purpose": "ignores a same-name response after the name changes",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.queryByText(/You may already have this person/)).not.toBeInTheDocument() | expect(api.authedJSON).not.toHaveBeenCalled(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AddPersonPage.test.tsx",
    "line": 177,
    "name": "asks how someone is related when no name is typed",
    "purpose": "asks how someone is related when no name is typed",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText('How is someone related to you?')).toBeInTheDocument() | expect(screen.queryByText('How is Someone related to you?')).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AddPersonPage.test.tsx",
    "line": 184,
    "name": "adds the person when the same-name check fails",
    "purpose": "adds the person when the same-name check fails",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByTestId('where')).toHaveTextContent('/people/entity-open') | expect(api.authedJSON).toHaveBeenCalledWith('/api/people', expect.objectContaining({ method: 'POST' }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AddPersonPage.test.tsx",
    "line": 202,
    "name": "does not turn a blank shown name into Someone",
    "purpose": "does not turn a blank shown name into Someone",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(sentence.textContent ?? '').not.toMatch(/Someone/). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AddPersonPage.test.tsx",
    "line": 212,
    "name": "does not save a junk year as no year",
    "purpose": "does not save a junk year as no year",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Enter a year from 1800 through this year.')).toBeInTheDocument() | expect(api.authedJSON).not.toHaveBeenCalled(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AddPersonPage.test.tsx",
    "line": 224,
    "name": "saves nothing when Not sure is chosen",
    "purpose": "saves nothing when Not sure is chosen",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('You may already have this person: Shannon Whitfield, from Healthcare power of attorney. Same person?')).toBeInTheDocument() | expect(screen.queryByText(/You may already have this person/)).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AfterIDiePage.test.tsx",
    "line": 153,
    "name": "shows the seed:death executor packet and unclaimed Daniel notice",
    "purpose": "shows the seed:death executor packet and unclaimed Daniel notice",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByRole('heading', { level: 1, name: 'On my death' })).toBeInTheDocument() | expect(await screen.findByRole('heading', { name: 'Who can open your records if something happens to you?' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AfterIDiePage.test.tsx",
    "line": 175,
    "name": "says Cleared and Nobody named, and resets the picker and email after Clear",
    "purpose": "says Cleared and Nobody named, and resets the picker and email after Clear",
    "classification": "mixed",
    "restates": "partial",
    "reason": "Contains real output/interaction assertions plus an implementation-coupled subset. Restates evidence: Queries private `.bg-success-bg` class alongside visible notice content. Assertion evidence: expect(picker).toHaveValue('person-daniel') | expect(screen.getByLabelText(\"Daniel's email\")).toHaveValue('daniel@example.com')",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AfterIDiePage.test.tsx",
    "line": 200,
    "name": "does not select a deceased designee or offer to set records aside",
    "purpose": "does not select a deceased designee or offer to set records aside",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Shannon. Died')).toBeInTheDocument() | expect(picker).toHaveValue(''). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AfterIDiePage.test.tsx",
    "line": 258,
    "name": "shows No one, your choice and naming restores the normal state",
    "purpose": "shows No one, your choice and naming restores the normal state",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('No one, your choice')).toBeInTheDocument() | expect(picker).toHaveFocus(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AfterIDiePage.test.tsx",
    "line": 292,
    "name": "lets the recipient accept without claiming file access",
    "purpose": "lets the recipient accept without claiming file access",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(respondStepsIn).toHaveBeenCalledWith(request, true) | expect(await screen.findByText(\"You agreed to step in. Pat's files remain closed.\")).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AfterIDiePage.test.tsx",
    "line": 301,
    "name": "names the member when the accepted request has no name",
    "purpose": "names the member when the accepted request has no name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText(\"You agreed to step in. The member's files remain closed.\")).toBeInTheDocument() | expect(screen.queryByText(/Their files/)).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AfterIDiePage.test.tsx",
    "line": 315,
    "name": "preserves the resolved identity and package when saving a graph recipient",
    "purpose": "preserves the resolved identity and package when saving a graph recipient",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(picker).toHaveValue('ent-daniel') | expect(saveStepsIn).toHaveBeenCalledWith({ person_id: 'resolved-person', entity_id: 'ent-daniel', email: 'daniel@example.test', after_death: true, incapacity_level: 'health_papers' }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AfterIDiePage.test.tsx",
    "line": 330,
    "name": "clears the previous nominee contact when choosing a replacement",
    "purpose": "clears the previous nominee contact when choosing a replacement",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(email).toHaveValue('daniel@example.test') | expect(email).toHaveValue(''). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AfterIDiePage.test.tsx",
    "line": 350,
    "name": "reports a package read failure without offering confirmation",
    "purpose": "reports a package read failure without offering confirmation",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('alert')).toHaveTextContent('Package read failed') | expect(mockPreview).not.toHaveBeenCalled(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AfterIDiePage.test.tsx",
    "line": 358,
    "name": "reports a package preview failure",
    "purpose": "reports a package preview failure",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('alert')).toHaveTextContent('Package preview failed') | expect(screen.getByRole('button', { name: 'Set these records aside' })).toBeDisabled(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AfterIDiePage.test.tsx",
    "line": 366,
    "name": "confirms the designation version that was previewed",
    "purpose": "confirms the designation version that was previewed",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(confirmStepsInPackage).toHaveBeenCalledWith('2026-09-20T00:00:00Z') | expect(await screen.findByText('who steps in changed; reload to preview the package again')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AfterIDiePage.test.tsx",
    "line": 374,
    "name": "shows what the step-in person sees right away, with editable fields",
    "purpose": "shows what the step-in person sees right away, with editable fields",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'What Shannon sees right away' })).toBeInTheDocument() | expect(screen.getByText(\"Shannon can see what you write here right after telling us something has happened. Don't put passwords or account numbers here.\". Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AfterIDiePage.test.tsx",
    "line": 433,
    "name": "shows Saved after the guide saves and keeps what was typed",
    "purpose": "shows Saved after the guide saves and keeps what was typed",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Saved.')).toBeInTheDocument() | expect(screen.queryByRole('alert')).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AfterIDiePage.test.tsx",
    "line": 453,
    "name": "shows an error line when the guide save fails and keeps what was typed",
    "purpose": "shows an error line when the guide save fails and keeps what was typed",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('alert')).toHaveTextContent('Could not save the First 72 Hours guide') | expect(screen.queryByText('Saved.')).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AfterIDiePage.test.tsx",
    "line": 476,
    "name": "does not offer Save when the guide read fails",
    "purpose": "does not offer Save when the guide read fails",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Shannon Marie Whitfield is named to receive the executor packet.')).toBeInTheDocument() | expect(await screen.findByText('What Daniel sees right away did not load.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AfterIDiePage.test.tsx",
    "line": 495,
    "name": "keeps permitted estate reads for a free read-only account",
    "purpose": "keeps permitted estate reads for a free read-only account",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Shannon Marie Whitfield is named to receive the executor packet.')).toBeInTheDocument() | expect(await screen.findByRole('link', { name: 'Last will and testament' })).toHaveAttribute('href', '/items/item-will'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AfterIDiePage.test.tsx",
    "line": 506,
    "name": "prefills the person from Home or Alerts and does not save",
    "purpose": "prefills the person from Home or Alerts and does not save",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByLabelText('Who can open your records if something happens to you?')).toHaveValue('person-shannon') | expect(saveStepsIn).not.toHaveBeenCalled(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AfterIDiePage.test.tsx",
    "line": 530,
    "name": "does not replace an existing designation with the prefilled person",
    "purpose": "does not replace an existing designation with the prefilled person",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByLabelText('Who can open your records if something happens to you?')).toHaveValue('person-alex') | expect(saveStepsIn).not.toHaveBeenCalled(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AlertsPage.test.tsx",
    "line": 70,
    "name": "preserves the server order across finding groups",
    "purpose": "preserves the server order across finding groups",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText(\"Shannon's current address has a newer value than the one you pinned.\")).toBeInTheDocument() | expect(mockApi).toHaveBeenCalledWith('/api/me/worth-a-look'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AlertsPage.test.tsx",
    "line": 103,
    "name": "surfaces the pending-successor finding as one people card with approved copy",
    "purpose": "surfaces the pending-successor finding as one people card with approved copy",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText('Alex has not accepted yet.')).toBeInTheDocument() | expect(screen.getByText('You named Alex to step in. They still need to agree to take on this role.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AlertsPage.test.tsx",
    "line": 128,
    "name": "sends the displayed fingerprint for %s",
    "purpose": "sends the displayed fingerprint for %s (parameterized: 4 cases)",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(mockApi).toHaveBeenCalledWith( `/api/me/worth-a-look/${action === 'handle' ? 'handle' : 'snooze'}`, { method: 'POST', body: { id: 'id-Review this policy.', fingerprint: 'displayed-values', ...(action === 'handle' ? {} : { interval: action }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AlertsPage.test.tsx",
    "line": 148,
    "name": "keeps a changed finding visible and asks the member to reload",
    "purpose": "keeps a changed finding visible and asks the member to reload",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('This note changed. Reload to review it before setting it aside.')).toBeInTheDocument() | expect(screen.getByText('Old policy total.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AlertsPage.test.tsx",
    "line": 159,
    "name": "shows an honest empty state without an all-clear",
    "purpose": "shows an honest empty state without an all-clear",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText('Nothing we noticed')).toBeInTheDocument() | expect(screen.getByText('We have not noticed anything in the records we can see.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AlertsPage.test.tsx",
    "line": 178,
    "name": "uses a different empty sentence when there are no records yet",
    "purpose": "uses a different empty sentence when there are no records yet",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText('Nothing to look at yet')).toBeInTheDocument() | expect(screen.getByText(/no records in view yet/i)).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AlertsPage.test.tsx",
    "line": 192,
    "name": "names the spouse on the after-death note instead of Name someone",
    "purpose": "names the spouse on the after-death note instead of Name someone",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(name).toHaveAttribute('href', '/after-i-die?person=person-shannon') | expect(screen.getByRole('link', { name: 'Name someone else' })).toHaveAttribute('href', '/after-i-die'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AlertsPage.test.tsx",
    "line": 222,
    "name": "shows an error state with a retry that reloads",
    "purpose": "shows an error state with a retry that reloads",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByRole('button', { name: /try again/i })).toBeInTheDocument() | expect(screen.getByText(\"Shannon's current address has a newer value than the one you pinned.\")).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/AlertsPage.test.tsx",
    "line": 238,
    "name": "does not post a follow-up nudge for a stale anchor",
    "purpose": "does not post a follow-up nudge for a stale anchor",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText('Alex has not accepted yet.')).toBeInTheDocument() | expect(urls.some((url) => url.includes('steps-in/nudge'))).toBe(false). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/BigItemsPage.test.tsx",
    "line": 64,
    "name": "opens with the optional line",
    "purpose": "opens with the optional line",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Your big items' })).toBeInTheDocument() | expect(screen.getByText(/Everything here is optional and can be added later/)).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/BigItemsPage.test.tsx",
    "line": 71,
    "name": "remembers \"We don't have one\" and offers Change",
    "purpose": "remembers \"We don't have one\" and offers Change",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(writes).toHaveLength(1) | expect(writes[0].path).toBe('/api/me/setup'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/BigItemsPage.test.tsx",
    "line": 88,
    "name": "renders a remembered absence with Change and no Add",
    "purpose": "renders a remembered absence with Change and no Add",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(within(tile).getByText(\"We don't have one\")).toBeInTheDocument() | expect(within(tile).getByRole('button', { name: 'Change' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/BigItemsPage.test.tsx",
    "line": 98,
    "name": "offers the tiles for a category that has no sheet yet",
    "purpose": "offers the tiles for a category that has no sheet yet",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(within(tile).getByRole('button', { name: '+ Add' })).toBeInTheDocument() | expect(within(tile).getByRole('button', { name: \"We don't have one\" })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/BigItemsPage.test.tsx",
    "line": 109,
    "name": "lists saved accounts on their own tile",
    "purpose": "lists saved accounts on their own tile",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(within(bank).getByRole('link', { name: 'Chase checking' })).toBeInTheDocument() | expect(within(retirement).getByRole('link', { name: 'Vanguard traditional ira' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/BigItemsPage.test.tsx",
    "line": 124,
    "name": "stops at 1200px and reflows by width",
    "purpose": "stops at 1200px and reflows by width",
    "classification": "internals",
    "restates": "yes",
    "reason": "Restates evidence: Asserts literal Tailwind breakpoint/grid utility strings. Asserts Tailwind class strings (`max-w`, grid breakpoint columns) rather than rendered width or responsive layout at viewports.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/pages/BigItemsPage.test.tsx",
    "line": 134,
    "name": "meets the tap target sizes on the grid",
    "purpose": "meets the tap target sizes on the grid",
    "classification": "internals",
    "restates": "yes",
    "reason": "Restates evidence: Asserts raw utility class strings instead of rendered dimensions. Asserts raw min-height utility class text rather than measured button dimensions.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/pages/BigItemsPage.test.tsx",
    "line": 147,
    "name": "places the embedded sheet beside the grid above 1000px",
    "purpose": "places the embedded sheet beside the grid above 1000px",
    "classification": "internals",
    "restates": "yes",
    "reason": "Restates evidence: Asserts literal responsive Tailwind class strings and DOM selectors. Asserts raw responsive Tailwind classes through className and class selector queries, not layout at different viewport sizes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/pages/BigItemsPage.test.tsx",
    "line": 167,
    "name": "saves an open sheet before another tile replaces it",
    "purpose": "saves an open sheet before another tile replaces it",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByLabelText('Institution')).toBeEnabled() | expect(writes.some((row) => row.path === '/api/onboarding/financial-accounts')).toBe(true). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/BigItemsPage.test.tsx",
    "line": 206,
    "name": "links the retirement tile and its rows at the mounted route",
    "purpose": "links the retirement tile and its rows at the mounted route",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(row).toHaveAttribute('href', '/big-items/retirement/item-ira') | expect(await screen.findByText('retirement sheet')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/BigItemsPage.test.tsx",
    "line": 227,
    "name": "marks a member-entered row \"You told us\" on the tile",
    "purpose": "marks a member-entered row \"You told us\" on the tile",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(row).toBeInTheDocument() | expect(within(item).getByText('· You told us')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/BigItemsRoutes.test.tsx",
    "line": 68,
    "name": "draws the grid and the sheet in one row above 1000px",
    "purpose": "draws the grid and the sheet in one row above 1000px",
    "classification": "internals",
    "restates": "yes",
    "reason": "Restates evidence: Asserts literal responsive Tailwind classes and DOM wrapper placement. Asserts raw responsive Tailwind classes/DOM wrapper placement, not visual behavior at viewports.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/pages/BigItemsRoutes.test.tsx",
    "line": 84,
    "name": "saves through the open sheet before a tile switch navigates",
    "purpose": "saves through the open sheet before a tile switch navigates",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByTestId('where')).toHaveTextContent('/big-items/bank') | expect(harness.closes).toBe(1). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ClaimPage.test.tsx",
    "line": 30,
    "name": "walks the seed:death claim path with the query token",
    "purpose": "walks the seed:death claim path with the query token",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByLabelText('Claim token')).toHaveValue('seed-daniel-claim') | expect(mockAccept).toHaveBeenCalledWith('seed-daniel-claim'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.itemFetch.test.tsx",
    "line": 46,
    "name": "fetches the item once",
    "purpose": "fetches the item once",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Living will' })).toBeInTheDocument() | expect(itemFetches).toHaveLength(1). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.packet.test.tsx",
    "line": 296,
    "name": "leads with what we found, then what to do next, without repeating a chooser",
    "purpose": "leads with what we found, then what to do next, without repeating a chooser",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(overview.compareDocumentPosition(names) & Node.DOCUMENT_POSITION_FOLLOWING).toBeTruthy() | expect(screen.getByRole('heading', { name: 'What we found' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.packet.test.tsx",
    "line": 346,
    "name": "keeps all ledger-only sections visible without a fabricated document identity",
    "purpose": "keeps all ledger-only sections visible without a fabricated document identity",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(within(inventory).getAllByText('Unrecognized section')).toHaveLength(2) | expect(screen.getByTestId('packet-inventory-row-constituent-0')).toHaveTextContent('Not supported'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.packet.test.tsx",
    "line": 390,
    "name": "opens one document accordion in place and can hide it",
    "purpose": "opens one document accordion in place and can hide it",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.queryByTestId('packet-accordion-doc-will-morgan')).not.toBeInTheDocument() | expect(await screen.findByTestId('packet-accordion-doc-will-morgan')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.packet.test.tsx",
    "line": 406,
    "name": "opens the original file through the authorized download path without a page fragment",
    "purpose": "opens the original file through the authorized download path without a page fragment",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(mockFetch).toHaveBeenCalled() | expect(mockFetch.mock.calls[0][0]).toBe('/api/items/item-1/download'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.packet.test.tsx",
    "line": 417,
    "name": "defers a person without dismissing, and dismisses an incorrect name",
    "purpose": "defers a person without dismissing, and dismisses an incorrect name",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(mockDecline).not.toHaveBeenCalled() | expect(screen.queryByTestId('packet-person-card-morgan quill')).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.packet.test.tsx",
    "line": 433,
    "name": "scopes chat to the open document and names mixed type change honestly",
    "purpose": "scopes chat to the open document and names mixed type change honestly",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByTestId('item-chat-scope')).toHaveTextContent( 'not the other documents in this file', ) | expect(screen.getByTestId('packet-section-correction')).toHaveTextContent( 'read the whole file again from the saved pages', ). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.packet.test.tsx",
    "line": 445,
    "name": "clears scoped chat when the open document changes",
    "purpose": "clears scoped chat when the open document changes",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(mockAsk).toHaveBeenCalledWith( 'item-1', 'Who is the agent?', [], 'doc-poa-fin-morgan', ) | expect(await screen.findByText('Robin is the agent.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.packet.test.tsx",
    "line": 462,
    "name": "confirms a page-text reread without forcing a type",
    "purpose": "confirms a page-text reread without forcing a type",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByRole('heading', { name: 'Check the contents again?' })).toBeInTheDocument() | expect(mockReread).toHaveBeenCalledWith('item-1'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.packet.test.tsx",
    "line": 474,
    "name": "keeps packet chrome when reread returns an item without capabilities",
    "purpose": "keeps packet chrome when reread returns an item without capabilities",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(mockReread).toHaveBeenCalledWith('item-1') | expect(await screen.findByRole('heading', { name: 'What we found' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.packet.test.tsx",
    "line": 487,
    "name": "offers an optional family relationship after Add to People and writes nothing on skip",
    "purpose": "offers an optional family relationship after Add to People and writes nothing on skip",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(mockAccept).toHaveBeenCalledWith('item-1', 'offer-morgan', { expected_generation_id: 'job-1', }) | expect(mockPeopleReview).toHaveBeenCalledTimes(2). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.packet.test.tsx",
    "line": 514,
    "name": "lists every flagged constituent range on a grouped check card",
    "purpose": "lists every flagged constituent range on a grouped check card",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(check).toHaveTextContent('pages 17–20 of the original file of Last Will of Morgan Quill') | expect(check).toHaveTextContent('pages 27–30 of the original file of Last Will of Ellis Quill'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.packet.test.tsx",
    "line": 528,
    "name": "clears the document check when the open constituent changes",
    "purpose": "clears the document check when the open constituent changes",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(checkbox).toBeChecked() | expect( within(screen.getByTestId('packet-person-check-sage quill')).getByRole('checkbox'), ).not.toBeChecked(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.packet.test.tsx",
    "line": 546,
    "name": "clears the document check when the item changes",
    "purpose": "clears the document check when the item changes",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(checkbox).toBeChecked() | expect( within(screen.getByTestId('packet-person-check-sage quill')).getByRole('checkbox'), ).not.toBeChecked(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.packet.test.tsx",
    "line": 571,
    "name": "keeps a single-document item free of packet-management chrome",
    "purpose": "keeps a single-document item free of packet-management chrome",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Last will' })).toBeInTheDocument() | expect(screen.queryByTestId('packet-inventory')).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.packet.test.tsx",
    "line": 594,
    "name": "saves Parent from the named person toward you",
    "purpose": "saves Parent from the named person toward you",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByTestId('packet-family-offer')).toBeInTheDocument() | expect(mockAddRelation).toHaveBeenCalledWith('entity-morgan', 'entity-you', 'parent_of', undefined). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.packet.test.tsx",
    "line": 623,
    "name": "asks how someone is related when the new person has no name",
    "purpose": "asks how someone is related when the new person has no name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByTestId('packet-family-offer')).toBeInTheDocument() | expect(screen.getByLabelText('How is someone related to you?')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 377,
    "name": "labels an any_document placeholder as $label when classification is $status",
    "purpose": "labels an any_document placeholder as $label when classification is $status (parameterized: 3 cases)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion and title: test asserts rendered content/state and the title accurately summarizes that user-facing scenario. expect(await screen.findByText(label)).toBeInTheDocument() | expect(screen.queryByText('Any Document')).not.toBeInTheDocument()",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "reviewed"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 397,
    "name": "shows Try again for an eligible failed read and submits once",
    "purpose": "shows Try again for an eligible failed read and submits once",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion and title: test asserts rendered content/state and the title accurately summarizes that user-facing scenario. expect(await screen.findByText(\"We couldn't read this document. Your file is still here.\")).toBeInTheDocument() | expect(mockRetry).toHaveBeenCalledTimes(1)",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 426,
    "name": "clears the detail retry action when the accepted retry response omits retry capability",
    "purpose": "clears the detail retry action when the accepted retry response omits retry capability",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 457,
    "name": "offers Try again for a failed retry as soon as polling returns its capability",
    "purpose": "offers Try again for a failed retry as soon as polling returns its capability",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 481,
    "name": "applies a terminal failure poll to the exact document and packet inventory",
    "purpose": "applies a terminal failure poll to the exact document and packet inventory",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 556,
    "name": "does not let a stale failure poll overwrite a fresh member-kind mutation",
    "purpose": "does not let a stale failure poll overwrite a fresh member-kind mutation",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 611,
    "name": "keeps a classified retry visibly in progress while polling",
    "purpose": "keeps a classified retry visibly in progress while polling",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 633,
    "name": "keeps Reading as a will… while a completed-unrouted requested job is still in_progress",
    "purpose": "keeps Reading as a will… while a completed-unrouted requested job is still in_progress",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 650,
    "name": "builds the summary from committed facts and does not total them",
    "purpose": "builds the summary from committed facts and does not total them",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion and title: test asserts rendered content/state and the title accurately summarizes that user-facing scenario. expect(await screen.findByRole('heading', { name: 'Document summary' })).toBeInTheDocument() | expect(screen.getByText('Balance: 100')).toBeInTheDocument()",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 673,
    "name": "omits account attribution across subjects on a combined statement",
    "purpose": "omits account attribution across subjects on a combined statement",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 698,
    "name": "masks Medicare and member last-4 and does not show a full number",
    "purpose": "masks Medicare and member last-4 and does not show a full number",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed assertion and title: test asserts rendered content/state and the title accurately summarizes that user-facing scenario. expect(await screen.findByText('••1EG4')).toBeInTheDocument() | expect(screen.getByText('••1234')).toBeInTheDocument()",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 727,
    "name": "masks identification and policy last-4 and hides an invalid value",
    "purpose": "masks identification and policy last-4 and hides an invalid value",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 753,
    "name": "leads permanent life with the printed benefit and premium (net=%s)",
    "purpose": "leads permanent life with the printed benefit and premium (net=%s) (parameterized: 2 cases)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 783,
    "name": "does not expose legacy prose when the read outcome is %s",
    "purpose": "does not expose legacy prose when the read outcome is %s (parameterized declaration)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 800,
    "name": "says the spouse shown name can edit",
    "purpose": "says the spouse shown name can edit",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 819,
    "name": "reads the server owner name for Shared by and the owner row",
    "purpose": "reads the server owner name for Shared by and the owner row",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 841,
    "name": "shows $ownership ownership separately from viewer-relative living access",
    "purpose": "shows $ownership ownership separately from viewer-relative living access (parameterized: 4 cases)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 870,
    "name": "shows the access chip without an eligible spouse and keeps the mode button hidden",
    "purpose": "shows the access chip without an eligible spouse and keeps the mode button hidden",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 880,
    "name": "shows proposed facts as unreviewed extra detail",
    "purpose": "shows proposed facts as unreviewed extra detail",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 906,
    "name": "loads item and unresolved facts through the typed review client",
    "purpose": "loads item and unresolved facts through the typed review client",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 917,
    "name": "hides standalone pin on an unpinned extract",
    "purpose": "hides standalone pin on an unpinned extract",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 941,
    "name": "confirms the item with the records-hub writer and keeps per-fact buttons out of the default grid",
    "purpose": "confirms the item with the records-hub writer and keeps per-fact buttons out of the default grid",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 971,
    "name": "shows a PDF beside the facts when the document can be downloaded",
    "purpose": "shows a PDF beside the facts when the document can be downloaded",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 990,
    "name": "confirms without changing the fact pin state",
    "purpose": "confirms without changing the fact pin state",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 1007,
    "name": "edits extracted name text without offering a graph-person picker, then saves and pins it",
    "purpose": "edits extracted name text without offering a graph-person picker, then saves and pins it",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 1057,
    "name": "unpins a correction so catalog ranking can win again",
    "purpose": "unpins a correction so catalog ranking can win again",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 1081,
    "name": "asks a question about the item through the Go chat endpoint",
    "purpose": "asks a question about the item through the Go chat endpoint",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 1095,
    "name": "asks to create a named person in the graph and attaches on accept",
    "purpose": "asks to create a named person in the graph and attaches on accept",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 1121,
    "name": "shows the server name on the create notice and the acknowledged row",
    "purpose": "shows the server name on the create notice and the acknowledged row",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 1142,
    "name": "shows one who-is card when the same successor name is on two slots",
    "purpose": "shows one who-is card when the same successor name is on two slots",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 1165,
    "name": "links a bound review-detail name to People",
    "purpose": "links a bound review-detail name to People",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 1206,
    "name": "labels the bound principal as this is you",
    "purpose": "labels the bound principal as this is you",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 1235,
    "name": "does not call a copied person This is you when only names_viewer is set",
    "purpose": "does not call a copied person This is you when only names_viewer is set",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 1279,
    "name": "shows an attach-only who-is card for a person review offer",
    "purpose": "shows an attach-only who-is card for a person review offer",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 1310,
    "name": "shows $side the named person on the joint document and not You",
    "purpose": "shows $side the named person on the joint document and not You (parameterized: 2 cases)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 1393,
    "name": "attaches Dora by the shown name, the same as the line after attach",
    "purpose": "attaches Dora by the shown name, the same as the line after attach",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 1461,
    "name": "refreshes the attach notice after the shown name changes",
    "purpose": "refreshes the attach notice after the shown name changes",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 1520,
    "name": "shows Michael Whitfield on the option, the notice, the heading, and the line after attach",
    "purpose": "shows Michael Whitfield on the option, the notice, the heading, and the line after attach",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 1586,
    "name": "attaches your spouse by name and does not offer Add",
    "purpose": "attaches your spouse by name and does not offer Add",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 1620,
    "name": "keeps the spouse shown name on the document after attach",
    "purpose": "keeps the spouse shown name on the document after attach",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 1692,
    "name": "shows Amy Whitfield on a fresh load after the spouse document is attached",
    "purpose": "shows Amy Whitfield on a fresh load after the spouse document is attached",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 1739,
    "name": "shows the spouse shown name on the packet card heading",
    "purpose": "shows the spouse shown name on the packet card heading",
    "classification": "mixed",
    "restates": "partial",
    "reason": "Contains real output/interaction assertions plus an implementation-coupled subset. Restates evidence: Asserts exact CSS class `font-heading` alongside visible copy. Checks visible heading text and the exact `font-heading` class; text is behavior, class-name assertion is implementation detail.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 1762,
    "name": "shows $side add on no_match with 0, 1, and 2 unrelated people",
    "purpose": "shows $side add on no_match with 0, 1, and 2 unrelated people (parameterized: 2 cases)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 1802,
    "name": "puts Add before the others picker for $side",
    "purpose": "puts Add before the others picker for $side (parameterized: 2 cases)",
    "classification": "mixed",
    "restates": "partial",
    "reason": "Contains real output/interaction assertions plus an implementation-coupled subset. Restates evidence: Checks exact CSS utility class `bg-action` and DOM ordering. Checks accessible Add/picker ordering and exact action CSS classes (`bg-action`); mixes interaction behavior with styling implementation.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 1830,
    "name": "puts the packet Add before the others picker for $side",
    "purpose": "puts the packet Add before the others picker for $side (parameterized: 2 cases)",
    "classification": "mixed",
    "restates": "partial",
    "reason": "Contains real output/interaction assertions plus an implementation-coupled subset. Restates evidence: Checks exact CSS utility class `bg-action` and DOM ordering. Checks accessible Add/picker ordering and exact action CSS classes (`bg-action`); mixes interaction behavior with styling implementation.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 1868,
    "name": "names a nickname match as a possible person",
    "purpose": "names a nickname match as a possible person",
    "classification": "mixed",
    "restates": "partial",
    "reason": "Contains real output/interaction assertions plus an implementation-coupled subset. Restates evidence: Checks CSS action priority via class strings and visible match copy. Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 1890,
    "name": "says the document is attached to the chosen person",
    "purpose": "says the document is attached to the chosen person",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 1914,
    "name": "does not add a second period when the saved name already ends with one",
    "purpose": "does not add a second period when the saved name already ends with one",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 1936,
    "name": "shows $side two real matches and not the unrelated people",
    "purpose": "shows $side two real matches and not the unrelated people (parameterized: 2 cases)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 1970,
    "name": "asks for a full name when the document name is one word",
    "purpose": "asks for a full name when the document name is one word",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 2006,
    "name": "does not split Amy Lynn Whitfield on the first space",
    "purpose": "does not split Amy Lynn Whitfield on the first space",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 2029,
    "name": "shows the packet Add button for a no_match principal",
    "purpose": "shows the packet Add button for a no_match principal",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 2060,
    "name": "confirms a packet add-and-attach and does not offer Add to People beside it",
    "purpose": "confirms a packet add-and-attach and does not offer Add to People beside it",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 2092,
    "name": "confirms a packet attach of someone already in your people",
    "purpose": "confirms a packet attach of someone already in your people",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 2142,
    "name": "asks to add a first-time statement holding",
    "purpose": "asks to add a first-time statement holding",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 2166,
    "name": "asks to add a card printed on a bank statement",
    "purpose": "asks to add a card printed on a bank statement",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 2187,
    "name": "only offers holdings with the bind offer subtype",
    "purpose": "only offers holdings with the bind offer subtype",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 2204,
    "name": "keeps attach available with retry when people in the graph fail to load",
    "purpose": "keeps attach available with retry when people in the graph fail to load",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 2251,
    "name": "attaches a named testator to self and keeps the about-you statement after reload",
    "purpose": "attaches a named testator to self and keeps the about-you statement after reload",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 2318,
    "name": "confirms this is your will after a unique-name self bind when no instrument exists yet",
    "purpose": "confirms this is your will after a unique-name self bind when no instrument exists yet",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 2372,
    "name": "does not offer a will confirm when a unique-name bind is someone else",
    "purpose": "does not offer a will confirm when a unique-name bind is someone else",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 2398,
    "name": "adds a legal record for someone else's will on a single document",
    "purpose": "adds a legal record for someone else's will on a single document",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 2452,
    "name": "does not add a legal record against the first document of a mixed packet",
    "purpose": "does not add a legal record against the first document of a mixed packet",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 2483,
    "name": "attaches a named subject to an existing person in the graph without creating",
    "purpose": "attaches a named subject to an existing person in the graph without creating",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 2524,
    "name": "says the document is attached to the holding that was chosen",
    "purpose": "says the document is attached to the holding that was chosen",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 2552,
    "name": "renders attach failures inside the who-is-this-person card, not under Review details",
    "purpose": "renders attach failures inside the who-is-this-person card, not under Review details",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 2599,
    "name": "renders create failures inside the who-is-this-person card, not under Review details",
    "purpose": "renders create failures inside the who-is-this-person card, not under Review details",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 2628,
    "name": "dismisses a create offer without adding a graph person",
    "purpose": "dismisses a create offer without adding a graph person",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 2649,
    "name": "hides create-person offers when the viewer cannot edit",
    "purpose": "hides create-person offers when the viewer cannot edit",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 2673,
    "name": "does not write when the member picks a kind and cancels",
    "purpose": "does not write when the member picks a kind and cancels",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 2695,
    "name": "files a kind then queues a confirmed reread without calling /api/files",
    "purpose": "files a kind then queues a confirmed reread without calling /api/files",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 2754,
    "name": "hides outstanding bind offers when a new read starts",
    "purpose": "hides outstanding bind offers when a new read starts",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 2816,
    "name": "does not let a delayed fetch from before a member-kind change overwrite a later member kind",
    "purpose": "does not let a delayed fetch from before a member-kind change overwrite a later member kind",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 2890,
    "name": "rejects a late detail response from route A after navigating to route B",
    "purpose": "rejects a late detail response from route A after navigating to route B",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 2928,
    "name": "applies a newer overlapping remap and then a fresh other-member kind on the same UUID",
    "purpose": "applies a newer overlapping remap and then a fresh other-member kind on the same UUID",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 3016,
    "name": "lets the member pick a kind again after Couldn't classify.",
    "purpose": "lets the member pick a kind again after Couldn't classify.",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 3033,
    "name": "asks who a classified will is for when no testator was extracted",
    "purpose": "asks who a classified will is for when no testator was extracted",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 3093,
    "name": "names an empty will role and does not say extract",
    "purpose": "names an empty will role and does not say extract",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 3130,
    "name": "attaches an unbound living-will principal onto You with living-will copy",
    "purpose": "attaches an unbound living-will principal onto You with living-will copy",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 3191,
    "name": "attaches an unbound advance directive onto You without will copy",
    "purpose": "attaches an unbound advance directive onto You without will copy",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 3249,
    "name": "shows known facts before one missing-fact picker and saves the selected detail",
    "purpose": "shows known facts before one missing-fact picker and saves the selected detail",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 3320,
    "name": "does not show will holes on a classified bank statement",
    "purpose": "does not show will holes on a classified bank statement",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 3347,
    "name": "groups review details by holding when a statement has two accounts",
    "purpose": "groups review details by holding when a statement has two accounts",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 3387,
    "name": "labels a share suffix as Account suffix, not last4",
    "purpose": "labels a share suffix as Account suffix, not last4",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 3423,
    "name": "shows raw values when metadata declines formatting or is unavailable",
    "purpose": "shows raw values when metadata declines formatting or is unavailable",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 3547,
    "name": "sweeps no redundant sibling attach when fresh review already binds every original create",
    "purpose": "sweeps no redundant sibling attach when fresh review already binds every original create",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 3571,
    "name": "attaches only a fresh pending create sibling with its exact document and verifies it",
    "purpose": "attaches only a fresh pending create sibling with its exact document and verifies it",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 3603,
    "name": "does not attach siblings after a stale people generation and preserves only the primary accept",
    "purpose": "does not attach siblings after a stale people generation and preserves only the primary accept",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 3623,
    "name": "does not attach siblings when fresh review cannot prove the original sibling binding or pending offer",
    "purpose": "does not attach siblings when fresh review cannot prove the original sibling binding or pending offer",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 3642,
    "name": "does not attach a sibling already bound to a different entity",
    "purpose": "does not attach a sibling already bound to a different entity",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 3661,
    "name": "attaches a pending person-review sibling with its exact document and verifies it",
    "purpose": "attaches a pending person-review sibling with its exact document and verifies it",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 3691,
    "name": "does not attach a fresh pending sibling whose name changed",
    "purpose": "does not attach a fresh pending sibling whose name changed",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 3710,
    "name": "does not attach a fresh pending sibling that is a holding offer",
    "purpose": "does not attach a fresh pending sibling that is a holding offer",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 3729,
    "name": "retains the primary document check and generation CAS while sweeping siblings",
    "purpose": "retains the primary document check and generation CAS while sweeping siblings",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 3765,
    "name": "sends fenced generation when creating a person on a selected mixed document",
    "purpose": "sends fenced generation when creating a person on a selected mixed document",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 3781,
    "name": "lets the member connect the same created person on the other document without a full reload",
    "purpose": "lets the member connect the same created person on the other document without a full reload",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 3831,
    "name": "keeps a rejected offer card after 409 when GET still lists it",
    "purpose": "keeps a rejected offer card after 409 when GET still lists it",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 3845,
    "name": "keeps a stale-generation warning through reload when the original person card disappears",
    "purpose": "keeps a stale-generation warning through reload when the original person card disappears",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 3879,
    "name": "lets an explicit retry after unfinished extract 409 once the same offer is refreshed",
    "purpose": "lets an explicit retry after unfinished extract 409 once the same offer is refreshed",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 3896,
    "name": "sends the displayed instrument binding id on disconnect for a single document",
    "purpose": "sends the displayed instrument binding id on disconnect for a single document",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 3928,
    "name": "keeps a stale disconnect alert visible during a fenced reload and scopes it to the document",
    "purpose": "keeps a stale disconnect alert visible during a fenced reload and scopes it to the document",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 3956,
    "name": "does not show people or legal cards for a read-only member",
    "purpose": "does not show people or legal cards for a read-only member",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 3972,
    "name": "disables writes when an applied fence is incoherent even if open is still one document",
    "purpose": "disables writes when an applied fence is incoherent even if open is still one document",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 3999,
    "name": "finishes packet Add to People after the member opens another section",
    "purpose": "finishes packet Add to People after the member opens another section",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4027,
    "name": "does not treat mixed peopleCanWrite as allowed unless it is explicitly true",
    "purpose": "does not treat mixed peopleCanWrite as allowed unless it is explicitly true",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4036,
    "name": "does not keep mixed create when people-review can_write is false",
    "purpose": "does not keep mixed create when people-review can_write is false",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4054,
    "name": "keeps add available with retry when existing legal records fail to load, and does not treat failure as empty",
    "purpose": "keeps add available with retry when existing legal records fail to load, and does not treat failure as empty",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4090,
    "name": "does not show connect when the existing legal record list is actually empty",
    "purpose": "does not show connect when the existing legal record list is actually empty",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4120,
    "name": "lets the member connect the legal record added on A from B without a page reload",
    "purpose": "lets the member connect the legal record added on A from B without a page reload",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4177,
    "name": "lets B attach the Create id while people GET never resolves, and keeps loading copy",
    "purpose": "lets B attach the Create id while people GET never resolves, and keeps loading copy",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4203,
    "name": "lets B attach the Create id when people GET failed, and keeps Retry",
    "purpose": "lets B attach the Create id when people GET failed, and keeps Retry",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4230,
    "name": "keeps an acknowledged Create id when a later people GET omits it",
    "purpose": "keeps an acknowledged Create id when a later people GET omits it",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4258,
    "name": "clears acknowledged people when the item or viewer changes",
    "purpose": "clears acknowledged people when the item or viewer changes",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4285,
    "name": "does not apply a people GET started on another item to the new item",
    "purpose": "does not apply a people GET started on another item to the new item",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4330,
    "name": "does not apply a people GET started as another viewer to the new viewer",
    "purpose": "does not apply a people GET started as another viewer to the new viewer",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4370,
    "name": "clears acknowledged people when the viewer changes",
    "purpose": "clears acknowledged people when the viewer changes",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4393,
    "name": "does not leak a late Create after the viewer changes",
    "purpose": "does not leak a late Create after the viewer changes",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4422,
    "name": "applies a late packet Add to People after opening the other section",
    "purpose": "applies a late packet Add to People after opening the other section",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4447,
    "name": "does not put holding Create into the person picker cache",
    "purpose": "does not put holding Create into the person picker cache",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4478,
    "name": "$surface keeps the one-name questions for $paperName",
    "purpose": "$surface keeps the one-name questions for $paperName (parameterized declaration)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4551,
    "name": "names Rosa by the document title and title-cases the button when First is blank",
    "purpose": "names Rosa by the document title and title-cases the button when First is blank",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4593,
    "name": "lowercases particles on the %s add button",
    "purpose": "lowercases particles on the %s add button (parameterized declaration)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4599,
    "name": "keeps a mixed-case title on the add button",
    "purpose": "keeps a mixed-case title on the add button",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4605,
    "name": "Amy Whitfield needs both first and last on the %s card",
    "purpose": "Amy Whitfield needs both first and last on the %s card (parameterized declaration)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4618,
    "name": "maps paper_own_words_required to the one-name sentence",
    "purpose": "maps paper_own_words_required to the one-name sentence",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4628,
    "name": "quotes the document name ANGUS MACLEOD on the attach card",
    "purpose": "quotes the document name ANGUS MACLEOD on the attach card",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4748,
    "name": "renders a question and resolves it with the canonical token and the full CAS set",
    "purpose": "renders a question and resolves it with the canonical token and the full CAS set",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4765,
    "name": "shows the member copy and refreshes the snapshot on a stale conflict",
    "purpose": "shows the member copy and refreshes the snapshot on a stale conflict",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4774,
    "name": "fails closed when the marker leaves reviews inactive",
    "purpose": "fails closed when the marker leaves reviews inactive",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4789,
    "name": "stages Something else as a review, never as a fact write",
    "purpose": "stages Something else as a review, never as a fact write",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4879,
    "name": "claims due eligible reminders and accents the question and fact rows",
    "purpose": "claims due eligible reminders and accents the question and fact rows",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4900,
    "name": "does not claim when the reminder gate is off",
    "purpose": "does not claim when the reminder gate is off",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4911,
    "name": "does not claim a not-due reminder",
    "purpose": "does not claim a not-due reminder",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4922,
    "name": "does not claim an already-consumed reminder",
    "purpose": "does not claim an already-consumed reminder",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4933,
    "name": "does not replay the accent when a concurrent tab already consumed it",
    "purpose": "does not replay the accent when a concurrent tab already consumed it",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4944,
    "name": "swallows a lost claim response without a second request id or a warning banner",
    "purpose": "swallows a lost claim response without a second request id or a warning banner",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4956,
    "name": "does not claim or prompt when the viewer cannot edit",
    "purpose": "does not claim or prompt when the viewer cannot edit",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4975,
    "name": "does not claim on a locked item",
    "purpose": "does not claim on a locked item",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4986,
    "name": "does not claim on a frozen item",
    "purpose": "does not claim on a frozen item",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 4997,
    "name": "does not claim inactive, retired, or resolved questions",
    "purpose": "does not claim inactive, retired, or resolved questions",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 5008,
    "name": "coalesces two due questions on the same fact row into one accent",
    "purpose": "coalesces two due questions on the same fact row into one accent",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 5082,
    "name": "refetches the review after This is mine and leaves only the green principal card",
    "purpose": "refetches the review after This is mine and leaves only the green principal card",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 5114,
    "name": "names You and not a login handle after This is mine",
    "purpose": "names You and not a login handle after This is mine",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 5145,
    "name": "uses the shown name returned by This is mine",
    "purpose": "uses the shown name returned by This is mine",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 5176,
    "name": "uses the full saved name on the attached card",
    "purpose": "uses the full saved name on the attached card",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 5204,
    "name": "hides This is mine and names the principal when the viewer is not the principal",
    "purpose": "hides This is mine and names the principal when the viewer is not the principal",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 5241,
    "name": "shows This is mine when another owner binding names the viewer and allow is true",
    "purpose": "shows This is mine when another owner binding names the viewer and allow is true",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 5273,
    "name": "shows This is mine for $viewer after $claimant claimed the nameless document",
    "purpose": "shows This is mine for $viewer after $claimant claimed the nameless document (parameterized: 2 cases)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 5297,
    "name": "shows This is mine when the viewer is the principal",
    "purpose": "shows This is mine when the viewer is the principal",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 5326,
    "name": "says you will confirm next when the legal record is not connected yet",
    "purpose": "says you will confirm next when the legal record is not connected yet",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 5341,
    "name": "leaves out the next-step sentence when the legal record is already connected",
    "purpose": "leaves out the next-step sentence when the legal record is already connected",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 5364,
    "name": "refetches the review after attaching a testator and leaves only the green testator card",
    "purpose": "refetches the review after attaching a testator and leaves only the green testator card",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 5407,
    "name": "hides a stale principal hole once that role is bound",
    "purpose": "hides a stale principal hole once that role is bound",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 5436,
    "name": "shows a codicil Signed and Changes the will dated on the same calendar day in any zone",
    "purpose": "shows a codicil Signed and Changes the will dated on the same calendar day in any zone",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 5491,
    "name": "says the document is now the named person's durable power of attorney",
    "purpose": "says the document is now the named person's durable power of attorney",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 5508,
    "name": "names You and not a login handle when the document is confirmed",
    "purpose": "names You and not a login handle when the document is confirmed",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 5538,
    "name": "uses the viewer name when the confirmed person is not on the roster yet",
    "purpose": "uses the viewer name when the confirmed person is not on the roster yet",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 5568,
    "name": "confirms a document with no name as a durable power of attorney",
    "purpose": "confirms a document with no name as a durable power of attorney",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 5585,
    "name": "says the document is now the named person's will",
    "purpose": "says the document is now the named person's will",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 5633,
    "name": "refetches the review after confirming this document is yours",
    "purpose": "refetches the review after confirming this document is yours",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 5702,
    "name": "shows Don's line and only download, delete, and lock",
    "purpose": "shows Don's line and only download, delete, and lock",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentDetailPage.test.tsx",
    "line": 5716,
    "name": "says Someone when the claimant first name is missing",
    "purpose": "says Someone when the claimant first name is missing",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Heuristic: rendered page/component tests in this file generally assert user-visible state and sometimes public action payloads. Assertion/title not individually verified in this pass.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentsPage.test.tsx",
    "line": 188,
    "name": "shows an always-visible Choose files zone on the full vault",
    "purpose": "shows an always-visible Choose files zone on the full vault",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByRole('heading', { name: 'Add a document', level: 2 })).toBeInTheDocument() | expect(screen.getByText(/PDF, Word, JPG, PNG/i)).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentsPage.test.tsx",
    "line": 199,
    "name": "keeps the header Add a document control without a third empty-state CTA",
    "purpose": "keeps the header Add a document control without a third empty-state CTA",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByRole('button', { name: /Add a document/i })).toBeInTheDocument() | expect(screen.getByRole('button', { name: /Choose files/i })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentsPage.test.tsx",
    "line": 208,
    "name": "shows classified wills with an honest legal family and never Other",
    "purpose": "shows classified wills with an honest legal family and never Other",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(row).toHaveTextContent('Will · Wills, trusts, and legal · Uploaded April 29, 2026') | expect(row).not.toHaveTextContent('Other'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentsPage.test.tsx",
    "line": 224,
    "name": "keeps a living will distinct while grouping it with legal documents",
    "purpose": "keeps a living will distinct while grouping it with legal documents",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(row).toHaveTextContent('Living will or advance directive · Wills, trusts, and legal · Uploaded') | expect(screen.getByText('Living will or advance directive', { exact: true })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentsPage.test.tsx",
    "line": 241,
    "name": "shows automatic classification in progress instead of the catalog placeholder",
    "purpose": "shows automatic classification in progress instead of the catalog placeholder",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(row).toHaveTextContent('Automatic Classification - In Progress') | expect(row).not.toHaveTextContent(/Any Document/i). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentsPage.test.tsx",
    "line": 254,
    "name": "shows an honest resting label when automatic classification finishes unresolved",
    "purpose": "shows an honest resting label when automatic classification finishes unresolved",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(row).toHaveTextContent('Choose a kind · Uploaded') | expect(row).not.toHaveTextContent(/Any Document/i). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentsPage.test.tsx",
    "line": 268,
    "name": "shows a read failure without claiming classification failed",
    "purpose": "shows a read failure without claiming classification failed",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(row).toHaveTextContent(\"Couldn't finish reading.\") | expect(row).toHaveTextContent('Your file is still here.'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentsPage.test.tsx",
    "line": 285,
    "name": "lets an editor try a failed read again without deleting the file",
    "purpose": "lets an editor try a failed read again without deleting the file",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(row).toHaveTextContent(\"Couldn't read this document.\") | expect(row).toHaveTextContent(\"We couldn't read this document. Your file is still here.\"). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentsPage.test.tsx",
    "line": 315,
    "name": "does not recommend deleting failed documents in the overview",
    "purpose": "does not recommend deleting failed documents in the overview",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(overview).toHaveTextContent('Your file is still here.') | expect(overview).not.toHaveTextContent(/delete and add/i). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentsPage.test.tsx",
    "line": 327,
    "name": "keeps the successor failure retryable when polling reaches a terminal result",
    "purpose": "keeps the successor failure retryable when polling reaches a terminal result",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(updateDocument).toHaveBeenCalledWith('d1', expect.objectContaining({ processingStatus: 'failed', retryExtraction: { failedJobId: 'failed-successor' }, })",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/pages/DocumentsPage.test.tsx",
    "line": 345,
    "name": "refreshes the list when a stale retry receives a conflict",
    "purpose": "refreshes the list when a stale retry receives a conflict",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(refreshDocuments).toHaveBeenCalledTimes(1) | expect(screen.getByRole('alert')).toHaveTextContent('A newer read is already current.'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentsPage.test.tsx",
    "line": 359,
    "name": "does not replace server state when bounded polling ends on GET failures",
    "purpose": "does not replace server state when bounded polling ends on GET failures",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(updateDocument).not.toHaveBeenCalled()",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/pages/DocumentsPage.test.tsx",
    "line": 372,
    "name": "clears leftover kindKey and readOutcome on a fresh poll remap",
    "purpose": "clears leftover kindKey and readOutcome on a fresh poll remap",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(updateDocument).toHaveBeenCalledWith('d1', expect.objectContaining({ kindKey: null, kindLabel: null, readOutcome: null, generationId: 'gen-2', })",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/pages/DocumentsPage.test.tsx",
    "line": 402,
    "name": "drops a stale poll and an older overlapping GET, and accepts a fresh other-member kind",
    "purpose": "drops a stale poll and an older overlapping GET, and accepts a fresh other-member kind",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(updateDocument).not.toHaveBeenCalled() | expect(updateDocument).not.toHaveBeenCalled()",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/pages/DocumentsPage.test.tsx",
    "line": 451,
    "name": "omits the family token for an unclassified file",
    "purpose": "omits the family token for an unclassified file",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(row).toHaveTextContent('Choose a kind · Uploaded') | expect(row).not.toHaveTextContent('Other'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentsPage.test.tsx",
    "line": 461,
    "name": "still shows the zone when documents already exist",
    "purpose": "still shows the zone when documents already exist",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByRole('button', { name: /Choose files/i })).toBeInTheDocument() | expect(screen.getByText('Medicare card')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentsPage.test.tsx",
    "line": 484,
    "name": "hides the upload zone on tag-filter deep links",
    "purpose": "hides the upload zone on tag-filter deep links",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.queryByRole('button', { name: /Choose files/i })).not.toBeInTheDocument() | expect(screen.queryByRole('heading', { name: 'Add a document', level: 2 })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentsPage.test.tsx",
    "line": 490,
    "name": "deletes through the gen 5 item endpoint",
    "purpose": "deletes through the gen 5 item endpoint",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(fetch).toHaveBeenCalledWith('/api/items/d1', expect.objectContaining({ method: 'DELETE' }) | expect(removeDocument).toHaveBeenCalledWith('d1'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentsPage.test.tsx",
    "line": 501,
    "name": "downloads through the gen 5 item endpoint",
    "purpose": "downloads through the gen 5 item endpoint",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(fetch).toHaveBeenCalledWith('/api/items/d1/download', expect.objectContaining({ method: 'GET' }) | expect(click).toHaveBeenCalled(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentsPage.test.tsx",
    "line": 515,
    "name": "submits exact upload visibility values only for eligible spouses",
    "purpose": "submits exact upload visibility values only for eligible spouses",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(data.get('visibility')).toBe(mode) | expect(noSpouse.has('visibility')).toBe(false). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentsPage.test.tsx",
    "line": 526,
    "name": "opens living visibility through the item scope modal",
    "purpose": "opens living visibility through the item scope modal",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText('item-scope:d1')).toBeInTheDocument() | expect(scopeModal.props).toMatchObject({ subject: 'item', itemId: 'd1' }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentsPage.test.tsx",
    "line": 536,
    "name": "shows viewer-relative living access for all four ownership marks",
    "purpose": "shows viewer-relative living access for all four ownership marks",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText('Yours')).toBeInTheDocument() | expect(screen.getByText('Only you can open it')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentsPage.test.tsx",
    "line": 555,
    "name": "shows the access chip without an eligible spouse and keeps the spouse toggle hidden",
    "purpose": "shows the access chip without an eligible spouse and keeps the spouse toggle hidden",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText('Yours')).toBeInTheDocument() | expect(screen.getByText('Only you can open it')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentsPage.test.tsx",
    "line": 565,
    "name": "names a non-spouse share when there is no spouse",
    "purpose": "names a non-spouse share when there is no spouse",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText('Frank Delgado can open it')).toBeInTheDocument() | expect(screen.queryByText('Only you can open it')).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentsPage.test.tsx",
    "line": 578,
    "name": "keeps one packet file row with compact constituent labels and the member title",
    "purpose": "keeps one packet file row with compact constituent labels and the member title",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(row).toHaveTextContent('Quill family documents') | expect(screen.getByTestId('packet-constituent-labels')).toHaveTextContent( 'Trust · Will · Financial power of attorney · Healthcare power of attorney or proxy · Will · Financial power of attorney · Heal. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentsPage.test.tsx",
    "line": 607,
    "name": "does not add packet-management labels to a single-document file",
    "purpose": "does not add packet-management labels to a single-document file",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(row).toHaveTextContent('Will') | expect(screen.queryByTestId('packet-constituent-labels')).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentsPage.test.tsx",
    "line": 624,
    "name": "keeps a ledger-only section visible beside a materialized document in the file row",
    "purpose": "keeps a ledger-only section visible beside a materialized document in the file row",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByTestId('packet-constituent-labels')).toHaveTextContent('Will · Choose a kind') | expect(row).not.toHaveTextContent('brokerage_statement'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/DocumentsPage.test.tsx",
    "line": 646,
    "name": "keeps all unsupported ledger-only sections visible without inventing document ids",
    "purpose": "keeps all unsupported ledger-only sections visible without inventing document ids",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByTestId('packet-constituent-labels')).toHaveTextContent('Choose a kind · Unrecognized') | expect(screen.getAllByRole('region', { name: 'Unreadable documents' })).toHaveLength(1). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/First30DaysReportPage.test.tsx",
    "line": 16,
    "name": "prints the prepared heading and skips blank guide rows",
    "purpose": "prints the prepared heading and skips blank guide rows",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Pat prepared this for you' })).toBeInTheDocument() | expect(screen.getByText('Call Ada first')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/First30DaysReportPage.test.tsx",
    "line": 42,
    "name": "says the member when the name is blank or a pronoun",
    "purpose": "says the member when the name is blank or a pronoun",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('The member prepared this for you.')).toBeInTheDocument() | expect(screen.queryByText(/They prepared/)).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/First72HoursPage.test.tsx",
    "line": 65,
    "name": "prints the general steps and starts with ten call rows",
    "purpose": "prints the general steps and starts with ten call rows",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'What Shannon sees right away' })).toBeInTheDocument() | expect(screen.getByRole('heading', { level: 1, name: 'First 72 Hours' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/First72HoursPage.test.tsx",
    "line": 91,
    "name": "does not offer Save when the guide read fails",
    "purpose": "does not offer Save when the guide read fails",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('What Shannon sees right away did not load.')).toBeInTheDocument() | expect(screen.getByRole('button', { name: 'Try again' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/First72HoursPage.test.tsx",
    "line": 112,
    "name": "does not offer Try again while the guide is still loading",
    "purpose": "does not offer Try again while the guide is still loading",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Loading what Shannon sees right away.')).toBeInTheDocument() | expect(screen.queryByText(/they see/)).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/First72HoursPage.test.tsx",
    "line": 136,
    "name": "says the page is loading when nobody is named to step in",
    "purpose": "says the page is loading when nobody is named to step in",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Loading this page.')).toBeInTheDocument() | expect(screen.queryByText(/they see/)).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/First72HoursPage.test.tsx",
    "line": 153,
    "name": "says the page did not load when nobody is named to step in",
    "purpose": "says the page did not load when nobody is named to step in",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('This page did not load.')).toBeInTheDocument() | expect(screen.queryByText(/they see/)).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/First72HoursPage.test.tsx",
    "line": 171,
    "name": "shows Saved after the guide saves and keeps what was typed",
    "purpose": "shows Saved after the guide saves and keeps what was typed",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Saved.')).toBeInTheDocument() | expect(screen.queryByRole('alert')).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/First72HoursPage.test.tsx",
    "line": 195,
    "name": "shows an error line when the guide save fails and keeps what was typed",
    "purpose": "shows an error line when the guide save fails and keeps what was typed",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('alert')).toHaveTextContent('Could not save the First 72 Hours guide') | expect(screen.queryByText('Saved.')).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/First72HoursPage.test.tsx",
    "line": 222,
    "name": "still shows the guide when who steps in does not load",
    "purpose": "still shows the guide when who steps in does not load",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('button', { name: 'Save' })).toBeInTheDocument() | expect(screen.getByRole('heading', { name: 'What your step-in person sees right away' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/First72HoursPrintPage.test.tsx",
    "line": 68,
    "name": "names the step-in person on the printed guide",
    "purpose": "names the step-in person on the printed guide",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'What Shannon sees right away' })).toBeInTheDocument() | expect(screen.queryByRole('heading', { name: 'What they see right away' })).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/First72HoursPrintPage.test.tsx",
    "line": 75,
    "name": "names the step-in person when the guide does not load",
    "purpose": "names the step-in person when the guide does not load",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('What Shannon sees right away did not load.')).toBeInTheDocument() | expect(screen.queryByText('This page did not load.')).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/First72HoursPrintPage.test.tsx",
    "line": 83,
    "name": "names the step-in person while the guide is loading",
    "purpose": "names the step-in person while the guide is loading",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Loading what Shannon sees right away.')).toBeInTheDocument() | expect(screen.queryByText(/they see/)).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/First72HoursPrintPage.test.tsx",
    "line": 90,
    "name": "stays on loading when the name lookup fails before the guide arrives",
    "purpose": "stays on loading when the name lookup fails before the guide arrives",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Loading this page.')).toBeInTheDocument() | expect(screen.queryByText('This page did not load.')).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/First72HoursPrintPage.test.tsx",
    "line": 106,
    "name": "keeps the guide when the step-in name does not load",
    "purpose": "keeps the guide when the step-in name does not load",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'What your step-in person sees right away' })).toBeInTheDocument() | expect(screen.queryByText('This page did not load.')).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/First72HoursPrintPage.test.tsx",
    "line": 115,
    "name": "says the page did not load when nobody is named to step in",
    "purpose": "says the page did not load when nobody is named to step in",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('This page did not load.')).toBeInTheDocument() | expect(screen.queryByText(/they see/)).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/GuidedImportPage.login-work.test.tsx",
    "line": 86,
    "name": "does not expose a selected document to %s",
    "purpose": "does not expose a selected document to %s (parameterized: 2 cases)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.queryByText('Alpha private')).not.toBeInTheDocument() | expect(screen.queryByText('Second private')).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/GuidedImportPage.login-work.test.tsx",
    "line": 97,
    "name": "does not send the old queued document or publish its batch after %s",
    "purpose": "does not send the old queued document or publish its batch after %s (parameterized: 2 cases)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(sent).toEqual([{ bearer: firstBearer, name: 'Alpha private' }]) | expect(sessionStorage.getItem('persynl.guided-import.batch')).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/GuidedImportPage.login-work.test.tsx",
    "line": 108,
    "name": "keeps the draft across ordinary token refresh and uses the refreshed bearer for a new action",
    "purpose": "keeps the draft across ordinary token refresh and uses the refreshed bearer for a new action",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText('Alpha private')).toBeInTheDocument() | expect(sent).toHaveLength(1). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/GuidedImportPage.test.tsx",
    "line": 101,
    "name": "starts on the batch chooser when there is no batch",
    "purpose": "starts on the batch chooser when there is no batch",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Add your statements' })).toBeInTheDocument() | expect(screen.getByRole('button', { name: 'Choose files' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/GuidedImportPage.test.tsx",
    "line": 108,
    "name": "returns to the chooser when a saved batch no longer exists",
    "purpose": "returns to the chooser when a saved batch no longer exists",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Add your statements' })).toBeInTheDocument() | expect(screen.getByRole('button', { name: 'Choose files' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/GuidedImportPage.test.tsx",
    "line": 117,
    "name": "returns to the chooser when a saved batch is incomplete",
    "purpose": "returns to the chooser when a saved batch is incomplete",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Add your statements' })).toBeInTheDocument() | expect(screen.queryByRole('link', { name: 'Visible.pdf' })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/GuidedImportPage.test.tsx",
    "line": 126,
    "name": "shows one reading line while extract jobs are still open",
    "purpose": "shows one reading line while extract jobs are still open",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByTestId('import-reading')).toHaveTextContent('Reading 2 documents…') | expect(screen.queryByText(/June.pdf/)).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/GuidedImportPage.test.tsx",
    "line": 139,
    "name": "clears a reading batch that becomes incomplete while polling",
    "purpose": "clears a reading batch that becomes incomplete while polling",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Add your statements' })).toBeInTheDocument() | expect(screen.queryByRole('heading', { name: \"Here's what we read\" })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/GuidedImportPage.test.tsx",
    "line": 158,
    "name": "groups discovery by institution and last4 and names a failed document",
    "purpose": "groups discovery by institution and last4 and names a failed document",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'VyStar account ••4821' })).toBeInTheDocument() | expect(screen.getByText('2 documents')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/GuidedImportPage.test.tsx",
    "line": 195,
    "name": "surfaces review data failures instead of treating them as empty",
    "purpose": "surfaces review data failures instead of treating them as empty",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('alert')).toHaveTextContent('Could not load document details') | expect(screen.getByRole('button', { name: 'Try loading details again' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/GuidedImportPage.test.tsx",
    "line": 209,
    "name": "ignores review data that resolves after the active batch changes",
    "purpose": "ignores review data that resolves after the active batch changes",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(mockApi).toHaveBeenCalledWith('/api/items/a/facts') | expect(await screen.findByRole('link', { name: 'Current.pdf' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/GuidedImportPage.test.tsx",
    "line": 238,
    "name": "hides the prior batch while replacement documents are loading",
    "purpose": "hides the prior batch while replacement documents are loading",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('link', { name: 'Old.pdf' })).toBeInTheDocument() | expect(await screen.findByRole('heading', { name: 'Loading your documents' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/GuidedImportPage.test.tsx",
    "line": 269,
    "name": "keeps failed files available for retry after a partial upload",
    "purpose": "keeps failed files available for retry after a partial upload",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('alert')).toHaveTextContent('Some documents did not upload') | expect(screen.getByText('temporary upload failure')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/GuidedImportPage.test.tsx",
    "line": 303,
    "name": "stops reading after repeated item-list failures",
    "purpose": "stops reading after repeated item-list failures",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('button', { name: 'Review later' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/GuidedImportPage.test.tsx",
    "line": 314,
    "name": "resumes polling when a stopped batch is replaced",
    "purpose": "resumes polling when a stopped batch is replaced",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('button', { name: 'Review later' })).toBeInTheDocument() | expect(await screen.findByRole('heading', { name: \"Here's what we read\" })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/GuidedImportPage.test.tsx",
    "line": 348,
    "name": "confirms a bind offer through the existing accept route and can skip the rest",
    "purpose": "confirms a bind offer through the existing accept route and can skip the rest",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: \"Here's what we read\" })).toBeInTheDocument() | expect(await screen.findByRole('heading', { name: 'Needs your OK' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/GuidedImportPage.test.tsx",
    "line": 386,
    "name": "routes a flagged person offer to the document check instead of Add",
    "purpose": "routes a flagged person offer to the document check instead of Add",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: \"Here's what we read\" })).toBeInTheDocument() | expect(await screen.findByRole('heading', { name: 'Needs your OK' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/GuidedImportPage.test.tsx",
    "line": 425,
    "name": "adds a first-time statement holding without loading people",
    "purpose": "adds a first-time statement holding without loading people",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: \"Here's what we read\" })).toBeInTheDocument() | expect(await screen.findByRole('heading', { name: 'Needs your OK' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/GuidedImportPage.test.tsx",
    "line": 466,
    "name": "only offers holdings from the bind offer family",
    "purpose": "only offers holdings from the bind offer family",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('option', { name: 'Account' })).toBeInTheDocument() | expect(screen.queryByRole('option', { name: 'Card ••2222' })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/GuidedImportPage.test.tsx",
    "line": 485,
    "name": "does not present person decisions when the roster is unavailable",
    "purpose": "does not present person decisions when the roster is unavailable",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('alert')).toHaveTextContent('Could not load your people') | expect(screen.queryByRole('button', { name: 'Create in My people' })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/GuidedImportPage.test.tsx",
    "line": 504,
    "name": "walks checked categories, teaches the three sources once, and lands on the report",
    "purpose": "walks checked categories, teaches the three sources once, and lands on the report",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Home' })).toBeInTheDocument() | expect(screen.queryByRole('heading', { name: 'Add your statements' })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/HandledSnoozedPage.test.tsx",
    "line": 117,
    "name": "shows the default order, three groups, name search, and Show again",
    "purpose": "shows the default order, three groups, name search, and Show again",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText('Showing all notes')).toBeInTheDocument() | expect(link).toHaveAttribute('href', '/alerts'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/HandledSnoozedPage.test.tsx",
    "line": 191,
    "name": "lists a stopped step-in request beside the worth-a-look notes",
    "purpose": "lists a stopped step-in request beside the worth-a-look notes",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText(\"You stopped Ada's request on October 8, 2026.\")).toBeInTheDocument() | expect(screen.getByText(\"You stopped Shannon Whitfield and Emily Marsh's request on October 20, 2026.\")).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/HandledSnoozedPage.test.tsx",
    "line": 208,
    "name": "does not say the member stopped a request a staffer closed",
    "purpose": "does not say the member stopped a request a staffer closed",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('The request was stopped on October 8, 2026.')).toBeInTheDocument() | expect(screen.queryByText(\"You stopped Ada's request on October 8, 2026.\")).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/HandledSnoozedPage.test.tsx",
    "line": 224,
    "name": "preserves response order through filters, search, and restore",
    "purpose": "preserves response order through filters, search, and restore",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(notes()).toEqual(expected) | expect(notes()).toEqual(items.filter((item). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/HandledSnoozedPage.test.tsx",
    "line": 255,
    "name": "does not list a closed request from the last 90 days",
    "purpose": "does not list a closed request from the last 90 days",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.queryByText('Amy stopped the request. Nothing further will open from it.')).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/HandledSnoozedPage.test.tsx",
    "line": 276,
    "name": "resets the filters when the page is opened again",
    "purpose": "resets the filters when the page is opened again",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText('Showing all notes')).toBeInTheDocument() | expect(screen.getByText('Showing notes you took care of, matching “Vanguard”')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/HandledSnoozedPage.test.tsx",
    "line": 290,
    "name": "asks for the quiet list in the member time zone",
    "purpose": "asks for the quiet list in the member time zone",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(String(call?.[0])).toBe(`/api/me/worth-a-look/quiet?timezone=${encodeURIComponent(zone). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/HandledSnoozedPage.test.tsx",
    "line": 298,
    "name": "puts the quiet-week naming row back through show-now",
    "purpose": "puts the quiet-week naming row back through show-now",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('You named Alex.')).toBeInTheDocument() | expect(screen.getByText('Comes back October 1')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/HomeDashboardPage.test.tsx",
    "line": 77,
    "name": "shows the guided day-zero treatment and no finding chrome",
    "purpose": "shows the guided day-zero treatment and no finding chrome",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText(/Welcome to Persynl/i)).toBeInTheDocument() | expect(screen.getByText(/Start with the essentials/i)).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/HomeDashboardPage.test.tsx",
    "line": 89,
    "name": "leads with one finding when records and findings exist",
    "purpose": "leads with one finding when records and findings exist",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText(/Welcome back, Dana\\./i)).toBeInTheDocument() | expect(await screen.findByText(/Here's the one thing worth a look/i)).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/HomeDashboardPage.test.tsx",
    "line": 107,
    "name": "greets with the whole given name from the server",
    "purpose": "greets with the whole given name from the server",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByRole('heading', { level: 1 })).toHaveTextContent('Welcome back, Mary Ann.') | expect(screen.queryByText(/Welcome back, Mary\\./)).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/HomeDashboardPage.test.tsx",
    "line": 115,
    "name": "greets with the shown first name from the server",
    "purpose": "greets with the shown first name from the server",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByRole('heading', { level: 1 })).toHaveTextContent('Welcome back, Dora.') | expect(screen.queryByText(/Theodora/)).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/HomeDashboardPage.test.tsx",
    "line": 123,
    "name": "drops a blank name from the greeting",
    "purpose": "drops a blank name from the greeting",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByRole('heading', { level: 1 })).toHaveTextContent('Welcome back.') | expect(screen.queryByText(/Welcome back,/)).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/HomeDashboardPage.test.tsx",
    "line": 131,
    "name": "drops a pronoun from the greeting",
    "purpose": "drops a pronoun from the greeting",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByRole('heading', { level: 1 })).toHaveTextContent('Welcome back.') | expect(screen.queryByText(/Welcome back, them/i)).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/HomeDashboardPage.test.tsx",
    "line": 139,
    "name": "drops a pronoun display name from the greeting",
    "purpose": "drops a pronoun display name from the greeting",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByRole('heading', { level: 1 })).toHaveTextContent('Welcome back.') | expect(screen.queryByText(/Welcome back,/)).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/HomeDashboardPage.test.tsx",
    "line": 147,
    "name": "drops a blank name from the day-zero greeting",
    "purpose": "drops a blank name from the day-zero greeting",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByRole('heading', { level: 1 })).toHaveTextContent('Welcome to Persynl.') | expect(screen.queryByText(/Welcome to Persynl,/)).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/HomeDashboardPage.test.tsx",
    "line": 155,
    "name": "drops a pronoun from the day-zero greeting",
    "purpose": "drops a pronoun from the day-zero greeting",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByRole('heading', { level: 1 })).toHaveTextContent('Welcome to Persynl.') | expect(screen.queryByText(/Welcome to Persynl, them/i)).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/HomeDashboardPage.test.tsx",
    "line": 163,
    "name": "shows an all-clear living-layer prompt when records exist and findings are empty",
    "purpose": "shows an all-clear living-layer prompt when records exist and findings are empty",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByTestId('home-all-clear')).toBeInTheDocument() | expect(screen.getByText(/Welcome back, Dana\\./i)).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/HomeDashboardPage.test.tsx",
    "line": 178,
    "name": "names the claimant on the alive notice",
    "purpose": "names the claimant on the alive notice",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(link).toHaveAttribute('href', '/step-in/requests/req-1/stop') | expect(screen.getByText('Ada told Persynl you have died.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/HomeDashboardPage.test.tsx",
    "line": 198,
    "name": "says Someone needs to step in when the claimant has no name",
    "purpose": "says Someone needs to step in when the claimant has no name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(link).toHaveAttribute('href', '/step-in/requests/req-1/stop') | expect(screen.getByText('Someone told Persynl you have died.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/HomeDashboardPage.test.tsx",
    "line": 217,
    "name": "names the claimant on an unwell notice",
    "purpose": "names the claimant on an unwell notice",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(link).toHaveAttribute('href', '/step-in/requests/req-2/stop') | expect(screen.getByText('Casey has asked to step in for you.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/HomeDashboardPage.test.tsx",
    "line": 240,
    "name": "does not link the told page when this person is not the member",
    "purpose": "does not link the told page when this person is not the member",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText(\"You can no longer see Grace's Life details on Persynl. A newer request for Grace replaced yours.\")).toBeInTheDocument() | expect(screen.queryByRole('link', { name: 'See what Persynl told you' })).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/HomeDashboardPage.test.tsx",
    "line": 271,
    "name": "names two filers, and names nobody when three asked or a name is missing",
    "purpose": "names two filers, and names nobody when three asked or a name is missing",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Shannon Whitfield and Emily Marsh told Persynl you have died.')).toBeInTheDocument() | expect(screen.getByRole('link', { name: \"I'm alive. Shannon Whitfield and Emily Marsh don't need to step in.\" })).toHaveAttribute('href', '/s. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/HomeDashboardPage.test.tsx",
    "line": 304,
    "name": "hides If something happens when nobody can be filed for",
    "purpose": "hides If something happens when nobody can be filed for",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText(/Welcome to Persynl/i)).toBeInTheDocument() | expect(screen.queryByRole('link', { name: 'If something happens' })).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/HomeDashboardPage.test.tsx",
    "line": 312,
    "name": "shows If something happens when a member can be filed for",
    "purpose": "shows If something happens when a member can be filed for",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('link', { name: 'If something happens' })).toHaveAttribute('href', '/if-something-happens') | expect(screen.queryByRole('link', { name: 'Someone has passed' })).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/HomeDashboardPage.test.tsx",
    "line": 330,
    "name": "Got it calls the API and removes the told line",
    "purpose": "Got it calls the API and removes the told line",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('link', { name: 'Alex has asked to step in for Pat.' })).toHaveAttribute('href', '/if-something-happens/requests/req-9') | expect(screen.queryByText(/^\\d+$/)).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/HomeDashboardPage.test.tsx",
    "line": 360,
    "name": "keeps the told line when Got it fails",
    "purpose": "keeps the told line when Got it fails",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('link', { name: 'Alex has asked to step in for Pat.' })).toBeInTheDocument() | expect(await screen.findByRole('alert')).toHaveTextContent('Could not save that. Try again.'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/HomeDashboardPage.test.tsx",
    "line": 389,
    "name": "tells a claimant on Home when the request is stopped, refused, or reversed",
    "purpose": "tells a claimant on Home when the request is stopped, refused, or reversed",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Robert stopped the request. Nothing further will open from it.')).toBeInTheDocument() | expect(screen.getByText('The request for Robert was stopped. Nothing further will open from it.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/HomeDashboardPage.test.tsx",
    "line": 419,
    "name": "does not say the member stopped a request a staffer closed",
    "purpose": "does not say the member stopped a request a staffer closed",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText(\"You stopped Ada's request.\")).toBeInTheDocument() | expect(screen.getByText('The request was stopped.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/HomeDashboardPage.test.tsx",
    "line": 448,
    "name": "opens Accounts at /records, not /coming-soon",
    "purpose": "opens Accounts at /records, not /coming-soon",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(mockApi).toHaveBeenCalledWith('/api/me/worth-a-look') | expect(accounts).toHaveAttribute('href', '/records'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/HomeDashboardPage.test.tsx",
    "line": 469,
    "name": "names the spouse on the Home card and hides Name someone",
    "purpose": "names the spouse on the Home card and hides Name someone",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(name).toHaveAttribute('href', '/after-i-die?person=person-shannon') | expect(screen.getByRole('link', { name: 'Name someone else' })).toHaveAttribute('href', '/after-i-die'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/HomeDashboardPage.test.tsx",
    "line": 503,
    "name": "shows a Home error when the request cannot be answered",
    "purpose": "shows a Home error when the request cannot be answered",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('alert')).toHaveTextContent('Person not found.'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/HomeDashboardPage.test.tsx",
    "line": 522,
    "name": "disables Accept on Home while the answer is in flight",
    "purpose": "disables Accept on Home while the answer is in flight",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByRole('button', { name: 'Accept' })).toBeDisabled() | expect(screen.getByRole('button', { name: 'Accept' })).toBeEnabled(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/HomeDashboardPage.test.tsx",
    "line": 544,
    "name": "opens On my death for Name Shannon and does not save",
    "purpose": "opens On my death for Name Shannon and does not save",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Opened for person-shannon')).toBeInTheDocument() | expect(mockApi).not.toHaveBeenCalledWith('/api/me/steps-in', expect.objectContaining({ method: 'PUT' }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/IfSomethingHappensPage.test.tsx",
    "line": 33,
    "name": "lists who can be filed, then what you were told, then My people",
    "purpose": "lists who can be filed, then what you were told, then My people",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(button).toHaveAttribute('href', '/step-in/file/m1') | expect(plans).toHaveAttribute('href', '/people'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/IfSomethingHappensPage.test.tsx",
    "line": 77,
    "name": "shows an unwell link only when that person can be filed as unwell",
    "purpose": "shows an unwell link only when that person can be filed as unwell",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(unwell).toHaveAttribute('href', '/step-in/file/m1?event=unwell') | expect(screen.getByRole('link', { name: 'Pat has passed' })).toHaveAttribute('href', '/step-in/file/m1'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/IfSomethingHappensPage.test.tsx",
    "line": 96,
    "name": "says the member when the person has no name",
    "purpose": "says the member when the person has no name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findAllByRole('link', { name: 'The member has passed' })).toHaveLength(2) | expect(screen.getAllByRole('link', { name: 'The member is unwell' })).toHaveLength(2). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/JournalPage.test.tsx",
    "line": 67,
    "name": "renders entries grouped by month without a share toggle",
    "purpose": "renders entries grouped by month without a share toggle",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText('Walked by the lake this morning.')).toBeInTheDocument() | expect(screen.getByText('July 2026')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/JournalPage.test.tsx",
    "line": 82,
    "name": "saves a new entry from the composer",
    "purpose": "saves a new entry from the composer",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText('Your journal is waiting')).toBeInTheDocument() | expect(mockApi).toHaveBeenCalledWith('/api/journal-entries', { method: 'POST', body: { body_text: 'A new memory.' }, }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/JournalPage.test.tsx",
    "line": 102,
    "name": "edits an entry inline",
    "purpose": "edits an entry inline",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText('Walked by the lake this morning.')).toBeInTheDocument() | expect(mockApi).toHaveBeenCalledWith('/api/journal-entries/e1', { method: 'PATCH', body: { body_text: 'Walked by the river this morning.' }, }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/JournalPage.test.tsx",
    "line": 126,
    "name": "deletes an entry after confirm",
    "purpose": "deletes an entry after confirm",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText('Walked by the lake this morning.')).toBeInTheDocument() | expect(mockApi).toHaveBeenCalledWith('/api/journal-entries/e1', { method: 'DELETE' }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/JournalPage.test.tsx",
    "line": 146,
    "name": "filters entries by search text",
    "purpose": "filters entries by search text",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText('Walked by the lake this morning.')).toBeInTheDocument() | expect(screen.getByText('The garden is finally blooming.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/JournalPage.test.tsx",
    "line": 157,
    "name": "starts dictation from Speak instead",
    "purpose": "starts dictation from Speak instead",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByRole('button', { name: 'Speak instead' })).toBeInTheDocument() | expect(dictationState.start).toHaveBeenCalledTimes(1). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/JournalPage.test.tsx",
    "line": 165,
    "name": "shows listening copy with privacy note and Stop while dictating",
    "purpose": "shows listening copy with privacy note and Stop while dictating",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText(/listening/i)).toBeInTheDocument() | expect(screen.getByText(/never audio/i)).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/JournalPage.test.tsx",
    "line": 177,
    "name": "hides Speak when Web Speech is unsupported",
    "purpose": "hides Speak when Web Speech is unsupported",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText('Your journal is waiting')).toBeInTheDocument() | expect(screen.queryByRole('button', { name: 'Speak instead' })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/JournalPage.test.tsx",
    "line": 185,
    "name": "stops dictation when saving an entry",
    "purpose": "stops dictation when saving an entry",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText('Your journal is waiting')).toBeInTheDocument() | expect(dictationState.stop).toHaveBeenCalled(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/LegalInstrumentDetailPage.test.tsx",
    "line": 182,
    "name": "renders a neutral will title without a principal, signed subtitle, and hides header facts",
    "purpose": "renders a neutral will title without a principal, signed subtitle, and hides header facts",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { level: 1, name: 'Will' })).toBeInTheDocument() | expect(screen.getByText('Will · signed March 14, 2019 · from 1 document')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/LegalInstrumentDetailPage.test.tsx",
    "line": 196,
    "name": "groups executor and beneficiaries and links people",
    "purpose": "groups executor and beneficiaries and links people",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Who it names' })).toBeInTheDocument() | expect(await screen.findByText('Executor')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/LegalInstrumentDetailPage.test.tsx",
    "line": 208,
    "name": "shows unbound slot copy instead of an attach form",
    "purpose": "shows unbound slot copy instead of an attach form",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Nora Delgado')).toBeInTheDocument() | expect(screen.getByRole('link', { name: 'Finish naming people on Last will.pdf' })).toHaveAttribute('href', '/items/item-will'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/LegalInstrumentDetailPage.test.tsx",
    "line": 255,
    "name": "shows Your will from its testator connection even when the roster fails",
    "purpose": "shows Your will from its testator connection even when the roster fails",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { level: 1, name: 'Your will' })).toBeInTheDocument() | expect(screen.getByRole('link', { name: 'Alex Quinn' })).toHaveAttribute('href', '/people/self'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/LegalInstrumentDetailPage.test.tsx",
    "line": 273,
    "name": "keeps instrument details and source names when the people roster fails",
    "purpose": "keeps instrument details and source names when the people roster fails",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { level: 1, name: 'Will' })).toBeInTheDocument() | expect(screen.getByText('March 14, 2019')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/LegalInstrumentDetailPage.test.tsx",
    "line": 285,
    "name": "shows a named-people error when item facts cannot load",
    "purpose": "shows a named-people error when item facts cannot load",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { level: 1, name: 'Will' })).toBeInTheDocument() | expect(await screen.findByText('We could not load the people named on this document.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/LegalInstrumentDetailPage.test.tsx",
    "line": 295,
    "name": "shows executor_of JSON names without waiting for the people roster",
    "purpose": "shows executor_of JSON names without waiting for the people roster",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Robert Whitfield')).toBeInTheDocument() | expect(screen.getByText('Executor')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/LegalInstrumentDetailPage.test.tsx",
    "line": 334,
    "name": "keeps executor_of JSON names when the people roster rejects",
    "purpose": "keeps executor_of JSON names when the people roster rejects",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Robert Whitfield')).toBeInTheDocument() | expect(screen.queryByText('We could not load the people named on this document.')).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/LegalInstrumentDetailPage.test.tsx",
    "line": 371,
    "name": "does not say nobody is named while source reads are in flight",
    "purpose": "does not say nobody is named while source reads are in flight",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Who it names' })).toBeInTheDocument() | expect(screen.getByText('Loading who it names…')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/LegalInstrumentDetailPage.test.tsx",
    "line": 382,
    "name": "does not apply a previous instrument named list after the route id changes",
    "purpose": "does not apply a previous instrument named list after the route id changes",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Loading who it names…')).toBeInTheDocument() | expect(await screen.findByRole('heading', { name: 'Who it names' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/LegalInstrumentDetailPage.test.tsx",
    "line": 443,
    "name": "links each unbound name affordance to its source document",
    "purpose": "links each unbound name affordance to its source document",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('link', { name: 'Finish naming people on Older will.pdf' })).toHaveAttribute('href', '/items/item-old') | expect(screen.queryByRole('link', { name: /Finish naming people on Last will.pdf/ })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/LegalInstrumentDetailPage.test.tsx",
    "line": 467,
    "name": "shows a bound person once across multiple source documents",
    "purpose": "shows a bound person once across multiple source documents",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findAllByRole('link', { name: 'Robert Whitfield' })).toHaveLength(1). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/LegalInstrumentDetailPage.test.tsx",
    "line": 488,
    "name": "preserves a beneficiary check across source items in either order: %s",
    "purpose": "preserves a beneficiary check across source items in either order: %s (parameterized: 2 cases)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findAllByRole('link', { name: 'Robin Quill' })).toHaveLength(1) | expect(screen.getByRole('link', { name: 'the document' })).toHaveAttribute('href', '/items/item-uncited'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/LegalInstrumentDetailPage.test.tsx",
    "line": 514,
    "name": "shows execution-date history when two assertions exist",
    "purpose": "shows execution-date history when two assertions exist",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'History' })).toBeInTheDocument() | expect(screen.getByText('May 12, 2014')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/LegalInstrumentDetailPage.test.tsx",
    "line": 535,
    "name": "uses the empty-facts sentence and a way into the document",
    "purpose": "uses the empty-facts sentence and a way into the document",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText(/That is everything the scan told us/)).toBeInTheDocument() | expect(screen.getByRole('link', { name: 'Open the document' })).toHaveAttribute('href', '/items/item-will'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/LegalInstrumentDetailPage.test.tsx",
    "line": 548,
    "name": "does not become a generic entity viewer",
    "purpose": "does not become a generic entity viewer",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'We could not find that document.' })).toBeInTheDocument() | expect(screen.getByRole('link', { name: 'What you have' })).toHaveAttribute('href', '/records'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/LegalInstrumentDetailPage.test.tsx",
    "line": 562,
    "name": "treats a missing entity as not found",
    "purpose": "treats a missing entity as not found",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'We could not find that document.' })).toBeInTheDocument() | expect(screen.getByRole('link', { name: 'What you have' })).toHaveAttribute('href', '/records'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/NativeAccountPage.test.tsx",
    "line": 28,
    "name": "creates an investment with sparse values through the real login transport",
    "purpose": "creates an investment with sparse values through the real login transport",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByLabelText('Institution')).toBeEnabled() | expect(sent).toEqual({ request_id: expect.any(String). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/NativeAccountPage.test.tsx",
    "line": 46,
    "name": "edits only changed fields using the loaded write token",
    "purpose": "edits only changed fields using the loaded write token",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByLabelText('Institution')).toHaveValue('Fidelity') | expect(body).toEqual({ request_id: expect.any(String). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/NativeAccountPage.test.tsx",
    "line": 63,
    "name": "retries only the read when a committed save cannot refresh the session",
    "purpose": "retries only the read when a committed save cannot refresh the session",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByLabelText('Institution')).toBeEnabled() | expect(writes).toBe(1). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/NativeAccountPage.test.tsx",
    "line": 81,
    "name": "retries an ambiguous save with the exact original request",
    "purpose": "retries an ambiguous save with the exact original request",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByLabelText('Institution')).toBeEnabled() | expect(screen.getByLabelText('Institution')).toBeDisabled(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/NativeAccountPage.test.tsx",
    "line": 105,
    "name": "does not offer a save for an unknown family",
    "purpose": "does not offer a save for an unknown family",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Account type not found' })).toBeInTheDocument() | expect(screen.queryByRole('button', { name: 'Save account' })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/NativeAccountPage.test.tsx",
    "line": 113,
    "name": "requires no field and always shows Not sure and Skip",
    "purpose": "requires no field and always shows Not sure and Skip",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByLabelText('Institution')).toBeEnabled() | expect(field).not.toBeRequired(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/NativeAccountPage.test.tsx",
    "line": 133,
    "name": "asks for no full number or balance",
    "purpose": "asks for no full number or balance",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByLabelText('Institution')).toBeEnabled() | expect(inputs.filter((input) => input.getAttribute('type') === 'radio')).toHaveLength(10). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/NativeAccountPage.test.tsx",
    "line": 150,
    "name": "writes nothing when Skip closes a sheet with entries",
    "purpose": "writes nothing when Skip closes a sheet with entries",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByLabelText('Institution')).toBeEnabled() | expect(writes).toEqual([]). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/NativeAccountPage.test.tsx",
    "line": 166,
    "name": "treats an all-empty save as nothing saved",
    "purpose": "treats an all-empty save as nothing saved",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByLabelText('Institution')).toBeEnabled() | expect(bodies).toHaveLength(1). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/NativeAccountPage.test.tsx",
    "line": 184,
    "name": "does not follow up or navigate after a fresh login of the same member",
    "purpose": "does not follow up or navigate after a fresh login of the same member",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByLabelText('Institution')).toBeEnabled() | expect(vi.mocked(fetch).mock.calls.some(([url]) => String(url) === '/api/onboarding/financial-accounts')).toBe(true). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/NativeAccountPage.test.tsx",
    "line": 212,
    "name": "offers all seven owner answers and sends the chosen word",
    "purpose": "offers all seven owner answers and sends the chosen word",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByLabelText('Institution')).toBeEnabled() | expect(screen.getByRole('radio', { name: label })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/NativeAccountPage.test.tsx",
    "line": 248,
    "name": "saves typed entries when the panel is closed with Back to big items",
    "purpose": "saves typed entries when the panel is closed with Back to big items",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByLabelText('Institution')).toBeEnabled() | expect(writes).toHaveLength(1). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/NativeAccountPage.test.tsx",
    "line": 275,
    "name": "closes without writing when the sheet is empty",
    "purpose": "closes without writing when the sheet is empty",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByLabelText('Institution')).toBeEnabled() | expect(writes).toEqual([]). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/NativeAccountPage.test.tsx",
    "line": 297,
    "name": "saves typed entries when the routed Back is pressed",
    "purpose": "saves typed entries when the routed Back is pressed",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByLabelText('Institution')).toBeEnabled() | expect(writes).toHaveLength(1). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/NativeAccountPage.test.tsx",
    "line": 329,
    "name": "shows a stored not_sure answer on the Not sure radio",
    "purpose": "shows a stored not_sure answer on the Not sure radio",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByLabelText('Institution')).toHaveValue('Fidelity') | expect(notSure).toHaveLength(2). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/NativeAccountPage.test.tsx",
    "line": 350,
    "name": "shows a stored spouse answer when the session knows no partner name",
    "purpose": "shows a stored spouse answer when the session knows no partner name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByLabelText('Institution')).toHaveValue('Fidelity') | expect(screen.queryByRole('radio', { name: /\\{Spouse\\}/ })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/NativeAccountPage.test.tsx",
    "line": 368,
    "name": "does not resend a stored not_sure answer that was not touched",
    "purpose": "does not resend a stored not_sure answer that was not touched",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByLabelText('Institution')).toHaveValue('Fidelity') | expect(bodies).toHaveLength(1). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.login-work.test.tsx",
    "line": 30,
    "name": "does not navigate or change the new setup after an old delayed setup response: %s",
    "purpose": "does not navigate or change the new setup after an old delayed setup response: %s (parameterized: 2 cases)",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(vi.mocked(fetch).mock.calls.some(([path]) => String(path) === '/api/me/setup')).toBe(true) | expect(screen.queryByText('Account home')).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.login-work.test.tsx",
    "line": 64,
    "name": "sends only the edited preferred name and its loaded revision",
    "purpose": "sends only the edited preferred name and its loaded revision",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByLabelText('Your first name')).toHaveValue('Old') | expect(body).toEqual({ expected_revision: 1, nickname: 'Dee' }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.login-work.test.tsx",
    "line": 89,
    "name": "does not continue an old name save after a fresh login of the same member",
    "purpose": "does not continue an old name save after a fresh login of the same member",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByLabelText('Your first name')).toHaveValue('Old') | expect(vi.mocked(fetch).mock.calls.some(([path]) => String(path) === '/api/me/self-name')).toBe(true). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.test.tsx",
    "line": 137,
    "name": "opens naming in preview without an onboarding row",
    "purpose": "opens naming in preview without an onboarding row",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: /Who can open your records if something happens to you\\?/i })).toBeInTheDocument() | expect(mockJSON.mock.calls.filter((call) => call[0] === '/api/me/self-name')).toHaveLength(0). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.test.tsx",
    "line": 144,
    "name": "offers the spouse while naming in preview",
    "purpose": "offers the spouse while naming in preview",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('button', { name: 'Name Shannon' })).toBeInTheDocument() | expect(screen.getByRole('button', { name: 'Name someone else' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.test.tsx",
    "line": 166,
    "name": "shows the copy link when preview naming does not send email",
    "purpose": "shows the copy link when preview naming does not send email",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('No email was sent.')).toBeInTheDocument() | expect(writeText).toHaveBeenCalledWith('https://app.test/signup'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.test.tsx",
    "line": 215,
    "name": "leaves the member out of the onboarding picker",
    "purpose": "leaves the member out of the onboarding picker",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('option', { name: /Alex Kim/ })).toBeInTheDocument() | expect(screen.queryByRole('option', { name: /Onboarding Member/ })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.test.tsx",
    "line": 271,
    "name": "keeps the legal name empty after the member clears the display-name prefill",
    "purpose": "keeps the legal name empty after the member clears the display-name prefill",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(container.innerHTML).not.toMatch(/purple|from-slate-900/) | expect(legalName).toHaveValue('Onboarding'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.test.tsx",
    "line": 284,
    "name": "saves names on who-for and keeps the optional wizard open",
    "purpose": "saves names on who-for and keeps the optional wizard open",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: /Who can open your records if something happens to you\\?/i })).toBeInTheDocument() | expect(mockJSON.mock.calls.filter((call) => call[0] === '/api/me/self-name')).toHaveLength(1). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.test.tsx",
    "line": 304,
    "name": "asks nothing about the partner in step 1",
    "purpose": "asks nothing about the partner in step 1",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText('Your partner is added in the next step.')).toBeInTheDocument() | expect(screen.queryByLabelText(/email(?: address)? \\(optional\\)/i)).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.test.tsx",
    "line": 316,
    "name": "never asks for the partner email twice",
    "purpose": "never asks for the partner email twice",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(emailFields()).toHaveLength(1) | expect(emailFields()).toHaveLength(1). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.test.tsx",
    "line": 329,
    "name": "shows the invite link before the rest of setup when mail is not sent",
    "purpose": "shows the invite link before the rest of setup when mail is not sent",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByLabelText(/Shannon Whitfield's email \\(optional\\)/)).toBeInTheDocument() | expect(await screen.findByRole('heading', { name: 'Share this link' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.test.tsx",
    "line": 360,
    "name": "continues directly to steps-in when the invite email was sent",
    "purpose": "continues directly to steps-in when the invite email was sent",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: /Who can open your records if something happens to you\\?/i })).toBeInTheDocument() | expect(screen.getByText('Nothing opens until Shannon Whitfield accepts.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.test.tsx",
    "line": 385,
    "name": "names the invitee on step 2 after the invite is sent",
    "purpose": "names the invitee on step 2 after the invite is sent",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Nothing opens until Paul Lane accepts.')).toBeInTheDocument() | expect(screen.queryByText('Nothing opens until the invite is accepted.')).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.test.tsx",
    "line": 399,
    "name": "creates no invite until the partner is saved",
    "purpose": "creates no invite until the partner is saved",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(mockJSON.mock.calls.filter((call) => call[0] === '/api/spouse-invite')).toHaveLength(0) | expect(screen.queryByTestId('onboarding-invite-link')).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.test.tsx",
    "line": 415,
    "name": "saves the partner without inviting for $action with email \"$email\"",
    "purpose": "saves the partner without inviting for $action with email \"$email\" (parameterized: 2 cases)",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: /Who can open your records if something happens to you\\?/i })).toBeInTheDocument() | expect(mockJSON.mock.calls.some((call) => call[0] === '/api/spouse-invite')).toBe(false). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.test.tsx",
    "line": 434,
    "name": "shows Fred's removed-person sentence beside Restore",
    "purpose": "shows Fred's removed-person sentence beside Restore",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(alert).toHaveTextContent(line) | expect(screen.getByRole('link', { name: 'Restore' })).toHaveAttribute('href', '/people/person-ada'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.test.tsx",
    "line": 454,
    "name": "keeps the typed names and shows an error when the spouse invite fails",
    "purpose": "keeps the typed names and shows an error when the spouse invite fails",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('This invitation could not be sent.')).toBeInTheDocument() | expect(await screen.findByRole('heading', { name: 'Share this link' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.test.tsx",
    "line": 482,
    "name": "names who steps in through the shared control and the same save",
    "purpose": "names who steps in through the shared control and the same save",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: /Who can open your records if something happens to you\\?/i })).toBeInTheDocument() | expect(mockJSON.mock.calls.filter((call) => call[0] === '/api/me/self-name')).toHaveLength(0). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.test.tsx",
    "line": 524,
    "name": "stays on who steps in when the save is refused",
    "purpose": "stays on who steps in when the save is refused",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: /Who can open your records if something happens to you\\?/i })).toBeInTheDocument() | expect(await screen.findByText('Could not save who steps in.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.test.tsx",
    "line": 555,
    "name": "skips who steps in without creating a person",
    "purpose": "skips who steps in without creating a person",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: /Who can open your records if something happens to you\\?/i })).toBeInTheDocument() | expect(await screen.findByRole('heading', { name: 'Your big items' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.test.tsx",
    "line": 565,
    "name": "lands on Home when Finish later is chosen after names were saved",
    "purpose": "lands on Home when Finish later is chosen after names were saved",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: /Who can open your records if something happens to you\\?/i })).toBeInTheDocument() | expect(mockJSON.mock.calls.filter((call) => call[0] === '/api/me/self-name')).toHaveLength(1). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.test.tsx",
    "line": 584,
    "name": "opens guided import for the categories that were checked after names were saved",
    "purpose": "opens guided import for the categories that were checked after names were saved",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: /Who can open your records if something happens to you\\?/i })).toBeInTheDocument() | expect(mockJSON.mock.calls.filter((call) => call[0] === '/api/me/self-name')).toHaveLength(0). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.test.tsx",
    "line": 601,
    "name": "gates another invite on an incoming invitation and accepts only after explicit knowledge check",
    "purpose": "gates another invite on an incoming invitation and accepts only after explicit knowledge check",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByTestId('onboarding-invite-flow')).toHaveTextContent('Amy Whitfield invited you') | expect(mockJSON).not.toHaveBeenCalledWith('/api/spouse-invites/incoming-amy/accept', expect.anything(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.test.tsx",
    "line": 622,
    "name": "does not auto-accept a crossed invite whose knowledge proof is already passed",
    "purpose": "does not auto-accept a crossed invite whose knowledge proof is already passed",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('button', { name: \"Accept Amy Whitfield's invitation\" })).toBeInTheDocument() | expect(mockJSON.mock.calls.some(([path]) => path === '/api/spouse-invites/incoming-amy/accept')).toBe(false). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.test.tsx",
    "line": 643,
    "name": "tells the member to try again when the crossed invite refusal produces no sentence",
    "purpose": "tells the member to try again when the crossed invite refusal produces no sentence",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('button', { name: \"Accept Amy Whitfield's invitation\" })).toBeInTheDocument() | expect(await within(flow).findByRole('alert')).toHaveTextContent( 'Try again. We could not confirm the note about stepping in yet.', ). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.test.tsx",
    "line": 678,
    "name": "shows duplicate outgoing actions and does not render an invitation URL as text",
    "purpose": "shows duplicate outgoing actions and does not render an invitation URL as text",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByTestId('onboarding-invite-link')).toHaveAttribute('href', `${window.location.origin}/signup?invite=private-token`) | expect(screen.queryByText(/private-token/)).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.test.tsx",
    "line": 692,
    "name": "resumes at steps-in when who-for is already in session",
    "purpose": "resumes at steps-in when who-for is already in session",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: /Who can open your records if something happens to you\\?/i })).toBeInTheDocument() | expect(mockJSON.mock.calls.filter((call) => call[0] === '/api/me/self-name')).toHaveLength(0). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.test.tsx",
    "line": 701,
    "name": "clears a locked incoming flow after verification and refreshes the session",
    "purpose": "clears a locked incoming flow after verification and refreshes the session",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.queryByTestId('onboarding-invite-flow')).not.toBeInTheDocument() | expect(authState.refreshMe).toHaveBeenCalled(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.test.tsx",
    "line": 726,
    "name": "shows no progress readout on any onboarding step",
    "purpose": "shows no progress readout on any onboarding step",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(container.querySelector('ol[aria-label=\"Setup progress\"]')).toBeNull() | expect(container.querySelector('progress')).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.test.tsx",
    "line": 756,
    "name": "asks only for the first name as a required self field",
    "purpose": "asks only for the first name as a required self field",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(required).toHaveLength(1) | expect(required[0]).toHaveAccessibleName(/Your first name/). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.test.tsx",
    "line": 768,
    "name": "shows the About you fields and both choices without asking about the partner",
    "purpose": "shows the About you fields and both choices without asking about the partner",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByLabelText(new RegExp(`^${label}`))).toBeInTheDocument() | expect(screen.getByRole('radio', { name: 'Just me' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.test.tsx",
    "line": 781,
    "name": "offers Finish later on every step and leaves without a warning",
    "purpose": "offers Finish later on every step and leaves without a warning",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByRole('button', { name: 'Finish later' })).toBeInTheDocument() | expect(await screen.findByText('Account home')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.test.tsx",
    "line": 794,
    "name": "carries the saved revision to import and does not save an unchanged name again",
    "purpose": "carries the saved revision to import and does not save an unchanged name again",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: /Who can open your records if something happens to you\\?/i })).toBeInTheDocument() | expect(mockJSON.mock.calls.some((call) => call[0] === '/api/me/setup' && (call[1] as { body?: { categories?: string[] } } | u. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.test.tsx",
    "line": 813,
    "name": "does not replace later setup typing with a deferred acknowledgment",
    "purpose": "does not replace later setup typing with a deferred acknowledgment",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByLabelText('Your first name')).toBeDisabled() | expect(screen.getByLabelText('Your first name')).toHaveValue('Ada'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/OnboardingPage.test.tsx",
    "line": 829,
    "name": "keeps a failed name save from falling back to the legacy writer after refresh",
    "purpose": "keeps a failed name save from falling back to the legacy writer after refresh",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('alert')).toHaveTextContent('stale name save') | expect(screen.getByLabelText('Your first name')).toHaveValue('Ada'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PeoplePage.test.tsx",
    "line": 80,
    "name": "shows the year only when the person has passed, and sorts passed people last",
    "purpose": "shows the year only when the person has passed, and sorts passed people last",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText(/died 2019/)).toBeInTheDocument() | expect(screen.queryByText(/died 1998/)).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PeoplePage.test.tsx",
    "line": 99,
    "name": "marks a verified death Remembered without a year (264)",
    "purpose": "marks a verified death Remembered without a year (264)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Remembered')).toBeInTheDocument() | expect(screen.queryByText(/died \\d{4}/)).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PeoplePage.test.tsx",
    "line": 128,
    "name": "shows the Pending chip when the roster says the invite is pending",
    "purpose": "shows the Pending chip when the roster says the invite is pending",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findAllByText('Pending')).toHaveLength(2) | expect(screen.getAllByText('Your spouse').length).toBeGreaterThan(0). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PeoplePage.test.tsx",
    "line": 150,
    "name": "shows a lone non-viewer person created from a record",
    "purpose": "shows a lone non-viewer person created from a record",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('button', { name: /David Alan Matlock/ })).toBeInTheDocument() | expect(screen.queryByRole('link', { name: 'Add someone' })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PeoplePage.test.tsx",
    "line": 169,
    "name": "lists You and finds that person by name without household chrome",
    "purpose": "lists You and finds that person by name without household chrome",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('button', { name: /Everyone 1/ })).toBeInTheDocument() | expect(screen.getByRole('heading', { name: 'David Alan Matlock' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PeoplePage.test.tsx",
    "line": 203,
    "name": "opens Mike from the shown name when the stored first name is Michael",
    "purpose": "opens Mike from the shown name when the stored first name is Michael",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('link', { name: /Open Mike/ })).toHaveAttribute('href', '/people/mike') | expect(screen.queryByRole('link', { name: /Open Michael/ })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PeoplePage.test.tsx",
    "line": 225,
    "name": "shows a living spouse under Spouse / partner without household words or a rolodex",
    "purpose": "shows a living spouse under Spouse / partner without household words or a rolodex",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Helen Walk' })).toBeInTheDocument() | expect(screen.getByRole('heading', { name: 'Spouse / partner' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PeoplePage.test.tsx",
    "line": 278,
    "name": "does not synthesize a fake pending-invite email card",
    "purpose": "does not synthesize a fake pending-invite email card",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('button', { name: /Everyone 1/ })).toBeInTheDocument() | expect(screen.getByText('You', { exact: true })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PeoplePage.test.tsx",
    "line": 312,
    "name": "lists the minted invite person as a real openable row",
    "purpose": "lists the minted invite person as a real openable row",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('button', { name: /Helen/ })).toBeInTheDocument() | expect(screen.getByRole('link', { name: /Open Helen/ })).toHaveAttribute('href', '/people/ent-helen'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PeoplePage.test.tsx",
    "line": 355,
    "name": "does not show a stale pending row after the spouse is accepted",
    "purpose": "does not show a stale pending row after the spouse is accepted",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findAllByRole('heading', { name: 'Helen Walk' })).toHaveLength(1) | expect(screen.queryByText('Spouse invite pending')).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PeoplePage.test.tsx",
    "line": 383,
    "name": "does not invent a household section from a pending invite alone",
    "purpose": "does not invent a household section from a pending invite alone",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('button', { name: /Helen Walk/ })).toBeInTheDocument() | expect(screen.getByRole('heading', { name: 'Fred Walk' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PeoplePage.test.tsx",
    "line": 413,
    "name": "does not render two You cards for the same self person",
    "purpose": "does not render two You cards for the same self person",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findAllByRole('heading', { name: 'Fred Walk' })).toHaveLength(1) | expect(screen.getAllByText('You', { exact: true })).toHaveLength(1). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PeoplePage.test.tsx",
    "line": 453,
    "name": "shows onboarding cards for an empty roster",
    "purpose": "shows onboarding cards for an empty roster",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect((await screen.findAllByRole('link', { name: 'Add someone' }))).toHaveLength(3) | expect(copy).not.toMatch(/\\b(he|she|her|his|they|them|their|herself). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PeoplePage.test.tsx",
    "line": 503,
    "name": "shows uncategorized people in the Everyone remainder list",
    "purpose": "shows uncategorized people in the Everyone remainder list",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Everyone else' })).toBeInTheDocument() | expect(screen.getByRole('heading', { name: 'Spouse / partner' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PeoplePage.test.tsx",
    "line": 518,
    "name": "hides the remainder list when a named group is selected",
    "purpose": "hides the remainder list when a named group is selected",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.queryByRole('heading', { name: 'Everyone else' })).not.toBeInTheDocument() | expect(screen.queryByRole('heading', { name: 'Spouse / partner' })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PeoplePage.test.tsx",
    "line": 541,
    "name": "shows Set up sharing with no status for an unset person, and Ready after setup",
    "purpose": "shows Set up sharing with no status for an unset person, and Ready after setup",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('button', { name: 'Set up sharing' })).toBeInTheDocument() | expect(screen.queryByText('Ready')).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PeoplePage.test.tsx",
    "line": 570,
    "name": "shows who-steps-in status labels without inventing designate copy",
    "purpose": "shows who-steps-in status labels without inventing designate copy",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect((await screen.findAllByText('Died')).length).toBeGreaterThan(0) | expect(screen.queryByText(/designate/i)).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PeoplePage.test.tsx",
    "line": 593,
    "name": "names Robert without a pronoun when a current role outlives him",
    "purpose": "names Robert without a pronoun when a current role outlives him",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(line.textContent).toContain(\"Robert Whitfield's record shows a death in 2019\") | expect(line.textContent ?? '').not.toMatch(/\\b(his|he|her|she). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PeoplePage.test.tsx",
    "line": 615,
    "name": "says how many documents and roles in sentences and hides a zero",
    "purpose": "says how many documents and roles in sentences and hides a zero",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('2 documents you can open.')).toBeInTheDocument() | expect(screen.getByText('One role in your documents.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PeoplePage.test.tsx",
    "line": 647,
    "name": "does not link If something happens to you",
    "purpose": "does not link If something happens to you",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'My people' })).toBeInTheDocument() | expect(screen.queryByRole('link', { name: 'Someone has passed' })).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PeoplePage.test.tsx",
    "line": 661,
    "name": "shows Not asked yet on the roster when the invitation has not been sent",
    "purpose": "shows Not asked yet on the roster when the invitation has not been sent",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findAllByText('Not asked yet')).toHaveLength(2) | expect(screen.queryByText('Asked, waiting')).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PeoplePage.test.tsx",
    "line": 695,
    "name": "lists a removed person on an empty roster and restores them",
    "purpose": "lists a removed person on an empty roster and restores them",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Removed people' })).toBeInTheDocument() | expect(screen.getByText('You can restore Rosa Stone until March 31, 2026.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PeoplePage.test.tsx",
    "line": 718,
    "name": "hides the Removed section when nobody is removed",
    "purpose": "hides the Removed section when nobody is removed",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect((await screen.findAllByText('Shannon Whitfield')).length).toBeGreaterThan(0) | expect(screen.queryByRole('heading', { name: 'Removed people' })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 140,
    "name": "does not show an In your household badge",
    "purpose": "does not show an In your household badge",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Shannon Whitfield' })).toBeInTheDocument() | expect(screen.getByText('Shannon can sign in')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 158,
    "name": "labels preferred name in member words",
    "purpose": "labels preferred name in member words",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Preferred name')).toBeInTheDocument() | expect(screen.getByText('Shan')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 189,
    "name": "links person-detail bindings to item review",
    "purpose": "links person-detail bindings to item review",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('link', { name: 'Cedar Street deed' })).toHaveAttribute('href', '/items/item-deed'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 201,
    "name": "cites source roles with the matching document, not the whole packet",
    "purpose": "cites source roles with the matching document, not the whole packet",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(role).toHaveAttribute('href', '/items/item-packet?document=doc-trust') | expect(screen.getByRole('link', { name: 'Quill family documents' })).toHaveAttribute( 'href', '/items/item-packet?document=doc-trust', ). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 241,
    "name": "shows a testator as signer only, from the server role and its document",
    "purpose": "shows a testator as signer only, from the server role and its document",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(role).toHaveAttribute('href', '/items/item-will?document=doc-will') | expect(screen.queryByRole('link', { name: /Executor/ })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 291,
    "name": "lists each packet document once and keeps the document link",
    "purpose": "lists each packet document once and keeps the document link",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('link', { name: 'Family documents' })).toHaveAttribute( 'href', '/items/item-packet?document=doc-will', ) | expect(screen.getAllByRole('link', { name: 'Family documents' })).toHaveLength(1). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 335,
    "name": "shows no raw key, JSON, or file name on What we know",
    "purpose": "shows no raw key, JSON, or file name on What we know",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Shannon Whitfield' })).toBeInTheDocument() | expect(screen.queryByText('secret_token')).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 395,
    "name": "uses the server shown name in the connection picker",
    "purpose": "uses the server shown name in the connection picker",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('option', { name: 'Michael Whitfield' })).toBeInTheDocument() | expect(screen.getByRole('option', { name: 'Theodore' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 436,
    "name": "uses the shown name as the heading and keeps the full legal name as a fact",
    "purpose": "uses the shown name as the heading and keeps the full legal name as a fact",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Michael Whitfield' })).toBeInTheDocument() | expect(screen.queryByRole('heading', { name: 'Michael James Whitfield' })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 466,
    "name": "title-cases an unpinned all-caps legal name and keeps a pinned one",
    "purpose": "title-cases an unpinned all-caps legal name and keeps a pinned one",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Pat' })).toBeInTheDocument() | expect(screen.getAllByText('Rosa')).toHaveLength(1). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 501,
    "name": "lowercases particles on an unpinned full legal name",
    "purpose": "lowercases particles on an unpinned full legal name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Pat' })).toBeInTheDocument() | expect(screen.getByText('Maria de la Cruz')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 528,
    "name": "keeps a mixed-case title on an unpinned full legal name",
    "purpose": "keeps a mixed-case title on an unpinned full legal name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Pat' })).toBeInTheDocument() | expect(screen.getByText('Dr. MARIA DE LA CRUZ')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 555,
    "name": "renders assertion relations, including read-only non-person targets",
    "purpose": "renders assertion relations, including read-only non-person targets",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('link', { name: 'Sibling of Frank Delgado' })).toHaveAttribute('href', '/people/person-frank') | expect(screen.getByText('Owns 14 Cedar Street')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 599,
    "name": "shows an in-card error when removing a connection fails",
    "purpose": "shows an in-card error when removing a connection fails",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('alert')).toHaveTextContent('document roles cannot be removed this way'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 629,
    "name": "removes a retracted connection without waiting for the people roster",
    "purpose": "removes a retracted connection without waiting for the people roster",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('link', { name: 'Sibling of Frank Delgado' })).toBeInTheDocument() | expect(screen.queryByRole('link', { name: 'Sibling of Frank Delgado' })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 656,
    "name": "keeps an undone connection when a slower retract reload later settles",
    "purpose": "keeps an undone connection when a slower retract reload later settles",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('link', { name: 'Sibling of Frank Delgado' })).toBeInTheDocument() | expect(screen.queryByRole('link', { name: 'Sibling of Frank Delgado' })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 695,
    "name": "applies an undone inverse from entity GET without waiting for the people roster",
    "purpose": "applies an undone inverse from entity GET without waiting for the people roster",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('link', { name: 'Child of Patricia Liu' })).toBeInTheDocument() | expect(screen.queryByRole('link', { name: 'Child of Patricia Liu' })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 769,
    "name": "applies an undone inverse when the people roster rejects",
    "purpose": "applies an undone inverse when the people roster rejects",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('link', { name: 'Child of Patricia Liu' })).toBeInTheDocument() | expect(screen.queryByRole('link', { name: 'Child of Patricia Liu' })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 839,
    "name": "keeps Undo when essential entity refresh fails after restoring an inverse",
    "purpose": "keeps Undo when essential entity refresh fails after restoring an inverse",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('link', { name: 'Child of Patricia Liu' })).toBeInTheDocument() | expect(screen.queryByRole('link', { name: 'Child of Patricia Liu' })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 910,
    "name": "does not apply a previous person payload after the route id changes",
    "purpose": "does not apply a previous person payload after the route id changes",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText('Loading this person…')).toBeInTheDocument() | expect(await screen.findByRole('heading', { name: 'Helen Kessler' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 953,
    "name": "undoes a parent_of removal from the parent page without reversing it",
    "purpose": "undoes a parent_of removal from the parent page without reversing it",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(undoParent).toBeEnabled() | expect(mockAdd).toHaveBeenCalledWith('person-shannon', 'person-frank', 'parent_of', undefined). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 1000,
    "name": "undoes a parent_of removal from the child page as parent→child",
    "purpose": "undoes a parent_of removal from the child page as parent→child",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(undoChild).toBeEnabled() | expect(mockAdd).toHaveBeenCalledWith('person-frank', 'person-shannon', 'parent_of', undefined). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 1059,
    "name": "uses the newer legal name through the name sheet",
    "purpose": "uses the newer legal name through the name sheet",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(mockSaveName).toHaveBeenCalledWith( 'person-shannon', { first_name: 'Shannon', middle_name: 'Lynn', last_name: 'Whitfield', name_suffix: '', nickname: 'Shan' }, 4, ). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 1097,
    "name": "parses an all-caps newer legal name with the document parser",
    "purpose": "parses an all-caps newer legal name with the document parser",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(mockSaveName).toHaveBeenCalledWith( 'person-shannon', { first_name: 'Maria', middle_name: '', last_name: 'de la Cruz', name_suffix: '', nickname: '' }, 4, ). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 1135,
    "name": "keeps Betty on the page when Alice’s save finishes after navigation",
    "purpose": "keeps Betty on the page when Alice’s save finishes after navigation",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Alice Lee' })).toBeInTheDocument() | expect(await screen.findByLabelText('First name')).toHaveValue('Alice'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 1202,
    "name": "keeps the name the member entered and the card goes away",
    "purpose": "keeps the name the member entered and the card goes away",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(mockKeepName).toHaveBeenCalledWith('person-shannon', 'fact-legal', 4) | expect(screen.queryByText('A newer value is waiting for you')).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 1240,
    "name": "a name key never calls choose",
    "purpose": "a name key never calls choose",
    "classification": "behavior",
    "restates": "no",
    "reason": "Invokes keepOrPinFact with supplied callbacks and verifies the correct callback is used for a name key; this is helper input/output interaction behavior, not private source structure.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 1252,
    "name": "hides Keep this value on a document name and keeps it for another fact",
    "purpose": "hides Keep this value on a document name and keeps it for another fact",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('button', { name: 'Use the newer value' })).toBeInTheDocument() | expect(screen.queryByRole('button', { name: 'Keep this value' })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 1329,
    "name": "keeps an itemless winner by the displayed row id",
    "purpose": "keeps an itemless winner by the displayed row id",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(mockKeepName).toHaveBeenCalledWith('person-shannon', 'fact-itemless-keep', 4) | expect(mockPin).not.toHaveBeenCalled(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 1363,
    "name": "lists each document name as the string that document writes",
    "purpose": "lists each document name as the string that document writes",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(Array.from(list?.querySelectorAll('li') ?? []).map((item) => item.textContent)).toEqual([ 'Dr. Anita Rao', 'Anita Patel', 'evan r. reed', ]). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 1470,
    "name": "does not show a newer-value card when the document matches the saved name",
    "purpose": "does not show a newer-value card when the document matches the saved name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Full legal name')).toBeInTheDocument() | expect(screen.queryByText('A newer value is waiting for you')).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 1529,
    "name": "lets a graph person be set up and then shows Ready with no access-identity words",
    "purpose": "lets a graph person be set up and then shows Ready with no access-identity words",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('button', { name: 'Set up sharing' })).toBeInTheDocument() | expect(screen.queryByText('Ready')).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 1565,
    "name": "shows who-steps-in status on the person and never designate copy",
    "purpose": "shows who-steps-in status on the person and never designate copy",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Asked, waiting')).toBeInTheDocument() | expect(screen.queryByText(/designate/i)).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 1596,
    "name": "says the invitation has not been sent",
    "purpose": "says the invitation has not been sent",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText(\"Nora Chen is named, but Persynl hasn't sent the invitation yet.\")).toBeInTheDocument() | expect(screen.queryByText('Asked, waiting')).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 1628,
    "name": "shows no not-sent line and no chip when the person has no designation",
    "purpose": "shows no not-sent line and no chip when the person has no designation",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Nora Chen' })).toBeInTheDocument() | expect(screen.queryByText(/hasn't sent the invitation yet/)).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 1659,
    "name": "uses Someone when the not-sent name is blank or a pronoun",
    "purpose": "uses Someone when the not-sent name is blank or a pronoun",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText(\"Someone is named, but Persynl hasn't sent the invitation yet.\")).toBeInTheDocument() | expect(screen.getByText(\"Someone is named, but Persynl hasn't sent the invitation yet.\")).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 1670,
    "name": "shows the waiting label instead of the not-sent line for a pending spouse invite",
    "purpose": "shows the waiting label instead of the not-sent line for a pending spouse invite",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText('Waiting for Michael Quinn to accept your invite')).toBeInTheDocument() | expect(screen.queryByText(/hasn't sent the invitation yet/)).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 1681,
    "name": "shows the SQL label and hides a blank label",
    "purpose": "shows the SQL label and hides a blank label",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText('Expired')).toBeInTheDocument() | expect(screen.queryByText('Asked, waiting')).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 1694,
    "name": "ignores stale sharing setup %s completion after navigation",
    "purpose": "ignores stale sharing setup %s completion after navigation (parameterized: 3 cases)",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(mockPeople).toHaveBeenCalledTimes(2) | expect(await screen.findByText('Alice relationship')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 1735,
    "name": "resets setup busy state when the same person is refreshed",
    "purpose": "resets setup busy state when the same person is refreshed",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(mockEntity).toHaveBeenCalledTimes(2) | expect(screen.getByRole('button', { name: 'Set up sharing' })).toBeEnabled(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 1756,
    "name": "shows a document label and opens Add a name when no name is saved",
    "purpose": "shows a document label and opens Add a name when no name is saved",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: \"Someone on Michael's will\" })).toBeInTheDocument() | expect(screen.queryByText('Person to review')).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 1809,
    "name": "opens an invite-only spouse page without private facts",
    "purpose": "opens an invite-only spouse page without private facts",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Helen Walk' })).toBeInTheDocument() | expect(screen.getByText('Your spouse')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 1890,
    "name": "sends the member words exactly",
    "purpose": "sends the member words exactly",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('How is someone connected to Shannon Whitfield?')).toBeInTheDocument() | expect(screen.queryByText('How is Someone connected to Shannon Whitfield?')).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 1922,
    "name": "leaves a pending invite out of Add a connection",
    "purpose": "leaves a pending invite out of Add a connection",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(chooser).toHaveTextContent('Helen Kessler') | expect(chooser).not.toHaveTextContent('Pat Pending'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 1974,
    "name": "hides the control for someone who can sign in",
    "purpose": "hides the control for someone who can sign in",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Use If something happens for someone who can sign in.')).toBeInTheDocument() | expect(screen.queryByRole('radio', { name: 'Has passed' })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 1981,
    "name": "hides the control for a spouse invite",
    "purpose": "hides the control for a spouse invite",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Use If something happens for someone who can sign in.')).toBeInTheDocument() | expect(screen.queryByRole('radio', { name: 'Has passed' })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 1994,
    "name": "hides the control for You",
    "purpose": "hides the control for You",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Dave Whitfield' })).toBeInTheDocument() | expect(screen.queryByRole('radio', { name: 'Has passed' })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 2002,
    "name": "hides the control for a spouse-link page",
    "purpose": "hides the control for a spouse-link page",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Helen Walk' })).toBeInTheDocument() | expect(screen.queryByRole('radio', { name: 'Has passed' })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 2023,
    "name": "sends the year when Has passed is saved",
    "purpose": "sends the year when Has passed is saved",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(mockPassed).toHaveBeenCalledWith('person-robert', true, 2019). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 2031,
    "name": "sends a null year when Living is saved",
    "purpose": "sends a null year when Living is saved",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(mockPassed).toHaveBeenCalledWith('person-robert', false, null). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 2038,
    "name": "does not save a junk year as no year",
    "purpose": "does not save a junk year as no year",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Enter a year from 1800 through this year.')).toBeInTheDocument() | expect(mockPassed).not.toHaveBeenCalled(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 2047,
    "name": "names the page from the entity while the roster is still loading",
    "purpose": "names the page from the entity while the roster is still loading",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { level: 1, name: 'Bob Whitfield' })).toBeInTheDocument() | expect(screen.queryByText('Relationship not set')).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 2083,
    "name": "loads the roster once under StrictMode",
    "purpose": "loads the roster once under StrictMode",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { level: 1, name: 'Bob Whitfield' })).toBeInTheDocument() | expect(peopleCalls).toHaveLength(1). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 2112,
    "name": "K1d shows the roster from after Remove",
    "purpose": "K1d shows the roster from after Remove",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(resolvers).toHaveLength(1) | expect(await screen.findByRole('button', { name: 'Remove Child of Dave Whitfield' })).toBeEnabled(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 2214,
    "name": "confirms a removable person, then offers Undo",
    "purpose": "confirms a removable person, then offers Undo",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByRole('heading', { name: 'Remove Shannon Whitfield from your people?' })).toBeInTheDocument() | expect(screen.getByText('Shannon Whitfield will leave your people. Documents that name Shannon Whitfield keep the name. You can restore Shannon Wh. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 2252,
    "name": "lists blockers and does not ask to confirm",
    "purpose": "lists blockers and does not ask to confirm",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByRole('heading', { name: 'Before you can remove Shannon Whitfield' })).toBeInTheDocument() | expect(screen.getByRole('link', { name: 'Shannon Whitfield is named to step in. Change who steps in first.' })).toHaveAttribute('href', '/if-somethin. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 2275,
    "name": "explains a linked spouse with no remove action",
    "purpose": "explains a linked spouse with no remove action",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText(\"Shannon Whitfield is your linked spouse, so Shannon Whitfield can't be removed.\")).toBeInTheDocument() | expect(screen.queryByRole('button', { name: 'Remove Shannon Whitfield' })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 2293,
    "name": "shows nothing for You",
    "purpose": "shows nothing for You",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('button', { name: 'Edit name' })).toBeInTheDocument() | expect(vi.mocked(authedJSON).mock.calls.some((call) => String(call[0]).endsWith('/removal'))).toBe(true). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 2315,
    "name": "keeps a closed person without Restore or edit controls",
    "purpose": "keeps a closed person without Restore or edit controls",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Shannon Whitfield was removed from your people on January 1, 2026.')).toBeInTheDocument() | expect(screen.queryByRole('button', { name: 'Restore' })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 2341,
    "name": "offers Restore and hides edit controls while the window is open",
    "purpose": "offers Restore and hides edit controls while the window is open",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('button', { name: 'Restore' })).toBeInTheDocument() | expect(screen.getByText('Shannon Whitfield was removed from your people on March 1, 2026. You can restore Shannon Whitfield until March 31, 2026.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 2367,
    "name": "reloads the blocker list when remove races into a new blocker",
    "purpose": "reloads the blocker list when remove races into a new blocker",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Before you can remove Shannon Whitfield' })).toBeInTheDocument() | expect(screen.getByRole('link', { name: 'You share documents with Shannon Whitfield. Stop sharing them first.' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 2399,
    "name": "does not paint a remove that finishes after the member opens someone else",
    "purpose": "does not paint a remove that finishes after the member opens someone else",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Betty Ng' })).toBeInTheDocument() | expect(await screen.findByRole('button', { name: 'Remove Betty Ng' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 2463,
    "name": "does not paint a blocked remove that finishes after the member opens someone else",
    "purpose": "does not paint a blocked remove that finishes after the member opens someone else",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Betty Ng' })).toBeInTheDocument() | expect(screen.getByRole('heading', { name: 'Betty Ng' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/PersonDetailPage.test.tsx",
    "line": 2534,
    "name": "does not paint a restore that finishes after the member opens someone else",
    "purpose": "does not paint a restore that finishes after the member opens someone else",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Betty Ng' })).toBeInTheDocument() | expect(screen.getByRole('heading', { name: 'Betty Ng' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.inviteRecovery.test.tsx",
    "line": 92,
    "name": "views one dismissed invitation, keeps the other dismissed, and does not accept",
    "purpose": "views one dismissed invitation, keeps the other dismissed, and does not accept",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(chooser).toHaveTextContent('Ada Partner') | expect(chooser).toHaveTextContent('Blair Partner'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.inviteRecovery.test.tsx",
    "line": 116,
    "name": "stays on Profile when the invitation is gone after refresh",
    "purpose": "stays on Profile when the invitation is gone after refresh",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Profile settings' })).toBeInTheDocument() | expect(await screen.findByText('Your invitation status changed. Refresh it before trying again.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.login-work.test.tsx",
    "line": 32,
    "name": "retries only the read after an acknowledged name save fails to refresh",
    "purpose": "retries only the read after an acknowledged name save fails to refresh",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByLabelText('Your first name')).toHaveValue('Old') | expect(writes).toBe(1). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.login-work.test.tsx",
    "line": 59,
    "name": "does not apply an old name response after the same member signs in again",
    "purpose": "does not apply an old name response after the same member signs in again",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(vi.mocked(fetch).mock.calls.some(([url]) => String(url) === '/api/me')).toBe(true) | expect(screen.getByLabelText('Your first name')).toHaveValue('Old'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.test.tsx",
    "line": 127,
    "name": "lets a provisioned inviter create an invite when there is no spouse and no pending",
    "purpose": "lets a provisioned inviter create an invite when there is no spouse and no pending",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByTestId('profile-spouse-invite')).toBeInTheDocument() | expect(screen.getByText('A login is created and joined with you. You stay solo until the invite is accepted.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.test.tsx",
    "line": 164,
    "name": "does not send an invite when the last name is missing",
    "purpose": "does not send an invite when the last name is missing",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByRole('alert')).toHaveTextContent('Add a first and last name.') | expect(authedJSON).not.toHaveBeenCalled(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.test.tsx",
    "line": 174,
    "name": "does not offer create when an active spouse is already linked",
    "purpose": "does not offer create when an active spouse is already linked",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.queryByTestId('profile-spouse-invite')).not.toBeInTheDocument() | expect(screen.queryByRole('button', { name: 'Create invite' })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.test.tsx",
    "line": 189,
    "name": "shows a pending invite from GET /api/me without claiming email",
    "purpose": "shows a pending invite from GET /api/me without claiming email",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText('Waiting for ada@example.com to create a login')).toBeInTheDocument() | expect(screen.queryByRole('button', { name: 'Create invite' })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.test.tsx",
    "line": 208,
    "name": "keeps %s cancellation available after reopening Profile",
    "purpose": "keeps %s cancellation available after reopening Profile (parameterized: 2 cases)",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.queryByRole('button', { name: 'Resend' }) !== null).toBe(status === 'pending') | expect(authedJSON).toHaveBeenCalledWith('/api/spouse-invites/persisted/cancel', { method: 'POST' }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.test.tsx",
    "line": 222,
    "name": "retains declined history and permits another email after the pair cap",
    "purpose": "retains declined history and permits another email after the pair cap",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText('Declined: ada@example.com')).toBeInTheDocument() | expect(screen.getByRole('button', { name: 'Create invite' })).toBeDisabled(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.test.tsx",
    "line": 235,
    "name": "does not fabricate pending status after creation refresh reports a terminal state",
    "purpose": "does not fabricate pending status after creation refresh reports a terminal state",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Declined: ada@example.com')).toBeInTheDocument() | expect(screen.queryByText(/Waiting for/)).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.test.tsx",
    "line": 263,
    "name": "shows the removed-person sentence beside Restore",
    "purpose": "shows the removed-person sentence beside Restore",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(alert).toHaveTextContent(line) | expect(screen.getByRole('link', { name: 'Restore' })).toHaveAttribute('href', '/people/person-ada'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.test.tsx",
    "line": 274,
    "name": "keeps a pending explanation and only the current resend and cancel controls",
    "purpose": "keeps a pending explanation and only the current resend and cancel controls",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(alert).toHaveTextContent('You already have a partner invitation waiting for a response.') | expect(alert).not.toHaveTextContent('409'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.test.tsx",
    "line": 295,
    "name": "shows the same pending explanation when refresh leaves the outgoing invite in place",
    "purpose": "shows the same pending explanation when refresh leaves the outgoing invite in place",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(alert).toHaveTextContent('You already have a partner invitation waiting for a response.') | expect(screen.getByRole('button', { name: 'Resend' })).toBeEnabled(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.test.tsx",
    "line": 310,
    "name": "explains %s from the code rather than the server sentence",
    "purpose": "explains %s from the code rather than the server sentence (parameterized: 6 cases)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(alert).toHaveTextContent(text) | expect(alert).not.toHaveTextContent('already has an account'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.test.tsx",
    "line": 329,
    "name": "focuses the partner email for an invalid request and does not infer an account",
    "purpose": "focuses the partner email for an invalid request and does not infer an account",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByLabelText('Partner email')).toHaveFocus() | expect(screen.getByRole('alert', { name: 'Partner invitation' })).not.toHaveTextContent('belongs to someone'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.test.tsx",
    "line": 338,
    "name": "offers view for the authorized crossed invite and not a response id that is absent",
    "purpose": "offers view for the authorized crossed invite and not a response id that is absent",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByRole('alert', { name: 'Partner invitation' })).toHaveTextContent('Ada Partner has already invited you.') | expect(screen.queryByText('ada@secret.test')).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.test.tsx",
    "line": 353,
    "name": "uses a chooser for several incoming invitations and never a missing id",
    "purpose": "uses a chooser for several incoming invitations and never a missing id",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(chooser).toHaveTextContent('Ada Partner') | expect(chooser).toHaveTextContent('Blair Partner'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.test.tsx",
    "line": 373,
    "name": "does not offer outgoing actions for a locked incoming invitation",
    "purpose": "does not offer outgoing actions for a locked incoming invitation",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(alert).toHaveTextContent('The sender needs to send a new invitation.') | expect(screen.queryByRole('button', { name: 'Send a new invitation' })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.test.tsx",
    "line": 392,
    "name": "offers cancel and an explicit reissue only for the caller outgoing lock",
    "purpose": "offers cancel and an explicit reissue only for the caller outgoing lock",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByRole('alert', { name: 'Partner invitation' })).toHaveTextContent('This invitation is paused for security.') | expect(screen.getByRole('alert', { name: 'Partner invitation' })).not.toHaveTextContent('The sender needs to send a new invitation.. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.test.tsx",
    "line": 415,
    "name": "refreshes a locked invitation whose role is not on this account",
    "purpose": "refreshes a locked invitation whose role is not on this account",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByRole('alert', { name: 'Partner invitation' })).toHaveTextContent('This invitation is paused for security.') | expect(screen.getByRole('alert', { name: 'Partner invitation' })).not.toHaveTextContent('The sender needs'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.test.tsx",
    "line": 427,
    "name": "keeps a decline-cap explanation on the attempted email and clears it when the address changes",
    "purpose": "keeps a decline-cap explanation on the attempted email and clears it when the address changes",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByRole('alert', { name: 'Partner invitation' })).toHaveTextContent(\"You can't invite this email again.\") | expect(screen.queryByRole('button', { name: 'Resend' })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.test.tsx",
    "line": 441,
    "name": "shows only server-supplied attempts for a failed knowledge check",
    "purpose": "shows only server-supplied attempts for a failed knowledge check",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(alert).toHaveTextContent(\"(2 tries left) | expect(alert).not.toHaveTextContent('secret@example.com'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.test.tsx",
    "line": 454,
    "name": "does not invent attempts remaining when the server omits them",
    "purpose": "does not invent attempts remaining when the server omits them",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByRole('alert', { name: 'Partner invitation' })).toHaveTextContent(\"That doesn't match.\") | expect(screen.getByRole('alert', { name: 'Partner invitation' })).not.toHaveTextContent('tries left'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.test.tsx",
    "line": 463,
    "name": "uses create fallback for %s",
    "purpose": "uses create fallback for %s (parameterized: 3 cases)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(alert).toHaveTextContent(\"We couldn't create your invitation. Refresh your invitation status and try again.\") | expect(alert).not.toHaveTextContent('409'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.test.tsx",
    "line": 479,
    "name": "uses the resend and cancel verbs for unreadable failures",
    "purpose": "uses the resend and cancel verbs for unreadable failures",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('alert', { name: 'Partner invitation' })).toHaveTextContent(\"We couldn't resend your invitation.\") | expect(screen.getByRole('alert', { name: 'Partner invitation' })).not.toHaveTextContent('Failed to fetch'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.test.tsx",
    "line": 496,
    "name": "keeps the original reason when refresh fails and does not leave a spinner",
    "purpose": "keeps the original reason when refresh fails and does not leave a spinner",
    "classification": "mixed",
    "restates": "partial",
    "reason": "Contains real output/interaction assertions plus an implementation-coupled subset. Restates evidence: Queries private `.animate-spin` implementation class alongside visible error state. Assertion evidence: expect(alert).toHaveTextContent('You already have a partner invitation waiting for a response.') | expect(alert).toHaveTextContent('Could not refresh invitation status.')",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.test.tsx",
    "line": 513,
    "name": "does not apply an invitation error after the session changes",
    "purpose": "does not apply an invitation error after the session changes",
    "classification": "mixed",
    "restates": "partial",
    "reason": "Contains real output/interaction assertions plus an implementation-coupled subset. Restates evidence: Queries private `.animate-spin` implementation class after a session transition. Assertion evidence: expect(authedJSON).toHaveBeenCalled() | expect(screen.queryByRole('button', { name: 'Create invite' })).toBeEnabled()",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.test.tsx",
    "line": 531,
    "name": "ignores a duplicate create while the first request is in flight",
    "purpose": "ignores a duplicate create while the first request is in flight",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByRole('button', { name: 'Create invite' })).toBeDisabled() | expect(authedJSON).toHaveBeenCalledTimes(1). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.test.tsx",
    "line": 546,
    "name": "does not claim an invitation or an email when create fails",
    "purpose": "does not claim an invitation or an email when create fails",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.queryByText(/We emailed/)).not.toBeInTheDocument() | expect(screen.queryByText(/Invitation emailed/)).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.test.tsx",
    "line": 557,
    "name": "keeps a linked account explanation visible after the form is replaced",
    "purpose": "keeps a linked account explanation visible after the form is replaced",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByTestId('profile-spouse-invite')).toBeInTheDocument() | expect(screen.getByRole('alert', { name: 'Partner invitation' })).toHaveTextContent('You already have a partner linked on this login.'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.test.tsx",
    "line": 571,
    "name": "leaves a cooldown on the pending invitation without retrying",
    "purpose": "leaves a cooldown on the pending invitation without retrying",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(alert).toHaveTextContent('Wait a moment before requesting another link.') | expect(alert).not.toHaveTextContent('60'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.test.tsx",
    "line": 588,
    "name": "keeps profile save and password reset errors off the invitation alert",
    "purpose": "keeps profile save and password reset errors off the invitation alert",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Name could not be saved')).toBeInTheDocument() | expect(updateProfile).not.toHaveBeenCalled(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.test.tsx",
    "line": 602,
    "name": "shows a safe exit when the invitation disappears before it can be viewed",
    "purpose": "shows a safe exit when the invitation disappears before it can be viewed",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Your invitation status changed. Refresh it before trying again.')).toBeInTheDocument() | expect(screen.queryByLabelText(/enter the email address/)).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/ProfilePage.test.tsx",
    "line": 623,
    "name": "does not replace later typing with a deferred name acknowledgment",
    "purpose": "does not replace later typing with a deferred name acknowledgment",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByLabelText('Preferred name')).toBeDisabled() | expect(screen.getByLabelText('Preferred name')).toHaveValue('Dee'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/RecordsHubPage.test.tsx",
    "line": 59,
    "name": "links each record row to item review",
    "purpose": "links each record row to item review",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('link', { name: 'Joint checking' })).toHaveAttribute('href', '/accounts/ent-checking') | expect(screen.getByText('1 account')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/RecordsHubPage.test.tsx",
    "line": 71,
    "name": "links bound legal rows to the instrument and unbound rows to the item",
    "purpose": "links bound legal rows to the instrument and unbound rows to the item",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('link', { name: 'Last will and testament' })).toHaveAttribute('href', '/legal/ent-will') | expect(screen.getByRole('link', { name: 'Living will' })).toHaveAttribute('href', '/items/item-scan'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/RecordsHubPage.test.tsx",
    "line": 119,
    "name": "distinguishes four packet wills by person and pages without requiring instrument acceptance",
    "purpose": "distinguishes four packet wills by person and pages without requiring instrument acceptance",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(yours).toHaveLength(2) | expect(others).toHaveLength(2). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/RecordsHubPage.test.tsx",
    "line": 141,
    "name": "tones unbound money rows as from-this-statement until the member adds them",
    "purpose": "tones unbound money rows as from-this-statement until the member adds them",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('link', { name: 'Vantage West Checking ••1111' })).toHaveAttribute('href', '/items/item-stmt') | expect(screen.getByText('From this statement')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/RecordsHubPage.test.tsx",
    "line": 184,
    "name": "renders the shared Worth a look DTO instead of local Hub counts",
    "purpose": "renders the shared Worth a look DTO instead of local Hub counts",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'One thing worth a look' })).toBeInTheDocument() | expect(screen.getByText(/Shannon's current address has a newer value than the one you pinned. Which one is right\\?/)).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/RecordsHubPage.test.tsx",
    "line": 217,
    "name": "keeps one Worth a look count and See all when there is more than one finding",
    "purpose": "keeps one Worth a look count and See all when there is more than one finding",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: '2 things worth a look' })).toBeInTheDocument() | expect(screen.getByText('Does this look like your will?')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/RecordsHubPage.test.tsx",
    "line": 260,
    "name": "does not treat a Worth a look fetch failure as honest-empty",
    "purpose": "does not treat a Worth a look fetch failure as honest-empty",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText(/couldn't load this right now/i)).toBeInTheDocument() | expect(screen.getByRole('button', { name: 'Retry' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/RecordsHubPage.test.tsx",
    "line": 278,
    "name": "renders all groups when old payload arrays are null or omitted",
    "purpose": "renders all groups when old payload arrays are null or omitted",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'What you have' })).toBeInTheDocument() | expect(screen.getByRole('link', { name: 'Last will and testament' })).toHaveAttribute('href', '/items/item-will'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/RecordsHubPage.test.tsx",
    "line": 324,
    "name": "title-cases extracted names and keeps caution off a living will that names only you",
    "purpose": "title-cases extracted names and keeps caution off a living will that names only you",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('link', { name: 'Living will' })).toBeInTheDocument() | expect(screen.getByText('W Matlock Living Will 11-19-20')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/RecordsHubPage.test.tsx",
    "line": 375,
    "name": "does not use You alone as named on money rows",
    "purpose": "does not use You alone as named on money rows",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('link', { name: 'Vantage West ••1234' })).toBeInTheDocument() | expect(screen.getByText('Not named on it')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/RecordsHubPage.test.tsx",
    "line": 411,
    "name": "keeps the five mockup sections and ignores proposed extra groups",
    "purpose": "keeps the five mockup sections and ignores proposed extra groups",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Money and accounts' })).toBeInTheDocument() | expect(screen.getByRole('heading', { name: 'Property' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/RecordsHubPage.test.tsx",
    "line": 443,
    "name": "leads an empty hub into guided import without a second Add next to Print this",
    "purpose": "leads an empty hub into guided import without a second Add next to Print this",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('link', { name: 'Add your statements' })).toHaveAttribute('href', '/import') | expect(screen.getByRole('button', { name: 'Print this' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/RecordsHubPage.test.tsx",
    "line": 462,
    "name": "names a bound holding and shows as-of without a row confirm",
    "purpose": "names a bound holding and shows as-of without a row confirm",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('link', { name: 'VyStar checking ••4471' })).toHaveAttribute('href', '/accounts/ent-checking') | expect(screen.getByText('As of Jan 2026')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/RecordsHubPage.test.tsx",
    "line": 512,
    "name": "does not post a follow-up nudge for a stale anchor",
    "purpose": "does not post a follow-up nudge for a stale anchor",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText('Alex has not accepted yet.')).toBeInTheDocument() | expect(urls.some((url) => url.includes('steps-in/nudge'))).toBe(false). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/SignupPage.test.tsx",
    "line": 39,
    "name": "shows the server shown name %s on the landing and the decline",
    "purpose": "shows the server shown name %s on the landing and the decline (parameterized: 2 cases)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: `${shown} invited you to link your Persynl accounts` })).toBeInTheDocument() | expect(screen.getByText(`Decline ${shown}’s invitation? ${shown} will see that you declined.`)).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/SignupPage.test.tsx",
    "line": 59,
    "name": "requires confirmation before public no-account decline and shows the response",
    "purpose": "requires confirmation before public no-account decline and shows the response",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: /Fred Walk invited you/ })).toBeInTheDocument() | expect(screen.getByText(/Decline Fred Walk’s invitation/)).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/SignupPage.test.tsx",
    "line": 71,
    "name": "keeps an existing signed-in invitee on retry after accept fails instead of opening account creation",
    "purpose": "keeps an existing signed-in invitee on retry after accept fails instead of opening account creation",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: /Fred Walk invited you/ })).toBeInTheDocument() | expect(await screen.findByRole('heading', { name: 'Your invitation is ready to finish' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/SignupPage.test.tsx",
    "line": 88,
    "name": "collects only credentials and names and preserves invite acceptance (invited: %s)",
    "purpose": "collects only credentials and names and preserves invite acceptance (invited: %s) (parameterized: 2 cases)",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Fred Walk invited you to link your Persynl accounts')).toBeInTheDocument() | expect(screen.queryByLabelText('Password', { exact: true })).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/SignupPage.test.tsx",
    "line": 143,
    "name": "reconciles a locked token invitation and offers an exit",
    "purpose": "reconciles a locked token invitation and offers an exit",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText(/This invitation link didn’t work/)).toBeInTheDocument() | expect(authState.refreshMe).toHaveBeenCalled(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/SignupPage.test.tsx",
    "line": 162,
    "name": "shows the step-in sentence after a refused accept and does not retry it",
    "purpose": "shows the step-in sentence after a refused accept and does not retry it",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: /Fred Walk invited you/ })).toBeInTheDocument() | expect(screen.queryByText(/also named you to step in/)).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/SignupPage.test.tsx",
    "line": 208,
    "name": "tells the invitee to try again when the re-peek still shows no sentence",
    "purpose": "tells the invitee to try again when the re-peek still shows no sentence",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: /Fred Walk invited you/ })).toBeInTheDocument() | expect(await screen.findByRole('alert')).toHaveTextContent( 'Try again. We could not confirm the note about stepping in yet.', ). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/SignupPage.test.tsx",
    "line": 249,
    "name": "fails when the no-name invitation puts Someone mid-sentence",
    "purpose": "fails when the no-name invitation puts Someone mid-sentence",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Someone invited you to link your Persynl accounts' })).toBeInTheDocument() | expect(screen.getByText('If you accept, you are linked as spouses. Persynl will try to move items marked for you to your account. Yo. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInFilePage.test.tsx",
    "line": 61,
    "name": "says who the request is about when one member can be filed for",
    "purpose": "says who the request is about when one member can be filed for",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Pat has passed' })).toBeInTheDocument() | expect(screen.queryByLabelText('Who has passed')).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInFilePage.test.tsx",
    "line": 77,
    "name": "files an unwell request with no death fields and shows the page to upload",
    "purpose": "files an unwell request with no death fields and shows the page to upload",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Pat is unwell' })).toBeInTheDocument() | expect(screen.getByLabelText('Facility name')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInFilePage.test.tsx",
    "line": 112,
    "name": "shows only the clock when a blocked try is still the same America/New_York day",
    "purpose": "shows only the clock when a blocked try is still the same America/New_York day",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(shown.textContent).not.toMatch(/Oct/) | expect(screen.queryByText(/does not match/)).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInFilePage.test.tsx",
    "line": 124,
    "name": "says the member when the person has no name",
    "purpose": "says the member when the person has no name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'The member has passed' })).toBeInTheDocument() | expect(screen.getByText(\"What you file opens the guide. It does not open the member's records.\")).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInFilePage.test.tsx",
    "line": 138,
    "name": "shows the mismatch sentence for a wrong password and no retry time",
    "purpose": "shows the mismatch sentence for a wrong password and no retry time",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Pat has passed' })).toBeInTheDocument() | expect(await screen.findByText('That password does not match')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInFilePage.test.tsx",
    "line": 159,
    "name": "shows the short date when a blocked try is just after midnight in America/Phoenix",
    "purpose": "shows the short date when a blocked try is just after midnight in America/Phoenix",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Too many password tries. Try again after Oct 10, 12:05 AM.')).toBeInTheDocument() | expect(screen.queryByText(/does not match/)).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInGuidePage.test.tsx",
    "line": 57,
    "name": "names the member on the guide heading",
    "purpose": "names the member on the guide heading",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'What Grace Whitfield prepared for you' })).toBeInTheDocument() | expect(screen.queryByRole('heading', { name: 'What Grace prepared for you' })).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInGuidePage.test.tsx",
    "line": 67,
    "name": "shows only the unwell steps when the request is unwell",
    "purpose": "shows only the unwell steps when the request is unwell",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'What Grace Whitfield prepared for you' })).toBeInTheDocument() | expect(screen.getByText('Who decides now, in plain words.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInGuidePage.test.tsx",
    "line": 84,
    "name": "uses the member when the guide has no name",
    "purpose": "uses the member when the guide has no name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'What the member prepared for you' })).toBeInTheDocument() | expect(screen.getByText('A person from Persynl will call and will try to reach the member.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInGuidePage.test.tsx",
    "line": 94,
    "name": "uses the member when the shown name starts with a pronoun",
    "purpose": "uses the member when the shown name starts with a pronoun",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'What the member prepared for you' })).toBeInTheDocument() | expect(screen.getByText('A person from Persynl will call and will try to reach the member.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInGuidePage.test.tsx",
    "line": 103,
    "name": "keeps a surname that is also a pronoun",
    "purpose": "keeps a surname that is also a pronoun",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'What Grace He prepared for you' })).toBeInTheDocument() | expect(screen.getByText('A person from Persynl will call and will try to reach Grace He.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInGuidePage.test.tsx",
    "line": 111,
    "name": "shows the guide when the name lookup fails",
    "purpose": "shows the guide when the name lookup fails",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'What the member prepared for you' })).toBeInTheDocument() | expect(screen.queryByText('What the member prepared for you did not load.')).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInGuidePage.test.tsx",
    "line": 119,
    "name": "names the member when the guide does not load",
    "purpose": "names the member when the guide does not load",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('What Grace Whitfield prepared for you did not load.')).toBeInTheDocument() | expect(screen.queryByText('What Grace prepared for you did not load.')).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInGuidePage.test.tsx",
    "line": 129,
    "name": "uses the member when the guide does not load and the member has no name",
    "purpose": "uses the member when the guide does not load and the member has no name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('What the member prepared for you did not load.')).toBeInTheDocument() | expect(screen.queryByText('What was prepared for you did not load.')).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInGuidePage.test.tsx",
    "line": 138,
    "name": "names the member while the guide is loading",
    "purpose": "names the member while the guide is loading",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Loading what Grace Whitfield prepared for you.')).toBeInTheDocument() | expect(screen.queryByText('Loading what Grace prepared for you.')).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInGuidePage.test.tsx",
    "line": 148,
    "name": "uses the member while the guide is loading and the member has no name",
    "purpose": "uses the member while the guide is loading and the member has no name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Loading what the member prepared for you.')).toBeInTheDocument() | expect(screen.queryByText('Loading what was prepared for you.')).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStatusPage.test.tsx",
    "line": 62,
    "name": "keeps the in-progress sentence while the request is still open to checks",
    "purpose": "keeps the in-progress sentence while the request is still open to checks",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('When it is done, Persynl will tell you what happens next.')).toBeInTheDocument() | expect(screen.getByRole('link', { name: 'Open now' })).toHaveAttribute('href', '/step-in/requests/req-1/guide'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStatusPage.test.tsx",
    "line": 79,
    "name": "reaches the member and accepts only the medical document when the request is unwell",
    "purpose": "reaches the member and accepts only the medical document when the request is unwell",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('We are trying to reach Robert directly.')).toBeInTheDocument() | expect(screen.getByRole('heading', { name: 'Request for Robert' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStatusPage.test.tsx",
    "line": 103,
    "name": "keeps the full viewer-shown name throughout the unwell request",
    "purpose": "keeps the full viewer-shown name throughout the unwell request",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Request for Gracie Whitfield Jr.' })).toBeInTheDocument() | expect(await screen.findByRole('heading', { name: \"Where Gracie Whitfield Jr.'s accounts are\" })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStatusPage.test.tsx",
    "line": 118,
    "name": "preserves a surname that is also a pronoun",
    "purpose": "preserves a surname that is also a pronoun",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Request for Grace He' })).toBeInTheDocument() | expect(screen.getByText('We are trying to reach Grace He directly.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStatusPage.test.tsx",
    "line": 125,
    "name": "keeps the full shown name for a death request too",
    "purpose": "keeps the full shown name for a death request too",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Request for Grace Whitfield' })).toBeInTheDocument() | expect(screen.getByText(/the guide Grace Whitfield prepared/)).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStatusPage.test.tsx",
    "line": 132,
    "name": "says saved after a death certificate upload",
    "purpose": "says saved after a death certificate upload",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('button', { name: 'Upload the file' })).toBeInTheDocument() | expect(upload).toHaveBeenCalledWith('req-1', 'certificate', file). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStatusPage.test.tsx",
    "line": 145,
    "name": "shows where the accounts are as text, with no link or download",
    "purpose": "shows where the accounts are as text, with no link or download",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('region', { name: \"Where Robert's accounts are\" })).toBeInTheDocument() | expect(screen.getByText(\"Robert's health documents stay open to you.\")).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStatusPage.test.tsx",
    "line": 186,
    "name": "says the member when the name is blank or a pronoun",
    "purpose": "says the member when the name is blank or a pronoun",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Request for the member' })).toBeInTheDocument() | expect(screen.getByText(\"The member's health documents are open to you when the member chose that. Where the member's accounts are opens after Persynl checks t. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStatusPage.test.tsx",
    "line": 203,
    "name": "names the doctor under the health documents line",
    "purpose": "names the doctor under the health documents line",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(papers.compareDocumentPosition(doctor) & Node.DOCUMENT_POSITION_FOLLOWING).toBeTruthy() | expect(document.body.textContent).not.toMatch(pronoun). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStatusPage.test.tsx",
    "line": 214,
    "name": "names two or three doctors",
    "purpose": "names two or three doctors",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText(\"Robert's doctors, as named in Robert's health documents: Ada Chen, Robin Quill and Morgan Lee.\")).toBeInTheDocument() | expect(papers.compareDocumentPosition(doctor) & Node.DOCUMENT_POSITION_FOLLOWING).toBeTruthy(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStatusPage.test.tsx",
    "line": 225,
    "name": "shows no doctor line when the list is %s",
    "purpose": "shows no doctor line when the list is %s (parameterized declaration)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText(\"Robert's health documents are open to you when Robert chose that. Where Robert's accounts are opens after Persynl checks the document.\")).toBeInTheDocument() | expect(screen.queryByText(/doctor, as named/)).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStatusPage.test.tsx",
    "line": 238,
    "name": "starts the doctor line with The member when the name is %s",
    "purpose": "starts the doctor line with The member when the name is %s (parameterized: 4 cases)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText(\"The member's doctor, as named in the member's health documents: Ada Chen.\")).toBeInTheDocument() | expect(document.body.textContent).not.toMatch(pronoun). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStatusPage.test.tsx",
    "line": 246,
    "name": "drops the checking sentences once access has ended",
    "purpose": "drops the checking sentences once access has ended",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText(\"You can no longer see Robert's Life details.\")).toBeInTheDocument() | expect(screen.getByText('This request has ended.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStatusPage.test.tsx",
    "line": 259,
    "name": "tells the claimant when the request is %s",
    "purpose": "tells the claimant when the request is %s (parameterized: 3 cases)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText(sentence)).toBeInTheDocument() | expect(screen.queryByText('When it is done, Persynl will tell you what happens next.')).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStatusPage.test.tsx",
    "line": 273,
    "name": "lists health documents by the shown name and links each title",
    "purpose": "lists health documents by the shown name and links each title",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: \"Grace Whitfield's health documents\" })).toBeInTheDocument() | expect(screen.getByRole('link', { name: 'Advance directive form' })).toHaveAttribute('href', '/items/item-adv'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStatusPage.test.tsx",
    "line": 296,
    "name": "shows no health-papers heading or empty line when the grant is closed",
    "purpose": "shows no health-papers heading or empty line when the grant is closed",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Request for Robert' })).toBeInTheDocument() | expect(screen.queryByRole('heading', { name: /health documents/i })).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStatusPage.test.tsx",
    "line": 305,
    "name": "shows no health documents section on a death request",
    "purpose": "shows no health documents section on a death request",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Request for Grace' })).toBeInTheDocument() | expect(screen.queryByRole('heading', { name: /health documents/i })).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStatusPage.test.tsx",
    "line": 318,
    "name": "names an empty health-papers list, and drops a blank or pronoun name",
    "purpose": "names an empty health-papers list, and drops a blank or pronoun name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('No health documents are on file for Grace Whitfield.')).toBeInTheDocument() | expect(await screen.findByRole('heading', { name: 'Health documents' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStopPage.test.tsx",
    "line": 73,
    "name": "keeps the stop action while the request is still open to the member",
    "purpose": "keeps the stop action while the request is still open to the member",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: \"I'm alive\" })).toBeInTheDocument() | expect(screen.getByRole('button', { name: \"Yes, close Ada's request\" })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStopPage.test.tsx",
    "line": 82,
    "name": "uses Someone when the claimant name is blank",
    "purpose": "uses Someone when the claimant name is blank",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('button', { name: \"Yes, close someone's request\" })).toBeInTheDocument() | expect(screen.getByText(\"Closing someone's request means nothing opens to someone now. Someone is still named to step in, and anything you already share w. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStopPage.test.tsx",
    "line": 90,
    "name": "names both filers on an unwell stop",
    "purpose": "names both filers on an unwell stop",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: \"I'm fine\" })).toBeInTheDocument() | expect(screen.getByRole('button', { name: \"Yes, close Shannon Whitfield and Emily Marsh's request\" })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStopPage.test.tsx",
    "line": 102,
    "name": "names nobody when three people asked, or when one of two names is blank or a pronoun",
    "purpose": "names nobody when three people asked, or when one of two names is blank or a pronoun",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('button', { name: 'Yes, close this request' })).toBeInTheDocument() | expect(screen.getByText('Closing this request means nothing opens now to anyone who asked. Everyone who asked is still named to step in, and anything you alrea. Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStopPage.test.tsx",
    "line": 125,
    "name": "shows a plain page to a claimant, with no close button",
    "purpose": "shows a plain page to a claimant, with no close button",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'This page is for Pat' })).toBeInTheDocument() | expect(screen.getByText('Only Pat can close this request. Nothing has changed.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStopPage.test.tsx",
    "line": 147,
    "name": "shows Loading and no button until the request and the member are known",
    "purpose": "shows Loading and no button until the request and the member are known",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Loading.')).toBeInTheDocument() | expect(screen.queryByRole('button')).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStopPage.test.tsx",
    "line": 166,
    "name": "says the member when the load is refused, and that the request did not load on any other error",
    "purpose": "says the member when the load is refused, and that the request did not load on any other error",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'This page is for the member' })).toBeInTheDocument() | expect(screen.getByText('Only the member can close this request. Nothing has changed.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStopPage.test.tsx",
    "line": 182,
    "name": "sends the member home when there is no history",
    "purpose": "sends the member home when there is no history",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('button', { name: \"Yes, close Ada's request\" })).toBeInTheDocument() | expect(stop).not.toHaveBeenCalled(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStopPage.test.tsx",
    "line": 192,
    "name": "thanks the member after a death stop",
    "purpose": "thanks the member after a death stop",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText(\"Thank you. We've closed the report. Nothing about your account has changed.\")).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStopPage.test.tsx",
    "line": 200,
    "name": "thanks the member after an unwell stop and names the claimant",
    "purpose": "thanks the member after an unwell stop and names the claimant",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText(\"Thank you. We've closed Casey's request. Nothing about your account has changed.\")).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStopPage.test.tsx",
    "line": 208,
    "name": "uses Someone on the unwell thanks when the name is blank",
    "purpose": "uses Someone on the unwell thanks when the name is blank",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText(\"Thank you. We've closed someone's request. Nothing about your account has changed.\")).toBeInTheDocument() | expect(renderedSomeoneHits(document.body)).toEqual([]). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStopPage.test.tsx",
    "line": 217,
    "name": "heads an unwell request with I am fine and the same confirm",
    "purpose": "heads an unwell request with I am fine and the same confirm",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: \"I'm fine\" })).toBeInTheDocument() | expect(screen.getByRole('button', { name: \"Yes, close Casey's request\" })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStopPage.test.tsx",
    "line": 224,
    "name": "heads a %s request with %s",
    "purpose": "heads a %s request with %s (parameterized: 4 cases)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: heading })).toBeInTheDocument() | expect(screen.getByText(copy)).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStopPage.test.tsx",
    "line": 237,
    "name": "names the claimant when the request is open",
    "purpose": "names the claimant when the request is open",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('heading', { name: 'Opened' })).toBeInTheDocument() | expect(screen.getByText('This request is open. Ada has stepped in.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStopPage.test.tsx",
    "line": 244,
    "name": "names two people who have stepped in, and names nobody when more than two have",
    "purpose": "names two people who have stepped in, and names nobody when more than two have",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('This request is open. Shannon Whitfield and Emily Marsh have stepped in.')).toBeInTheDocument() | expect(await screen.findByText('This request is open. More than one person has stepped in.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStopPage.test.tsx",
    "line": 255,
    "name": "T26 a closed request does not stay closed when the id changes",
    "purpose": "T26 a closed request does not stay closed when the id changes",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText(\"Thank you. We've closed the report. Nothing about your account has changed.\")).toBeInTheDocument() | expect(screen.getByText('Loading.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInStopPage.test.tsx",
    "line": 285,
    "name": "T26 a filer page has no close button until that request loads",
    "purpose": "T26 a filer page has no close button until that request loads",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('button', { name: \"Yes, close Ada's request\" })).toBeInTheDocument() | expect(screen.getByText('Loading.')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInToldPage.test.tsx",
    "line": 44,
    "name": "shows notices newest first, dated, with a tap-to-call number and no record links",
    "purpose": "shows notices newest first, dated, with a tap-to-call number and no record links",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(newest.compareDocumentPosition(earlier) & Node.DOCUMENT_POSITION_FOLLOWING).toBeTruthy() | expect(screen.getAllByText('October 15')).toHaveLength(2). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInToldPage.test.tsx",
    "line": 68,
    "name": "links the guide in the request notice without showing the path",
    "purpose": "links the guide in the request notice without showing the path",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText(/We have your request/)).toBeInTheDocument() | expect(guide).toHaveAttribute('href', path). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInToldPage.test.tsx",
    "line": 92,
    "name": "keeps other addresses as plain text beside the guide link",
    "purpose": "keeps other addresses as plain text beside the guide link",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText(/pages Grace set up are here/)).toBeInTheDocument() | expect(links).toHaveLength(1). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInToldPage.test.tsx",
    "line": 119,
    "name": "uses the guide path when the notice stores a full address",
    "purpose": "uses the guide path when the notice stores a full address",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(guide).toHaveAttribute('href', path) | expect(text).toContain('pages Grace set up are here.'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInToldPage.test.tsx",
    "line": 143,
    "name": "links the stop button words and the guide in one notice",
    "purpose": "links the stop button words and the guide in one notice",
    "classification": "mixed",
    "restates": "partial",
    "reason": "Contains real output/interaction assertions plus an implementation-coupled subset. Restates evidence: Asserts literal `bg-action` class alongside route and copy. Assertion evidence: expect(stop).toHaveAttribute('href', stopPath) | expect(stop.className).toContain('bg-action')",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInToldPage.test.tsx",
    "line": 176,
    "name": "links a relative stop path and an older button the same way",
    "purpose": "links a relative stop path and an older button the same way",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(stop).toHaveAttribute('href', stopPath) | expect(text).toContain('If you did expect it, you do not need to do anything.'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/StepInToldPage.test.tsx",
    "line": 202,
    "name": "drops the call sentence when no support number is set",
    "purpose": "drops the call sentence when no support number is set",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByText('Newest notice.')).toBeInTheDocument() | expect(screen.queryByText(/If something about this is wrong/)).toBeNull(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/TodosPage.test.tsx",
    "line": 44,
    "name": "lists open to-dos by default and hides completed ones",
    "purpose": "lists open to-dos by default and hides completed ones",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText('Call the insurance agent')).toBeInTheDocument() | expect(screen.queryByText('Scan the deed')).not.toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/TodosPage.test.tsx",
    "line": 51,
    "name": "shows completed to-dos under the Done filter",
    "purpose": "shows completed to-dos under the Done filter",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText('Call the insurance agent')).toBeInTheDocument() | expect(screen.getByText('Scan the deed')).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/TodosPage.test.tsx",
    "line": 60,
    "name": "adds a to-do via the composer",
    "purpose": "adds a to-do via the composer",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText('Call the insurance agent')).toBeInTheDocument() | expect(mockApi).toHaveBeenCalledWith('/api/todos', { method: 'POST', body: { content: 'water the plants' }, }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/TodosPage.test.tsx",
    "line": 85,
    "name": "keeps a just-checked to-do visible (struck) in the Open view",
    "purpose": "keeps a just-checked to-do visible (struck) in the Open view",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText('Call the insurance agent')).toBeInTheDocument() | expect(mockApi).toHaveBeenCalledWith('/api/todos/t1', { method: 'PATCH', body: { completed: true }, }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/TodosPage.test.tsx",
    "line": 105,
    "name": "offers starter ideas when the list is empty",
    "purpose": "offers starter ideas when the list is empty",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(screen.getByText('Nothing on your list')).toBeInTheDocument() | expect(screen.getByText(/A few ideas to get started/)).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "src/pages/WhatPersynlFoundPage.test.tsx",
    "line": 21,
    "name": "is read-only and names empty categories in words",
    "purpose": "is read-only and names empty categories in words",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(await screen.findByRole('link', { name: 'Vantage West checking' })).toHaveAttribute('href', '/accounts/ent-bank') | expect(screen.getByRole('heading', { name: 'Home' })).toBeInTheDocument(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/auth.spec.ts",
    "line": 20,
    "name": "can login with valid credentials",
    "purpose": "can login with valid credentials",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: 'Welcome Back' })).toBeVisible() | expect(page).not.toHaveURL('/login'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/auth.spec.ts",
    "line": 42,
    "name": "shows error with invalid credentials",
    "purpose": "shows error with invalid credentials",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByText(/invalid|error|incorrect/i)).toBeVisible({ timeout: 10000 }) | expect(page).toHaveURL('/login'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/auth.spec.ts",
    "line": 59,
    "name": "login page has required elements",
    "purpose": "login page has required elements",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: 'Welcome Back' })).toBeVisible() | expect(page.getByLabel('Email')).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/example.spec.ts",
    "line": 3,
    "name": "has title",
    "purpose": "has title",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page).toHaveTitle(/Playwright/). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/example.spec.ts",
    "line": 10,
    "name": "get started link",
    "purpose": "get started link",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: 'Installation' })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-a6-durable-poa.spec.ts",
    "line": 256,
    "name": "the spouse's own joint POA binds to the spouse, and the owner gets no offer",
    "purpose": "the spouse's own joint POA binds to the spouse, and the owner gets no offer",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(principalBinding(namesMike), 'the principal must bind to Mike, the spouse').toBe('spouse') | expect(page.getByRole('heading', { name: 'Is this your durable power of attorney?' })).toHaveCount(0). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-a6-durable-poa.spec.ts",
    "line": 290,
    "name": "an ambiguous paper leaves the principal unbound, and This is mine stays off",
    "purpose": "an ambiguous paper leaves the principal unbound, and This is mine stays off",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(principalBinding(paper), 'an ambiguous name must leave the principal unbound').toBe('unbound') | expect(principalOfferOpen(paper), 'the principal review offer must stay open for the card to render').toBe(true). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-a6-durable-poa.spec.ts",
    "line": 317,
    "name": "several matches show one This is mine, and H6 hides the other spouse",
    "purpose": "several matches show one This is mine, and H6 hides the other spouse",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(mine(page)).toHaveCount(1, { timeout: 20000 }) | expect(mikePage.getByRole('link', { name: 'This is you' })).toHaveCount(0). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-a6-durable-poa.spec.ts",
    "line": 366,
    "name": "the review box stays required after a connection is chosen",
    "purpose": "the review box stays required after a connection is chosen",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: 'Documents' })).toBeVisible({ timeout: 20000 }) | expect(page.getByText('This document gives only Rosa. Add a last name if you know it.')).toBeVisible({ timeout: 20000 }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-a6-durable-poa.spec.ts",
    "line": 391,
    "name": "a document named Amy saves a first name and a connection",
    "purpose": "a document named Amy saves a first name and a connection",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByText('This document gives only Amy. Add a last name if you know it.')).toBeVisible({ timeout: 20000 }) | expect(relation).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-big-items.spec.ts",
    "line": 28,
    "name": "the grid offers a sheet for Bank and Retirement and a Skip for the rest",
    "purpose": "the grid offers a sheet for Bank and Retirement and a Skip for the rest",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByText(/Everything here is optional and can be added later/)).toBeVisible() | expect(text).not.toMatch(/step \\d+ of \\d+/i). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-big-items.spec.ts",
    "line": 101,
    "name": "Finish later lands on the Home card, which opens the grid and does not reopen setup",
    "purpose": "Finish later lands on the Home card, which opens the grid and does not reopen setup",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: 'Your big items' })).toBeVisible() | expect(page.getByRole('heading', { name: 'Pick up where you left off' })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-big-items.spec.ts",
    "line": 118,
    "name": "Records opens the same tiles and sheets",
    "purpose": "Records opens the same tiles and sheets",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: 'Pick up where you left off' })).toBeVisible() | expect(page.getByRole('heading', { name: 'Your big items' })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-big-items.spec.ts",
    "line": 136,
    "name": "Records opens the Retirement sheet and a saved retirement row",
    "purpose": "Records opens the Retirement sheet and a saved retirement row",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: /Add an investment or retirement account/ })).toBeVisible() | expect(page.getByRole('heading', { name: 'Your big items' })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-big-items.spec.ts",
    "line": 172,
    "name": "closing the sheet with entries keeps them",
    "purpose": "closing the sheet with entries keeps them",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: /Add a bank account/ })).toBeVisible() | expect(page.getByRole('heading', { name: 'Your big items' })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-big-items.spec.ts",
    "line": 189,
    "name": "closing the sheet from Records keeps what was typed",
    "purpose": "closing the sheet from Records keeps what was typed",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: 'Pick up where you left off' })).toBeVisible() | expect(page.getByRole('heading', { name: 'Your big items' })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-big-items.spec.ts",
    "line": 216,
    "name": "switching tiles in setup keeps the open sheet",
    "purpose": "switching tiles in setup keeps the open sheet",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: /Add a bank account/ })).toBeVisible() | expect(page.getByRole('heading', { name: /Add an investment or retirement account/ })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-big-items.spec.ts",
    "line": 233,
    "name": "switching tiles on the routed grid keeps the open sheet",
    "purpose": "switching tiles on the routed grid keeps the open sheet",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: 'Pick up where you left off' })).toBeVisible() | expect(page.getByRole('heading', { name: 'Your big items' })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-document-kinds.spec.ts",
    "line": 241,
    "name": "upload does not require a kind before save",
    "purpose": "upload does not require a kind before save",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: 'Documents' })).toBeVisible() | expect(page.getByRole('heading', { name: 'Upload document' })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-document-kinds.spec.ts",
    "line": 259,
    "name": "grouped launch catalog has 47 choices, no Business, no raw type keys",
    "purpose": "grouped launch catalog has 47 choices, no Business, no raw type keys",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(kinds).toHaveLength(47) | expect(groups.map((group) => group.label)).toEqual(expect.arrayContaining(LAUNCH_GROUPS). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-document-kinds.spec.ts",
    "line": 292,
    "name": "cancel does not file, queue, or change facts",
    "purpose": "cancel does not file, queue, or change facts",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('dialog')).toHaveCount(0) | expect(fingerprint(pack.will_item)).toEqual(before). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-document-kinds.spec.ts",
    "line": 305,
    "name": "Something else is label-only: no job, type, fact, or binding change",
    "purpose": "Something else is label-only: no job, type, fact, or binding change",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(write.ok()).toBe(true) | expect(page.getByRole('heading', { name: /Read it again/ })).toHaveCount(0). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-document-kinds.spec.ts",
    "line": 330,
    "name": "Investment to Retirement is same-reader filing with no queue",
    "purpose": "Investment to Retirement is same-reader filing with no queue",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect((await kindWrite).ok()).toBe(true) | expect(page.getByRole('heading', { name: /Read it again/ })).toHaveCount(0). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-document-kinds.spec.ts",
    "line": 357,
    "name": "unsupported and failed reads stay honest; queued stays processing",
    "purpose": "unsupported and failed reads stay honest; queued stays processing",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(queued.getByText('Automatic Classification - In Progress')).toBeVisible() | expect(queued.getByText('Unclassified')).toHaveCount(0). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-document-kinds.spec.ts",
    "line": 378,
    "name": "eligible mortgage reread is offered, confirmed, and queues one job",
    "purpose": "eligible mortgage reread is offered, confirmed, and queues one job",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(before.open).toBe(0) | expect((await kindWrite).ok()).toBe(true). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-document-kinds.spec.ts",
    "line": 407,
    "name": "supported mortgage clarification asks a useful question and queues mortgage_statement",
    "purpose": "supported mortgage clarification asks a useful question and queues mortgage_statement",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(before.open).toBe(0) | expect(page.getByRole('button', { name: 'Help us tell which document this is' })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-document-kinds.spec.ts",
    "line": 432,
    "name": "Unsure clarification does not queue a reader",
    "purpose": "Unsure clarification does not queue a reader",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(dialog.getByRole('heading', { name: 'Which document is this?' })).toBeVisible() | expect(dialog.getByRole('button', { name: 'Unsure' })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-document-kinds.spec.ts",
    "line": 451,
    "name": "packet kind save targets the selected document only",
    "purpose": "packet kind save targets the selected document only",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(pack.packet_will_document, 'commit_extract_job_facts must publish the will document').toBeTruthy() | expect(pack.packet_brokerage_document, 'commit_extract_job_facts must publish the brokerage document').toBeTruthy(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-documents-vertical.spec.ts",
    "line": 310,
    "name": "upload picker offers Mine/Ours/Theirs only with an eligible spouse",
    "purpose": "upload picker offers Mine/Ours/Theirs only with an eligible spouse",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: 'Documents' })).toBeVisible() | expect(page.getByRole('heading', { name: 'Upload document' })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-documents-vertical.spec.ts",
    "line": 343,
    "name": "Classifying reaches complete and honest failure stays failed",
    "purpose": "Classifying reaches complete and honest failure stays failed",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(classifying).toBeVisible() | expect(classifying.getByText('Automatic Classification - In Progress')).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-documents-vertical.spec.ts",
    "line": 364,
    "name": "Try again queues a new job on the same document and completes through stubs",
    "purpose": "Try again queues a new job on the same document and completes through stubs",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(failed.getByRole('button', { name: 'Try reading this document again' })).toBeVisible() | expect(failed.getByText('Automatic Classification - In Progress')).toBeVisible({ timeout: 20000 }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-documents-vertical.spec.ts",
    "line": 397,
    "name": "routed-uncommitted stays processing, not Unclassified",
    "purpose": "routed-uncommitted stays processing, not Unclassified",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(uncommitted).toBeVisible() | expect(uncommitted.getByText('Automatic Classification - In Progress')).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-documents-vertical.spec.ts",
    "line": 418,
    "name": "summary, chat, classified type, and filing-only kind change",
    "purpose": "summary, chat, classified type, and filing-only kind change",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: pack.will_title })).toBeVisible() | expect(page.getByRole('heading', { name: 'What Persynl found' })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-documents-vertical.spec.ts",
    "line": 458,
    "name": "current facts, correction, pin/unpin, confirm, and empty holes",
    "purpose": "current facts, correction, pin/unpin, confirm, and empty holes",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(personPrompt).toBeVisible() | expect(reviewHeading).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-documents-vertical.spec.ts",
    "line": 504,
    "name": "accept/create, attach existing, and decline bind offers",
    "purpose": "accept/create, attach existing, and decline bind offers",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(createCard.getByRole('heading', { name: 'Who is this person in your people?' })).toBeVisible() | expect(page.getByText(`${paperShownName(pack.executor_name)} is now a person in your people`)).toBeVisible({ timeout: 20000 }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-documents-vertical.spec.ts",
    "line": 533,
    "name": "accepted executor appears in People and the will appears in What You Have",
    "purpose": "accepted executor appears in People and the will appears in What You Have",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(roster.people?.some((person) => person.display_name === shown)).toBeTruthy() | expect(plans.getByRole('button', { name: shown }).first()).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-documents-vertical.spec.ts",
    "line": 552,
    "name": "ambiguous living-will filing stays filing-only and preserves the canonical will",
    "purpose": "ambiguous living-will filing stays filing-only and preserves the canonical will",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.locator('article').filter({ hasText: pack.reread_name })).toBeVisible() | expect(beforeCounts).toEqual({ open: 0, terminal: 1 }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-documents-vertical.spec.ts",
    "line": 590,
    "name": "delete cancels jobs and removes the document from documents, people, and records",
    "purpose": "delete cancels jobs and removes the document from documents, people, and records",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(row).toBeVisible() | expect(page.locator('section').filter({ hasText: pack.will_title })).toHaveCount(0). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-ep3-document-review.spec.ts",
    "line": 555,
    "name": "chooser scopes facts and people; URL resume keeps the selected document",
    "purpose": "chooser scopes facts and people; URL resume keeps the selected document",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(chooser).toBeVisible() | expect(chooser).not.toContainText(pack.document_a). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-ep3-document-review.spec.ts",
    "line": 644,
    "name": "Add the grouped recurring person once and bind both sources without a second mint",
    "purpose": "Add the grouped recurring person once and bind both sources without a second mint",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(pack.name_a).toBe(pack.name_b) | expect(pack.name).toBe(pack.name_a). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-ep3-document-review.spec.ts",
    "line": 718,
    "name": "Add to People automatically attaches a person-review sibling",
    "purpose": "Add to People automatically attaches a person-review sibling",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(pack.name_a).toBe(pack.name_b) | expect(card.getByRole('button', { name: 'Add to People' })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-ep3-document-review.spec.ts",
    "line": 790,
    "name": "`roster failure keeps source names; Add to People and Not now still work (${primary} first)`",
    "purpose": "`roster failure keeps source names; Add to People and Not now still work (${primary} first)`",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(card.getByText(pack.name, { exact: true })).toBeVisible() | expect(card.getByText(\"Couldn't load your people.\")).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-ep3-document-review.spec.ts",
    "line": 844,
    "name": "Not now defers without a write; That's not a person durably declines the grouped name",
    "purpose": "Not now defers without a write; That's not a person durably declines the grouped name",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(card).toHaveCount(0) | expect(page.getByTestId('packet-deferred-people')).toContainText('next time you open this file'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-ep3-document-review.spec.ts",
    "line": 894,
    "name": "Add legal on A and connect existing on B; occupied different is a same-G race",
    "purpose": "Add legal on A and connect existing on B; occupied different is a same-G race",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(instrumentOccupant(pack.item, pack.document_a)).toBeNull() | expect(connectButton).toBeEnabled(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-ep3-document-review.spec.ts",
    "line": 973,
    "name": "synthetic D1 advance 409s the rendered token and does not replay",
    "purpose": "synthetic D1 advance 409s the rendered token and does not replay",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(personCard(page, pack.name).getByRole('button', { name: 'Add to People' })).toBeVisible() | expect(next).not.toBe(pack.d1). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-ep3-document-review.spec.ts",
    "line": 1002,
    "name": "Disconnect sends the displayed binding id; ABA 409 keeps the new occupant",
    "purpose": "Disconnect sends the displayed binding id; ABA 409 keeps the new occupant",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect((await abaAdded).status()).toBe(200) | expect(page.getByText('This document is connected as a legal document.')).toBeVisible({ timeout: 20000 }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-ep3-document-review.spec.ts",
    "line": 1042,
    "name": "Disconnect matching the displayed binding clears A and keeps the entity",
    "purpose": "Disconnect matching the displayed binding clears A and keeps the entity",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(pack.name).toBe(pack.name_a) | expect(pack.name_a).toBe(pack.name_b). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-ep3-document-review.spec.ts",
    "line": 1115,
    "name": "Disconnect against an emptied slot is a no-op",
    "purpose": "Disconnect against an emptied slot is a no-op",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect((await emptyAdded).status()).toBe(200) | expect(page.getByText('This document is connected as a legal document.')).toBeVisible({ timeout: 20000 }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-ep3-document-review.spec.ts",
    "line": 1147,
    "name": "another owner cannot open the item; view-share is facts only",
    "purpose": "another owner cannot open the item; view-share is facts only",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: 'We could not open this item' })).toBeVisible({ timeout: 20000 }) | expect(page.getByRole('heading', { name: viewer.title, exact: true })).toBeVisible({ timeout: 20000 }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-estate-packets.spec.ts",
    "line": 72,
    "name": "one uploaded file keeps two distinct wills as source-linked records",
    "purpose": "one uploaded file keeps two distinct wills as source-linked records",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: 'Documents' })).toBeVisible() | expect(page.getByRole('heading', { name: 'Upload document' })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-extract-retry.spec.ts",
    "line": 102,
    "name": "lost response replays once; failed successor retries from detail and preserves the accepted holding",
    "purpose": "lost response replays once; failed successor retries from detail and preserves the accepted holding",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(request.method()).not.toBe('DELETE') | expect(retry).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-extract-retry.spec.ts",
    "line": 193,
    "name": "list polling offers retry when the current read fails without a page reload",
    "purpose": "list polling offers retry when the current read fails without a page reload",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(row.getByText(/Persynl is reading and sorting/)).toBeVisible() | expect(retry).toBeVisible({ timeout: 15000 }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-extract-retry.spec.ts",
    "line": 221,
    "name": "a shared viewer sees the file but no retry action",
    "purpose": "a shared viewer sees the file but no retry action",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: pack.title })).toBeVisible() | expect(page.getByRole('button', { name: 'Try reading this document again' })).toHaveCount(0). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-first-72.spec.ts",
    "line": 7,
    "name": "shows the member guide, general steps, and print",
    "purpose": "shows the member guide, general steps, and print",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: 'First 72 Hours' })).toBeVisible({ timeout: 20000 }) | expect(page.getByText('Who to call first.')).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-guided-import.spec.ts",
    "line": 83,
    "name": "Home day-zero CTA is the import flow",
    "purpose": "Home day-zero CTA is the import flow",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(cta.first()).toHaveAttribute('href', '/import') | expect(page.getByRole('heading', { name: 'Add your statements' })).toBeVisible({ timeout: 20000 }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-guided-import.spec.ts",
    "line": 95,
    "name": "discovery groups two statements and names a failed document",
    "purpose": "discovery groups two statements and names a failed document",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: 'Here\\'s what we read' })).toBeVisible({ timeout: 20000 }) | expect(page.getByRole('heading', { name: 'VyStar account ••4821' })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-guided-import.spec.ts",
    "line": 107,
    "name": "needs your OK can decline one row without blocking the rest",
    "purpose": "needs your OK can decline one row without blocking the rest",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: 'Here\\'s what we read' })).toBeVisible({ timeout: 20000 }) | expect((await roster).status()).toBe(200). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-guided-import.spec.ts",
    "line": 128,
    "name": "first-time statement asks to add the account",
    "purpose": "first-time statement asks to add the account",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: 'Here\\'s what we read' })).toBeVisible({ timeout: 20000 }) | expect(page.getByRole('heading', { name: 'Needs your OK' })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-guided-import.spec.ts",
    "line": 144,
    "name": "resume keeps reading from live extract-job state",
    "purpose": "resume keeps reading from live extract-job state",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: 'Add your statements' })).toBeVisible({ timeout: 20000 }) | expect(page.getByTestId('import-reading')).toBeVisible({ timeout: 20000 }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-m1-person-waiting.spec.ts",
    "line": 19,
    "name": "the person page shows the waiting label, not the not-sent line",
    "purpose": "the person page shows the waiting label, not the not-sent line",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(signup.ok(), await signup.text()).toBeTruthy() | expect(page.getByRole('heading', { name: 'Who is this for?' })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-onboarding-partner-first.spec.ts",
    "line": 56,
    "name": "partner named with an email appears first with no second email ask",
    "purpose": "partner named with an email appears first with no second email ask",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(signup.ok(), await signup.text()).toBeTruthy() | expect(page.getByRole('heading', { name: 'Who is this for?' })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-onboarding-setup.spec.ts",
    "line": 3,
    "name": "fresh first-name signup enters optional setup and can finish later",
    "purpose": "fresh first-name signup enters optional setup and can finish later",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(signup.ok(), await signup.text()).toBeTruthy() | expect(page.getByRole('heading', { name: /Who is this for/i })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-onboarding-setup.spec.ts",
    "line": 47,
    "name": "selected category import can finish without bouncing home",
    "purpose": "selected category import can finish without bouncing home",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(signup.ok(), await signup.text()).toBeTruthy() | expect(page.getByRole('heading', { name: /Who is this for/i })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-pages.spec.ts",
    "line": 7,
    "name": "My people roster lists You and keeps household chrome off the page",
    "purpose": "My people roster lists You and keeps household chrome off the page",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(roster.people?.some((person) => person.relationship === 'You')).toBeTruthy() | expect(page.getByRole('heading', { name: 'My people' })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-pages.spec.ts",
    "line": 56,
    "name": "plans empty actions open Documents and the async step-in anchor reaches its controls",
    "purpose": "plans empty actions open Documents and the async step-in anchor reaches its controls",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect((await anchoredRoster).ok()).toBeTruthy() | expect(controls).toBeInViewport(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-pages.spec.ts",
    "line": 77,
    "name": "adding a core-tier relation shows on both people",
    "purpose": "adding a core-tier relation shows on both people",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(openPatricia).toBeVisible() | expect(page.getByRole('heading', { level: 1, name: 'Patricia Liu' })).toBeVisible({ timeout: 20000 }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-pages.spec.ts",
    "line": 117,
    "name": "parent_of remove and undo keep parent→child from both pages",
    "purpose": "parent_of remove and undo keep parent→child from both pages",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { level: 1, name: 'Patricia Liu' })).toBeVisible({ timeout: 20000 }) | expect(patriciaId).toBeTruthy(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-pages.spec.ts",
    "line": 176,
    "name": "What you have groups seeded holdings by class hierarchy",
    "purpose": "What you have groups seeded holdings by class hierarchy",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: 'What you have' })).toBeVisible() | expect(page.getByRole('heading', { name: 'Money and accounts' })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-pages.spec.ts",
    "line": 194,
    "name": "bound money row opens the account, not the statement",
    "purpose": "bound money row opens the account, not the statement",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(checking).toBeVisible() | expect(page.getByRole('heading', { level: 1, name: 'VyStar Credit Union checking ••4471' })).toBeVisible({ timeout: 20000 }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-pages.spec.ts",
    "line": 210,
    "name": "bound will row opens the will, not the scan",
    "purpose": "bound will row opens the will, not the scan",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(paper).toBeVisible() | expect(page.getByRole('heading', { level: 1, name: 'Financial power of attorney' })).toBeVisible({ timeout: 20000 }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-people-relationships.spec.ts",
    "line": 20,
    "name": "Same person opens Bob and does not add him again",
    "purpose": "Same person opens Bob and does not add him again",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByText('You may already have this person: Bob Whitfield. Same person?')).toBeVisible() | expect(page).toHaveURL(/\\/people\\/[0-9a-f-]{36}$/). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-people-relationships.spec.ts",
    "line": 33,
    "name": "a paper-only name opens the document",
    "purpose": "a paper-only name opens the document",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(itemID).toMatch(/^[0-9a-f-]{36}$/) | expect(page.getByText(`You may already have this person: ${first} Paperonly, from ${title}. Same person?`)).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-people-relationships.spec.ts",
    "line": 52,
    "name": "a child can have two parents, and undo keeps the direction",
    "purpose": "a child can have two parents, and undo keeps the direction",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { level: 1, name: `${first} Twoparent` })).toBeVisible() | expect(page.getByText('Child of Dave Whitfield')).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-people-relationships.spec.ts",
    "line": 80,
    "name": "Has passed shows the year and sorts last",
    "purpose": "Has passed shows the year and sorts last",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { level: 1, name: `${first} Zzpassed` })).toBeVisible() | expect(row).toContainText('died 2019'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-people-relationships.spec.ts",
    "line": 101,
    "name": "saves my late husband's niece exactly",
    "purpose": "saves my late husband's niece exactly",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { level: 1, name: `${first} Ownwords` })).toBeVisible() | expect(page.getByText(`${words}, related to Dave Whitfield`)).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-people-relationships.spec.ts",
    "line": 117,
    "name": "Not sure creates no person",
    "purpose": "Not sure creates no person",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByText('You may already have this person: Bob Whitfield. Same person?')).toBeVisible() | expect(page.getByText('Same person?')).toHaveCount(0). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-people-roster-k1.spec.ts",
    "line": 10,
    "name": "Shannon gets her own roster after Dave signs out",
    "purpose": "Shannon gets her own roster after Dave signs out",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page).toHaveURL(/\\/login/) | expect(laterAuth[0]).toBe(`Bearer ${token}`). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-people-roster-k1.spec.ts",
    "line": 53,
    "name": "Remove asks for the roster again and the relationship line follows it",
    "purpose": "Remove asks for the roster again and the relationship line follows it",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { level: 1, name: 'Emily Marsh' })).toBeVisible() | expect(firstBody).toContain('Your child'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-person-join.spec.ts",
    "line": 10,
    "name": "fresh people: Different people, preview, Undo, old link and Separate",
    "purpose": "fresh people: Different people, preview, Undo, old link and Separate",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(response.ok()).toBeTruthy() | expect(page.getByRole('heading', { level: 1, name: full, exact: true })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-privacy-chip-274.spec.ts",
    "line": 6,
    "name": "privacy chip names a non-spouse share and clears when it is revoked",
    "purpose": "privacy chip names a non-spouse share and clears when it is revoked",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(card.getByText('Only you can open it')).toBeVisible() | expect(page.getByRole('heading', { name: 'Who can see this' })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-r1-accepted-executor.spec.ts",
    "line": 114,
    "name": "accept from item review places the named executor in Named in your plans",
    "purpose": "accept from item review places the named executor in Named in your plans",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(executorCard.getByRole('heading', { name: 'Who is this person in your people?' })).toBeVisible({ timeout: 20000 }) | expect(page.getByText(`${paperShownName(pack.executor_name)} is now a person in your people`)).toBeVisible({ timeout: 20000 }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-r5-proposal-containment.spec.ts",
    "line": 87,
    "name": "proposed fact is extra detail on item review and does not regroup People or What you have",
    "purpose": "proposed fact is extra detail on item review and does not regroup People or What you have",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: pack.title, exact: true })).toBeVisible({ timeout: 20000 }) | expect(page.getByRole('heading', { name: 'Unreviewed extra detail' })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-setup-resume.spec.ts",
    "line": 17,
    "name": "owned setup restores saved categories after a new login and reload",
    "purpose": "owned setup restores saved categories after a new login and reload",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: 'Your big items' })).toBeVisible() | expect(page.getByText(/Everything here is optional and can be added later/)).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-setup-resume.spec.ts",
    "line": 37,
    "name": "owned setup shows an absent mark, and an open sheet survives a new login",
    "purpose": "owned setup shows an absent mark, and an open sheet survives a new login",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: 'Your big items' })).toBeVisible() | expect(retirementTile(page).getByText(\"We don't have one\")).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-setup-resume.spec.ts",
    "line": 73,
    "name": "owned setup Finish later keeps its categories",
    "purpose": "owned setup Finish later keeps its categories",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: 'Your big items' })).toBeVisible() | expect(saved?.status).toBe('paused'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-spouse-accept-step-in.spec.ts",
    "line": 125,
    "name": "says so when the inviter named the partner to step in",
    "purpose": "says so when the inviter named the partner to step in",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(partner.getByRole('heading', { name: /invited you to link your Persynl accounts/ })).toBeVisible({ timeout: 20_000 }) | expect(partner.getByText(/also named you to step in/)).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-spouse-accept-step-in.spec.ts",
    "line": 146,
    "name": "an in-app accept shows it before Link, and the role starts after",
    "purpose": "an in-app accept shows it before Link, and the role starts after",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(signup.ok(), await signup.text()).toBeTruthy() | expect(partner.getByText('Persynl invitation')).toBeVisible({ timeout: 20_000 }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-spouse-accept-step-in.spec.ts",
    "line": 197,
    "name": "says nothing extra when nobody was named",
    "purpose": "says nothing extra when nobody was named",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(partner.getByRole('heading', { name: /invited you to link your Persynl accounts/ })).toBeVisible({ timeout: 20_000 }) | expect(partner.getByText(/also named you to step in/)).toHaveCount(0). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-spouse-accept-step-in.spec.ts",
    "line": 217,
    "name": "link path: name the partner after their screen loaded, then Link",
    "purpose": "link path: name the partner after their screen loaded, then Link",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(partner.getByRole('heading', { name: /invited you to link your Persynl accounts/ })).toBeVisible({ timeout: 20_000 }) | expect(partner.getByText(/also named you to step in/)).toHaveCount(0). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-spouse-accept-step-in.spec.ts",
    "line": 267,
    "name": "in-app path: name the partner after the Home card loaded, then Link",
    "purpose": "in-app path: name the partner after the Home card loaded, then Link",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(partner.getByText('Persynl invitation')).toBeVisible({ timeout: 20_000 }) | expect(partner.getByTestId('incoming-step-in-line-card')).toHaveCount(0). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-stage04-relations.spec.ts",
    "line": 39,
    "name": "Add person → friend → Remove → Undo stays out of Family",
    "purpose": "Add person → friend → Remove → Undo stays out of Family",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: 'Add a person' })).toBeVisible() | expect(response.ok()).toBeTruthy(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-step-in-status.spec.ts",
    "line": 26,
    "name": "shows the named doctor and the deed city and state",
    "purpose": "shows the named doctor and the deed city and state",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(physicianBody.names).toEqual(['Dr. Anita Rao']) | expect(rows.some((row) => row.kind_label === 'Deed' && row.institution_name === 'Tempe, AZ')).toBe(true). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-step-in-status.spec.ts",
    "line": 64,
    "name": "Go back from a fresh tab opens Home for the member, and a claimant sees the member page",
    "purpose": "Go back from a fresh tab opens Home for the member, and a claimant sees the member page",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(memberTab.getByRole('heading', { name: \"I'm fine\" })).toBeVisible() | expect(memberTab).toHaveURL((url). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-step-in-status.spec.ts",
    "line": 98,
    "name": "closing one request does not mark the earlier stop page closed",
    "purpose": "closing one request does not mark the earlier stop page closed",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(deathStop).toBeVisible() | expect(page).toHaveURL(new RegExp(`/step-in/requests/${deathRequestID}/stop`). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-worth-a-look.spec.ts",
    "line": 7,
    "name": "Dave seed /alerts shows Robert Whitfield as deceased executor",
    "purpose": "Dave seed /alerts shows Robert Whitfield as deceased executor",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: 'Worth a look' })).toBeVisible({ timeout: 20000 }) | expect(page.getByText(/Last will and testament \\(2014\\) names Robert Whitfield as executor/i)).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-worth-a-look.spec.ts",
    "line": 28,
    "name": "Hub band and Home card share the findings DTO",
    "purpose": "Hub band and Home card share the findings DTO",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: 'What you have' })).toBeVisible({ timeout: 20000 }) | expect(hubBand.getByRole('heading', { name: /things worth a look/i })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/g6-worth-a-look.spec.ts",
    "line": 54,
    "name": "Dave seed Home leads with deceased executor and Accounts opens What you have",
    "purpose": "Dave seed Home leads with deceased executor and Accounts opens What you have",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: /Welcome back/i })).toBeVisible({ timeout: 20000 }) | expect(page.getByRole('heading', { name: 'Documents' })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/home.spec.ts",
    "line": 51,
    "name": "a new member lands on the day-zero Home shell",
    "purpose": "a new member lands on the day-zero Home shell",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('link', { name: 'Home' })).toBeVisible() | expect(page.getByRole('heading', { name: /Welcome to Persynl/i })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/home.spec.ts",
    "line": 67,
    "name": "the card tap contract: the open arrow navigates, the body does not",
    "purpose": "the card tap contract: the open arrow navigates, the body does not",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page).toHaveURL('/') | expect(page).toHaveURL(/\\/documents$/). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/journal.spec.ts",
    "line": 43,
    "name": "write an entry, edit it inline, then delete it",
    "purpose": "write an entry, edit it inline, then delete it",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Conditional skip present. Assertion evidence: expect(page.getByRole('heading', { name: 'My journal' })).toBeVisible() | expect(page.getByText(body)).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Conditional test.skip(...) in body; runtime skip depends on environment. Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/profile-spouse-invite.spec.ts",
    "line": 53,
    "name": "no spouse + no pending can create an invite, copy the link, and not claim email",
    "purpose": "no spouse + no pending can create an invite, copy the link, and not claim email",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Conditional skip present. Assertion evidence: expect(page.getByRole('heading', { name: 'Profile settings' })).toBeVisible() | expect(page.getByTestId('profile-spouse-invite')).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Conditional test.skip(...) in body; runtime skip depends on environment. Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/profile-spouse-invite.spec.ts",
    "line": 117,
    "name": "does not offer create when GET /api/me has an active spouse",
    "purpose": "does not offer create when GET /api/me has an active spouse",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Conditional skip present. Assertion evidence: expect(page.getByRole('heading', { name: 'Profile settings' })).toBeVisible() | expect(page.getByTestId('profile-spouse-invite')).toHaveCount(0). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Conditional test.skip(...) in body; runtime skip depends on environment. Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/signup-individual.spec.ts",
    "line": 31,
    "name": "completes full individual signup flow and shows success screen",
    "purpose": "completes full individual signup flow and shows success screen",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: 'Create Account' })).toBeVisible() | expect(page.getByRole('heading', { name: \"Who's this vault for?\" })).toHaveCount(0). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/signup-individual.spec.ts",
    "line": 95,
    "name": "Step 1: validates email format",
    "purpose": "Step 1: validates email format",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByText('Please enter a valid email address')).toBeVisible() | expect(page.getByRole('heading', { name: 'Create Account' })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/signup-individual.spec.ts",
    "line": 112,
    "name": "Step 1: validates password minimum length",
    "purpose": "Step 1: validates password minimum length",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByText('Password must be at least 6 characters')).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/signup-individual.spec.ts",
    "line": 124,
    "name": "Step 1: validates passwords match",
    "purpose": "Step 1: validates passwords match",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByText('Passwords do not match')).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/signup-individual.spec.ts",
    "line": 136,
    "name": "Step 2: requires account type selection",
    "purpose": "Step 2: requires account type selection",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(continueButton).toBeDisabled(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/signup-individual.spec.ts",
    "line": 151,
    "name": "Step 3: validates required name fields",
    "purpose": "Step 3: validates required name fields",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(continueButton).toBeDisabled() | expect(continueButton).toBeDisabled(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/signup-individual.spec.ts",
    "line": 174,
    "name": "can navigate back through steps",
    "purpose": "can navigate back through steps",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: 'Create Account' })).toBeVisible() | expect(page.getByLabel('Email')).toHaveValue(testEmail). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/signup-individual.spec.ts",
    "line": 206,
    "name": "shows loading state during submission",
    "purpose": "shows loading state during submission",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect( submitButton.or(page.getByRole('heading', { name: 'Your vault is ready!' })) ).toBeVisible({ timeout: 15000 }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/signup-individual.spec.ts",
    "line": 232,
    "name": "success screen has Go to Login button that navigates correctly",
    "purpose": "success screen has Go to Login button that navigates correctly",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: 'Your vault is ready!' })).toBeVisible({ timeout: 15000, }) | expect(page).toHaveURL('/login'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/signup-individual.spec.ts",
    "line": 263,
    "name": "Create Another Account button resets the form",
    "purpose": "Create Another Account button resets the form",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: 'Your vault is ready!' })).toBeVisible({ timeout: 15000, }) | expect(page.getByRole('heading', { name: 'Create Account' })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/signup-joint-separate.spec.ts",
    "line": 7,
    "name": "credentials continue to names, not a spouse choice",
    "purpose": "credentials continue to names, not a spouse choice",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: 'Tell us about yourself' })).toBeVisible() | expect(page.getByRole('heading', { name: \"Who's this vault for?\" })).toHaveCount(0). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/signup-joint-separate.spec.ts",
    "line": 19,
    "name": "Ada: SignupPage honors ?invite= and posts invite_token",
    "purpose": "Ada: SignupPage honors ?invite= and posts invite_token",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByText('Dave Matlock invited you to create your login')).toBeVisible() | expect(page.getByLabel('Email')).toHaveValue('ada-invitee@test.example.com'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/signup-joint-separate.spec.ts",
    "line": 63,
    "name": "Ada: two independent signups without accept remain unlinked",
    "purpose": "Ada: two independent signups without accept remain unlinked",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: 'Your vault is ready!' })).toBeVisible({ timeout: 15000 }) | expect(seenBodies).toHaveLength(2). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/signup-onboarding.spec.ts",
    "line": 51,
    "name": "unique signup completes onboarding, lands on home, and later login stays on home",
    "purpose": "unique signup completes onboarding, lands on home, and later login stays on home",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: 'Your vault is ready!' })).toBeVisible({ timeout: 20000, }) | expect(page).toHaveURL('/login'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/signup-onboarding.spec.ts",
    "line": 102,
    "name": "Get Started keeps the form and shows an error when save fails",
    "purpose": "Get Started keeps the form and shows an error when save fails",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: 'Your vault is ready!' })).toBeVisible({ timeout: 20000, }) | expect(page).toHaveURL(/\\/onboarding/). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/signup-onboarding.spec.ts",
    "line": 144,
    "name": "Create Account succeeds when the display name already exists and duplicate email is honest",
    "purpose": "Create Account succeeds when the display name already exists and duplicate email is honest",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: 'Your vault is ready!' })).toBeVisible({ timeout: 20000, }) | expect(page.getByRole('heading', { name: 'Create Account' })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/signup-onboarding.spec.ts",
    "line": 175,
    "name": "Dave still reaches home without repeating onboarding",
    "purpose": "Dave still reaches home without repeating onboarding",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Conditional skip present. Assertion evidence: expect(page).not.toHaveURL(/\\/onboarding/) | expect(page.getByRole('heading', { name: /Welcome (to Persynl|back), Dave/i })).toBeVisible({ timeout: 20000, }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Conditional test.skip(...) in body; runtime skip depends on environment. Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/todos.spec.ts",
    "line": 65,
    "name": "Dave can add, complete, undo, and delete on /todos",
    "purpose": "Dave can add, complete, undo, and delete on /todos",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Conditional skip present. Assertion evidence: expect(page.getByRole('heading', { name: 'To-dos' })).toBeVisible() | expect(page.getByText('Your to-dos are private to you.')).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Conditional test.skip(...) in body; runtime skip depends on environment. Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/todos.spec.ts",
    "line": 93,
    "name": "Dave can add, complete, and undo on the Home card",
    "purpose": "Dave can add, complete, and undo on the Home card",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Conditional skip present. Assertion evidence: expect(page.getByRole('heading', { name: 'To-do' })).toBeVisible() | expect(page.getByText(label)).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Conditional test.skip(...) in body; runtime skip depends on environment. Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/todos.spec.ts",
    "line": 118,
    "name": "Shannon does not see Dave's to-dos",
    "purpose": "Shannon does not see Dave's to-dos",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Conditional skip present. Assertion evidence: expect(page.getByText(label)).toBeVisible() | expect(shannonPage.getByRole('heading', { name: 'To-dos' })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Conditional test.skip(...) in body; runtime skip depends on environment. Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/utils/cast-login.test.ts",
    "line": 26,
    "name": "uses the deliberately selected API and key, not stale Vite dotenv values",
    "purpose": "uses the deliberately selected API and key, not stale Vite dotenv values",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(await castGrantSkipReason(user)).toBeUndefined() | expect(fetcher).toHaveBeenCalledWith('http://127.0.0.1:54921/auth/v1/token?grant_type=password', expect.objectContaining({ headers: expect.objectContaining({ apikey: 'selected-anon' })",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "tests/utils/cast-login.test.ts",
    "line": 35,
    "name": "refuses an opted-in remote API before making an auth request",
    "purpose": "refuses an opted-in remote API before making an auth request",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(castGrantSkipReason(user)).rejects.toThrow('requires a plain loopback auth API') | expect(fetcher).not.toHaveBeenCalled()",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "tests/utils/cast-login.test.ts",
    "line": 45,
    "name": "still supports a Vite-only local setup",
    "purpose": "still supports a Vite-only local setup",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(fetcher).toHaveBeenCalledWith('http://127.0.0.1:54321/auth/v1/token?grant_type=password', expect.objectContaining({ headers: expect.objectContaining({ apikey: 'stale-anon' })",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "tests/utils/cast-login.test.ts",
    "line": 56,
    "name": "fails an opted-in fixture instead of silently skipping rejected credentials",
    "purpose": "fails an opted-in fixture instead of silently skipping rejected credentials",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(skipUnlessCast()).rejects.toThrow('Opted-in browser fixture is not ready: GoTrue rejected dave@example.com (invalid_credentials) | expect(skip).not.toHaveBeenCalled()",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "tests/utils/cast-login.test.ts",
    "line": 64,
    "name": "keeps the honest default skip when no integration fixture was requested",
    "purpose": "keeps the honest default skip when no integration fixture was requested",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: expect(skip).toHaveBeenCalledWith(true, expect.stringContaining('invalid_credentials')",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "tests/utils/cast-login.test.ts",
    "line": 72,
    "name": "does not turn an opted-in browser login failure into a passing skip",
    "purpose": "does not turn an opted-in browser login failure into a passing skip",
    "classification": "mixed",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(login(page, user)).rejects.toThrow('login stayed on /login (Sign in failed) | expect(skip).not.toHaveBeenCalled(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "reviewed"
  },
  {
    "file": "tests/utils/local-target.test.ts",
    "line": 7,
    "name": "defaults to the shared local target when nothing is set",
    "purpose": "defaults to the shared local target when nothing is set",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(resolveDbTarget(base())).toEqual({ host: '127.0.0.1', port: '54322', user: 'postgres', database: 'postgres', password: 'postgres', }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/utils/local-target.test.ts",
    "line": 17,
    "name": "honors SUPABASE_DB_URL for an alternate fixture",
    "purpose": "honors SUPABASE_DB_URL for an alternate fixture",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(t).toEqual({ host: '127.0.0.1', port: '55322', user: 'postgres', database: 'postgres', password: 'postgres' }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/utils/local-target.test.ts",
    "line": 24,
    "name": "honors PGPORT alone for an alternate fixture",
    "purpose": "honors PGPORT alone for an alternate fixture",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(resolveDbTarget(base({ PGPORT: '55322' })).port).toBe('55322'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/utils/local-target.test.ts",
    "line": 28,
    "name": "accepts identical URL aliases",
    "purpose": "accepts identical URL aliases",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(resolveDbTarget(base({ SUPABASE_DB_URL: url, DATABASE_URL: url, DB_URL: url })).port).toBe('55322'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/utils/local-target.test.ts",
    "line": 33,
    "name": "refuses conflicting URL aliases",
    "purpose": "refuses conflicting URL aliases",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(() => resolveDbTarget(base({ SUPABASE_DB_URL: 'postgres://postgres@127.0.0.1:55322/postgres', DATABASE_URL: 'postgres://postgres@127.0.0.1:54322/postgres', }))).toThrow(/conflicting database URLs/). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/utils/local-target.test.ts",
    "line": 40,
    "name": "refuses PG* disagreeing with the database URL",
    "purpose": "refuses PG* disagreeing with the database URL",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(() => resolveDbTarget(base({ SUPABASE_DB_URL: 'postgres://postgres@127.0.0.1:55322/postgres', PGPORT: '54322', }))).toThrow(/inherited PGPORT conflicts/). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/utils/local-target.test.ts",
    "line": 47,
    "name": "treats loopback aliases as equal for URL-vs-PG* agreement",
    "purpose": "treats loopback aliases as equal for URL-vs-PG* agreement",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(t.host).toBe('127.0.0.1'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/utils/local-target.test.ts",
    "line": 55,
    "name": "refuses a non-loopback database host",
    "purpose": "refuses a non-loopback database host",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(() => resolveDbTarget(base({ SUPABASE_DB_URL: 'postgres://postgres@10.1.2.3:55322/postgres', }))).toThrow(/non-loopback/). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/utils/local-target.test.ts",
    "line": 61,
    "name": "refuses a connstring in PGDATABASE",
    "purpose": "refuses a connstring in PGDATABASE",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(() => resolveDbTarget(base({ PGDATABASE: 'host=evil.example port=1' }))).toThrow(/plain name/). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/utils/local-target.test.ts",
    "line": 65,
    "name": "refuses inherited %s",
    "purpose": "refuses inherited %s (parameterized: 4 cases)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(() => resolveDbTarget(base({ [key]: 'x' }))).toThrow(new RegExp(key). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest parameterized declaration.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/utils/local-target.test.ts",
    "line": 69,
    "name": "refuses a divergent PGHOSTADDR",
    "purpose": "refuses a divergent PGHOSTADDR",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(() => resolveDbTarget(base({ PGPORT: '55322', PGHOSTADDR: '::1' }))).toThrow(/PGHOSTADDR/). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/utils/local-target.test.ts",
    "line": 73,
    "name": "accepts a matching PGHOSTADDR",
    "purpose": "accepts a matching PGHOSTADDR",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(resolveDbTarget(base({ PGPORT: '55322', PGHOSTADDR: '127.0.0.1' })).host).toBe('127.0.0.1'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/utils/local-target.test.ts",
    "line": 77,
    "name": "refuses alternate SUPABASE_URL with no DB override (silent-primary guard)",
    "purpose": "refuses alternate SUPABASE_URL with no DB override (silent-primary guard)",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(() => resolveDbTarget(base({ SUPABASE_URL: 'http://127.0.0.1:55321' }))).toThrow(/55321/). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/utils/local-target.test.ts",
    "line": 81,
    "name": "refuses alternate VITE_SUPABASE_URL with no DB override",
    "purpose": "refuses alternate VITE_SUPABASE_URL with no DB override",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(() => resolveDbTarget(base({ VITE_SUPABASE_URL: 'http://127.0.0.1:55321' }))).toThrow(/55321/). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/utils/local-target.test.ts",
    "line": 85,
    "name": "allows the default SUPABASE_URL port with no override",
    "purpose": "allows the default SUPABASE_URL port with no override",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(resolveDbTarget(base({ SUPABASE_URL: 'http://127.0.0.1:54321' })).port).toBe('54322'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/utils/local-target.test.ts",
    "line": 89,
    "name": "refuses a remote SUPABASE_URL",
    "purpose": "refuses a remote SUPABASE_URL",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(() => resolveDbTarget(base({ SUPABASE_URL: 'https://example.supabase.co' }))).toThrow(/not loopback/). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/utils/local-target.test.ts",
    "line": 93,
    "name": "does not echo credentials in parse errors",
    "purpose": "does not echo credentials in parse errors",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(message).not.toBe('') | expect(message).not.toContain('SECRETTOKEN'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/utils/local-target.test.ts",
    "line": 107,
    "name": "folds loopback aliases to numeric addresses",
    "purpose": "folds loopback aliases to numeric addresses",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(canonicalHost('localhost')).toBe('127.0.0.1') | expect(canonicalHost('127.0.0.1')).toBe('127.0.0.1'). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/utils/quill-family-packet-pdf.test.ts",
    "line": 92,
    "name": "writes 36 pages with per-range sentinels and opening citations",
    "purpose": "writes 36 pages with per-range sentinels and opening citations",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(quillFamilyPacketPageTexts()).toHaveLength(36) | expect(parsePagesField(info), 'pdfinfo Pages:').toBe(36). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/utils/quill-family-packet-pdf.test.ts",
    "line": 134,
    "name": "marks the cited opening page with a per-run nonce",
    "purpose": "marks the cited opening page with a per-run nonce",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(quillFamilyPacketPageTexts().join('\\n'), 'default producer must not contain the nonce').not.toContain(nonce) | expect(parsePagesField(info), 'pdfinfo Pages:').toBe(36). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Vitest included by vite.config.ts.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/vault.spec.ts",
    "line": 218,
    "name": "vault page has required elements",
    "purpose": "vault page has required elements",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(vaultHeading(page)).toBeVisible() | expect(page.getByRole('button', { name: 'Add a document' }).first()).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/vault.spec.ts",
    "line": 227,
    "name": "can upload a file and see smart summary after processing",
    "purpose": "can upload a file and see smart summary after processing",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Conditional skip present. Assertion evidence: expect(row.getByText('Automatic Classification - In Progress')).toBeHidden({ timeout: 120000 }) | expect(row.getByRole('heading', { name: 'Smart summary' })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Conditional test.skip(...) in body; runtime skip depends on environment. Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/vault.spec.ts",
    "line": 246,
    "name": "can view extracted metadata after processing",
    "purpose": "can view extracted metadata after processing",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Conditional skip present. Assertion evidence: expect(row.getByText('Automatic Classification - In Progress')).toBeHidden({ timeout: 120000 }) | expect( row.getByText(/Insurance|Legal|Financial|Healthcare|Personal|Identification|Military|Final Wishes/).first(), ).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Conditional test.skip(...) in body; runtime skip depends on environment. Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/vault.spec.ts",
    "line": 268,
    "name": "can view document details page",
    "purpose": "can view document details page",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page).toHaveURL(/\\/document\\/.+/) | expect(page.getByRole('heading', { name: testDocumentName })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/vault.spec.ts",
    "line": 296,
    "name": "can delete a document",
    "purpose": "can delete a document",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed against test body: asserts helper/hook/API outcomes or observable state changes; mock usage is a test seam, not a private implementation assertion. Assertion evidence: { // Upload a file await uploadDocument(page, testDocumentName); // Delete through the row action (handles the confirm dialog) await deleteDocument(page, testDocumentName); }",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "reviewed"
  },
  {
    "file": "tests/vault.spec.ts",
    "line": 304,
    "name": "category filters only show categories from uploaded documents",
    "purpose": "category filters only show categories from uploaded documents",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(group).toBeVisible({ timeout: 10000 }) | expect(buttonCount).toBeGreaterThanOrEqual(2). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/vault.spec.ts",
    "line": 335,
    "name": "upload modal allows naming document before upload",
    "purpose": "upload modal allows naming document before upload",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('dialog')).toBeVisible() | expect(page.getByText('sample-poa.pdf')).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/vault.spec.ts",
    "line": 362,
    "name": "document shows processing status while being analyzed",
    "purpose": "document shows processing status while being analyzed",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: Conditional skip present. Assertion evidence: expect(processingIndicator).toBeHidden({ timeout: 120000 }) | expect(row.getByRole('heading', { name: 'Smart summary' })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Conditional test.skip(...) in body; runtime skip depends on environment. Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/vault.spec.ts",
    "line": 402,
    "name": "empty vault shows no category filters",
    "purpose": "empty vault shows no category filters",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByRole('heading', { name: 'No documents yet' })).toBeVisible() | expect(filterGroup(page)).toBeHidden(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/vault.spec.ts",
    "line": 413,
    "name": "uploading a document adds its category to filters",
    "purpose": "uploading a document adds its category to filters",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(filterGroup(page)).toBeHidden() | expect(group).toBeVisible({ timeout: 10000 }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/vault.spec.ts",
    "line": 451,
    "name": "deleting last document in a category removes that filter",
    "purpose": "deleting last document in a category removes that filter",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(group.getByRole('button')).toHaveCount(2, { timeout: 10000 }) | expect(filterGroup(page)).toBeHidden({ timeout: 10000 }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/vault.spec.ts",
    "line": 490,
    "name": "wide screens show an at-a-glance overview rail",
    "purpose": "wide screens show an at-a-glance overview rail",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(rail).toBeHidden() | expect(rail).toBeVisible({ timeout: 10000 }). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  },
  {
    "file": "tests/vault.spec.ts",
    "line": 543,
    "name": "document detail page shows PDF preview",
    "purpose": "document detail page shows PDF preview",
    "classification": "behavior",
    "restates": "no",
    "reason": "Reviewed test declaration and assertion evidence: expect(page.getByText('Document Preview')).toBeVisible({ timeout: 30000 }) | expect(page.getByRole('button', { name: 'Download' })).toBeVisible(). Purpose matches the asserted scenario; fixed UI, API-boundary, or helper outputs are behavior contracts. Playwright specs assert browser-level outcomes.",
    "execution_notes": "Playwright. playwright.config.ts testMatch includes only g6-*.spec.ts; signup specs match playwright.signup.config.ts; remaining specs are excluded by default unless a different config or testMatch is supplied.",
    "confidence": "heuristic"
  }
]
