// ToolkitISO42001.jsx — Verigo Global: ISO 42001:2023 implementation toolkit page const { V: T2V, MAXW: T2MW, FONT: T2FT } = window; /* ── BREADCRUMB ──────────────────────────────────────────── */ const T2Crumb = ({ onNav }) => (
/ / ISO 42001 Toolkit
); const t2crumbBtn = { background: 'none', border: 'none', cursor: 'pointer', color: '#7A7A8A', fontSize: 13, fontWeight: 600, padding: 0, fontFamily: "'DM Sans', system-ui, sans-serif" }; /* ── HERO ────────────────────────────────────────────────── */ const T2Hero = ({ onNav }) => (
Implementation Toolkit ISO/IEC 42001:2023

The ISO 42001 toolkit, ready to deploy.

A complete, practitioner-maintained document set — 18 policies, 16 procedures, and all 38 Annex A control templates — tailored to your AI systems so you build a certifiable AIMS without starting from a blank page.

onNav('evaluation')}>Start the readiness evaluation document.getElementById('downloads')?.scrollIntoView({ behavior: 'smooth', block: 'start' })}>See what's inside
Inside the toolkit
{[['doc', '18', 'Approval-ready policies'], ['file', '16', 'Operational procedures'], ['layers', '38', 'Annex A control templates'], ['clipboard', '70+', 'Documents, checklists & samples']].map(([ic, n, l], i) => (
{n}
{l}
))}
); /* ── OVERVIEW ────────────────────────────────────────────── */ const T2Overview = () => (
Overview

Everything the standard asks for — pre-built and tailored.

The Verigo ISO 42001 toolkit is the document backbone of a certifiable AI Management System. It pairs the management-system documentation required by Clauses 4–10 with implementation templates for every one of the 38 Annex A:2023 controls.

Each artefact is maintained by senior practitioners and tailored to your AI systems, industry, and risk appetite — then embedded into how you build and operate AI, the Compliance by Design way, so evidence is produced by the process itself.

{[ ['compass', 'Tailored, not generic', 'Every policy and procedure is shaped to your AI use cases, structure, and existing tooling — not a one-size-fits-all template dump.'], ['network', 'Cross-framework ready', 'Controls are mapped so ISO 27001 evidence accelerates ISO 42001, and vice versa, without duplication.'], ['refresh', 'Maintained for the 2023 edition', 'Aligned to ISO/IEC 42001:2023, including the full nine-objective Annex A structure.'], ].map(([ic, t, d], i) => (

{t}

{d}

))}
); /* ── COVERAGE ────────────────────────────────────────────── */ const T2CLAUSES = [['4', 'Context'], ['5', 'Leadership'], ['6', 'Planning'], ['7', 'Support'], ['8', 'Operation'], ['9', 'Performance'], ['10', 'Improvement']]; const T2Coverage = () => (
Management system · Clauses 4–10
{T2CLAUSES.map(([n, t], i) => (
{n}
{t}
))}
Annex A:2023 · 38 controls, nine objectives
{window.TK_ISO42001.ANNEX.map((g, i) => (
{g.items.length}

{g.theme}

))}
); /* ── CONTENTS EXPLORER + GATED DOWNLOADS ─────────────────── */ const T2Contents = ({ onDownload, unlocked }) => { const [tab, setTab] = React.useState('policies'); const A = window.TK_ISO42001.ASSETS; const tabs = [['policies', 'Policies', A.policies.count], ['procedures', 'Procedures', A.procedures.count], ['controls', 'Annex A Controls', A.controls.count]]; const meta = A[tab]; const renderList = () => { if (tab === 'controls') { return (
{window.TK_ISO42001.ANNEX.map((g, gi) => (
{g.theme} {g.items.length} controls
{g.items.map(([code, title], i) => (
{code} {title}
))}
))}
); } const list = tab === 'policies' ? window.TK_ISO42001.POLICIES : window.TK_ISO42001.PROCEDURES; return (
{list.map(([t, d], i) => (
{String(i + 1).padStart(2, '0')}
{t}
{d}
))}
); }; return (
{tabs.map(([id, label, count]) => ( ))}
{meta.label}
{meta.blurb}
onDownload(tab)} style={{ flexShrink: 0 }}> {unlocked ? `Download PDF · ${meta.count} ${meta.unit}` : `Download PDF (${meta.count} ${meta.unit})`}
{renderList()}
); }; /* ── SAMPLE DOCUMENTS VIEWER ─────────────────────────────── */ const T2Samples = ({ onDownloadSample }) => { const [s, setS] = React.useState('policy'); const tabs = [['policy', 'Policy', 'doc'], ['procedure', 'Procedure', 'file'], ['control', 'Control template', 'layers'], ['checklist', 'Checklist', 'clipboard']]; return (
{tabs.map(([id, label, icon]) => ( ))}
Want the full sample?

Preview the complete package index as a branded PDF — we'll ask for a few details first.

Preview / download sample PDF

Samples are illustrative. Delivered documents are tailored to your organization and branding.

); }; const T2DocHeader = ({ docId, title, ver = '1.0', owner }) => (
{docId}

{title}

{[['Classification', 'Internal'], ['Version', ver], ['Owner', owner], ['Framework', 'ISO/IEC 42001:2023']].map(([k, v], i) => (
{k}
{v}
))}
); const T2DocSection = ({ n, h, children }) => (
{n}{h}
{children}
); const T2SamplePaper = ({ kind }) => { if (kind === 'policy') return (
This policy establishes requirements for identifying, measuring, and mitigating bias across training data, models, and outcomes in support of Annex A controls A.7.2–A.7.6 and A.9.2–A.9.4. Applies to all AI systems developed, procured, or operated by the organization, across every business unit and region.
  • Every AI system undergoes a documented fairness review before production deployment.
  • Bias testing is repeated whenever training data or the model materially changes.
  • Disparate-impact findings are logged, risk-rated, and remediated before release.
  • High-risk AI systems require sign-off from the Responsible AI review board.
Model owners run fairness testing; the Responsible AI review board approves high-risk releases; the Head of Responsible AI owns this policy and its annual review. Reviewed annually or upon significant change. Next review: 12 months from approval.
); if (kind === 'procedure') return (
Define the repeatable steps for assessing the impact of an AI system on individuals, groups, and society before it is deployed.
2.0Process steps
{[['1', 'Intake', 'The AI system is registered in the inventory and classified by risk tier.'], ['2', 'Impact screening', 'A structured questionnaire identifies potential effects on people and society.'], ['3', 'Deep assessment', 'High-risk systems undergo a full impact assessment with mitigation plan.'], ['4', 'Review & sign-off', 'The Responsible AI review board approves, conditions, or rejects deployment.'], ['5', 'Monitor', 'Approved systems are re-assessed on a defined cadence or upon material change.']].map(([n, t, d], i) => (
{n}
{t}
{d}
))}
Impact assessment forms, review board minutes, and re-assessment schedules are retained for the certification cycle.
); if (kind === 'control') return (
Ensure data used to develop, train, and operate AI systems meets defined quality criteria appropriate to the intended use.
{[['Applicability', 'Applicable — all production AI systems'], ['Implementation status', 'Implemented'], ['Control owner', 'Head of Data Governance'], ['Test frequency', 'Per model release']].map(([k, v], i) => (
{k}
{v}
))}
Data quality criteria (completeness, accuracy, representativeness) are defined per system; automated checks flag drift or degradation before retraining. Data quality reports, sampling records, and a data lineage diagram demonstrating provenance from source to model.
); return (
{[['done', 'Statement of Applicability complete and signed off', 'Clause 6.1 / Annex A'], ['done', 'AI risk assessment & treatment plan current', 'Clause 6.1'], ['done', 'All 38 Annex A controls assessed for applicability', 'Annex A'], ['progress', 'Internal audit completed; findings logged', 'Clause 9.2'], ['progress', 'Management review minutes for the period', 'Clause 9.3'], ['todo', 'Corrective actions closed or with target dates', 'Clause 10.1'], ['todo', 'Awareness training records for AI staff', 'A.3.2']].map(([st, t, ref], i) => { const map = { done: [T2V.purple, 'check', 'Complete'], progress: [T2V.orange, 'refresh', 'In progress'], todo: [T2V.g300, 'clipboard', 'Outstanding'] }; const [c, ic, lab] = map[st]; return (
{t}
{ref} {lab}
); })}
); }; /* ── PAGE ────────────────────────────────────────────────── */ const ToolkitISO42001Page = ({ onNav }) => { const [modalAsset, setModalAsset] = React.useState(null); const [unlocked, setUnlocked] = React.useState(false); const sessionOk = () => { try { return !!sessionStorage.getItem('verigo_dl_ok'); } catch (e) { return false; } }; React.useEffect(() => { if (sessionOk()) setUnlocked(true); }, []); const onDownload = (asset) => { if (sessionOk()) { window.TK_ISO42001.generatePDF(asset, window.TK_ISO42001.getUser() || {}); } else { setModalAsset(asset); } }; const onModalSubmit = (form) => { window.TK_ISO42001.storeLead(form); try { sessionStorage.setItem('verigo_dl_ok', '1'); } catch (e) {} setUnlocked(true); const asset = modalAsset; setModalAsset(null); setTimeout(() => window.TK_ISO42001.generatePDF(asset, form), 60); }; const A = modalAsset ? window.TK_ISO42001.ASSETS[modalAsset] : null; return (
onDownload('standard')} /> onDownload('standard')} onNav={onNav} /> {A && ( setModalAsset(null)} onSubmit={onModalSubmit} /> )}
); }; Object.assign(window, { ToolkitISO42001Page });