mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-02-15 02:42:45 +08:00
refactor: remove parallel strategy exploration feature
Removed Features:
- Parallel Strategy Exploration (3. Enhanced Features)
- Exploratory strategy from strategy engine
- Git worktree-based parallel execution
- IMPL-fix-{N}-parallel.json task type
Strategy Engine Changes:
- Removed "Exploratory" strategy (was: stuck tests trigger)
- Updated selection logic: conservative → aggressive → surgical
- Simplified to 3 strategies (was 4)
File Structure Changes:
- Removed IMPL-fix-{N}-parallel.json from session structure
- Removed worktrees from commit content exclusions
Error Handling Changes:
- Updated stuck tests handling: "Continue with alternative strategy, document in failure report"
- No longer switches to exploratory/parallel mode
Commit Strategy Changes:
- Removed "After Parallel Exploration" commit checkpoint
- Renumbered checkpoints: 1. Success, 2. Rollback (was 1,2,3)
Documentation Changes:
- Removed Value Proposition #4 (Stuck Handling via parallel)
- Updated execution flow (removed exploratory alternatives)
- Removed Strategy-Specific Requirements for Exploratory
- Removed Best Practices #6 (Parallel Exploration)
- Applied user changes: removed "Simplified Structure" text, updated CLI to "gemini & codex"
Rationale: Simplify workflow by removing parallel execution complexity
Lines: 596 → 494 (-17%, total -38% from original 791)
This commit is contained in:
@@ -35,9 +35,8 @@ Dynamic test-fix orchestrator with **adaptive task generation** based on runtime
|
|||||||
|
|
||||||
### Value Proposition
|
### Value Proposition
|
||||||
1. **Automatic Problem Solving**: No manual intervention needed until 95% pass rate
|
1. **Automatic Problem Solving**: No manual intervention needed until 95% pass rate
|
||||||
2. **Intelligent Adaptation**: Strategy adjusts based on progress (conservative → aggressive → exploratory)
|
2. **Intelligent Adaptation**: Strategy adjusts based on progress (conservative → aggressive → surgical)
|
||||||
3. **Fast Feedback**: Progressive testing runs only affected tests (70-90% faster)
|
3. **Fast Feedback**: Progressive testing runs only affected tests (70-90% faster)
|
||||||
4. **Stuck Handling**: Parallel strategy exploration when same tests fail 3+ times
|
|
||||||
|
|
||||||
### Orchestrator Boundary (CRITICAL)
|
### Orchestrator Boundary (CRITICAL)
|
||||||
- **ONLY command** handling test failures - always delegate here
|
- **ONLY command** handling test failures - always delegate here
|
||||||
@@ -60,11 +59,9 @@ Dynamic test-fix orchestrator with **adaptive task generation** based on runtime
|
|||||||
│ └─ <95% or critical failures → Fix Loop ↓
|
│ └─ <95% or critical failures → Fix Loop ↓
|
||||||
└─ Fix Loop:
|
└─ Fix Loop:
|
||||||
├─ Detect: stuck tests, regression, progress trend
|
├─ Detect: stuck tests, regression, progress trend
|
||||||
├─ Select strategy: conservative/aggressive/exploratory/surgical
|
├─ Select strategy: conservative/aggressive/surgical
|
||||||
├─ Generate fix tasks via @cli-planning-agent:
|
├─ Generate fix task via @cli-planning-agent (IMPL-fix-N.json)
|
||||||
│ ├─ Normal: Single IMPL-fix-N.json
|
├─ Execute fix via @test-fix-agent
|
||||||
│ └─ Exploratory: 3 parallel alternatives
|
|
||||||
├─ Execute fixes via @test-fix-agent
|
|
||||||
└─ Re-test → Back to step 2
|
└─ Re-test → Back to step 2
|
||||||
|
|
||||||
3. Completion
|
3. Completion
|
||||||
@@ -89,15 +86,14 @@ Dynamic test-fix orchestrator with **adaptive task generation** based on runtime
|
|||||||
|----------|---------|----------|
|
|----------|---------|----------|
|
||||||
| **Conservative** | Iteration 1-2 (default) | Single targeted fix, full validation |
|
| **Conservative** | Iteration 1-2 (default) | Single targeted fix, full validation |
|
||||||
| **Aggressive** | Pass rate >80% + similar failures | Batch fix related issues |
|
| **Aggressive** | Pass rate >80% + similar failures | Batch fix related issues |
|
||||||
| **Exploratory** | Stuck tests (3+ failures) at iteration 3+ | Parallel try 3 alternative approaches |
|
|
||||||
| **Surgical** | Regression detected (pass rate drops >10%) | Minimal changes, rollback focus |
|
| **Surgical** | Regression detected (pass rate drops >10%) | Minimal changes, rollback focus |
|
||||||
|
|
||||||
**Selection Logic** (in orchestrator):
|
**Selection Logic** (in orchestrator):
|
||||||
```javascript
|
```javascript
|
||||||
if (iteration <= 2) return "conservative";
|
if (iteration <= 2) return "conservative";
|
||||||
if (passRate > 80 && failurePattern.similarity > 0.7) return "aggressive";
|
if (passRate > 80 && failurePattern.similarity > 0.7) return "aggressive";
|
||||||
if (stuckTests > 0 && iteration >= 3) return "exploratory";
|
|
||||||
if (regressionDetected) return "surgical";
|
if (regressionDetected) return "surgical";
|
||||||
|
return "conservative";
|
||||||
```
|
```
|
||||||
|
|
||||||
**Integration**: Strategy passed to @cli-planning-agent in prompt for tailored analysis.
|
**Integration**: Strategy passed to @cli-planning-agent in prompt for tailored analysis.
|
||||||
@@ -116,58 +112,6 @@ if (regressionDetected) return "surgical";
|
|||||||
|
|
||||||
**Benefits**: 70-90% iteration speed improvement, instant feedback on fix effectiveness.
|
**Benefits**: 70-90% iteration speed improvement, instant feedback on fix effectiveness.
|
||||||
|
|
||||||
### 3. Parallel Strategy Exploration
|
|
||||||
|
|
||||||
**Automatically triggered when stuck on same failures 3+ consecutive times.**
|
|
||||||
|
|
||||||
**Workflow**:
|
|
||||||
```
|
|
||||||
Stuck Detected (iteration 3+):
|
|
||||||
├─ Orchestrator switches to "exploratory" strategy
|
|
||||||
├─ @cli-planning-agent generates 3 alternative fix approaches:
|
|
||||||
│ ├─ Approach A: Refactor validation logic
|
|
||||||
│ ├─ Approach B: Fix dependency initialization
|
|
||||||
│ └─ Approach C: Adjust test expectations
|
|
||||||
├─ Orchestrator creates 3 task JSONs (IMPL-fix-Na, Nb, Nc)
|
|
||||||
├─ Execute in parallel via git worktree:
|
|
||||||
│ ├─ worktree-a/ → Apply fix-Na → Test → Pass rate: 92%
|
|
||||||
│ ├─ worktree-b/ → Apply fix-Nb → Test → Pass rate: 88%
|
|
||||||
│ └─ worktree-c/ → Apply fix-Nc → Test → Pass rate: 95% ✓
|
|
||||||
└─ Select best result (highest pass_rate), apply to main branch
|
|
||||||
```
|
|
||||||
|
|
||||||
**Implementation**:
|
|
||||||
```bash
|
|
||||||
# Orchestrator creates isolated worktrees
|
|
||||||
git worktree add ../worktree-{a,b,c}
|
|
||||||
|
|
||||||
# Launch 3 @test-fix-agent instances in parallel
|
|
||||||
Task(subagent_type="test-fix-agent", ...) x3
|
|
||||||
|
|
||||||
# Collect results, select winner
|
|
||||||
```
|
|
||||||
|
|
||||||
**Operational Lifecycle**:
|
|
||||||
1. **Setup**: Create 3 isolated worktrees (`../worktree-{a,b,c}`)
|
|
||||||
2. **Execute**: Run 3 agents in parallel, each in its own worktree
|
|
||||||
3. **Collect**: Gather test results and pass rates from all branches
|
|
||||||
4. **Select**: Choose branch with highest pass_rate (ties: prefer higher confidence_score)
|
|
||||||
5. **Apply**: Merge winning branch changes to main branch
|
|
||||||
6. **Cleanup**: Remove all worktrees: `git worktree remove ../worktree-{a,b,c} --force`
|
|
||||||
7. **Commit**: Create checkpoint with winning strategy details
|
|
||||||
|
|
||||||
**Resource Considerations**:
|
|
||||||
- Parallel execution requires ~3x CPU/memory of single iteration
|
|
||||||
- Timeout per branch: 10min (aborts if exceeded)
|
|
||||||
- If any branch setup fails: Fall back to sequential exploratory mode (try strategies one by one)
|
|
||||||
|
|
||||||
**Error Handling**:
|
|
||||||
- **Worktree creation fails**: Skip parallel mode, use sequential exploration
|
|
||||||
- **All branches fail to improve**: Document in failure report, increment iteration normally
|
|
||||||
- **Partial success** (1-2 branches succeed): Still select best result, proceed
|
|
||||||
|
|
||||||
**Benefits**: Escapes stuck situations, explores solution space efficiently, automatic cleanup.
|
|
||||||
|
|
||||||
## Core Responsibilities
|
## Core Responsibilities
|
||||||
|
|
||||||
### Orchestrator
|
### Orchestrator
|
||||||
@@ -221,8 +165,7 @@ Task(subagent_type="test-fix-agent", ...) x3
|
|||||||
├── IMPL_PLAN.md, TODO_LIST.md
|
├── IMPL_PLAN.md, TODO_LIST.md
|
||||||
├── .task/
|
├── .task/
|
||||||
│ ├── IMPL-{001,002}.json # Initial tasks
|
│ ├── IMPL-{001,002}.json # Initial tasks
|
||||||
│ ├── IMPL-fix-{N}.json # Generated fix tasks
|
│ └── IMPL-fix-{N}.json # Generated fix tasks
|
||||||
│ └── IMPL-fix-{N}-parallel.json # Parallel exploration
|
|
||||||
├── .process/
|
├── .process/
|
||||||
│ ├── iteration-state.json # Current iteration + strategy + stuck tests
|
│ ├── iteration-state.json # Current iteration + strategy + stuck tests
|
||||||
│ ├── test-results.json # Latest results (pass_rate, criticality)
|
│ ├── test-results.json # Latest results (pass_rate, criticality)
|
||||||
@@ -237,8 +180,6 @@ Task(subagent_type="test-fix-agent", ...) x3
|
|||||||
|
|
||||||
**Purpose**: Persisted state machine for iteration loop - enables Resume and historical analysis.
|
**Purpose**: Persisted state machine for iteration loop - enables Resume and historical analysis.
|
||||||
|
|
||||||
**Simplified Structure** (removed redundant fields):
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"current_task": "IMPL-002",
|
"current_task": "IMPL-002",
|
||||||
@@ -302,7 +243,7 @@ Task(
|
|||||||
- Stuck Tests: ${stuckTests} (calculated from iterations[].failed_tests history)
|
- Stuck Tests: ${stuckTests} (calculated from iterations[].failed_tests history)
|
||||||
|
|
||||||
## CLI Configuration
|
## CLI Configuration
|
||||||
- Tool Priority: gemini → qwen → codex
|
- Tool Priority: gemini & codex
|
||||||
- Template: 01-diagnose-bug-root-cause.txt
|
- Template: 01-diagnose-bug-root-cause.txt
|
||||||
- Timeout: 2400000ms
|
- Timeout: 2400000ms
|
||||||
|
|
||||||
@@ -316,7 +257,6 @@ Task(
|
|||||||
## Strategy-Specific Requirements
|
## Strategy-Specific Requirements
|
||||||
- Conservative: Single targeted fix, high confidence required
|
- Conservative: Single targeted fix, high confidence required
|
||||||
- Aggressive: Batch fix similar failures, pattern-based approach
|
- Aggressive: Batch fix similar failures, pattern-based approach
|
||||||
- Exploratory: Generate 3 alternative approaches with different hypotheses
|
|
||||||
- Surgical: Minimal changes, focus on rollback safety
|
- Surgical: Minimal changes, focus on rollback safety
|
||||||
|
|
||||||
## Success Criteria
|
## Success Criteria
|
||||||
@@ -442,7 +382,7 @@ const taskTypeSuccessCriteria = {
|
|||||||
| Agent execution error | Save state, retry with simplified context |
|
| Agent execution error | Save state, retry with simplified context |
|
||||||
| Max iterations reached | Generate failure report, mark blocked |
|
| Max iterations reached | Generate failure report, mark blocked |
|
||||||
| Regression detected | Rollback last fix, switch to surgical strategy |
|
| Regression detected | Rollback last fix, switch to surgical strategy |
|
||||||
| Stuck tests detected | Switch to exploratory strategy (parallel) |
|
| Stuck tests detected | Continue with alternative strategy, document in failure report |
|
||||||
|
|
||||||
**CLI Fallback Triggers** (Gemini → Qwen → Codex → manual):
|
**CLI Fallback Triggers** (Gemini → Qwen → Codex → manual):
|
||||||
|
|
||||||
@@ -522,13 +462,7 @@ The orchestrator automatically creates git commits at key checkpoints to enable
|
|||||||
git commit -m "test-cycle: iteration ${N} - ${strategy} strategy (pass: ${oldRate}% → ${newRate}%)"
|
git commit -m "test-cycle: iteration ${N} - ${strategy} strategy (pass: ${oldRate}% → ${newRate}%)"
|
||||||
```
|
```
|
||||||
|
|
||||||
2. **After Parallel Exploration** (winning strategy applied):
|
2. **Before Rollback** (regression detected):
|
||||||
```bash
|
|
||||||
git add .
|
|
||||||
git commit -m "test-cycle: iteration ${N} - exploratory (selected strategy ${winner}, pass: ${rate}%)"
|
|
||||||
```
|
|
||||||
|
|
||||||
3. **Before Rollback** (regression detected):
|
|
||||||
```bash
|
```bash
|
||||||
# Current state preserved, then:
|
# Current state preserved, then:
|
||||||
git revert HEAD
|
git revert HEAD
|
||||||
@@ -538,7 +472,7 @@ The orchestrator automatically creates git commits at key checkpoints to enable
|
|||||||
**Commit Content**:
|
**Commit Content**:
|
||||||
- Modified source files from fix application
|
- Modified source files from fix application
|
||||||
- Updated test-results.json, iteration-state.json
|
- Updated test-results.json, iteration-state.json
|
||||||
- Excludes: temporary files, logs, worktrees
|
- Excludes: temporary files, logs
|
||||||
|
|
||||||
**Benefits**:
|
**Benefits**:
|
||||||
- **Rollback Safety**: Each iteration is a revert point
|
- **Rollback Safety**: Each iteration is a revert point
|
||||||
@@ -555,4 +489,3 @@ The orchestrator automatically creates git commits at key checkpoints to enable
|
|||||||
3. **Trust Strategy Engine**: Auto-selection based on proven heuristics
|
3. **Trust Strategy Engine**: Auto-selection based on proven heuristics
|
||||||
4. **Monitor Logs**: Check `.process/iteration-N-analysis.md` for CLI analysis insights
|
4. **Monitor Logs**: Check `.process/iteration-N-analysis.md` for CLI analysis insights
|
||||||
5. **Progressive Testing**: Saves 70-90% iteration time automatically
|
5. **Progressive Testing**: Saves 70-90% iteration time automatically
|
||||||
6. **Parallel Exploration**: Auto-triggers at iteration 3 if stuck (no configuration needed)
|
|
||||||
|
|||||||
Reference in New Issue
Block a user