Skip to main content

Architecture Decision Records (ADRs)

Architectural decisions for the Noxys platform. Each ADR documents the context, decision, and consequences of a significant architectural choice.

Source of truth: this directory (docs/adr/). The Obsidian vault (03 - Decisions/) contains pointer files referencing this location.

Status legend

  • Proposed — under discussion
  • Accepted — current decision
  • Superseded — replaced by a newer ADR
  • Deprecated — no longer relevant

Index

#TitleStatus
004ADR 004 — Detection: Hybrid Go-native + Python Presidio SidecarAccepted
005ADR 005 — Infrastructure as Code: OpenTofu + Helm + Ansible (+ Docker Compose, Air-gap)Accepted
006ADR 006 — Voice DLP Strategy: 4-Phase Tiered Rollout with Whisper.cppProposed
007ADR-007: ML Training Forge ChoiceAccepted
008ADR-008 — Helm Chart Organization (Option C: Hybrid)Accepted
009ADR-009 — Three Deployment Modes Strategy (Extension / Agent / Proxy)Accepted
010ADR-010 — Pricing 3 tiers (Free / Pro / Enterprise) (internal)Accepted
011ADR-011 — Multi-modal detection pipeline (image / audio / video / code)Accepted
012ADR-012 — LiteLLM bundled as Python sidecar inside noxys-proxy (no standalone service)Accepted
013ADR-013 — Extension versioning strategyAccepted
014ADR-014 — AI placement strategy (internal)Accepted
015ADR-015 — Extension UX modes & lexicon refactorAccepted
016ADR-016 — Compliance frameworks (customer-facing)Accepted
017ADR-017 — Product compliance postureAccepted
018ADR-018 — Subscription lifecycle architecture (internal)Accepted
019ADR-019 — Prompt capture, storage, retention & sovereigntyAccepted
020ADR-020 — Interaction lineage visualizationAccepted
021ADR-021 — TanStack Query + Table adoptionAccepted
022ADR-022 — UsersPage V2 specAccepted
024ADR-024 — Authentication & MFA strategyAccepted
026ADR-026 — API completeness & OpenAPI policyAccepted
028ADR-028 — Core product priority: AI catalog + leakage detection + conditional prompt storage (internal)Accepted
029ADR-029 — Content-free session forensics & MCP enforcement (response to Varonis/Cursor)Accepted

Workflow

Creating a new ADR

  1. Pick the next available number (do not reuse gaps).
  2. Copy _template.md to adr-NNN-short-slug.md.
  3. Fill in Status, Context, Decision, Consequences.
  4. Update this README index.
  5. Open a PR — base staging.

Validation

Run scripts/check-adr-format.sh before opening a PR. The script verifies every ADR has Status, Context, Decision, and Consequences sections.

Numbering policy

ADR numbers are stable — never renumber. Gaps (e.g. missing 023, 025, 027) are intentional; renumbering breaks external references.