Purpose: Document significant architectural decisions for AI CLI Preparation Phase 2
An Architecture Decision Record (ADR) captures a single architectural decision along with its context, consequences, and rationale. ADRs help teams:
- Understand why decisions were made
- Avoid revisiting settled decisions
- Onboard new contributors quickly
- Track architectural evolution over time
Create an ADR when making decisions that:
- Impact system architecture or design patterns
- Affect multiple components or modules
- Have long-term consequences
- Involve trade-offs between competing approaches
- May be questioned or revisited in the future
# ADR-NNN: Title
**Status:** Proposed | Accepted | Deprecated | Superseded by ADR-XXX
**Date:** YYYY-MM-DD
**Deciders:** List of people involved in decision
**Tags:** keyword1, keyword2
## Context
What is the issue we're trying to solve? What are the constraints? What alternatives did we consider?
## Decision
What decision did we make? Be specific and actionable.
## Rationale
Why did we choose this approach? What factors influenced the decision?
## Consequences
### Positive
- What benefits does this decision bring?
### Negative
- What downsides or trade-offs exist?
### Neutral
- What side effects are neither good nor bad?
## Alternatives Considered
### Alternative 1: Name
- Description
- Pros
- Cons
- Why rejected
## Implementation Notes
Any specific guidance for implementation?
## References
- Links to related docs, RFCs, issues, etc.- Proposed: Draft created, under discussion
- Accepted: Decision finalized, ready for implementation
- Deprecated: No longer valid but kept for historical context
- Superseded: Replaced by newer ADR (link to replacement)
ADRs are immutable once accepted. To change a decision:
- Create a new ADR that supersedes the old one
- Update the old ADR's status:
Superseded by ADR-XXX - Link the new ADR back to the old one in References
| ADR | Title | Status | Date | Tags |
|---|---|---|---|---|
| 001 | Context-Aware Installation Modes | Accepted | 2025-10-09 | installation, environment-detection |
| 002 | Package Manager Preference Hierarchy | Accepted | 2025-10-09 | package-managers, installation |
| 003 | Parallel Installation Approach | Accepted | 2025-10-09 | reconciliation, installation |
| 004 | Always-Latest Version Policy | Accepted | 2025-10-09 | versioning, upgrades |
| 005 | Environment Detection Logic | Accepted | 2025-10-09 | environment-detection, context-aware |
| 006 | Configuration File Format | Accepted | 2025-10-09 | configuration, yaml |
| 007 | Generic Tool Installation Architecture | Accepted | 2026-02-25 | installation, catalog, generic-installer |
| 008 | Makefile Pattern Target Fallback Chain | Accepted | 2026-02-25 | makefile, installation, pattern-targets |
Installation Strategy:
- ADR-001: Context-Aware Installation Modes
- ADR-002: Package Manager Preference Hierarchy
- ADR-003: Parallel Installation Approach
- ADR-007: Generic Tool Installation Architecture
- ADR-008: Makefile Pattern Target Fallback Chain
Version Management:
- ADR-004: Always-Latest Version Policy
Environment and Configuration:
- ADR-005: Environment Detection Logic
- ADR-006: Configuration File Format
installation: ADR-001, ADR-002, ADR-003, ADR-007, ADR-008 environment-detection: ADR-001, ADR-005 versioning: ADR-004 configuration: ADR-006 reconciliation: ADR-003 package-managers: ADR-002 catalog: ADR-007 makefile: ADR-008 pattern-targets: ADR-008 generic-installer: ADR-007
- Copy the ADR template above
- Number it sequentially (e.g., ADR-007)
- Write the ADR in
docs/adr/ADR-NNN-title.md - Set status to "Proposed"
- Submit for review (PR or discussion)
- Update this README index after acceptance
- Technical Review: Validate technical soundness
- Stakeholder Review: Ensure alignment with project goals
- Consensus: Reach agreement among deciders
- Acceptance: Update status to "Accepted", merge
- Be Specific: Avoid vague decisions like "use best practices"
- Document Trade-offs: Explain what you're giving up
- Link Evidence: Reference benchmarks, docs, RFCs
- Keep Concise: Aim for 1-2 pages per ADR
- Use Examples: Concrete examples clarify abstract decisions
- PRD.md - Product Requirements Document
- PHASE2_IMPLEMENTATION.md - Implementation roadmap
- CONFIGURATION_SPEC.md - Configuration file specification
- ARCHITECTURE.md - System architecture overview
Last Updated: 2026-02-25 Maintainer: AI CLI Preparation Team