## Phase 8: Enterprise Extractor Improvements ✅ - 14 security extractors (TLS, JWT, SQL injection, XSS, etc.) - 10 framework-specific extractors (Spring, Django, Rails, etc.) - Config file security detection (YAML, TOML) ## Phase 9: Autonomous Extractor Generation ✅ - Shadow mode executor with TP/FP tracking - Graduation pipeline with confidence thresholds - Auto-rollback on regression detection - Cross-project pattern syncing ## UAT Suite Complete (14 scripts, 90 tests) - test-core-detection.sh (6 tests) - test-declarative-extractors.sh (5 tests) - test-domain-frameworks.sh (5 tests) - test-domain-unreal.sh (3 tests) - test-llm-extraction.sh (6 tests) - test-eval-harness.sh (5 tests) - test-cross-language.sh (3 tests) - test-precommit-performance.sh (4 tests) - test-output-formats.sh (8 tests) - test-drift-detection.sh (6 tests) - test-exit-codes.sh (12 tests) + 3 more scripts ## Other Changes - Updated roadmap to mark Phase 8-9 complete - Added .gitignore entries for build artifacts - Updated pre-commit: 800 line limit, exclude tests/data/cmd Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
337 lines
12 KiB
HTML
337 lines
12 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>StemeDB - Assertions with Provenance</title>
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/reveal.js@5.1.0/dist/reset.css">
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/reveal.js@5.1.0/dist/reveal.css">
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/reveal.js@5.1.0/dist/theme/night.css">
|
|
<style>
|
|
:root {
|
|
--r-background-color: #0f0f14;
|
|
--r-main-color: #e4e4e7;
|
|
--r-heading-color: #a1a1aa;
|
|
--r-link-color: #60a5fa;
|
|
--r-selection-background-color: #27272a;
|
|
--r-main-font-size: 32px;
|
|
}
|
|
.reveal {
|
|
font-size: var(--r-main-font-size);
|
|
}
|
|
.reveal h1 {
|
|
font-size: 2.2em;
|
|
font-weight: 500;
|
|
color: #fafafa;
|
|
text-transform: none;
|
|
letter-spacing: -0.02em;
|
|
}
|
|
.reveal h2 {
|
|
font-size: 1.6em;
|
|
font-weight: 500;
|
|
color: #fafafa;
|
|
text-transform: none;
|
|
letter-spacing: -0.01em;
|
|
margin-bottom: 0.8em;
|
|
}
|
|
.reveal h3 {
|
|
font-size: 1.2em;
|
|
font-weight: 500;
|
|
color: #a1a1aa;
|
|
text-transform: none;
|
|
}
|
|
.reveal p {
|
|
font-size: 0.95em;
|
|
line-height: 1.5;
|
|
color: #d4d4d8;
|
|
}
|
|
.reveal .highlight {
|
|
color: #fbbf24;
|
|
}
|
|
.reveal .muted {
|
|
color: #71717a;
|
|
}
|
|
.reveal .negative {
|
|
color: #f87171;
|
|
}
|
|
.reveal .positive {
|
|
color: #4ade80;
|
|
}
|
|
.reveal ul {
|
|
list-style: none;
|
|
padding: 0;
|
|
margin: 0;
|
|
}
|
|
.reveal ul li {
|
|
margin: 0.6em 0;
|
|
padding-left: 1.2em;
|
|
position: relative;
|
|
font-size: 0.9em;
|
|
color: #d4d4d8;
|
|
}
|
|
.reveal ul li::before {
|
|
content: "—";
|
|
position: absolute;
|
|
left: 0;
|
|
color: #52525b;
|
|
}
|
|
.reveal .stat-block {
|
|
background: linear-gradient(135deg, #18181b 0%, #1f1f23 100%);
|
|
border: 1px solid #27272a;
|
|
padding: 1.2em 1.6em;
|
|
border-radius: 8px;
|
|
margin: 1.2em 0;
|
|
text-align: left;
|
|
}
|
|
.reveal .stat-block .number {
|
|
font-size: 2em;
|
|
font-weight: 600;
|
|
color: #fbbf24;
|
|
display: block;
|
|
margin-bottom: 0.2em;
|
|
}
|
|
.reveal .stat-block .label {
|
|
font-size: 0.8em;
|
|
color: #a1a1aa;
|
|
}
|
|
.reveal .demo-preview {
|
|
background: #18181b;
|
|
border: 1px solid #27272a;
|
|
border-radius: 8px;
|
|
padding: 1.5em;
|
|
text-align: left;
|
|
margin-top: 1em;
|
|
}
|
|
.reveal .demo-preview code {
|
|
font-family: "SF Mono", "Fira Code", monospace;
|
|
font-size: 0.75em;
|
|
color: #60a5fa;
|
|
background: transparent;
|
|
}
|
|
.reveal .query-preview {
|
|
font-family: "SF Mono", "Fira Code", monospace;
|
|
font-size: 0.7em;
|
|
color: #a1a1aa;
|
|
background: #0f0f14;
|
|
padding: 0.8em 1em;
|
|
border-radius: 4px;
|
|
border-left: 3px solid #3b82f6;
|
|
margin: 0.8em 0;
|
|
}
|
|
.reveal blockquote {
|
|
background: transparent;
|
|
border: none;
|
|
font-style: normal;
|
|
padding: 0;
|
|
margin: 1.5em 0;
|
|
font-size: 0.85em;
|
|
color: #a1a1aa;
|
|
}
|
|
.reveal .capabilities-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
gap: 1em;
|
|
margin-top: 1em;
|
|
}
|
|
.reveal .capability-card {
|
|
background: #18181b;
|
|
border: 1px solid #27272a;
|
|
border-radius: 6px;
|
|
padding: 1em;
|
|
text-align: left;
|
|
}
|
|
.reveal .capability-card h4 {
|
|
font-size: 0.8em;
|
|
font-weight: 600;
|
|
color: #fafafa;
|
|
margin: 0 0 0.4em 0;
|
|
}
|
|
.reveal .capability-card p {
|
|
font-size: 0.65em;
|
|
color: #a1a1aa;
|
|
margin: 0;
|
|
line-height: 1.4;
|
|
}
|
|
.reveal .footer {
|
|
position: fixed;
|
|
bottom: 1em;
|
|
left: 1em;
|
|
font-size: 0.4em;
|
|
color: #52525b;
|
|
}
|
|
.reveal .transition-slide h2 {
|
|
font-size: 1.4em;
|
|
color: #a1a1aa;
|
|
font-weight: 400;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="reveal">
|
|
<div class="slides">
|
|
|
|
<!-- Slide 1: The Problem (Lead with data) -->
|
|
<section>
|
|
<h2>In 2024, <span class="highlight">79%</span> of FDA Warning Letters<br>cited data integrity failures</h2>
|
|
<div class="stat-block">
|
|
<span class="number">85%</span>
|
|
<span class="label">of safety and efficacy issues in Complete Response Letters<br>are never disclosed by companies.</span>
|
|
</div>
|
|
<p class="fragment fade-up muted" style="font-size: 0.8em; margin-top: 1.5em;">
|
|
With AI making more decisions, the audit trail matters more than ever.
|
|
</p>
|
|
<aside class="notes">
|
|
79% stat: FY2024 FDA Form 483 analysis - most common deficiency is lack of audit trails.
|
|
85% stat: 2015 BMJ cross-sectional study on CRL disclosure gaps.
|
|
Example: Feb 2025 Warning Letter to Exer Labs for AI diagnostic without QMS (inspection Oct 2024).
|
|
</aside>
|
|
</section>
|
|
|
|
<!-- Slide 2: Why This Happens -->
|
|
<section>
|
|
<h2>Why this keeps happening</h2>
|
|
<ul>
|
|
<li class="fragment">Your data warehouse stores the <span class="highlight">current answer</span>. Sources disagree.</li>
|
|
<li class="fragment">When a study is retracted, <span class="negative">which decisions did it affect?</span></li>
|
|
<li class="fragment">AI recommended X. <span class="negative">Can you reconstruct why?</span></li>
|
|
</ul>
|
|
<p class="fragment muted" style="font-size: 0.75em; margin-top: 1.5em;">
|
|
"Black box" is a documented rejection reason. Traditional databases overwrite history.
|
|
</p>
|
|
<aside class="notes">
|
|
These aren't hypotheticals. The retraction question is what kills you in audits.
|
|
"Can you reconstruct why" is the question every CMO dreads.
|
|
510(k) submissions have grown to 1,000+ pages - FDA explicitly rejects "black box" AI.
|
|
</aside>
|
|
</section>
|
|
|
|
<!-- Slide 3: Introducing StemeDB -->
|
|
<section>
|
|
<h1 style="font-size: 2.8em; font-weight: 600; letter-spacing: -0.03em;">StemeDB</h1>
|
|
<p style="font-size: 1em; color: #a1a1aa; margin-top: 0.5em;">
|
|
A knowledge graph that stores claims, not facts.
|
|
</p>
|
|
<p class="fragment muted" style="font-size: 0.75em; margin-top: 2em;">
|
|
Append-only. Auditable. Built for regulated industries.
|
|
</p>
|
|
<aside class="notes">
|
|
Quick intro - don't linger here. The next slide explains the approach.
|
|
"Steme" from episteme (Greek for knowledge).
|
|
</aside>
|
|
</section>
|
|
|
|
<!-- Slide 4: The Approach -->
|
|
<section>
|
|
<h2>Every claim has a source</h2>
|
|
<p style="margin-bottom: 1em;">
|
|
StemeDB stores <span class="highlight">assertions with provenance</span>, not overwritten facts.
|
|
</p>
|
|
<ul>
|
|
<li class="fragment">When sources disagree, <span class="positive">you see the disagreement</span></li>
|
|
<li class="fragment">When a source is retracted, <span class="positive">you know what's affected in seconds</span></li>
|
|
<li class="fragment">History is preserved. Nothing gets silently overwritten.</li>
|
|
</ul>
|
|
<aside class="notes">
|
|
This is the key insight. Version control for knowledge.
|
|
Don't say "Git for Truth" - just describe the behavior.
|
|
</aside>
|
|
</section>
|
|
|
|
<!-- Slide 4: Capabilities -->
|
|
<section>
|
|
<h2>What this enables</h2>
|
|
<div class="capabilities-grid">
|
|
<div class="capability-card">
|
|
<h4>Conflict Visibility</h4>
|
|
<p>See when sources disagree. Confidence scores show you how much.</p>
|
|
</div>
|
|
<div class="capability-card">
|
|
<h4>Cascade Invalidation</h4>
|
|
<p>Retract a source. See every downstream decision affected.</p>
|
|
</div>
|
|
<div class="capability-card">
|
|
<h4>Complete Audit Trail</h4>
|
|
<p>Every query logged with provenance. Export for regulators.</p>
|
|
</div>
|
|
</div>
|
|
<p class="fragment muted" style="font-size: 0.7em; margin-top: 1.2em;">
|
|
Time-travel queries: "What did we believe on January 1st?"
|
|
</p>
|
|
<aside class="notes">
|
|
Keep this brief. The demo will prove these claims.
|
|
Time-travel is the differentiator from every data warehouse.
|
|
</aside>
|
|
</section>
|
|
|
|
<!-- Slide 5: Demo Preview -->
|
|
<section class="transition-slide">
|
|
<h2>Here's what it looks like</h2>
|
|
<p class="muted" style="font-size: 0.7em; margin-bottom: 0.8em;">
|
|
FDA guidance now requires audit trails for all AI-enabled devices. This is what compliance looks like.
|
|
</p>
|
|
<div class="demo-preview">
|
|
<p style="font-size: 0.75em; color: #a1a1aa; margin: 0 0 0.8em 0;">Query:</p>
|
|
<div class="query-preview">
|
|
subject: <span style="color: #fbbf24;">semaglutide:gastroparesis_risk</span><br>
|
|
predicate: <span style="color: #fbbf24;">risk_level</span>
|
|
</div>
|
|
<p style="font-size: 0.7em; color: #71717a; margin: 0.8em 0 0 0;">
|
|
FDA labels say low incidence. Patient reports say otherwise.<br>
|
|
Watch how StemeDB surfaces that conflict.
|
|
</p>
|
|
</div>
|
|
<aside class="notes">
|
|
"FDA has authorized over 1,200 AI-enabled devices. All require audit trails."
|
|
"I'm going to run this exact query live. Watch what happens when sources disagree."
|
|
Then switch to dashboard tab. Query should already be typed in.
|
|
</aside>
|
|
</section>
|
|
|
|
<!-- Slide 6: Q&A (return here after demo) -->
|
|
<section>
|
|
<h2>Questions</h2>
|
|
<div style="margin-top: 1.5em; text-align: left;">
|
|
<p class="muted" style="font-size: 0.7em; margin-bottom: 0.8em;">What you saw:</p>
|
|
<ul style="font-size: 0.75em;">
|
|
<li><span class="highlight">Conflict visibility</span> — FDA vs patient reports, with confidence scores</li>
|
|
<li><span class="highlight">Cascade invalidation</span> — Source retraction, instant impact assessment</li>
|
|
<li><span class="highlight">Audit trail</span> — Every query logged, export-ready</li>
|
|
<li><span class="highlight">Time-travel</span> — Point-in-time queries</li>
|
|
<li><span class="highlight">Trust & Safety</span> — Quarantine queue, circuit breakers</li>
|
|
</ul>
|
|
</div>
|
|
<aside class="notes">
|
|
Be ready for:
|
|
- "What's the latency?" → 340ms on 2.3M assertions
|
|
- "SOC 2?" → In progress, not yet certified
|
|
- "How do I get my data out?" → Standard export formats
|
|
- "Who else uses this?" → Be honest about stage
|
|
</aside>
|
|
</section>
|
|
|
|
</div>
|
|
|
|
<div class="footer">
|
|
StemeDB
|
|
</div>
|
|
</div>
|
|
|
|
<script src="https://cdn.jsdelivr.net/npm/reveal.js@5.1.0/dist/reveal.js"></script>
|
|
<script src="https://cdn.jsdelivr.net/npm/reveal.js@5.1.0/plugin/notes/notes.js"></script>
|
|
<script>
|
|
Reveal.initialize({
|
|
hash: true,
|
|
slideNumber: false,
|
|
controls: false,
|
|
progress: false,
|
|
transition: 'none',
|
|
transitionSpeed: 'fast',
|
|
plugins: [ RevealNotes ],
|
|
width: 1280,
|
|
height: 720,
|
|
margin: 0.1
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|