Skip to content

Add architecture decision records (ADRs) #36

@rolandpg

Description

@rolandpg

Summary

Document key architecture decisions as ADRs (Architecture Decision Records).

Context

ADRs explain why things are built the way they are. They help contributors and users understand trade-offs without reading through commit history or Slack threads.

  • Directory to create: docs/adr/
  • Format: Michael Nygard's ADR template (Status, Context, Decision, Consequences)

Acceptance Criteria

  • Create docs/adr/ directory with a README.md explaining the ADR format
  • Write at least 4 ADRs:
    • ADR-001: JSONL for community storage — Why not SQLite from day one? (simplicity, append-only, human-readable, zero config)
    • ADR-002: Blended retrieval (vector + graph) — Why not vector-only? (graph adds entity relationships, intent routing weights both)
    • ADR-003: In-process LLM (llama-cpp-python) — Why not API-only? (offline-first, no API keys, security-conscious users)
    • ADR-004: STIX 2.1 entity types — Why not custom types? (interoperability, industry standard, OpenCTI compatibility)
  • Each ADR has: Title, Date, Status (Accepted), Context (2-3 sentences), Decision (1-2 sentences), Consequences (pros and cons)
  • Each ADR is 100-300 words (concise, not essays)
  • ADRs are numbered sequentially and listed in docs/adr/README.md

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions