{ "combined": true, "meta": { "id": "stemedb", "title": "stemedb" }, "decks": [ { "meta": { "id": "consumer-health-intelligence", "title": "Consumer Health Intelligence", "subtitle": "The Living Truth Layer", "version": "1.0.0" }, "actors": {}, "slides": [ { "type": "title", "id": "title" }, { "type": "hook", "id": "hook", "line": "Your sources contradict each other.", "subline": "And you have no way to weigh them." }, { "type": "code", "id": "drift-doctor", "title": "Source 1: Your doctor", "code": "\"Well-tolerated. Nausea is common but transient.\"\n\n// Confidence: high (MD, treating physician)\n// Basis: prescribing guidelines, clinical experience\n// What's missing: doesn't see Reddit, doesn't see FAERS\n" }, { "type": "code", "id": "drift-fda", "title": "Source 2: The FDA label", "code": "WARNING: Thyroid C-cell tumors (boxed warning)\n\nAdverse reactions:\n - Nausea (44%)\n - Diarrhea (30%)\n - Vomiting (24%)\n\n// No mention of gastroparesis (yet).\n// Label last updated: 2021.\n" }, { "type": "code", "id": "drift-reddit", "title": "Source 3: Reddit (1.2M members)", "code": "r/Ozempic - sorted by top, past month:\n\n\"Ozempic face is real. I look 10 years older.\" [2.1k upvotes]\n\"Month 3: can't eat, stomach won't empty\" [1.8k upvotes]\n\"Hair is falling out in clumps\" [1.4k upvotes]\n\"Lost 40 lbs, feel amazing, life changed\" [947 upvotes]\n\n// 4 posts. 4 different realities.\n" }, { "type": "code", "id": "drift-tiktok", "title": "Source 4: TikTok (4M views)", "code": "@healthinfluencer:\n\"Ozempic gave me stomach paralysis.\n I was in the ER for 3 days.\"\n\n4.2M views | 340K likes | 12K comments\n\n// One person's experience.\n// Presented as universal truth.\n// Engagement = visibility, not validity.\n" }, { "type": "code", "id": "drift-nejm", "title": "Source 5: NEJM meta-analysis", "code": "// Pooled analysis, n = 14,847\n// Design: randomized controlled trials\n\nResult: \"No statistically significant increase\n in gastroparesis incidence vs placebo\"\n\n// p = 0.23, CI crosses 1.0\n// The gold standard says: no signal.\n" }, { "type": "code", "id": "drift-faers", "title": "Source 6: FDA Adverse Event Reports", "code": "FAERS query: semaglutide + gastroparesis\n\nTotal reports: 8,547\nSerious: 3,201\nHospitalizations: 1,894\nTrend: increasing (2022-2024)\n\n// Self-reported + unverified.\n// But 8,547 reports is a signal.\n" }, { "type": "hook", "id": "drift-question", "line": "Seven sources. Seven answers.", "subline": "You make your decision based on whichever one you saw last." }, { "type": "code", "id": "spiral", "title": "The same problem, everywhere", "code": "// Gastroparesis:\nDoctor: \"Rare\"\nFDA: (not on label)\nReddit: \"It happened to me\" (x 4,200)\nTikTok: \"It's an epidemic\" (12M views)\nNEJM: \"No significant signal\"\nFAERS: 8,547 reports\n\n// Hair loss:\nClinical trials: not studied\nReddit: 1,847 posts\nClinical evidence: zero\n\n// Muscle loss:\nPhase III: \"~40% of weight lost is lean mass\"\nReddit: \"My legs are wasting away\"\nTrainers: \"Just lift weights\"\n" }, { "type": "hook", "id": "spiral-insight", "line": "This is the vaccine problem.", "subline": "Not misinformation. The absence of a system that can hold all claims and show you the shape of the evidence." }, { "type": "code", "id": "catastrophe", "title": "The Catastrophe", "code": "// June 2023: She starts Semaglutide.\n// Her research: doctor + Google + a few Reddit posts.\n// Gastroparesis wasn't on the FDA label.\n//\n// January 2024: FDA updates the label.\n// Intestinal obstruction warning added.\n//\n// Reddit had flagged this a year earlier.\n// FAERS reports were accumulating for two years.\n//\n// Nobody told her. Google doesn't send updates.\n// Her doctor's office doesn't track label changes.\n// The truth changed. Her information didn't.\n" }, { "type": "code", "id": "catastrophe-pattern", "title": "The pattern repeats", "code": "// COVID vaccines, 2021:\n// April: \"No myocarditis signal\"\n// June: VAERS reports accumulating\n// July: CDC acknowledges elevated risk in young males\n//\n// Millions of decisions made between April and July\n// based on information that was about to change.\n//\n// Not because anyone lied.\n// Because no system could show:\n// \"Here is what we know, at each level,\n// and here is what changed since you last looked.\"\n" }, { "type": "hook", "id": "fix-intro", "line": "What if every source had a weight?", "subline": "And the disagreement was the answer." }, { "type": "code", "id": "fix-tiers", "title": "Source-class hierarchy", "code": "// Not all sources are equal. Make it structural.\n\nTier 0: Regulatory action weight: 1.0 decay: never\nTier 1: RCTs, meta-analyses weight: 0.9 decay: 2 years\nTier 2: Observational studies weight: 0.7 decay: 1 year\nTier 3: Pharmacovigilance weight: 0.5 decay: 18 months\nTier 4: Clinician case reports weight: 0.4 decay: 6 months\nTier 5: Patient community weight: 0.2 decay: 3 months\nTier 6: Media, influencers weight: 0.1 decay: 30 days\n\n// A million TikTok posts cannot outvote one FDA action.\n// But they can signal that something is happening.\n" }, { "type": "code", "id": "fix-assert", "title": "Store claims with provenance", "code": "// Clinical evidence enters with full metadata\nepisteme.assert({\n subject: \"semaglutide/adverse-effects/gastroparesis\",\n predicate: \"risk_level\",\n value: \"No statistically significant increase\",\n source_class: \"tier-1\",\n source: {\n type: \"meta-analysis\",\n journal: \"NEJM\",\n sample_size: 14847\n },\n confidence: 0.92\n});\n\n// Patient report enters the same graph\nepisteme.assert({\n subject: \"semaglutide/adverse-effects/gastroparesis\",\n predicate: \"risk_level\",\n value: \"Experienced severe gastroparesis after 3 months\",\n source_class: \"tier-5\",\n source: { platform: \"reddit\", upvotes: 847 },\n confidence: 0.3\n});\n\n// Both coexist. Neither overwrites. But they are not equal.\n" }, { "type": "code", "id": "fix-query", "title": "Query returns layers, not a single answer", "code": "episteme.query({\n subject: \"semaglutide/adverse-effects/gastroparesis\",\n lens: \"layered-consensus\"\n});\n\n// Returns:\n{\n regulatory: \"Added to label Jan 2024\",\n clinical_evidence: \"No signal in Phase III (conflict: 0.34)\",\n pharmacovigilance: \"8,547 FAERS reports, trend: increasing\",\n patient_community: \"Widely reported, cluster size: 4,200\",\n\n overall_conflict: 0.72,\n summary: \"Trials show low incidence. Post-marketing and\n patient reports show higher rates. FDA added\n to label January 2024.\"\n}\n\n// Not \"yes\" or \"no\". The shape of the evidence.\n" }, { "type": "code", "id": "escalation", "title": "Anecdotal signal detection", "code": "// The Gardener monitors Tier 5 clusters.\n// When density crosses threshold:\n\nepisteme.assert({\n subject: \"semaglutide/adverse-effects/hair-loss\",\n predicate: \"escalation_signal\",\n value: \"Anecdotal cluster detected\",\n source_class: \"meta\",\n meta: {\n tier_5_count: 1847,\n growth_rate: \"312/month\",\n tier_1_count: 0, // no clinical evidence exists\n clinical_gap: true\n },\n lifecycle: \"under-review\"\n});\n\n// Does NOT claim hair loss is real.\n// Claims: \"people are reporting this, and nobody has studied it.\"\n// The gap is the signal.\n" }, { "type": "code", "id": "guidance-change", "title": "What changed since you last looked", "code": "// FDA updates the label. Epoch shifts.\nepisteme.epoch.supersede({\n old_epoch: \"semaglutide-label-pre-2024\",\n new_epoch: \"semaglutide-label-2024-01\",\n reason: \"Intestinal obstruction warning added\"\n});\n\n// Consumer returns 3 months later:\nepisteme.query({\n subject: \"semaglutide/adverse-effects\",\n lens: \"layered-consensus\",\n since: \"2023-10-01\" // their last visit\n});\n\n// Returns:\n{\n changes: [{\n date: \"2024-01-12\",\n type: \"regulatory\",\n change: \"Intestinal obstruction added to warnings\"\n }],\n prior_assertions_affected: 12\n}\n\n// Not just today's answer. What changed.\n" }, { "type": "code", "id": "time-travel", "title": "What was known when you decided?", "code": "// \"I started Semaglutide in June 2023.\n// What were the known risks at that time?\"\n\nepisteme.query({\n subject: \"semaglutide/adverse-effects\",\n lens: \"layered-consensus\",\n as_of: \"2023-06-15\"\n});\n\n// Returns the June 2023 snapshot:\n{\n regulatory: \"Boxed warning: thyroid. No GI obstruction.\",\n clinical: \"Nausea common, no gastroparesis signal\",\n patient: \"Growing reports (cluster size: 340)\",\n escalation: \"not yet triggered (threshold: 500)\"\n}\n\n// Your decision was reasonable given available evidence.\n// The record proves it.\n" }, { "type": "code", "id": "disagreement", "title": "The disagreement dashboard", "code": "episteme.query({\n subject: \"semaglutide\",\n lens: \"skeptic\",\n scope: \"adverse-effects\"\n});\n\n// Returns:\nresolved: [\n { topic: \"nausea\", conflict: 0.08, \"all tiers agree\" }\n]\n\nactive_disagreement: [\n { topic: \"gastroparesis\", conflict: 0.72,\n clinical: \"Low incidence\",\n faers: \"8,547 reports\",\n patients: \"Widely reported\" }\n]\n\nemerging_signal: [\n { topic: \"hair loss\",\n clinical_evidence: \"none\",\n patient_reports: 1847,\n status: \"under-review\" }\n]\n\n// Settled. Contested. Emerging.\n// Honest answers, not false certainty.\n" }, { "type": "vision", "id": "vision", "title": "Episteme", "points": [ "Source-class hierarchy. Not all claims are equal.", "Anecdotal signals surfaced without false authority.", "Guidance changes propagated, not buried.", "Time travel to the evidence at any moment." ], "tagline": "Git for Truth" } ] }, { "meta": { "id": "agile-agent-team", "title": "Agile AI Agent Team", "subtitle": "Knowledge Coordination with Episteme", "version": "4.0.0" }, "actors": {}, "slides": [ { "type": "title", "id": "title" }, { "type": "hook", "id": "hook", "line": "Your agents have amnesia.", "subline": "Every correction you make is forgotten by the next session." }, { "type": "code", "id": "drift-logging", "title": "Day 1: You correct the agent", "code": "// Agent used console.log\n// You: \"We use winston, not console.log\"\n\nimport { logger } from './logger';\n\nlogger.info('User authenticated', { userId });\n" }, { "type": "code", "id": "drift-logging-2", "title": "Day 30: New session", "code": "// Agent writes new code...\n\nconsole.log('User authenticated');\nconsole.log('userId:', userId);\n\n// The correction from Day 1? Gone.\n" }, { "type": "code", "id": "drift-http", "title": "Day 45: You correct again", "code": "// Agent used axios\n// You: \"We standardized on fetch\"\n\nconst response = await fetch('/api/users', {\n headers: { 'Authorization': `Bearer ${token}` }\n});\n" }, { "type": "code", "id": "drift-http-2", "title": "Day 60: Another new session", "code": "// Agent writes new code...\n\nimport axios from 'axios';\n\nconst response = await axios.get('/api/users', {\n headers: { 'Authorization': `Bearer ${token}` }\n});\n\n// Forgot again. Different session, different choices.\n" }, { "type": "code", "id": "spiral", "title": "6 months later: 10 ways to do 1 thing", "code": "// Logging\nconsole.log() // 47 files\nwinston.info() // 23 files\npino.info() // 12 files\ndebug() // 8 files\n\n// HTTP\nfetch() // 31 files\naxios.get() // 28 files\ngot() // 6 files\n\n// Auth\nRS256 // 4 services\nES256 // 3 services\nHS256 // 2 services (why??)\n" }, { "type": "hook", "id": "spiral-question", "line": "Which one is correct?", "subline": "Nobody knows. The decision was never recorded." }, { "type": "code", "id": "catastrophe", "title": "The Catastrophe", "code": "// Auth service A expects RS256\n// Auth service B was deployed with ES256\n// An agent queried \"what's our JWT algorithm?\"\n// Got the most recent answer: ES256 (from an RFC proposal)\n\nHTTP 401 Unauthorized\n{\n error: \"invalid_signature\",\n expected: \"RS256\",\n received: \"ES256\"\n}\n\n// 3:00 AM. Pager fires. 47-minute outage.\n" }, { "type": "code", "id": "catastrophe-why", "title": "The Root Cause", "code": "// The RFC was stored without lifecycle state\n// The query returned the most recent entry\n// No way to distinguish \"proposed\" from \"approved\"\n// The agent treated an idea as truth\n\n// And now you have to audit 9 services\n// to figure out which JWT algorithm is actually correct.\n" }, { "type": "hook", "id": "fix-intro", "line": "What if corrections persisted?", "subline": "Across sessions. Across agents. Forever." }, { "type": "code", "id": "fix-store", "title": "Store decisions with context", "code": "episteme.assert({\n subject: \"project/logging\",\n predicate: \"library\",\n value: \"winston\",\n\n lifecycle: \"approved\", // not proposed, not deprecated\n confidence: 1.0, // this is a decision, not a guess\n source: \"adr-0012\" // traceable to a decision record\n});\n" }, { "type": "code", "id": "fix-query", "title": "Query with lifecycle filter", "code": "// Before writing code, agent checks constraints\n\nconst constraints = await episteme.query({\n subject: \"project/logging\",\n lifecycle: \"approved\"\n});\n\n// Returns: { library: \"winston\", confidence: 1.0 }\n\n// Agent uses winston. Every time. Every session.\n" }, { "type": "code", "id": "fix-diff", "title": "The difference", "code": "// Without Episteme:\nquery({ subject: \"auth/jwt\", predicate: \"algorithm\" })\n// Returns: ES256 (most recent entry - a proposal)\n\n// With Episteme:\nquery({ subject: \"auth/jwt\", predicate: \"algorithm\", lifecycle: \"approved\" })\n// Returns: RS256 (the actual decision)\n" }, { "type": "code", "id": "time-travel", "title": "Debug what you believed, not what you know now", "code": "// Post-incident: what did we believe at 9pm?\n\nepisteme.query({\n subject: \"auth/jwt\",\n predicate: \"algorithm\",\n as_of: \"2024-01-15T21:00:00Z\"\n});\n\n// Returns: ES256 (the belief at incident time)\n\nepisteme.diff({\n subject: \"auth/jwt\",\n from: \"2024-01-15T14:00:00Z\",\n to: \"2024-01-15T21:00:00Z\"\n});\n\n// Shows: RFC proposal added at 2:32pm\n// Root cause identified.\n" }, { "type": "code", "id": "correction", "title": "Fix the record, not just the code", "code": "// Mark the bad assertion\nepisteme.supersede({\n target: \"ax7f3k9...\",\n reason: \"RFC was proposal, not approved decision\",\n corrected_by: \"sre-oncall\"\n});\n\n// Add a constraint so it never happens again\nepisteme.assert({\n subject: \"auth/jwt\",\n predicate: \"algorithm\",\n value: \"RS256\",\n lifecycle: \"approved\",\n supersedes: \"ax7f3k9...\"\n});\n\n// Future sessions will see this. Forever.\n" }, { "type": "vision", "id": "vision", "title": "Episteme", "points": [ "Claims, not facts. Uncertainty is first-class.", "Lifecycle awareness. Proposals ≠ decisions.", "Corrections that persist across sessions.", "Time travel for incident investigation." ], "tagline": "Git for Truth" } ] }, { "meta": { "id": "sec-analysis", "title": "SEC Document Analysis", "subtitle": "Filing Intelligence with Episteme", "version": "1.0.0" }, "actors": {}, "slides": [ { "type": "title", "id": "title" }, { "type": "hook", "id": "hook", "line": "Your filings contradict each other.", "subline": "And every agent reading them gets a different answer." }, { "type": "code", "id": "drift-revenue", "title": "10-K: Annual revenue", "code": "// Agent extracts from 10-K filing\n// CIK: 0001234567, Filed: 2024-02-28\n\n{\n \"subject\": \"ACME/revenue/annual\",\n \"source\": \"10-K/2023\",\n \"value\": \"$847M\"\n}\n" }, { "type": "code", "id": "drift-revenue-2", "title": "10-Q: Quarterly revenue tells a different story", "code": "// Agent extracts from Q4 10-Q filing\n// Same company, same fiscal year\n\n{\n \"subject\": \"ACME/revenue/Q4\",\n \"source\": \"10-Q/2023-Q4\",\n \"value\": \"$218M\"\n}\n\n// Q1 + Q2 + Q3 + Q4 = $872M annualized\n// 10-K says $847M\n// Delta: $25M. Which is right?\n" }, { "type": "code", "id": "drift-amendment", "title": "Original 10-K: No impairment", "code": "// Filed: 2024-02-28\n// Form: 10-K\n\n{\n \"subject\": \"ACME/goodwill/impairment\",\n \"source\": \"10-K/2023\",\n \"value\": \"$0\"\n}\n\n// Clean bill of health.\n" }, { "type": "code", "id": "drift-amendment-2", "title": "10-K/A: $340M impairment appears", "code": "// Filed: 2024-06-15 (amended filing)\n// Form: 10-K/A\n\n{\n \"subject\": \"ACME/goodwill/impairment\",\n \"source\": \"10-K-A/2023\",\n \"value\": \"$340M\"\n}\n\n// The amendment supersedes the original.\n// But which sections? All of them? Just Note 7?\n// The rest of the 10-K -- still valid?\n" }, { "type": "code", "id": "spiral", "title": "Same data, extracted 3 times, 3 answers", "code": "// Q3 Revenue appears in:\n\"10-Q/2023-Q3\" -> $213M // quarterly filing\n\"10-K/2023\" -> $209M // annual summary table\n\"DEF 14A/2024\" -> $211M // proxy exec comp section\n\n// Two analysts read the same proxy statement\n// Analyst A: CEO comp = $14.2M (includes options)\n// Analyst B: CEO comp = $8.7M (base + bonus only)\n\n// Both are \"correct\" -- different definitions\n" }, { "type": "hook", "id": "spiral-question", "line": "Which extraction is correct?", "subline": "Depends on the filing, the section, and what you're measuring." }, { "type": "code", "id": "catastrophe", "title": "The Catastrophe", "code": "// Agent builds a DCF model\n// Revenue: pulled from 10-K/A -> $847M (amended)\n// Cost of revenue: pulled from 10-K -> $612M (original)\n//\n// But the amendment changed cost allocations too.\n// Actual cost of revenue post-amendment: $658M\n//\n// Gross margin: 27.7% (agent's model)\n// Actual: 22.3%\n//\n// DCF valuation: off by $180M\n//\n// The model mixed amended and pre-amendment data\n// because there was no way to track the amendment chain.\n" }, { "type": "code", "id": "catastrophe-why", "title": "The Root Cause", "code": "// Filings were stored as flat key-value pairs\n// No amendment chain linking 10-K to 10-K/A\n// No section-level tracking\n// No way to know which data points were superseded\n//\n// The agent had no concept of \"this number was restated\"\n// It just grabbed the first match for each field\n//\n// Garbage in, $180M garbage out.\n" }, { "type": "hook", "id": "fix-intro", "line": "What if filings carried their own lineage?", "subline": "Every extraction linked to its source, section, and amendment chain." }, { "type": "code", "id": "fix-store", "title": "Store extractions with filing metadata", "code": "episteme.assert({\n subject: \"ACME/revenue/annual/2023\",\n predicate: \"value\",\n value: \"$847M\",\n\n source: {\n cik: \"0001234567\",\n form: \"10-K\",\n filed: \"2024-02-28\",\n section: \"Part II, Item 8\",\n accession: \"0001234567-24-000042\"\n },\n\n lifecycle: \"current\",\n confidence: 0.95\n});\n" }, { "type": "code", "id": "fix-amendment", "title": "Amendments supersede cleanly", "code": "// When the 10-K/A arrives:\nepisteme.assert({\n subject: \"ACME/goodwill/impairment/2023\",\n predicate: \"value\",\n value: \"$340M\",\n\n source: {\n form: \"10-K/A\",\n filed: \"2024-06-15\",\n amends: \"0001234567-24-000042\", // links to original\n sections_amended: [\"Note 7\", \"Part II Item 8\"]\n },\n\n lifecycle: \"current\",\n supersedes: \"ax7f3k9...\" // the $0 assertion\n});\n\n// The original $0 assertion is now lifecycle: \"superseded\"\n// Sections NOT in sections_amended remain valid\n" }, { "type": "code", "id": "fix-query", "title": "Query with lifecycle: only current data", "code": "// Agent building a DCF model queries:\nconst revenue = await episteme.query({\n subject: \"ACME/revenue/annual/2023\",\n lifecycle: \"current\"\n});\n// Returns $847M from 10-K/A (amended value)\n\nconst cost = await episteme.query({\n subject: \"ACME/cost-of-revenue/annual/2023\",\n lifecycle: \"current\"\n});\n// Returns $658M from 10-K/A (amended value)\n\n// Both values from the same amendment.\n// No mixing. No $180M error.\n" }, { "type": "code", "id": "time-travel", "title": "What did we believe before the restatement?", "code": "// Audit question: what was our position on March 1?\n// (before the 10-K/A was filed on June 15)\n\nepisteme.query({\n subject: \"ACME/goodwill/impairment/2023\",\n as_of: \"2024-03-01T00:00:00Z\"\n});\n\n// Returns: $0 (the original 10-K assertion)\n// At that point, that WAS the truth.\n\nepisteme.diff({\n subject: \"ACME/goodwill/impairment/2023\",\n from: \"2024-03-01\",\n to: \"2024-07-01\"\n});\n\n// Shows: 10-K/A filed June 15, impairment changed $0 -> $340M\n// Full audit trail. No guessing.\n" }, { "type": "code", "id": "multi-analyst", "title": "Competing extractions coexist", "code": "// Analyst A extracts CEO comp from proxy (DEF 14A)\nepisteme.assert({\n subject: \"ACME/exec-comp/CEO/2023\",\n value: \"$14.2M\",\n source: { form: \"DEF 14A\", section: \"Summary Compensation\" },\n confidence: 0.9,\n author: \"analyst-A\"\n});\n\n// Analyst B extracts from the same proxy\nepisteme.assert({\n subject: \"ACME/exec-comp/CEO/2023\",\n value: \"$8.7M\",\n source: { form: \"DEF 14A\", section: \"Summary Compensation\" },\n confidence: 0.85,\n author: \"analyst-B\"\n});\n\n// Both assertions coexist. No overwrite.\n" }, { "type": "code", "id": "multi-analyst-resolve", "title": "Lens resolves at query time", "code": "// Default lens: highest confidence wins\nepisteme.query({\n subject: \"ACME/exec-comp/CEO/2023\",\n lens: \"authority\"\n});\n// Returns: $14.2M (analyst-A, confidence 0.9)\n\n// But you can ask: show me all claims\nepisteme.query({\n subject: \"ACME/exec-comp/CEO/2023\",\n lens: \"all\"\n});\n// Returns both: $14.2M and $8.7M\n// With full provenance on each\n\n// The disagreement IS the signal.\n// Someone needs to reconcile definitions.\n" }, { "type": "vision", "id": "vision", "title": "Episteme", "points": [ "Amendment chains, not flat overwrites.", "Section-level provenance for every extraction.", "Competing analyst reads coexist until resolved.", "Time travel for audit and restatement analysis." ], "tagline": "Git for Truth" } ] } ] }