mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-02-05 01:50:27 +08:00
9.5 KiB
9.5 KiB
Review Directory Specification
Overview
Unified directory structure for all review commands (session-based and module-based) within workflow sessions.
Core Principles
- Session-Based: All reviews run within a workflow session context
- Unified Structure: Same directory layout for all review types
- Type Differentiation: Review type indicated by metadata, not directory structure
- Progressive Creation: Directories created on-demand during review execution
- Archive Support: Reviews archived with their parent session
Directory Structure
Base Location
.workflow/active/WFS-{session-id}/.review/
Complete Structure
.workflow/active/WFS-{session-id}/.review/
├── review-state.json # Review orchestrator state machine
├── review-progress.json # Real-time progress for dashboard polling
├── review-metadata.json # Review configuration and scope
├── dimensions/ # Per-dimension analysis results
│ ├── security.json
│ ├── architecture.json
│ ├── quality.json
│ ├── action-items.json
│ ├── performance.json
│ ├── maintainability.json
│ └── best-practices.json
├── iterations/ # Deep-dive iteration results
│ ├── iteration-1-finding-{uuid}.json
│ ├── iteration-2-finding-{uuid}.json
│ └── ...
├── reports/ # Human-readable reports
│ ├── security-analysis.md
│ ├── security-cli-output.txt
│ ├── architecture-analysis.md
│ ├── architecture-cli-output.txt
│ ├── ...
│ ├── deep-dive-1-{uuid}.md
│ └── deep-dive-2-{uuid}.md
├── REVIEW-SUMMARY.md # Final consolidated summary
└── dashboard.html # Interactive review dashboard
Review Metadata Schema
File: review-metadata.json
{
"review_id": "review-20250125-143022",
"review_type": "module|session",
"session_id": "WFS-auth-system",
"created_at": "2025-01-25T14:30:22Z",
"scope": {
"type": "module|session",
"module_scope": {
"target_pattern": "src/auth/**",
"resolved_files": [
"src/auth/service.ts",
"src/auth/validator.ts"
],
"file_count": 2
},
"session_scope": {
"commit_range": "abc123..def456",
"changed_files": [
"src/auth/service.ts",
"src/payment/processor.ts"
],
"file_count": 2
}
},
"dimensions": ["security", "architecture", "quality", "action-items", "performance", "maintainability", "best-practices"],
"max_iterations": 3,
"cli_tools": {
"primary": "gemini",
"fallback": ["qwen", "codex"]
}
}
Review State Schema
File: review-state.json
{
"review_id": "review-20250125-143022",
"phase": "init|parallel|aggregate|iterate|complete",
"current_iteration": 1,
"dimensions_status": {
"security": "pending|in_progress|completed|failed",
"architecture": "completed",
"quality": "in_progress",
"action-items": "pending",
"performance": "pending",
"maintainability": "pending",
"best-practices": "pending"
},
"severity_distribution": {
"critical": 2,
"high": 5,
"medium": 12,
"low": 8
},
"critical_files": [
"src/auth/service.ts",
"src/payment/processor.ts"
],
"iterations": [
{
"iteration": 1,
"findings_selected": ["uuid-1", "uuid-2", "uuid-3"],
"completed_at": "2025-01-25T15:30:00Z"
}
],
"completion_criteria": {
"critical_count": 0,
"high_count_threshold": 5,
"max_iterations": 3
},
"next_action": "execute_parallel_reviews|aggregate_findings|execute_deep_dive|generate_final_report|complete"
}
Session Integration
Session Discovery
review-session-cycle (auto-discover):
# Auto-detect active session
/workflow:review-session-cycle
# Or specify session explicitly
/workflow:review-session-cycle WFS-auth-system
review-module-cycle (require session):
# Must have active session or specify one
/workflow:review-module-cycle src/auth/** --session WFS-auth-system
# Or use active session
/workflow:review-module-cycle src/auth/**
Session Creation Logic
For review-module-cycle:
- Check Active Session: Search
.workflow/active/WFS-* - If Found: Use active session's
.review/directory - If Not Found:
- Option A (Recommended): Prompt user to create session first
- Option B: Auto-create review-only session:
WFS-review-{pattern-hash}
Recommended Flow:
# Step 1: Start session
/workflow:session:start --new "Review auth module"
# Creates: .workflow/active/WFS-review-auth-module/
# Step 2: Run review
/workflow:review-module-cycle src/auth/**
# Creates: .workflow/active/WFS-review-auth-module/.review/
Command Phase 1 Requirements
Both Commands Must:
-
Session Discovery:
// Check for active session const sessions = Glob('.workflow/active/WFS-*'); if (sessions.length === 0) { // Prompt user to create session first error("No active session found. Please run /workflow:session:start first"); } const sessionId = sessions[0].match(/WFS-[^/]+/)[0]; -
Create .review/ Structure:
const reviewDir = `.workflow/active/${sessionId}/.review/`; // Create directory structure Bash(`mkdir -p ${reviewDir}/dimensions`); Bash(`mkdir -p ${reviewDir}/iterations`); Bash(`mkdir -p ${reviewDir}/reports`); -
Initialize Metadata:
// Write review-metadata.json Write(`${reviewDir}/review-metadata.json`, JSON.stringify({ review_id: `review-${timestamp}`, review_type: "module|session", session_id: sessionId, created_at: new Date().toISOString(), scope: {...}, dimensions: [...], max_iterations: 3, cli_tools: {...} })); // Write review-state.json Write(`${reviewDir}/review-state.json`, JSON.stringify({ review_id: `review-${timestamp}`, phase: "init", current_iteration: 0, dimensions_status: {}, severity_distribution: {}, critical_files: [], iterations: [], completion_criteria: {}, next_action: "execute_parallel_reviews" })); -
Generate Dashboard:
const template = Read('~/.claude/templates/review-cycle-dashboard.html'); const dashboard = template .replace('{{SESSION_ID}}', sessionId) .replace('{{REVIEW_TYPE}}', reviewType) .replace('{{REVIEW_DIR}}', reviewDir); Write(`${reviewDir}/dashboard.html`, dashboard); // Output to user console.log(`📊 Review Dashboard: file://${absolutePath(reviewDir)}/dashboard.html`); console.log(`📂 Review Output: ${reviewDir}`);
Archive Strategy
On Session Completion
When /workflow:session:complete is called:
-
Preserve Review Directory:
// Move entire session including .review/ Bash(`mv .workflow/active/${sessionId} .workflow/archives/${sessionId}`); -
Review Archive Structure:
.workflow/archives/WFS-auth-system/ ├── workflow-session.json ├── IMPL_PLAN.md ├── TODO_LIST.md ├── .task/ ├── .summaries/ └── .review/ # Review results preserved ├── review-metadata.json ├── REVIEW-SUMMARY.md └── dashboard.html -
Access Archived Reviews:
# Open archived dashboard start .workflow/archives/WFS-auth-system/.review/dashboard.html
Benefits
1. Unified Structure
- Same directory layout for all review types
- Consistent file naming and schemas
- Easier maintenance and tooling
2. Session Integration
- Review history tracked with implementation
- Easy correlation between code changes and reviews
- Simplified archiving and retrieval
3. Progressive Creation
- Directories created only when needed
- No upfront overhead
- Clean session initialization
4. Type Flexibility
- Module-based and session-based reviews in same structure
- Type indicated by metadata, not directory layout
- Easy to add new review types
5. Dashboard Consistency
- Same dashboard template for both types
- Unified progress tracking
- Consistent user experience
Migration Path
For Existing Commands
review-session-cycle:
- Change output from
.workflow/.reviews/session-{id}/to.workflow/active/{session-id}/.review/ - Update Phase 1 to use session discovery
- Add review-metadata.json creation
review-module-cycle:
- Add session requirement (or auto-create)
- Change output from
.workflow/.reviews/module-{hash}/to.workflow/active/{session-id}/.review/ - Update Phase 1 to use session discovery
- Add review-metadata.json creation
Backward Compatibility
For existing standalone reviews in .workflow/.reviews/:
- Keep for reference
- Document migration in README
- Provide migration script if needed
Implementation Checklist
- Update workflow-architecture.md with .review/ structure
- Update review-session-cycle.md command specification
- Update review-module-cycle.md command specification
- Update review-cycle-dashboard.html template
- Create review-metadata.json schema validation
- Update /workflow:session:complete to preserve .review/
- Update documentation examples
- Test both review types with new structure
- Validate dashboard compatibility
- Document migration path for existing reviews