Skip to content

Architecture Decision Records

Snodo design decisions extracted from the development audit log and .snodo/bootstrap/decisions.md. Each ADR follows the Nygard format: Title, Status, Context, Decision, Consequences, Alternatives. One page or less each.

ADR Title Date Audit-log anchor
001 PyJWT over custom HMAC signing 2025-05-27 Task 7.7 (tokens.py)
002 Warn withholds approval in policy thresholds 2025-06-01 Policy semantic fix (policy.py)
003 ESCALATE as halt → resolve → resume 2025-05-27 Task 7.10 (loop.py)
004 Constraint predicate framework 2025-05-27 Task 7.8 (predicates/)
005 Protocol-adherence validator from mode profiles 2025-05-27 Task 7.11
006 Severity cap for validators under evaluation 2025-05-31 Task 7.17 (models.py)
007 Coder adapter + code-host provider pattern 2025-05-25 Tasks 4.10, 4.6
008 File-backed session checkpoint over in-memory state 2025-05-27 Task 7.3 (session.py)
009 FastMCP over custom MCP transport 2025-05-25 Task 4.5 (transport.py)
010 GitPython over subprocess for git operations 2025-05-25 Task 4.7 (git.py)
011 Typer over argparse for CLI 2025-05-25 Task 4.8 (main.py)