Skip to content

docs(audit): roll up Phase C batch 2 (#77-#84) + portal-sweep follow-ups - #85

Merged
ejay-dev merged 1 commit into
mainfrom
docs/audit-housekeeping-phase-c-batch-2
May 13, 2026
Merged

docs(audit): roll up Phase C batch 2 (#77-#84) + portal-sweep follow-ups#85
ejay-dev merged 1 commit into
mainfrom
docs/audit-housekeeping-phase-c-batch-2

Conversation

@ejay-dev

Copy link
Copy Markdown
Owner

Summary

Audit-doc-only cadence rollup for the Phase C HIGH batch 2 round. No code/runtime changes.

Test plan

  • CI green (docs-only — should be quick)
  • Skim diff: every "Shipped in #N" reference matches a real merged PR
  • §19a PR list matches the actual merged set on main

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>
Copilot AI review requested due to automatic review settings May 13, 2026 13:27
@vercel

vercel Bot commented May 13, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
forma-os Ready Ready Preview, Comment May 13, 2026 1:30pm

Request Review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment on lines +866 to +869
#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

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)
@github-actions

Copy link
Copy Markdown

♿ Accessibility Test Results

PASSED - No critical accessibility issues found

Tests Performed:

  • WCAG 2.1 AA compliance validation
  • Cross-browser accessibility testing
  • Keyboard navigation testing
  • Screen reader compatibility
  • Color contrast validation

Artifacts: Download the accessibility reports from the "Artifacts" section for detailed results.

@ejay-dev
ejay-dev merged commit f3eb2d3 into main May 13, 2026
32 checks passed
@ejay-dev
ejay-dev deleted the docs/audit-housekeeping-phase-c-batch-2 branch May 13, 2026 14:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants