diff --git a/app/(marketing)/about/AboutPageContent.tsx b/app/(marketing)/about/AboutPageContent.tsx index 57741e662..f1f60d48d 100644 --- a/app/(marketing)/about/AboutPageContent.tsx +++ b/app/(marketing)/about/AboutPageContent.tsx @@ -239,7 +239,7 @@ export default function AboutPageContent() {
- {/* Timeline section removed 2026-05-28 — the previous milestone + {/* Timeline section removed 2026-05-28, the previous milestone array claimed customer deployments and framework launches that hadn't actually shipped. Pulled the whole section rather than fabricate a four-year history. /about flows hero diff --git a/app/(marketing)/author/[slug]/page.tsx b/app/(marketing)/author/[slug]/page.tsx index fe37d7b55..c6b2c4e26 100644 --- a/app/(marketing)/author/[slug]/page.tsx +++ b/app/(marketing)/author/[slug]/page.tsx @@ -24,7 +24,7 @@ export async function generateMetadata({ if (!author) { return { title: 'Author not found | FormaOS' }; } - const title = `${author.name} — ${author.role} | FormaOS`; + const title = `${author.name}, ${author.role} | FormaOS`; const description = author.bio.slice(0, 155); return { title, @@ -77,7 +77,7 @@ export default async function AuthorPage({ ]), ] : [ - // Collective bylines emit Organization rather than Person — + // Collective bylines emit Organization rather than Person , // honest signal to crawlers about what the byline represents. { '@context': 'https://schema.org', diff --git a/app/(marketing)/blog/blogData.ts b/app/(marketing)/blog/blogData.ts index 40be89c98..2e2acd98a 100644 --- a/app/(marketing)/blog/blogData.ts +++ b/app/(marketing)/blog/blogData.ts @@ -29,7 +29,7 @@ export type BlogPost = { /** * Last-revised date for the article. Audit row #59 wants * regulatory-content readers to see how current the guidance is, - * not just when it was first published. Optional — falls back to + * not just when it was first published. Optional, falls back to * `date` (the publish date) when a post has not been revised. */ dateModified?: string; @@ -357,7 +357,7 @@ export const blogPosts: BlogPost[] = [ 'Start with the controls that generate the most recurring evidence. Build momentum before expanding across the full control library.', ], steps: [ - 'Select 3–5 high-volume controls that generate repeatable evidence.', + 'Select 3-5 high-volume controls that generate repeatable evidence.', 'Define evidence templates with required fields and owners.', 'Connect workflow systems to capture events automatically.', 'Set quality checks for completeness and data drift.', @@ -528,7 +528,7 @@ export const blogPosts: BlogPost[] = [ 'Monitoring works best when it is embedded in compliance automation and routed to the people who can act quickly.', ], steps: [ - 'Identify the 10–15 most audit-critical controls.', + 'Identify the 10-15 most audit-critical controls.', 'Define signal thresholds and owners for each control.', 'Automate alerts into the tools teams already use.', 'Review signal trends in a weekly compliance stand-up.', @@ -1867,7 +1867,7 @@ export const blogPosts: BlogPost[] = [ title: 'Australian Compliance Frameworks 2026: A Side-by-Side Reference for Multi-Framework Operators', excerpt: - 'How the seven major Australian compliance frameworks compare on structure, regulator, reporting timeframes, and audit cycle — a reference for compliance leaders running multiple obligations in parallel.', + 'How the seven major Australian compliance frameworks compare on structure, regulator, reporting timeframes, and audit cycle, a reference for compliance leaders running multiple obligations in parallel.', author: 'Compliance Strategy', date: 'May 23, 2026', dateModified: 'May 23, 2026', @@ -1878,9 +1878,9 @@ export const blogPosts: BlogPost[] = [ { heading: 'Why this reference exists', paragraphs: [ - 'Most regulated Australian organisations are accountable to more than one framework. A healthcare provider is bound by NSQHS Standards, AHPRA registration requirements for each clinician, and — if it touches federal funding — often the NDIS Practice Standards as well. A fintech operates under an AFS licence (Corporations Act s912A general obligations), reports to AUSTRAC for AML/CTF, and may be APRA-regulated if it deals with bank-adjacent products. A construction principal in NSW carries harmonised WHS obligations under the WHS Act and contractual safety obligations from every Tier 1 client.', - 'Each framework describes similar work — controls, evidence, incidents, training, audits — in different language. The compliance leader running two or three of them in parallel is left translating between vocabularies just to know where they stand.', - 'This is a side-by-side reference of the seven frameworks we see most often in buyer conversations. It is not exhaustive (state-specific layers like SafeWork NSW vs SafeWork Vic add detail), and it is not a substitute for reading the source instruments — it is the orienting picture a compliance program manager can hold in their head while reading the legislation underneath.', + 'Most regulated Australian organisations are accountable to more than one framework. A healthcare provider is bound by NSQHS Standards, AHPRA registration requirements for each clinician, and, if it touches federal funding, often the NDIS Practice Standards as well. A fintech operates under an AFS licence (Corporations Act s912A general obligations), reports to AUSTRAC for AML/CTF, and may be APRA-regulated if it deals with bank-adjacent products. A construction principal in NSW carries harmonised WHS obligations under the WHS Act and contractual safety obligations from every Tier 1 client.', + 'Each framework describes similar work, controls, evidence, incidents, training, audits, in different language. The compliance leader running two or three of them in parallel is left translating between vocabularies just to know where they stand.', + 'This is a side-by-side reference of the seven frameworks we see most often in buyer conversations. It is not exhaustive (state-specific layers like SafeWork NSW vs SafeWork Vic add detail), and it is not a substitute for reading the source instruments, it is the orienting picture a compliance program manager can hold in their head while reading the legislation underneath.', ], }, { @@ -1891,7 +1891,7 @@ export const blogPosts: BlogPost[] = [ ], bullets: [ 'Audit cycle: registered providers are audited against applicable modules on a 3-year accreditation cycle, with mid-cycle surveillance and the option of unannounced visits', - 'Key reporting: SIRS (Serious Incident Reporting Scheme) — Priority incidents within 24 hours, Standard incidents within 5 business days', + 'Key reporting: SIRS (Serious Incident Reporting Scheme), Priority incidents within 24 hours, Standard incidents within 5 business days', 'Worker controls: NDIS Worker Screening Check status tracked per worker (jurisdiction-specific screening units issue clearances)', 'Common audit gaps: incomplete behaviour-support evidence, inconsistent SIRS notification timing, gaps in worker screening renewal tracking', ], @@ -1913,10 +1913,10 @@ export const blogPosts: BlogPost[] = [ heading: 'AHPRA registration (continuing requirements)', paragraphs: [ 'Regulator: AHPRA (Australian Health Practitioner Regulation Agency) administers registration for 16 regulated health professions through profession-specific National Boards (Medical, Nursing and Midwifery, Psychology, Physiotherapy, etc.). Source instrument: Health Practitioner Regulation National Law (the National Law) as enacted in each state.', - 'AHPRA is not a "framework" in the sense the others are — it is a registration regime. But for any healthcare provider, AHPRA continuing professional development (CPD), professional indemnity insurance (PII), recency-of-practice, and English language requirements show up as ongoing compliance obligations that must be tracked per practitioner.', + 'AHPRA is not a "framework" in the sense the others are, it is a registration regime. But for any healthcare provider, AHPRA continuing professional development (CPD), professional indemnity insurance (PII), recency-of-practice, and English language requirements show up as ongoing compliance obligations that must be tracked per practitioner.', ], bullets: [ - 'Registration cycle: annual renewal (typically May–September depending on profession) with audit selection of declared CPD', + 'Registration cycle: annual renewal (typically May-September depending on profession) with audit selection of declared CPD', 'Key reporting: notifications to AHPRA under the National Law (s140 mandatory notifications for impaired practitioners, sexual misconduct, intoxication while practising, significant departure from accepted standards)', 'CPD: profession-specific hour minimums; Medical Board requires 50 hours per year across categories; Nursing and Midwifery Board requires 20 hours per year', 'Common audit gaps: CPD evidence gaps when audited (declarations often outpace documentation), expired PII, expired First Aid certifications for relevant cohorts', @@ -1938,12 +1938,12 @@ export const blogPosts: BlogPost[] = [ { heading: 'Harmonised WHS (Work Health and Safety)', paragraphs: [ - 'Regulator: the WHS regulator in each jurisdiction — SafeWork NSW, WorkSafe Victoria, WorkSafe Queensland, etc. Victoria has not adopted the harmonised WHS Act and remains under the Occupational Health and Safety Act 2004 (Vic) and OHS Regulations 2017 (Vic) — the obligations are similar but not identical. Source instrument (harmonised jurisdictions): Work Health and Safety Act 2011 (Commonwealth) plus the model Work Health and Safety Regulations 2011, enacted by each jurisdiction.', - 'WHS is not a "modular framework" like NDIS or NSQHS — it is a principal duty plus regulatory specifics. The principal duty (s19 WHS Act) is to ensure, so far as is reasonably practicable, the health and safety of workers and others affected by the business. The Regulations specify how that obligation is discharged for specific hazards (high-risk work, hazardous chemicals, construction work, working at heights).', + 'Regulator: the WHS regulator in each jurisdiction, SafeWork NSW, WorkSafe Victoria, WorkSafe Queensland, etc. Victoria has not adopted the harmonised WHS Act and remains under the Occupational Health and Safety Act 2004 (Vic) and OHS Regulations 2017 (Vic), the obligations are similar but not identical. Source instrument (harmonised jurisdictions): Work Health and Safety Act 2011 (Commonwealth) plus the model Work Health and Safety Regulations 2011, enacted by each jurisdiction.', + 'WHS is not a "modular framework" like NDIS or NSQHS, it is a principal duty plus regulatory specifics. The principal duty (s19 WHS Act) is to ensure, so far as is reasonably practicable, the health and safety of workers and others affected by the business. The Regulations specify how that obligation is discharged for specific hazards (high-risk work, hazardous chemicals, construction work, working at heights).', ], bullets: [ 'Audit cycle: triggered by incident notification, complaint, or proactive regulator program (no fixed cycle)', - 'Key reporting: notifiable incidents under WHS Act s35-38 (death of a person, serious injury or illness, dangerous incident) — notifiable to the regulator immediately', + 'Key reporting: notifiable incidents under WHS Act s35-38 (death of a person, serious injury or illness, dangerous incident), notifiable to the regulator immediately', 'Workforce controls: high-risk work licences (HRWL), inductions per Construction Work Code of Practice, SWMS for high-risk construction work', 'Common audit gaps: SWMS document control (versions, acknowledgements), contractor compliance evidence, notifiable-incident timing', ], @@ -1952,11 +1952,11 @@ export const blogPosts: BlogPost[] = [ heading: 'AFS licence (Australian Financial Services licence)', paragraphs: [ 'Regulator: ASIC (Australian Securities and Investments Commission). Source instrument: Corporations Act 2001, with the AFS licence general obligations set out in s912A.', - 'There is no "module" structure. Section 912A imposes 11 ongoing obligations that an AFS licensee must comply with at all times — providing financial services efficiently, honestly and fairly; complying with conditions on the licence; complying with financial services laws; having adequate arrangements to manage conflicts of interest; complying with the dispute resolution requirements; maintaining competence; ensuring representatives are adequately trained; having adequate risk management systems; maintaining adequate financial resources; having a written policy on training. The Reportable Situations regime (formerly breach reporting) is a discrete obligation under Part 7.6 Division 3.', + 'There is no "module" structure. Section 912A imposes 11 ongoing obligations that an AFS licensee must comply with at all times, providing financial services efficiently, honestly and fairly; complying with conditions on the licence; complying with financial services laws; having adequate arrangements to manage conflicts of interest; complying with the dispute resolution requirements; maintaining competence; ensuring representatives are adequately trained; having adequate risk management systems; maintaining adequate financial resources; having a written policy on training. The Reportable Situations regime (formerly breach reporting) is a discrete obligation under Part 7.6 Division 3.', ], bullets: [ 'Audit cycle: ASIC has continuous surveillance powers; financial statements lodged annually with audit', - 'Key reporting: Reportable Situations regime — material breaches lodged with ASIC within 30 days of becoming aware (significantly tighter than the pre-2021 7-business-day regime for some classes)', + 'Key reporting: Reportable Situations regime, material breaches lodged with ASIC within 30 days of becoming aware (significantly tighter than the pre-2021 7-business-day regime for some classes)', 'Workforce controls: representative training to RG 146 (or RG 105 for credit), continuing competence tracked', 'Common audit gaps: training records that lag licensing changes, conflict-of-interest declarations, dispute resolution timing against AFCA targets', ], @@ -1965,7 +1965,7 @@ export const blogPosts: BlogPost[] = [ heading: 'AUSTRAC AML/CTF program', paragraphs: [ 'Regulator: AUSTRAC (Australian Transaction Reports and Analysis Centre). Source instrument: Anti-Money Laundering and Counter-Terrorism Financing Act 2006 and AML/CTF Rules.', - 'A reporting entity must have a written AML/CTF Program — Part A (general program covering ML/TF risk assessment and management) and Part B (customer identification procedures) — and must comply with reporting obligations including Threshold Transaction Reports (TTRs), International Funds Transfer Instructions (IFTIs), and Suspicious Matter Reports (SMRs). The Tranche 2 amendments (commenced 31 March 2026) extend AML/CTF obligations to additional gatekeeper professions — lawyers, accountants, real estate agents, dealers in precious metals and stones — significantly expanding the reporting-entity population.', + 'A reporting entity must have a written AML/CTF Program, Part A (general program covering ML/TF risk assessment and management) and Part B (customer identification procedures), and must comply with reporting obligations including Threshold Transaction Reports (TTRs), International Funds Transfer Instructions (IFTIs), and Suspicious Matter Reports (SMRs). The Tranche 2 amendments (commenced 31 March 2026) extend AML/CTF obligations to additional gatekeeper professions, lawyers, accountants, real estate agents, dealers in precious metals and stones, significantly expanding the reporting-entity population.', ], bullets: [ 'Audit cycle: internal independent reviews of Part A on a schedule appropriate to ML/TF risk; AUSTRAC compliance assessments triggered by reporting or referral', @@ -1980,17 +1980,17 @@ export const blogPosts: BlogPost[] = [ 'For an organisation accountable to multiple frameworks, the operational overlap is larger than the regulatory language implies. Five domains repeat across nearly every framework above:', ], bullets: [ - 'Workforce credentialing — AHPRA registration (NSQHS, healthcare), NDIS Worker Screening (NDIS), Working with Children Check (NQF), HRWL (WHS), RG 146 (AFS), AML/CTF training records (AUSTRAC). One credential graph satisfies five obligations.', - 'Incident reporting — NSQHS sentinel events, NDIS SIRS, NQF s174 incidents, WHS notifiable incidents, AFS Reportable Situations, AUSTRAC SMRs. The intake form differs; the underlying event capture is the same.', - 'Training and competence — every framework requires ongoing training records with audit trail. The hour minimums and content differ; the evidence shape is identical.', - 'Document control — policies, procedures, SWMS, AML/CTF Program documents, IT security policies. Every framework expects version-controlled, acknowledged, currently-valid documents.', - 'Independent assessment — NDIS accreditation auditors, NSQHS accrediting agencies, ACECQA Assessment and Rating, WHS regulator audits, ASIC surveillance, AML/CTF independent reviews. Each is structured differently, but each consumes the same underlying evidence library.', + 'Workforce credentialing, AHPRA registration (NSQHS, healthcare), NDIS Worker Screening (NDIS), Working with Children Check (NQF), HRWL (WHS), RG 146 (AFS), AML/CTF training records (AUSTRAC). One credential graph satisfies five obligations.', + 'Incident reporting, NSQHS sentinel events, NDIS SIRS, NQF s174 incidents, WHS notifiable incidents, AFS Reportable Situations, AUSTRAC SMRs. The intake form differs; the underlying event capture is the same.', + 'Training and competence, every framework requires ongoing training records with audit trail. The hour minimums and content differ; the evidence shape is identical.', + 'Document control, policies, procedures, SWMS, AML/CTF Program documents, IT security policies. Every framework expects version-controlled, acknowledged, currently-valid documents.', + 'Independent assessment, NDIS accreditation auditors, NSQHS accrediting agencies, ACECQA Assessment and Rating, WHS regulator audits, ASIC surveillance, AML/CTF independent reviews. Each is structured differently, but each consumes the same underlying evidence library.', ], }, { heading: 'What this means for the compliance program', paragraphs: [ - 'If your organisation is bound by more than one of these frameworks, the highest-leverage investment is not a per-framework tool — it is an underlying evidence library where each piece of work satisfies the relevant clauses across every framework it touches. A signed policy, a completed training record, an incident closure note, a quarterly access review: each is referenced by one or more frameworks, but the artifact itself is stored once.', + 'If your organisation is bound by more than one of these frameworks, the highest-leverage investment is not a per-framework tool, it is an underlying evidence library where each piece of work satisfies the relevant clauses across every framework it touches. A signed policy, a completed training record, an incident closure note, a quarterly access review: each is referenced by one or more frameworks, but the artifact itself is stored once.', 'That is the operating-system view of compliance: the mapping lives once, the evidence is captured once, and each framework view is a projection over the same graph. Your team stops translating between vocabularies and starts running the work.', ], links: [ @@ -2017,8 +2017,8 @@ export const blogPosts: BlogPost[] = [ { heading: 'Source notes', paragraphs: [ - 'This piece references the source instruments named in each section. Where regulatory thresholds are stated (e.g. SIRS Priority within 24 hours, AFS Reportable Situations within 30 days, AUSTRAC SMRs within 3 business days), the figures are current as of May 2026 and reflect publicly published rules. Where the Tranche 2 AML/CTF expansion is mentioned, the commencement date (31 March 2026) is the date as announced by the Government in the AML/CTF Amendment Act 2024 — readers should verify against the latest AUSTRAC commencement notices for their entity type.', - 'For any operational decision, read the source instrument and your regulator\'s current guidance — not this article.', + 'This piece references the source instruments named in each section. Where regulatory thresholds are stated (e.g. SIRS Priority within 24 hours, AFS Reportable Situations within 30 days, AUSTRAC SMRs within 3 business days), the figures are current as of May 2026 and reflect publicly published rules. Where the Tranche 2 AML/CTF expansion is mentioned, the commencement date (31 March 2026) is the date as announced by the Government in the AML/CTF Amendment Act 2024, readers should verify against the latest AUSTRAC commencement notices for their entity type.', + 'For any operational decision, read the source instrument and your regulator\'s current guidance, not this article.', ], }, ], diff --git a/app/(marketing)/compare/CompareIndexContent.tsx b/app/(marketing)/compare/CompareIndexContent.tsx index c93437d8a..110926d4e 100644 --- a/app/(marketing)/compare/CompareIndexContent.tsx +++ b/app/(marketing)/compare/CompareIndexContent.tsx @@ -132,7 +132,7 @@ export default function CompareIndexContent() { - {/* What "compliance OS" means vs traditional GRC — SSR'd */} + {/* What "compliance OS" means vs traditional GRC, SSR'd */}@@ -232,7 +232,7 @@ export function AuditChainSection() {
Every org's audit log is hash-chained, RLS-locked against - mutation, and anchored daily to Sigstore Rekor — the same + mutation, and anchored daily to Sigstore Rekor, the same append-only transparency log the Linux Foundation runs for signed open-source releases.
@@ -273,7 +273,7 @@ export function AuditChainSection() {- One connected lifecycle — obligations become controls, controls + One connected lifecycle, obligations become controls, controls generate tasks, tasks produce evidence, and every step stays audit-ready.
diff --git a/app/(marketing)/components/homepage/ComplianceNetworkSection.tsx b/app/(marketing)/components/homepage/ComplianceNetworkSection.tsx index eb856ebe9..93d14e09f 100644 --- a/app/(marketing)/components/homepage/ComplianceNetworkSection.tsx +++ b/app/(marketing)/components/homepage/ComplianceNetworkSection.tsx @@ -37,12 +37,12 @@ export function ComplianceNetworkSection() {- {/* State line — reflects the active side */} + {/* State line, reflects the active side */}
diff --git a/app/(marketing)/components/homepage/SecuritySection.tsx b/app/(marketing)/components/homepage/SecuritySection.tsx index aaa543b96..97e37fac2 100644 --- a/app/(marketing)/components/homepage/SecuritySection.tsx +++ b/app/(marketing)/components/homepage/SecuritySection.tsx @@ -30,7 +30,7 @@ const signatureEase: [number, number, number, number] = [ ] as [number, number, number, number]; /* ════════════════════════════════════════════════════════════ - Shared — GlassCard with 3D tilt + spotlight + Shared, GlassCard with 3D tilt + spotlight ════════════════════════════════════════════════════════════ */ function GlassCard({ @@ -98,7 +98,7 @@ function AnimatedCounter({ } /* ════════════════════════════════════════════════════════════ - PostureRing — animated SVG security score + PostureRing, animated SVG security score ════════════════════════════════════════════════════════════ */ function PostureRing({ @@ -171,7 +171,7 @@ function PostureRing({ - {/* Center score — number only, nothing else inside the ring */} + {/* Center score, number only, nothing else inside the ring */}
Composite posture · illustrative @@ -352,7 +352,7 @@ const PostureCard = memo(function PostureCard({ }); /* ════════════════════════════════════════════════════════════ - EncryptionCard — visual lock + layer status + EncryptionCard, visual lock + layer status ════════════════════════════════════════════════════════════ */ const EncryptionCard = memo(function EncryptionCard({ @@ -403,7 +403,7 @@ const EncryptionCard = memo(function EncryptionCard({ }); /* ════════════════════════════════════════════════════════════ - AccessCard — identity & access control + AccessCard, identity & access control ════════════════════════════════════════════════════════════ */ const AccessCard = memo(function AccessCard({ @@ -458,7 +458,7 @@ const AccessCard = memo(function AccessCard({ }); /* ════════════════════════════════════════════════════════════ - AuditLogCard — audit-trail event types (not a live feed) + AuditLogCard, audit-trail event types (not a live feed) ════════════════════════════════════════════════════════════ */ const AuditLogCard = memo(function AuditLogCard({ @@ -476,7 +476,7 @@ const AuditLogCard = memo(function AuditLogCard({ isInView={isInView} >
Controls are enforced, not just documented. Encryption, identity - governance, and tamper-evident audit logs are infrastructure — not + governance, and tamper-evident audit logs are infrastructure, not add-ons.
- Export complete audit packets — evidence, ownership, control history — + Export complete audit packets, evidence, ownership, control history , without scrambling.
@@ -571,7 +571,7 @@ export function ValueProposition() {Other tools store documents. FormaOS enforces your compliance - program — controls are gated, ownership is structural, and evidence + program, controls are gated, ownership is structural, and evidence is generated as teams operate.
- ↻ the loop closes — AI & Certification feeds back into Compliance Core + ↻ the loop closes, AI & Certification feeds back into Compliance Core
{/* Detail panel */} @@ -2272,7 +2272,7 @@ export default function FeaturesPageContent() { {/* Server-rendered feature catalog (audit #28). Lives outside DeferredSection so every feature title is in the initial SSR - HTML — crawlers index the names, sighted users get a quick + HTML, crawlers index the names, sighted users get a quick skimmable list before the heavy interactive grid mounts. */}, an invalid definition-list structure that tripped
a serious axe `definition-list` (WCAG 1.3.1) violation on /pricing. */}
diff --git a/app/(marketing)/pricing/components/PricingTiers.tsx b/app/(marketing)/pricing/components/PricingTiers.tsx
index 0947fdd7b..9d9ea7da3 100644
--- a/app/(marketing)/pricing/components/PricingTiers.tsx
+++ b/app/(marketing)/pricing/components/PricingTiers.tsx
@@ -48,7 +48,7 @@ export function PricingTiers() {
Manage how FormaOS uses cookies and analytics in your browser. You
- can withdraw your consent or change your choice at any time — the
+ can withdraw your consent or change your choice at any time, the
change takes effect immediately.
diff --git a/app/(marketing)/product/components/ObligationToExecution.tsx b/app/(marketing)/product/components/ObligationToExecution.tsx
index 740489a58..2beaec8ed 100644
--- a/app/(marketing)/product/components/ObligationToExecution.tsx
+++ b/app/(marketing)/product/components/ObligationToExecution.tsx
@@ -34,7 +34,7 @@ export function ObligationToExecution() {
return (
diff --git a/app/(marketing)/security-review/components/SecurityReviewHeroVisual.tsx b/app/(marketing)/security-review/components/SecurityReviewHeroVisual.tsx
index a2da484c5..aaa9d8b09 100644
--- a/app/(marketing)/security-review/components/SecurityReviewHeroVisual.tsx
+++ b/app/(marketing)/security-review/components/SecurityReviewHeroVisual.tsx
@@ -52,7 +52,7 @@ function CheckIcon() {
* SecurityReviewHeroVisual
* ────────────────────────
* Review-checklist clipboard ringed by framework badges. Renders the
- * settled state directly — no auto-running check-off telemetry, no
+ * settled state directly, no auto-running check-off telemetry, no
* orbiting badges, no cursor-reactive tilt (enterprise-restrained).
* Clipboard + badges fade/scale in once on entrance.
*/
diff --git a/app/(marketing)/security-review/page.tsx b/app/(marketing)/security-review/page.tsx
index 7de078154..1f051be2b 100644
--- a/app/(marketing)/security-review/page.tsx
+++ b/app/(marketing)/security-review/page.tsx
@@ -26,14 +26,14 @@ export const metadata: Metadata = {
};
// HowTo schema for the security review walkthrough. Mirrors the
-// human-facing 12-step checklist in SecurityReviewContent — AI answer
+// human-facing 12-step checklist in SecurityReviewContent, AI answer
// engines treat HowTo as an authoritative ordered procedure and cite
// individual steps when users ask procedural questions ("how do I run a
// security review on FormaOS").
const SECURITY_REVIEW_HOWTO = howToSchema({
name: 'How to run a procurement-ready security review of FormaOS',
description:
- 'A 12-step security review walkthrough for enterprise buyers and procurement teams evaluating FormaOS — covers architecture, data handling, identity, encryption, audit logging, and operational assurance.',
+ 'A 12-step security review walkthrough for enterprise buyers and procurement teams evaluating FormaOS, covers architecture, data handling, identity, encryption, audit logging, and operational assurance.',
url: `${siteUrl}/security-review`,
totalTime: 'PT45M',
steps: [
diff --git a/app/(marketing)/security/SecurityContent.tsx b/app/(marketing)/security/SecurityContent.tsx
index 608be9403..710cd2f6f 100644
--- a/app/(marketing)/security/SecurityContent.tsx
+++ b/app/(marketing)/security/SecurityContent.tsx
@@ -118,7 +118,7 @@ function LightSection({
}) {
return (