// ToolkitCMMI.jsx — Verigo Global: CMMI v2.0 implementation toolkit page const { V: TV, MAXW: TMW, FONT: TFT } = window; const CM_ACCENT = '#3F1E68'; // purpleDark const CM_ACCENTBG = '#E0E0F8'; /* ── BREADCRUMB ──────────────────────────────────────────── */ const MiCrumb = ({ onNav }) => (
/ / CMMI Toolkit
); const miCrumbBtn = {background:'none',border:'none',cursor:'pointer',color:'#7A7A8A',fontSize:13,fontWeight:600,padding:0,fontFamily:"'DM Sans', system-ui, sans-serif"}; /* ── HERO ────────────────────────────────────────────────── */ const MiHero = ({ onNav }) => (
Process Maturity CMMI v2.0 · ML2–ML5

The CMMI toolkit, ready to deploy.

A complete, practitioner-maintained document set — 14 policies, 12 procedures, and practice templates across all 20 CMMI v2.0 practice areas — tailored to your organization so you build an appraisal-ready process environment 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','14','Approval-ready policies'],['file','12','Operational procedures'],['layers',String(window.TK_CMMI.CTRL_COUNT),'CMMI v2.0 practice templates'],['clipboard','25+','Evidence checklists & samples']].map(([ic,n,l],i)=>(
{n}
{l}
))}
); /* ── OVERVIEW ────────────────────────────────────────────── */ const MiOverview = () => (
Overview

Every practice area covered — pre-built and tailored.

The Verigo CMMI toolkit is the document backbone of an appraisal-ready process improvement program. It pairs the organizational policies and procedures with implementation templates for every practice across CMMI v2.0's 20 practice areas — from Estimating to Causal Analysis & Resolution.

Each artefact is maintained by senior practitioners and tailored to your organization and target maturity level — embedded into how you operate, the Compliance by Design way, so appraisal evidence is produced by the process itself.

{[['compass','Scaled to your target ML',"Whether you're targeting ML2 or ML3, the toolkit covers only the practice areas that apply — no unnecessary overhead."],['clipboard','Evidence-first design','Each practice template is built to generate the direct and indirect evidence a Lead Appraiser will sample.'],['network','Cross-framework ready','Practices are mapped so the same artefacts support ISO 9001, NIST, and SPICE/ISO 33000.']].map(([ic,t,d],i)=>(

{t}

{d}

))}
); /* ── COVERAGE ────────────────────────────────────────────── */ const MiCoverage = () => (
Three target maturity levels
{window.TK_CMMI.LEVELS.map((lv,i)=>{const pop=!!lv.popular;return(
{lv.id.toUpperCase()} {pop&&Most common}
{lv.pas} practice areas
{lv.name.split(' — ')[1]}

{lv.desc}

{lv.appraisal}
);})}
Four CMMI categories · 20 practice areas
{window.TK_CMMI.CATS.map((c,i)=>(
{c.cat}
{c.pas.map((p,j)=>{p.code})}
))}
); /* ── CONTENTS EXPLORER + GATED DOWNLOADS ─────────────────── */ const MiContents = ({ onDownload, unlocked }) => { const [tab, setTab] = React.useState('policies'); const A = window.TK_CMMI.ASSETS; const tabs = [['policies','Policies',A.policies.count],['procedures','Procedures',A.procedures.count],['controls','Practice Templates',A.controls.count]]; const meta = A[tab]; const renderList = () => { if (tab === 'controls') return (
{window.TK_CMMI.CATS.map((c,ci)=>(
{c.cat}
{c.pas.map((p,pi)=>(
{p.code} {p.name} {p.items.length} practices{p.ml2?' · ML2+':' · ML3+'}
{p.items.map(([id,t],k)=>(
{id} {t}
))}
))}
))}
); const list = tab==='policies'?window.TK_CMMI.POLICIES:window.TK_CMMI.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()}
); }; /* ── PRICING ──────────────────────────────────────────────── */ const MiPricing = ({ onNav }) => { const TIERS = window.TK_CMMI.TIERS; const baseFmt = window.TK_CMMI.fmtPrice(window.TK_CMMI.QUOTE_BASE.price); return (
{TIERS.map((t,i)=>{ const pop=!!t.popular; return (
{pop&&
Most popular
}
{t.name}

{t.tagline}

{(t.features||[]).slice(0,4).map((f,fi)=>(
{f}
))}
); })}
onNav('checkout')}>Build custom package Starts from {baseFmt} · add only what you need · live pricing
); }; /* ── EVAL BAND ────────────────────────────────────────────── */ const MiEvalBand = ({ onNav }) => (
Online evaluation · ML-aware

Know where you stand before the appraiser does.

Our CMMI readiness evaluation scores your process environment against your target maturity level — and maps every gap straight to the toolkit documents that close it.

onNav('evaluation')}>Start the evaluation onNav('evaluation')}>See how it works
{[['target','Pick your target ML','ML2, ML3, or ML4/5 — your choice determines which practice areas are assessed.'],['gauge','Get your readiness score','An instant maturity score with a gap heat-map across the in-scope practice areas.'],['flag','See your next steps','A prioritized action plan showing which toolkit documents close each gap.']].map(([ic,t,d],i)=>(
{String(i+1).padStart(2,'0')}

{t}

{d}

))}
); /* ── PAGE ────────────────────────────────────────────────── */ const ToolkitCMMIPage = ({ 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_CMMI.generatePDF(asset, window.TK_CMMI.getUser()||{}); else setModalAsset(asset); }; const onModalSubmit = (form) => { window.TK_CMMI.storeLead(form); try{sessionStorage.setItem('verigo_dl_ok','1');}catch(e){} setUnlocked(true); const a=modalAsset; setModalAsset(null); setTimeout(()=>window.TK_CMMI.generatePDF(a,form),60); }; const A = modalAsset ? window.TK_CMMI.ASSETS[modalAsset] : null; return (
{A && setModalAsset(null)} onSubmit={onModalSubmit} />}
); }; Object.assign(window, { ToolkitCMMIPage });