Documentation Index
Fetch the complete documentation index at: https://docs.encoreos.io/llms.txt
Use this file to discover all available pages before exploring further.
- Scope: 24 detail/edit routes from Batch 1 (12) + Batch 2 (12) of the “hide redundant header back chevron on mobile” change.
- Owner: PF mobile UX
- Related: PF-37 (mobile sidebar nav /
BottomTabBar), Batch 1/2 visual changes wrapping header ArrowLeft buttons in <span className="hidden md:inline-flex">.
- Last updated: 2026-04-24
Pre-flight
- Sign in to the NorthSight Recovery test org using the credentials in
docs/testing/AI_BROWSER_TESTING.md.
- Open browser devtools and set the viewport to 390 × 844 (iPhone 12/13/14 baseline).
- Confirm the mobile sidebar /
BottomTabBar is visible — this is the affordance replacing the header back chevron on mobile.
- Have a second viewport ready at 1280 × 720 (desktop baseline) — either a second browser window or DevTools “Responsive” toggle.
- Use a recent Chromium build (Chrome/Edge ≥ 122) for the primary pass; spot-check Safari mobile if available.
Pass / fail rule (applied to every route)
For every route below, confirm all three assertions:
- ✅ At 390 × 844: the header does not render the
ArrowLeft chevron button.
- ✅ At 1280 × 720: the header does render the
ArrowLeft chevron button, and clicking it navigates to the parent list.
- ✅ At 390 × 844: the page title, primary actions, and content layout are unchanged — no leftover empty gap where the chevron used to sit (header items still left-aligned cleanly).
If any of the three fails → mark the row ❌, capture a screenshot, and file a bug referencing this checklist + the file path in the row.
Route checklist
Batch 1 (12)
| # | Route | File | Mobile hidden ✓ | Desktop visible ✓ | Layout intact ✓ | Notes |
|---|
| 1 | /hr/ats/candidates/:id | src/cores/hr/pages/ats/CandidateDetailPage.tsx | ☐ | ☐ | ☐ | |
| 2 | /hr/ats/jobs/:id | src/cores/hr/pages/ats/JobPostingDetailPage.tsx | ☐ | ☐ | ☐ | |
| 3 | /hr/payroll/batches/:id | src/cores/hr/pages/payroll/PaymentBatchDetailPage.tsx | ☐ | ☐ | ☐ | |
| 4 | /hr/timesheets/team/:id | src/cores/hr/pages/TeamTimesheetDetail.tsx | ☐ | ☐ | ☐ | |
| 5 | /hr/org-chart | src/cores/hr/pages/OrgChart.tsx | ☐ | ☐ | ☐ | |
| 6 | /ce/web-forms/:id | src/cores/ce/pages/WebFormDetailPage.tsx | ☐ | ☐ | ☐ | |
| 7 | /fa/bank-statements/:id | src/cores/fa/pages/BankStatementDetailPage.tsx | ☐ | ☐ | ☐ | |
| 8 | /fw/automations/:id | src/cores/fw/pages/AutomationDetail.tsx | ☐ | ☐ | ☐ | |
| 9 | /fw/forms/:id/analytics | src/cores/fw/pages/FormAnalyticsDetailPage.tsx | ☐ | ☐ | ☐ | |
| 10 | /it/offboarding/:id | src/cores/it/pages/onboarding/OffboardingInstanceDetailPage.tsx | ☐ | ☐ | ☐ | |
| 11 | /it/security/patches/:id | src/cores/it/pages/security/patches/PatchDetailPage.tsx | ☐ | ☐ | ☐ | |
| 12 | /templates/documents/:id | src/platform/templates/pages/DocumentTemplateEditor.tsx | ☐ | ☐ | ☐ | |
Batch 2 (12)
| # | Route | File | Mobile hidden ✓ | Desktop visible ✓ | Layout intact ✓ | Notes |
|---|
| 13 | /it/vendors/new | src/cores/it/pages/vendors/NewVendorPage.tsx | ☐ | ☐ | ☐ | |
| 14 | /it/contracts/new | src/cores/it/pages/vendors/NewContractPage.tsx | ☐ | ☐ | ☐ | |
| 15 | /it/tickets/new | src/cores/it/pages/tickets/NewTicketPage.tsx | ☐ | ☐ | ☐ | |
| 16 | /hr/fmla-cases/:id | src/cores/hr/pages/FMLACaseDetailPage.tsx | ☐ | ☐ | ☐ | |
| 17 | /hr/employees/:id | src/cores/hr/pages/EmployeeDetail.tsx | ☐ | ☐ | ☐ | |
| 18 | /hr/positions/:id | src/cores/hr/pages/PositionDetailPage.tsx | ☐ | ☐ | ☐ | |
| 19 | /fa/journal-entries/:id | src/cores/fa/pages/JournalEntryDetailPage.tsx | ☐ | ☐ | ☐ | |
| 20 | /fa/purchase-orders/:id | src/cores/fa/pages/PurchaseOrderDetailPage.tsx | ☐ | ☐ | ☐ | |
| 21 | /fa/expenses/:id | src/cores/fa/pages/ExpenseReportDetailPage.tsx | ☐ | ☐ | ☐ | |
| 22 | /fa/reimbursement-payments/:id | src/cores/fa/pages/ReimbursementPaymentDetailPage.tsx | ☐ | ☐ | ☐ | |
| 23 | /lo/issues/:id | src/cores/lo/pages/IssueDetailPage.tsx | ☐ | ☐ | ☐ | |
| 24 | /gr/audits/:id | src/cores/gr/pages/AuditDetail.tsx | ☐ | ☐ | ☐ | |
Spot-check exclusions (back must still show at 390 × 844)
These routes were intentionally not wrapped. Verify the back / cancel affordance is still visible on mobile to catch over-application of the rule.
| # | Surface | Why excluded | Mobile back still visible ✓ |
|---|
| E1 | Any wizard-shell page (e.g. LeaveRequestWizardPage, PerformanceReviewWizardPage, LeadIntakeWizard) | Wizard step-back semantics — hiding breaks navigation between steps. | ☐ |
| E2 | Any page rendered inside a Radix Dialog / Sheet / AlertDialog | The back/close button is the only dismissal affordance. | ☐ |
| E3 | Pages with a labeled back button (e.g. InterviewDetailPage “Back to Interviews”) | Label provides discoverability mobile users rely on. | ☐ |
| E4 | PageHeader-driven pages (e.g. PatientDetailPage) | Never had a header chevron — confirms we did not regress header chrome. | ☐ |
How to verify a row quickly (3 steps)
- Resize devtools viewport to 390 × 844 → load the route → confirm no chevron in the header.
- Resize to 1280 × 720 (or open a second tab at desktop width) → confirm chevron is visible and clickable, and it navigates to the expected parent list.
- Back at 390 × 844, scroll once to confirm content reflows without dead space where the chevron used to sit.
Tip: keep DevTools open with the device toolbar pinned and toggle between the two presets — the page does not need to reload between resize checks.
Sign-off
| Field | Value |
|---|
| Tester name | |
| Date | |
| Browser / version | |
| 24 / 24 Batch rows green? (Y/N) | |
| 4 / 4 exclusion rows green? (Y/N) | |
| Bugs filed (links) | |
| Notes | |
Out of scope
- No code changes are part of this checklist — it is a QA artifact only.
- Automated Playwright coverage for the same assertions is deferred; author
tests/e2e/platform/phase-1-back-button.spec.ts when Batch 3 lands.
- No update to
IMPLEMENTATION_LOG.md — Batch 1 and Batch 2 already log the underlying code changes.