stemedb/docs/presentations/generated/sec-analysis.json
jordan 1ce4004807 feat: Complete Phase 2 (The Cortex) - query, lens, and API layers
This commit adds the read path (Cortex) to complement the write path (Spine):

## Crates
- stemedb-api: HTTP API with axum + utoipa OpenAPI
  - /v1/assert, /v1/query, /v1/epoch, /v1/skeptic, /v1/trace, /v1/audit
  - Metered endpoints with quota enforcement
  - Ed25519 signature verification
- stemedb-lens: Truth resolution lenses
  - RecencyLens, ConsensusLens, ConfidenceLens
  - VoteAwareConsensusLens (Ballot Box pattern)
  - TrustAwareAuthorityLens (The Hive pattern)
  - SkepticLens (conflict analysis)
  - EpochAwareLens (paradigm-safe queries)
- stemedb-query: Query engine with materialized views

## Storage Extensions
- VoteStore: Vote aggregation with cached counts
- TrustRankStore: Agent reputation with decay
- AuditStore: Query audit trail
- IndexStore: SP/P/S index structures
- SupersessionStore: Epoch supersession chains

## SDKs
- sdk/go/steme: Go HTTP client with Ed25519 signing
- sdk/go/adk: ADK-Go tools for AI agents

## Documentation
- Updated CLAUDE.md, architecture.md, roadmap.md
- New ai-lookup entries for all services
- Use case docs for consumer health intelligence
- Arena roadmap for simulation advancement

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 13:22:44 -07:00

123 lines
7.7 KiB
JSON

{
"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"
}
]
}