ADR numbers are stable identifiers. Superseded ADR files are kept in place so older links, commits, and discussions continue to resolve. New ADRs should use the next unused number.
- ADR-001: Represent User Interactions as Append-Only Events
- ADR-002: Use LLM for Semantic Classification Only
- ADR-003: Model Relationships as Directed Edges
- ADR-004: Apply Time Decay to Interaction Scores
- ADR-006: Detect Harassment via Composite Signals
- ADR-007: Plugin Implements Its Own Read Model
- ADR-008: Process Classification and Heavy Work Asynchronously
- ADR-009: Context-Aware Classification
- ADR-010: No Automated Enforcement Initially
- ADR-011: Privacy and Data Handling Transparency
- ADR-012: Classification Pipeline Delivery Semantics
- ADR-013: Support Postgres as Durable Harassment Store with JSONB for Classification
- ADR-015: Version LLM Prompts and Outputs
- ADR-016: Enforce Strict JSON Schema for LLM Output
- ADR-017: Support Reclassification Pipelines
- ADR-018: Multi-Tenant Isolation at Data Level
- ADR-019: Single Database with Logical Isolation
- ADR-020: Rate-Limit and Cache LLM Calls
- ADR-023: Expose Moderation Insights via Read API
- ADR-024: Keep Scoring Logic Deterministic and Versioned
- ADR-025: Use Optional Infrastructure Plugins for Shared Services
- ADR-026: Optional Admin Notifications for Moderator Attention
- ADR-005: Separate Event Storage from Aggregated State, folded into ADR-001
- ADR-014: Maintain Append-Only Event Store, folded into ADR-001
- ADR-021: Use Background Workers for All Heavy Processing, folded into ADR-008
- ADR-022: Store Minimal Necessary Message Content, folded into ADR-011