Decision records
Each ADR captures a single architectural decision: the context, the choice made, the alternatives weighed, and the consequences. Records are immutable once accepted — superseding decisions land as new ADRs that link back.
| ADR | Title |
|---|---|
| 016-analysis-config-nesting | ADR-016: Nested AnalysisConfig with flat TOML and stable analysis hash |
| 017-analysis-config-change-control | ADR-017: AnalysisConfig field growth and compat module ownership |
| adr-001-hybrid-forensics-methodology | ADR-001: Hybrid Forensics Methodology |
| adr-002-storage-layer-sqlite-parquet-duckdb | ADR-002: Storage Layer Using SQLite, Parquet, and DuckDB |
| adr-003-agent-governance-and-hooks | ADR-003: Agent Governance and Hooks |
| adr-004-scraper-storage-concurrency | ADR-004: Scraper storage concurrency — writer-queue vs aiosqlite |
| adr-005-sqlite-connection-management | ADR-005: SQLite Connection Management Strategy |
| adr-006-cli-command-dispatch | ADR-006: CLI Command Dispatch Pattern |
| adr-007-deferred-scraper-storage-decoupling | ADR-007: Scraper / storage boundary (P2-ARCH-3) |
| adr-008-observational-limits-and-causal-identification | ADR-008: Observational limits and causal identification (M-22) |
| adr-009-analyze-stage-sqlite-reads | ADR-009 — Analyze-stage data sources and SQLite Repository (C-06 gate) |
Built by Abstract Data