autonomous-development
Overview
The Autonomous Development skill provides comprehensive strategies, patterns, and best practices for managing full development lifecycles autonomously - from user requirements to production-ready implementation with minimal human intervention.
When to Apply
Use Autonomous Development strategies when:
- Implementing features from high-level requirements
- Managing complex multi-phase development projects
- Need to maintain quality while developing autonomously
- Implementing with continuous testing and validation
- Debugging and fixing issues automatically
- Ensuring parameter consistency and type safety
Milestone Planning Strategies
Requirements Decomposition
Pattern: Feature-to-Milestone Mapping
User Requirement → Feature Breakdown → Milestone Plan
Example: "Add MQTT broker with certificate support"
Decomposition:
1. Dependencies & Configuration (Simple)
- Install required libraries
- Create configuration module
- Time: 10-15 minutes
2. Core Functionality (Medium)
- Implement main feature logic
- Add error handling
- Time: 20-30 minutes
3. Integration & Testing (Medium)
- Write unit tests
- Write integration tests
- Time: 15-25 minutes
4. Documentation (Simple)
- API documentation
- Usage examples
- Time: 10-15 minutes
Complexity Assessment Matrix
Simple Milestone:
├─ Single file modification
├─ Well-defined scope
├─ No external dependencies
├─ Existing patterns to follow
└─ Estimated: 10-20 minutes
Medium Milestone:
├─ Multiple file modifications
├─ Some external dependencies
├─ Integration with existing code
├─ Moderate complexity
└─ Estimated: 20-45 minutes
Complex Milestone:
├─ Multiple component changes
├─ New dependencies or frameworks
├─ Significant integration work
├─ Architectural considerations
└─ Estimated: 45-90 minutes
Expert Milestone:
├─ Major architectural changes
├─ Multiple system integrations
├─ Advanced algorithms or patterns
├─ Security-critical implementations
└─ Estimated: 90+ minutes
Milestone Sequencing
Pattern: Dependency-First Ordering
Order milestones to minimize dependencies:
1. Foundation Layer
- Dependencies
- Configuration
- Data models
2. Core Logic Layer
- Business logic
- Core algorithms
- Main functionality
3. Integration Layer
- API endpoints
- External integrations
- Service connections
4. Quality Layer
- Testing
- Documentation
- Validation
Incremental Development Patterns
Commit-Per-Milestone Strategy
Pattern: Working State Commits
Each milestone must result in a working state:
✅ Good Milestone:
- Feature partially complete but functional
- All tests pass for implemented functionality
- No breaking changes to existing code
- Commit: "feat: add user authentication (phase 1/3)"
❌ Bad Milestone:
- Feature incomplete and non-functional
- Tests failing
- Breaking changes uncommitted
- Half-implemented logic
Conventional Commit Format
<type>(<scope>): <description>
[optional body]
[optional footer]
Types:
- feat: New feature
- fix: Bug fix
- refactor: Code refactoring
- test: Adding tests
- docs: Documentation
- chore: Maintenance
- perf: Performance improvement
Examples:
feat(mqtt): add broker connection with SSL
fix(auth): correct token validation logic
test(api): add integration tests for user endpoints
docs(readme): update installation instructions
Progressive Enhancement Pattern
Start simple, enhance progressively:
Phase 1: Basic Implementation
├─ Core functionality only
├─ No error handling
├─ No optimization
└─ Purpose: Prove concept works
Phase 2: Error Handling
├─ Add try-catch blocks
├─ Add input validation
├─ Add logging
└─ Purpose: Make it robust
Phase 3: Optimization
├─ Performance improvements
├─ Memory optimization
├─ Caching if needed
└─ Purpose: Make it efficient
Phase 4: Polish
├─ Documentation
├─ Examples
├─ Edge case handling
└─ Purpose: Make it production-ready
Auto-Debugging Strategies
Error Classification System
Error Categories and Fix Strategies:
1. Syntax Errors (100% auto-fixable)
- Missing colons, brackets, quotes
- Indentation errors
- Strategy: Parse and fix immediately
2. Import Errors (95% auto-fixable)
- Missing imports
- Incorrect module paths
- Strategy: Auto-add imports, fix paths
3. Type Errors (90% auto-fixable)
- Type mismatches
- Type hint violations
- Strategy: Add type conversions or fix hints
4. Name Errors (85% auto-fixable)
- Undefined variables
- Typos in names
- Strategy: Fix typos or add definitions
5. Logic Errors (60% auto-fixable)
- Wrong algorithm
- Incorrect conditions
- Strategy: Analyze and refactor logic
6. Integration Errors (70% auto-fixable)
- Connection failures
- API mismatches
- Strategy: Add retry logic, fix endpoints
7. Performance Errors (40% auto-fixable)
- Timeouts
- Memory issues
- Strategy: Optimize algorithms, add caching
Debug Loop Pattern
Maximum 5 iterations per issue:
Iteration 1: Quick Fix (confidence > 90%)
├─ Fix obvious issues (typos, imports)
├─ Success rate: 70%
└─ Time: 30 seconds
Iteration 2: Pattern-Based Fix (confidence 70-90%)
├─ Apply known successful patterns
├─ Success rate: 50%
└─ Time: 1-2 minutes
Iteration 3: Analysis-Based Fix (confidence 50-70%)
├─ Deep error analysis
├─ Root cause investigation
├─ Success rate: 30%
└─ Time: 3-5 minutes
Iteration 4: Alternative Approach (confidence 30-50%)
├─ Try different implementation
├─ Success rate: 20%
└─ Time: 5-10 minutes
Iteration 5: Last Attempt (confidence < 30%)
├─ Aggressive fixes
├─ Success rate: 10%
└─ Time: 10-15 minutes
If all iterations fail → Manual intervention required
Common Fix Patterns
Connection Retry Pattern
# Problem: Connection refused
# Fix: Add exponential backoff retry
import time
from functools import wraps
def with_retry(max_attempts=3, backoff_factor=2):
def decorator(func):
@wraps(func)
def wrapper(*args, **kwargs):
for attempt in range(max_attempts):
try:
return func(*args, **kwargs)
except ConnectionError as e:
if attempt == max_attempts - 1:
raise
delay = backoff_factor ** attempt
time.sleep(delay)
return None
return wrapper
return decorator
@with_retry(max_attempts=3)
def connect_to_service():
# Connection logic
pass
Type Conversion Pattern
# Problem: Type mismatch (str vs int)
# Fix: Add safe type conversion
def safe_int(value, default=0):
try:
return int(value)
except (ValueError, TypeError):
return default
# Usage
user_id = safe_int(request.params.get('user_id'))
Null Safety Pattern
# Problem: NoneType attribute error
# Fix: Add null checks
# Bad
result = data.get('user').get('name')
# Good
result = data.get('user', {}).get('name', 'Unknown')
# Better
user = data.get('user')
result = user.get('name', 'Unknown') if user else 'Unknown'
Parameter Validation Pattern
# Problem: Invalid parameters
# Fix: Add validation decorator
from functools import wraps
from typing import get_type_hints
def validate_params(func):
@wraps(func)
def wrapper(*args, **kwargs):
hints = get_type_hints(func)
for param_name, param_type in hints.items():
if param_name in kwargs:
value = kwargs[param_name]
if not isinstance(value, param_type):
raise TypeError(
f"{param_name} must be {param_type}, "
f"got {type(value)}"
)
return func(*args, **kwargs)
return wrapper
@validate_params
def create_user(name: str, age: int) -> dict:
return {'name': name, 'age': age}
Parameter Consistency Validation
Cross-File Parameter Validation
Critical validation checklist:
1. Function Signatures
✓ Parameter names match between definition and calls
✓ Parameter order consistent
✓ Default values aligned
2. Configuration Files
✓ Config keys match code usage
✓ Environment variables consistent
✓ No undefined config references
3. Type Consistency
✓ Type hints present and correct
✓ Return types specified
✓ Type conversions explicit
4. API Contracts
✓ Request parameters match backend expectations
✓ Response structure consistent
✓ Error codes standardized
5. Database Schemas
✓ Column names match model attributes
✓ Data types aligned
✓ Foreign key constraints correct
Validation Automation Pattern
# Automated parameter validation
def validate_function_calls(codebase):
issues = []
# Extract all function definitions
definitions = extract_function_definitions(codebase)
# Extract all function calls
calls = extract_function_calls(codebase)
for call in calls:
definition = definitions.get(call.function_name)
if not definition:
issues.append({
'type': 'undefined_function',
'function': call.function_name,
'location': call.location
})
continue
# Check parameter count
if len(call.args) != len(definition.params):
issues.append({
'type': 'parameter_count_mismatch',
'function': call.function_name,
'expected': len(definition.params),
'actual': len(call.args)
})
# Check parameter names (for keyword args)
for arg_name in call.kwargs:
if arg_name not in definition.param_names:
issues.append({
'type': 'undefined_parameter',
'function': call.function_name,
'parameter': arg_name
})
return issues
Quality Assurance Patterns
Quality Score Calculation
Quality Score (0-100):
Code Quality (40 points):
├─ Syntax correctness (10)
├─ Style compliance (10)
├─ Code complexity (10)
└─ Best practices (10)
Test Quality (30 points):
├─ Test coverage (15)
├─ Test success rate (10)
└─ Test quality (5)
Documentation Quality (20 points):
├─ Docstrings (10)
├─ Comments (5)
└─ Examples (5)
Security Quality (10 points):
├─ No vulnerabilities (5)
├─ Secure patterns (5)
Thresholds:
├─ 85-100: Excellent (production-ready)
├─ 70-84: Good (acceptable)
├─ 50-69: Fair (needs improvement)
└─ 0-49: Poor (not acceptable)
Auto-Fix Priority System
Fix Priority Order:
Priority 1 (Always fix):
├─ Syntax errors
├─ Import errors
├─ Undefined variables
├─ Type errors (obvious)
└─ Success rate: 95%+
Priority 2 (Usually fix):
├─ Style violations
├─ Missing docstrings
├─ Unused imports
├─ Simple complexity issues
└─ Success rate: 80-95%
Priority 3 (Suggest fix):
├─ Complex refactoring
├─ Performance optimizations
├─ Architecture improvements
└─ Success rate: 60-80%
Priority 4 (Report only):
├─ Design decisions
├─ Major refactoring
├─ Architectural changes
└─ Requires human judgment
Testing Strategies for Autonomous Development
Test Generation Priorities
Test Priority Matrix:
Critical Path Tests (Must have):
├─ Core functionality tests
├─ Error handling tests
├─ Edge case tests
└─ Coverage target: 100%
Integration Tests (Should have):
├─ Component integration
├─ External service integration
├─ End-to-end workflows
└─ Coverage target: 80%
Performance Tests (Nice to have):
├─ Load tests
├─ Stress tests
├─ Benchmark tests
└─ Coverage target: 50%
Test-First Development Pattern
For autonomous development:
1. Generate Test Cases First
- Based on requirements
- Cover happy path and edge cases
- Include error scenarios
2. Implement to Pass Tests
- Write minimal code to pass
- Refactor after passing
- Maintain test coverage
3. Expand Tests as Needed
- Add tests for bugs found
- Add tests for edge cases discovered
- Keep tests up-to-date
Requirements Verification Patterns
Acceptance Criteria Validation
Verification Checklist Template:
Functional Requirements:
├─ [ ] Feature X implemented
├─ [ ] Feature Y working
├─ [ ] All specified behaviors present
└─ [ ] Edge cases handled
Non-Functional Requirements:
├─ [ ] Performance targets met
├─ [ ] Security requirements satisfied
├─ [ ] Scalability considered
└─ [ ] Maintainability ensured
Quality Requirements:
├─ [ ] Tests passing (100%)
├─ [ ] Code quality ≥ 85/100
├─ [ ] Documentation complete
└─ [ ] No critical issues
User Experience:
├─ [ ] Easy to use
├─ [ ] Clear error messages
├─ [ ] Good documentation
└─ [ ] Examples provided
Integration with Learning System
Pattern Storage for Development
{
"dev_pattern": {
"requirement_type": "mqtt_integration",
"complexity": "medium",
"successful_approach": {
"milestone_count": 5,
"milestone_sequence": [
"dependencies",
"core_logic",
"integration",
"testing",
"documentation"
],
"avg_milestone_time": 9.7,
"total_time": 48.5
},
"common_issues": [
{
"issue": "certificate_path_mismatch",
"frequency": 0.65,
"fix": "use_relative_paths",
"success_rate": 0.95
},
{
"issue": "connection_timeout",
"frequency": 0.45,
"fix": "add_retry_logic",
"success_rate": 0.88
}
],
"quality_metrics": {
"avg_code_quality": 92,
"avg_test_coverage": 91,
"avg_security_score": 94
},
"skill_effectiveness": {
"code-analysis": 0.94,
"testing-strategies": 0.91,
"security-patterns": 0.88
}
}
}
Best Practices
DO's
✅ Break Down Complexity
- Decompose requirements into small, manageable milestones
- Each milestone should be independently testable
- Commit each working milestone
✅ Validate Continuously
- Run tests after each change
- Check parameter consistency frequently
- Validate type safety throughout
✅ Debug Systematically
- Start with high-confidence fixes
- Use pattern-based approaches
- Learn from failures
✅ Document Progressively
- Document as you implement
- Keep documentation synchronized
- Include usage examples
✅ Learn from Experience
- Store successful patterns
- Record failed approaches
- Optimize based on learnings
DON'Ts
❌ Don't Skip Validation
- Never commit without tests passing
- Don't ignore parameter mismatches
- Don't skip quality checks
❌ Don't Implement Everything at Once
- Avoid big-bang implementation
- Don't commit non-working code
- Don't skip incremental commits
❌ Don't Ignore Patterns
- Don't repeat failed approaches
- Don't ignore learned patterns
- Don't make same mistakes twice
❌ Don't Compromise Quality
- Don't accept quality score < 70
- Don't skip security validation
- Don't skip documentation
Advanced Patterns
Parallel Milestone Execution
When milestones are independent:
Sequential (slower):
Milestone 1 → Milestone 2 → Milestone 3
Total time: 30 minutes
Parallel (faster):
Milestone 1 ─┐
Milestone 2 ─┼→ Sync → Milestone 4
Milestone 3 ─┘
Total time: 12 minutes
Use parallel execution for:
- Independent components
- Test generation
- Documentation updates
- Multiple bug fixes
Adaptive Planning Pattern
Adjust plan based on execution:
Initial Plan:
├─ Milestone 1: 15 min (estimated)
├─ Milestone 2: 20 min (estimated)
├─ Milestone 3: 15 min (estimated)
└─ Total: 50 minutes
After Milestone 1 (took 25 min):
├─ Reason: Unexpected complexity
├─ Adjust remaining estimates: +10 min each
├─ New total: 70 minutes
└─ Re-evaluate approach if needed
The Autonomous Development skill provides comprehensive guidance for managing full development lifecycles with minimal human intervention, ensuring high quality and continuous improvement through learning.
More from neversight/skills_feed
ai-image-generation
|
7react-best-practices
Provides React patterns for hooks, effects, refs, and component design. Covers escape hatches, anti-patterns, and correct effect usage. Must use when reading or writing React components (.tsx, .jsx files with React imports).
7ui-designer
Use when user needs visual UI design, interface creation, component systems, design systems, interaction patterns, or accessibility-focused user interfaces.
7python-env
Fast Python environment management with uv (10-100x faster than pip). Triggers on: uv, venv, pip, pyproject, python environment, install package, dependencies.
7typescript-best-practices
Provides TypeScript patterns for type-first development, making illegal states unrepresentable, exhaustive handling, and runtime validation. Must use when reading or writing TypeScript/JavaScript files.
6ai-marketing-videos
|
6