Skip to content

docs(audit): close Phase A — A→B→C data flow + reclassifications - #59

Merged
ejay-dev merged 1 commit into
mainfrom
docs/audit-2026-05-12-data-flow
May 12, 2026
Merged

docs(audit): close Phase A — A→B→C data flow + reclassifications#59
ejay-dev merged 1 commit into
mainfrom
docs/audit-2026-05-12-data-flow

Conversation

@ejay-dev

Copy link
Copy Markdown
Owner

Summary

Phase A (audit dimensions) is now walked end-to-end. This PR closes
the loop on the master prompt's six critical flows and records the
reclassifications that came out of second-pass verification.

Additions

Reclassifications

PR refs added

Phase A state

The audit now records 36 verified findings. Open HIGH set: #19 (reclassified MED), #33 (no role-change action), #34 (trial state stale in Zustand).

Test plan

  • Doc-only change.
  • Every file:line citation in §9c re-verified against main HEAD.

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 4.7 noreply@anthropic.com

Phase A (audit dimensions) is now walked end-to-end. This PR adds:

  §9b — Dead-entitlement removals (records the #57 deletion of
  soc2_certification + executive_rollup; closes audit row #14).

  §9c — A→B→C data flow findings (4 verified rows: HIGH role-change
  surface gap, HIGH trial-state stale Zustand, MED org-name client
  cache, MED revokeInvitation org-id input-trust gap). Plus 12
  rejected-with-reason rows from the data-flow agent pass that
  did not survive direct inspection (force-dynamic at /app/* layout
  killed most of the "stale SSR cache" claims; the Stripe webhook
  already calls revalidatePath; the email-mismatch invite-accept
  scenario is explicitly guarded; "if a user is added to multiple
  orgs in the future" is speculative not actual).

Also reclassifies:

  #19 (onboarding framework provisioning race) HIGH → MED. The
  proposed audit fix doesn't actually close the race; the real
  fix is a "provisioning in progress" state on /app/compliance/
  frameworks/[slug], which is a different surface from onboarding.

  #9 (v1 error-shape consistency) — added "scope larger than first
  cited" note since the grep found 12 files, all flattened in #58.

PR refs added to rows #9 and #14. The audit now records 36 verified
findings; the open HIGH set is #19 (reclassified MED), #33 (no
role-change action), #34 (trial state stale in Zustand).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 12, 2026 08:14
@vercel

vercel Bot commented May 12, 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 12, 2026 8:15am

Request Review

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

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

Closes out “Phase A” of the audit documentation by adding end-to-end A→B→C multi-tenant data-flow walk findings, recording dead-entitlement removals, and updating prior findings with shipped PR references / reclassifications.

Changes:

  • Add §9b documenting removal of dead entitlements (soc2_certification, executive_rollup) and link to PR #57.
  • Add §9c capturing verified A→B→C data-flow findings (#33#36) plus a rejected-findings trail for transparency.
  • Update existing audit rows with reclassification (#19) and a scope note + PR reference for v1 error-shape flattening (#58).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +288 to +290
audit currently records 36 verified findings (3 HIGH still open: #19
[reclassified], #33, #34 — plus 13 MED and a tail of LOW). PR refs
for shipped fixes: #50, #52, #57, #58.
@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 d218348 into main May 12, 2026
32 checks passed
@ejay-dev
ejay-dev deleted the docs/audit-2026-05-12-data-flow branch May 12, 2026 08:23
ejay-dev added a commit that referenced this pull request May 14, 2026
Three audit-LOW items closed; each is a tight scoped fix.

#17 — Drop deprecated X-XSS-Protection header
-----------------------------------------------
Modern browsers ignore `X-XSS-Protection: 1; mode=block` (Chrome
dropped the auditor in M78, Firefox never honoured it). Dead weight
in next.config.ts headers. Replaced with a comment that documents
the why and names CSP + Trusted Types as the current XSS defense
so a future reviewer doesn't put it back.

#62 — Surface founding year on /about
--------------------------------------
JSON-LD claimed `foundingDate: "2025"` but no visible page text
matched. Hero badge expanded from "About FormaOS" to
"About FormaOS · Founded 2025 · Sydney, Australia" — single
visible surface, matches JSON-LD foundingDate AND `address.locality`,
no new component.

#59 — Blog dateModified
-----------------------
Evergreen regulatory content needs "last reviewed" visibility, not
just first-published date. Added optional `dateModified?: string`
to the BlogPost type (defaults to publish date when not revised),
threaded through to articleSchema's new `dateModified` JSON-LD
field, and surfaced a visible "Updated <date>" line on
/blog/[slug] only when the modified date differs from publish date.
Existing posts opt in by setting `dateModified` on their data row;
no current post is forced to change.

Audit-doc rows #17, #59, #62 annotated with shipped status.

Co-authored-by: ejaz <ejaz@local>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
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