Spaces:
Sleeping
Sleeping
File size: 88,887 Bytes
5d47b47 d647970 5d47b47 d647970 5d47b47 d647970 5d47b47 d647970 5d47b47 d647970 5d47b47 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 | <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>STEM BIO-AI — yorkeccak/bio</title>
<style>
:root{
--navy:#0D1F3C;
--teal:#1A6FA8;
--green:#1A7A47;
--amber:#C07B10;
--red:#9B2335;
--purple:#5B3D8A;
--slate:#2D4A6E;
--bg:#F8FAFC;
--panel:#FFFFFF;
--line:#E4EBF5;
--muted:#5A6B80;
--tier:#9B2335;
--shadow-soft:0 10px 28px rgba(13,31,60,.08);
--shadow-strong:0 20px 48px rgba(13,31,60,.16);
--radius:18px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
font-family:"Segoe UI Variable Text","Segoe UI",ui-sans-serif,sans-serif;
background:
radial-gradient(circle at top left, rgba(26,111,168,.09), transparent 28%),
linear-gradient(180deg, #f5f8fc 0%, #F8FAFC 42%, #eef3f9 100%);
color:#0D1F3C;
font-size:14px;
line-height:1.6;
}
h1,h2,h3,.stage-name,.metric-value,.tier{
font-family:"Iowan Old Style","Palatino Linotype","Book Antiqua",Georgia,serif;
}
.nav{
position:sticky;top:0;z-index:60;
background:rgba(255,255,255,.86);
backdrop-filter:blur(14px);
display:flex;justify-content:space-between;align-items:center;gap:16px;
border-bottom:1px solid rgba(13,31,60,.08);
box-shadow:0 8px 24px rgba(13,31,60,.06);
padding-right:16px;
}
.nav-links{display:flex;gap:4px;overflow-x:auto;flex:1;min-width:0}
.nav-brand{display:grid;justify-items:end;flex-shrink:0;white-space:nowrap;padding-left:12px;border-left:1px solid rgba(13,31,60,.08)}
.nav-brand strong{font-size:11px;letter-spacing:.08em;color:#0D1F3C}
.nav-brand span{font-size:10px;color:#5A6B80;font-weight:700}
.nav-link{
padding:14px 18px;color:#5A6B80;font-size:12px;font-weight:700;
text-decoration:none;transition:color .2s,background .2s,border-color .2s;
border-bottom:3px solid transparent;white-space:nowrap;
}
.nav-link:hover{color:#0D1F3C;background:rgba(13,31,60,.04);transform:translateY(-1px)}
.nav-link.active{color:#0D1F3C;border-bottom-color:#1A6FA8}
.hero{
background:
radial-gradient(circle at top right, rgba(255,255,255,.35), transparent 28%),
radial-gradient(circle at top left, rgba(255,255,255,.26), transparent 26%),
linear-gradient(135deg, #2B547B 0%, #3C6C96 46%, #6E9FBE 100%);
color:#fff;
padding:42px 48px 46px;
display:grid;
grid-template-columns:minmax(180px,220px) 1fr;
gap:30px;
align-items:center;
}
.hero-left{display:flex;justify-content:center}
.hero-right{display:flex;flex-direction:column;gap:10px}
.hero h1{font-size:34px;font-weight:700;line-height:1.1;letter-spacing:-.02em}
.hero-link{color:#fff;text-decoration:none;border-bottom:1px solid transparent}
.hero-link:hover{border-bottom-color:rgba(255,255,255,.72)}
.eyebrow{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:rgba(13,31,60,.62)}
.hero .eyebrow{color:rgba(255,255,255,.82)}
.hero-gauge-card{
background:rgba(255,255,255,.96);
border:1px solid rgba(255,255,255,.45);
border-radius:22px;
padding:18px 20px 14px;
box-shadow:0 18px 42px rgba(8,22,38,.18);
}
.hero-meta{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.tier{
display:inline-block;background:#9B2335;color:#fff;font-size:13px;font-weight:700;
padding:6px 16px;border-radius:999px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);
}
.hero-chip{
display:inline-flex;align-items:center;padding:6px 12px;border-radius:999px;
border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);
color:rgba(255,255,255,.84);font-size:11px;font-weight:700;
}
.lede{font-size:14px;color:rgba(255,255,255,.82);max-width:720px}
.content{max-width:1180px;margin:0 auto;padding:34px 24px 54px}
section{margin-bottom:34px;scroll-margin-top:72px}
.s-title{font-size:24px;font-weight:700;color:#0D1F3C;margin-bottom:16px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.subhead{font-size:22px;font-weight:700;color:#0D1F3C;margin:2px 0 10px}
.panel{
background:#FFFFFF;
border:1px solid rgba(13,31,60,.07);
border-radius:var(--radius);
padding:24px;
box-shadow:var(--shadow-soft);
}
.panel:hover,
.metric-card:hover,
.memo-card:hover,
.stage-card:hover{
box-shadow:var(--shadow-strong);
transform:translateY(-2px);
}
.memo-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}
.integrity-stack,.airi-stack{display:grid;grid-template-columns:1fr;gap:18px}
.memo-card,.stage-card{
background:#FFFFFF;
border:1px solid rgba(13,31,60,.08);
border-radius:var(--radius);
padding:20px 20px 18px;
box-shadow:var(--shadow-soft);
}
.memo-primary{background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%)}
.memo-card:nth-child(1){grid-column:span 6}
.memo-card:nth-child(2),.memo-card:nth-child(3),.memo-card:nth-child(4){grid-column:span 6}
.memo-text{font-size:13px;color:#0D1F3C}
.memo-note,.muted-note,.muted{font-size:11px;color:#5A6B80;line-height:1.5}
.memo-list{padding-left:18px;display:grid;gap:8px;font-size:12px;color:#0D1F3C}
.pill-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.pill{display:inline-flex;align-items:center;padding:5px 11px;border-radius:999px;background:#F8FAFC;border:1px solid #E4EBF5;font-size:11px;font-weight:700;color:#0D1F3C}
.metric-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:18px}
.metric-card{
background:#FFFFFF;border:1px solid rgba(13,31,60,.08);border-radius:16px;
padding:18px 16px;box-shadow:var(--shadow-soft);text-align:center
}
.metric-value{font-size:32px;font-weight:700;line-height:1;margin-bottom:6px}
.metric-label{font-size:11px;color:#5A6B80;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.alert-t0{background:#9B2335;color:#fff;padding:15px 18px;border-radius:14px;margin-bottom:18px;font-weight:700;box-shadow:var(--shadow-soft)}
.decision-panel{padding:18px}
.formula-banner{
margin-bottom:16px;padding:12px 14px;border-radius:14px;background:#eef5fb;
border:1px solid #d7e5f4;font-size:12px;color:#0D1F3C;font-family:"Consolas","SFMono-Regular",monospace
}
.config-pattern{
display:grid;
grid-template-columns:minmax(0,1.2fr) minmax(0,1.8fr);
gap:18px;
margin-bottom:18px;
padding:18px;
border-radius:16px;
background:linear-gradient(180deg,#fbfdff 0%,#f2f7fc 100%);
border:1px solid #dbe6f1;
}
.config-copy{display:grid;gap:10px;align-content:start}
.config-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.config-card{
background:#FFFFFF;
border:1px solid rgba(13,31,60,.08);
border-radius:14px;
padding:12px;
box-shadow:var(--shadow-soft);
}
.config-label{
font-size:10px;
font-weight:800;
letter-spacing:.12em;
text-transform:uppercase;
color:#5A6B80;
margin-bottom:8px;
}
.config-code{
font-family:"Consolas","SFMono-Regular",monospace;
font-size:11px;
line-height:1.55;
white-space:pre-wrap;
color:#0D1F3C;
background:#f7fafc;
border:1px solid #e3ebf3;
border-radius:10px;
padding:10px 11px;
overflow:auto;
}
.stage-deck{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.stage-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px}
.stage-name{font-size:18px;font-weight:700;color:#0D1F3C;line-height:1.2}
.stage-value{font-size:26px;font-weight:700;line-height:1}
.stage-summary{font-size:12px;color:#5A6B80;margin:12px 0 10px}
.focus-list{list-style:none;display:grid;gap:10px}
.focus-line{padding-top:10px;border-top:1px solid rgba(13,31,60,.08)}
.focus-top{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin-bottom:4px}
.focus-key{font-size:12px;font-weight:700;color:#0D1F3C}
.focus-score{font-size:12px;font-weight:800;color:#0D1F3C}
.focus-detail{font-size:11px;color:#5A6B80;line-height:1.55}
.focus-detector{display:inline-flex;margin-right:8px;padding:2px 8px;border-radius:999px;background:#f2f6fa;border:1px solid #E4EBF5;font-family:"Consolas","SFMono-Regular",monospace;color:#5B3D8A}
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.card{background:#FFFFFF;border-radius:14px;box-shadow:var(--shadow-soft);cursor:pointer;transition:box-shadow .2s,transform .15s;overflow:hidden;outline:none;border:1px solid rgba(13,31,60,.06)}
.card:hover{box-shadow:var(--shadow-strong);transform:translateY(-2px)}
.card:focus{box-shadow:0 0 0 3px rgba(26,111,168,.2)}
.card.expanded{box-shadow:var(--shadow-strong)}
.card.expanded .caret{transform:rotate(180deg)}
.caret{display:block;transition:transform .2s}
.faq-block{display:grid;gap:10px;margin-top:16px}
.faq-item{border-top:1px solid rgba(13,31,60,.08);padding-top:10px}
.faq-item summary{cursor:pointer;font-size:12px;font-weight:800;color:#0D1F3C;list-style:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item p{margin-top:8px;font-size:12px;color:#5A6B80}
.tip-icon{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;border-radius:50%;background:#E4EBF5;color:#5A6B80;font-size:10px;font-weight:800;cursor:help;position:relative;flex-shrink:0;vertical-align:middle}
[data-tooltip]{position:relative}
[data-tooltip]::after{
content:attr(data-tooltip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);
background:#0D1F3C;color:#fff;padding:9px 12px;border-radius:10px;font-size:11px;line-height:1.45;white-space:normal;
max-width:280px;width:max-content;opacity:0;pointer-events:none;transition:opacity .2s;z-index:200;text-align:left;
font-weight:500;box-shadow:0 10px 28px rgba(0,0,0,.25)
}
[data-tooltip]:hover::after,[data-tooltip]:focus::after{opacity:1}
.toggle-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.toggle-group{display:flex;border:1px solid #E4EBF5;border-radius:999px;overflow:hidden;width:fit-content;background:#FFFFFF}
.toggle-btn{padding:8px 18px;font-size:12px;font-weight:800;color:#5A6B80;background:#FFFFFF;border:none;cursor:pointer;transition:all .2s}
.toggle-btn:hover{background:#F8FAFC}
.toggle-btn.active{background:#0D1F3C;color:#fff}
.risk-item{padding:12px 15px;border-left:4px solid #C07B10;margin-bottom:10px;background:#FFFFFF;border-radius:0 10px 10px 0;font-size:12px;color:#0D1F3C;line-height:1.5;transition:border-color .2s,box-shadow .2s}
.risk-item:hover{border-left-color:#9B2335;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.domain-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-bottom:18px}
.domain-card{display:flex;align-items:center;gap:10px;padding:11px 14px;background:#FFFFFF;border:1.5px solid #E4EBF5;border-radius:12px;transition:border-color .15s,box-shadow .15s;user-select:none}
.domain-card:hover{border-color:#1A6FA8;box-shadow:var(--shadow-strong);transform:translateY(-2px)}
.domain-card.domain-active{border-color:var(--d-color,#1A6FA8);box-shadow:0 0 0 3px color-mix(in srgb,var(--d-color,#1A6FA8) 18%,transparent)}
.domain-num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;color:#fff;font-size:11px;font-weight:800;flex-shrink:0}
.domain-label{font-size:11px;color:#0D1F3C;font-weight:700;flex:1;line-height:1.3}
.domain-cnt{font-size:12px;font-weight:800;flex-shrink:0}
.airi-tag{font-size:12px;color:#5A6B80;font-weight:500;margin-left:4px}
.airi-kpi{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-top:14px}
.airi-copy{display:grid;gap:8px;min-width:240px}
.metric-inline{font-size:12px;color:#0D1F3C}
.airi-table{width:100%;border-collapse:collapse}
.airi-table th{padding:10px 8px;font-size:11px;text-align:left;color:#5A6B80;background:#F8FAFC;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.airi-table tr:hover{background:#F8FAFC}
.ev-row{transition:background .15s;cursor:default}
.ev-row:hover{background:#F8FAFC}
.filter-chip{display:inline-flex;align-items:center;padding:5px 12px;border-radius:999px;font-size:11px;font-weight:800;cursor:pointer;border:1px solid #E4EBF5;margin:0 6px 8px 0;transition:all .15s;background:#FFFFFF;user-select:none}
.filter-chip.active{background:#0D1F3C;color:#fff;border-color:#0D1F3C}
.filter-chip:hover:not(.active){background:#F8FAFC}
.footer{font-size:11px;color:#5A6B80;text-align:center;padding:24px 0;border-top:1px solid rgba(13,31,60,.08);margin-top:40px}
@media(max-width:1000px){
.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.stage-deck{grid-template-columns:1fr}
.memo-card,.memo-card:nth-child(1),.memo-card:nth-child(2),.memo-card:nth-child(3),.memo-card:nth-child(4){grid-column:span 12}
.config-pattern{grid-template-columns:1fr}
.config-grid{grid-template-columns:1fr}
}
@media(max-width:760px){
.hero{padding:28px 22px;grid-template-columns:1fr}
.content{padding:24px 14px 42px}
.nav{padding-right:10px}
.nav-brand{display:none}
.nav-link{padding:12px 12px;font-size:11px}
.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:520px){
.metric-grid{grid-template-columns:1fr}
.s-title{font-size:21px}
.hero h1{font-size:28px}
}
</style>
</head>
<body>
<nav class="nav" aria-label="Report sections"><div class="nav-links"><a href="#s1" class="nav-link">1. Summary</a><a href="#s2" class="nav-link">2. Decision Path</a><a href="#s3" class="nav-link">3. Code Integrity</a><a href="#s4" class="nav-link">4. AIRI Risk Triggers</a><a href="#s5" class="nav-link">5. Evidence</a></div><div class="nav-brand"><strong>STEM-BIO-AI</strong><span>STEM BIO-AI Local CLI Scan | 1.8.0</span></div></nav>
<header class="hero"><div class="hero-left"><div class="hero-gauge-card"><svg width="160" height="108" viewBox="0 0 160 108" aria-label="Score gauge: 48/100"><path d="M 16,80 A 64,64 0 0,1 144,80" fill="none" stroke="#E4EBF5" stroke-width="14" stroke-linecap="round"/><path d="M 16,80 A 64,64 0 0,1 75.98,16.13" fill="none" stroke="#D65D6D" stroke-width="14" stroke-linecap="round"/><text x="80" y="90" text-anchor="middle" font-size="32" font-weight="700" fill="#D65D6D">48</text><text x="80" y="108" text-anchor="middle" font-size="11" fill="#5A6B80">/ 100</text></svg></div></div><div class="hero-right"><div class="eyebrow">STEM BIO-AI Local Audit | 2026-05-31</div><h1><a href="https://github.com/yorkeccak/bio" class="hero-link" target="_blank" rel="noopener noreferrer">yorkeccak/bio</a></h1><div class="hero-meta"><span class="tier">T1 Quarantine</span><span class="hero-chip">Deterministic local scan</span><span class="hero-chip">No LLM / no network / no runtime execution</span></div><p class="lede">Exploratory review only; no patient-adjacent use.</p></div></header>
<div class="content">
<section id="s1"><h2 class="s-title">Executive Summary</h2><div class="metric-grid"><div class="metric-card"><div class="metric-value" style="color:#9B2335">48</div><div class="metric-label">Final Score</div></div><div class="metric-card"><div class="metric-value" style="color:#1A6FA8">75</div><div class="metric-label">S1 Intent</div></div><div class="metric-card"><div class="metric-value" style="color:#5B3D8A">40</div><div class="metric-label">S2 Repo</div></div><div class="metric-card"><div class="metric-value" style="color:#2D4A6E">25</div><div class="metric-label">S3 Code/Bio</div></div><div class="metric-card"><div class="metric-value" style="color:#1A7A47">30</div><div class="metric-label">S4 Replication</div></div></div><div class="memo-grid"><article class="memo-card memo-primary"><div class="eyebrow">TL;DR</div><h3>Decision memo</h3><p class="memo-text">This repository lands at <strong>T1 Quarantine</strong> with a final score of <strong>48/100</strong>. The result is driven more by boundary, workflow-support, and governance weaknesses than by classic code-pattern failures.</p><div class="pill-row"><span class="pill">Policy: default</span><span class="pill">Status: authoritative_release</span><span class="pill">Mode: mirror_only</span></div></article><article class="memo-card"><div class="eyebrow">Primary Risks</div><h3>What pushed the review down</h3><ul class="memo-list"><li>Clinical-adjacent surfaces exist without an explicit non-diagnostic/non-clinical boundary.</li><li>Self-asserted compliance or privacy-governance claim requires independent verification.</li><li>Legal, privacy, or compliance claim appears without supporting governance or security-grounding evidence in reviewed repository sources.</li><li>Core workflow appears materially dependent on named external service providers; local or self-host claims may overstate operational independence.</li><li>External operational dependency signal surfaced in code-integrity lane.</li></ul></article><article class="memo-card"><div class="eyebrow">Positive Evidence</div><h3>What still supports reviewability</h3><ul class="memo-list"><li>Package metadata was available for repo-local consistency checks.</li></ul></article><article class="memo-card"><div class="eyebrow">Freshness</div><h3>When to re-check</h3><p class="memo-text">Review after <strong>45</strong> days. Expires on <strong>2026-07-15</strong>.</p><p class="memo-note">Change-triggered re-audit now: False</p></article></div><div class="memo-grid" style="margin-top:18px"><article class="memo-card"><div class="eyebrow">Stage 2R Focus</div><h3>Repo-local contradictions</h3><ul class="focus-list"><li class="focus-line"><div class="focus-top"><span class="focus-key">R2R_D2_missing_clinical_use_boundary</span><span class="focus-score">-20</span></div><div class="focus-detail"><span class="focus-detector">R2R_D2_missing_clinical_use_boundary</span>clinical_adjacent=True and explicit non-clinical boundary was not detected | tier impact: can contribute to clinical score ceilings and hard-floor review paths when stronger clinical deployment or certainty claims are also present</div></li><li class="focus-line"><div class="focus-top"><span class="focus-key">R2R_D4_unsupported_workflow_claim</span><span class="focus-score">-15</span></div><div class="focus-detail"><span class="focus-detector">R2R_D4_unsupported_workflow_claim</span>workflow/demo/CLI claims detected while workflow, tests, or local support entrypoints are absent</div></li><li class="focus-line"><div class="focus-top"><span class="focus-key">R2R_1_readme_package_code_alignment</span><span class="focus-score">+15</span></div><div class="focus-detail"><span class="focus-detector">R2R_1_readme_package_code_alignment</span>shared bio-domain terms detected across README and package metadata</div></li></ul></article><article class="memo-card"><div class="eyebrow">Stage 3 Focus</div><h3>Accountability surfaces</h3><ul class="focus-list"><li class="focus-line"><div class="focus-top"><span class="focus-key">B1_data_provenance_controls</span><span class="focus-score">+15</span></div><div class="focus-detail"><span class="focus-detector">S3_B1_dependency_manifest</span>dependency or lock manifest presence plus data-source, dataset, or IRB language review</div></li><li class="focus-line"><div class="focus-top"><span class="focus-key">B3_coi_funding</span><span class="focus-score">+5</span></div><div class="focus-detail"><span class="focus-detector">S3_B3_coi_funding</span>COI/funding/sponsor language review across README, docs, FUNDING, CITATION, and AUTHORS surfaces</div></li></ul></article><article class="memo-card"><div class="eyebrow">Policy Boundary</div><h3>How to read this artifact</h3><p class="memo-text">Mirror-only policy surface: selected profile metadata is shown in this report, but authoritative scan scoring still follows deterministic runtime constants. Preview-only posture changes, including Stage 4 replication emphasis, do not change the formal score until a future read-through phase.</p></article></div></section>
<section id="s2"><h2 class="s-title">Decision Path <span class="tip-icon" data-tooltip="This section explains where the score came from, with rubric-level movement and detector-linked rationale where available." tabindex="0">?</span></h2><div class="panel decision-panel"><div class="formula-banner">Final = 0.4 × S1 + 0.2 × S2R + 0.4 × S3 − C1_penalty | Stage 4 remains a separate replication lane.</div><div class="config-pattern"><div class="config-copy"><div class="eyebrow">Configured, Not Rewritten</div><h3 class="subhead">Changing review posture does not require touching the score core</h3><p class="memo-text">Use <code>stem policy simulate</code> with a governed profile file when you want to preview a different review posture. The authoritative score path stays deterministic; the profile is surfaced as metadata and preview-only interpretation.</p><p class="memo-note">If you only need the default posture, you do not need a profile file at all.</p></div><div class="config-grid"><article class="config-card"><div class="config-label">profile.json</div><pre class="config-code">{
"profile_name": "strict_clinical_adjacency",
"profile_read_mode": "mirror_only"
}</pre></article><article class="config-card"><div class="config-label">command</div><pre class="config-code">stem policy simulate /path/to/repo --profile-file profile.json</pre></article><article class="config-card"><div class="config-label">artifact note</div><pre class="config-code">Calibration Effect: mirror-only
Policy metadata surfaced
Formal score unchanged</pre></article></div></div><div class="stage-deck"><article class="stage-card"><div class="stage-card-top"><div class="stage-name">Stage 1 — README Intent <span class="tip-icon" data-tooltip="Stage 1: Scans README/docs for hype language, overconfidence claims, and missing clinical disclaimers." tabindex="0">?</span></div><div class="stage-value" style="color:#1A6FA8">75</div></div><svg width="270" height="20" viewBox="0 0 270 20"><rect width="270" height="20" rx="5" fill="#E4EBF5"/><rect width="202" height="20" rx="5" fill="#1A6FA8"/></svg><p class="stage-summary">Claim language, limitation posture, and clinical boundary wording.</p><ul class="focus-list"><li class="focus-line"><div class="focus-top"><span class="focus-key">R3_clinical_disclaimer</span><span class="focus-score">-5</span></div><div class="focus-detail">CA-INDIRECT surface lacks explicit non-clinical or non-diagnostic boundary.</div></li><li class="focus-line"><div class="focus-top"><span class="focus-key">S1_domain_readme</span><span class="focus-score">+10</span></div><div class="focus-detail">README exposes bio/medical domain vocabulary.</div></li><li class="focus-line"><div class="focus-top"><span class="focus-key">S1_domain_package</span><span class="focus-score">+5</span></div><div class="focus-detail">Package metadata exposes bio/medical domain vocabulary.</div></li><li class="focus-line"><div class="focus-top"><span class="focus-key">R2_regulatory_framework</span><span class="focus-score">+5</span></div><div class="focus-detail">Self-asserted privacy/compliance language detected without stronger regulatory-framework evidence.</div></li></ul></article><article class="stage-card"><div class="stage-card-top"><div class="stage-name">Stage 2R — Repo Consistency <span class="tip-icon" data-tooltip="Stage 2R: Cross-checks API names advertised in README against actual code exports and __all__ lists." tabindex="0">?</span></div><div class="stage-value" style="color:#C07B10">40</div></div><svg width="270" height="20" viewBox="0 0 270 20"><rect width="270" height="20" rx="5" fill="#E4EBF5"/><rect width="108" height="20" rx="5" fill="#C07B10"/></svg><p class="stage-summary">Internal contradictions between README, workflow claims, and support surfaces.</p><ul class="focus-list"><li class="focus-line"><div class="focus-top"><span class="focus-key">R2R_D2_missing_clinical_use_boundary</span><span class="focus-score">-20</span></div><div class="focus-detail"><span class="focus-detector">R2R_D2_missing_clinical_use_boundary</span>clinical_adjacent=True and explicit non-clinical boundary was not detected | tier impact: can contribute to clinical score ceilings and hard-floor review paths when stronger clinical deployment or certainty claims are also present</div></li><li class="focus-line"><div class="focus-top"><span class="focus-key">R2R_D4_unsupported_workflow_claim</span><span class="focus-score">-15</span></div><div class="focus-detail"><span class="focus-detector">R2R_D4_unsupported_workflow_claim</span>workflow/demo/CLI claims detected while workflow, tests, or local support entrypoints are absent</div></li><li class="focus-line"><div class="focus-top"><span class="focus-key">R2R_1_readme_package_code_alignment</span><span class="focus-score">+15</span></div><div class="focus-detail"><span class="focus-detector">R2R_1_readme_package_code_alignment</span>shared bio-domain terms detected across README and package metadata</div></li></ul></article><article class="stage-card"><div class="stage-card-top"><div class="stage-name">Stage 3 — Code / Bio Responsibility <span class="tip-icon" data-tooltip="Stage 3: AST scan for clinical safety patterns: PII validators, exception handling, dependency pinning." tabindex="0">?</span></div><div class="stage-value" style="color:#9B2335">25</div></div><svg width="270" height="20" viewBox="0 0 270 20"><rect width="270" height="20" rx="5" fill="#E4EBF5"/><rect width="68" height="20" rx="5" fill="#9B2335"/></svg><p class="stage-summary">Engineering accountability, provenance, and reviewable responsibility surfaces.</p><ul class="focus-list"><li class="focus-line"><div class="focus-top"><span class="focus-key">B1_data_provenance_controls</span><span class="focus-score">+15</span></div><div class="focus-detail"><span class="focus-detector">S3_B1_dependency_manifest</span>dependency or lock manifest presence plus data-source, dataset, or IRB language review</div></li><li class="focus-line"><div class="focus-top"><span class="focus-key">B3_coi_funding</span><span class="focus-score">+5</span></div><div class="focus-detail"><span class="focus-detector">S3_B3_coi_funding</span>COI/funding/sponsor language review across README, docs, FUNDING, CITATION, and AUTHORS surfaces</div></li></ul></article><article class="stage-card"><div class="stage-card-top"><div class="stage-name">Stage 4 — Replication <span class="tip-icon" data-tooltip="Stage 4: Evaluates reproducibility artifacts: seed fixation, dataset pinning, environment lock files." tabindex="0">?</span></div><div class="stage-value" style="color:#9B2335">30</div></div><svg width="270" height="20" viewBox="0 0 270 20"><rect width="270" height="20" rx="5" fill="#E4EBF5"/><rect width="81" height="20" rx="5" fill="#9B2335"/></svg><p class="stage-summary">Reproducibility evidence is reported separately and does not alter the formal tier.</p><ul class="focus-list"><li class="focus-line"><div class="focus-top"><span class="focus-key">S4_container_environment</span><span class="focus-score">+10</span></div><div class="focus-detail">Container or compose file exists.</div></li><li class="focus-line"><div class="focus-top"><span class="focus-key">S4_environment_lock_evidence</span><span class="focus-score">+10</span></div><div class="focus-detail">Environment, dependency, or lock manifest detected.</div></li><li class="focus-line"><div class="focus-top"><span class="focus-key">S4_exact_dependency_pins_or_hashes</span><span class="focus-score">+10</span></div><div class="focus-detail">Exact dependency pin or hash evidence detected.</div></li></ul></article></div></div></section>
<section id="s3"><h2 class="s-title">Code Integrity & Contract <span class="tip-icon" data-tooltip="C1-C6: static code and governance checks. CC1-CC3: Layer 2 AST contract detectors. PASS means no mapped trigger was detected in the current rule scope, not that the whole repository is mature." tabindex="0">?</span></h2><div class="integrity-stack"><div class="panel"><div class="eyebrow">Warnings First</div><h3 class="subhead">Mapped risk lanes that fired</h3><div class="card-grid"><div class="card" onclick="toggleCard(this)" tabindex="0" role="button" aria-expanded="false"><div style="border-top:3px solid #C07B10;padding:16px 18px"><div style="font-size:11px;font-weight:700;color:#5A6B80;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px">C2 Dependency Pinning</div><div style="font-size:13px;font-weight:700;color:#C07B10;display:flex;align-items:center;gap:6px;margin-bottom:8px"><span style="width:10px;height:10px;border-radius:50%;background:#C07B10;display:inline-block"></span>WARN</div><div style="font-size:11px;color:#5A6B80;line-height:1.4">External operational dependency signal surfaced in code-integrity lane.</div><div class="caret" style="text-align:right;margin-top:6px;font-size:16px;color:#5A6B80">⌄</div></div><div class="card-detail" style="display:none;padding:0 18px 14px;border-top:1px solid #E4EBF5"><ul style="padding-left:16px;margin:10px 0 0;font-size:11px;color:#0D1F3C;line-height:1.7"><li style="margin-bottom:3px">External operational dependency signal surfaced in code-integrity lane.</li><li style="margin-bottom:3px">.env.example:24 VALYU_API_KEY=valyu_your_api_key_here</li><li style="margin-bottom:3px">.env.example:38 DAYTONA_API_KEY=your_daytona_api_key_here</li><li style="margin-bottom:3px">README.md:23 - **One Unified Search** - Powered by Valyu's specialized biomedical data API</li></ul></div></div><div class="card" onclick="toggleCard(this)" tabindex="0" role="button" aria-expanded="false"><div style="border-top:3px solid #C07B10;padding:16px 18px"><div style="font-size:11px;font-weight:700;color:#5A6B80;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px">C5 Compliance Boundary Integrity</div><div style="font-size:13px;font-weight:700;color:#C07B10;display:flex;align-items:center;gap:6px;margin-bottom:8px"><span style="width:10px;height:10px;border-radius:50%;background:#C07B10;display:inline-block"></span>WARN</div><div style="font-size:11px;color:#5A6B80;line-height:1.4">Unsupported legal/compliance claim surfaced in boundary-integrity lane.</div><div class="caret" style="text-align:right;margin-top:6px;font-size:16px;color:#5A6B80">⌄</div></div><div class="card-detail" style="display:none;padding:0 18px 14px;border-top:1px solid #E4EBF5"><ul style="padding-left:16px;margin:10px 0 0;font-size:11px;color:#0D1F3C;line-height:1.7"><li style="margin-bottom:3px">Unsupported legal/compliance claim surfaced in boundary-integrity lane.</li><li style="margin-bottom:3px">README.md:262 - HIPAA-compliant architecture (when self-hosted)</li><li style="margin-bottom:3px">Clinical-adjacent surfaces exist without an explicit non-diagnostic/non-clinical boundary.</li></ul></div></div><div class="card" onclick="toggleCard(this)" tabindex="0" role="button" aria-expanded="false"><div style="border-top:3px solid #C07B10;padding:16px 18px"><div style="font-size:11px;font-weight:700;color:#5A6B80;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px">C6 Mock Auth / Fail-Open Boundary</div><div style="font-size:13px;font-weight:700;color:#C07B10;display:flex;align-items:center;gap:6px;margin-bottom:8px"><span style="width:10px;height:10px;border-radius:50%;background:#C07B10;display:inline-block"></span>WARN</div><div style="font-size:11px;color:#5A6B80;line-height:1.4">Mock-auth or auto-login boundary surfaced in code-integrity lane.</div><div class="caret" style="text-align:right;margin-top:6px;font-size:16px;color:#5A6B80">⌄</div></div><div class="card-detail" style="display:none;padding:0 18px 14px;border-top:1px solid #E4EBF5"><ul style="padding-left:16px;margin:10px 0 0;font-size:11px;color:#0D1F3C;line-height:1.7"><li style="margin-bottom:3px">Mock-auth or auto-login boundary surfaced in code-integrity lane.</li><li style="margin-bottom:3px">README.md:51 - **No authentication required** - Auto-login as dev user</li><li style="margin-bottom:3px">README.md:110 You'll be automatically logged in as `dev@localhost` with full access to all features.</li><li style="margin-bottom:3px">README.md:134 2. **Mock Authentication**</li><li style="margin-bottom:3px">README.md:135 - Auto-login as dev user (`dev@localhost`)</li></ul></div></div></div></div><div class="panel"><div class="eyebrow">Clear Lanes</div><h3 class="subhead">What stayed quiet in the current rule scope</h3><div class="card-grid"><div class="card" onclick="toggleCard(this)" tabindex="0" role="button" aria-expanded="false"><div style="border-top:3px solid #1A7A47;padding:16px 18px"><div style="font-size:11px;font-weight:700;color:#5A6B80;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px">C1 Hardcoded Credentials</div><div style="font-size:13px;font-weight:700;color:#1A7A47;display:flex;align-items:center;gap:6px;margin-bottom:8px"><span style="width:10px;height:10px;border-radius:50%;background:#1A7A47;display:inline-block"></span>PASS</div><div style="font-size:11px;color:#5A6B80;line-height:1.4">No direct credential patterns detected by local CLI scan.</div><div class="caret" style="text-align:right;margin-top:6px;font-size:16px;color:#5A6B80">⌄</div></div><div class="card-detail" style="display:none;padding:0 18px 14px;border-top:1px solid #E4EBF5"><ul style="padding-left:16px;margin:10px 0 0;font-size:11px;color:#0D1F3C;line-height:1.7"><li style="margin-bottom:3px">No direct credential patterns detected by local CLI scan.</li></ul></div></div><div class="card" onclick="toggleCard(this)" tabindex="0" role="button" aria-expanded="false"><div style="border-top:3px solid #1A7A47;padding:16px 18px"><div style="font-size:11px;font-weight:700;color:#5A6B80;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px">C3 Deprecated Patient Paths</div><div style="font-size:13px;font-weight:700;color:#1A7A47;display:flex;align-items:center;gap:6px;margin-bottom:8px"><span style="width:10px;height:10px;border-radius:50%;background:#1A7A47;display:inline-block"></span>PASS</div><div style="font-size:11px;color:#5A6B80;line-height:1.4">No deprecated patient-adjacent metadata patterns detected.</div><div class="caret" style="text-align:right;margin-top:6px;font-size:16px;color:#5A6B80">⌄</div></div><div class="card-detail" style="display:none;padding:0 18px 14px;border-top:1px solid #E4EBF5"><ul style="padding-left:16px;margin:10px 0 0;font-size:11px;color:#0D1F3C;line-height:1.7"><li style="margin-bottom:3px">No deprecated patient-adjacent metadata patterns detected.</li></ul></div></div><div class="card" onclick="toggleCard(this)" tabindex="0" role="button" aria-expanded="false"><div style="border-top:3px solid #1A7A47;padding:16px 18px"><div style="font-size:11px;font-weight:700;color:#5A6B80;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px">C4 Fail-Open Exceptions</div><div style="font-size:13px;font-weight:700;color:#1A7A47;display:flex;align-items:center;gap:6px;margin-bottom:8px"><span style="width:10px;height:10px;border-radius:50%;background:#1A7A47;display:inline-block"></span>PASS</div><div style="font-size:11px;color:#5A6B80;line-height:1.4">No executable fail-open exception handler detected.</div><div class="caret" style="text-align:right;margin-top:6px;font-size:16px;color:#5A6B80">⌄</div></div><div class="card-detail" style="display:none;padding:0 18px 14px;border-top:1px solid #E4EBF5"><ul style="padding-left:16px;margin:10px 0 0;font-size:11px;color:#0D1F3C;line-height:1.7"><li style="margin-bottom:3px">No executable fail-open exception handler detected.</li></ul></div></div><div class="card" onclick="toggleCard(this)" tabindex="0" role="button" aria-expanded="false"><div style="border-top:3px solid #1A7A47;padding:16px 18px"><div style="font-size:11px;font-weight:700;color:#5A6B80;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px">CC1 Clinical Zero Default</div><div style="font-size:13px;font-weight:700;color:#1A7A47;display:flex;align-items:center;gap:6px;margin-bottom:8px"><span style="width:10px;height:10px;border-radius:50%;background:#1A7A47;display:inline-block"></span>PASS</div><div style="font-size:11px;color:#5A6B80;line-height:1.4">count=0</div><div class="caret" style="text-align:right;margin-top:6px;font-size:16px;color:#5A6B80">⌄</div></div><div class="card-detail" style="display:none;padding:0 18px 14px;border-top:1px solid #E4EBF5"><ul style="padding-left:16px;margin:10px 0 0;font-size:11px;color:#0D1F3C;line-height:1.7"><li style="margin-bottom:3px">count=0</li></ul></div></div><div class="card" onclick="toggleCard(this)" tabindex="0" role="button" aria-expanded="false"><div style="border-top:3px solid #1A7A47;padding:16px 18px"><div style="font-size:11px;font-weight:700;color:#5A6B80;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px">CC2 API Contract</div><div style="font-size:13px;font-weight:700;color:#1A7A47;display:flex;align-items:center;gap:6px;margin-bottom:8px"><span style="width:10px;height:10px;border-radius:50%;background:#1A7A47;display:inline-block"></span>PASS</div><div style="font-size:11px;color:#5A6B80;line-height:1.4">count=0</div><div class="caret" style="text-align:right;margin-top:6px;font-size:16px;color:#5A6B80">⌄</div></div><div class="card-detail" style="display:none;padding:0 18px 14px;border-top:1px solid #E4EBF5"><ul style="padding-left:16px;margin:10px 0 0;font-size:11px;color:#0D1F3C;line-height:1.7"><li style="margin-bottom:3px">count=0</li></ul></div></div><div class="card" onclick="toggleCard(this)" tabindex="0" role="button" aria-expanded="false"><div style="border-top:3px solid #1A7A47;padding:16px 18px"><div style="font-size:11px;font-weight:700;color:#5A6B80;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px">CC3 Shallow Validator</div><div style="font-size:13px;font-weight:700;color:#1A7A47;display:flex;align-items:center;gap:6px;margin-bottom:8px"><span style="width:10px;height:10px;border-radius:50%;background:#1A7A47;display:inline-block"></span>PASS</div><div style="font-size:11px;color:#5A6B80;line-height:1.4">count=0</div><div class="caret" style="text-align:right;margin-top:6px;font-size:16px;color:#5A6B80">⌄</div></div><div class="card-detail" style="display:none;padding:0 18px 14px;border-top:1px solid #E4EBF5"><ul style="padding-left:16px;margin:10px 0 0;font-size:11px;color:#0D1F3C;line-height:1.7"><li style="margin-bottom:3px">count=0</li></ul></div></div></div><div class="faq-block"><details class="faq-item"><summary>Why can Code Integrity contain PASS while the overall score is still low?</summary><p>Because Code Integrity is a narrow detector family. The formal score is still driven mainly by Stage 1, Stage 2R, and Stage 3 evidence posture.</p></details><details class="faq-item"><summary>What changed in the C4 / C5 / C6 split?</summary><p>C4 is now reserved for executable fail-open exception behavior, C5 for unsupported compliance or boundary integrity claims, and C6 for mock-auth or no-auth trust-boundary signals.</p></details></div></div></div></section>
<section id="s4"><h2 class="s-title">MIT AI Risk Repository Coverage <span class="tip-icon" data-tooltip="Coverage counts only risks reached through local detector mappings. Coverage is not a safety verdict, and unmapped review concerns remain outside the numerator." tabindex="0">?</span><span class="airi-tag">V4_03 | airisk.mit.edu</span></h2><div class="airi-stack"><div class="panel"><div class="eyebrow">Feature Explainer</div><h3 class="subhead">What this section is doing</h3><p class="memo-text">AIRI is used here as a bounded risk-vocabulary layer around deterministic repository findings. The report uses the curated runtime bundle, not the full upstream AIRI universe.</p><div class="airi-kpi"><div class="airi-donut"><svg width="98" height="98" viewBox="0 0 98 98"><circle cx="49" cy="49" r="39" fill="none" stroke="#E4EBF5" stroke-width="10"/><circle cx="49" cy="49" r="39" fill="none" stroke="#1A7A47" stroke-width="10" stroke-dasharray="53.66 191.38" stroke-linecap="round" transform="rotate(-90 49 49)"/><text x="49" y="54" text-anchor="middle" font-size="13" font-weight="700" fill="#1A7A47">21%</text></svg></div><div class="airi-copy"><div class="metric-inline"><strong>7 / 32</strong> risks in detector scope</div><div class="metric-inline">Bundle scope: <strong>curated_medical_clinical_subset</strong></div><div class="metric-inline">Snapshot: <strong>2026-04-23</strong> | License: <strong>MIT</strong></div><p class="memo-note">Derived from The AI Risk Repository V4_03. Original source remains MIT-licensed and must be attributed in README, docs, runtime artifacts, and local registry metadata.</p></div></div><div class="faq-block" style="margin-top:18px"><details class="faq-item"><summary>What does 7 / 32 mean?</summary><p>It means seven AIRI risk IDs are currently reached by active local detector mappings, out of thirty-two AIRI risk IDs in the current detector scope.</p></details><details class="faq-item"><summary>What does “why mapped” mean?</summary><p>Each covered AIRI row carries a bounded explanation built from the triggered detector, the local mapping justification, and the trigger reason surfaced by the scan.</p></details><details class="faq-item"><summary>What does AIRI not prove here?</summary><p>AIRI does not independently verify harm, causality, clinical failure, or legal noncompliance. It is a risk-vocabulary layer around local findings.</p></details></div><div class="config-pattern" style="margin-top:18px"><div class="config-copy"><div class="eyebrow">Mapped, Not Guessed</div><h3 class="subhead">AIRI rows light up through active detector mappings</h3><p class="memo-text">The report does not infer AIRI coverage from prose alone. Coverage appears when a local detector fires and a governed mapping exists in the current AIRI runtime bundle.</p></div><div class="config-grid"><article class="config-card"><div class="config-label">trigger</div><pre class="config-code">C6_mock_auth_or_fail_open_boundary
status: detected</pre></article><article class="config-card"><div class="config-label">mapping</div><pre class="config-code">R2R_D5_single_external_service_dependency
→ 72.04.02 Market Concentration</pre></article><article class="config-card"><div class="config-label">report surface</div><pre class="config-code">covered_by: detector id
why: bounded mapping reason</pre></article></div></div></div><div class="panel"><div class="eyebrow">Coverage Explorer</div><h3 class="subhead">Covered and gap rows</h3><div class="domain-grid"><div class="domain-card" data-domain="0" data-covered="7" data-gaps="5" onclick="filterDomain(0)" style="cursor:pointer"><span class="domain-num" style="background:#0D1F3C">All</span><span class="domain-label">All Domains</span><span class="domain-cnt" style="color:#0D1F3C">7/5</span></div><div class="domain-card" data-domain="1" data-covered="0" data-gaps="1" onclick="filterDomain(1)" style="cursor:pointer"><span class="domain-num" style="background:#B5272A">1</span><span class="domain-label">Discrimination & Toxicity</span><span class="domain-cnt" style="color:#B5272A">0/1</span></div><div class="domain-card" data-domain="2" data-covered="1" data-gaps="1" onclick="filterDomain(2)" style="cursor:pointer"><span class="domain-num" style="background:#1E3A6E">2</span><span class="domain-label">Privacy & Security</span><span class="domain-cnt" style="color:#1E3A6E">1/1</span></div><div class="domain-card" data-domain="3" data-covered="1" data-gaps="1" onclick="filterDomain(3)" style="cursor:pointer"><span class="domain-num" style="background:#C07020">3</span><span class="domain-label">Misinformation</span><span class="domain-cnt" style="color:#C07020">1/1</span></div><div class="domain-card" data-domain="4" data-covered="0" data-gaps="0" onclick="filterDomain(4)" style="opacity:.55;cursor:pointer"><span class="domain-num" style="background:#6B3FA0">4</span><span class="domain-label">Malicious Actors & Misuse</span><span class="domain-cnt" style="color:#6B3FA0">0/0</span></div><div class="domain-card" data-domain="5" data-covered="1" data-gaps="0" onclick="filterDomain(5)" style="cursor:pointer"><span class="domain-num" style="background:#1B7A4E">5</span><span class="domain-label">Human-Computer Interaction</span><span class="domain-cnt" style="color:#1B7A4E">1/0</span></div><div class="domain-card" data-domain="6" data-covered="1" data-gaps="1" onclick="filterDomain(6)" style="cursor:pointer"><span class="domain-num" style="background:#7A6520">6</span><span class="domain-label">Socioeconomic & Environmental</span><span class="domain-cnt" style="color:#7A6520">1/1</span></div><div class="domain-card" data-domain="7" data-covered="3" data-gaps="1" onclick="filterDomain(7)" style="cursor:pointer"><span class="domain-num" style="background:#1A5568">7</span><span class="domain-label">AI System Safety, Failures & Limitations</span><span class="domain-cnt" style="color:#1A5568">3/1</span></div></div><div class="toggle-row"><div class="toggle-group"><button class="toggle-btn" data-view="covered" onclick="airiToggle('covered')">Covered (7)</button><button class="toggle-btn" data-view="gaps" onclick="airiToggle('gaps')">Gaps (5)</button></div><span class="muted-note">Click a domain card to filter. Counts are shown as covered / gaps.</span></div><div style="overflow-x:auto"><table class="airi-table"><thead><tr><th>ID</th><th>Risk</th><th>Domain</th><th>Covered by / Note</th></tr></thead><tbody><tr class="airi-covered" data-domain="7" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 6px;font-size:11px;color:#5A6B80;font-family:monospace">24.01.03</td><td style="padding:8px 6px;font-size:12px;color:#0D1F3C;font-weight:500">Safe exploration problem with widely deployed AI assist</td><td style="padding:8px 6px;font-size:11px;color:#5B3D8A">Lack of capability or robustness</td><td style="padding:8px 6px;font-size:11px;color:#1A7A47">primary=C5_compliance_boundary_integrity | C5_compliance_boundary</td></tr><tr class="airi-covered" data-domain="5" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 6px;font-size:11px;color:#5A6B80;font-family:monospace">24.04.01</td><td style="padding:8px 6px;font-size:12px;color:#0D1F3C;font-weight:500">Physical and Psychological Harms</td><td style="padding:8px 6px;font-size:11px;color:#5B3D8A">Overreliance and unsafe use</td><td style="padding:8px 6px;font-size:11px;color:#1A7A47">primary=C2_dependency_pinning | C2_dependency_pinning: External o</td></tr><tr class="airi-covered" data-domain="2" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 6px;font-size:11px;color:#5A6B80;font-family:monospace">33.01.05</td><td style="padding:8px 6px;font-size:12px;color:#0D1F3C;font-weight:500">Privacy and security</td><td style="padding:8px 6px;font-size:11px;color:#5B3D8A">Compromise of privacy / PII leak</td><td style="padding:8px 6px;font-size:11px;color:#1A7A47">primary=C2_dependency_pinning | C2_dependency_pinning: External o</td></tr><tr class="airi-covered" data-domain="7" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 6px;font-size:11px;color:#5A6B80;font-family:monospace">39.25.00</td><td style="padding:8px 6px;font-size:12px;color:#0D1F3C;font-weight:500">Verifiability</td><td style="padding:8px 6px;font-size:11px;color:#5B3D8A">Lack of transparency or interpre</td><td style="padding:8px 6px;font-size:11px;color:#1A7A47">primary=S1_R2_unsupported_legal_or_compliance_claim | S1_R2_unsup</td></tr><tr class="airi-covered" data-domain="7" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 6px;font-size:11px;color:#5A6B80;font-family:monospace">60.02.01</td><td style="padding:8px 6px;font-size:12px;color:#0D1F3C;font-weight:500">Reliability issues</td><td style="padding:8px 6px;font-size:11px;color:#5B3D8A">Lack of capability or robustness</td><td style="padding:8px 6px;font-size:11px;color:#1A7A47">primary=R2R_D5_single_external_service_dependency | R2R_D5_single</td></tr><tr class="airi-covered" data-domain="3" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 6px;font-size:11px;color:#5A6B80;font-family:monospace">69.01.00</td><td style="padding:8px 6px;font-size:12px;color:#0D1F3C;font-weight:500">False information</td><td style="padding:8px 6px;font-size:11px;color:#5B3D8A">False or misleading information</td><td style="padding:8px 6px;font-size:11px;color:#1A7A47">primary=C5_compliance_boundary_integrity; also=S1_R2_unsupported_</td></tr><tr class="airi-covered" data-domain="6" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 6px;font-size:11px;color:#5A6B80;font-family:monospace">72.04.02</td><td style="padding:8px 6px;font-size:12px;color:#0D1F3C;font-weight:500">Market Concentration and Infrastructure Dependencies:</td><td style="padding:8px 6px;font-size:11px;color:#5B3D8A"></td><td style="padding:8px 6px;font-size:11px;color:#1A7A47">primary=R2R_D5_single_external_service_dependency | R2R_D5_single</td></tr><tr class="airi-gaps" data-domain="2" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 6px;font-size:11px;color:#5A6B80;font-family:monospace">65.03.03</td><td style="padding:8px 6px;font-size:12px;color:#0D1F3C;font-weight:500">Reidentification</td><td style="padding:8px 6px;font-size:11px;color:#5B3D8A">2.1</td><td style="padding:8px 6px;font-size:11px;color:#C07B10">CC-3 catches shallow validators; dedicated reidentify() API expos</td></tr><tr class="airi-gaps" data-domain="3" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 6px;font-size:11px;color:#5A6B80;font-family:monospace">70.02.02</td><td style="padding:8px 6px;font-size:12px;color:#0D1F3C;font-weight:500">Misinformation — hallucination of clinical knowledge</td><td style="padding:8px 6px;font-size:11px;color:#5B3D8A">3.1</td><td style="padding:8px 6px;font-size:11px;color:#C07B10">CC-1 catches threshold=0.0 default; actual output-level hallucina</td></tr><tr class="airi-gaps" data-domain="7" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 6px;font-size:11px;color:#5A6B80;font-family:monospace">39.25.00</td><td style="padding:8px 6px;font-size:12px;color:#0D1F3C;font-weight:500">Verifiability — black-box AI in medical healthcare</td><td style="padding:8px 6px;font-size:11px;color:#5B3D8A">7.4</td><td style="padding:8px 6px;font-size:11px;color:#C07B10">B2 detects surface language only; Model Card / interpretability a</td></tr><tr class="airi-gaps" data-domain="1" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 6px;font-size:11px;color:#5A6B80;font-family:monospace">11.02.00</td><td style="padding:8px 6px;font-size:12px;color:#0D1F3C;font-weight:500">Allocative Harms — withheld resources in healthcare</td><td style="padding:8px 6px;font-size:11px;color:#5B3D8A">1.1</td><td style="padding:8px 6px;font-size:11px;color:#C07B10">Subgroup performance disparities require dynamic evaluation; outs</td></tr><tr class="airi-gaps" data-domain="6" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 6px;font-size:11px;color:#5A6B80;font-family:monospace">72.04.02</td><td style="padding:8px 6px;font-size:12px;color:#0D1F3C;font-weight:500">Market Concentration — healthcare single-point failures</td><td style="padding:8px 6px;font-size:11px;color:#5B3D8A">6.1</td><td style="padding:8px 6px;font-size:11px;color:#C07B10">Systemic risk beyond single-repository scope.</td></tr></tbody></table></div></div></div></section>
<section id="s5"><h2 class="s-title">Evidence Detail <span class="tip-icon" data-tooltip="Full evidence ledger from all detectors. Filter by severity. Capped at 200 entries in HTML view." tabindex="0">?</span></h2><div class="panel"><div class="toggle-row" style="margin-bottom:14px"><span class="filter-chip active" data-sev="all" onclick="filterEv('all')">All (65)</span> <span class="filter-chip" data-sev="fail" onclick="filterEv('fail')">FAIL</span> <span class="filter-chip" data-sev="warn" onclick="filterEv('warn')">WARN</span> <span class="filter-chip" data-sev="pass" onclick="filterEv('pass')">PASS</span> <span class="filter-chip" data-sev="info" onclick="filterEv('info')">INFO</span></div><div class="muted" style="margin:0 0 10px 0">Showing 56 compact rows from the first 65 evidence entries.</div><div style="overflow-x:auto"><table style="width:100%;border-collapse:collapse"><thead><tr style="background:#F8FAFC"><th style="padding:8px 5px;width:16px"></th><th style="padding:8px 5px;font-size:11px;text-align:left;color:#5A6B80">SEV</th><th style="padding:8px 5px;font-size:11px;text-align:left;color:#5A6B80">Detector</th><th style="padding:8px 5px;font-size:11px;text-align:left;color:#5A6B80">Finding</th><th style="padding:8px 5px;font-size:11px;text-align:left;color:#5A6B80">File</th></tr></thead><tbody><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S1_clinical_boundary</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">No evidence detected for S1_clinical_boundary.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S1_H1_clinical_certainty_hype</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">No evidence detected for S1_H1_clinical_certainty_hype.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S1_H2_regulatory_approval_hype</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">No evidence detected for S1_H2_regulatory_approval_hype.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S1_H3_autonomous_replacement_hyp</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">No evidence detected for S1_H3_autonomous_replacement_hype.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S1_H4_breakthrough_marketing_hyp</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">No evidence detected for S1_H4_breakthrough_marketing_hype.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S1_H5_universal_generalization_h</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">No evidence detected for S1_H5_universal_generalization_hype.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S1_H6_perfect_accuracy_hype</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">No evidence detected for S1_H6_perfect_accuracy_hype.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S1_R1_limitations_section</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">No evidence detected for S1_R1_limitations_section.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S1_R2_regulatory_framework</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">No evidence detected for S1_R2_regulatory_framework.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S1_R4_demographic_bias_boundary</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">No evidence detected for S1_R4_demographic_bias_boundary.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S1_R5_reproducibility_provisions</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">No evidence detected for S1_R5_reproducibility_provisions.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S3_T1_workflow_files</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">No evidence detected for S3_T1_workflow_files.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S3_T2_domain_tests</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">No evidence detected for S3_T2_domain_tests.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S3_T3_changelog_release_hygiene</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">No evidence detected for S3_T3_changelog_release_hygiene.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S3_T3_changelog_bugfix_evidence</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">No evidence detected for S3_T3_changelog_bugfix_evidence.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S3_B2_bias_limitations</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">No evidence detected for S3_B2_bias_limitations.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S3_B2_measurement_evidence</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">No evidence detected for S3_B2_measurement_evidence.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">C1_hardcoded_credentials</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">No hardcoded credential evidence detected for C1_hardcoded_credentials.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">C2_dependency_pinning</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">No loose dependency evidence detected.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">C3_dead_or_deprecated_patient_ad</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">No evidence detected for C3_dead_or_deprecated_patient_adjacent_paths.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">C4_exception_handling_clinical_a</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">No fail-open exception handler detected in executable Python code.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">BIO_smiles_surface_integrity</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">No malformed or suspicious SMILES-like strings detected by conservative surface checks.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">BIO_smiles_rdkit_validation</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">RDKit optional validation lane not exercised because no SMILES-like candidates were detect</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">BIO_smiles_parser_guard</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">No missing None/invalid guards detected after SMILES parser calls.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">BIO_silent_mock_fallback</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">No silent mock or simulated-data fallback patterns detected in production code paths.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">BIO_trace_manifest</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">No traceability manifest or runtime audit-log schema surface detected.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">BIO_run_trace</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">No risky subprocess or os.system bio-tool execution patterns detected.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S4_make_reproduce_target</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">No Makefile detected.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S4_readme_reproducibility_sectio</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">README exists but no reproducibility or replication section heading was detected.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S4_checksum_files</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">No evidence detected for S4_checksum_files.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S4_dataset_url</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">Documentation exists but no dataset URL or data source URL was detected.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S4_model_weight_url_or_checksum</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">Documentation exists but no model artifact URL/checksum evidence was detected.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S4_citation_cff</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">No evidence detected for S4_citation_cff.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S4_license_restriction</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">License/readme/docs surfaces exist but no restriction language was detected.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S4_cli_entrypoint</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">No package metadata or Python AST surface detected.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S4_seed_setting</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">No deterministic seed setting evidence detected by AST summary.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S4_runnable_examples</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">No evidence detected for S4_runnable_examples.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S1_readme_bio_terms</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">README exposes bio/medical vocabulary.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">README.md</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S1_R2_weak_regulatory_self_asser</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">Self-asserted privacy/compliance language detected without stronger regulatory-framework e</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">README.md</td></tr><tr class="ev-row ev-warn" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#C07B10"></span></td><td style="padding:8px 5px;font-size:11px;color:#C07B10;font-weight:700">WARN</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S1_R2_unsupported_legal_or_compl</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">Legal, privacy, or compliance claim detected without supporting governance or security-gro</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">README.md</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S3_B1_dependency_manifest</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">Dependency or environment manifest exists.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">package-lock.json</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S3_B1_dependency_manifest</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">Dependency or environment manifest exists.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">package.json</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S3_B1_dependency_manifest</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">Dependency or environment manifest exists.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">pnpm-lock.yaml</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S3_B1_data_source_language</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">Data source, dataset citation, IRB, or provenance language detected.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">README.md</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S3_B3_coi_funding</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">COI, funding, sponsor, or acknowledgement language detected.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">README.md</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S2_package_bio_terms</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">Package metadata exposes bio/medical vocabulary.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">package.json</td></tr><tr class="ev-row ev-warn" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#C07B10"></span></td><td style="padding:8px 5px;font-size:11px;color:#C07B10;font-weight:700">WARN</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">R2R_D5_single_external_service_d</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">Required external service API key detected for a named workflow dependency. Aggregated 2 m</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.env.example</td></tr><tr class="ev-row ev-warn" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#C07B10"></span></td><td style="padding:8px 5px;font-size:11px;color:#C07B10;font-weight:700">WARN</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">R2R_D5_single_external_service_d</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">Named external service provider is presented as part of the core repository workflow. Aggr</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">README.md</td></tr><tr class="ev-row ev-warn" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#C07B10"></span></td><td style="padding:8px 5px;font-size:11px;color:#C07B10;font-weight:700">WARN</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">R2R_D5_single_external_service_d</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">Local or self-host claims coexist with required external service dependencies. Aggregated </td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">README.md</td></tr><tr class="ev-row ev-warn" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#C07B10"></span></td><td style="padding:8px 5px;font-size:11px;color:#C07B10;font-weight:700">WARN</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">C6_mock_auth_or_fail_open_bounda</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">Mock-auth, auto-login, or no-auth local/self-host boundary surfaced in reviewed sources. A</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">README.md</td></tr><tr class="ev-row ev-warn" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#C07B10"></span></td><td style="padding:8px 5px;font-size:11px;color:#C07B10;font-weight:700">WARN</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">C6_mock_auth_or_fail_open_bounda</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">Local or self-host claims coexist with mock-auth or auto-login boundary signals. Aggregate</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">.env.example</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S4_container_environment</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">Container or compose file exists.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">Dockerfile</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S4_environment_lock_evidence</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">Environment, dependency, or lock manifest detected.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">package-lock.json</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S4_environment_lock_evidence</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">Environment, dependency, or lock manifest detected.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">pnpm-lock.yaml</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S4_exact_dependency_pins_or_hash</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">Lock manifest with exact dependency resolution detected.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">package-lock.json</td></tr><tr class="ev-row ev-info" style="border-bottom:1px solid #E4EBF5"><td style="padding:8px 5px;width:16px"><span style="display:block;width:8px;height:8px;border-radius:50%;background:#5A6B80"></span></td><td style="padding:8px 5px;font-size:11px;color:#5A6B80;font-weight:700">INFO</td><td style="padding:8px 5px;font-size:11px;color:#5B3D8A;font-family:monospace">S4_exact_dependency_pins_or_hash</td><td style="padding:8px 5px;font-size:12px;color:#0D1F3C">Lock manifest with exact dependency resolution detected.</td><td style="padding:8px 5px;font-size:11px;color:#5A6B80">pnpm-lock.yaml</td></tr></tbody></table></div></div></section>
<div class="footer">
STEM BIO-AI Local CLI Scan | 1.8.0
| Deterministic surface scan — no LLM, network, or runtime execution.
</div>
</div>
<script>
function toggleCard(card) {
var d = card.querySelector('.card-detail');
var exp = card.classList.toggle('expanded');
card.setAttribute('aria-expanded', String(exp));
if (d) d.style.display = exp ? 'block' : 'none';
}
var _airiView = 'covered';
var _airiDomain = 0;
function _updateAiriToggleLabels() {
var covered = 0;
var gaps = 0;
var card = document.querySelector('.domain-card[data-domain="' + _airiDomain + '"]');
if (card) {
covered = parseInt(card.dataset.covered || '0', 10);
gaps = parseInt(card.dataset.gaps || '0', 10);
} else {
var allCard = document.querySelector('.domain-card[data-domain="0"]');
covered = parseInt(allCard?.dataset.covered || '0', 10);
gaps = parseInt(allCard?.dataset.gaps || '0', 10);
}
document.querySelectorAll('.toggle-btn[data-view]').forEach(function(b) {
if (b.dataset.view === 'covered') b.textContent = 'Covered (' + covered + ')';
if (b.dataset.view === 'gaps') b.textContent = 'Gaps (' + gaps + ')';
});
}
function _applyAiriFilter() {
document.querySelectorAll('.airi-covered,.airi-gaps').forEach(function(r) {
var viewOk = r.classList.contains('airi-' + _airiView);
var domainOk = (_airiDomain === 0 || r.dataset.domain == _airiDomain);
r.style.display = (viewOk && domainOk) ? '' : 'none';
});
_updateAiriToggleLabels();
}
function airiToggle(view) {
_airiView = view;
_applyAiriFilter();
document.querySelectorAll('.toggle-btn[data-view]').forEach(function(b) {
b.classList.toggle('active', b.dataset.view === view);
});
}
function filterDomain(num) {
_airiDomain = (_airiDomain === num) ? 0 : num;
document.querySelectorAll('.domain-card').forEach(function(c) {
var active = (c.dataset.domain == _airiDomain);
c.classList.toggle('domain-active', active);
c.style.setProperty('--d-color', active ? c.querySelector('.domain-num').style.background : '');
});
_applyAiriFilter();
}
function filterEv(sev) {
document.querySelectorAll('.ev-row').forEach(function(r) {
r.style.display = (sev === 'all' || r.classList.contains('ev-' + sev)) ? '' : 'none';
});
document.querySelectorAll('.filter-chip').forEach(function(c) {
c.classList.toggle('active', c.dataset.sev === sev);
});
}
function updateNav() {
var cur = '';
document.querySelectorAll('section[id]').forEach(function(s) {
if (window.scrollY >= s.offsetTop - 88) cur = s.id;
});
document.querySelectorAll('.nav-link').forEach(function(l) {
l.classList.toggle('active', l.getAttribute('href') === '#' + cur);
});
}
window.addEventListener('scroll', updateNav, { passive: true });
document.addEventListener('DOMContentLoaded', function() {
updateNav();
airiToggle('covered');
filterEv('all');
document.querySelectorAll('.card').forEach(function(c) {
c.addEventListener('keydown', function(e) {
if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); toggleCard(c); }
});
});
});
</script>
</body>
</html>
|