{"id":828,"date":"2026-09-13T15:42:11","date_gmt":"2026-09-13T15:42:11","guid":{"rendered":"https:\/\/www.opey.org\/opeyit\/?page_id=828"},"modified":"2026-09-16T18:18:48","modified_gmt":"2026-09-16T18:18:48","slug":"agent-classifier","status":"publish","type":"page","link":"https:\/\/www.opey.org\/opeyit\/?page_id=828","title":{"rendered":"Agent Classifier"},"content":{"rendered":"\n<!--\n=====================================================\nL0 TO L5 AGENT CLASSIFIER  (version 2)\nCompanion tool for WHEN AGENTS RULE by Steven Oppenheim\n=====================================================\n\nHOW TO INSTALL\n1. Open the \"L0 to L5 Agent Classifier\" page (or create it)\n2. Replace the Custom HTML block contents with this entire file\n3. Preview, then Update\n4. If new: replace #REPLACE_TOOL_LADDER on page 748 with this page id\n\nSELF CONTAINED. Scoped to #war-ladder-2026.\n\nLADDER: the Chapter 4 ladder is used, with the Executive Brief name\nshown as an alias. AUTHOR ACTION STILL OPEN: the manuscript carries\ntwo ladders that disagree on substance (Brief L3 periodic review vs\nChapter 4 L3 exception only; Chapter 4 L4 self modification does not\nappear in the Brief). Choose one vocabulary and relabel the Agent\nInventory workbook to match.\n\nVERSION 2 CHANGES (September 2026 audit)\n  1. PROGRESS BAR FROZEN. The stylesheet set width 0% !important on\n     the bar, which beats the inline width the script set. Rebuilt as\n     a span with no !important on width, set with priority by script.\n  2. RESET. A two tap Clear button sits beside Classify. Changing an\n     answer hides a stale result. Classify another system also resets.\n  3. CONTRADICTORY ANSWERS were silently resolved (for example fixed\n     rules plus self modification returned L0). They are now listed,\n     and the level uses the higher reading, because a system recorded\n     too low is the common and dangerous error.\n  4. NO GO RULE aligned to the Chapter 4 wording quoted in version 1:\n     L4 or above, irreversible, EXTERNAL (limited or broad), at HIGH\n     velocity (thousands a day or more). Version 1 required external\n     broad AND thousands an hour, which under flagged the profile.\n  5. DEPLOYMENT VERDICT added first: do not deploy, deploy only when\n     named conditions close, or proceed under the control floor.\n  6. OVERSIGHT ARITHMETIC: printed \"0.0 h\" and could warn that 0.0\n     hours exceeded 0 available; negative inputs were accepted;\n     \"thousands an hour\" was modelled as 1,667 an hour. Durations now\n     print in seconds, minutes or hours, inputs are clamped, the sample\n     and reconciliation rates used are stated, and the rate is 2,000\n     an hour. Fixed rules with no review is no longer a warning.\n  7. IDENTITY FINDINGS were an if else chain that showed only the\n     first issue. All applicable findings now show.\n  8. OWASP CODES: six of ten were attached to the wrong risk. Mapped\n     to the published 2026 list: ASI01 Agent Goal Hijack, ASI02 Tool\n     Misuse and Exploitation, ASI03 Identity and Privilege Abuse,\n     ASI04 Agentic Supply Chain Vulnerabilities, ASI05 Unexpected Code\n     Execution, ASI06 Memory and Context Poisoning, ASI07 Insecure\n     Inter Agent Communication, ASI08 Cascading Failures, ASI09 Human\n     Agent Trust Exploitation, ASI10 Rogue Agents.\n  9. EU AI Act self learning reference now cites Article 43(4) on\n     predetermined changes rather than a general reassessment claim.\n 10. The agent record opens with the verdict, decision and conditions.\n\nSCORING (unchanged): autonomy points L0 0, L1 1, L2 2, L3 4, L4 6,\nL5 8; impact = scope (0,2,3,5) + reversibility (0,2,4) + velocity\n(0 to 3); risk 0 to 20; Tier 1 0 to 4, Tier 2 5 to 9, Tier 3 10 to\n14, Tier 4 15 to 20. Identity score 0 to 8, tiers at 2, 4, 6. The\neffective tier is the higher of the two.\n\nWORDPRESS: no less than sign or ampersand in script, no innerHTML,\nno template literals or arrow functions, no flex gap, no styling on\nthe i element. NO HYPHENS OR DASHES IN VISIBLE COPY.\n-->\n\n<div id=\"war-ladder-2026\">\n\n<style>\n#war-ladder-2026 { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif !important; color: #333 !important; line-height: 1.6 !important; max-width: 100% !important; margin: 0 !important; padding: 0 !important; -webkit-text-size-adjust: 100% !important; text-size-adjust: 100% !important; }\n#war-ladder-2026 * { box-sizing: border-box !important; }\n#war-ladder-2026 h1, #war-ladder-2026 h2, #war-ladder-2026 h3, #war-ladder-2026 h4 { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif !important; text-transform: none !important; overflow-wrap: break-word !important; word-wrap: break-word !important; -webkit-hyphens: none !important; hyphens: none !important; }\n#war-ladder-2026 p, #war-ladder-2026 li, #war-ladder-2026 td, #war-ladder-2026 span, #war-ladder-2026 label { overflow-wrap: break-word !important; word-wrap: break-word !important; }\n#war-ladder-2026 a { text-decoration: none !important; }\n#war-ladder-2026 .lad-inner { max-width: 900px !important; margin: 0 auto !important; }\n#war-ladder-2026 .lad-wide { max-width: 1120px !important; margin: 0 auto !important; }\n#war-ladder-2026 .lad-band { background: #B91C1C !important; background-image: linear-gradient(90deg, #B91C1C 0%, #7C3AED 100%) !important; padding: 12px 20px !important; text-align: center !important; }\n#war-ladder-2026 .lad-band p { margin: 0 !important; color: #fff !important; font-size: 13.5px !important; font-weight: 500 !important; }\n#war-ladder-2026 .lad-band strong { color: #FFD700 !important; }\n#war-ladder-2026 .lad-hero { background: #1a2a3a !important; background-image: radial-gradient(circle at 78% 22%, rgba(185,28,28,0.20) 0%, transparent 55%), linear-gradient(135deg, #0a1622 0%, #1a2a3a 55%, #2d4156 100%) !important; padding: 52px 20px 46px 20px !important; }\n#war-ladder-2026 .lad-eyebrow { display: inline-block !important; color: #c9a227 !important; font-size: 11px !important; font-weight: 700 !important; letter-spacing: 2px !important; text-transform: uppercase !important; margin-bottom: 12px !important; }\n#war-ladder-2026 .lad-h1 { color: #fff !important; font-size: 42px !important; font-weight: 800 !important; margin: 0 0 14px 0 !important; line-height: 1.06 !important; letter-spacing: -0.5px !important; }\n#war-ladder-2026 .lad-lede { color: rgba(255,255,255,0.85) !important; font-size: 17px !important; margin: 0 0 22px 0 !important; line-height: 1.5 !important; max-width: 660px !important; }\n#war-ladder-2026 .lad-facts { display: flex !important; flex-wrap: wrap !important; margin: 0 0 16px -5px !important; }\n#war-ladder-2026 .lad-fact { background: rgba(255,255,255,0.08) !important; border: 1px solid rgba(255,255,255,0.18) !important; border-radius: 6px !important; padding: 9px 14px !important; color: rgba(255,255,255,0.9) !important; font-size: 12.5px !important; font-weight: 600 !important; margin: 0 5px 10px 5px !important; }\n#war-ladder-2026 .lad-fact b { color: #c9a227 !important; }\n#war-ladder-2026 .lad-honest { max-width: 700px !important; background: rgba(201,162,39,0.10) !important; border-left: 4px solid #c9a227 !important; border-radius: 6px !important; padding: 16px 18px !important; color: rgba(255,255,255,0.82) !important; font-size: 13.5px !important; line-height: 1.65 !important; }\n#war-ladder-2026 .lad-honest b { color: #c9a227 !important; }\n\n#war-ladder-2026 .lad-form { background: #f7f8fa !important; padding: 46px 20px !important; }\n#war-ladder-2026 .lad-sec { background: #fff !important; border: 1px solid #e2e6ea !important; border-radius: 12px !important; margin-bottom: 22px !important; overflow: hidden !important; }\n#war-ladder-2026 .lad-shead { padding: 20px 24px !important; display: flex !important; align-items: center !important; flex-wrap: wrap !important; }\n#war-ladder-2026 .lad-shead.s1 { background: #991B1B !important; background-image: linear-gradient(135deg, #B91C1C 0%, #991B1B 100%) !important; }\n#war-ladder-2026 .lad-shead.s2 { background: #6D28D9 !important; background-image: linear-gradient(135deg, #7C3AED 0%, #6D28D9 100%) !important; }\n#war-ladder-2026 .lad-shead.s3 { background: #047857 !important; background-image: linear-gradient(135deg, #059669 0%, #047857 100%) !important; }\n#war-ladder-2026 .lad-shead.s4 { background: #B45309 !important; background-image: linear-gradient(135deg, #D97706 0%, #B45309 100%) !important; }\n#war-ladder-2026 .lad-shead.s5 { background: #334155 !important; background-image: linear-gradient(135deg, #475569 0%, #334155 100%) !important; }\n#war-ladder-2026 .lad-snum { width: 46px !important; height: 46px !important; flex-shrink: 0 !important; background: rgba(255,255,255,0.16) !important; border: 2px solid rgba(255,255,255,0.35) !important; border-radius: 10px !important; display: flex !important; align-items: center !important; justify-content: center !important; color: #fff !important; font-size: 17px !important; font-weight: 800 !important; margin-right: 15px !important; }\n#war-ladder-2026 .lad-stitle { flex: 1 !important; min-width: 180px !important; }\n#war-ladder-2026 .lad-stitle h2 { margin: 0 0 4px 0 !important; color: #fff !important; font-size: 20px !important; font-weight: 700 !important; line-height: 1.25 !important; }\n#war-ladder-2026 .lad-stitle p { margin: 0 !important; color: rgba(255,255,255,0.88) !important; font-size: 13px !important; line-height: 1.45 !important; }\n#war-ladder-2026 .lad-sbody { padding: 6px 24px 20px 24px !important; }\n#war-ladder-2026 .lad-q { padding: 18px 0 !important; border-bottom: 1px solid #eef1f4 !important; }\n#war-ladder-2026 .lad-q:last-child { border-bottom: none !important; }\n#war-ladder-2026 .lad-qlabel { font-size: 15.5px !important; font-weight: 700 !important; color: #1a2a3a !important; margin: 0 0 4px 0 !important; line-height: 1.45 !important; }\n#war-ladder-2026 .lad-help { font-size: 13px !important; color: #6b7785 !important; margin: 0 0 10px 0 !important; line-height: 1.55 !important; }\n#war-ladder-2026 .lad-opt { display: block !important; position: relative !important; padding: 12px 14px 12px 42px !important; border: 1px solid #dde2e7 !important; border-radius: 7px !important; margin: 0 0 8px 0 !important; cursor: pointer !important; font-size: 14px !important; color: #444 !important; line-height: 1.5 !important; background: #fff !important; min-height: 46px !important; -webkit-tap-highlight-color: rgba(201,162,39,0.25) !important; }\n#war-ladder-2026 .lad-opt:hover { border-color: #b9c2cb !important; background: #fbfcfd !important; }\n#war-ladder-2026 .lad-opt input { position: absolute !important; left: 14px !important; top: 14px !important; width: 18px !important; height: 18px !important; margin: 0 !important; cursor: pointer !important; -webkit-appearance: radio !important; appearance: auto !important; }\n#war-ladder-2026 .lad-opt input:checked ~ span { font-weight: 700 !important; color: #1a2a3a !important; }\n#war-ladder-2026 .lad-fields { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; grid-gap: 14px !important; gap: 14px !important; }\n#war-ladder-2026 .lad-f label { display: block !important; font-size: 13px !important; font-weight: 700 !important; color: #1a2a3a !important; margin-bottom: 5px !important; line-height: 1.4 !important; }\n#war-ladder-2026 .lad-f input, #war-ladder-2026 input.lad-name { display: block !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; padding: 12px 13px !important; border: 1px solid #dde2e7 !important; border-radius: 7px !important; font-size: 16px !important; font-family: inherit !important; color: #1a2a3a !important; min-height: 46px !important; background: #fff !important; -webkit-appearance: none !important; appearance: none !important; }\n\n#war-ladder-2026 .lad-progress { position: -webkit-sticky !important; position: sticky !important; bottom: 0 !important; background: #1a2a3a !important; padding: 12px 20px 14px 20px !important; z-index: 20 !important; box-shadow: 0 -4px 18px rgba(0,0,0,0.22) !important; }\n#war-ladder-2026 .lad-pinner { max-width: 900px !important; margin: 0 auto !important; display: flex !important; align-items: center !important; flex-wrap: wrap !important; }\n#war-ladder-2026 .lad-pinner > * { margin: 4px 6px !important; }\n#war-ladder-2026 .lad-ptext { color: rgba(255,255,255,0.9) !important; font-size: 13px !important; font-weight: 600 !important; flex: 1 !important; min-width: 150px !important; }\n#war-ladder-2026 .lad-ptext b { color: #c9a227 !important; }\n#war-ladder-2026 .lad-barwrap { display: block !important; width: 100% !important; max-width: 900px !important; margin: 10px auto 0 auto !important; height: 10px !important; background-color: rgba(255,255,255,0.18) !important; border-radius: 5px !important; overflow: hidden !important; padding: 0 !important; font-size: 0 !important; }\n#war-ladder-2026 .lad-fillbar { display: block !important; width: 0; height: 10px !important; min-height: 10px !important; background-color: #B91C1C !important; background-image: linear-gradient(90deg, #B91C1C, #c9a227) !important; border-radius: 5px !important; transition: width 0.25s ease !important; margin: 0 !important; padding: 0 !important; border: none !important; float: none !important; }\n#war-ladder-2026 .lad-go { background: #c9a227 !important; color: #1a2a3a !important; border: none !important; padding: 14px 24px !important; min-height: 48px !important; border-radius: 7px !important; font-size: 14.5px !important; font-weight: 800 !important; cursor: pointer !important; font-family: inherit !important; -webkit-appearance: none !important; appearance: none !important; }\n#war-ladder-2026 .lad-go:hover { background: #ddb832 !important; }\n#war-ladder-2026 .lad-go[disabled] { background: #6b7785 !important; color: rgba(255,255,255,0.72) !important; cursor: not-allowed !important; }\n#war-ladder-2026 .lad-clear { background: transparent !important; color: rgba(255,255,255,0.88) !important; border: 2px solid rgba(255,255,255,0.32) !important; padding: 12px 18px !important; min-height: 48px !important; border-radius: 7px !important; font-size: 13px !important; font-weight: 700 !important; cursor: pointer !important; font-family: inherit !important; -webkit-appearance: none !important; appearance: none !important; }\n#war-ladder-2026 .lad-clear.armed { background: #B91C1C !important; border-color: #B91C1C !important; color: #fff !important; }\n\n#war-ladder-2026 .lad-result { display: none !important; background: #1a2a3a !important; background-image: linear-gradient(135deg, #0a1622 0%, #1a2a3a 100%) !important; padding: 52px 20px !important; }\n#war-ladder-2026 .lad-result.on { display: block !important; }\n#war-ladder-2026 .lad-deploy { border-radius: 12px !important; padding: 24px 26px !important; margin-bottom: 22px !important; border: 2px solid transparent !important; }\n#war-ladder-2026 .lad-deploy.nogo { background: #7f1d1d !important; border-color: #ef4444 !important; }\n#war-ladder-2026 .lad-deploy.cond { background: #fdf2d0 !important; border-color: #D97706 !important; }\n#war-ladder-2026 .lad-deploy.go { background: #dcf0e4 !important; border-color: #059669 !important; }\n#war-ladder-2026 .lad-deploy .lad-dtag { display: block !important; font-size: 11px !important; font-weight: 800 !important; letter-spacing: 2px !important; text-transform: uppercase !important; margin-bottom: 8px !important; }\n#war-ladder-2026 .lad-deploy h3 { font-size: 24px !important; font-weight: 800 !important; margin: 0 0 10px 0 !important; line-height: 1.25 !important; }\n#war-ladder-2026 .lad-deploy p { font-size: 14.5px !important; line-height: 1.7 !important; margin: 0 0 10px 0 !important; }\n#war-ladder-2026 .lad-deploy ol { margin: 6px 0 0 0 !important; padding-left: 22px !important; }\n#war-ladder-2026 .lad-deploy li { font-size: 14px !important; line-height: 1.6 !important; margin-bottom: 6px !important; }\n#war-ladder-2026 .lad-deploy.nogo .lad-dtag { color: #fecaca !important; }\n#war-ladder-2026 .lad-deploy.nogo h3, #war-ladder-2026 .lad-deploy.nogo p, #war-ladder-2026 .lad-deploy.nogo li { color: #fff !important; }\n#war-ladder-2026 .lad-deploy.cond .lad-dtag, #war-ladder-2026 .lad-deploy.cond h3, #war-ladder-2026 .lad-deploy.cond p, #war-ladder-2026 .lad-deploy.cond li { color: #5c3d00 !important; }\n#war-ladder-2026 .lad-deploy.go .lad-dtag, #war-ladder-2026 .lad-deploy.go h3, #war-ladder-2026 .lad-deploy.go p, #war-ladder-2026 .lad-deploy.go li { color: #14603c !important; }\n\n#war-ladder-2026 .lad-verdict { background: #fff !important; border-radius: 14px !important; padding: 30px 28px !important; margin-bottom: 22px !important; text-align: center !important; }\n#war-ladder-2026 .lad-vsys { font-size: 13px !important; font-weight: 700 !important; color: #6b7785 !important; letter-spacing: 0.5px !important; margin: 0 0 14px 0 !important; }\n#war-ladder-2026 .lad-vlevel { display: inline-block !important; background: #7C3AED !important; background-image: linear-gradient(135deg, #B91C1C 0%, #7C3AED 100%) !important; color: #fff !important; font-size: 46px !important; font-weight: 800 !important; font-family: Georgia, serif !important; padding: 10px 28px !important; border-radius: 12px !important; line-height: 1.05 !important; margin-bottom: 14px !important; }\n#war-ladder-2026 .lad-vname { font-size: 27px !important; font-weight: 800 !important; color: #1a2a3a !important; margin: 0 0 6px 0 !important; line-height: 1.2 !important; }\n#war-ladder-2026 .lad-valias { font-size: 13px !important; color: #6b7785 !important; margin: 0 0 18px 0 !important; }\n#war-ladder-2026 .lad-vwhy { max-width: 660px !important; margin: 0 auto !important; font-size: 14.5px !important; color: #444 !important; line-height: 1.7 !important; text-align: left !important; background: #f6f8fa !important; border-left: 4px solid #1a2a3a !important; border-radius: 6px !important; padding: 16px 18px !important; }\n#war-ladder-2026 .lad-vwhy p { margin: 0 0 10px 0 !important; }\n\n#war-ladder-2026 .lad-grid2 { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; grid-gap: 18px !important; gap: 18px !important; margin-bottom: 22px !important; }\n#war-ladder-2026 .lad-panel { background: #fff !important; border-radius: 12px !important; padding: 24px 22px !important; }\n#war-ladder-2026 .lad-panel.solo { margin-bottom: 22px !important; }\n#war-ladder-2026 .lad-panel h3 { margin: 0 0 6px 0 !important; font-size: 19px !important; font-weight: 800 !important; color: #1a2a3a !important; line-height: 1.3 !important; }\n#war-ladder-2026 .lad-panel .lad-sub { margin: 0 0 16px 0 !important; font-size: 13px !important; color: #6b7785 !important; line-height: 1.6 !important; }\n#war-ladder-2026 .lad-ask { border-left: 6px solid #c9a227 !important; }\n#war-ladder-2026 .lad-askrow { display: flex !important; padding: 12px 0 !important; border-bottom: 1px solid #eef1f4 !important; flex-wrap: wrap !important; }\n#war-ladder-2026 .lad-askrow:last-child { border-bottom: none !important; }\n#war-ladder-2026 .lad-askrow b { flex: 0 0 190px !important; font-size: 11px !important; font-weight: 800 !important; letter-spacing: 1px !important; text-transform: uppercase !important; color: #6b7785 !important; padding: 2px 14px 4px 0 !important; }\n#war-ladder-2026 .lad-askrow span { flex: 1 1 240px !important; min-width: 0 !important; font-size: 15px !important; color: #1a2a3a !important; line-height: 1.55 !important; font-weight: 600 !important; }\n#war-ladder-2026 .lad-big { font-size: 30px !important; font-weight: 800 !important; color: #1a2a3a !important; line-height: 1.15 !important; margin: 0 0 4px 0 !important; }\n#war-ladder-2026 .lad-chip { display: inline-block !important; font-size: 10px !important; font-weight: 800 !important; letter-spacing: 0.8px !important; text-transform: uppercase !important; padding: 4px 10px !important; border-radius: 3px !important; margin-bottom: 12px !important; }\n#war-ladder-2026 .lad-chip.t1 { background: #dcf0e4 !important; color: #14603c !important; }\n#war-ladder-2026 .lad-chip.t2 { background: #fdf2d0 !important; color: #8a6100 !important; }\n#war-ladder-2026 .lad-chip.t3 { background: #fde3d3 !important; color: #a2440a !important; }\n#war-ladder-2026 .lad-chip.t4 { background: #fadbd8 !important; color: #922b21 !important; }\n#war-ladder-2026 .lad-list { margin: 0 !important; padding: 0 0 0 20px !important; }\n#war-ladder-2026 .lad-list li { font-size: 13.5px !important; color: #444 !important; line-height: 1.6 !important; margin-bottom: 8px !important; }\n#war-ladder-2026 .lad-note { border-radius: 8px !important; padding: 15px 17px !important; font-size: 13.5px !important; line-height: 1.65 !important; margin-top: 12px !important; }\n#war-ladder-2026 .lad-note.warn { background: #fadbd8 !important; border-left: 4px solid #B91C1C !important; color: #6d2019 !important; }\n#war-ladder-2026 .lad-note.caution { background: #fdf2d0 !important; border-left: 4px solid #D97706 !important; color: #6d4a00 !important; }\n#war-ladder-2026 .lad-note.ok { background: #dcf0e4 !important; border-left: 4px solid #059669 !important; color: #14603c !important; }\n\n#war-ladder-2026 table.lad-tbl { width: 100% !important; min-width: 620px !important; border-collapse: collapse !important; font-size: 13px !important; }\n#war-ladder-2026 table.lad-tbl th { background: #1a2a3a !important; color: #fff !important; text-align: left !important; padding: 10px 12px !important; font-size: 11px !important; font-weight: 800 !important; letter-spacing: 0.5px !important; text-transform: uppercase !important; }\n#war-ladder-2026 table.lad-tbl td { padding: 11px 12px !important; border-bottom: 1px solid #eef1f4 !important; vertical-align: top !important; color: #444 !important; line-height: 1.55 !important; }\n#war-ladder-2026 .lad-scroll { overflow-x: auto !important; -webkit-overflow-scrolling: touch !important; max-width: 100% !important; }\n#war-ladder-2026 .lad-hint { display: none !important; }\n@media (max-width: 768px) { #war-ladder-2026 .lad-hint { display: block !important; font-size: 11.5px !important; font-weight: 700 !important; color: #6b7785 !important; margin: 0 0 8px 0 !important; } }\n\n#war-ladder-2026 .lad-card { background: #f6f8fa !important; border: 1px dashed #c3ccd5 !important; border-radius: 8px !important; padding: 18px 20px !important; font-size: 13.5px !important; color: #333 !important; line-height: 1.7 !important; white-space: pre-wrap !important; font-family: Georgia, 'Times New Roman', serif !important; }\n#war-ladder-2026 .lad-btnrow { display: flex !important; flex-wrap: wrap !important; margin: 10px -5px 0 -5px !important; }\n#war-ladder-2026 .lad-btn { background: #1a2a3a !important; color: #fff !important; border: none !important; cursor: pointer !important; padding: 13px 20px !important; min-height: 46px !important; border-radius: 6px !important; font-size: 13px !important; font-weight: 700 !important; font-family: inherit !important; display: -webkit-inline-flex !important; display: inline-flex !important; align-items: center !important; margin: 6px 5px 0 5px !important; -webkit-appearance: none !important; appearance: none !important; }\n#war-ladder-2026 .lad-btn:hover { background: #2d4156 !important; }\n#war-ladder-2026 .lad-btn.gold { background: #c9a227 !important; color: #1a2a3a !important; }\n#war-ladder-2026 .lad-btn.ghost { background: transparent !important; color: #1a2a3a !important; border: 2px solid #c3ccd5 !important; }\n\n#war-ladder-2026 .lad-next { background: #fff !important; padding: 50px 20px !important; }\n#war-ladder-2026 .lad-next h3 { text-align: center !important; font-size: 28px !important; font-weight: 800 !important; color: #1a2a3a !important; margin: 0 0 10px 0 !important; }\n#war-ladder-2026 .lad-next .lad-sub { text-align: center !important; max-width: 660px !important; margin: 0 auto 32px auto !important; color: #6b7785 !important; font-size: 15px !important; line-height: 1.6 !important; }\n#war-ladder-2026 .lad-grid3 { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; grid-gap: 18px !important; gap: 18px !important; }\n#war-ladder-2026 .lad-tile { border: 1px solid #e2e6ea !important; border-radius: 10px !important; padding: 22px 20px !important; background: #fbfcfd !important; }\n#war-ladder-2026 .lad-tile h4 { margin: 0 0 8px 0 !important; font-size: 16px !important; font-weight: 700 !important; color: #1a2a3a !important; line-height: 1.35 !important; }\n#war-ladder-2026 .lad-tile p { margin: 0 0 14px 0 !important; font-size: 13.5px !important; color: #555 !important; line-height: 1.6 !important; }\n#war-ladder-2026 .lad-tile a { display: inline-block !important; background: #1a2a3a !important; color: #fff !important; padding: 12px 18px !important; min-height: 46px !important; border-radius: 6px !important; font-size: 12.5px !important; font-weight: 700 !important; line-height: 22px !important; }\n#war-ladder-2026 .lad-tile a:hover { background: #c9a227 !important; color: #1a2a3a !important; }\n#war-ladder-2026 .lad-cta { background: #c9a227 !important; background-image: linear-gradient(135deg, #c9a227 0%, #ddb832 100%) !important; padding: 46px 20px !important; text-align: center !important; }\n#war-ladder-2026 .lad-cta h3 { font-size: 27px !important; font-weight: 800 !important; color: #1a2a3a !important; margin: 0 0 10px 0 !important; }\n#war-ladder-2026 .lad-cta p { font-size: 15.5px !important; color: #1a2a3a !important; opacity: 0.85 !important; margin: 0 0 24px 0 !important; }\n#war-ladder-2026 .lad-ctarow { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; }\n#war-ladder-2026 .lad-ctarow a { background: #1a2a3a !important; color: #fff !important; padding: 13px 22px !important; min-height: 46px !important; border-radius: 6px !important; font-size: 13px !important; font-weight: 700 !important; display: -webkit-inline-flex !important; display: inline-flex !important; align-items: center !important; margin: 5px !important; }\n#war-ladder-2026 .lad-fine { background: #1a2a3a !important; padding: 24px 20px !important; }\n#war-ladder-2026 .lad-fine p { max-width: 900px !important; margin: 0 auto !important; color: rgba(255,255,255,0.62) !important; font-size: 11.5px !important; line-height: 1.75 !important; }\n#war-ladder-2026 .lad-fine b { color: rgba(255,255,255,0.85) !important; }\n#war-ladder-2026 .lad-manual { background: #fff9f0 !important; border-top: 4px solid #D97706 !important; padding: 40px 20px !important; }\n#war-ladder-2026 .lad-manual h3 { font-size: 23px !important; font-weight: 800 !important; color: #1a2a3a !important; margin: 0 0 10px 0 !important; }\n\n@media print {\n    #war-ladder-2026 .lad-band, #war-ladder-2026 .lad-hero, #war-ladder-2026 .lad-form, #war-ladder-2026 .lad-progress, #war-ladder-2026 .lad-next, #war-ladder-2026 .lad-cta, #war-ladder-2026 .lad-btnrow { display: none !important; }\n    #war-ladder-2026 .lad-result { background: #fff !important; padding: 0 !important; }\n    #war-ladder-2026 .lad-panel, #war-ladder-2026 .lad-verdict, #war-ladder-2026 .lad-deploy { border: 1px solid #ccc !important; page-break-inside: avoid !important; }\n    #war-ladder-2026 .lad-fine { background: #fff !important; }\n    #war-ladder-2026 .lad-fine p, #war-ladder-2026 .lad-fine b { color: #444 !important; }\n    #war-ladder-2026 table.lad-tbl { min-width: 0 !important; }\n}\n@media (max-width: 900px) {\n    #war-ladder-2026 .lad-grid2 { grid-template-columns: minmax(0, 1fr) !important; }\n    #war-ladder-2026 .lad-grid3 { grid-template-columns: minmax(0, 1fr) !important; max-width: 480px !important; margin: 0 auto !important; }\n}\n@media (max-width: 768px) {\n    #war-ladder-2026 .lad-h1 { font-size: 31px !important; }\n    #war-ladder-2026 .lad-hero { padding: 38px 18px 34px 18px !important; }\n    #war-ladder-2026 .lad-form, #war-ladder-2026 .lad-result, #war-ladder-2026 .lad-next { padding: 34px 16px !important; }\n    #war-ladder-2026 .lad-shead, #war-ladder-2026 .lad-sbody { padding-left: 16px !important; padding-right: 16px !important; }\n    #war-ladder-2026 .lad-fields { grid-template-columns: minmax(0, 1fr) !important; }\n    #war-ladder-2026 .lad-vlevel { font-size: 38px !important; padding: 8px 22px !important; }\n    #war-ladder-2026 .lad-vname { font-size: 22px !important; }\n    #war-ladder-2026 .lad-verdict, #war-ladder-2026 .lad-deploy { padding: 22px 18px !important; }\n    #war-ladder-2026 .lad-panel { padding: 20px 16px !important; }\n    #war-ladder-2026 .lad-askrow b { flex: 0 0 100% !important; }\n}\n@media (max-width: 420px) {\n    #war-ladder-2026 .lad-h1 { font-size: 27px !important; }\n    #war-ladder-2026 .lad-vlevel { font-size: 32px !important; }\n    #war-ladder-2026 .lad-vname { font-size: 19px !important; }\n    #war-ladder-2026 .lad-deploy h3 { font-size: 20px !important; }\n    #war-ladder-2026 .lad-opt { font-size: 13.5px !important; padding-left: 40px !important; }\n    #war-ladder-2026 .lad-shead, #war-ladder-2026 .lad-sbody, #war-ladder-2026 .lad-panel, #war-ladder-2026 .lad-verdict, #war-ladder-2026 .lad-deploy { padding-left: 12px !important; padding-right: 12px !important; }\n    #war-ladder-2026 .lad-stitle { min-width: 0 !important; }\n    #war-ladder-2026 .lad-snum { width: 38px !important; height: 38px !important; margin-right: 10px !important; }\n}\n<\/style>\n\n<div class=\"lad-band\">\n    <p>THE CLASSIFICATION INSTRUMENT: <strong>Your level is derived, not self selected.<\/strong> Most systems are recorded a rung lower than they operate.<\/p>\n<\/div>\n\n<div class=\"lad-hero\">\n    <div class=\"lad-inner\">\n        <span class=\"lad-eyebrow\">Framework One \/\/ When Agents Rule<\/span>\n        <h1 class=\"lad-h1\">The L0 to L5 Agent Classifier<\/h1>\n        <p class=\"lad-lede\">Classify one AI system by the autonomy it actually operates with. Get a deployment verdict, the matched governance tier, the mandatory control floor, the oversight its decision volume permits, and an agent record ready for a governance council.<\/p>\n        <div class=\"lad-facts\">\n            <span class=\"lad-fact\"><b>12<\/b> questions<\/span>\n            <span class=\"lad-fact\"><b>4<\/b> minutes<\/span>\n            <span class=\"lad-fact\"><b>1<\/b> system per run<\/span>\n            <span class=\"lad-fact\"><b>0<\/b> fields sent anywhere<\/span>\n        <\/div>\n        <div class=\"lad-honest\">\n            <b>Why the level is derived rather than chosen.<\/b> Asked to place their own systems on a ladder, executives reliably pick a rung too low, because they classify what was approved rather than what operates today. This tool never asks you to pick a level. It asks what the system does and shows the reasoning so you can challenge it. Where two answers contradict each other, it says so and uses the higher reading.<br><br>\n            <b>Three things this returns that a maturity score will not.<\/b> Whether your stated human oversight is arithmetically possible at your decision volume. Whether your credentials make the system riskier than its autonomy level suggests. And whether the combination you describe is one no governance structure can adequately control, in which case the answer is redesign rather than a control list.<br><br>\n            Nothing you enter is transmitted or stored. Everything is computed in your own browser.\n        <\/div>\n    <\/div>\n<\/div>\n\n<div class=\"lad-form\">\n<div class=\"lad-inner\" id=\"lad-formtop\">\n\n    <div class=\"lad-sec\">\n        <div class=\"lad-shead s1\">\n            <div class=\"lad-snum\">1<\/div>\n            <div class=\"lad-stitle\">\n                <h2>What the system does<\/h2>\n                <p>These five answers derive the level. Answer for today, not for the approval document.<\/p>\n            <\/div>\n        <\/div>\n        <div class=\"lad-sbody\">\n            <div class=\"lad-q\">\n                <p class=\"lad-qlabel\"><label for=\"lad-sysname\">Name this system, so the result is labelled<\/label><\/p>\n                <p class=\"lad-help\">Optional. Used only to label the output on this page.<\/p>\n                <input type=\"text\" class=\"lad-name\" id=\"lad-sysname\" placeholder=\"For example, invoice exception triage agent\">\n            <\/div>\n            <div class=\"lad-q\">\n                <p class=\"lad-qlabel\">Does model inference sit in the decision path, or does the system follow fixed rules only?<\/p>\n                <p class=\"lad-help\">A script or a robotic process automation routine that does the same thing the same way every time follows fixed rules. If a model decides anything, inference is in the path.<\/p>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"a1\" value=\"rules\"><span>Fixed rules only. No model decides anything. Same input, same output, every time.<\/span><\/label>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"a1\" value=\"model\"><span>A model influences or makes the decision.<\/span><\/label>\n            <\/div>\n            <div class=\"lad-q\">\n                <p class=\"lad-qlabel\">Does the system take action itself, or does it produce output for a human to act on?<\/p>\n                <p class=\"lad-help\">The test is whether a human always sits between the output and any consequential action. If the system writes, sends, posts, pays, books, changes or removes anything, it acts.<\/p>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"a2\" value=\"recommend\"><span>It recommends, scores, drafts or flags. A human always acts on it.<\/span><\/label>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"a2\" value=\"acts\"><span>It takes action itself, at least some of the time.<\/span><\/label>\n            <\/div>\n            <div class=\"lad-q\">\n                <p class=\"lad-qlabel\">Is human review part of normal operation, or is it reserved for exceptions?<\/p>\n                <p class=\"lad-help\">This is the distinction that matters most on the whole ladder. At one side a human expects to see the work. At the other, a human sees an exception or a sample, and normal operation is unobserved.<\/p>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"a3\" value=\"normal\"><span>A human reviews significant decisions as part of normal operation.<\/span><\/label>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"a3\" value=\"exception\"><span>It operates independently as the norm. Humans handle exceptions, boundary crossings and periodic oversight.<\/span><\/label>\n            <\/div>\n            <div class=\"lad-q\">\n                <p class=\"lad-qlabel\">Can the system change its own operating parameters or strategy based on what it learns?<\/p>\n                <p class=\"lad-help\">Not whether the vendor retrains the underlying model. Whether this system adjusts its own decision logic, thresholds or strategy in production without a human approving the change.<\/p>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"a4\" value=\"no\"><span>No. Its decision logic changes only when a human deploys a change.<\/span><\/label>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"a4\" value=\"yes\"><span>Yes. It adapts its own parameters or strategy from observed outcomes.<\/span><\/label>\n            <\/div>\n            <div class=\"lad-q\">\n                <p class=\"lad-qlabel\">Does the system set its own objectives, allocate resources, or direct other agents?<\/p>\n                <p class=\"lad-help\">Given a high level goal, does it decide what to pursue and sequence other systems to get there? An orchestrator that instructs subordinate agents counts.<\/p>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"a5\" value=\"no\"><span>No. Its objectives and scope are set by people.<\/span><\/label>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"a5\" value=\"yes\"><span>Yes. It formulates or selects objectives, allocates resource, or instructs other agents.<\/span><\/label>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <div class=\"lad-sec\">\n        <div class=\"lad-shead s2\">\n            <div class=\"lad-snum\">2<\/div>\n            <div class=\"lad-stitle\">\n                <h2>The governance matrix<\/h2>\n                <p>Autonomy is one dimension. These three decide how much governance the same level needs.<\/p>\n            <\/div>\n        <\/div>\n        <div class=\"lad-sbody\">\n            <div class=\"lad-q\">\n                <p class=\"lad-qlabel\">Who or what is affected by its decisions?<\/p>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"b1\" value=\"0\"><span><b>Internal limited.<\/b> One team or one process.<\/span><\/label>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"b1\" value=\"2\"><span><b>Internal broad.<\/b> Multiple teams, processes or business units, including employees and their schedules, assignments, evaluations or pay.<\/span><\/label>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"b1\" value=\"3\"><span><b>External limited.<\/b> External parties, in narrow ways.<\/span><\/label>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"b1\" value=\"5\"><span><b>External broad.<\/b> External parties, significantly or at scale.<\/span><\/label>\n            <\/div>\n            <div class=\"lad-q\">\n                <p class=\"lad-qlabel\">Can its decisions be undone?<\/p>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"b2\" value=\"0\"><span><b>Fully reversible.<\/b> An order can be cancelled, a schedule changed, a recommendation withdrawn.<\/span><\/label>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"b2\" value=\"2\"><span><b>Partially reversible.<\/b> Correctable going forward, but the original effect stands.<\/span><\/label>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"b2\" value=\"4\"><span><b>Irreversible.<\/b> A message sent cannot be unsent, a payment made cannot be unmade, a commitment given cannot be withdrawn.<\/span><\/label>\n            <\/div>\n            <div class=\"lad-q\">\n                <p class=\"lad-qlabel\">How many consequential decisions does it make?<\/p>\n                <p class=\"lad-help\">Approximate is fine. This determines whether human oversight can be decision by decision at all, or must be sample, pattern or outcome based.<\/p>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"b3\" value=\"0\"><span>Up to a handful a day.<\/span><\/label>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"b3\" value=\"1\"><span>Tens to a few hundred a day.<\/span><\/label>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"b3\" value=\"2\"><span>Thousands a day.<\/span><\/label>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"b3\" value=\"3\"><span>Thousands an hour or more.<\/span><\/label>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <div class=\"lad-sec\">\n        <div class=\"lad-shead s3\">\n            <div class=\"lad-snum\">3<\/div>\n            <div class=\"lad-stitle\">\n                <h2>What credentials it holds<\/h2>\n                <p>The autonomy ladder says what it may decide. The identity tier says what it may reach while deciding.<\/p>\n            <\/div>\n        <\/div>\n        <div class=\"lad-sbody\">\n            <div class=\"lad-q\">\n                <p class=\"lad-qlabel\">What can the system reach with the credentials it actually holds?<\/p>\n                <p class=\"lad-help\">Not the permissions it needs. The permissions it has. A system inherits the security posture of its credentials, not of its autonomy level.<\/p>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"c1\" value=\"0\"><span><b>Read only,<\/b> on a narrow scope it was provisioned for.<\/span><\/label>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"c1\" value=\"1\"><span><b>Write,<\/b> confined to one internal system.<\/span><\/label>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"c1\" value=\"2\"><span><b>Write across several systems,<\/b> or a dedicated account with broad internal scope.<\/span><\/label>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"c1\" value=\"3\"><span><b>Broad or shared service account,<\/b> financial, customer facing or administrative scope, or we are not certain what it can reach.<\/span><\/label>\n            <\/div>\n            <div class=\"lad-q\">\n                <p class=\"lad-qlabel\">How quickly can this system&#8217;s credentials be revoked, and has it been tested?<\/p>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"c2\" value=\"0\"><span>Revocation is tested on a cadence and the elapsed time is measured.<\/span><\/label>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"c2\" value=\"1\"><span>Tested at least once, but not recently, or only by the person who built it.<\/span><\/label>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"c2\" value=\"2\"><span>A procedure exists and has never been executed.<\/span><\/label>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"c2\" value=\"3\"><span>No procedure, or revoking it would break other things because the credential is shared.<\/span><\/label>\n            <\/div>\n            <div class=\"lad-q\">\n                <p class=\"lad-qlabel\">Can this system invoke, spawn or delegate to another agent?<\/p>\n                <p class=\"lad-help\">If it can, the parent identity context propagates to the child, and the chain has to be auditable.<\/p>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"c3\" value=\"0\"><span>No. It acts alone.<\/span><\/label>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"c3\" value=\"1\"><span>Yes, within an approved set, and the chain is logged.<\/span><\/label>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"c3\" value=\"2\"><span>Yes, and we cannot reliably reconstruct the chain.<\/span><\/label>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <div class=\"lad-sec\">\n        <div class=\"lad-shead s4\">\n            <div class=\"lad-snum\">4<\/div>\n            <div class=\"lad-stitle\">\n                <h2>The oversight you claim<\/h2>\n                <p>A human signature on work nobody had time to read is not oversight. This section checks the arithmetic.<\/p>\n            <\/div>\n        <\/div>\n        <div class=\"lad-sbody\">\n            <div class=\"lad-q\">\n                <p class=\"lad-qlabel\">What oversight does this system&#8217;s design currently call for?<\/p>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"d1\" value=\"gate\"><span><b>Pre action gate.<\/b> A human approves each decision before it takes effect.<\/span><\/label>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"d1\" value=\"sample\"><span><b>Sampling.<\/b> A human reviews a proportion of decisions after the fact.<\/span><\/label>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"d1\" value=\"reconcile\"><span><b>Reconciliation.<\/b> Outcomes are checked in aggregate on a cadence.<\/span><\/label>\n                <label class=\"lad-opt\"><input type=\"radio\" name=\"d1\" value=\"none\"><span><b>None documented.<\/b> Nobody reviews it on a defined basis.<\/span><\/label>\n            <\/div>\n            <div class=\"lad-q\">\n                <p class=\"lad-qlabel\">If a reviewer is meant to look at a decision, how long does a meaningful look take, and how many reviewer hours a day exist?<\/p>\n                <p class=\"lad-help\">Rough figures are fine. These two numbers decide whether the oversight above is possible or decorative. The check assumes a sample reviews one decision in ten and reconciliation one in a hundred.<\/p>\n                <div class=\"lad-fields\">\n                    <div class=\"lad-f\"><label for=\"lad-secs\">Seconds for one meaningful review<\/label><input type=\"number\" id=\"lad-secs\" min=\"1\" max=\"3600\" step=\"1\" value=\"45\" inputmode=\"numeric\"><\/div>\n                    <div class=\"lad-f\"><label for=\"lad-hours\">Reviewer hours available per day<\/label><input type=\"number\" id=\"lad-hours\" min=\"0\" max=\"500\" step=\"0.5\" value=\"4\" inputmode=\"decimal\"><\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <div class=\"lad-sec\">\n        <div class=\"lad-shead s5\">\n            <div class=\"lad-snum\">5<\/div>\n            <div class=\"lad-stitle\">\n                <h2>For the agent record (optional)<\/h2>\n                <p>Fills the bracketed fields in the record. Leave blank and the brackets stay for you to complete.<\/p>\n            <\/div>\n        <\/div>\n        <div class=\"lad-sbody\">\n            <div class=\"lad-q\">\n                <div class=\"lad-fields\">\n                    <div class=\"lad-f\"><label for=\"lad-by\">Classified by, name and role<\/label><input type=\"text\" id=\"lad-by\" placeholder=\"For example, D. Park, Head of AI Governance\"><\/div>\n                    <div class=\"lad-f\"><label for=\"lad-date\">Date of classification<\/label><input type=\"date\" id=\"lad-date\" value=\"\"><\/div>\n                    <div class=\"lad-f\"><label for=\"lad-bo\">Business owner<\/label><input type=\"text\" id=\"lad-bo\" placeholder=\"Name and role\"><\/div>\n                    <div class=\"lad-f\"><label for=\"lad-to\">Technical owner<\/label><input type=\"text\" id=\"lad-to\" placeholder=\"Name and role\"><\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n<\/div>\n<\/div>\n\n<div class=\"lad-progress\">\n    <div class=\"lad-pinner\">\n        <p class=\"lad-ptext\"><b id=\"lad-progn\">0<\/b><span id=\"lad-progl\"> of 12 answered<\/span><\/p>\n        <button type=\"button\" class=\"lad-clear\" id=\"lad-clear\">Clear<\/button>\n        <button type=\"button\" class=\"lad-go\" id=\"lad-go\" disabled>Classify This System<\/button>\n    <\/div>\n    <div class=\"lad-barwrap\"><span class=\"lad-fillbar\" id=\"lad-fill\"><\/span><\/div>\n<\/div>\n\n<div class=\"lad-result\" id=\"lad-result\">\n<div class=\"lad-wide\">\n\n    <div class=\"lad-deploy cond\" id=\"lad-deploy\">\n        <span class=\"lad-dtag\" id=\"lad-dtag\">Deployment verdict<\/span>\n        <h3 id=\"lad-dhead\"><\/h3>\n        <p id=\"lad-dtext\"><\/p>\n        <ol id=\"lad-dlist\"><\/ol>\n    <\/div>\n\n    <div class=\"lad-panel lad-ask solo\">\n        <h3>The ask<\/h3>\n        <p class=\"lad-sub\">The decision a governance council is being asked to take, and what it rests on. Everything below is the evidence.<\/p>\n        <div id=\"lad-asklist\"><\/div>\n    <\/div>\n\n    <div class=\"lad-verdict\">\n        <p class=\"lad-vsys\" id=\"lad-vsys\">Classification<\/p>\n        <div class=\"lad-vlevel\" id=\"lad-vlevel\">L0<\/div>\n        <h2 class=\"lad-vname\" id=\"lad-vname\">Tools<\/h2>\n        <p class=\"lad-valias\" id=\"lad-valias\"><\/p>\n        <div class=\"lad-vwhy\" id=\"lad-vwhy\"><\/div>\n    <\/div>\n\n    <div class=\"lad-panel solo\">\n        <h3>Do your answers agree with each other?<\/h3>\n        <p class=\"lad-sub\">Contradictions are resolved to the higher level, because recording a system too low is the common and dangerous error. Findings are consistent answers that still need attention.<\/p>\n        <div id=\"lad-coh\"><\/div>\n    <\/div>\n\n    <div class=\"lad-grid2\">\n        <div class=\"lad-panel\">\n            <h3>Governance tier<\/h3>\n            <p class=\"lad-sub\">Autonomy points plus impact points, on the same scale the Agent Inventory workbook uses, raised if the identity tier is higher.<\/p>\n            <span class=\"lad-chip t1\" id=\"lad-tchip\">Tier 1 Light<\/span>\n            <p class=\"lad-big\" id=\"lad-tscore\">0 of 20<\/p>\n            <p class=\"lad-sub\" id=\"lad-tbreak\"><\/p>\n            <p class=\"lad-sub\" style=\"margin-bottom:6px !important;\"><b>Mandatory control floor<\/b><\/p>\n            <ul class=\"lad-list\" id=\"lad-controls\"><\/ul>\n        <\/div>\n        <div class=\"lad-panel\">\n            <h3>Oversight the volume permits<\/h3>\n            <p class=\"lad-sub\">Decision volume decides whether per decision review is even possible. This is arithmetic, not judgement.<\/p>\n            <span class=\"lad-chip t2\" id=\"lad-ochip\">Pre action gate<\/span>\n            <p class=\"lad-big\" id=\"lad-oneed\">0<\/p>\n            <p class=\"lad-sub\" style=\"margin-bottom:0 !important;\">of reviewer time a day the claimed oversight needs<\/p>\n            <div class=\"lad-note ok\" id=\"lad-onote\"><\/div>\n        <\/div>\n    <\/div>\n\n    <div class=\"lad-grid2\">\n        <div class=\"lad-panel\">\n            <h3>Identity tier<\/h3>\n            <p class=\"lad-sub\">What it can reach, how fast that can be withdrawn, and whether it can hand authority to another agent.<\/p>\n            <span class=\"lad-chip t1\" id=\"lad-ichip\">Identity Tier 1<\/span>\n            <p class=\"lad-big\" id=\"lad-iscore\">0 of 8<\/p>\n            <div id=\"lad-inotes\"><\/div>\n        <\/div>\n        <div class=\"lad-panel\">\n            <h3>Escalation triggers<\/h3>\n            <p class=\"lad-sub\">The conditions at which this system must stop and involve a named human. Set the thresholds yourself; these are the conditions.<\/p>\n            <ul class=\"lad-list\" id=\"lad-escal\"><\/ul>\n        <\/div>\n    <\/div>\n\n    <div class=\"lad-panel solo\">\n        <h3>What this level maps to<\/h3>\n        <p class=\"lad-sub\">Your audit function will ask which established framework the classification maps onto. Verify article and control references against primary sources before citing them in a filing.<\/p>\n        <p class=\"lad-hint\">Swipe the table sideways to see every column.<\/p>\n        <div class=\"lad-scroll\">\n        <table class=\"lad-tbl\">\n            <thead><tr><th>Framework<\/th><th>What applies at this level<\/th><\/tr><\/thead>\n            <tbody id=\"lad-crosswalk\"><\/tbody>\n        <\/table>\n        <\/div>\n    <\/div>\n\n    <div class=\"lad-panel\">\n        <h3>Agent record<\/h3>\n        <p class=\"lad-sub\">A disclosure record in the shape a governance council, an auditor or an enterprise customer will ask for. It opens with the verdict and the decision. Complete any bracketed field and attach it to the inventory entry.<\/p>\n        <div class=\"lad-card\" id=\"lad-cardtext\"><\/div>\n        <div class=\"lad-btnrow\">\n            <button type=\"button\" class=\"lad-btn gold\" id=\"lad-copy\">Copy the record<\/button>\n            <button type=\"button\" class=\"lad-btn\" id=\"lad-print\">Print or save as PDF<\/button>\n            <button type=\"button\" class=\"lad-btn ghost\" id=\"lad-edit\">Change my answers<\/button>\n            <button type=\"button\" class=\"lad-btn ghost\" id=\"lad-again\">Classify another system<\/button>\n        <\/div>\n    <\/div>\n\n<\/div>\n<\/div>\n\n<div class=\"lad-next\">\n<div class=\"lad-wide\">\n    <h3>Turn the classification into governance<\/h3>\n    <p class=\"lad-sub\">A level is a label until it drives a control. These instruments are free for use inside your own organization.<\/p>\n    <div class=\"lad-grid3\">\n        <div class=\"lad-tile\">\n            <h4>Record it<\/h4>\n            <p>The Agent Inventory and Classification Workbook holds every system on one register, scores autonomy and impact on the same scale this tool uses, and flags the difference between the controls a system has and the controls its tier requires.<\/p>\n            <a href=\"https:\/\/www.opey.org\/opeyit\/?page_id=748#war-downloads-section\">Get the workbook<\/a>\n        <\/div>\n        <div class=\"lad-tile\">\n            <h4>Govern it<\/h4>\n            <p>The Agent Governance Charter sets the council, the four approval gates and the mandatory control floor per tier. The Containment and Kill Switch Procedure makes revocation something you have tested rather than something you have written down.<\/p>\n            <a href=\"https:\/\/www.opey.org\/opeyit\/?page_id=748#war-downloads-section\">Get the templates<\/a>\n        <\/div>\n        <div class=\"lad-tile\">\n            <h4>Understand it<\/h4>\n            <p>Chapter 4 of When Agents Rule establishes the ladder and the governance matrix. Chapter 5 pairs it with the identity tier and the agent security stack. Chapter 12 covers the organizational resistance that decides whether any of it survives.<\/p>\n            <a href=\"https:\/\/www.amazon.com\/dp\/B0H85XZT25\">Get the book<\/a>\n        <\/div>\n    <\/div>\n<\/div>\n<\/div>\n\n<noscript>\n<div class=\"lad-manual\">\n<div class=\"lad-inner\">\n    <h3>Classifying by hand<\/h3>\n    <p style=\"font-size:14.5px !important;color:#444 !important;line-height:1.7 !important;\">Interactive classification is unavailable in your browser. The instrument is unchanged. Work down the tree and stop at the first match.<\/p>\n    <ol style=\"font-size:14.5px !important;color:#444 !important;line-height:1.85 !important;\">\n        <li>It sets its own objectives, allocates resource or directs other agents. <b>L5, Strategic Agency.<\/b><\/li>\n        <li>No model inference in the decision path, fixed rules only, and it does not adapt itself. <b>L0, Tools.<\/b><\/li>\n        <li>A model decides, but the system only recommends and a human always acts. <b>L1, Assistants.<\/b> If it also adapts its own parameters, it stays L1 and drift monitoring becomes mandatory.<\/li>\n        <li>It acts, and human review of significant decisions is part of normal operation. <b>L2, Supervised Actors.<\/b><\/li>\n        <li>It acts independently as the norm, with humans for exceptions and periodic oversight. <b>L3, Bounded Autonomy.<\/b><\/li>\n        <li>It acts, and it also adapts its own parameters or strategy from outcomes. <b>L4, Extended Autonomy.<\/b><\/li>\n    <\/ol>\n    <p style=\"font-size:14.5px !important;color:#444 !important;line-height:1.7 !important;\"><b>If two answers contradict each other,<\/b> for example fixed rules that adapt themselves, or a recommender that operates independently, record the contradiction and use the higher level until it is resolved.<\/p>\n    <p style=\"font-size:14.5px !important;color:#444 !important;line-height:1.7 !important;\"><b>Then score the governance tier.<\/b> Autonomy points: L0 is 0, L1 is 1, L2 is 2, L3 is 4, L4 is 6, L5 is 8. Impact points: add impact scope (internal limited 0, internal broad 2, external limited 3, external broad 5), reversibility (fully 0, partially 2, irreversible 4) and volume (handful a day 0, hundreds 1, thousands a day 2, thousands an hour 3). Add autonomy and impact for a score out of 20. Score identity separately (credential scope 0 to 3, revocation 0 to 3, delegation 0 to 2); an identity score of 2, 4 or 6 or more means identity Tier 2, 3 or 4. The governance tier is the higher of the two.<\/p>\n    <div class=\"lad-scroll\">\n    <table class=\"lad-tbl\" style=\"margin-top:14px !important;\">\n        <thead><tr><th>Score<\/th><th>Tier<\/th><th>What the tier requires as a minimum<\/th><\/tr><\/thead>\n        <tbody>\n            <tr><td>0 to 4<\/td><td>Tier 1 Light<\/td><td>Named owner, change control, failure monitoring, annual review.<\/td><\/tr>\n            <tr><td>5 to 9<\/td><td>Tier 2 Standard<\/td><td>Documented decision boundary, dedicated identity, sampled review, twelve month logs, containment procedure, review twice yearly.<\/td><\/tr>\n            <tr><td>10 to 14<\/td><td>Tier 3 Enhanced<\/td><td>All of Tier 2, plus tested containment, documented escalation triggers, tool call logging, twenty four month logs, quarterly review.<\/td><\/tr>\n            <tr><td>15 to 20<\/td><td>Tier 4 Board Visible<\/td><td>All of Tier 3, plus a named executive owner, standing containment drill, independent assurance, and inclusion by name in the quarterly board report.<\/td><\/tr>\n        <\/tbody>\n    <\/table>\n    <\/div>\n    <p style=\"font-size:14.5px !important;color:#444 !important;line-height:1.7 !important;margin-top:14px !important;\"><b>The no go check.<\/b> If the system is at L4 or above, makes irreversible decisions that affect external parties, and runs at thousands of decisions a day or more, no governance structure adequately controls that profile. Reduce the autonomy, narrow the scope, add reversibility, or do not deploy it.<\/p>\n    <p style=\"font-size:14.5px !important;color:#444 !important;line-height:1.7 !important;\"><b>The oversight check.<\/b> Take decisions per day (about 3, 200, 4,000 or 48,000), multiply by the share reviewed (every decision for a gate, one in ten for sampling, one in a hundred for reconciliation) and by the seconds a meaningful review takes, then divide by 3,600. If the result exceeds the reviewer hours you actually have, the oversight in your design document is not happening.<\/p>\n<\/div>\n<\/div>\n<\/noscript>\n\n<div class=\"lad-cta\">\n    <h3>Classification is where governance starts<\/h3>\n    <p>Every governance decision in the book flows from the rung a system sits on.<\/p>\n    <div class=\"lad-ctarow\">\n        <a href=\"https:\/\/www.opey.org\/opeyit\/?page_id=748\">The book page<\/a>\n        <a href=\"https:\/\/www.opey.org\/opeyit\/?page_id=748#war-downloads-section\">Free toolkit<\/a>\n        <a href=\"https:\/\/www.amazon.com\/dp\/B0H85XZT25\">Get the book<\/a>\n        <a href=\"https:\/\/www.opey.org\/opeyit\/?page_id=14\">Advisory services<\/a>\n        <a href=\"https:\/\/www.opey.org\/opeyit\/?page_id=327\">When Clouds Fail<\/a>\n    <\/div>\n<\/div>\n\n<div class=\"lad-fine\">\n    <p><b>About this classifier.<\/b> The L0 to L5 Agent Autonomy Ladder is the classification instrument of When Agents Rule by Steven Oppenheim. This tool applies the ladder and the governance matrix set out in Chapter 4, paired with the identity tier from Chapter 5. It is a self assessment instrument, not an audit, a certification or a benchmark, and it reflects what you tell it. Level names follow the Chapter 4 treatment, with the Executive Brief alias shown alongside. OWASP references use the OWASP Top 10 for Agentic Applications 2026 identifiers. Nothing you enter leaves your browser: there is no account, no transmission and no storage. Framework references were current at the September 2026 build date and should be verified against primary sources before being cited in a regulatory filing or an audit response. This is not legal, technical or financial advice.<\/p>\n<\/div>\n\n<\/div>\n<!-- End of #war-ladder-2026 -->\n\n<script>\n\/* L0 TO L5 AGENT CLASSIFIER version 2. No less than sign, no ampersand,\n   no innerHTML, no template literals, no arrow functions. The MODEL block\n   is pure logic, tested against every combination of answers. *\/\n(function () {\n    var root = document.getElementById('war-ladder-2026');\n    if (!root) { return; }\n\n\/* MODEL START *\/\n    var LEVELS = [\n      { id: 'L0', name: 'Tools', alias: 'Rule Based Automation', pts: 0, desc: 'automates a specific task but exercises no judgement' },\n      { id: 'L1', name: 'Assistants', alias: 'Simple Decision Agent', pts: 1, desc: 'exercises judgement but takes no action; a human always sits between output and consequence' },\n      { id: 'L2', name: 'Supervised Actors', alias: 'Routine Task Agent', pts: 2, desc: 'acts within tight boundaries, with human review of significant decisions as part of normal operation' },\n      { id: 'L3', name: 'Bounded Autonomy', alias: 'Complex Workflow Agent', pts: 4, desc: 'operates independently as the norm inside a defined domain, with humans reserved for exceptions and periodic oversight' },\n      { id: 'L4', name: 'Extended Autonomy', alias: 'Exception Based Agent', pts: 6, desc: 'acts and modifies its own operating parameters or strategy from what it learns' },\n      { id: 'L5', name: 'Strategic Agency', alias: 'Fully Autonomous Agent', pts: 8, desc: 'formulates or selects objectives, allocates resource, and coordinates other systems' }\n    ];\n    var PER_DAY = [3, 200, 4000, 48000];\n    var VEL_WORDS = ['a handful a day', 'hundreds a day', 'thousands a day', 'thousands an hour'];\n    var PER_DAY_WORDS = ['about 3', 'about 200', 'about 4,000', 'about 48,000'];\n    var SCOPE_WORDS = { 0: 'internal limited', 2: 'internal broad', 3: 'external limited', 5: 'external broad' };\n    var REV_WORDS = { 0: 'fully reversible', 2: 'partially reversible', 4: 'irreversible' };\n    var MODE_WORDS = { gate: 'pre action gate', sample: 'sampling', reconcile: 'reconciliation', none: 'none documented' };\n    var TIERS = {\n      4: { name: 'Tier 4 Board Visible', cls: 't4', review: 'quarterly, and named in the quarterly board report', controls: [\n        'Named executive owner, not a team or a function.',\n        'Decision boundary documented and reviewed quarterly.',\n        'Dedicated identity, scoped per tool, with least privilege verified independently.',\n        'Complete decision, tool call and inter agent message logging, tamper evident, retained to the regulatory maximum.',\n        'Statistical oversight with measures that detect approval by reflex: completion rate, time spent, override rate.',\n        'Standing containment drill, executed by someone other than the author, timed.',\n        'Independent assurance review at least annually.',\n        'Named in the quarterly board report and discussable by directors.'] },\n      3: { name: 'Tier 3 Enhanced', cls: 't3', review: 'quarterly', controls: [\n        'Named business owner and technical owner.',\n        'Documented decision boundary with defined escalation triggers.',\n        'Dedicated identity, not a shared credential. Least privilege reviewed quarterly.',\n        'Full decision and tool call logging, twenty four months minimum.',\n        'Oversight on a documented cadence, plus exception alerting.',\n        'Containment tested at least annually and after material change.',\n        'Regulatory classification recorded, with legal sign off.',\n        'Review quarterly.'] },\n      2: { name: 'Tier 2 Standard', cls: 't2', review: 'twice yearly', controls: [\n        'Named business owner and technical owner.',\n        'Documented decision boundary.',\n        'Dedicated identity rather than a shared credential.',\n        'Decision logging with input provenance, twelve months.',\n        'Sampled review with a defined sampling basis.',\n        'Containment procedure documented.',\n        'Review twice yearly.'] },\n      1: { name: 'Tier 1 Light', cls: 't1', review: 'annually', controls: [\n        'Named owner recorded on the inventory.',\n        'Change control on the rule set or configuration.',\n        'Failure monitoring.',\n        'Annual review.'] }\n    };\n    var ESCAL_BASE = [\n      'An action taken outside the documented decision boundary.',\n      'Access attempted or achieved to a system or dataset it was not authorised to reach.',\n      'A decision whose basis cannot be reconstructed from the logs.',\n      'Any behaviour a customer, regulator, employee or partner reports as unexplained.'\n    ];\n\n    function clean(t) { return ('' + (t || '')).replace(\/\\s+\/g, ' ').replace(\/^ | $\/g, ''); }\n    function plural(n, one, many) { return n + ' ' + ((n === 1) ? one : many); }\n    function dur(minutes) {\n        var s = minutes * 60;\n        if (1 > s) { return (s > 0) ? 'under a second' : 'no time'; }\n        if (60 > s) { var sc = Math.ceil(s); return plural(sc, 'second', 'seconds'); }\n        if (60 > minutes) { var mn = Math.ceil(minutes); return plural(mn, 'minute', 'minutes'); }\n        var h = Math.round(minutes \/ 6) \/ 10;\n        return (h === Math.floor(h) ? ('' + h) : h.toFixed(1)) + ((h === 1) ? ' hour' : ' hours');\n    }\n    function hoursText(h) {\n        var r = Math.round(h * 10) \/ 10;\n        return (r === Math.floor(r) ? ('' + r) : r.toFixed(1)) + ((r === 1) ? ' hour' : ' hours');\n    }\n\n    function assess(a, raw, meta) {\n        var i = 0;\n        var out = {};\n        var scope = parseInt(a.b1, 10); var rev = parseInt(a.b2, 10); var vel = parseInt(a.b3, 10);\n        var c1 = parseInt(a.c1, 10); var c2 = parseInt(a.c2, 10); var c3 = parseInt(a.c3, 10);\n        var name = clean(meta.name) || 'This system';\n        out.name = name;\n\n        \/* ---------- contradictions, resolved to the higher reading ---------- *\/\n        var coh = [];\n        var model = (a.a1 === 'model');\n        var acts = (a.a2 === 'acts');\n        if (a.a1 === 'rules') {\n            if (a.a4 === 'yes') { model = true; coh.push(['contradiction', 'You describe fixed rules that give the same output every time, and also a system that adapts its own parameters from outcomes. A system that changes its own logic is not following fixed rules. It has been classified as model driven until that is resolved.']); }\n            if (a.a5 === 'yes') { coh.push(['contradiction', 'You describe fixed rules with no model deciding anything, and also a system that sets objectives or directs other agents. Setting objectives is judgement. It has been classified at the higher level until that is resolved.']); }\n        }\n        if (a.a2 === 'recommend') {\n            if (a.a5 === 'yes') { coh.push(['contradiction', 'You describe a system that only recommends, and also one that allocates resource or instructs other agents. Instructing another agent is an action. It has been classified at the higher level until that is resolved.']); }\n            if (a.a3 === 'exception') {\n                acts = true;\n                coh.push(['contradiction', 'You describe a system whose output a human always acts on, and also one that operates independently with humans only for exceptions. If a human acts on every output, human review is normal operation. If they do not, the system acts. It has been classified as acting independently until that is resolved.']);\n            }\n        }\n        if (a.a3 === 'exception') {\n            if (a.d1 === 'gate') { coh.push(['contradiction', 'You describe independent operation with humans only for exceptions, and also a pre action gate where a human approves every decision. Both cannot describe the same system. Either the gate is not operating as documented, or the system is supervised and belongs a rung lower. It has been classified at the higher level until that is resolved.']); }\n        }\n\n        \/* ---------- level ---------- *\/\n        var idx = 0; var reasons = [];\n        if (a.a5 === 'yes') {\n            idx = 5; reasons.push('It sets or selects its own objectives, allocates resource, or directs other agents.');\n            if (a.a4 === 'yes') { reasons.push('It also modifies its own parameters from learning.'); }\n        } else if (!model) {\n            idx = 0; reasons.push('No model inference sits in the decision path and it does not adapt itself, so it cannot surprise you with an unexpected decision.');\n        } else if (!acts) {\n            idx = 1; reasons.push('A model exercises judgement, but a human always sits between the output and any consequential action.');\n            if (a.a4 === 'yes') { reasons.push('It also adapts its own parameters from outcomes. That does not raise the level, because a human still acts on every output, but the basis of its recommendations changes without anyone deploying a change, so drift monitoring is mandatory rather than optional.'); }\n        } else {\n            if (a.a3 === 'normal') { idx = 2; reasons.push('It takes action, and a human reviews significant decisions as part of normal operation.'); }\n            else { idx = 3; reasons.push('It acts independently as the norm, with humans reserved for exceptions, boundary crossings and periodic oversight.'); }\n            if (a.a4 === 'yes') { idx = 4; reasons.push('It also adapts its own parameters or strategy from observed outcomes, which raises it to Extended Autonomy however closely its individual actions are reviewed.'); }\n        }\n        var lv = LEVELS[idx];\n        out.idx = idx; out.lv = lv; out.reasons = reasons;\n        out.whyLead = 'At ' + lv.id + ' a system ' + lv.desc + '. This classification was derived, not chosen, for these reasons:';\n        out.whyTail = (idx > 1) ? 'If this is a rung higher than the level this system was approved at, that gap is the finding. Scope expands without reclassification gradually, for good reasons, and nobody decides to do it.' : '';\n\n        \/* ---------- findings: consistent answers that still need attention ---------- *\/\n        if (idx === 1) { if (c1 >= 1) { coh.push(['finding', 'The system only recommends but holds write credentials. Credentials that exceed the function are the route by which a recommender starts acting. Reduce them to read only, or reclassify it as acting.']); } }\n        if (1 >= idx) { if (c3 >= 1) { coh.push(['finding', 'At ' + lv.id + ' this system can still invoke other agents. The agents it invokes may act on their own authority, so each one needs its own classification rather than inheriting this one.']); } }\n        var afterIrrev = false;\n        if (rev === 4) { if (idx >= 2) { if (a.d1 !== 'gate') { afterIrrev = true; coh.push(['finding', 'It takes irreversible actions and no human approves them before they take effect. Review after the fact detects harm; it cannot undo it. Add a pre execution check for the irreversible class of action, even if everything else is sampled.']); } } }\n        out.coh = coh;\n        var nContra = 0;\n        for (i = 0; i !== coh.length; i++) { if (coh[i][0] === 'contradiction') { nContra = nContra + 1; } }\n        out.nContra = nContra;\n\n        \/* ---------- tiers ---------- *\/\n        var impact = scope + rev + vel;\n        var risk = lv.pts + impact;\n        var riskTier = (risk >= 15) ? 4 : ((risk >= 10) ? 3 : ((risk >= 5) ? 2 : 1));\n        var iScore = c1 + c2 + c3;\n        var iTier = (iScore >= 6) ? 4 : ((iScore >= 4) ? 3 : ((iScore >= 2) ? 2 : 1));\n        var effTier = (iTier > riskTier) ? iTier : riskTier;\n        var raised = effTier > riskTier;\n        var T = TIERS[effTier];\n        out.impact = impact; out.risk = risk; out.riskTier = riskTier; out.iScore = iScore; out.iTier = iTier; out.effTier = effTier; out.raised = raised; out.tier = T;\n        out.tierBreak = 'Autonomy ' + lv.pts + ' plus impact ' + impact + ', from ' + SCOPE_WORDS[scope] + ' scope, ' + REV_WORDS[rev] + ' decisions, at ' + VEL_WORDS[vel] + '.' +\n            (raised ? (' The risk score alone gives ' + TIERS[riskTier].name + ', but the identity tier raises the effective tier to ' + T.name + '. The control floor below is the raised one.') : '');\n\n        \/* ---------- no go ---------- *\/\n        var nogo = false;\n        if (lv.pts >= 6) { if (rev === 4) { if (scope >= 3) { if (vel >= 2) { nogo = true; } } } }\n        out.nogo = nogo;\n\n        \/* ---------- oversight arithmetic ---------- *\/\n        var secs = parseFloat(raw.secs); var secsNote = '';\n        if (isNaN(secs)) { secs = 45; secsNote = ' Review time was not entered, so 45 seconds was assumed.'; }\n        if (1 > secs) { secs = 1; }\n        if (secs > 3600) { secs = 3600; }\n        var hours = parseFloat(raw.hours); var hoursNote = '';\n        if (isNaN(hours)) { hours = 0; hoursNote = ' Reviewer hours were not entered, so none were assumed.'; }\n        if (0 > hours) { hours = 0; }\n        if (hours > 500) { hours = 500; }\n        var share = 0;\n        if (a.d1 === 'gate') { share = 1; }\n        if (a.d1 === 'sample') { share = 0.1; }\n        if (a.d1 === 'reconcile') { share = 0.01; }\n        var needMin = PER_DAY[vel] * share * secs \/ 60;\n        var availMin = hours * 60;\n        var permitted = ['Pre action gate', 'Sampling, with a defined basis', 'Sampling or pattern based', 'Outcome and pattern based only'][vel];\n        out.permitted = permitted; out.needText = dur(needMin); out.hours = hours; out.secs = secs;\n        var infeasible = false; var noneCond = false; var ocls = 'ok'; var otext = '';\n        var shareText = (a.d1 === 'gate') ? 'every decision' : ((a.d1 === 'sample') ? 'one decision in ten' : 'one decision in a hundred');\n        if (a.d1 === 'none') {\n            if (idx === 0) { ocls = 'ok'; otext = 'No human review is documented. At L0 that can be acceptable, because fixed rules exercise no judgement; the controls are change control on the rules and failure monitoring.'; }\n            else if (idx === 1) { ocls = 'caution'; otext = 'No review is documented beyond the person who acts on each output. That person is the oversight, so measure whether they read the output or accept it by reflex.'; }\n            else { ocls = 'warn'; noneCond = true; otext = 'No oversight is documented for a system that acts at ' + lv.id + '. At ' + VEL_WORDS[vel] + ' the feasible mode is ' + permitted.toLowerCase() + '. Until that is designed and measured, nobody can say whether this system is behaving.'; }\n        } else if (needMin > availMin) {\n            infeasible = true; ocls = 'warn';\n            otext = 'The oversight in your design is not arithmetically possible. A ' + MODE_WORDS[a.d1] + ' reviewing ' + shareText + ', at ' + PER_DAY_WORDS[vel] + ' decisions a day and ' + plural(secs, 'second', 'seconds') + ' each, needs ' + dur(needMin) +\n                ' of reviewer time a day against ' + ((hours === 0) ? 'none available' : (hoursText(hours) + ' available')) + '. What exists is not control; it is an approval automation with a signature on it. Fund the hours, reduce the volume reaching review, or change the mode to ' + permitted.toLowerCase() + ' and say so in the design.';\n        } else {\n            otext = 'The arithmetic holds. A ' + MODE_WORDS[a.d1] + ' reviewing ' + shareText + ' needs ' + dur(needMin) + ' of reviewer time a day against ' + hoursText(hours) +\n                ' available. Measure completion rate, time spent per review and override rate anyway: a reviewer who never disagrees is not reviewing.';\n        }\n        out.onote = [ocls, otext + secsNote + hoursNote];\n        out.infeasible = infeasible;\n\n        \/* ---------- identity findings, all that apply ---------- *\/\n        var band = (lv.pts >= 6) ? 4 : ((lv.pts >= 4) ? 3 : ((lv.pts >= 2) ? 2 : 1));\n        var inotes = [];\n        if (iTier > band) { inotes.push(['warn', 'This is one of the dangerous cells. The autonomy level reads ' + ((1 >= idx) ? 'low' : 'moderate') + ' but the identity tier reads ' + iTier + ' of 4, so the system inherits the security posture of its credentials rather than of its autonomy level. Govern it at Identity Tier ' + iTier + ', not at ' + lv.id + '. Narrowing the credential is almost always cheaper than adding oversight.']); }\n        if (c2 === 3) { inotes.push(['warn', 'There is no revocation procedure, or the credential is shared so revoking it would break other systems. A shared credential cannot be withdrawn from one system in an incident, which means this system cannot be contained on its own.']); }\n        if (c2 === 2) { inotes.push(['caution', 'A revocation procedure exists but has never been executed. An untested kill switch is a documented intention. Drill it, timed, run by someone other than the person who built the system.']); }\n        if (c3 === 2) { inotes.push(['warn', 'This system can delegate to another agent and the chain cannot be reliably reconstructed. Until lineage is auditable an action cannot be attributed, which defeats incident response and any regulatory logging obligation.']); }\n        if (inotes.length === 0) { inotes.push(['ok', 'The identity tier is proportionate to the autonomy level and revocation has been ' + ((c2 === 0) ? 'tested on a cadence' : 'tested at least once; move it to a timed cadence') + '. Verify least privilege again on the cadence the tier requires, because permission creep is gradual.']); }\n        out.inotes = inotes;\n\n        \/* ---------- escalation ---------- *\/\n        var esc = ESCAL_BASE.slice(0);\n        if (rev === 4) { esc.push('Any action in the irreversible class, before execution rather than after.'); }\n        if (scope >= 3) { esc.push('Any decision affecting an external party outside the approved pattern.'); }\n        if (idx >= 3) { esc.push('Volume of actions materially above the expected envelope.'); }\n        if (a.a4 === 'yes') { if (idx !== 0) { esc.push('Any change the system makes to its own parameters beyond the approved learning constraint, with rollback available.'); } }\n        if (idx === 5) { esc.push('Any objective the system adopts that a person did not specify, and any instruction it issues to another agent outside the approved set.'); }\n        if (c3 >= 1) { esc.push('Delegation to an agent outside the approved set, or a chain that cannot be reconstructed.'); }\n        if (vel >= 2) { if (idx >= 2) { esc.push('Failure of the sampling or reconciliation process itself, which at this volume is the only oversight there is.'); } }\n        out.esc = esc;\n\n        \/* ---------- crosswalk ---------- *\/\n        var eu = ['Likely outside the Article 3 definition of an AI system, since no inference sits in the decision path. Record the assessment and the reason rather than leaving it blank.',\n          'Article 50 transparency may apply where a person interacts with the system or sees generated content. If the use case appears in Annex III, deployer duties under Article 26 apply even though a human makes the decision.',\n          'Where the use case is high risk: Article 14 human oversight, Article 12 logging and Article 26 deployer obligations. The review in normal operation is the oversight measure you would evidence.',\n          'Where the use case is high risk, Article 14 becomes the hard requirement: oversight must be capable, not nominal, and the person must be able to intervene. Article 12 logging must be sufficient to reconstruct a decision. Articles 9 and 17 apply to the provider.',\n          'All of the above, plus Article 15 accuracy and robustness. Under Article 43(4), changes from continued learning that were predetermined and documented at conformity assessment are not a substantial modification; changes outside them may be, so document the learning constraint.',\n          'All of the above at the highest intensity, plus Article 25 responsibilities along the value chain where this system directs others, and deployer duties under Article 26 for each high risk system in the chain.'][idx];\n        var nist = ['GOVERN 1 policy and accountability. MAP 1 context. Little MEASURE and MANAGE beyond ordinary change control.',\n          'GOVERN 1 and 4, MAP 1 to 3, and MEASURE 2 on the quality and explainability of recommendations, since the person relies on them.',\n          'Adds MANAGE 1 and 2 on risk response and boundary monitoring, and MEASURE 3 on tracking whether escalation is recognised when it should be.',\n          'MEASURE 2 and 3 become central because people will not see most decisions, so sampling design, outcome tracking and automated boundary monitoring carry the oversight. MANAGE 4 on post deployment monitoring applies.',\n          'Adds drift detection and learning constraints under MEASURE 2 and MANAGE 2, plus rollback capability so a change in decision logic can be reverted.',\n          'Every function at the highest intensity, with GOVERN 6 third party and dependency risk applying to the agents this system directs.'][idx];\n        var iso = ['AI system inventory and documented information. Change control.',\n          'Inventory, roles and responsibilities, and impact assessment where the recommendation affects people.',\n          'Adds operational planning and control, and supplier governance where the agent or its tools are bought in.',\n          'Adds performance evaluation and internal audit of the sampling regime itself, since the regime is the control. Incident and corrective action must cover autonomous action.',\n          'Adds change management over the system\\'s own learning, and verification that the management system covers behaviour that alters after deployment.',\n          'Full management system engagement, including third party and customer relationship controls for subordinate agents and management review at the highest cadence.'][idx];\n        var ow = ['Largely out of scope, since nothing acts on judgement. Agentic supply chain vulnerabilities (ASI04) still apply to the automation platform and its components.',\n          'Human agent trust exploitation (ASI09) is the primary risk, because a person acts on output they may over trust. Memory and context poisoning (ASI06) applies to what it reads.',\n          'Tool misuse and exploitation (ASI02) and identity and privilege abuse (ASI03) become live because the system acts, and human agent trust exploitation (ASI09) applies to the reviewer approving its work.',\n          'Agent goal hijack (ASI01), tool misuse and exploitation (ASI02), identity and privilege abuse (ASI03) and unexpected code execution (ASI05) are the priority set, because most actions are unobserved.',\n          'All of the L3 set, plus memory and context poisoning (ASI06) at elevated severity, since poisoned context can persist into learned parameters, and rogue agents (ASI10), since drift can take behaviour outside policy.',\n          'The full set, with insecure inter agent communication (ASI07), cascading failures (ASI08) and rogue agents (ASI10) as the defining risks when one agent directs others.'][idx];\n        if (c3 >= 1) { if (idx !== 5) { ow = ow + ' Delegation makes insecure inter agent communication (ASI07) and cascading failures (ASI08) applicable regardless of level.'; } }\n        if (c1 === 3) { ow = ow + ' Broad or shared credentials make identity and privilege abuse (ASI03) the highest severity item on this record.'; }\n        out.crosswalk = [['EU AI Act', eu], ['NIST AI Risk Management Framework', nist], ['ISO\/IEC 42001', iso], ['OWASP Top 10 for Agentic Applications 2026', ow]];\n\n        \/* ---------- conditions and deployment verdict ---------- *\/\n        var conds = [];\n        if (nContra > 0) { conds.push('Resolve the ' + plural(nContra, 'contradiction', 'contradictions') + ' in the answers. The level shown uses the higher reading until then.'); }\n        if (noneCond) { conds.push('Design and document oversight in the feasible mode for this volume: ' + permitted.toLowerCase() + '.'); }\n        if (infeasible) { conds.push('Make the claimed oversight possible: it needs ' + dur(needMin) + ' of reviewer time a day against ' + ((hours === 0) ? 'none available' : hoursText(hours)) + '.'); }\n        if (afterIrrev) { conds.push('Add a pre execution check for irreversible actions.'); }\n        if (raised) { conds.push('Narrow the credential so the identity tier no longer exceeds the risk tier, or accept the ' + T.name + ' control floor.'); }\n        if (c2 === 3) { conds.push('Give the system its own revocable credential and a revocation procedure.'); }\n        if (c2 === 2) { if (effTier >= 2) { conds.push('Execute the revocation procedure once, timed, by someone other than its author.'); } }\n        if (c3 === 2) { conds.push('Make the delegation chain reconstructable from logs.'); }\n        out.conds = conds;\n\n        var vkey = nogo ? 'nogo' : ((conds.length > 0) ? 'cond' : 'go');\n        out.vkey = vkey;\n        if (vkey === 'nogo') {\n            out.dtag = 'Do not deploy as described';\n            out.dhead = 'This profile is outside what any governance structure can control';\n            out.dtext = name + ' is at ' + lv.id + ', makes irreversible decisions that affect external parties, and runs at ' + VEL_WORDS[vel] +\n                '. Oversight cannot be applied decision by decision at that volume, and nothing can be undone after the fact. The answer is architectural: reduce the autonomy, add a way to reverse actions, narrow the scope to internal parties, or throttle the volume reaching irreversible execution. The control floor below is shown so you can see that it is not sufficient here.' + ((conds.length > 0) ? (' The redesign must also close ' + ((conds.length === 1) ? 'this further condition:' : ('these ' + conds.length + ' further conditions:'))) : '');\n            out.decision = 'Do not deploy as described. Approve a redesign that removes at least one of extended autonomy, irreversibility, external impact or high volume, then classify it again.';\n        } else if (vkey === 'cond') {\n            out.dtag = 'Deploy only when the conditions close';\n            out.dhead = lv.id + ' under the ' + T.name + ' control floor, subject to ' + plural(conds.length, 'condition', 'conditions');\n            out.dtext = 'The classification and tier are below. These must be closed, each with a named owner and a date, before the system operates or continues to operate:';\n            out.decision = 'Approve ' + name + ' at ' + lv.id + ' under the ' + T.name + ' control floor only once the ' + plural(conds.length, 'condition', 'conditions') + ' listed ' + ((conds.length === 1) ? 'is' : 'are') + ' closed, each with a named owner and a date.';\n        } else {\n            out.dtag = 'Proceed under the control floor';\n            out.dhead = lv.id + ' under the ' + T.name + ' control floor';\n            out.dtext = 'No contradictions, no infeasible oversight and no identity findings that block operation. Apply the control floor below and review ' + T.review + '.';\n            out.decision = 'Approve ' + name + ' at ' + lv.id + ' under the ' + T.name + ' control floor, record it on the inventory, and review it ' + T.review + '.';\n        }\n\n        var by = clean(meta.by); var date = clean(meta.date); var bo = clean(meta.bo); var to = clean(meta.to);\n        out.ask = [\n            ['Decision requested', out.decision],\n            ['Classification', lv.id + ', ' + lv.name + ' (Executive Brief alias: ' + lv.alias + ').'],\n            ['Governance tier', T.name + ', risk score ' + risk + ' of 20' + (raised ? (', raised from ' + TIERS[riskTier].name + ' by the identity tier.') : '.')],\n            ['Conditions to close', (conds.length === 0) ? 'None.' : (plural(conds.length, 'condition', 'conditions') + ', listed in the verdict above.')],\n            ['Oversight', 'Claimed ' + MODE_WORDS[a.d1] + '. Feasible at this volume: ' + permitted.toLowerCase() + '. ' + (infeasible ? 'The claimed mode is not arithmetically possible.' : ((a.d1 === 'none') ? 'None is documented.' : 'The arithmetic holds.'))],\n            ['Owners', 'Business ' + (bo || '[NAME]') + '. Technical ' + (to || '[NAME]') + '.']\n        ];\n\n        \/* ---------- agent record ---------- *\/\n        var L = [];\n        L.push('AGENT RECORD');\n        L.push('System: ' + name);\n        L.push('Classified ' + (date || '[DATE]') + ' by ' + (by || '[NAME, ROLE]') + ', using the L0 to L5 Agent Classifier from When Agents Rule.');\n        L.push('Business owner: ' + (bo || '[NAME]') + '. Technical owner: ' + (to || '[NAME]') + '.');\n        L.push('');\n        L.push('VERDICT: ' + out.dtag.toUpperCase() + '.');\n        L.push('  ' + out.dhead + '.');\n        L.push('DECISION REQUESTED: ' + out.decision);\n        if (conds.length > 0) {\n            L.push('CONDITIONS TO CLOSE, EACH WITH AN OWNER AND A DATE:');\n            for (i = 0; i !== conds.length; i++) { L.push('  ' + (i + 1) + '. ' + conds[i] + ' Owner [NAME]. Date [DATE].'); }\n        }\n        if (nogo) { L.push('  ' + out.dtext); }\n        L.push('');\n        L.push('AUTONOMY. ' + lv.id + ', ' + lv.name + ' (Executive Brief alias: ' + lv.alias + ').');\n        L.push('  Basis: ' + reasons.join(' '));\n        L.push('');\n        L.push('CONTRADICTIONS AND FINDINGS.');\n        if (coh.length === 0) { L.push('  None. The answers are consistent on the checks this classifier applies.'); }\n        for (i = 0; i !== coh.length; i++) { L.push('  ' + ((coh[i][0] === 'contradiction') ? 'CONTRADICTION: ' : 'FINDING: ') + coh[i][1]); }\n        L.push('');\n        L.push('GOVERNANCE MATRIX. Impact scope ' + SCOPE_WORDS[scope] + '. Reversibility ' + REV_WORDS[rev] + '. Volume ' + VEL_WORDS[vel] + '.');\n        L.push('  Risk score ' + risk + ' of 20 (autonomy ' + lv.pts + ' plus impact ' + impact + '). Governance tier: ' + T.name + '.');\n        if (raised) { L.push('  Raised from ' + TIERS[riskTier].name + ' by the identity tier, because the system inherits the posture of its credentials.'); }\n        L.push('');\n        L.push('OVERSIGHT. Claimed mode: ' + MODE_WORDS[a.d1] + '. Feasible mode at this volume: ' + permitted + '.');\n        L.push('  ' + out.onote[1]);\n        L.push('');\n        L.push('IDENTITY. Tier ' + iTier + ' of 4, score ' + iScore + ' of 8.');\n        for (i = 0; i !== inotes.length; i++) { L.push('  ' + inotes[i][1]); }\n        L.push('');\n        L.push('MANDATORY CONTROL FLOOR, ' + T.name.toUpperCase() + '.');\n        for (i = 0; i !== T.controls.length; i++) { L.push('  ' + (i + 1) + '. ' + T.controls[i]); }\n        L.push('');\n        L.push('ESCALATION TRIGGERS.');\n        for (i = 0; i !== esc.length; i++) { L.push('  ' + (i + 1) + '. ' + esc[i]); }\n        L.push('');\n        L.push('FRAMEWORK REFERENCES.');\n        for (i = 0; i !== out.crosswalk.length; i++) { L.push('  ' + out.crosswalk[i][0] + ': ' + out.crosswalk[i][1]); }\n        L.push('');\n        L.push('NEXT REVIEW: ' + T.review + '. Date [DATE].');\n        L.push('');\n        L.push('BASIS AND LIMITS. Twelve question self assessment applying the Chapter 4 autonomy ladder and governance matrix with the Chapter 5 identity pairing. Contradictory answers are resolved to the higher level. The oversight check assumes a sample reviews one decision in ten and reconciliation one in a hundred. Not an audit, a certification or a benchmark; it reflects the answers given. Framework references should be verified against primary sources before citation. Not legal, technical or financial advice.');\n        out.paper = L.join('\\n');\n        return out;\n    }\n\/* MODEL END *\/\n\n    var RADIOS = ['a1', 'a2', 'a3', 'a4', 'a5', 'b1', 'b2', 'b3', 'c1', 'c2', 'c3', 'd1'];\n    function el(id) { return document.getElementById(id); }\n    function mk(tag, cls, txt) {\n        var n = document.createElement(tag);\n        if (cls) { n.className = cls; }\n        if (txt !== undefined) { if (txt !== null) { n.textContent = txt; } }\n        return n;\n    }\n    function clear(n) { while (n.firstChild) { n.removeChild(n.firstChild); } }\n    function goTo(n) {\n        if (!n.scrollIntoView) { return; }\n        try { n.scrollIntoView({ behavior: 'smooth', block: 'start' }); } catch (ex) { try { n.scrollIntoView(true); } catch (ex2) { } }\n    }\n    function pick(name) {\n        var hit = root.querySelector('input[name=\"' + name + '\"]:checked');\n        if (!hit) { return null; }\n        return hit.value;\n    }\n    var shown = false;\n    function refresh(ev) {\n        var n = 0; var i = 0;\n        for (i = 0; i !== RADIOS.length; i++) { if (pick(RADIOS[i]) !== null) { n = n + 1; } }\n        el('lad-progn').textContent = '' + n;\n        var stale = false;\n        if (shown) { if (ev) { if (ev.target) { if (ev.target.id !== 'lad-by') { if (ev.target.id !== 'lad-bo') { if (ev.target.id !== 'lad-to') { if (ev.target.id !== 'lad-date') { stale = true; } } } } } } }\n        if (stale) { el('lad-result').className = 'lad-result'; shown = false; }\n        el('lad-progl').textContent = ' of 12 answered' + (stale ? '. Answers changed, classify again.' : '');\n        el('lad-fill').style.setProperty('width', Math.round(n \/ 12 * 100) + '%', 'important');\n        if (n === 12) { el('lad-go').removeAttribute('disabled'); } else { el('lad-go').setAttribute('disabled', 'disabled'); }\n    }\n    function today() {\n        var d = new Date(); var m = d.getMonth() + 1; var dd = d.getDate();\n        return d.getFullYear() + '-' + ((m > 9) ? '' : '0') + m + '-' + ((dd > 9) ? '' : '0') + dd;\n    }\n    function list(id, items) { var u = el(id); clear(u); var i = 0; for (i = 0; i !== items.length; i++) { u.appendChild(mk('li', null, items[i])); } }\n\n    function render() {\n        var a = {}; var i = 0;\n        for (i = 0; i !== RADIOS.length; i++) { a[RADIOS[i]] = pick(RADIOS[i]); if (a[RADIOS[i]] === null) { return; } }\n        var r = assess(a, { secs: el('lad-secs').value, hours: el('lad-hours').value },\n                       { name: el('lad-sysname').value, by: el('lad-by').value, date: el('lad-date').value, bo: el('lad-bo').value, to: el('lad-to').value });\n\n        el('lad-deploy').className = 'lad-deploy ' + r.vkey;\n        el('lad-dtag').textContent = r.dtag;\n        el('lad-dhead').textContent = r.dhead;\n        el('lad-dtext').textContent = r.dtext;\n        list('lad-dlist', r.conds);\n\n        var al = el('lad-asklist'); clear(al);\n        for (i = 0; i !== r.ask.length; i++) {\n            var row = mk('div', 'lad-askrow');\n            row.appendChild(mk('b', null, r.ask[i][0]));\n            row.appendChild(mk('span', null, r.ask[i][1]));\n            al.appendChild(row);\n        }\n\n        el('lad-vsys').textContent = 'Classification for ' + r.name;\n        el('lad-vlevel').textContent = r.lv.id;\n        el('lad-vname').textContent = r.lv.name;\n        el('lad-valias').textContent = 'Executive Brief alias: ' + r.lv.alias;\n        var why = el('lad-vwhy'); clear(why);\n        why.appendChild(mk('p', null, r.whyLead));\n        var ul = mk('ul', 'lad-list');\n        for (i = 0; i !== r.reasons.length; i++) { ul.appendChild(mk('li', null, r.reasons[i])); }\n        why.appendChild(ul);\n        if (r.whyTail) { why.appendChild(mk('p', null, r.whyTail)); }\n\n        var ch = el('lad-coh'); clear(ch);\n        if (r.coh.length === 0) { ch.appendChild(mk('div', 'lad-note ok', 'None. Your answers are consistent on the checks this classifier applies.')); }\n        for (i = 0; i !== r.coh.length; i++) {\n            var box = mk('div', 'lad-note ' + ((r.coh[i][0] === 'contradiction') ? 'warn' : 'caution'));\n            box.appendChild(mk('b', null, (r.coh[i][0] === 'contradiction') ? 'Contradiction. ' : 'Finding. '));\n            box.appendChild(document.createTextNode(r.coh[i][1]));\n            ch.appendChild(box);\n        }\n\n        el('lad-tchip').className = 'lad-chip ' + r.tier.cls;\n        el('lad-tchip').textContent = r.tier.name;\n        el('lad-tscore').textContent = r.risk + ' of 20';\n        el('lad-tbreak').textContent = r.tierBreak;\n        list('lad-controls', r.tier.controls);\n\n        el('lad-ochip').className = 'lad-chip ' + ((a.b3 === '2' || a.b3 === '3') ? 't3' : 't2');\n        el('lad-ochip').textContent = r.permitted;\n        el('lad-oneed').textContent = (a.d1 === 'none') ? 'None claimed' : r.needText;\n        el('lad-onote').className = 'lad-note ' + r.onote[0];\n        el('lad-onote').textContent = r.onote[1];\n\n        el('lad-ichip').className = 'lad-chip t' + r.iTier;\n        el('lad-ichip').textContent = 'Identity Tier ' + r.iTier;\n        el('lad-iscore').textContent = r.iScore + ' of 8';\n        var inn = el('lad-inotes'); clear(inn);\n        for (i = 0; i !== r.inotes.length; i++) { inn.appendChild(mk('div', 'lad-note ' + r.inotes[i][0], r.inotes[i][1])); }\n\n        list('lad-escal', r.esc);\n        var cw = el('lad-crosswalk'); clear(cw);\n        for (i = 0; i !== r.crosswalk.length; i++) {\n            var tr = mk('tr', null);\n            var td = mk('td', null, r.crosswalk[i][0]); td.style.fontWeight = '700';\n            tr.appendChild(td); tr.appendChild(mk('td', null, r.crosswalk[i][1]));\n            cw.appendChild(tr);\n        }\n        el('lad-cardtext').textContent = r.paper;\n        el('lad-result').className = 'lad-result on';\n        shown = true;\n        el('lad-progl').textContent = ' of 12 answered';\n        goTo(el('lad-result'));\n    }\n\n    function resetAll() {\n        var rs = root.querySelectorAll('input[type=\"radio\"]'); var j = 0;\n        for (j = 0; j !== rs.length; j++) { rs[j].checked = false; }\n        el('lad-sysname').value = ''; el('lad-secs').value = '45'; el('lad-hours').value = '4';\n        el('lad-result').className = 'lad-result'; shown = false;\n        refresh(); goTo(root);\n    }\n\n    var inputs = root.querySelectorAll('input');\n    var k = 0;\n    for (k = 0; k !== inputs.length; k++) { inputs[k].addEventListener('change', refresh); }\n    if (!el('lad-date').value) { el('lad-date').value = today(); }\n    el('lad-go').addEventListener('click', render);\n    el('lad-print').addEventListener('click', function () { window.print(); });\n    el('lad-edit').addEventListener('click', function () { goTo(el('lad-formtop')); });\n    el('lad-again').addEventListener('click', resetAll);\n    var armTimer = null;\n    el('lad-clear').addEventListener('click', function () {\n        var btn = el('lad-clear');\n        if (btn.className.indexOf('armed') === -1) {\n            btn.className = 'lad-clear armed'; btn.textContent = 'Tap again to clear';\n            armTimer = window.setTimeout(function () { btn.className = 'lad-clear'; btn.textContent = 'Clear'; }, 3000);\n            return;\n        }\n        if (armTimer) { window.clearTimeout(armTimer); }\n        btn.className = 'lad-clear'; btn.textContent = 'Clear';\n        resetAll();\n    });\n    el('lad-copy').addEventListener('click', function () {\n        var txt = el('lad-cardtext').textContent;\n        var btn = el('lad-copy');\n        function done(ok) {\n            btn.textContent = ok ? 'Copied' : 'Select the text above to copy';\n            window.setTimeout(function () { btn.textContent = 'Copy the record'; }, 2600);\n        }\n        function fallback() {\n            var ta = document.createElement('textarea');\n            ta.value = txt; ta.setAttribute('readonly', 'readonly');\n            ta.style.position = 'fixed'; ta.style.top = '0'; ta.style.left = '0'; ta.style.opacity = '0';\n            document.body.appendChild(ta); ta.focus(); ta.select();\n            try { ta.setSelectionRange(0, txt.length); } catch (e4) { }\n            var ok = false;\n            try { ok = document.execCommand('copy'); } catch (e5) { ok = false; }\n            document.body.removeChild(ta); done(ok);\n        }\n        if (navigator.clipboard) {\n            if (window.isSecureContext !== false) {\n                navigator.clipboard.writeText(txt).then(function () { done(true); }, function () { fallback(); });\n                return;\n            }\n        }\n        fallback();\n    });\n    refresh();\n}());\n<\/script>\n\n\n\n<div id=\"elemID031021\" style=\"line-height:16px;text-align:center;z-index:100000;\"><a title=\"wix guests ip\" href=\"https:\/\/www.tracemyip.org\/pv1-3-36447-2\"><img decoding=\"async\" src=\"\/\/s3.tracemyip.org\/vLg\/1217\/4684NR-IPIB\/57003\/9\/njsUrl\/\" alt=\"Wix guests ip\" referrerpolicy=\"no-referrer-when-downgrade\" style=\"border:0px;\"><\/a><div><a href=\"https:\/\/www.tracemyip.org\/pv1-3-36447-2\">ip traffic<\/a><\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>THE CLASSIFICATION INSTRUMENT: Your level is derived, not self selected. Most systems are recorded a rung lower than they operate. Framework One \/\/ When Agents Rule The L0 to L5 Agent Classifier Classify one AI system by the autonomy it actually operates with. Get a deployment verdict, the matched governance tier, the mandatory control floor, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-828","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.opey.org\/opeyit\/index.php?rest_route=\/wp\/v2\/pages\/828","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.opey.org\/opeyit\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.opey.org\/opeyit\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.opey.org\/opeyit\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.opey.org\/opeyit\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=828"}],"version-history":[{"count":3,"href":"https:\/\/www.opey.org\/opeyit\/index.php?rest_route=\/wp\/v2\/pages\/828\/revisions"}],"predecessor-version":[{"id":895,"href":"https:\/\/www.opey.org\/opeyit\/index.php?rest_route=\/wp\/v2\/pages\/828\/revisions\/895"}],"wp:attachment":[{"href":"https:\/\/www.opey.org\/opeyit\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=828"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}