Decision Records
Skill Profile
(Select at least one profile to enable specific modules)
Overview
Architecture Decision Records (ADRs) are lightweight documents that capture important architectural decisions and their rationale, providing a historical record that helps teams understand the "why" behind past choices. This skill provides a systematic approach to creating, managing, and maintaining ADRs, reducing time spent re-debating settled decisions and preventing knowledge loss when team members change. ADRs serve as both a communication tool for current team members and a learning resource for understanding system evolution over time.
Why This Matters
- Preserves Knowledge: Decisions outlive team members; ADRs prevent knowledge loss during turnover
- Reduces Re-debates: Clear documentation stops teams from revisiting settled decisions repeatedly
- Improves Decision Quality: Writing decisions forces thorough thinking about alternatives and trade-offs
- Enables Onboarding: New team members quickly understand architectural choices without needing to hunt through history
- Provides Accountability: Clear ownership and documentation of who made decisions and why
Core Concepts & Rules
1. Core Principles
- Follow established patterns and conventions
- Maintain consistency across codebase
- Document decisions and trade-offs
2. Implementation Guidelines
- Start with the simplest viable solution
- Iterate based on feedback and requirements
- Test thoroughly before deployment
Inputs / Outputs / Contracts
- Inputs:
- Decision context and requirements
- Alternative options being considered
- Constraints and trade-offs
- Stakeholder feedback
- Entry Conditions:
- Decision meets significance threshold
- Key stakeholders are available for review
- Sufficient information available to make decision
- Outputs:
- ADR document with standard template
- Decision status (Proposed/Accepted/Deprecated/Superseded)
- Documented consequences (positive and negative)
- Alternatives considered with rationale
- Artifacts Required (Deliverables):
- ADR markdown file
- Links to related ADRs
- Implementation notes (if applicable)
- Acceptance Evidence:
- ADR reviewed and approved by stakeholders
- Status marked as "Accepted"
- ADR stored in version control
- Related ADRs linked
- Success Criteria:
- Decision rationale clearly documented
- Alternatives thoroughly considered
- Consequences honestly listed (positive and negative)
- ADR discoverable and accessible to team
Skill Composition
Quick Start / Implementation Example
- Review requirements and constraints
- Set up development environment
- Implement core functionality following patterns
- Write tests for critical paths
- Run tests and fix issues
- Document any deviations or decisions
# Example implementation following best practices
def example_function():
# Your implementation here
pass
Assumptions / Constraints / Non-goals
- Assumptions:
- Development environment is properly configured
- Required dependencies are available
- Team has basic understanding of domain
- Constraints:
- Must follow existing codebase conventions
- Time and resource limitations
- Compatibility requirements
- Non-goals:
- This skill does not cover edge cases outside scope
- Not a replacement for formal training
Compatibility & Prerequisites
- Supported Versions:
- Python 3.8+
- Node.js 16+
- Modern browsers (Chrome, Firefox, Safari, Edge)
- Required AI Tools:
- Code editor (VS Code recommended)
- Testing framework appropriate for language
- Version control (Git)
- Dependencies:
- Language-specific package manager
- Build tools
- Testing libraries
- Environment Setup:
.env.example keys: API_KEY, DATABASE_URL (no values)
Test Scenario Matrix (QA Strategy)
| Type |
Focus Area |
Required Scenarios / Mocks |
| Unit |
Core Logic |
Must cover primary logic and at least 3 edge/error cases. Target minimum 80% coverage |
| Integration |
DB / API |
All external API calls or database connections must be mocked during unit tests |
| E2E |
User Journey |
Critical user flows to test |
| Performance |
Latency / Load |
Benchmark requirements |
| Security |
Vuln / Auth |
SAST/DAST or dependency audit |
| Frontend |
UX / A11y |
Accessibility checklist (WCAG), Performance Budget (Lighthouse score) |
Technical Guardrails & Security Threat Model
1. Security & Privacy (Threat Model)
- Top Threats: Injection attacks, authentication bypass, data exposure
2. Performance & Resources
3. Architecture & Scalability
4. Observability & Reliability
Agent Directives & Error Recovery
(ข้อกำหนดสำหรับ AI Agent ในการคิดและแก้ปัญหาเมื่อเกิดข้อผิดพลาด)
- Thinking Process: Analyze root cause before fixing. Do not brute-force.
- Fallback Strategy: Stop after 3 failed test attempts. Output root cause and ask for human intervention/clarification.
- Self-Review: Check against Guardrails & Anti-patterns before finalizing.
- Output Constraints: Output ONLY the modified code block. Do not explain unless asked.
Definition of Done (DoD) Checklist
Anti-patterns / Pitfalls
- ⛔ Don't: Log PII, catch-all exception, N+1 queries
- ⚠️ Watch out for: Common symptoms and quick fixes
- 💡 Instead: Use proper error handling, pagination, and logging
Reference Links & Examples
- Internal documentation and examples
- Official documentation and best practices
- Community resources and discussions
Versioning & Changelog
- Version: 1.0.0
- Changelog:
- 2026-02-22: Initial version with complete template structure
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: decision-records3description: Architecture Decision Records (ADRs) are lightweight documents that capture Use when this capability is needed.4---56# Decision Records78## Skill Profile9*(Select at least one profile to enable specific modules)*10- [ ] **DevOps**11- [x] **Backend**12- [ ] **Frontend**13- [ ] **AI-RAG**14- [ ] **Security Critical**1516## Overview17Architecture Decision Records (ADRs) are lightweight documents that capture important architectural decisions and their rationale, providing a historical record that helps teams understand the "why" behind past choices. This skill provides a systematic approach to creating, managing, and maintaining ADRs, reducing time spent re-debating settled decisions and preventing knowledge loss when team members change. ADRs serve as both a communication tool for current team members and a learning resource for understanding system evolution over time.1819## Why This Matters20- **Preserves Knowledge**: Decisions outlive team members; ADRs prevent knowledge loss during turnover21- **Reduces Re-debates**: Clear documentation stops teams from revisiting settled decisions repeatedly22- **Improves Decision Quality**: Writing decisions forces thorough thinking about alternatives and trade-offs23- **Enables Onboarding**: New team members quickly understand architectural choices without needing to hunt through history24- **Provides Accountability**: Clear ownership and documentation of who made decisions and why2526---2728## Core Concepts & Rules2930### 1. Core Principles31- Follow established patterns and conventions32- Maintain consistency across codebase33- Document decisions and trade-offs3435### 2. Implementation Guidelines36- Start with the simplest viable solution37- Iterate based on feedback and requirements38- Test thoroughly before deployment394041## Inputs / Outputs / Contracts42* **Inputs**:43 - Decision context and requirements44 - Alternative options being considered45 - Constraints and trade-offs46 - Stakeholder feedback47* **Entry Conditions**:48 - Decision meets significance threshold49 - Key stakeholders are available for review50 - Sufficient information available to make decision51* **Outputs**:52 - ADR document with standard template53 - Decision status (Proposed/Accepted/Deprecated/Superseded)54 - Documented consequences (positive and negative)55 - Alternatives considered with rationale56* **Artifacts Required (Deliverables)**:57 - ADR markdown file58 - Links to related ADRs59 - Implementation notes (if applicable)60* **Acceptance Evidence**:61 - ADR reviewed and approved by stakeholders62 - Status marked as "Accepted"63 - ADR stored in version control64 - Related ADRs linked65* **Success Criteria**:66 - Decision rationale clearly documented67 - Alternatives thoroughly considered68 - Consequences honestly listed (positive and negative)69 - ADR discoverable and accessible to team7071## Skill Composition72* **Depends on**: [architectural-reviews](../architectural-reviews/SKILL.md), [system-thinking](../system-thinking/SKILL.md)73* **Compatible with**: [risk-assessment](../risk-assessment/SKILL.md), [technical-debt-management](../technical-debt-management/SKILL.md)74* **Conflicts with**: None75* **Related Skills**: [problem-framing](../problem-framing/SKILL.md), [code-review](../01-foundations/code-review/SKILL.md)7677---7879## Quick Start / Implementation Example80811. Review requirements and constraints822. Set up development environment833. Implement core functionality following patterns844. Write tests for critical paths855. Run tests and fix issues866. Document any deviations or decisions8788```python89# Example implementation following best practices90def example_function():91 # Your implementation here92 pass93```949596## Assumptions / Constraints / Non-goals9798* **Assumptions**:99 - Development environment is properly configured100 - Required dependencies are available101 - Team has basic understanding of domain102* **Constraints**:103 - Must follow existing codebase conventions104 - Time and resource limitations105 - Compatibility requirements106* **Non-goals**:107 - This skill does not cover edge cases outside scope108 - Not a replacement for formal training109110111## Compatibility & Prerequisites112113* **Supported Versions**:114 - Python 3.8+115 - Node.js 16+116 - Modern browsers (Chrome, Firefox, Safari, Edge)117* **Required AI Tools**:118 - Code editor (VS Code recommended)119 - Testing framework appropriate for language120 - Version control (Git)121* **Dependencies**:122 - Language-specific package manager123 - Build tools124 - Testing libraries125* **Environment Setup**:126 - `.env.example` keys: `API_KEY`, `DATABASE_URL` (no values)127128129## Test Scenario Matrix (QA Strategy)130131| Type | Focus Area | Required Scenarios / Mocks |132| :--- | :--- | :--- |133| **Unit** | Core Logic | Must cover primary logic and at least 3 edge/error cases. Target minimum 80% coverage |134| **Integration** | DB / API | All external API calls or database connections must be mocked during unit tests |135| **E2E** | User Journey | Critical user flows to test |136| **Performance** | Latency / Load | Benchmark requirements |137| **Security** | Vuln / Auth | SAST/DAST or dependency audit |138| **Frontend** | UX / A11y | Accessibility checklist (WCAG), Performance Budget (Lighthouse score) |139140141## Technical Guardrails & Security Threat Model142143### 1. Security & Privacy (Threat Model)144* **Top Threats**: Injection attacks, authentication bypass, data exposure145- [ ] **Data Handling**: Sanitize all user inputs to prevent Injection attacks. Never log raw PII146- [ ] **Secrets Management**: No hardcoded API keys. Use Env Vars/Secrets Manager147- [ ] **Authorization**: Validate user permissions before state changes148149### 2. Performance & Resources150- [ ] **Execution Efficiency**: Consider time complexity for algorithms151- [ ] **Memory Management**: Use streams/pagination for large data152- [ ] **Resource Cleanup**: Close DB connections/file handlers in finally blocks153154### 3. Architecture & Scalability155- [ ] **Design Pattern**: Follow SOLID principles, use Dependency Injection156- [ ] **Modularity**: Decouple logic from UI/Frameworks157158### 4. Observability & Reliability159- [ ] **Logging Standards**: Structured JSON, include trace IDs `request_id`160- [ ] **Metrics**: Track `error_rate`, `latency`, `queue_depth`161- [ ] **Error Handling**: Standardized error codes, no bare except162- [ ] **Observability Artifacts**:163 - **Log Fields**: timestamp, level, message, request_id164 - **Metrics**: request_count, error_count, response_time165 - **Dashboards/Alerts**: High Error Rate > 5%166167168## Agent Directives & Error Recovery169*(ข้อกำหนดสำหรับ AI Agent ในการคิดและแก้ปัญหาเมื่อเกิดข้อผิดพลาด)*170171- **Thinking Process**: Analyze root cause before fixing. Do not brute-force.172- **Fallback Strategy**: Stop after 3 failed test attempts. Output root cause and ask for human intervention/clarification.173- **Self-Review**: Check against Guardrails & Anti-patterns before finalizing.174- **Output Constraints**: Output ONLY the modified code block. Do not explain unless asked.175176177## Definition of Done (DoD) Checklist178179- [ ] Tests passed + coverage met180- [ ] Lint/Typecheck passed181- [ ] Logging/Metrics/Trace implemented182- [ ] Security checks passed183- [ ] Documentation/Changelog updated184- [ ] Accessibility/Performance requirements met (if frontend)185186187## Anti-patterns / Pitfalls188189* ⛔ **Don't**: Log PII, catch-all exception, N+1 queries190* ⚠️ **Watch out for**: Common symptoms and quick fixes191* 💡 **Instead**: Use proper error handling, pagination, and logging192193194## Reference Links & Examples195196* Internal documentation and examples197* Official documentation and best practices198* Community resources and discussions199200201## Versioning & Changelog202203* **Version**: 1.0.0204* **Changelog**:205 - 2026-02-22: Initial version with complete template structure206207---208> Converted and distributed by [TomeVault](https://tomevault.io/claim/amnadtaowsoam) — claim your Tome and manage your conversions.209<!-- tomevault:4.0:skill_md:2026-04-13 -->