Skip to content

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.

ADRTitle
016-analysis-config-nestingADR-016: Nested AnalysisConfig with flat TOML and stable analysis hash
017-analysis-config-change-controlADR-017: AnalysisConfig field growth and compat module ownership
adr-001-hybrid-forensics-methodologyADR-001: Hybrid Forensics Methodology
adr-002-storage-layer-sqlite-parquet-duckdbADR-002: Storage Layer Using SQLite, Parquet, and DuckDB
adr-003-agent-governance-and-hooksADR-003: Agent Governance and Hooks
adr-004-scraper-storage-concurrencyADR-004: Scraper storage concurrency — writer-queue vs aiosqlite
adr-005-sqlite-connection-managementADR-005: SQLite Connection Management Strategy
adr-006-cli-command-dispatchADR-006: CLI Command Dispatch Pattern
adr-007-deferred-scraper-storage-decouplingADR-007: Scraper / storage boundary (P2-ARCH-3)
adr-008-observational-limits-and-causal-identificationADR-008: Observational limits and causal identification (M-22)
adr-009-analyze-stage-sqlite-readsADR-009 — Analyze-stage data sources and SQLite Repository (C-06 gate)