claude-flow-novice
Version:
Claude Flow Novice - Advanced orchestration platform for multi-agent AI workflows with CFN Loop architecture Includes Local RuVector Accelerator and all CFN skills for complete functionality.
389 lines (321 loc) • 11.6 kB
Markdown
# Post-Edit Pipeline
**Purpose**: Memory-safe validation and processing pipeline for all file edits with TDD enforcement, security scanning, and automatic formatting.
**Memory Protection**: 30s default timeout, 1MB buffer limits, auto-kill on overflow, emergency shutdown safeguards.
**Usage**:
```bash
node scripts/post-edit-pipeline.js <file> [options]
node dist/scripts/post-edit-pipeline.js <file> --max-memory=500 --max-duration=300
```
## Features
### Root Directory Protection
- **Root Warning System**: Discourages creating files in project root except essential config files
- **Allowed Root Files**: `package.json`, `README.md`, `tsconfig.json`, `.gitignore`, Docker configs, license files
- **Smart Suggestions**: Intelligent location recommendations based on file type and naming
- **Bypass Conditions**: README.md, CHANGELOG.md, LICENSE files automatically allowed in root
```bash
# Example root warning output
=� ROOT DIRECTORY WARNING: my-component.js
Creating files in project root causes organizational issues
and makes them harder to find and manage.
=� SUGGESTED LOCATIONS:
1. src/components/my-component.js (React/Component detected)
2. src/utils/my-component.js (Utility function detected)
RECOMMENDED ACTION:
Move this file to an appropriate subdirectory for better organization
```
### Progressive Validation Pipeline
1. **Syntax Validation**: Basic syntax checking with language-specific parsers
2. **Interface Validation**: Type checking and interface compliance
3. **Integration Validation**: Cross-file dependency analysis
4. **Full System Validation**: Complete project impact assessment
### TDD Enforcement Modes
```bash
# Enable TDD mode with coverage requirements
node scripts/post-edit-pipeline.js component.js --tdd-mode --minimum-coverage 85
# Block execution on TDD violations
node scripts/post-edit-pipeline.js test.js --tdd-mode --block-on-tdd-violations
```
**TDD Phases**:
- **Red Phase**: Test-first compliance checking
- **Green Phase**: Test execution and validation
- **Refactor Phase**: Code quality and optimization
- **Coverage Analysis**: Line, branch, function, statement coverage
### Multi-Language Support
**JavaScript/TypeScript**:
- Formatters: Prettier (10s timeout, 512KB buffer)
- Linters: ESLint (15s timeout, 256KB buffer)
- Type Checkers: TypeScript Compiler (60s timeout, 512KB buffer)
- Test Frameworks: Jest, Mocha (JSON output parsing)
**Python**:
- Formatters: Black, autopep8
- Linters: Flake8, Pylint
- Type Checkers: MyPy
- Test Frameworks: Pytest, Unittest (coverage analysis)
**Go**:
- Formatters: gofmt
- Linters: golint, go vet
- Test Frameworks: go test (JSON output)
- Coverage: built-in coverage profiling
**Rust**:
- Formatters: rustfmt
- Linters: Clippy
- Type Checkers: cargo check
- Test Frameworks: cargo test (JSON output)
**Java/C++**:
- Test Frameworks: JUnit, CTest
- Compilation validation
- Dependency analysis
### Security Scanning
```bash
# Security analysis included by default
node scripts/post-edit-pipeline.js secure-component.js
# Detailed security reporting
node scripts/post-edit-pipeline.js api.js --security-scan
```
**Security Features**:
- **Pattern Detection**: OWASP Top 10 vulnerability patterns
- **Dependency Analysis**: Known vulnerable package detection
- **Code Scanning**: SQL injection, XSS, authentication bypass patterns
- **Secret Detection**: API keys, passwords, tokens identification
### Memory Management
```bash
# Custom memory limits
node scripts/post-edit-pipeline.js large-file.js --max-memory=1000 --max-duration=600
# Monitor memory usage
node scripts/post-edit-pipeline.js file.js --memory-monitor
```
**Memory Protections**:
- **Process Timeouts**: 30s default, tool-specific limits
- **Buffer Size Limits**: 1MB default, overflow protection
- **Auto-Kill Safeguards**: SIGTERM � SIGKILL escalation
- **Real-Time Monitoring**: 5-second interval checks
- **Emergency Shutdown**: Configurable memory/duration limits
### Agent Coordination
```bash
# Store results with memory key for swarm coordination
node scripts/post-edit-pipeline.js file.js --memory-key "swarm/coordinator/step1"
# Agent context tracking
node scripts/post-edit-pipeline.js file.js --agent-type coder --session-id swarm-123
```
**Coordination Features**:
- **Memory Storage**: SQLite with 5-level ACL (Agent, Team, Swarm, Project, System)
- **Swarm Integration**: CFN Loop coordination patterns
- **Agent Context**: Track agent work and decision making
- **Consensus Building**: Multi-agent validation support
## Configuration Options
### Memory and Performance
```bash
--max-memory <MB> # Maximum memory usage (default: 500MB)
--max-duration <seconds> # Maximum execution time (default: 300s)
--memory-monitor # Enable detailed memory monitoring
--timeout-multiplier <n> # Multiply default timeouts (default: 1.0)
```
### TDD and Testing
```bash
--tdd-mode # Enable TDD enforcement
--minimum-coverage <n> # Minimum coverage percentage (default: 80)
--block-on-tdd-violations # Block execution on TDD failures
--test-framework <name> # Specify test framework (jest, mocha, pytest)
--coverage-thresholds <n> # Set coverage thresholds (line:80,branch:75)
```
### Language-Specific
```bash
--rust-strict # Enable strict Rust quality checks
--validate-markdown # Enable link checking and structure validation
--no-wasm # Disable WASM acceleration (for debugging)
--wasm-acceleration # Enable 52x WASM acceleration (default)
```
### Output and Reporting
```bash
--structured # Return structured JSON output
--verbose # Detailed logging and progress
--quiet # Minimal output only
--log-file <path> # Custom log file location
```
## Process Flow
### 1. File Analysis (First Check)
```javascript
// Root directory validation (highest priority)
if (isRootDirectory && !allowedRootFiles.includes(fileName)) {
return rootDirectoryWarning();
}
```
### 2. Language Detection
```javascript
// Automatic language detection
const language = this.detectLanguage(filePath);
const validator = this.languageValidators[language];
```
### 3. Progressive Validation
```javascript
// Sequential validation phases
const syntaxResult = await this.validateSyntax(filePath, language);
const interfaceResult = await this.validateInterface(filePath, language);
const integrationResult = await this.validateIntegration(filePath, language);
```
### 4. TDD Enforcement
```javascript
// Test-first compliance checking
if (options.tddMode) {
const tddResult = await this.checkTDDCompliance(filePath, language);
if (!tddResult.compliant && options.blockOnTDDViolations) {
return { blocked: true, reason: 'TDD violation' };
}
}
```
### 5. Code Quality
```javascript
// Formatting, linting, type checking
const formatResult = await this.formatFile(filePath, language);
const lintResult = await this.lintFile(filePath, language);
const typeCheckResult = await this.typeCheck(filePath, language);
```
### 6. Security Analysis
```javascript
// Security scanning and vulnerability detection
const securityResult = await this.securityScan(filePath, language);
if (securityResult.vulnerabilities.length > 0) {
return { blocked: true, vulnerabilities: securityResult.vulnerabilities };
}
```
### 7. Test Execution
```javascript
// Single-file test execution
const testResult = await this.executeTests(filePath, content);
if (testResult.coverage < options.minimumCoverage) {
return { warning: 'Low test coverage', coverage: testResult.coverage };
}
```
## Memory Usage Monitoring
### Process Tracking
```bash
# Monitor all spawned processes
ps aux | grep post-edit-pipeline.js
# Check memory usage patterns
node scripts/memory-monitor-coordinator.js --interval=5000 --max-duration=300000
```
### Memory Leak Prevention
```javascript
// Automatic cleanup on timeout
const timeoutId = setTimeout(() => {
if (!killed) {
proc.kill('SIGTERM');
setTimeout(() => proc.kill('SIGKILL'), 5000);
}
}, timeout);
```
### Buffer Management
```javascript
// Size limit enforcement
if (stdout.length + chunk.length > maxBufferSize) {
if (killOnOversize) {
proc.kill('SIGKILL');
} else {
stdout = stdout.substring(0, maxBufferSize - chunk.length) + chunk;
}
}
```
## Integration Points
### Git Hooks
```bash
# Post-commit hook integration
echo "node scripts/post-edit-pipeline.js \$1 --tdd-mode" > .git/hooks/post-commit
chmod +x .git/hooks/post-commit
```
### CI/CD Pipeline
```yaml
# GitHub Actions example
- name: Post-Edit Validation
run: |
node scripts/post-edit-pipeline.js src/**/*.js --tdd-mode --minimum-coverage 85
node scripts/post-edit-pipeline.js src/**/*.ts --rust-strict
```
### IDE Integration
```json
// VS Code settings.json
{
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
"files.associations": {
"*.js": "post-edit-pipeline"
}
}
```
## Troubleshooting
### Memory Issues
```bash
# Check current memory usage
ps aux | grep post-edit-pipeline
# Kill runaway processes
pkill -f post-edit-pipeline.js
# Reduce memory limits
node scripts/post-edit-pipeline.js file.js --max-memory=100
```
### Timeout Issues
```bash
# Increase timeouts for large files
node scripts/post-edit-pipeline.js large-file.js --max-duration=600
# Disable certain validations for speed
node scripts/post-edit-pipeline.js file.js --no-security-scan --no-tdd-mode
```
### Language Detection Issues
```bash
# Specify language explicitly
node scripts/post-edit-pipeline.js file.js --language typescript
# Check detected language
node scripts/post-edit-pipeline.js file.js --verbose | grep "Language detected"
```
## Performance Metrics
### Validation Times
- **Syntax Validation**: <100ms
- **Interface Validation**: <500ms
- **Integration Validation**: <1s
- **TDD Enforcement**: <2s
- **Security Scanning**: <3s
- **Test Execution**: Variable (depends on test suite)
### Memory Usage
- **Base Process**: 50-100MB
- **Language Detection**: +10MB
- **Test Execution**: +100-500MB
- **Security Scanning**: +50MB
- **Total Typical**: 200-800MB
### Coverage Requirements
```bash
# Default coverage thresholds
--minimum-coverage 80 # Overall coverage
--line-coverage 80 # Line coverage
--branch-coverage 75 # Branch coverage
--function-coverage 80 # Function coverage
--statement-coverage 80 # Statement coverage
```
## Advanced Usage
### Custom Validators
```javascript
// Add custom language validator
pipeline.addLanguageValidator('custom', {
syntax: customSyntaxCheck,
interface: customInterfaceCheck,
security: customSecurityCheck
});
```
### Batch Processing
```bash
# Process multiple files
for file in src/**/*.js; do
node scripts/post-edit-pipeline.js "$file" --tdd-mode
done
```
### Integration with CFN Loop
```javascript
// CFN Loop memory patterns
const memoryKey = `cfn/phase-${phaseId}/loop3/${agentId}`;
node scripts/post-edit-pipeline.js file.js --memory-key "$memoryKey"
```
## Related Resources
- **Main Documentation**: [../CLAUDE.md](../CLAUDE.md) - Critical rules and workflows
- **Hooks Documentation**: [logs-hooks.md](./logs-hooks.md) - Hook integration patterns
- **Memory Management**: [logs-cli-redis.md](./logs-cli-redis.md) - Redis coordination
- **Security**: [../config/hooks/post-edit-pipeline.js](../config/hooks/post-edit-pipeline.js) - Full implementation
- **Testing**: [additional-commands.md](./additional-commands.md) - Testing framework integration