# 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
