docs(audit): record Phase C batch-1 PR refs + #108 verification - #76
Conversation
Single housekeeping commit per the engagement's "after a batch
clears, update the audit file in one PR" cadence. Closes the loop
on the marketing-audit cross-cutting and per-page rows shipped this
session:
marketing audit row -> PR
#1 CRIT siteUrl \n -> #67
#2 CRIT /status unship -> #68
#3 HIGH JSON-LD vs footer email -> #70
#11 MED Gmail support address -> #70 (rolled in)
§11 D /compliance + /care 404s -> #71
#85 HIGH contact form validation -> #73
#92 HIGH cookie banner tab order -> #72
#96 MED unnamed icon buttons -> #74
#100 HIGH touch targets -> #74 (rolled in)
#108 HIGH /security mobile LCP -> #75
app audit row -> PR (recorded for completeness)
#6 MED add-note-form reload -> #66 (Option B)
Each row's "Suggested fix" column is preserved; the audit's
recommendation alongside the shipped approach is the trail. Where
the shipped fix differed from the audit's recommendation (e.g. #6
went inline + sticky-toast rather than introducing a new toast
primitive; #71 added 307 redirects because investigation showed
neither route was ever built), the row now records the actual
shape.
§19 of the marketing-audit doc is new — it indexes the batch-1
closures and notes a cross-reference to PR #69 (compliance-testing
workflow permissions gap, same shape as the PR #54/#55 env-var
fixes; recorded so the next CI sweep doesn't re-discover it).
#108 is the highest-value entry in this housekeeping batch — it
got the full verified-Lighthouse note (LCP element selector, phase
breakdown, top-3 opportunities by overallSavingsMs, prod run URL).
The audit's original "(verify)" annotation was correct: the named
cause (hero image) was real, just rendered by a shared component
that grep over the page directory missed.
Doc-only. No code change.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 91e15fba01
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| Remaining Phase C queue (35 MED + 24 LOW from pass 1, ~13 MED + 13 | ||
| LOW from pass 2 not yet shipped): walked in audit-file order, |
There was a problem hiding this comment.
Keep the remaining HIGH rows in Phase C
When this audit is used as the repair queue, this new summary now says the remaining Phase C work is only MED/LOW, but §3 still has unshipped HIGH findings #4, #5, #6, and #8 (with only #7 explicitly marked obsolete). That makes several high-priority marketing issues look cleared after batch 1 and can cause them to be skipped; please include the remaining HIGH count/list here before moving on to the MED/LOW queue.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Pull request overview
This PR is a documentation-only housekeeping update that records which Phase C marketing/app audit findings have been shipped (with PR references) and adds the verified details for audit row #108 (LCP on /security), keeping the audit trail accurate and reducing re-work in future audit/CI sweeps.
Changes:
- Annotates the 2026-05-13 marketing audit with “Shipped in #…” notes for the Phase C batch-1 HIGH/CRIT items and adds a new §19 summary table (including a CI cross-reference to PR #69).
- Expands the #108 entry with verified Lighthouse run details to confirm root cause and tie it to PR #75.
- Updates the deep audit doc to record PR #66 against finding #6 (admin add-note reload/refresh + toast behavior).
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| docs/audit/2026-05-13-marketing-audit.md | Adds shipped-PR annotations, a verified Lighthouse note for #108, and a new Phase C batch-1 housekeeping section including a CI cross-reference. |
| docs/audit/2026-05-12-deep-audit.md | Updates the PR column/details for finding #6 to reflect the shipped fix in PR #66. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| | # | Sev | Page | Observation | Fix hint | | ||
| |---|-----|------|-------------|----------| | ||
| | 108 | HIGH | `/security` mobile | LCP is **6.5 s** (perf 73). The biggest single opportunity is "Properly size images" at 900 ms — i.e. an image is being served at a resolution far above its rendered size on mobile. The hero image on `/security` is the candidate (verify). | Add explicit `width` / `height` + a `<source media=...>` `srcset` for the security hero image. | | ||
| | 108 | HIGH | `/security` mobile | LCP is **6.5 s** (perf 73). The biggest single opportunity is "Properly size images" at 900 ms — i.e. an image is being served at a resolution far above its rendered size on mobile. The hero image on `/security` is the candidate (verify). **Verified 2026-05-13 with a fresh Lighthouse mobile run** (`tmp/lh-security.json`, prod URL, devtools throttling): performance 61, LCP 7,008 ms; LCP element confirmed `<img class="mk-route-photo-image" src="/marketing-media/security.jpg">` rendered by the shared `<MarketingRouteBackdrop>` portal (not by the security page tree, which is why initial grep over `app/(marketing)/security/` came back empty). Load Time dominates the LCP at **5,263 ms / 75%**. Top three opportunities by `overallSavingsMs`: `uses-responsive-images` 900 ms, `modern-image-formats` 450 ms, `render-blocking-resources` 139 ms — i.e. the audit's named cause was correct, just shipped via a shared component. **Shipped in #75** — converted the bare `<img>` to `next/image` with `fill`, `sizes="100vw"`, `priority`, `quality={60}`; closes both image-related opportunities and benefits every non-home marketing page (covers §17 #109 + #110). | Add explicit `width` / `height` + a `<source media=...>` `srcset` for the security hero image. | |
| - **PR #69** — `compliance-testing` workflow lacked `pull-requests: | ||
| write` permission, so the `compliance-summary` job failed in 5s | ||
| on every PR that touched `app/**/admin/**`, `app/**/privacy/**`, | ||
| `middleware.ts`, or `tests/compliance/**`. Same shape as PR #54 | ||
| / #55 (env-var gaps on the same workflow). Permissions block + | ||
| `continue-on-error: true` on the comment step. Worth noting here | ||
| so the next CI sweep doesn't re-discover it from scratch. |
♿ Accessibility Test Results✅ PASSED - No critical accessibility issues found Tests Performed:
Artifacts: Download the accessibility reports from the "Artifacts" section for detailed results. |
Summary
Single housekeeping commit per the engagement's "after a batch clears, update the audit file in one PR" cadence. Closes the loop on the marketing-audit cross-cutting and per-page rows shipped in this session.
Marketing audit row → PR
\nstripApp audit row → PR (also recorded)
router.refresh()+ sticky-error toast (Option B)#108 verification note
#108 is the highest-value entry in this housekeeping batch — got the full verified-Lighthouse note: LCP element selector, phase breakdown, top-3 opportunities by
overallSavingsMs, prod run URL. The audit's original(verify)annotation was correct: the named cause (hero image) was real, just rendered by a shared component that grep over the page directory missed.CI cross-reference
New §19 of
2026-05-13-marketing-audit.mdreferences PR #69 (compliance-testingworkflow missingpull-requests: write— same shape as PR #54/#55 env-var fixes on the same workflow). Recorded so the next CI sweep doesn't re-discover it from scratch.Test plan
mainand points at a real merged PR.🤖 Generated with Claude Code
Co-Authored-By: Claude Opus 4.7 noreply@anthropic.com