# Development Workflow This document defines the default path from idea to released change. For branch policy, see [branching.md](branching.md). For release execution, see [release-process.md](release-process.md). For task quality gates, see [CHECKLISTS.md](CHECKLISTS.md). ## Workflow Overview ```mermaid flowchart LR Idea["Idea or Issue"] Clarify["Clarify Scope"] Design["Design or Plan"] Implement["Implement"] Validate["Validate"] Review["Review"] Merge["Merge"] Release["Release"] Learn["Review Outcome"] Idea --> Clarify Clarify --> Design Design --> Implement Implement --> Validate Validate --> Review Review --> Merge Merge --> Release Release --> Learn ``` ## 1. Clarify Scope Before implementation: - Define the objective. - Identify users or systems affected. - Confirm acceptance criteria. - Identify non-goals. - Note security, data, migration, and deployment risk. If the task is ambiguous, resolve ambiguity before writing code. ## 2. Design Or Plan Use a lightweight plan for most changes. Create or update an ADR in [DECISIONS.md](DECISIONS.md) when the change affects: - Architecture style. - Module boundaries. - Data ownership. - Security model. - Deployment strategy. - Public contracts. - Long-term operating cost. ## 3. Implement Implementation expectations: - Work in a focused branch unless the project policy says otherwise. - Read existing code before editing. - Follow [CONVENTIONS.md](CONVENTIONS.md). - Keep commits logically grouped. - Update documentation with behavior, setup, or architecture changes. ## 4. Validate Use the strongest practical validation for the change: - Build or type checks. - Unit tests. - Integration tests. - End-to-end tests. - Manual UI or API checks. - Documentation link checks. Record validation evidence in the pull request or final work summary. ## 5. Review Review should answer: - Does the change solve the stated problem? - Is it consistent with [ARCHITECTURE.md](ARCHITECTURE.md)? - Does it follow [CONVENTIONS.md](CONVENTIONS.md)? - Are risks and rollback needs clear? - Is validation sufficient? ## 6. Merge Before merge: - Required checks pass. - Review comments are resolved. - Branch is up to date according to project policy. - Release notes or changelog entries are added when relevant. ## 7. Release Follow [release-process.md](release-process.md). Release work should include: - Final readiness check. - Deployment. - Smoke test. - Monitoring. - Rollback readiness. ## 8. Review Outcome After meaningful releases or incidents: - Capture what worked. - Capture what failed. - Update checklists, docs, tests, or runbooks. - Add ADRs for decisions that emerged during delivery.