@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
Markdown
# 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]