# Architecture Decision Records (ADRs) This directory contains all Architecture Decision Records for the provisioning platform. ADRs document significant architectural decisions and their rationale. ## Index of Decisions ### Core Architecture (ADR-001 to ADR-006) - **ADR-001**: [Project Structure](adr-001-project-structure.md) - Overall project organization and directory layout - **ADR-002**: [Distribution Strategy](adr-002-distribution-strategy.md) - How the platform is packaged and distributed - **ADR-003**: [Workspace Isolation](adr-003-workspace-isolation.md) - Workspace management and isolation boundaries - **ADR-004**: [Hybrid Architecture](adr-004-hybrid-architecture.md) - Rust/Nushell hybrid system design - **ADR-005**: [Extension Framework](adr-005-extension-framework.md) - Plugin/extension system architecture - **ADR-006**: [Provisioning CLI Refactoring](adr-006-provisioning-cli-refactoring.md) - CLI modularization and command handling ### Infrastructure & Configuration (ADR-007 to ADR-011) - **ADR-007**: [KMS Simplification](adr-007-kms-simplification.md) - Key Management System design - **ADR-008**: [Cedar Authorization](adr-008-cedar-authorization.md) - Fine-grained authorization via Cedar policies - **ADR-009**: [Security System Complete](adr-009-security-system-complete.md) - Comprehensive security implementation - **ADR-010**: [Configuration Format Strategy](adr-010-configuration-format-strategy.md) - When to use Nickel, TOML, YAML, or KCL - **ADR-011**: [Nickel Migration](adr-011-nickel-migration.md) - Migration from KCL to Nickel as primary IaC language ### Platform Services (ADR-012) - **ADR-012**: [Nushell Nickel Plugin CLI Wrapper](adr-012-nushell-nickel-plugin-cli-wrapper.md) - Plugin architecture for Nickel integration ## How to Use ADRs 1. **For decisions affecting architecture**: Create a new ADR with the next sequential number 2. **For reading decisions**: Browse this list or check SUMMARY.md 3. **For understanding context**: Each ADR includes context, rationale, and consequences ## ADR Format Each ADR follows this standard structure: - **Context**: What problem we're solving - **Decision**: What we decided - **Rationale**: Why we chose this approach - **Consequences**: Positive and negative impacts - **Alternatives Considered**: Other options we evaluated ## Status Markers - **Proposed**: Under review, not yet final - **Accepted**: Approved and adopted - **Superseded**: Replaced by a later ADR - **Deprecated**: No longer recommended --- **Last Updated**: 2025-01-03 **Total ADRs**: 12