# Architecture Decision Records (ADRs) This directory contains Architecture Decision Records (ADRs) for SYNTAXIS - significant architectural and design decisions, their rationale, and implications. ## What is an ADR? An ADR documents a significant architectural decision, the reasoning behind it, and trade-offs considered. Each ADR: - Describes a specific decision - Explains the problem and context - Lists alternatives considered - States the decision and rationale - Documents trade-offs and implications ## Index ### ADR-001: Wrapper Architecture Strategy **Status**: DEPRECATED (See ADR-002 for deployment wrappers) **Date**: 2025-11-17 ~~Analyzes installation orchestrator wrappers (`provision.sh`). Deprecated in favor of ADR-002 which focuses on runtime deployment wrappers.~~ **Files**: [ADR-001-wrapper-architecture-strategy.md](./ADR-001-wrapper-architecture-strategy.md) --- ### ADR-002: Bundle Wrapper Deployment Architecture **Status**: ACCEPTED **Date**: 2025-11-17 Defines three-layer wrapper deployment for bundle installations: 1. **Bash Wrapper** (`~/.cargo/bin/syntaxis-cli`) - Sets environment variables - Calls NuShell wrapper 2. **NuShell Wrapper** (`~/.config/syntaxis/scripts/syntaxis-cli.nu`) - Discovers configuration files - Auto-injects `--config` path - Calls actual binary 3. **Real Binary** (`~/.cargo/bin/syntaxis-cli.real`) - Actual compiled executable **Decision**: Bundle installations should create the same wrapper structure as development installations for consistent UX. **Key Insight**: Users should NOT have to type `--config path` every time (frequent burden). Wrappers solve this. **Files**: [ADR-002-bundle-wrapper-deployment.md](./ADR-002-bundle-wrapper-deployment.md) --- ## How to Use These ADRs 1. **Read the Decision**: Start with "Decision" section 2. **Understand the Rationale**: See "Problem Statement" and analysis 3. **Review Trade-offs**: Consider both sides 4. **Check Status**: Is this PROPOSED, ACCEPTED, SUPERSEDED? ## Contributing When proposing a new ADR: 1. Create `ADR-NNN-short-title.md` in this directory 2. Use template from existing ADRs 3. Include decision, rationale, trade-offs 4. Update this README with reference ## Decision Status Reference - **PROPOSED**: Under review, not yet accepted - **ACCEPTED**: Approved, implementation proceeding - **IMPLEMENTED**: Completed and in production - **SUPERSEDED**: Replaced by newer ADR (reference new one) - **DEPRECATED**: No longer relevant --- **SYNTAXIS** v0.1.0