mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-02-14 02:42:04 +08:00
- Added Phase 6: Fix Discovery & Batching with intelligent grouping and batching of findings. - Added Phase 7: Fix Parallel Planning to launch planning agents for concurrent analysis and aggregation of partial plans. - Added Phase 8: Fix Execution for stage-based execution of fixes with conservative test verification. - Added Phase 9: Fix Completion to aggregate results, generate summary reports, and handle session completion. - Introduced new frontend components: ResizeHandle for draggable resizing of sidebar panels and useResizablePanel hook for managing panel sizes with localStorage persistence. - Added PowerShell script for checking TypeScript errors in source code, excluding test files.
10 KiB
10 KiB
Phase 1: Discovery & Initialization
Source: Fused from
commands/workflow/review-session-cycle.mdPhase 1 +commands/workflow/review-module-cycle.mdPhase 1
Overview
Detect review mode (session or module), resolve target files, create workflow session, initialize output directory structure and state files.
Mode Detection
The review mode is determined by the input arguments:
- Session mode: No path pattern provided, OR a
WFS-*session ID is provided. Reviews all changes within an existing workflow session (git-based change detection). - Module mode: Glob/path patterns are provided (e.g.,
src/auth/**,src/payment/processor.ts). Reviews specific files/directories regardless of session history.
Session Mode (review-session-cycle)
Step 1.1: Session Discovery
// If session ID not provided, auto-detect
if (!providedSessionId) {
// Check for active sessions
const activeSessions = Glob('.workflow/active/WFS-*');
if (activeSessions.length === 1) {
sessionId = activeSessions[0].match(/WFS-[^/]+/)[0];
} else if (activeSessions.length > 1) {
// List sessions and prompt user
error("Multiple active sessions found. Please specify session ID.");
} else {
error("No active session found. Create session first.");
}
} else {
sessionId = providedSessionId;
}
// Validate session exists
Bash(`test -d .workflow/active/${sessionId} && echo "EXISTS"`);
Step 1.2: Session Validation
- Ensure session has implementation artifacts (check
.summaries/or.task/directory) - Extract session creation timestamp from
workflow-session.json - Use timestamp for git log filtering:
git log --since="${sessionCreatedAt}"
Step 1.3: Changed Files Detection
# Get files changed since session creation
git log --since="${sessionCreatedAt}" --name-only --pretty=format: | sort -u
Module Mode (review-module-cycle)
Step 1.1: Session Creation
// Create workflow session for this review (type: review)
// Orchestrator handles session creation directly
Bash(`mkdir -p .workflow/active/WFS-review-${Date.now()}`);
// Initialize workflow-session.json
const sessionId = `WFS-review-${Date.now()}`;
Write(`.workflow/active/${sessionId}/workflow-session.json`, JSON.stringify({
session_id: sessionId,
type: "review",
description: `Code review for ${targetPattern}`,
created_at: new Date().toISOString()
}, null, 2));
Step 1.2: Path Resolution & Validation
# Expand glob pattern to file list (relative paths from project root)
find . -path "./src/auth/**" -type f | sed 's|^\./||'
# Validate files exist and are readable
for file in ${resolvedFiles[@]}; do
test -r "$file" || error "File not readable: $file"
done
- Parse and expand file patterns (glob support):
src/auth/**-> actual file list - Validation: Ensure all specified files exist and are readable
- Store as relative paths from project root (e.g.,
src/auth/service.ts) - Agents construct absolute paths dynamically during execution
Syntax Rules:
- All paths are relative from project root (e.g.,
src/auth/**not/src/auth/**) - Multiple patterns: comma-separated, no spaces (e.g.,
src/auth/**,src/payment/**) - Glob and specific files can be mixed (e.g.,
src/auth/**,src/config.ts)
Supported Patterns:
| Pattern Type | Example | Description |
|---|---|---|
| Glob directory | src/auth/** |
All files under src/auth/ |
| Glob with extension | src/**/*.ts |
All .ts files under src/ |
| Specific file | src/payment/processor.ts |
Single file |
| Multiple patterns | src/auth/**,src/payment/** |
Comma-separated (no spaces) |
Resolution Process:
- Parse input pattern (split by comma, trim whitespace)
- Expand glob patterns to file list via
findcommand - Validate all files exist and are readable
- Error if pattern matches 0 files
- Store resolved file list in review-state.json
Common Steps (Both Modes)
Step 1.4: Output Directory Setup
- Output directory:
.workflow/active/${sessionId}/.review/ - Create directory structure:
mkdir -p ${sessionDir}/.review/{dimensions,iterations,reports}
Step 1.5: Initialize Review State
- State initialization: Create
review-state.jsonwith metadata, dimensions, max_iterations (merged metadata + state) - Session mode includes
git_changesin metadata - Module mode includes
target_patternandresolved_filesin metadata - Progress tracking: Create
review-progress.jsonfor progress tracking
Step 1.6: Initialize Review Progress
- Create
review-progress.jsonfor real-time dashboard updates via polling - See Review Progress JSON schema below
Step 1.7: Progress Tracking Initialization
- Set up progress tracking with hierarchical structure
- Mark Phase 1 completed, Phase 2 in_progress
Review State JSON (Session Mode)
Purpose: Unified state machine and metadata (merged from metadata + state)
{
"session_id": "WFS-payment-integration",
"review_id": "review-20250125-143022",
"review_type": "session",
"metadata": {
"created_at": "2025-01-25T14:30:22Z",
"git_changes": {
"commit_range": "abc123..def456",
"files_changed": 15,
"insertions": 342,
"deletions": 128
},
"dimensions": ["security", "architecture", "quality", "action-items", "performance", "maintainability", "best-practices"],
"max_iterations": 3
},
"phase": "parallel|aggregate|iterate|complete",
"current_iteration": 1,
"dimensions_reviewed": ["security", "architecture", "quality", "action-items", "performance", "maintainability", "best-practices"],
"selected_strategy": "comprehensive",
"next_action": "execute_parallel_reviews|aggregate_findings|execute_deep_dive|generate_final_report|complete",
"severity_distribution": {
"critical": 2,
"high": 5,
"medium": 12,
"low": 8
},
"critical_files": [
{
"file": "src/payment/processor.ts",
"finding_count": 5,
"dimensions": ["security", "architecture", "quality"]
}
],
"iterations": [
{
"iteration": 1,
"findings_analyzed": ["uuid-1", "uuid-2"],
"findings_resolved": 1,
"findings_escalated": 1,
"severity_change": {
"before": {"critical": 2, "high": 5, "medium": 12, "low": 8},
"after": {"critical": 1, "high": 6, "medium": 12, "low": 8}
},
"timestamp": "2025-01-25T14:30:00Z"
}
],
"completion_criteria": {
"target": "no_critical_findings_and_high_under_5",
"current_status": "in_progress",
"estimated_completion": "2 iterations remaining"
}
}
Field Descriptions:
phase: Current execution phase (state machine pointer)current_iteration: Iteration counter (used for max check)next_action: Next step orchestrator should executeseverity_distribution: Aggregated counts across all dimensionscritical_files: Files appearing in 3+ dimensions with metadataiterations[]: Historical log for trend analysis
Review State JSON (Module Mode)
Purpose: Unified state machine and metadata (merged from metadata + state)
{
"review_id": "review-20250125-143022",
"review_type": "module",
"session_id": "WFS-auth-system",
"metadata": {
"created_at": "2025-01-25T14:30:22Z",
"target_pattern": "src/auth/**",
"resolved_files": [
"src/auth/service.ts",
"src/auth/validator.ts",
"src/auth/middleware.ts"
],
"dimensions": ["security", "architecture", "quality", "action-items", "performance", "maintainability", "best-practices"],
"max_iterations": 3
},
"phase": "parallel|aggregate|iterate|complete",
"current_iteration": 1,
"dimensions_reviewed": ["security", "architecture", "quality", "action-items", "performance", "maintainability", "best-practices"],
"selected_strategy": "comprehensive",
"next_action": "execute_parallel_reviews|aggregate_findings|execute_deep_dive|generate_final_report|complete",
"severity_distribution": {
"critical": 2,
"high": 5,
"medium": 12,
"low": 8
},
"critical_files": [...],
"iterations": [...],
"completion_criteria": {...}
}
Review Progress JSON
Purpose: Real-time dashboard updates via polling
{
"review_id": "review-20250125-143022",
"last_update": "2025-01-25T14:35:10Z",
"phase": "parallel|aggregate|iterate|complete",
"current_iteration": 1,
"progress": {
"parallel_review": {
"total_dimensions": 7,
"completed": 5,
"in_progress": 2,
"percent_complete": 71
},
"deep_dive": {
"total_findings": 6,
"analyzed": 2,
"in_progress": 1,
"percent_complete": 33
}
},
"agent_status": [
{
"agent_type": "review-agent",
"dimension": "security",
"status": "completed",
"started_at": "2025-01-25T14:30:00Z",
"completed_at": "2025-01-25T15:15:00Z",
"duration_ms": 2700000
},
{
"agent_type": "deep-dive-agent",
"finding_id": "sec-001-uuid",
"status": "in_progress",
"started_at": "2025-01-25T14:32:00Z"
}
],
"estimated_completion": "2025-01-25T16:00:00Z"
}
Output File Structure
.workflow/active/WFS-{session-id}/.review/
├── review-state.json # Orchestrator state machine (includes metadata)
├── review-progress.json # Real-time progress for dashboard
├── dimensions/ # Per-dimension results
│ ├── security.json
│ ├── architecture.json
│ ├── quality.json
│ ├── action-items.json
│ ├── performance.json
│ ├── maintainability.json
│ └── best-practices.json
├── iterations/ # Deep-dive results
│ ├── iteration-1-finding-{uuid}.json
│ └── iteration-2-finding-{uuid}.json
└── reports/ # Human-readable reports
├── security-analysis.md
├── security-cli-output.txt
├── deep-dive-1-{uuid}.md
└── ...
Session Context
.workflow/active/WFS-{session-id}/
├── workflow-session.json
├── IMPL_PLAN.md
├── TODO_LIST.md
├── .task/
├── .summaries/
└── .review/ # Review results (this command)
└── (structure above)
Output
- Variables:
sessionId,reviewId,resolvedFiles,reviewMode,outputDir - Files:
review-state.json,review-progress.json
Next Phase
Return to orchestrator, then auto-continue to Phase 2: Parallel Review.