UNPKG

@jmkim85/dev-flow-mcp

Version:

MCP-based Dev Flow - AI-powered development workflow management with 13 essential tools for TDD and context management

323 lines (262 loc) 8.37 kB
# Completion Conditions Guide - Dev Flow MCP **Version**: 2.3.0 **Date**: [Date] **Purpose**: Standardized completion criteria for tasks and stages ## 📋 Overview Completion conditions provide machine-readable, quantifiable criteria for determining when tasks and stages are truly complete. This eliminates subjective completion decisions and ensures consistent quality standards. ## 🎯 Standard Completion Conditions ### Core Testing Conditions #### `tests_pass` - **Description**: All tests must pass without failures - **Usage**: Essential for any task involving code changes - **Example**: `completion_conditions: ["tests_pass"]` - **Validation**: Runs project test command and checks exit code - **Common Use**: Every development task #### `coverage>X` - **Description**: Test coverage must exceed specified percentage - **Usage**: Ensures adequate test coverage for quality assurance - **Example**: `completion_conditions: ["coverage>80"]` - **Validation**: Analyzes test coverage reports - **Common Use**: Core functionality, critical features - **Recommended Thresholds**: - `coverage>60`: Minimum for basic features - `coverage>80`: Standard for core functionality - `coverage>90`: Critical business logic - `coverage>95`: Security-sensitive code ### Code Quality Conditions #### `eslint=0` - **Description**: No ESLint errors (for JavaScript/TypeScript projects) - **Usage**: Ensures code follows style guidelines and best practices - **Example**: `completion_conditions: ["eslint=0"]` - **Validation**: Runs ESLint and checks error count - **Common Use**: All JavaScript/TypeScript tasks #### `build_success` - **Description**: Project builds without errors - **Usage**: Ensures code compiles and dependencies resolve - **Example**: `completion_conditions: ["build_success"]` - **Validation**: Runs build command and checks exit code - **Common Use**: Setup tasks, major refactoring #### `no_todos` - **Description**: No TODO comments remain in code - **Usage**: Ensures all temporary markers are resolved - **Example**: `completion_conditions: ["no_todos"]` - **Validation**: Scans codebase for TODO/FIXME comments - **Common Use**: Final tasks, documentation, cleanup ### Documentation Conditions #### `docs_updated` - **Description**: Documentation reflects current implementation - **Usage**: Ensures documentation stays current with code changes - **Example**: `completion_conditions: ["docs_updated"]` - **Validation**: Checks if docs were modified recently - **Common Use**: API changes, new features #### `readme_complete` - **Description**: README file contains required sections - **Usage**: Ensures project documentation is comprehensive - **Example**: `completion_conditions: ["readme_complete"]` - **Validation**: Checks for standard README sections - **Common Use**: Project setup, documentation tasks ### Performance Conditions #### `performance_acceptable` - **Description**: Performance benchmarks meet requirements - **Usage**: Ensures performance standards are maintained - **Example**: `completion_conditions: ["performance_acceptable"]` - **Validation**: Runs performance tests and checks metrics - **Common Use**: Optimization tasks, critical features #### `memory_leak_free` - **Description**: No memory leaks detected - **Usage**: Ensures application stability - **Example**: `completion_conditions: ["memory_leak_free"]` - **Validation**: Runs memory profiling tools - **Common Use**: Long-running processes, optimization ### Security Conditions #### `security_scan_pass` - **Description**: Security vulnerability scan passes - **Usage**: Ensures no known security issues - **Example**: `completion_conditions: ["security_scan_pass"]` - **Validation**: Runs security scanning tools - **Common Use**: Authentication, data handling #### `dependencies_secure` - **Description**: All dependencies are secure and up-to-date - **Usage**: Ensures supply chain security - **Example**: `completion_conditions: ["dependencies_secure"]` - **Validation**: Checks for vulnerable dependencies - **Common Use**: Setup tasks, dependency updates ## 🏗️ Task Type Recommendations ### Setup Tasks ```yaml completion_conditions: - "build_success" - "tests_pass" - "dependencies_secure" ``` ### Core Development Tasks ```yaml completion_conditions: - "tests_pass" - "coverage>80" - "eslint=0" - "build_success" ``` ### Feature Implementation ```yaml completion_conditions: - "tests_pass" - "coverage>85" - "eslint=0" - "docs_updated" ``` ### Bug Fixes ```yaml completion_conditions: - "tests_pass" - "coverage>75" - "eslint=0" ``` ### Performance Tasks ```yaml completion_conditions: - "tests_pass" - "performance_acceptable" - "memory_leak_free" - "build_success" ``` ### Security Tasks ```yaml completion_conditions: - "tests_pass" - "security_scan_pass" - "dependencies_secure" - "eslint=0" ``` ### Documentation Tasks ```yaml completion_conditions: - "docs_updated" - "readme_complete" - "no_todos" - "tests_pass" ``` ### Cleanup/Refactoring Tasks ```yaml completion_conditions: - "tests_pass" - "coverage>80" - "eslint=0" - "no_todos" - "build_success" ``` ## 🔧 Custom Conditions ### Language-Specific Conditions #### Python Projects - `pylint=0`: No PyLint errors - `mypy_pass`: Type checking passes - `black_formatted`: Code is properly formatted #### Java Projects - `checkstyle=0`: No Checkstyle violations - `spotbugs=0`: No SpotBugs issues - `jacoco>80`: JaCoCo coverage threshold #### Rust Projects - `clippy=0`: No Clippy warnings - `rustfmt_check`: Code is properly formatted - `cargo_audit_pass`: No security advisories #### Go Projects - `go_vet_pass`: Go vet passes - `gofmt_check`: Code is properly formatted - `golint=0`: No golint issues ### Project-Specific Conditions #### API Projects - `api_tests_pass`: API integration tests pass - `swagger_updated`: API documentation is current - `rate_limit_tested`: Rate limiting is tested #### Frontend Projects - `e2e_tests_pass`: End-to-end tests pass - `accessibility_check`: Accessibility standards met - `bundle_size_ok`: Bundle size within limits #### Library Projects - `examples_work`: All examples execute successfully - `api_stable`: Public API is stable - `backwards_compatible`: No breaking changes ## 📊 Condition Combinations ### Minimum Viable (MVP) ```yaml completion_conditions: - "tests_pass" - "build_success" ``` ### Standard Quality ```yaml completion_conditions: - "tests_pass" - "coverage>80" - "eslint=0" - "build_success" ``` ### High Quality ```yaml completion_conditions: - "tests_pass" - "coverage>90" - "eslint=0" - "build_success" - "no_todos" - "docs_updated" ``` ### Production Ready ```yaml completion_conditions: - "tests_pass" - "coverage>95" - "eslint=0" - "build_success" - "no_todos" - "docs_updated" - "security_scan_pass" - "performance_acceptable" ``` ## 🚀 Implementation Tips ### 1. Start Simple Begin with basic conditions and add more as your project matures: ```yaml # Week 1 completion_conditions: ["tests_pass"] # Week 2 completion_conditions: ["tests_pass", "build_success"] # Week 3 completion_conditions: ["tests_pass", "build_success", "eslint=0"] ``` ### 2. Adjust Thresholds Gradually increase quality thresholds: ```yaml # Early development completion_conditions: ["coverage>60"] # Mid development completion_conditions: ["coverage>80"] # Pre-release completion_conditions: ["coverage>90"] ``` ### 3. Task-Specific Conditions Different tasks need different conditions: ```yaml # Setup task completion_conditions: ["build_success", "dependencies_secure"] # Feature task completion_conditions: ["tests_pass", "coverage>85", "eslint=0"] # Documentation task completion_conditions: ["docs_updated", "no_todos"] ``` ### 4. Use Conditional Logic Some conditions only apply in certain contexts: ```yaml # Only check coverage if tests exist completion_conditions: ["tests_pass", "coverage>80"] # Only check docs if this is a public API completion_conditions: ["tests_pass", "docs_updated"] ``` ## 📚 References - [TDD Validator Implementation](../src/tdd-validator.ts) - [Task Types Guide](task_types.md) - [Quality Standards](quality_standards.md) - [Testing Best Practices](testing_guide.md) --- **Last Updated**: [Date] **Next Review**: [Date + 30 days]