{"id":882,"date":"2026-09-15T22:10:47","date_gmt":"2026-09-15T22:10:47","guid":{"rendered":"https:\/\/www.opey.org\/opeyit\/?page_id=882"},"modified":"2026-09-16T18:20:15","modified_gmt":"2026-09-16T18:20:15","slug":"friday-afternoon-test","status":"publish","type":"page","link":"https:\/\/www.opey.org\/opeyit\/?page_id=882","title":{"rendered":"Friday Afternoon test"},"content":{"rendered":"\n<!--\n=====================================================\nTHE FRIDAY AFTERNOON TEST\nCompanion tool for WHEN AGENTS RULE by Steven Oppenheim\n=====================================================\n\nHOW TO INSTALL\n1. Create a WordPress page titled \"The Friday Afternoon Test\"\n2. Add a Custom HTML block, paste this entire file\n3. Preview, then Publish\n4. Note the page ID and give it to the main page update\n   (it replaces #REPLACE_TOOL_FRIDAY on page 748)\n\nSELF CONTAINED. Scoped to #war-friday-2026.\n\nTHE FRAMEWORK (glossary, Chapter 16): the CIO self diligence\nframework probing inventory, classification, enforcement, audit and\nrecoverability of every L3 or higher system. The Recoverability Test\nis from Chapter 5. The board variant is the Five Board Questions.\n\nDESIGN: every dimension is scored twice, DESIGNED and EVIDENCED.\nVERSION 2: the verdict weighs the LEVEL of evidence as well as the\nGAP. Version 1 used the gap alone and reported an empty reading\n(nothing designed, nothing evidenced) as Governance is enforced.\n\nHOW THE GAP IS COUNTED (corrected September 2026): per dimension,\ndesign minus evidence, counting a negative result as zero, summed.\nEvidence exceeding design in one dimension does NOT offset\ndocumentation without evidence in another. The earlier formula,\ndesign total minus evidence total, allowed exactly that offset.\n\nWORDPRESS COMPATIBILITY (do not reintroduce):\n  NO less than sign or ampersand in the script. NO innerHTML.\n  No template literals, arrow functions or optional chaining.\n  The noscript block carries the full manual method.\n  No hyphens or dashes in visible prose.\n-->\n\n<div id=\"war-friday-2026\">\n\n<style>\n#war-friday-2026 {\n    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif !important;\n    color: #333 !important; line-height: 1.6 !important; max-width: 100% !important; margin: 0 !important; padding: 0 !important;\n    -webkit-text-size-adjust: 100% !important; text-size-adjust: 100% !important;\n}\n#war-friday-2026 * { box-sizing: border-box !important; }\n#war-friday-2026 h1, #war-friday-2026 h2, #war-friday-2026 h3, #war-friday-2026 h4 { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif !important; text-transform: none !important; letter-spacing: normal; overflow-wrap: break-word !important; word-wrap: break-word !important; -webkit-hyphens: none !important; hyphens: none !important; }\n#war-friday-2026 p, #war-friday-2026 li, #war-friday-2026 td, #war-friday-2026 span, #war-friday-2026 label { overflow-wrap: break-word !important; word-wrap: break-word !important; }\n#war-friday-2026 a { text-decoration: none !important; }\n#war-friday-2026 .fa-inner { max-width: 900px !important; margin: 0 auto !important; }\n#war-friday-2026 .fa-wide { max-width: 1140px !important; margin: 0 auto !important; }\n\n#war-friday-2026 .fa-band { background: linear-gradient(90deg, #7f1d1d 0%, #B91C1C 100%) !important; padding: 12px 20px !important; text-align: center !important; }\n#war-friday-2026 .fa-band p { margin: 0 !important; color: #fff !important; font-size: 13.5px !important; font-weight: 500 !important; }\n#war-friday-2026 .fa-band strong { color: #FDE68A !important; }\n\n#war-friday-2026 .fa-hero {\n    background: radial-gradient(circle at 78% 22%, rgba(71,85,105,0.30) 0%, transparent 55%),\n                linear-gradient(135deg, #0a1622 0%, #1a2a3a 55%, #2d4156 100%) !important;\n    padding: 52px 20px 46px 20px !important;\n}\n#war-friday-2026 .fa-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-friday-2026 .fa-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-friday-2026 .fa-lede { color: rgba(255,255,255,0.86) !important; font-size: 17px !important; margin: 0 0 20px 0 !important; line-height: 1.5 !important; max-width: 710px !important; }\n#war-friday-2026 .fa-facts { display: flex !important; flex-wrap: wrap !important; margin: 0 0 14px -5px !important; }\n#war-friday-2026 .fa-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-friday-2026 .fa-fact b { color: #c9a227 !important; }\n#war-friday-2026 .fa-honest { max-width: 730px !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-friday-2026 .fa-honest b { color: #c9a227 !important; }\n\n#war-friday-2026 .fa-form { background: #f7f8fa !important; padding: 46px 20px !important; }\n#war-friday-2026 .fa-sec { background: #fff !important; border: 1px solid #e2e6ea !important; border-radius: 12px !important; margin-bottom: 22px !important; overflow: hidden !important; }\n#war-friday-2026 .fa-shead { padding: 20px 24px !important; display: flex !important; align-items: center !important; flex-wrap: wrap !important; }\n#war-friday-2026 .fa-shead.s1 { background: linear-gradient(135deg, #7C3AED 0%, #6D28D9 100%) !important; }\n#war-friday-2026 .fa-shead.s2 { background: linear-gradient(135deg, #B91C1C 0%, #991B1B 100%) !important; }\n#war-friday-2026 .fa-shead.s3 { background: linear-gradient(135deg, #B45309 0%, #D97706 100%) !important; }\n#war-friday-2026 .fa-shead.s4 { background: linear-gradient(135deg, #047857 0%, #059669 100%) !important; }\n#war-friday-2026 .fa-shead.s5 { background: linear-gradient(135deg, #1e40af 0%, #1e3a8a 100%) !important; }\n#war-friday-2026 .fa-shead.s6 { background: linear-gradient(135deg, #7f1d1d 0%, #B91C1C 100%) !important; }\n#war-friday-2026 .fa-shead.s0 { background: linear-gradient(135deg, #475569 0%, #334155 100%) !important; }\n#war-friday-2026 .fa-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-friday-2026 .fa-stitle { flex: 1 !important; min-width: 200px !important; }\n#war-friday-2026 .fa-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-friday-2026 .fa-stitle p { margin: 0 !important; color: rgba(255,255,255,0.88) !important; font-size: 13px !important; line-height: 1.45 !important; }\n#war-friday-2026 .fa-sbody { padding: 6px 24px 20px 24px !important; }\n#war-friday-2026 .fa-q { padding: 18px 0 !important; border-bottom: 1px solid #eef1f4 !important; }\n#war-friday-2026 .fa-q:last-child { border-bottom: none !important; }\n#war-friday-2026 .fa-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-friday-2026 .fa-help { font-size: 12.5px !important; color: #6b7785 !important; margin: 0 0 10px 0 !important; line-height: 1.55 !important; }\n#war-friday-2026 .fa-cite { font-size: 11.5px !important; color: #1e40af !important; font-weight: 700 !important; letter-spacing: 0.4px !important; }\n#war-friday-2026 .fa-opt { display: block !important; position: relative !important; padding: 12px 14px 12px 42px !important; border: 1px solid #dde2e7 !important; border-radius: 7px !important; margin-bottom: 8px !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-friday-2026 .fa-opt:hover { border-color: #b9c2cb !important; background: #fbfcfd !important; }\n#war-friday-2026 .fa-opt input { position: absolute !important; left: 14px !important; top: 14px !important; width: 18px !important; height: 18px !important; margin: 0 !important; min-height: 0 !important; cursor: pointer !important; -webkit-appearance: radio !important; appearance: auto !important; }\n#war-friday-2026 .fa-fields { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; grid-gap: 14px !important; gap: 14px !important; margin-top: 16px !important; }\n#war-friday-2026 .fa-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; min-height: 44px !important; }\n#war-friday-2026 .fa-f .fa-hint2 { display: block !important; font-size: 11.5px !important; font-weight: 400 !important; color: #6b7785 !important; margin-top: 2px !important; line-height: 1.45 !important; }\n#war-friday-2026 .fa-wrap { display: flex !important; align-items: stretch !important; }\n#war-friday-2026 .fa-pre { background: #eef1f4 !important; border: 1px solid #dde2e7 !important; border-right: none !important; border-radius: 7px 0 0 7px !important; color: #6b7785 !important; font-size: 13.5px !important; font-weight: 700 !important; display: flex !important; align-items: center !important; padding: 0 11px !important; flex-shrink: 0 !important; }\n#war-friday-2026 .fa-f input, #war-friday-2026 .fa-f select { display: block !important; flex: 1 !important; min-width: 0 !important; width: 100% !important; max-width: 100% !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#war-friday-2026 .fa-wrap .fa-pre + input { border-radius: 0 7px 7px 0 !important; }\n#war-friday-2026 .fa-locked { background: #eef2ff !important; border: 1px solid #c7d2fe !important; border-left: 4px solid #1e40af !important; border-radius: 7px !important; padding: 13px 15px !important; font-size: 13px !important; color: #1e3a5f !important; line-height: 1.6 !important; margin: 16px 0 !important; }\n#war-friday-2026 .fa-locked b { color: #1e40af !important; }\n\n#war-friday-2026 .fa-progress { position: -webkit-sticky !important; position: sticky !important; bottom: 0 !important; background: #1a2a3a !important; padding: 14px 20px !important; z-index: 20 !important; box-shadow: 0 -4px 18px rgba(0,0,0,0.22) !important; }\n#war-friday-2026 .fa-pinner { max-width: 900px !important; margin: 0 auto !important; display: flex !important; align-items: center !important; flex-wrap: wrap !important; }\n#war-friday-2026 .fa-pinner > * { margin: 4px 6px !important; }\n#war-friday-2026 .fa-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-friday-2026 .fa-ptext b { color: #c9a227 !important; }\n#war-friday-2026 .fa-bar { flex: 1 1 140px !important; height: 8px !important; background: rgba(255,255,255,0.16) !important; border-radius: 4px !important; overflow: hidden !important; display: block !important; }\n#war-friday-2026 .fa-bar i { display: block !important; height: 100% !important; width: 0%; background: linear-gradient(90deg, #7f1d1d, #c9a227) !important; transition: width 0.25s ease !important; }\n#war-friday-2026 .fa-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-friday-2026 .fa-go:hover { background: #ddb832 !important; }\n#war-friday-2026 .fa-go[disabled] { background: #6b7785 !important; color: rgba(255,255,255,0.72) !important; cursor: not-allowed !important; }\n#war-friday-2026 .fa-clear { background: transparent !important; color: rgba(255,255,255,0.85) !important; border: 2px solid rgba(255,255,255,0.3) !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\n#war-friday-2026 .fa-result { display: none !important; background: linear-gradient(135deg, #0a1622 0%, #1a2a3a 100%) !important; padding: 52px 20px !important; }\n#war-friday-2026 .fa-result.on { display: block !important; }\n#war-friday-2026 .fa-panel { background: #fff !important; border-radius: 12px !important; padding: 24px 22px !important; margin-bottom: 22px !important; }\n#war-friday-2026 .fa-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-friday-2026 .fa-grid2 .fa-panel { margin-bottom: 0 !important; }\n#war-friday-2026 .fa-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-friday-2026 .fa-panel .fa-sub { margin: 0 0 16px 0 !important; font-size: 13px !important; color: #6b7785 !important; line-height: 1.6 !important; }\n#war-friday-2026 .fa-ask { border-left: 6px solid #c9a227 !important; }\n#war-friday-2026 .fa-askrow { display: flex !important; padding: 12px 0 !important; border-bottom: 1px solid #eef1f4 !important; flex-wrap: wrap !important; }\n#war-friday-2026 .fa-askrow:last-child { border-bottom: none !important; }\n#war-friday-2026 .fa-askrow b { flex: 0 0 180px !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-friday-2026 .fa-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; overflow-wrap: break-word !important; word-wrap: break-word !important; }\n\n#war-friday-2026 .fa-verdict { background: #fff !important; border-radius: 14px !important; padding: 30px 28px !important; margin-bottom: 22px !important; border-left: 8px solid #7f1d1d !important; }\n#war-friday-2026 .fa-verdict.vgood { border-left-color: #059669 !important; }\n#war-friday-2026 .fa-verdict.vmid { border-left-color: #D97706 !important; }\n#war-friday-2026 .fa-verdict.vbad { border-left-color: #B91C1C !important; }\n#war-friday-2026 .fa-vtop { font-size: 11px !important; font-weight: 800 !important; letter-spacing: 1.6px !important; text-transform: uppercase !important; color: #6b7785 !important; margin: 0 0 12px 0 !important; }\n#war-friday-2026 .fa-vname { font-size: 36px !important; font-weight: 800 !important; color: #1a2a3a !important; margin: 0 0 8px 0 !important; line-height: 1.1 !important; letter-spacing: -0.5px !important; overflow-wrap: break-word !important; word-wrap: break-word !important; }\n#war-friday-2026 .fa-vscore { font-size: 15px !important; font-weight: 700 !important; color: #6b7785 !important; margin: 0 0 18px 0 !important; line-height: 1.5 !important; }\n#war-friday-2026 .fa-vread { font-size: 14.5px !important; color: #444 !important; line-height: 1.7 !important; margin: 0 !important; max-width: 760px !important; }\n#war-friday-2026 .fa-bars { margin: 20px 0 0 0 !important; }\n#war-friday-2026 .fa-brow { display: flex !important; align-items: center !important; margin-bottom: 12px !important; flex-wrap: wrap !important; }\n#war-friday-2026 .fa-blabel { flex: 0 0 168px !important; font-size: 13px !important; font-weight: 800 !important; color: #1a2a3a !important; padding-right: 12px !important; }\n#war-friday-2026 .fa-btrack { flex: 1 1 170px !important; height: 26px !important; background: #eef1f4 !important; border-radius: 5px !important; position: relative !important; overflow: hidden !important; }\n#war-friday-2026 .fa-bfill { height: 100% !important; border-radius: 5px !important; }\n#war-friday-2026 .fa-bfill.f0 { background: linear-gradient(90deg, #B91C1C, #DC2626) !important; }\n#war-friday-2026 .fa-bfill.f1 { background: linear-gradient(90deg, #D97706, #F59E0B) !important; }\n#war-friday-2026 .fa-bfill.f2 { background: linear-gradient(90deg, #059669, #10B981) !important; }\n#war-friday-2026 .fa-bval { flex: 0 0 84px !important; font-size: 15px !important; font-weight: 800 !important; font-family: Georgia, serif !important; color: #1a2a3a !important; text-align: right !important; }\n#war-friday-2026 .fa-bbind { flex: 0 0 96px !important; font-size: 9.5px !important; font-weight: 800 !important; letter-spacing: 0.6px !important; text-transform: uppercase !important; color: #922b21 !important; padding-left: 12px !important; }\n\n#war-friday-2026 .fa-big { font-size: 30px !important; font-weight: 800 !important; color: #1a2a3a !important; line-height: 1.15 !important; margin: 0 0 4px 0 !important; font-family: Georgia, serif !important; overflow-wrap: break-word !important; word-wrap: break-word !important; }\n#war-friday-2026 .fa-big.neg { color: #B91C1C !important; }\n#war-friday-2026 .fa-note { border-radius: 8px !important; padding: 15px 17px !important; font-size: 13.5px !important; line-height: 1.65 !important; margin-top: 14px !important; }\n#war-friday-2026 .fa-note.warn { background: #fadbd8 !important; border-left: 4px solid #B91C1C !important; color: #6d2019 !important; }\n#war-friday-2026 .fa-note.caution { background: #fdf2d0 !important; border-left: 4px solid #D97706 !important; color: #6d4a00 !important; }\n#war-friday-2026 .fa-note.ok { background: #dcf0e4 !important; border-left: 4px solid #059669 !important; color: #14603c !important; }\n#war-friday-2026 .fa-note.info { background: #eef2f7 !important; border-left: 4px solid #475569 !important; color: #2f3c4d !important; }\n#war-friday-2026 .fa-grade { display: -webkit-inline-flex !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; width: 62px !important; height: 62px !important; border-radius: 50% !important; font-size: 30px !important; font-weight: 800 !important; font-family: Georgia, serif !important; margin-bottom: 12px !important; }\n#war-friday-2026 .fa-grade.gA { background: #dcf0e4 !important; color: #14603c !important; }\n#war-friday-2026 .fa-grade.gB { background: #e4f0dc !important; color: #3d6014 !important; }\n#war-friday-2026 .fa-grade.gC { background: #fdf2d0 !important; color: #8a6100 !important; }\n#war-friday-2026 .fa-grade.gD { background: #fadbd8 !important; color: #922b21 !important; }\n\n#war-friday-2026 table.fa-tbl { width: 100% !important; min-width: 620px !important; border-collapse: collapse !important; font-size: 13px !important; }\n#war-friday-2026 table.fa-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-friday-2026 table.fa-tbl td { padding: 10px 12px !important; border-bottom: 1px solid #eef1f4 !important; vertical-align: top !important; color: #444 !important; line-height: 1.5 !important; }\n#war-friday-2026 table.fa-tbl td.num { text-align: right !important; font-family: Georgia, serif !important; white-space: nowrap !important; }\n#war-friday-2026 table.fa-tbl tr.bad td { background: #fdeceb !important; color: #922b21 !important; font-weight: 600 !important; }\n#war-friday-2026 table.fa-tbl tr.mid td { background: #fffaf1 !important; color: #8a5a00 !important; }\n#war-friday-2026 table.fa-tbl tr.good td { background: #f2faf5 !important; color: #14603c !important; }\n#war-friday-2026 .fa-scroll { overflow-x: auto !important; -webkit-overflow-scrolling: touch !important; max-width: 100% !important; }\n#war-friday-2026 .fa-hint { display: none !important; }\n@media (max-width: 768px) { #war-friday-2026 .fa-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-friday-2026 .fa-card { background: #f6f8fa !important; border: 1px dashed #c3ccd5 !important; border-radius: 8px !important; padding: 18px 20px !important; font-size: 13px !important; color: #333 !important; line-height: 1.7 !important; white-space: pre-wrap !important; overflow-wrap: break-word !important; word-wrap: break-word !important; font-family: Georgia, 'Times New Roman', serif !important; }\n#war-friday-2026 .fa-btnrow { display: flex !important; flex-wrap: wrap !important; margin: 10px -5px 0 -5px !important; }\n#war-friday-2026 .fa-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-friday-2026 .fa-btn:hover { background: #2d4156 !important; }\n#war-friday-2026 .fa-btn.gold { background: #c9a227 !important; color: #1a2a3a !important; }\n#war-friday-2026 .fa-btn.ghost { background: transparent !important; color: #1a2a3a !important; border: 2px solid #c3ccd5 !important; }\n\n#war-friday-2026 .fa-next { background: #fff !important; padding: 50px 20px !important; }\n#war-friday-2026 .fa-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-friday-2026 .fa-next .fa-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-friday-2026 .fa-grid3 { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; grid-gap: 18px !important; gap: 18px !important; }\n#war-friday-2026 .fa-tile { border: 1px solid #e2e6ea !important; border-radius: 10px !important; padding: 22px 20px !important; background: #fbfcfd !important; }\n#war-friday-2026 .fa-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-friday-2026 .fa-tile p { margin: 0 0 14px 0 !important; font-size: 13.5px !important; color: #555 !important; line-height: 1.6 !important; }\n#war-friday-2026 .fa-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-friday-2026 .fa-tile a:hover { background: #c9a227 !important; color: #1a2a3a !important; }\n#war-friday-2026 .fa-cta { background: linear-gradient(135deg, #c9a227 0%, #ddb832 100%) !important; padding: 46px 20px !important; text-align: center !important; }\n#war-friday-2026 .fa-cta h3 { font-size: 27px !important; font-weight: 800 !important; color: #1a2a3a !important; margin: 0 0 10px 0 !important; }\n#war-friday-2026 .fa-cta p { font-size: 15.5px !important; color: #1a2a3a !important; opacity: 0.85 !important; margin: 0 0 24px 0 !important; }\n#war-friday-2026 .fa-ctarow { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; }\n#war-friday-2026 .fa-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-friday-2026 .fa-fine { background: #1a2a3a !important; padding: 26px 20px !important; }\n#war-friday-2026 .fa-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-friday-2026 .fa-fine b { color: rgba(255,255,255,0.85) !important; }\n#war-friday-2026 .fa-manual { background: #fff9f0 !important; border-top: 4px solid #D97706 !important; padding: 40px 20px !important; }\n#war-friday-2026 .fa-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-friday-2026 .fa-band, #war-friday-2026 .fa-hero, #war-friday-2026 .fa-form,\n    #war-friday-2026 .fa-progress, #war-friday-2026 .fa-next, #war-friday-2026 .fa-cta,\n    #war-friday-2026 .fa-btnrow { display: none !important; }\n    #war-friday-2026 .fa-result { background: #fff !important; padding: 0 !important; }\n    #war-friday-2026 .fa-panel, #war-friday-2026 .fa-verdict { border: 1px solid #ccc !important; page-break-inside: avoid !important; }\n    #war-friday-2026 .fa-fine { background: #fff !important; }\n    #war-friday-2026 .fa-fine p, #war-friday-2026 .fa-fine b { color: #444 !important; }\n    #war-friday-2026 table.fa-tbl { min-width: 0 !important; }\n}\n@media (max-width: 900px) {\n    #war-friday-2026 .fa-grid2 { grid-template-columns: minmax(0, 1fr) !important; }\n    #war-friday-2026 .fa-grid3 { grid-template-columns: minmax(0, 1fr) !important; max-width: 480px !important; margin: 0 auto !important; }\n}\n@media (max-width: 768px) {\n    #war-friday-2026 .fa-h1 { font-size: 31px !important; }\n    #war-friday-2026 .fa-hero { padding: 38px 18px 34px 18px !important; }\n    #war-friday-2026 .fa-form, #war-friday-2026 .fa-result, #war-friday-2026 .fa-next { padding: 34px 16px !important; }\n    #war-friday-2026 .fa-shead, #war-friday-2026 .fa-sbody { padding-left: 16px !important; padding-right: 16px !important; }\n    #war-friday-2026 .fa-fields { grid-template-columns: minmax(0, 1fr) !important; }\n    #war-friday-2026 .fa-panel { padding: 20px 17px !important; }\n    #war-friday-2026 .fa-verdict { padding: 22px 18px !important; }\n    #war-friday-2026 .fa-vname { font-size: 26px !important; }\n    #war-friday-2026 .fa-blabel { flex: 0 0 100% !important; margin-bottom: 4px !important; }\n    #war-friday-2026 .fa-bbind { flex: 0 0 auto !important; }\n    #war-friday-2026 .fa-askrow b { flex: 0 0 100% !important; }\n}\n@media (max-width: 420px) {\n    #war-friday-2026 .fa-h1 { font-size: 26px !important; }\n    #war-friday-2026 .fa-vname { font-size: 22px !important; }\n    #war-friday-2026 .fa-big { font-size: 24px !important; }\n    #war-friday-2026 .fa-opt { font-size: 13.5px !important; padding-left: 40px !important; }\n    #war-friday-2026 .fa-shead, #war-friday-2026 .fa-sbody, #war-friday-2026 .fa-panel { padding-left: 12px !important; padding-right: 12px !important; }\n    #war-friday-2026 .fa-stitle { min-width: 0 !important; }\n    #war-friday-2026 .fa-snum { width: 38px !important; height: 38px !important; margin-right: 10px !important; }\n    #war-friday-2026 .fa-bval { flex: 0 0 64px !important; font-size: 13px !important; }\n    #war-friday-2026 .fa-btrack { flex: 1 1 100px !important; }\n}\n<\/style>\n\n<div class=\"fa-band\">\n    <p>A CONTROL THAT IS DESIGNED AND NOT OPERATING DOES NOT FAIL SAFE. <strong>It reports green.<\/strong><\/p>\n<\/div>\n\n<div class=\"fa-hero\">\n    <div class=\"fa-inner\">\n        <span class=\"fa-eyebrow\">Cross Cutting \/\/ When Agents Rule<\/span>\n        <h1 class=\"fa-h1\">The Friday Afternoon Test<\/h1>\n        <p class=\"fa-lede\">Five dimensions, each scored twice: is the control designed, and could you produce the evidence that it operated this afternoon. The gap between those two numbers is the answer to whether your governance is enforced or merely documented.<\/p>\n        <div class=\"fa-facts\">\n            <span class=\"fa-fact\"><b>10<\/b> questions, five dimensions<\/span>\n            <span class=\"fa-fact\"><b>1<\/b> evidence gap<\/span>\n            <span class=\"fa-fact\"><b>5<\/b> minutes<\/span>\n            <span class=\"fa-fact\"><b>0<\/b> fields sent anywhere<\/span>\n        <\/div>\n        <div class=\"fa-honest\">\n            <b>Why every dimension is scored twice.<\/b> Most governance assessments ask whether a control exists. This one asks whether you could prove it operated, because those are different questions and the distance between them is where the risk lives. A policy that exists on a slide and not in a control is the most common state in AI governance, and it is exactly the state this instrument detects.<br><br>\n            <b>Why an empty reading can never come out green.<\/b> The verdict weighs two things: how much actually operates, and how far evidence falls short of design. A small gap on a small design is not assurance, so nothing designed and nothing evidenced reads as absent, not as enforced. The only green verdict requires every dimension to be evidenced at a usable level.<br><br>\n            <b>Why the gap is counted dimension by dimension.<\/b> Strong evidence in one dimension does not excuse missing evidence in another. An organisation that can reverse every action but cannot list its systems has two separate problems, not an average.<br><br>\n            <b>Why it is time boxed.<\/b> The name is the method. These are answerable in one sitting, without a working group, because a diligence framework that needs a project to complete is not diligence. If a question cannot be answered in the time this page takes, that inability is the answer. Nothing you enter is transmitted or stored.\n        <\/div>\n    <\/div>\n<\/div>\n\n<div class=\"fa-form\">\n<div class=\"fa-inner\">\n    <div class=\"fa-sec\">\n        <div class=\"fa-shead s1\">\n            <div class=\"fa-snum\">1<\/div>\n            <div class=\"fa-stitle\">\n                <h2>Inventory<\/h2>\n                <p>Do you know what is running? Nothing below this line is answerable until this one is.<\/p>\n            <\/div>\n        <\/div>\n        <div class=\"fa-sbody\">\n            <div class=\"fa-q\">\n                <p class=\"fa-qlabel\">DESIGNED: is there a maintained inventory of AI systems in production?<\/p>\n                <p class=\"fa-help\">Designed means the register exists and somebody owns it, not that it is complete.<\/p>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"i-d\" value=\"0\"><span>No inventory.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"i-d\" value=\"1\"><span>A list somebody assembled once.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"i-d\" value=\"2\"><span>A maintained register with a named owner.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"i-d\" value=\"3\"><span>A maintained register updated automatically from the environment.<\/span><\/label>\n            <\/div>\n            <div class=\"fa-q\">\n                <p class=\"fa-qlabel\">EVIDENCED: could you produce the current count of L3 and above systems this afternoon?<\/p>\n                <p class=\"fa-help\">Not an estimate. The number, from the register, with the date it was last verified. If you would have to ask three teams, the answer is no.<\/p>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"i-e\" value=\"0\"><span>No. It would take days and involve several teams.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"i-e\" value=\"1\"><span>An approximate number today, an accurate one next week.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"i-e\" value=\"2\"><span>Yes, from the register, though the verification date would be old.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"i-e\" value=\"3\"><span>Yes, with a verification date inside the last month.<\/span><\/label>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <div class=\"fa-sec\">\n        <div class=\"fa-shead s2\">\n            <div class=\"fa-snum\">2<\/div>\n            <div class=\"fa-stitle\">\n                <h2>Classification<\/h2>\n                <p>Is every system placed on the autonomy ladder, and does the placement hold up?<\/p>\n            <\/div>\n        <\/div>\n        <div class=\"fa-sbody\">\n            <div class=\"fa-q\">\n                <p class=\"fa-qlabel\">DESIGNED: does every production system carry an autonomy level and an impact classification?<\/p>\n                <p class=\"fa-help\">The L0 to L5 ladder plus impact scope. A system with no level cannot be governed proportionately. <span class=\"fa-cite\">Chapter 4<\/span><\/p>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"c-d\" value=\"0\"><span>No classification scheme in use.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"c-d\" value=\"1\"><span>A scheme exists, applied to some systems.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"c-d\" value=\"2\"><span>Applied to every production system.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"c-d\" value=\"3\"><span>Applied to every system, and reapplied when the system changes.<\/span><\/label>\n            <\/div>\n            <div class=\"fa-q\">\n                <p class=\"fa-qlabel\">EVIDENCED: could you show that a system classified at L2 is not in fact operating at L4?<\/p>\n                <p class=\"fa-help\">This is the question the classification is for. It is answered by comparing the declared level against what the credential actually permits, not by rereading the classification. <span class=\"fa-cite\">Chapter 5<\/span><\/p>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"c-e\" value=\"0\"><span>No. We would have to go and look.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"c-e\" value=\"1\"><span>For our most important systems, by asking the owning team.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"c-e\" value=\"2\"><span>Yes, from the identity register, for production systems.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"c-e\" value=\"3\"><span>Yes, and a mismatch raises an alert rather than waiting for somebody to check.<\/span><\/label>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <div class=\"fa-sec\">\n        <div class=\"fa-shead s3\">\n            <div class=\"fa-snum\">3<\/div>\n            <div class=\"fa-stitle\">\n                <h2>Enforcement<\/h2>\n                <p>Is governance in the architecture, or in a document?<\/p>\n            <\/div>\n        <\/div>\n        <div class=\"fa-sbody\">\n            <div class=\"fa-q\">\n                <p class=\"fa-qlabel\">DESIGNED: are the governance rules written down with named approval gates?<\/p>\n                <p class=\"fa-help\">A charter, gates, control floors by tier. This is the part most organisations have. <span class=\"fa-cite\">Chapter 12<\/span><\/p>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"e-d\" value=\"0\"><span>No written governance.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"e-d\" value=\"1\"><span>Principles, without gates.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"e-d\" value=\"2\"><span>A charter with defined approval gates.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"e-d\" value=\"3\"><span>A charter with gates, control floors by tier, and an exception process with expiry dates.<\/span><\/label>\n            <\/div>\n            <div class=\"fa-q\">\n                <p class=\"fa-qlabel\">EVIDENCED: is any of it enforced architecturally rather than by policy?<\/p>\n                <p class=\"fa-help\">The board question is put exactly this way: how are they enforced architecturally rather than only documented in policy. A rule a deployment can ignore is guidance. <span class=\"fa-cite\">Chapter 16<\/span><\/p>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"e-e\" value=\"0\"><span>Policy only. Nothing would stop a non compliant deployment.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"e-e\" value=\"1\"><span>A review step a determined team can route around.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"e-e\" value=\"2\"><span>A pipeline gate that blocks deployment for the main platforms.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"e-e\" value=\"3\"><span>A policy engine that enforces across the estate, with staged rollout and a tested rollback.<\/span><\/label>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <div class=\"fa-sec\">\n        <div class=\"fa-shead s4\">\n            <div class=\"fa-snum\">4<\/div>\n            <div class=\"fa-stitle\">\n                <h2>Audit<\/h2>\n                <p>If somebody asks what a system did, can you answer from a record rather than from memory?<\/p>\n            <\/div>\n        <\/div>\n        <div class=\"fa-sbody\">\n            <div class=\"fa-q\">\n                <p class=\"fa-qlabel\">DESIGNED: is there a logging standard specifying what must be recorded per decision?<\/p>\n                <p class=\"fa-help\">Inputs, retrieved context, tools invoked, human checkpoint, reversal status. A standard that names only the outcome is not a standard. <span class=\"fa-cite\">Article 12<\/span><\/p>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"a-d\" value=\"0\"><span>No standard.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"a-d\" value=\"1\"><span>Logging happens, with no standard for what.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"a-d\" value=\"2\"><span>A standard exists and production systems follow it.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"a-d\" value=\"3\"><span>A standard exists, is enforced in the platform, and completeness is measured.<\/span><\/label>\n            <\/div>\n            <div class=\"fa-q\">\n                <p class=\"fa-qlabel\">EVIDENCED: pick one decision from last month at random. Could you reconstruct it today?<\/p>\n                <p class=\"fa-help\">The whole chain, not the outcome. This is also the phase that decides whether you meet the fifteen day serious incident clock, because reconstruction is the only part of that window whose duration you control in advance. <span class=\"fa-cite\">Article 73<\/span><\/p>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"a-e\" value=\"0\"><span>No. We would know the outcome and little else.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"a-e\" value=\"1\"><span>Partially, by piecing together several systems.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"a-e\" value=\"2\"><span>Yes for high risk systems, in a few hours.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"a-e\" value=\"3\"><span>Yes for any production system, within the hour, from one place.<\/span><\/label>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <div class=\"fa-sec\">\n        <div class=\"fa-shead s5\">\n            <div class=\"fa-snum\">5<\/div>\n            <div class=\"fa-stitle\">\n                <h2>Recoverability<\/h2>\n                <p>The question Chapter 5 puts to an executive, and the one that is usually uncomfortable.<\/p>\n            <\/div>\n        <\/div>\n        <div class=\"fa-sbody\">\n            <div class=\"fa-q\">\n                <p class=\"fa-qlabel\">DESIGNED: is recoverability a precondition on what an agent is allowed to do?<\/p>\n                <p class=\"fa-help\">The architectural principle is that the action space is bounded by what is recoverable, not by what policy permits. When the rollback path is missing, the action does not run without a human. <span class=\"fa-cite\">Chapter 5<\/span><\/p>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"r-d\" value=\"0\"><span>No. Permissions are set by policy, with no recoverability requirement.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"r-d\" value=\"1\"><span>Considered informally at design review.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"r-d\" value=\"2\"><span>Required for high autonomy systems, checked at approval.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"r-d\" value=\"3\"><span>Enforced at execution: an action with no verified rollback path does not run autonomously.<\/span><\/label>\n            <\/div>\n            <div class=\"fa-q\">\n                <p class=\"fa-qlabel\">EVIDENCED: if every autonomous action over the past thirty days had to be reversed today, which could be?<\/p>\n                <p class=\"fa-help\">The Recoverability Test, in the form the book puts it. Answer for what you could actually do this afternoon, not for what the design intends. <span class=\"fa-cite\">Chapter 5, Chapter 16<\/span><\/p>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"r-e\" value=\"0\"><span>We could not say which actions were taken, let alone reverse them.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"r-e\" value=\"1\"><span>We could list them. We could reverse few of them.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"r-e\" value=\"2\"><span>Most could be reversed, and we know which could not.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"r-e\" value=\"3\"><span>All could be reversed, or the irreversible ones were approved by a human and are documented as such.<\/span><\/label>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <div class=\"fa-sec\">\n        <div class=\"fa-shead s0\">\n            <div class=\"fa-snum\">i<\/div>\n            <div class=\"fa-stitle\">\n                <h2>Who is answering, and where it goes<\/h2>\n                <p>Context rather than score. Who answered decides how much the answer is worth.<\/p>\n            <\/div>\n        <\/div>\n        <div class=\"fa-sbody\">\n            <div class=\"fa-locked\">\n                <b>Answer these honestly or do not answer them at all.<\/b> This is a self diligence instrument, which means the only person it can mislead is you. The output is designed to be uncomfortable where the position is uncomfortable, and it will say so plainly rather than softening it.\n            <\/div>\n            <div class=\"fa-q\">\n                <p class=\"fa-qlabel\">Who is answering these questions?<\/p>\n                <p class=\"fa-help\">A CIO answering alone gets a different result from a CIO answering with the people who would have to produce the evidence. Both are useful. Only one is defensible in front of a board.<\/p>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"q-ev\" value=\"alone\"><span>One person, from their own knowledge.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"q-ev\" value=\"team\"><span>The technology leadership team together.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"q-ev\" value=\"cross\"><span>Technology plus at least one of risk, audit, legal or a business unit.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"q-ev\" value=\"tested\"><span>As above, and we actually tried to produce the evidence during the session rather than estimating.<\/span><\/label>\n            <\/div>\n            <div class=\"fa-q\">\n                <p class=\"fa-qlabel\">Has any of this been reported to the board in this form?<\/p>\n                <p class=\"fa-help\">Proxy advisers now expect documented director oversight of AI, and the Caremark line of authority treats a failure to monitor as the exposure. Reporting is part of the control, not a consequence of it. <span class=\"fa-cite\">Chapter 16<\/span><\/p>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"q-board\" value=\"no\"><span>No. AI governance has not reached the board in a structured form.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"q-board\" value=\"adhoc\"><span>Mentioned in updates, without a repeating structure.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"q-board\" value=\"struct\"><span>A structured report, at least once.<\/span><\/label>\n                <label class=\"fa-opt\"><input type=\"radio\" name=\"q-board\" value=\"series\"><span>The same structured measures for three or more consecutive quarters, so the board can see direction.<\/span><\/label>\n            <\/div>\n            <div class=\"fa-fields\">\n                <div class=\"fa-f\">\n                    <label for=\"fa-org\">Organisation or unit assessed\n                        <span class=\"fa-hint2\">Labels the output only.<\/span>\n                    <\/label>\n                    <input type=\"text\" id=\"fa-org\" value=\"Group Technology\">\n                <\/div>\n                <div class=\"fa-f\">\n                    <label for=\"fa-owner\">Who is signing this reading\n                        <span class=\"fa-hint2\">A person and a role. A self assessment nobody signs is a private opinion.<\/span>\n                    <\/label>\n                    <input type=\"text\" id=\"fa-owner\" value=\"\" placeholder=\"For example, E. Vasquez, Chief Information Officer\">\n                <\/div>\n                <div class=\"fa-f\">\n                    <label for=\"fa-l3\">Systems at L3 autonomy or above\n                        <span class=\"fa-hint2\">Leave blank if you do not know. Blank is recorded as not known, which is itself a finding.<\/span>\n                    <\/label>\n                    <input type=\"number\" id=\"fa-l3\" value=\"\" min=\"0\" step=\"1\" inputmode=\"numeric\" placeholder=\"Not known\">\n                <\/div>\n                <div class=\"fa-f\">\n                    <label for=\"fa-date\">Date of this reading\n                        <span class=\"fa-hint2\">Date it. An undated self assessment cannot show a trend, and the trend is what a board acts on.<\/span>\n                    <\/label>\n                    <input type=\"date\" id=\"fa-date\" value=\"\">\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n<\/div>\n<\/div>\n\n<div class=\"fa-progress\">\n    <div class=\"fa-pinner\">\n        <p class=\"fa-ptext\" id=\"fa-prog\"><b>0<\/b><span id=\"fa-progl\"> of 12 answered<\/span><\/p>\n        <span class=\"fa-bar\"><i id=\"fa-fill\"><\/i><\/span>\n        <button type=\"button\" class=\"fa-clear\" id=\"fa-clearbtn\">Clear<\/button>\n        <button type=\"button\" class=\"fa-go\" id=\"fa-go\" disabled>Take the Test<\/button>\n    <\/div>\n<\/div>\n\n<div class=\"fa-result\" id=\"fa-result\">\n<div class=\"fa-wide\">\n\n    <div class=\"fa-panel fa-ask\">\n        <h3 id=\"fa-askh\">The ask<\/h3>\n        <p class=\"fa-sub\">The verdict, the gap, the weakest dimension and who signed it, in the order a board wants them. Everything below is the evidence.<\/p>\n        <div id=\"fa-asklist\"><\/div>\n    <\/div>\n\n    <div class=\"fa-verdict\" id=\"fa-verdict\">\n        <p class=\"fa-vtop\" id=\"fa-vtop\">The verdict<\/p>\n        <h2 class=\"fa-vname\" id=\"fa-vname\">Not assessed<\/h2>\n        <p class=\"fa-vscore\" id=\"fa-vscore\"><\/p>\n        <p class=\"fa-vread\" id=\"fa-vread\"><\/p>\n    <\/div>\n\n    <div class=\"fa-panel\">\n        <h3>Designed against evidenced, by dimension<\/h3>\n        <p class=\"fa-sub\">Two bars per dimension. The upper is what is designed, the lower what you could prove this afternoon. Where the lower bar is materially shorter, the control is documentation rather than enforcement.<\/p>\n        <div id=\"fa-bars\"><\/div>\n        <div class=\"fa-note info\" id=\"fa-barnote\"><\/div>\n    <\/div>\n\n    <div class=\"fa-grid2\">\n        <div class=\"fa-panel\">\n            <h3>The evidence gap<\/h3>\n            <p class=\"fa-sub\">In each dimension, how far evidence falls short of design, added up across all five. A dimension where evidence exceeds design does not offset one where it falls short. Read it next to the evidence total, never on its own: a small gap on a small design is not assurance.<\/p>\n            <p class=\"fa-big\" id=\"fa-gap\">0<\/p>\n            <p class=\"fa-sub\" style=\"margin-bottom:14px !important;\">points of governance that exist on paper and not in evidence, out of 15<\/p>\n            <p class=\"fa-big\" id=\"fa-worst\">None<\/p>\n            <p class=\"fa-sub\" style=\"margin-bottom:0 !important;\">dimension with the widest gap between design and evidence<\/p>\n            <div class=\"fa-note info\" id=\"fa-gapnote\"><\/div>\n        <\/div>\n        <div class=\"fa-panel\">\n            <h3>The Recoverability Test<\/h3>\n            <p class=\"fa-sub\">Chapter 5 puts this to an executive as one question, and Chapter 16 puts it to a board as the fifth of five. It gets its own panel because it is the question that most often changes a room.<\/p>\n            <p class=\"fa-big\" id=\"fa-recov\">Not answered<\/p>\n            <p class=\"fa-sub\" style=\"margin-bottom:0 !important;\">if every autonomous action over the past thirty days had to be reversed today<\/p>\n            <div class=\"fa-note info\" id=\"fa-recovnote\"><\/div>\n        <\/div>\n    <\/div>\n\n    <div class=\"fa-panel\">\n        <h3>The dependency chain, and where yours breaks<\/h3>\n        <p class=\"fa-sub\">The five dimensions are ordered because each depends on the one before it. A gap early in the chain makes everything after it unreliable regardless of its own score, which is why the chain is reported rather than a total.<\/p>\n        <div class=\"fa-hint\">Swipe the table sideways to see every column.<\/div>\n        <div class=\"fa-scroll\">\n        <table class=\"fa-tbl\">\n            <thead><tr><th>Dimension<\/th><th>Designed<\/th><th>Evidenced<\/th><th>Shortfall<\/th><th>What this means for the dimension after it<\/th><\/tr><\/thead>\n            <tbody id=\"fa-chain\"><\/tbody>\n        <\/table>\n        <\/div>\n        <div class=\"fa-note caution\" id=\"fa-chainnote\"><\/div>\n    <\/div>\n\n    <div class=\"fa-panel\">\n        <h3>What to fix first, and why that one<\/h3>\n        <p class=\"fa-sub\">Not the lowest score. The earliest break in the chain, because fixing a later dimension while an earlier one is broken produces evidence nobody can rely on.<\/p>\n        <div id=\"fa-actions\"><\/div>\n    <\/div>\n\n    <div class=\"fa-panel\">\n        <h3>The five board questions, with your answers<\/h3>\n        <p class=\"fa-sub\">From Chapter 16, structured for directors interviewing a chief information officer rather than for self assessment. Your answers below are drawn from this reading, so you can see what a board would hear if it asked today.<\/p>\n        <div class=\"fa-hint\">Swipe the table sideways to see every column.<\/div>\n        <div class=\"fa-scroll\">\n        <table class=\"fa-tbl\">\n            <thead><tr><th>The question a director should ask<\/th><th>What your reading says you would answer<\/th><\/tr><\/thead>\n            <tbody id=\"fa-board\"><\/tbody>\n        <\/table>\n        <\/div>\n        <div class=\"fa-note info\" id=\"fa-boardnote\"><\/div>\n    <\/div>\n\n    <div class=\"fa-panel\">\n        <h3>Do your own answers agree with each other?<\/h3>\n        <p class=\"fa-sub\">A self assessment can be internally inconsistent in ways that are invisible while you are taking it. These are the contradictions that matter.<\/p>\n        <div id=\"fa-coherence\"><\/div>\n    <\/div>\n\n    <div class=\"fa-grid2\">\n        <div class=\"fa-panel\">\n            <h3>Confidence in this reading<\/h3>\n            <p class=\"fa-sub\">This grades the reading, not the governance: whether it would survive being taken again with the people who would have to produce the evidence.<\/p>\n            <div class=\"fa-grade gD\" id=\"fa-grade\">?<\/div>\n            <p class=\"fa-big\" style=\"font-size:20px !important;\" id=\"fa-gradelabel\">Not graded<\/p>\n            <ul id=\"fa-conflist\" style=\"margin:12px 0 0 0 !important;padding-left:20px !important;\"><\/ul>\n            <div class=\"fa-note info\" id=\"fa-confnote\"><\/div>\n        <\/div>\n        <div class=\"fa-panel\">\n            <h3>The reading an auditor would take<\/h3>\n            <p class=\"fa-sub\">An auditor tests operating effectiveness, not design. So the challenged reading is your evidence score alone, with design set aside entirely, which is the standard an assurance opinion actually applies.<\/p>\n            <p class=\"fa-big\" id=\"fa-chal\">0<\/p>\n            <p class=\"fa-sub\" style=\"margin-bottom:14px !important;\">evidence only score, out of 15<\/p>\n            <p class=\"fa-big\" id=\"fa-chalband\">Not assessed<\/p>\n            <p class=\"fa-sub\" style=\"margin-bottom:0 !important;\">what that alone would be called<\/p>\n            <div class=\"fa-note ok\" id=\"fa-chalnote\"><\/div>\n        <\/div>\n    <\/div>\n\n    <div class=\"fa-panel\">\n        <h3>Board paper<\/h3>\n        <p class=\"fa-sub\">Written to be pasted into a board, risk or audit committee paper without editing. Replace the bracketed fields before circulating.<\/p>\n        <div class=\"fa-card\" id=\"fa-cardtext\"><\/div>\n        <div class=\"fa-btnrow\">\n            <button type=\"button\" class=\"fa-btn gold\" id=\"fa-copy\">Copy the paper<\/button>\n            <button type=\"button\" class=\"fa-btn\" id=\"fa-print\">Print or save as PDF<\/button>\n            <button type=\"button\" class=\"fa-btn ghost\" id=\"fa-again\">Back to the inputs<\/button>\n        <\/div>\n    <\/div>\n\n<\/div>\n<\/div>\n\n<div class=\"fa-next\">\n<div class=\"fa-wide\">\n    <h3>Close the gap you just measured<\/h3>\n    <p class=\"fa-sub\">An evidence gap is a diagnosis. These are the instruments that close it, in the order the chain breaks.<\/p>\n    <div class=\"fa-grid3\">\n        <div class=\"fa-tile\">\n            <h4>If the gap is in inventory or classification<\/h4>\n            <p>Start with the Agent Inventory workbook and the identity sheet of the Decision Log, which calculates effective privilege and finds the systems governed at a higher level than they were declared at. Classification without the identity check is a label rather than a control.<\/p>\n            <a href=\"https:\/\/www.opey.org\/opeyit\/?page_id=748#war-downloads-section\">Get the registers<\/a>\n        <\/div>\n        <div class=\"fa-tile\">\n            <h4>If the gap is in enforcement or audit<\/h4>\n            <p>The Governance Charter sets gates that can be met inside a delivery window. The Decision Log defines the record you need per decision and tests whether your platform produces it. The Human Oversight Design Template is mostly about detecting degradation, because that is how enforcement quietly becomes documentation.<\/p>\n            <a href=\"https:\/\/www.opey.org\/opeyit\/?page_id=748#war-downloads-section\">Get the instruments<\/a>\n        <\/div>\n        <div class=\"fa-tile\">\n            <h4>If the gap is in recoverability<\/h4>\n            <p>The Containment and Kill Switch Procedure carries the twelve prerequisites that decide whether containment works at all, and the reversal and reconciliation steps most procedures omit. Chapter 5 is the reasoning, and Chapter 16 turns it into the question a director should ask you.<\/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=\"fa-manual\">\n<div class=\"fa-inner\">\n    <h3>Taking the test by hand<\/h3>\n    <p style=\"font-size:14.5px !important;color:#444 !important;line-height:1.7 !important;\">Interactive scoring is unavailable in your browser. The method is short and it is meant to be done in one sitting.<\/p>\n    <ol style=\"font-size:14.5px !important;color:#444 !important;line-height:1.85 !important;\">\n        <li>Five dimensions, in this order: <b>inventory, classification, enforcement, audit, recoverability<\/b>. The order matters because each depends on the one before it.<\/li>\n        <li>Score each dimension <b>twice<\/b>. Once for whether the control is designed, once for whether you could produce the evidence that it operated this afternoon. Each answer scores 0 to 3 in the order shown.<\/li>\n        <li>For each dimension, subtract the evidence score from the design score, counting a result below zero as zero. Add the five results: that is the <b>evidence gap<\/b>. Evidence exceeding design in one dimension never offsets a shortfall in another.<\/li>\n        <li>Add the five design scores (D) and the five evidence scores (E). Count how many dimensions have an evidence score of 0 or 1 (W).<\/li>\n        <li><b>The verdict is the first row in the table below that matches.<\/b> It weighs the level of evidence as well as the gap, so a reading with nothing designed and nothing evidenced can never come out as enforced.<\/li>\n        <li>What to fix first is the <b>earliest<\/b> dimension, in the order above, whose evidence score is 0 or 1, not the one with the widest gap, because evidence produced downstream of a broken dimension cannot be relied upon.<\/li>\n        <li>Answer the Recoverability Test separately and plainly: if every autonomous agent action over the past thirty days had to be reversed today, which ones could be?<\/li>\n    <\/ol>\n    <div class=\"fa-scroll\">\n    <table class=\"fa-tbl\" style=\"margin-top:14px !important;\">\n        <thead><tr><th>First matching condition<\/th><th>Verdict<\/th><th>What it means<\/th><\/tr><\/thead>\n        <tbody>\n            <tr><td>E is 4 or less and D is 4 or less<\/td><td>Absent<\/td><td>Almost nothing designed and almost nothing operating. A starting position, not a small gap.<\/td><\/tr>\n            <tr><td>Gap is 10 or more<\/td><td>Theatre<\/td><td>An elaborate design with almost no evidence. The design itself now creates exposure.<\/td><\/tr>\n            <tr><td>Gap is 6 to 9<\/td><td>Documented, not operating<\/td><td>Governance exists on paper and fails under examination.<\/td><\/tr>\n            <tr><td>E is 4 or less<\/td><td>Barely operating<\/td><td>Some design, almost no evidence.<\/td><\/tr>\n            <tr><td>W is 3 or more<\/td><td>Thin<\/td><td>The chain breaks early and more than once.<\/td><\/tr>\n            <tr><td>W is 0 and gap is 2 or less, evidence exceeding design by 4 or more<\/td><td>Operating informally<\/td><td>Works on practice rather than design, and depends on the people doing it.<\/td><\/tr>\n            <tr><td>W is 0 and gap is 2 or less<\/td><td>Enforced<\/td><td>Every dimension evidenced at a usable level. The only green verdict.<\/td><\/tr>\n            <tr><td>Anything else<\/td><td>Partly enforced<\/td><td>Some controls operate, some are only written, or the chain breaks once.<\/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>One warning worth applying by hand.<\/b> A high design total with a low evidence total is worse than a low design total, not better. A documented control you cannot evidence establishes the standard you were holding yourself to and then demonstrates that you were not meeting it. Auditors, regulators and claimants all read it that way.<\/p>\n    <p style=\"font-size:14.5px !important;color:#444 !important;line-height:1.7 !important;\"><b>This is not an audit.<\/b> It is a self diligence framework, so the only person it can mislead is you. Answer it with the people who would have to produce the evidence, and it becomes considerably more useful and considerably less comfortable.<\/p>\n<\/div>\n<\/div>\n<\/noscript>\n\n<div class=\"fa-cta\">\n    <h3>Governance you cannot evidence is a standard you are visibly not meeting<\/h3>\n    <p>The gap is the finding. Measuring it is the cheapest hour available in this subject.<\/p>\n    <div class=\"fa-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=\"fa-fine\">\n    <p><b>About this test.<\/b> The Friday Afternoon Test is the chief information officer self diligence framework introduced in Chapter 16 of When Agents Rule by Steven Oppenheim, probing inventory, classification, enforcement, audit and recoverability for every system at L3 autonomy or above. The Recoverability Test is from Chapter 5. The board variant is the Five Board Questions for the Chief Information Officer, also Chapter 16.<br><br>\n    <b>What this instrument is not.<\/b> Not an audit, an assurance opinion, a certification or a benchmark. It is a structured self assessment, and it reflects what you tell it: answered generously it produces a flattering result and no information. No peer comparison is offered because no dataset underlies it. The evidence gap is a measure of internal consistency between what you have designed and what you can demonstrate, not a measure of compliance with any standard. References to Article 12, Article 73 and the fifteen day serious incident reporting clock are to Regulation (EU) 2024\/1689 as amended by Regulation (EU) 2026\/1744, under which the high risk obligations apply from 2 December 2027 for Annex III systems and 2 August 2028 for Annex I; whether they apply to a given system is a legal determination for qualified counsel. Not legal, technical or financial advice. Nothing you enter leaves your browser: there is no account, no transmission and no storage.<\/p>\n<\/div>\n\n<\/div>\n<!-- End of #war-friday-2026 -->\n\n<script>\n\/* THE FRIDAY AFTERNOON TEST, version 2.\n   The verdict weighs LEVEL (how much operates) and GAP (how far evidence\n   falls short of design). Version 1 used the gap alone, so a reading with\n   nothing designed and nothing evidenced reported \"Governance is enforced\".\n   The MODEL block is pure logic with no page access, so it can be tested\n   against every combination of answers outside the browser.\n   No less than sign, no ampersand, no innerHTML. *\/\n(function () {\n    var root = document.getElementById('war-friday-2026');\n    if (!root) { return; }\n\n\/* MODEL START *\/\n    var DIMS = [\n      { name: 'Inventory', d: 'i-d', e: 'i-e',\n        depends: 'Classification cannot be trusted, because you cannot classify what you have not found.',\n        fix: 'Run the shadow AI discovery sweep and populate the inventory with autonomy level and identity tier per system. This is the cheapest work in the whole chain and everything after it depends on it.' },\n      { name: 'Classification', d: 'c-d', e: 'c-e',\n        depends: 'Enforcement cannot be proportionate, because controls can only be matched to a tier that is recorded.',\n        fix: 'Apply the autonomy ladder to every production system, then check each declared level against what the credential actually permits. A declared L2 holding broad credentials is governed at L4 whatever the label says.' },\n      { name: 'Enforcement', d: 'e-d', e: 'e-e',\n        depends: 'Audit records what happened rather than what was required, because there was no enforced requirement to record against.',\n        fix: 'Move at least one gate from policy into the pipeline, so a non compliant deployment is blocked rather than discussed. One enforced gate is worth more than a complete charter.' },\n      { name: 'Audit', d: 'a-d', e: 'a-e',\n        depends: 'Recoverability cannot be established, because you cannot reverse an action you cannot identify.',\n        fix: 'Define the record required per decision, covering inputs, retrieved context, tools invoked, the human checkpoint and reversal status, then test whether your platform produces it by asking for one decision at random.' },\n      { name: 'Recoverability', d: 'r-d', e: 'r-e',\n        depends: 'This is the end of the chain, and it is the dimension a board asks about directly.',\n        fix: 'Make a verified rollback path a precondition on autonomous execution rather than a design aspiration. Where the path is missing or depends on context the agent cannot check, the action waits for a human.' }\n    ];\n    var RLAB = ['None of them', 'Few of them', 'Most of them', 'All, or the exceptions are documented'];\n    var RED = { absent: 1, theatre: 1, documented: 1, barely: 1, thin: 1 };\n\n    function plural(n, one, many) { return n + ' ' + ((n === 1) ? one : many); }\n    function listNames(a) {\n        if (a.length === 0) { return ''; }\n        if (a.length === 1) { return a[0]; }\n        return a.slice(0, a.length - 1).join(', ') + ' and ' + a[a.length - 1];\n    }\n    function evBand(s) {\n        if (s >= 13) { return 'operating'; }\n        if (s >= 10) { return 'largely operating'; }\n        if (s >= 6) { return 'partly operating'; }\n        if (s >= 3) { return 'barely operating'; }\n        return 'not operating';\n    }\n    function dBand(s) {\n        if (s >= 13) { return 'fully designed'; }\n        if (s >= 10) { return 'largely designed'; }\n        if (s >= 6) { return 'partly designed'; }\n        if (s >= 3) { return 'barely designed'; }\n        return 'not designed';\n    }\n    function cap(t) { return t.charAt(0).toUpperCase() + t.slice(1); }\n\n    function assess(inp) {\n        var j = 0;\n        var des = inp.des; var evi = inp.evi;\n        var shortf = []; var over = [];\n        var D = 0; var E = 0; var G = 0; var O = 0; var W = 0; var B = -1;\n        var weakNames = []; var overNames = [];\n        for (j = 0; j !== 5; j++) {\n            var s = des[j] - evi[j]; var o = 0;\n            if (0 > s) { o = -s; s = 0; }\n            shortf.push(s); over.push(o);\n            D = D + des[j]; E = E + evi[j]; G = G + s; O = O + o;\n            if (2 > evi[j]) { W = W + 1; weakNames.push(DIMS[j].name); if (B === -1) { B = j; } }\n            if (o > 0) { overNames.push(DIMS[j].name); }\n        }\n        var worst = 0;\n        for (j = 1; j !== 5; j++) { if (shortf[j] > shortf[worst]) { worst = j; } }\n        var anyGap = shortf[worst] > 0;\n        var wider = false;\n        if (B !== -1) { if (shortf[worst] > shortf[B]) { wider = true; } }\n        var re_ = evi[4]; var rd = des[4];\n\n        var owner = inp.owner || '';\n        owner = owner.replace(\/\\s+\/g, ' ').replace(\/^ | $\/g, '');\n        var ownerOK = false;\n        if (owner.length > 7) { if (owner.indexOf(' ') !== -1) { ownerOK = true; } }\n        var org = (inp.org || '').replace(\/\\s+\/g, ' ').replace(\/^ | $\/g, '');\n        if (!org) { org = 'This organization'; }\n        var when = inp.when || '[DATE]';\n        var l3 = null;\n        var l3raw = (inp.l3 === undefined || inp.l3 === null) ? '' : ('' + inp.l3).replace(\/\\s+\/g, '');\n        if (l3raw !== '') { var pv = parseFloat(l3raw); if (!isNaN(pv)) { if (pv >= 0) { l3 = Math.round(pv); } } }\n        var who = inp.who; var rep = inp.rep;\n\n        \/* ---------- verdict: first matching rule wins ---------- *\/\n        var key = 'partly';\n        if (4 >= E) { if (4 >= D) { key = 'absent'; } }\n        if (key === 'partly') {\n            if (G >= 10) { key = 'theatre'; }\n            else if (G >= 6) { key = 'documented'; }\n            else if (4 >= E) { key = 'barely'; }\n            else if (W >= 3) { key = 'thin'; }\n            else if (B === -1) { if (2 >= G) { key = (O >= 4) ? 'informal' : 'enforced'; } }\n        }\n        var V = {\n          absent: ['Governance is absent',\n            'Nothing meaningful is designed and nothing meaningful is operating. This is not a gap between design and practice, because there is almost nothing on either side of it. It is a starting position, and a serious one if any system in your estate runs at L3 autonomy or above, because those systems are running without an inventory, a classification, an enforced control, a usable record or a way back.'],\n          theatre: ['Governance is theatre',\n            'An elaborate design with almost no operating evidence. This is worse than a modest design honestly evidenced, because a documented control you cannot demonstrate establishes the standard you were holding yourself to and then shows you were not meeting it. Auditors, regulators and claimants all read it that way.'],\n          documented: ['Governance is documented, not operating',\n            'Governance exists on paper and cannot be demonstrated in practice. This is the state that looks complete in a policy library and fails under examination.'],\n          barely: ['Governance is barely operating',\n            'Some governance is designed, but almost none of it can be demonstrated. At this level the design gives little protection and some exposure, because it records the standard you were aiming for.'],\n          thin: ['Governance is thin',\n            'Some controls operate, but three or more of the five dimensions cannot be evidenced at a usable level. The chain breaks early and more than once, so the parts that do work cannot be relied upon by a board or an auditor.'],\n          enforced: ['Governance is enforced',\n            'Every dimension can be evidenced at a usable level and evidence keeps pace with design. Governance is in the architecture rather than in a document. The work now is protecting it, because the gap widens under delivery pressure rather than announcing itself.' +\n            ((12 > E) ? ' Evidence sits at the minimum usable level in some dimensions, so this is enforcement at a basic level: real, and worth deepening.' : '')],\n          informal: ['Governance is operating informally',\n            'Controls operate across the chain, but more of it runs on practice than on design. That works while the people doing it stay. An auditor tests design as well as operation, and a control that is not written down cannot be handed over, trained or defended.'],\n          partly: ['Governance is partly enforced',\n            'Some controls operate and some are only written. ' +\n            ((B !== -1) ? ('The chain breaks at ' + DIMS[B].name + ', so everything after it is provisional however well it scores. ') : ('The evidence gap is ' + G + ', which is too wide to call enforced. ')) +\n            'The weak parts will be discovered during an incident rather than before it unless they are closed deliberately.']\n        };\n        var vcls = RED[key] ? 'vbad' : ((key === 'enforced') ? 'vgood' : 'vmid');\n        var out = { key: key, label: V[key][0], read: V[key][1], vcls: vcls, D: D, E: E, G: G, O: O, W: W, B: B,\n                    worst: worst, anyGap: anyGap, shortf: shortf, des: des, evi: evi, owner: owner, ownerOK: ownerOK, org: org, when: when, l3: l3 };\n\n        out.vtop = 'The verdict for ' + org;\n        out.vscore = 'Designed ' + D + ' of 15, which is ' + dBand(D) + '. Evidenced ' + E + ' of 15, which is ' + evBand(E) +\n            '. Evidence gap ' + G + ((O > 0) ? (', with evidence running ahead of design by ' + O + ' elsewhere') : '') +\n            '. The verdict weighs the level as well as the gap, because a small gap on a small design is not assurance.';\n\n        \/* ---------- bar note ---------- *\/\n        if ((D + E) === 0) {\n            out.barnote = ['warn', 'Nothing is designed and nothing is evidenced in any of the five dimensions. There is no gap only because there is nothing on either side of it.'];\n        } else if (anyGap) {\n            out.barnote = ['info', 'The widest shortfall is in ' + DIMS[worst].name + ', at ' + plural(shortf[worst], 'point', 'points') +\n                '. That is where the documentation and the reality have parted company furthest. It is not necessarily what to fix first: the earliest break in the chain usually matters more than the widest gap.'];\n        } else if (B !== -1) {\n            out.barnote = ['warn', 'Design and evidence agree, but at a level too low to rely on: ' + plural(W, 'dimension evidences', 'dimensions evidence') +\n                ' below 2. Agreement at a low level is not assurance.'];\n        } else if (O > 0) {\n            out.barnote = ['caution', 'Evidence meets or exceeds design in every dimension, and runs ahead of it in ' + listNames(overNames) +\n                '. Those controls work on practice rather than on design.'];\n        } else {\n            out.barnote = ['ok', 'Evidence keeps pace with design in every dimension, and every dimension evidences at 2 or above.'];\n        }\n\n        \/* ---------- gap panel ---------- *\/\n        out.gapText = '' + G;\n        out.gapCls = (G >= 3 || RED[key]) ? 'neg' : '';\n        out.worstText = anyGap ? DIMS[worst].name : ((D === 0) ? 'Nothing designed' : 'None');\n        var offsetNote = '';\n        if (O > 0) { if (G > 0) { offsetNote = ' Evidence exceeds design elsewhere by ' + plural(O, 'point', 'points') + '. That is not netted off, because informal practice in one dimension does not document a control in another.'; } }\n        if (2 >= G) {\n            if (4 >= D) {\n                out.gapNote = ['warn', 'A gap of ' + G + ' is small only because very little is designed, ' + D + ' of 15. A small gap on a small design is not assurance, and it should never be reported as one.' + offsetNote];\n            } else if (B !== -1) {\n                out.gapNote = ['caution', 'A gap of ' + G + ' means design and evidence mostly agree, but the chain still breaks at ' + DIMS[B].name + ', so the agreement is not enough to rely on.' + offsetNote];\n            } else {\n                out.gapNote = ['ok', 'A gap of ' + G + ' is within tolerance and every dimension evidences at a usable level. Report the gap alongside the evidence total, never on its own.' + offsetNote];\n            }\n        } else if (6 > G) {\n            out.gapNote = ['caution', 'A gap of ' + G + ' means a meaningful share of what you have designed cannot currently be demonstrated. That is recoverable deliberately, and much cheaper to close now than during an examination.' + offsetNote];\n        } else {\n            out.gapNote = ['warn', 'A gap of ' + G + ' out of a possible 15 means much of your governance exists as design rather than as operating evidence. The design makes this worse rather than better: it establishes the standard you were holding yourself to, and the evidence shows you were not meeting it.' + offsetNote];\n        }\n\n        \/* ---------- recoverability ---------- *\/\n        out.recovText = RLAB[re_];\n        out.recovCls = (re_ >= 2) ? '' : 'neg';\n        var rtext = '';\n        var rcls = 'warn';\n        if (re_ === 0) { rtext = 'This is the answer Chapter 5 predicts for any L4 or L5 agent without explicit recoverability checks, and it is the fifth question a director should ask. Note what it means: you could not identify the actions, which makes this an audit failure before it is a recoverability failure.'; }\n        if (re_ === 1) { rtext = 'You can identify the actions and cannot reverse most of them. That is better than not knowing, and it still ends a board conversation badly. Bound the action space by what is recoverable rather than by what policy permits, so the question becomes a property of the system rather than a survey.'; }\n        if (re_ === 2) { rcls = 'caution'; rtext = 'Most are reversible and you know which are not. That is defensible, and worth saying in exactly those terms, because knowing which actions are irreversible is the substance of the control. The remaining work is making sure those irreversible actions were approved by a named human rather than simply permitted.'; }\n        if (re_ === 3) { rcls = 'ok'; rtext = 'The strongest available answer. Keep the documentation of the approved irreversible actions, because that record is what turns this from an assertion into evidence.'; }\n        if (rd >= 3) { if (2 > re_) { rtext = rtext + ' It also contradicts your design answer, which says recoverability is enforced at execution. See the coherence checks.'; } }\n        out.recovNote = [rcls, rtext];\n\n        \/* ---------- chain ---------- *\/\n        out.chainRows = [];\n        for (j = 0; j !== 5; j++) {\n            var meaning = 'Sound enough to support the dimension after it.';\n            var rc = (shortf[j] >= 2) ? 'mid' : 'good';\n            if (2 > evi[j]) { meaning = DIMS[j].depends; rc = 'bad'; }\n            else if (B !== -1) { if (j > B) { meaning = 'Scores at a usable level, but sits after the break at ' + DIMS[B].name + ', so treat it as provisional.'; rc = 'mid'; } }\n            out.chainRows.push([rc, (j + 1) + '. ' + DIMS[j].name, des[j] + ' \/ 3', evi[j] + ' \/ 3', (shortf[j] > 0) ? ('' + shortf[j]) : 'none', meaning]);\n        }\n        if (B === -1) {\n            out.chainNote = ['ok', 'No break. Every dimension evidences at 2 or above, so the chain holds end to end and each score is supported by the one before it.'];\n        } else {\n            var later = [];\n            for (j = B + 1; j !== 5; j++) { if (2 > evi[j]) { later.push(DIMS[j].name); } }\n            out.chainNote = ['warn', 'The chain breaks at ' + DIMS[B].name + ', dimension ' + (B + 1) + ' of five. ' + DIMS[B].depends +\n                ((later.length > 0) ? (' ' + listNames(later) + ((later.length === 1) ? ' is' : ' are') + ' also below 2.') : '') +\n                ' Every score after the break is provisional, because evidence produced downstream of a broken dimension cannot be relied upon.'];\n        }\n\n        \/* ---------- what to fix first, and the decision ---------- *\/\n        out.actions = [];\n        var decision = '';\n        if (key === 'absent') {\n            out.actions.push(['warn', 'Start with Inventory. ', DIMS[0].fix + ' Do not write policy first: a policy written before the inventory governs only the systems you already knew about. Retake this test when the inventory exists.']);\n            decision = 'Authorise a discovery sweep with a named owner and a completion date, then retake this test. No other governance decision can be made soundly until the inventory exists.';\n        } else if (B !== -1) {\n            out.actions.push(['warn', 'Fix ' + DIMS[B].name + ' first. ', DIMS[B].fix]);\n            if (wider) {\n                out.actions.push(['info', 'Why not ' + DIMS[worst].name + ', which has a wider gap. ',\n                    ((worst > B) ? ('It sits later in the chain than ' + DIMS[B].name + '. ') : ('Its evidence still holds at 2 or above, while ' + DIMS[B].name + ' does not. ')) +\n                    'Improving it while ' + DIMS[B].name + ' is broken produces evidence that looks better and is not more reliable. Fix the order, then the width.']);\n            }\n            if (key === 'theatre' || key === 'documented') {\n                out.actions.push(['info', 'Pause new policy work. ', 'Every control written now, before evidence catches up, widens the gap this test measures and adds to the standard you cannot show you meet.']);\n            }\n            decision = 'Fix ' + DIMS[B].name + ' first' + (wider ? (', ahead of ' + DIMS[worst].name + ', which has a wider gap,') : '') +\n                ' because it is the earliest dimension that cannot be evidenced and everything after it is provisional until it is closed.' +\n                ((key === 'theatre' || key === 'documented') ? ' Pause new policy work until evidence catches up.' : '');\n        } else if (key === 'informal') {\n            out.actions.push(['caution', 'Write down what already works. ', 'Evidence runs ahead of design in ' + listNames(overNames) +\n                '. Document those controls as they actually operate and name an owner for each. That moves the verdict towards enforced without new operational work.']);\n            decision = 'Fund the documentation of controls that already operate in ' + listNames(overNames) + ', so they survive a change of people and pass an audit of design.';\n        } else if (key === 'enforced') {\n            if (anyGap) {\n                out.actions.push(['info', 'Close the remaining gap in ' + DIMS[worst].name + '. ', DIMS[worst].fix]);\n                decision = 'Note the position as enforced, close the remaining gap in ' + DIMS[worst].name + ', and adopt this reading as a quarterly measure.';\n            } else {\n                out.actions.push(['ok', 'No single fix to name. ', 'Repeat this reading in a quarter with the same people, because the gap widens quietly under delivery pressure and a single reading cannot show that.']);\n                decision = 'Note the position as enforced and adopt this reading as a quarterly measure, because the value is in the trend rather than a single result.';\n            }\n        } else {\n            out.actions.push(['info', 'Close the widest gap: ' + DIMS[worst].name + '. ', DIMS[worst].fix]);\n            decision = 'Fund the work to close the evidence gap in ' + DIMS[worst].name + ', and repeat this reading quarterly so the gap cannot widen unobserved.';\n        }\n        out.decision = decision;\n\n        \/* ---------- population ---------- *\/\n        var popText = '';\n        var popEstimate = false;\n        if (l3 === null) { popText = 'Not known. The field was left blank, which is itself a finding.'; }\n        else if (evi[0] >= 2) { popText = plural(l3, 'system', 'systems') + ', from the register.'; }\n        else { popText = plural(l3, 'system', 'systems') + ' entered, but not producible from a register this afternoon, so treat the figure as an estimate.'; popEstimate = true; }\n        out.popText = popText;\n\n        \/* ---------- board questions ---------- *\/\n        var q1 = '';\n        if (evi[0] >= 2) { q1 = 'We can produce the register and the count. ' + ((l3 === null) ? 'The count was not entered in this reading.' : (plural(l3, 'system', 'systems') + ' at L3 or above.')); }\n        else { q1 = 'We could not produce a current count from a register this afternoon.' + ((l3 !== null) ? (' The figure of ' + l3 + ' in this paper is an estimate.') : '') + ' That is the first finding of this assessment.'; }\n        out.boardRows = [\n          ['What is the inventory of AI systems currently in production, and which of them operate at L3 or higher autonomy?', q1],\n          ['What governance frameworks are in place for those systems, and how are they enforced architecturally rather than only documented in policy?',\n           (evi[2] >= 2) ? ((des[2] >= 2) ? 'Gates are written down and enforced in the deployment path, so a non compliant deployment is blocked rather than discussed.' : 'Gates are enforced in the deployment path, but the rules they enforce are not written down, so they depend on the people who built them.')\n                         : ((des[2] >= 2) ? 'A charter and gates exist. Enforcement is by policy, which means a determined team could proceed without meeting them. That is the honest answer.'\n                                          : 'None to describe. Governance rules are neither written down nor enforced.')],\n          ['What is the cost per compliant decision trajectory for the AI portfolio, and how does it compare to benchmarks?',\n           'Not measured by this instrument. Run the Cost Per Compliant Decision Calculator and bring the challenged case, not the headline, because the headline is what a finance committee will take apart.'],\n          ['What is the regulatory exposure register, and which obligations are coming into force in the next twelve months?',\n           'Not measured by this instrument. The Regulatory Obligation Register and the EU AI Act Deadline Checker answer this per system, and the distinction that matters is which obligations are live now as against deferred to December 2027 or August 2028.'],\n          ['If every autonomous agent action over the past thirty days had to be reversed today, which ones could be?',\n           RLAB[re_] + '. ' + ((re_ >= 2) ? 'We know which could not, which is the substance of the control.' : 'This is the answer to change before a director asks it.')]\n        ];\n        if (rep === 'series') {\n            out.boardNote = ['ok', 'You have reported the same structured measures for three or more consecutive quarters, so a board can see direction rather than a level. That is also the strongest defence against the argument that oversight was not documented.'];\n        } else {\n            out.boardNote = [(rep === 'no') ? 'warn' : 'caution',\n                ((rep === 'no') ? 'None of this has reached the board in a structured form. ' : ((rep === 'adhoc') ? 'This has reached the board only inside general updates. ' : 'This has reached the board once in a structured form. ')) +\n                'The line of authority that treats a failure to monitor as the exposure asks whether the risk was monitored, recorded and escalated. Two of those three are reporting. Report the same measures next quarter even if nothing improved, because the trend is the artefact.'];\n        }\n\n        \/* ---------- coherence: every item carries a kind ---------- *\/\n        var coh = [];\n        if (D >= 12) { if (6 > E) { coh.push(['finding', 'warn', 'A design total of ' + D + ' against an evidence total of ' + E + ' is the pattern this instrument exists to detect. It does not mean you are partway there. It means you have published a standard and cannot show you meet it.']); } }\n        if (O > 0) {\n            if (G > 0) { coh.push(['finding', 'caution', 'Evidence exceeds design in ' + listNames(overNames) + ' and falls short of it elsewhere. The two do not cancel. Where evidence runs ahead of design, controls depend on individual judgement; where design runs ahead of evidence, the control is on paper. Both need work, in opposite directions.']); }\n            else { coh.push(['finding', 'caution', 'Evidence exceeds design in ' + listNames(overNames) + ', which means those controls operate through the judgement of individuals rather than a designed mechanism. Write down what is already happening: it is the cheapest design work available.']); }\n        }\n        if (evi[3] >= 2) { if (2 > evi[0]) { coh.push(['contradiction', 'warn', 'You report being able to reconstruct a decision, while being unable to produce a current count of your systems. Reconstructing a decision on a system you cannot list means you happen to know where to look for the systems you already know about, which is the discovery problem in its purest form.']); } }\n        if (rd >= 3) { if (2 > re_) { coh.push(['contradiction', 'warn', 'You report recoverability as enforced at execution, and also that you could reverse ' + RLAB[re_].toLowerCase() + ' of last month\\'s autonomous actions. Both cannot be true. One of the two answers is generous.']); } }\n        if (l3 !== null) { if (l3 > 0) { if (2 > evi[0]) { coh.push(['contradiction', 'warn', 'You entered ' + plural(l3, 'system', 'systems') + ' at L3 or above, and also said you could not produce a current count from a register. Both cannot be true of the same figure, so the board paper labels it as an estimate.']); } } }\n        if (rep === 'struct' || rep === 'series') { if (2 > evi[0]) { coh.push(['contradiction', 'warn', 'You report structured measures to the board, but could not produce a count of your systems, which is the first number any such report rests on. Check what the board has actually been shown.']); } }\n        if (l3 === null) { coh.push(['finding', 'caution', 'The number of systems at L3 or above was left blank, so it is recorded as not known. It is the first thing a director will ask.']); }\n        else if (l3 === 0) { if (evi[0] >= 2) { coh.push(['caveat', 'caution', 'You report a usable inventory and no systems at L3 or above. If that is correct, this test is largely precautionary for you. If it is not, the inventory is not finding your autonomous systems, which is the more common explanation and the one worth ruling out.']); } }\n        if (who === 'alone') { coh.push(['caveat', 'caution', 'Answered by one person from their own knowledge. That is a legitimate use of a self diligence framework and not a reading to take to a board, because evidence scores tend to fall when the people who would have to produce the evidence are in the room.']); }\n        else if (who === 'tested') { coh.push(['sound', 'ok', 'Evidence was attempted live during the session rather than estimated, which makes the evidence column worth considerably more than a judgement.']); }\n        else { coh.push(['caveat', 'caution', 'Answered by a group rather than tested. The next improvement is not a better score: it is producing one piece of evidence live and timing how long it takes.']); }\n        if (!owner) { coh.push(['finding', 'warn', 'Nobody is named as signing this reading, which makes it a private opinion rather than an assessment.']); }\n        else if (!ownerOK) { coh.push(['finding', 'warn', 'The signatory is recorded as \"' + owner + '\", which will not do for a reading that may be shown to a board. A full name and a role is the minimum.']); }\n        else { coh.push(['sound', 'ok', 'A named signatory with a role is recorded, which is what makes a self assessment an artefact rather than an opinion.']); }\n        out.coh = coh;\n\n        \/* ---------- confidence in the reading (not in the governance) ---------- *\/\n        var pass = []; var fail = [];\n        if (who === 'cross' || who === 'tested') { pass.push('More than one function took part, so the evidence column is not a single view.'); }\n        else { fail.push('Fewer than two functions took part, so the evidence scores carry a single view bias.'); }\n        if (who === 'tested') { pass.push('Evidence was actually produced during the session rather than estimated.'); }\n        else { fail.push('Evidence was estimated rather than produced, which makes those the scores most likely to be generous.'); }\n        if (rep === 'struct' || rep === 'series') { pass.push('The position has reached the board in a structured form at least once.'); }\n        else { fail.push('The position has not reached the board in a structured form, so there is no documented oversight to point at.'); }\n        if (ownerOK) { pass.push('A named signatory with a role owns this reading.'); }\n        else { fail.push('No signatory recorded to a standard a board would accept.'); }\n        var n4 = pass.length;\n        var grade = 'D'; var glabel = 'Not yet presentable';\n        if (n4 === 4) { grade = 'A'; glabel = 'Board ready'; }\n        if (n4 === 3) { grade = 'B'; glabel = 'Defensible'; }\n        if (n4 === 2) { grade = 'C'; glabel = 'Challengeable'; }\n        out.grade = grade; out.glabel = glabel; out.pass = pass; out.fail = fail;\n        if (grade === 'A') { out.confNote = ['ok', 'All four tests pass. The reading itself is credible enough to take to a board, whatever it says about the governance.']; }\n        else if (grade === 'B') { out.confNote = ['caution', 'Three of four tests pass. Close the remaining one before circulating.']; }\n        else if (grade === 'C') { out.confNote = ['caution', 'Two of four tests pass. Retake it with the people who would produce the evidence before presenting anything.']; }\n        else { out.confNote = ['warn', 'Fewer than two tests pass. This is a private working note. Retaking it with risk or audit in the room, and attempting one piece of evidence live, would move it two grades in an afternoon.']; }\n\n        \/* ---------- auditor ---------- *\/\n        out.chalText = E + ' \/ 15';\n        out.chalBand = cap(evBand(E));\n        out.chalCls = (E >= 10) ? '' : 'neg';\n        if (E >= 13) {\n            out.chalNote = ['ok', 'Setting design aside entirely, the evidence alone reads as ' + evBand(E) + '. That is the standard an assurance opinion applies.'];\n        } else if (4 >= D) {\n            out.chalNote = ['warn', 'An auditor tests operating effectiveness, so this is the number that would appear in a finding: ' + E + ' of 15, which reads as ' + evBand(E) +\n                '. There is also very little design to test it against, ' + D + ' of 15, so the finding would be the absence of a control framework rather than a shortfall against one.'];\n        } else {\n            out.chalNote = [(E >= 6) ? 'caution' : 'warn', 'An auditor tests operating effectiveness rather than design, so this is the number that would appear in a finding: ' + E + ' of 15, which reads as ' + evBand(E) +\n                '. Your design total of ' + D + ' would appear only as the standard against which the shortfall is measured. Present the evidence figure rather than the design figure.'];\n        }\n\n        \/* ---------- signature and ask ---------- *\/\n        var signedAsk = ownerOK ? (owner + ', on ' + when + '.') :\n            (owner ? ('Recorded as \"' + owner + '\", which is not a signature a board would accept. A full name and a role is the minimum.')\n                   : 'NOT SIGNED. An unsigned self assessment is a private opinion.');\n        var gapAsk = '';\n        if (anyGap) { gapAsk = plural(G, 'point', 'points') + ' of governance exist on paper and not in evidence, widest in ' + DIMS[worst].name + '.'; }\n        else if (4 >= D) { gapAsk = 'None, but only because almost nothing is designed. This is not a positive finding.'; }\n        else if (B !== -1) { gapAsk = 'None, but design and evidence agree at a level too low to rely on.'; }\n        else if (O > 0) { gapAsk = 'None. Evidence meets or exceeds design everywhere, and runs ahead of it in ' + listNames(overNames) + '.'; }\n        else { gapAsk = 'None. Evidence keeps pace with design in every dimension.'; }\n        var chainAsk = (B === -1) ? 'Nowhere. Every dimension evidences at 2 or above.'\n            : (DIMS[B].name + ', dimension ' + (B + 1) + ' of five.' + ((W > 1) ? (' ' + plural(W - 1, 'later dimension is', 'later dimensions are') + ' also below 2.') : '') + ' Scores after the break are provisional.');\n        out.ask = [\n            ['Decision requested', decision],\n            ['Verdict', V[key][0] + '. Designed ' + D + ' of 15, ' + dBand(D) + '. Evidenced ' + E + ' of 15, ' + evBand(E) + '.'],\n            ['Evidence gap', gapAsk],\n            ['Where the chain breaks', chainAsk],\n            ['Systems at L3 or above', popText],\n            ['Recoverability', 'If every autonomous action over the past thirty days had to be reversed today: ' + RLAB[re_].toLowerCase() + '.'],\n            ['Auditor reading', E + ' of 15 on evidence alone, which reads as ' + evBand(E) + '.'],\n            ['Confidence in this reading', grade + ', ' + glabel.toLowerCase() + '. ' + n4 + ' of 4 tests pass.'],\n            ['Signed by', signedAsk]\n        ];\n        out.askh = 'The ask, for ' + org;\n\n        \/* ---------- board paper ---------- *\/\n        var L = [];\n        L.push('THE FRIDAY AFTERNOON TEST');\n        L.push('Organization or unit: ' + org);\n        L.push('Reading taken ' + when + '. Signed by ' + (ownerOK ? owner : (owner ? ('\"' + owner + '\", not to board standard: replace with [NAME, ROLE]') : '[NAME, ROLE]')) + '.');\n        L.push('Method: the chief information officer self diligence framework from When Agents Rule, Chapter 16, with the Recoverability Test from Chapter 5.');\n        L.push('Systems at L3 autonomy or above: ' + popText);\n        L.push('');\n        L.push('VERDICT: ' + V[key][0].toUpperCase() + '.');\n        L.push('  ' + V[key][1]);\n        L.push('');\n        L.push('THE ASK.');\n        for (j = 0; j !== out.ask.length; j++) { L.push('  ' + out.ask[j][0] + ': ' + out.ask[j][1]); }\n        L.push('');\n        L.push('DESIGNED AGAINST EVIDENCED, BY DIMENSION.');\n        for (j = 0; j !== 5; j++) {\n            var tag = '';\n            if (j === B) { tag = '  CHAIN BREAKS HERE.'; }\n            else if (2 > evi[j]) { tag = '  ALSO BELOW 2.'; }\n            else if (B !== -1) { if (j > B) { tag = '  PROVISIONAL.'; } }\n            L.push('  ' + (j + 1) + '. ' + DIMS[j].name + ': designed ' + des[j] + ' of 3, evidenced ' + evi[j] + ' of 3, shortfall ' + shortf[j] + '.' + tag);\n        }\n        L.push('  Totals: designed ' + D + ' of 15, evidenced ' + E + ' of 15, evidence gap ' + G + '.');\n        L.push('  The verdict weighs the level of evidence as well as the gap. A small gap on a small design is not assurance, and a control that is designed but not operating does not fail safe.');\n        L.push('');\n        L.push('THE RECOVERABILITY TEST.');\n        L.push('  If every autonomous agent action over the past thirty days had to be reversed today, which ones could be? ' + RLAB[re_] + '.');\n        L.push('  ' + rtext);\n        L.push('');\n        L.push('THE DEPENDENCY CHAIN.');\n        L.push('  ' + out.chainNote[1]);\n        L.push('');\n        L.push('WHAT TO FIX FIRST.');\n        for (j = 0; j !== out.actions.length; j++) { L.push('  ' + out.actions[j][1] + out.actions[j][2]); }\n        L.push('');\n        L.push('THE FIVE BOARD QUESTIONS, AND WHAT WE WOULD ANSWER TODAY.');\n        for (j = 0; j !== out.boardRows.length; j++) { L.push('  ' + (j + 1) + '. ' + out.boardRows[j][0]); L.push('     ' + out.boardRows[j][1]); }\n        L.push('');\n        L.push('COHERENCE CHECKS.');\n        var KL = { contradiction: 'CONTRADICTION', finding: 'FINDING', caveat: 'CAVEAT', sound: 'SOUND' };\n        for (j = 0; j !== coh.length; j++) { L.push('  ' + KL[coh[j][0]] + ': ' + coh[j][2]); }\n        L.push('');\n        L.push('CONFIDENCE IN THIS READING. Grade ' + grade + ', ' + glabel + '. ' + n4 + ' of 4 tests pass. This grades the reading, not the governance.');\n        for (j = 0; j !== fail.length; j++) { L.push('  Outstanding: ' + fail[j]); }\n        L.push('');\n        L.push('THE READING AN AUDITOR WOULD TAKE. ' + out.chalNote[1]);\n        L.push('');\n        L.push('BASIS AND LIMITS. A structured self assessment, not an audit, an assurance opinion, a certification or a benchmark, and no peer comparison is claimed because no dataset underlies this instrument. The verdict combines the level of operating evidence with the gap between design and evidence; neither is a measure of compliance with any standard. It reflects the answers given, and evidence scores tend to fall when the people who would produce the evidence are present. References to Article 12 and Article 73 are to Regulation (EU) 2024\/1689 as amended by Regulation (EU) 2026\/1744, and whether they apply to a given system is a legal determination for qualified counsel. Not legal, technical or financial advice.');\n        out.paper = L.join('\\n');\n        out.kinds = KL;\n        return out;\n    }\n\/* MODEL END *\/\n\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 h = root.querySelector('input[name=\"' + name + '\"]:checked');\n        if (!h) { return null; }\n        return h.value;\n    }\n    var ALLQ = [];\n    var q = 0;\n    for (q = 0; q !== DIMS.length; q++) { ALLQ.push(DIMS[q].d); ALLQ.push(DIMS[q].e); }\n    ALLQ.push('q-ev'); ALLQ.push('q-board');\n    function refresh() {\n        var n = 0; var j = 0;\n        for (j = 0; j !== ALLQ.length; j++) { if (pick(ALLQ[j]) !== null) { n = n + 1; } }\n        el('fa-prog').firstChild.textContent = '' + n;\n        el('fa-progl').textContent = ' of ' + ALLQ.length + ' answered';\n        el('fa-fill').style.width = Math.round(n \/ ALLQ.length * 100) + '%';\n        if (n === ALLQ.length) { el('fa-go').removeAttribute('disabled'); }\n        else { el('fa-go').setAttribute('disabled', 'disabled'); }\n    }\n    function note(id, pair) { var x = el(id); x.className = 'fa-note ' + pair[0]; x.textContent = pair[1]; }\n    function today() {\n        var d = new Date();\n        var m = d.getMonth() + 1; var dd = d.getDate();\n        return d.getFullYear() + '-' + ((m > 9) ? '' : '0') + m + '-' + ((dd > 9) ? '' : '0') + dd;\n    }\n\n    function render() {\n        var j = 0;\n        var des = []; var evi = [];\n        for (j = 0; j !== 5; j++) {\n            var dv = parseInt(pick(DIMS[j].d), 10); var ev = parseInt(pick(DIMS[j].e), 10);\n            des.push(isNaN(dv) ? 0 : dv); evi.push(isNaN(ev) ? 0 : ev);\n        }\n        var r = assess({ des: des, evi: evi, who: pick('q-ev'), rep: pick('q-board'), owner: el('fa-owner').value,\n                         org: el('fa-org').value, l3: el('fa-l3').value, when: el('fa-date').value });\n\n        el('fa-verdict').className = 'fa-verdict ' + r.vcls;\n        el('fa-vtop').textContent = r.vtop;\n        el('fa-vname').textContent = r.label;\n        el('fa-vscore').textContent = r.vscore;\n        el('fa-vread').textContent = r.read;\n\n        var bars = el('fa-bars'); clear(bars);\n        for (j = 0; j !== 5; j++) {\n            var wrap = mk('div', null); wrap.style.marginBottom = '18px';\n            var pairs = [['designed', r.des[j], 'f1', ''], ['evidenced', r.evi[j], (r.evi[j] >= 3) ? 'f2' : ((2 > r.evi[j]) ? 'f0' : 'f1'), (r.shortf[j] >= 2) ? ('short by ' + r.shortf[j]) : '']];\n            var p = 0;\n            for (p = 0; p !== 2; p++) {\n                var row = mk('div', 'fa-brow');\n                row.appendChild(mk('div', 'fa-blabel', DIMS[j].name + ', ' + pairs[p][0]));\n                var tr = mk('div', 'fa-btrack');\n                var fl = mk('div', 'fa-bfill ' + pairs[p][2]);\n                fl.style.width = Math.round(pairs[p][1] \/ 3 * 100) + '%';\n                tr.appendChild(fl); row.appendChild(tr);\n                row.appendChild(mk('div', 'fa-bval', pairs[p][1] + ' \/ 3'));\n                row.appendChild(mk('div', 'fa-bbind', pairs[p][3]));\n                wrap.appendChild(row);\n            }\n            bars.appendChild(wrap);\n        }\n        note('fa-barnote', r.barnote);\n\n        el('fa-gap').textContent = r.gapText; el('fa-gap').className = 'fa-big ' + r.gapCls;\n        el('fa-worst').textContent = r.worstText;\n        note('fa-gapnote', r.gapNote);\n        el('fa-recov').textContent = r.recovText; el('fa-recov').className = 'fa-big ' + r.recovCls;\n        note('fa-recovnote', r.recovNote);\n\n        var ct = el('fa-chain'); clear(ct);\n        for (j = 0; j !== r.chainRows.length; j++) {\n            var trr = document.createElement('tr'); trr.className = r.chainRows[j][0];\n            trr.appendChild(mk('td', null, r.chainRows[j][1]));\n            trr.appendChild(mk('td', 'num', r.chainRows[j][2]));\n            trr.appendChild(mk('td', 'num', r.chainRows[j][3]));\n            trr.appendChild(mk('td', 'num', r.chainRows[j][4]));\n            trr.appendChild(mk('td', null, r.chainRows[j][5]));\n            ct.appendChild(trr);\n        }\n        note('fa-chainnote', r.chainNote);\n\n        var act = el('fa-actions'); clear(act);\n        for (j = 0; j !== r.actions.length; j++) {\n            var b = mk('div', 'fa-note ' + r.actions[j][0]);\n            b.appendChild(mk('b', null, r.actions[j][1]));\n            b.appendChild(document.createTextNode(r.actions[j][2]));\n            act.appendChild(b);\n        }\n\n        var bt = el('fa-board'); clear(bt);\n        for (j = 0; j !== r.boardRows.length; j++) {\n            var trb = document.createElement('tr');\n            trb.appendChild(mk('td', null, (j + 1) + '. ' + r.boardRows[j][0]));\n            trb.appendChild(mk('td', null, r.boardRows[j][1]));\n            bt.appendChild(trb);\n        }\n        note('fa-boardnote', r.boardNote);\n\n        var ch = el('fa-coherence'); clear(ch);\n        for (j = 0; j !== r.coh.length; j++) {\n            var cb = mk('div', 'fa-note ' + r.coh[j][1]);\n            cb.appendChild(mk('b', null, r.kinds[r.coh[j][0]] + '. '));\n            cb.appendChild(document.createTextNode(r.coh[j][2]));\n            ch.appendChild(cb);\n        }\n\n        el('fa-grade').className = 'fa-grade g' + r.grade; el('fa-grade').textContent = r.grade;\n        el('fa-gradelabel').textContent = r.glabel;\n        var cl = el('fa-conflist'); clear(cl);\n        for (j = 0; j !== r.pass.length; j++) { var lp = mk('li', null, r.pass[j]); lp.style.color = '#14603c'; lp.style.fontSize = '13px'; lp.style.marginBottom = '6px'; cl.appendChild(lp); }\n        for (j = 0; j !== r.fail.length; j++) { var lf = mk('li', null, r.fail[j]); lf.style.color = '#922b21'; lf.style.fontSize = '13px'; lf.style.marginBottom = '6px'; cl.appendChild(lf); }\n        note('fa-confnote', r.confNote);\n\n        el('fa-chal').textContent = r.chalText; el('fa-chal').className = 'fa-big ' + r.chalCls;\n        el('fa-chalband').textContent = r.chalBand;\n        note('fa-chalnote', r.chalNote);\n\n        var al = el('fa-asklist'); clear(al);\n        for (j = 0; j !== r.ask.length; j++) {\n            var ar = mk('div', 'fa-askrow');\n            ar.appendChild(mk('b', null, r.ask[j][0]));\n            ar.appendChild(mk('span', null, r.ask[j][1]));\n            al.appendChild(ar);\n        }\n        el('fa-askh').textContent = r.askh;\n        el('fa-cardtext').textContent = r.paper;\n\n        var res = el('fa-result');\n        res.className = 'fa-result on';\n        goTo(res);\n    }\n\n    var inputs = root.querySelectorAll('input, select');\n    var k = 0;\n    for (k = 0; k !== inputs.length; k++) {\n        inputs[k].addEventListener('change', refresh);\n        inputs[k].addEventListener('input', refresh);\n        inputs[k].addEventListener('click', refresh);\n    }\n    if (!el('fa-date').value) { el('fa-date').value = today(); }\n    el('fa-go').addEventListener('click', render);\n    el('fa-print').addEventListener('click', function () { window.print(); });\n    el('fa-again').addEventListener('click', function () { el('fa-result').className = 'fa-result'; goTo(root); });\n    el('fa-clearbtn').addEventListener('click', function () {\n        var j2 = 0;\n        var rs = root.querySelectorAll('input[type=\"radio\"]');\n        for (j2 = 0; j2 !== rs.length; j2++) { rs[j2].checked = false; }\n        el('fa-org').value = ''; el('fa-owner').value = ''; el('fa-l3').value = '';\n        el('fa-result').className = 'fa-result';\n        refresh(); goTo(root);\n    });\n    el('fa-copy').addEventListener('click', function () {\n        var txt = el('fa-cardtext').textContent;\n        var btn = el('fa-copy');\n        function done(ok) {\n            btn.textContent = ok ? 'Copied' : 'Select the text above to copy';\n            window.setTimeout(function () { btn.textContent = 'Copy the paper'; }, 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>A CONTROL THAT IS DESIGNED AND NOT OPERATING DOES NOT FAIL SAFE. It reports green. Cross Cutting \/\/ When Agents Rule The Friday Afternoon Test Five dimensions, each scored twice: is the control designed, and could you produce the evidence that it operated this afternoon. The gap between those two numbers is the answer to [&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-882","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.opey.org\/opeyit\/index.php?rest_route=\/wp\/v2\/pages\/882","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=882"}],"version-history":[{"count":3,"href":"https:\/\/www.opey.org\/opeyit\/index.php?rest_route=\/wp\/v2\/pages\/882\/revisions"}],"predecessor-version":[{"id":899,"href":"https:\/\/www.opey.org\/opeyit\/index.php?rest_route=\/wp\/v2\/pages\/882\/revisions\/899"}],"wp:attachment":[{"href":"https:\/\/www.opey.org\/opeyit\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=882"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}