docs(audit): roll up Phase C batch 2 (#77-#84) + portal-sweep follow-ups - #85
Conversation
Cadence rollup for the Phase C HIGH batch 2 round. No code/runtime changes — audit-doc only. Updates: - Rows #4, #5, #6, #8 (§3 cross-cutting HIGHs): annotate Shipped in #81, #80, #79, #82 with the actual approach taken on each. - Row #16 (MED, JSON-LD personal twitter handle): Shipped in #78. - §20c (industry-page portal opt-out): 5 of 10 missing entries marked Resolved by #83 as intentional design call; the comment block in lib/marketing/background-media.ts is now the source of truth. - §20d (oversized portal JPEGs): record what #84 actually shipped (3 portrait recompresses) and what it didn't (4 landscapes that re-encoded larger). Lesson captured: aspirational ≤180 KB target only applies when the source is over-dimensioned. - New §19a section indexing the batch 2 PR list (#77-#84) and explicitly recording the severity-ordering self-catch where #78 (MED) shipped before §3 HIGHs, with course-correction. 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: 40d2b866dd
ℹ️ 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".
| #78 (MED #16) shipped before the unshipped §3 HIGHs (#4, #5, #6, | ||
| #8). The severity-first rule was violated on that one cadence step. | ||
| Course-corrected by re-prioritising the four HIGHs immediately and | ||
| shipping them as #79 → #82 before resuming the MED queue. Logging |
There was a problem hiding this comment.
Correct the recorded severity-ordering self-catch
This ordering note overstates the slip: in the checked commit history (git log --reverse 87784d6..c244959), #79 shipped at 2026-05-13 16:49 +1000 and #80 at 17:00 +1000, while #78 shipped later at 23:01 +1000. That means #78 did not ship before HIGH rows #6 and #5, only before the still-unshipped #4/#8, so this audit rollup will mislead future cadence/prioritization reviews unless the self-catch is narrowed.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Pull request overview
Rolls up documentation updates for the Phase C audit cadence (batch 2), annotating the marketing audit with “Shipped in #…” references and recording outcomes/lessons from related follow-up PRs. This is documentation-only and is intended to keep the audit log accurate and traceable to merged changes.
Changes:
- Updates §3 cross-cutting rows (#4, #5, #6, #8) and row #16 with “Shipped in” references and brief outcome notes.
- Adds a new §19a housekeeping section indexing batch-2 PRs and recording a severity-ordering process note.
- Updates §20c/§20d portal-sweep sections to reflect partial resolutions (intentional opt-outs + image recompression outcomes).
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| | 4 | HIGH | `/security`, `/trust`, all industry pages | 18+ frameworks listed (SOC 2, ISO 27001, GDPR, HIPAA, PCI-DSS, NIST CSF, CIS Controls, etc.) with no certification-status qualifier — no "certified", "in progress", "supported", or "ready" anywhere on the public surface. Enterprise buyers reading "SOC 2" assume Type II certification. | Add a single status taxonomy ("Certified" / "Audit-ready" / "Supported framework") and apply it everywhere a framework name appears in trust context. | | ||
| | 5 | HIGH | 67 of 85 pages | Two `<h1>` elements rendered per page with different Tailwind class signatures (`text-[2.35rem] ...` and `text-[2.5rem] ...`). Most visible on `/contact` and `/blog` where both `<h1>`s carry the same text. Looks like the marketing layout's hero heading and the page-level heading both render as `h1`. A11y violation and SEO confusion. | Demote one to `h2` (probably the layout-level hero subtitle, or wrap it in a `role="banner"` block with `h1` only for the page-specific heading). | | ||
| | 6 | HIGH | `/features` | Hero claim says "18 features across compliance, automation, security, and collaboration." Category counts immediately below sum to 5+6+4+7+3 = **25**, not 18. | Fix the hero number or the category counts; they should match. | | ||
| | 4 | HIGH | `/security`, `/trust`, all industry pages | 18+ frameworks listed (SOC 2, ISO 27001, GDPR, HIPAA, PCI-DSS, NIST CSF, CIS Controls, etc.) with no certification-status qualifier — no "certified", "in progress", "supported", or "ready" anywhere on the public surface. Enterprise buyers reading "SOC 2" assume Type II certification. **Shipped in #81** — user decision: allowed labels are "Framework supported" / "In development" / "Custom"; disallowed without paper: "Certified", "Audited", "Compliant", "Accredited". Fixed ProductHeroVisual, FinalSecurityCTA, SecurityArchitecture, TrustModules, /trust/dpa. Demo dashboard mocks (sandbox/playground, /construction-compliance dashboard pills, /about DemoAuditTrailCard) kept their fictional state strings — flagged in the PR body for spot-check, not modified. | Add a single status taxonomy ("Certified" / "Audit-ready" / "Supported framework") and apply it everywhere a framework name appears in trust context. | |
| | 5 | HIGH | 67 of 85 pages | Two `<h1>` elements rendered per page with different Tailwind class signatures (`text-[2.35rem] ...` and `text-[2.5rem] ...`). Most visible on `/contact` and `/blog` where both `<h1>`s carry the same text. Looks like the marketing layout's hero heading and the page-level heading both render as `h1`. A11y violation and SEO confusion. | Demote one to `h2` (probably the layout-level hero subtitle, or wrap it in a `role="banner"` block with `h1` only for the page-specific heading). | | ||
| | 6 | HIGH | `/features` | Hero claim says "18 features across compliance, automation, security, and collaboration." Category counts immediately below sum to 5+6+4+7+3 = **25**, not 18. | Fix the hero number or the category counts; they should match. | | ||
| | 4 | HIGH | `/security`, `/trust`, all industry pages | 18+ frameworks listed (SOC 2, ISO 27001, GDPR, HIPAA, PCI-DSS, NIST CSF, CIS Controls, etc.) with no certification-status qualifier — no "certified", "in progress", "supported", or "ready" anywhere on the public surface. Enterprise buyers reading "SOC 2" assume Type II certification. **Shipped in #81** — user decision: allowed labels are "Framework supported" / "In development" / "Custom"; disallowed without paper: "Certified", "Audited", "Compliant", "Accredited". Fixed ProductHeroVisual, FinalSecurityCTA, SecurityArchitecture, TrustModules, /trust/dpa. Demo dashboard mocks (sandbox/playground, /construction-compliance dashboard pills, /about DemoAuditTrailCard) kept their fictional state strings — flagged in the PR body for spot-check, not modified. | Add a single status taxonomy ("Certified" / "Audit-ready" / "Supported framework") and apply it everywhere a framework name appears in trust context. | | ||
| | 5 | HIGH | 67 of 85 pages | Two `<h1>` elements rendered per page with different Tailwind class signatures (`text-[2.35rem] ...` and `text-[2.5rem] ...`). Most visible on `/contact` and `/blog` where both `<h1>`s carry the same text. Looks like the marketing layout's hero heading and the page-level heading both render as `h1`. A11y violation and SEO confusion. **Shipped in #80** — removed the redundant `<noscript>` `<h1>` block from `ImmersiveHero` + `CompactHero`; verified `/contact` and `/trust/sla` curl outputs go from 2 h1 → 1. | Demote one to `h2` (probably the layout-level hero subtitle, or wrap it in a `role="banner"` block with `h1` only for the page-specific heading). | |
| severity-first within each section. Phase D pricing redesign | ||
| unblocks after Phase C HIGH+MED clears. | ||
|
|
||
| ## §19a — Housekeeping: Phase C HIGH batch 2 (closed) |
♿ Accessibility Test Results✅ PASSED - No critical accessibility issues found Tests Performed:
Artifacts: Download the accessibility reports from the "Artifacts" section for detailed results. |
Summary
Audit-doc-only cadence rollup for the Phase C HIGH batch 2 round. No code/runtime changes.
lib/marketing/background-media.tsis the source of truth.Test plan
main