# ADR: [Decision Name] --- **Status**: Reverse-Documented **Source**: `[path to implementation code]` **Date**: [YYYY-MM-DD] **Decision Makers**: [User name or "inferred from code"] **Implementation Status**: [Deployed | Partial | Planned] --- > **⚠️ Reverse-Documentation Notice** > > This Architecture Decision Record was created **after** the implementation already > existed. It captures the current implementation approach and clarified rationale > based on code analysis and user consultation. Some context may be reconstructed > rather than contemporaneously documented. --- ## Context **Problem Statement**: [What problem did this implementation solve?] **Background** (inferred from code): - [Context 1 — why this problem needed solving] - [Context 2 — constraints at the time] - [Context 3 — alternatives that were likely considered] **System Scope**: [What parts of the codebase does this affect?] **Stakeholders**: - [Role 1]: [Their concern or requirement] - [Role 2]: [Their concern or requirement] --- ## Decision **Approach Taken** (as implemented): [Describe the architectural approach found in the code] **Key Implementation Details**: - [Detail 1]: [How it works] - [Detail 2]: [Pattern or structure used] - [Detail 3]: [Notable design choice] **Clarified Rationale** (from user): - [Reason 1 — why this approach was chosen] - [Reason 2 — what problem it solves] - [Reason 3 — what benefit it provides] **Code Locations**: - `[file/path 1]`: [What's there] - `[file/path 2]`: [What's there] --- ## Alternatives Considered *(These may be inferred or clarified with user)* ### Alternative 1: [Approach Name] **Description**: [What this alternative would have been] **Pros**: - ✅ [Advantage 1] - ✅ [Advantage 2] **Cons**: - ❌ [Disadvantage 1] - ❌ [Disadvantage 2] **Why Not Chosen**: [Reason — from user clarification or inference] ### Alternative 2: [Approach Name] **Description**: [What this alternative would have been] **Pros**: - ✅ [Advantage 1] - ✅ [Advantage 2] **Cons**: - ❌ [Disadvantage 1] - ❌ [Disadvantage 2] **Why Not Chosen**: [Reason] ### Alternative 3: [Status Quo / No Change] **Description**: [What "doing nothing" would mean] **Why Not Acceptable**: [Why the problem needed solving] --- ## Consequences ### Positive Consequences (Benefits Realized) ✅ **[Benefit 1]**: [How the implementation provides this] ✅ **[Benefit 2]**: [Impact] ✅ **[Benefit 3]**: [Impact] ### Negative Consequences (Trade-offs Accepted) ⚠️ **[Trade-off 1]**: [What was sacrificed or made harder] ⚠️ **[Trade-off 2]**: [Limitation or cost] ⚠️ **[Trade-off 3]**: [Complexity or maintenance burden] ### Neutral Consequences (Observations) ℹ️ **[Observation 1]**: [Emergent property or side effect] ℹ️ **[Observation 2]**: [Unexpected outcome] --- ## Implementation Notes **Patterns Used**: - [Pattern 1]: [Where and why] - [Pattern 2]: [Where and why] **Dependencies Introduced**: - [Dependency 1]: [Why needed] - [Dependency 2]: [Why needed] **Performance Characteristics**: - Time complexity: [O(n), etc.] - Space complexity: [Memory usage] - Bottlenecks: [Known performance concerns] **Thread Safety**: - [Thread safety approach — single-threaded, mutex-protected, lock-free, etc.] **Testing Strategy**: - [How this is tested — unit tests, integration tests, etc.] - Coverage: [Estimated or measured] --- ## Validation **How We Know This Works**: - ✅ [Evidence 1 — e.g., "6 months in production without issues"] - ✅ [Evidence 2 — e.g., "handles 10k entities at 60 FPS"] - ⚠️ [Evidence 3 — e.g., "works but needs monitoring"] **Known Issues** (discovered during analysis): - ⚠️ [Issue 1]: [Problem and potential fix] - ⚠️ [Issue 2]: [Problem and potential fix] **Risks**: - [Risk 1]: [Potential problem if X happens] - [Risk 2]: [Scalability concern] --- ## Open Questions **Unresolved During Reverse-Documentation**: 1. **[Question 1]**: [What's unclear about the decision or implementation?] - Needs clarification from: [Who] - Impact if unresolved: [Consequence] 2. **[Question 2]**: [What needs to be decided for future work?] --- ## Follow-Up Work **Immediate**: - [ ] [Task 1 — e.g., "Add missing unit tests"] - [ ] [Task 2 — e.g., "Document edge case handling"] **Short-Term**: - [ ] [Task 3 — e.g., "Refactor X for clarity"] - [ ] [Task 4 — e.g., "Add performance monitoring"] **Long-Term**: - [ ] [Task 5 — e.g., "Revisit decision when Y is available"] --- ## Related Decisions **Depends On** (ADRs this builds upon): - [ADR-XXX]: [Related decision] **Influences** (ADRs affected by this): - [ADR-YYY]: [How this impacts it] **Supersedes**: - [ADR-ZZZ]: [Old decision this replaces, if any] **Superseded By**: - [None yet | ADR-WWW if this decision is later replaced] --- ## References **Code Locations**: - `[path/file 1]`: [Primary implementation] - `[path/file 2]`: [Related code] **External Resources**: - [Article/Book]: [Relevant pattern or technique reference] - [Documentation]: [Engine or library docs consulted] **Design Documents**: - [GDD Section]: [If this implements a design] --- ## Version History | Date | Author | Changes | |------|--------|---------| | [Date] | Claude (reverse-doc) | Initial reverse-documentation from `[source path]` | | [Date] | [User] | Clarified rationale for [X] | --- ## Status Legend - **Proposed**: Under discussion, not implemented - **Accepted**: Decided, implementation in progress - **Deprecated**: No longer recommended, but may exist in code - **Superseded**: Replaced by another decision - **Reverse-Documented**: Created after implementation (this document) --- **Current Status**: **Reverse-Documented** --- *This ADR was generated by `/reverse-document architecture [path]`* --- ## Appendix: Code Snippets **Key Implementation Pattern**: ```[language] [Code snippet showing the core pattern or decision] ``` **Rationale**: [Why this code structure embodies the decision] **Alternative Approach** (not chosen): ```[language] [Code snippet showing what the alternative would look like] ``` **Why Not**: [Why the implemented approach was preferred]