# ADR-0005: Version Control Discipline ## Context Over time, the project codebase has accumulated multiple versioned copies of key scripts, templates, and specs using suffixes like `_v1`, `_v2`, `_v3` (e.g., `KisApiClient` versions, `build_anti_late_chase_v6.py`, `evaluate_qualitative_sell_strategy_accuracy_v1.py`). This creates duplicate maintenance overhead, increases directory clutter, and conflicts with the core philosophy of Git, which is designed to track historical revisions of a single file path. ## Decision 1. **No Suffix Sprawl**: We deprecate the practice of creating new file paths with version suffixes (e.g., `filename_v2.py`) for subsequent iterations of the same logic. All future modifications must be made directly to the primary, canonical file path. 2. **Git for History**: We will rely on Git tags, branches, and commit histories to track, audit, and revert changes to files. 3. **Consolidation**: Existing versioned files must be audited. When logic is promoted and stable, older version files must be deleted, and the latest logic must reside in the canonical, non-suffixed (or latest standardized) version. ## Consequences * Reduced file clutter in `tools/` and `spec/` directories. * Single source of truth per tool/script. * Clearer code reviews, as diffs will be tracked against the same file rather than comparing two different files.