a0d1c1c05b
- job-tracker-ui/src/end-to-end-trust-loop.test.tsx - job-tracker-ui/src/components/JobDetailsDialog.tsx - job-tracker-ui/src/components/Correspondence.tsx - .gsd/milestones/M001/slices/S05/S05-UAT.md
4.1 KiB
4.1 KiB
S05 Live-Safe UAT: Trust Loop Verification
Goal
Verify the end-to-end trust loop on one real job without accidentally sending recruiter email.
Safety Guardrails
- Do not press
Send and log emailunless the environment is explicitly configured to a safe sink, stub mailbox, or other non-production outbound target. - If you are not certain the outbound email path is safe, stop after reviewing the generated follow-up draft.
- Do not paste private recruiter or correspondence bodies into screenshots, tickets, or logs.
- Prefer a job that already has:
- saved package material on the job,
- at least one linked Gmail thread,
- a follow-up reason/readiness signal.
Preconditions
- The API and UI are running against the intended environment.
- Gmail integration is authenticated for the current user.
- The selected job has an identifiable company, job title, and recruiter mailbox/thread history.
- If you plan to verify the send step, outbound email must point at a safe sink/stub. Otherwise stop before sending.
Shared Expected Trust Signals
The same job should present one coherent next action across all entry points:
/jobs/dashboard/reminders
The workspace should make these states clear:
- saved package material can be reused,
- linked Gmail refresh checks already-linked threads instead of requiring full re-import,
- follow-up draft generation is grounded in saved package + correspondence context,
- email sending remains manual.
Flow A — Start from /jobs
- Open
/jobs. - Find a job with a trust/workflow signal chip or next-action button.
- Open the job via the primary next-action control.
- Confirm the workspace opens on the expected tab for that action.
- In Tailored CV:
- verify the saved tailored CV, cover letter, application answer, and recruiter message are present if the job previously had them,
- confirm the workspace explicitly says the saved package material feeds follow-up drafting.
- In Correspondence:
- confirm the linked-thread continuity panel is visible,
- confirm Gmail connection state is shown,
- confirm linked thread count is shown when applicable,
- trigger Refresh linked threads if manual confirmation is needed,
- verify new linked correspondence appears without importing the full thread again.
- In Follow up:
- confirm the draft context references saved package material and thread context,
- confirm the manual-send boundary copy is visible,
- review the generated draft but stop before
Send and log emailunless the environment is explicitly safe.
Flow B — Start from /dashboard
- Open
/dashboard. - Find the same job in an attention/reminder card.
- Open it from the dashboard action.
- Confirm it lands in the same job workspace and the same trust state is visible:
- package material is still saved,
- correspondence continuity is preserved,
- follow-up context remains grounded.
Flow C — Start from /reminders
- Open
/reminders. - Find the same job in the appropriate reminder grouping.
- Open it from the reminder action.
- Confirm it lands in the same workspace for the same job and preserves the same action semantics.
Pass Criteria
- The same job can be opened from
/jobs,/dashboard, and/reminders. - The saved application package is visible and clearly reusable for follow-up drafting.
- Linked Gmail refresh shows continuity on already-linked threads without requiring a whole-thread re-import workflow.
- The follow-up draft is grounded in saved package and correspondence context.
- No recruiter email is sent unless the human explicitly chooses
Send and log emailin a safe environment.
Failure Clues
- Entry points route to different tabs or imply different next actions for the same job.
- Saved package material is missing or no longer called out as reusable context.
- Linked-thread refresh state is invisible or requires re-importing a thread that is already linked.
- Follow-up drafting triggers outbound send behavior or makes send/regenerate coupling unclear.
- Workspace state differs depending on whether the job was opened from jobs, dashboard, or reminders.