# Definition of Done Mandatory exit criteria for every implementation phase. A phase **cannot** be marked Complete until every item below is satisfied for **that phase’s boundary**. This document is part of the Enterprise Development Framework ([ADR-018](../architecture/adr/ADR-018.md), [ADR-019](../architecture/adr/ADR-019.md)). ## Absolute Rules 1. **Enterprise Phase Discovery first.** A Discovery Record must exist and all Missing→Implement gaps must be closed ([enterprise-phase-discovery.md](enterprise-phase-discovery.md)). 2. **Feature-complete for the phase boundary.** All required business capabilities of *this* phase must be implemented — not sketched, stubbed, or deferred as TODO. 3. **CRUD is never sufficient.** Listing create/read/update/delete endpoints does not equal a production-ready phase. Domain rules, validation, permissions, events, audit, tenancy, tests, and operational surfaces are mandatory. 4. **Derive missing technical components.** If the roadmap or phase brief describes a module only at a high level, the implementation **must** derive every missing technical component required for production readiness **while remaining inside the current phase** ([mandatory-phase-artifacts.md](mandatory-phase-artifacts.md), Discovery gap analysis). 5. **Never pull future-phase functionality forward.** Stay inside Scope; leave Out of Scope untouched ([boundary-rules.md](boundary-rules.md)). 6. **Never claim Complete with open gaps.** Missing artifacts must be implemented before status flips to Complete — not logged as “known limitations” unless truly out of phase boundary with written justification. ## Phase Definition of Done Checklist ### Discovery - [ ] Enterprise Phase Discovery Record published in the phase doc - [ ] All Discovery Inputs reviewed (or N/A justified for docs-only phases) - [ ] Gap analysis complete; Missing→Implement items closed - [ ] Future-phase and other-service items explicitly excluded ### Business - [ ] Business Analysis for this phase recorded (objectives, actors, capabilities, non-goals) - [ ] Every in-scope / Discovery-promoted business capability is implemented end-to-end inside the phase boundary - [ ] Domain invariants and illegal transitions are enforced (not only happy-path CRUD) - [ ] Seed data included when the phase requires bootstrap/reference data ### Architecture & Domain - [ ] Architecture Validation passed against ADRs and module boundaries - [ ] Domain Modeling complete (bounded context, aggregates, entities, value objects as needed) - [ ] Aggregate Design documented and reflected in models - [ ] Entity Design per [entity-template.md](entity-template.md) - [ ] DTO Design per [api-template.md](api-template.md) - [ ] Provider Interfaces defined when external systems are involved ### Application Layers - [ ] Repository Design per [repository-template.md](repository-template.md) - [ ] Service Design per [service-layer-template.md](service-layer-template.md) - [ ] Specification Pattern for reusable query/business predicates where applicable - [ ] Policy Layer for authorization/entitlement/domain policies where applicable - [ ] Commands for state-changing use cases (explicit command handlers or service command methods) - [ ] Queries for read use cases (explicit query paths; no accidental write side-effects) - [ ] Validation Layer (Pydantic + domain validators) - [ ] Dependency Injection / explicit deps wiring consistent with the service pattern ### APIs & Contracts - [ ] REST APIs for in-scope resources - [ ] Capability APIs (`/capabilities` or equivalent) when the service exposes discoverable features - [ ] Health APIs (`/health`) - [ ] Metrics endpoint or documented N/A with operational alternative - [ ] Permission APIs or documented permission tree registration for the phase - [ ] OpenAPI documentation generated/updated and accurate for new routes - [ ] Pagination, Filtering, Sorting, Searching on list endpoints where collections exist ### Cross-Cutting - [ ] Soft Delete policy applied where master/business records require it - [ ] Optimistic Locking where concurrent updates are a domain risk - [ ] Audit Trail for state-changing business actions - [ ] Outbox Events for cross-service-relevant state changes ([event-template.md](event-template.md)) - [ ] Tenant Isolation on schema, queries, APIs, and tests - [ ] Migration(s) in the owning service database only - [ ] Background Jobs when the phase requires async/scheduled work - [ ] Configuration via env/settings (no hardcoded secrets/brand) - [ ] Feature Flags when the phase introduces gated capabilities ### Quality - [ ] Unit Tests - [ ] Integration / API Tests - [ ] Architecture Tests (boundary/layering) per service pattern - [ ] Security Tests - [ ] Performance Validation (hot paths covered or justified N/A) - [ ] Documentation complete per [documentation-template.md](documentation-template.md) - [ ] Self Audit complete ([development-loop.md](development-loop.md)) - [ ] Enterprise Completeness verification passed ([enterprise-completeness.md](enterprise-completeness.md)) - [ ] All [quality-gates.md](quality-gates.md) Pass - [ ] [phase-handover.md](phase-handover.md) filled - [ ] No TODO/FIXME for claimed deliverables ## What “Derive Missing Components” Means When a phase brief says only “implement X module,” the agent **must** still deliver the full production stack for X inside the phase: | If the brief mentions… | Also deliver… | | --- | --- | | Entities / tables | Migrations, soft-delete, tenant_id, indexes, audit fields | | APIs | DTOs, validation, pagination/filter/sort/search, permissions, OpenAPI | | Business rules | Services, validators, specifications, policies, commands/queries | | Integrations | Provider interfaces, events/outbox — never foreign DB access | | Operability | Health, metrics (or justified N/A), config, logging | Do **not** invent new business products outside the phase. Do **derive** engineering completeness for what the phase owns. ## Relationship to Quality Gates Definition of Done is the **product completeness** bar. Quality Gates are the **verification** bar. Both must pass ([quality-gates.md](quality-gates.md), [enterprise-completeness.md](enterprise-completeness.md)). ## Related Documents - [Enterprise Phase Discovery](enterprise-phase-discovery.md) - [Mandatory Phase Artifacts](mandatory-phase-artifacts.md) - [Enterprise Completeness](enterprise-completeness.md) - [Boundary Rules](boundary-rules.md) - [Development Loop](development-loop.md) - [Phase Handover](phase-handover.md) - [ADR-018](../architecture/adr/ADR-018.md) - [ADR-019](../architecture/adr/ADR-019.md)