mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-02-11 02:33:51 +08:00
- Create test-context-gather.md for MCP-based coverage analysis - Analyze test coverage gaps using MCP code-index tools - Identify files requiring tests - Detect test framework and conventions - Generate test-context-package.json with coverage data - Create test-concept-enhanced.md for Gemini-powered test analysis - Analyze coverage gaps and implementation context - Study existing test patterns and conventions - Generate comprehensive test requirements - Design test generation strategy - Output TEST_ANALYSIS_RESULTS.md with test specifications - Update test-task-generate.md to generate two tasks - IMPL-001: Test generation task calling @code-developer - IMPL-002: Test execution and fix cycle task calling @test-fix-agent - Use TEST_ANALYSIS_RESULTS.md for test generation requirements - Configure Gemini diagnosis and Codex resume mechanism for fixes - Update test-gen.md to 5-phase workflow - Phase 1: Create test session - Phase 2: Gather test context (test-context-gather) - Phase 3: Analyze test requirements (test-concept-enhanced) - Phase 4: Generate test tasks (test-task-generate) - Phase 5: Return summary - Simplify documentation by removing redundant content - Maintain all original intent while improving clarity Complete workflow: Coverage analysis → Gemini analysis → Test generation → Test execution → Fix cycle 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
8.8 KiB
8.8 KiB
name, description, usage, argument-hint, examples
| name | description | usage | argument-hint | examples | ||
|---|---|---|---|---|---|---|
| test-context-gather | Collect test coverage context and identify files requiring test generation | /workflow:tools:test-context-gather --session <test_session_id> | --session WFS-test-session-id |
|
Test Context Gather Command
Overview
Specialized context collector for test generation workflows that analyzes test coverage, identifies missing tests, and packages implementation context from source sessions.
Core Philosophy
- Coverage-First: Analyze existing test coverage before planning
- Gap Identification: Locate implementation files without corresponding tests
- Source Context Loading: Import implementation summaries from source session
- Framework Detection: Auto-detect test framework and patterns
- MCP-Powered: Leverage code-index tools for precise analysis
Core Responsibilities
- Load source session implementation context
- Analyze current test coverage using MCP tools
- Identify files requiring test generation
- Detect test framework and conventions
- Package test context for analysis phase
Execution Lifecycle
Phase 1: Session Validation & Source Loading
-
Test Session Validation
- Load
.workflow/{test_session_id}/workflow-session.json - Extract
meta.source_sessionreference - Validate test session type is "test-gen"
- Load
-
Source Session Context Loading
- Read
.workflow/{source_session_id}/workflow-session.json - Load implementation summaries from
.workflow/{source_session_id}/.summaries/ - Extract changed files and implementation scope
- Identify implementation patterns and tech stack
- Read
Phase 2: Test Coverage Analysis (MCP Tools)
-
Existing Test Discovery
# Find all test files mcp__code-index__find_files(pattern="*.test.*") mcp__code-index__find_files(pattern="*.spec.*") mcp__code-index__find_files(pattern="*test_*.py") # Search for test patterns mcp__code-index__search_code_advanced( pattern="describe|it|test|@Test", file_pattern="*.test.*", context_lines=0 ) -
Coverage Gap Analysis
# For each implementation file from source session # Check if corresponding test file exists # Example: src/auth/AuthService.ts -> tests/auth/AuthService.test.ts # src/utils/validator.py -> tests/test_validator.py # Output: List of files without tests -
Test Statistics
- Count total test files
- Count implementation files from source session
- Calculate coverage percentage
- Identify coverage gaps by module
Phase 3: Test Framework Detection
-
Framework Identification
# Check package.json or requirements.txt mcp__code-index__search_code_advanced( pattern="jest|mocha|jasmine|pytest|unittest|rspec", file_pattern="package.json|requirements.txt|Gemfile", context_lines=2 ) # Analyze existing test patterns mcp__code-index__search_code_advanced( pattern="describe\\(|it\\(|test\\(|def test_", file_pattern="*.test.*", context_lines=3 ) -
Convention Analysis
- Test file naming patterns (*.test.ts vs *.spec.ts)
- Test directory structure (tests/ vs tests vs src/**/.test.)
- Assertion library (expect, assert, should)
- Mocking framework (jest.fn, sinon, unittest.mock)
Phase 4: Context Packaging
Generate test-context-package.json:
{
"metadata": {
"test_session_id": "WFS-test-auth",
"source_session_id": "WFS-auth",
"timestamp": "2025-10-04T10:30:00Z",
"task_type": "test-generation",
"complexity": "medium"
},
"source_context": {
"implementation_summaries": [
{
"task_id": "IMPL-001",
"summary_path": ".workflow/WFS-auth/.summaries/IMPL-001-summary.md",
"changed_files": [
"src/auth/AuthService.ts",
"src/auth/TokenValidator.ts",
"src/middleware/auth.ts"
],
"implementation_type": "feature"
}
],
"tech_stack": ["typescript", "express", "jsonwebtoken"],
"project_patterns": {
"architecture": "layered",
"error_handling": "try-catch with custom errors",
"async_pattern": "async/await"
}
},
"test_coverage": {
"existing_tests": [
"tests/auth/AuthService.test.ts",
"tests/middleware/auth.test.ts"
],
"missing_tests": [
{
"implementation_file": "src/auth/TokenValidator.ts",
"suggested_test_file": "tests/auth/TokenValidator.test.ts",
"priority": "high",
"reason": "New implementation without tests"
}
],
"coverage_stats": {
"total_implementation_files": 3,
"files_with_tests": 2,
"files_without_tests": 1,
"coverage_percentage": 66.7
}
},
"test_framework": {
"framework": "jest",
"version": "^29.0.0",
"test_pattern": "**/*.test.ts",
"test_directory": "tests/",
"assertion_library": "expect",
"mocking_framework": "jest",
"conventions": {
"file_naming": "*.test.ts",
"test_structure": "describe/it blocks",
"setup_teardown": "beforeEach/afterEach"
}
},
"assets": [
{
"type": "implementation_summary",
"path": ".workflow/WFS-auth/.summaries/IMPL-001-summary.md",
"relevance": "Source implementation context",
"priority": "highest"
},
{
"type": "existing_test",
"path": "tests/auth/AuthService.test.ts",
"relevance": "Test pattern reference",
"priority": "high"
},
{
"type": "source_code",
"path": "src/auth/TokenValidator.ts",
"relevance": "Implementation requiring tests",
"priority": "high"
},
{
"type": "documentation",
"path": "CLAUDE.md",
"relevance": "Project conventions",
"priority": "medium"
}
],
"focus_areas": [
"Generate comprehensive tests for TokenValidator",
"Follow existing Jest patterns from AuthService tests",
"Cover happy path, error cases, and edge cases",
"Include integration tests for middleware"
]
}
Output Location
.workflow/{test_session_id}/.process/test-context-package.json
MCP Tools Usage
File Discovery
# Test files
mcp__code-index__find_files(pattern="*.test.*")
mcp__code-index__find_files(pattern="*.spec.*")
# Implementation files
mcp__code-index__find_files(pattern="*.ts")
mcp__code-index__find_files(pattern="*.js")
Content Search
# Test framework detection
mcp__code-index__search_code_advanced(
pattern="jest|mocha|pytest",
file_pattern="package.json|requirements.txt"
)
# Test pattern analysis
mcp__code-index__search_code_advanced(
pattern="describe|it|test",
file_pattern="*.test.*",
context_lines=2
)
Coverage Analysis
# For each implementation file
# Check if test exists
implementation_file="src/auth/AuthService.ts"
test_file_patterns=(
"tests/auth/AuthService.test.ts"
"src/auth/AuthService.test.ts"
"src/auth/__tests__/AuthService.test.ts"
)
# Search for test file
for pattern in "${test_file_patterns[@]}"; do
if mcp__code-index__find_files(pattern="$pattern") | grep -q .; then
echo "✅ Test exists: $pattern"
break
fi
done
Error Handling
| Error | Cause | Resolution |
|---|---|---|
| Source session not found | Invalid source_session reference | Verify test session metadata |
| No implementation summaries | Source session incomplete | Complete source session first |
| MCP tools unavailable | MCP not configured | Fallback to bash find/grep |
| No test framework detected | Missing test dependencies | Request user to specify framework |
Fallback Strategy (No MCP)
# File discovery
find . -name "*.test.*" -o -name "*.spec.*" | grep -v node_modules
# Framework detection
grep -r "jest\|mocha\|pytest" package.json requirements.txt 2>/dev/null
# Coverage analysis
for impl_file in $(cat changed_files.txt); do
test_file=$(echo $impl_file | sed 's/src/tests/' | sed 's/\(.*\)\.\(ts\|js\|py\)$/\1.test.\2/')
[ ! -f "$test_file" ] && echo "$impl_file → MISSING TEST"
done
Integration
Called By
/workflow:test-gen(Phase 3: Context Gathering)
Calls
- MCP code-index tools for analysis
- Bash file operations for fallback
Followed By
/workflow:tools:test-concept-enhanced- Analyzes context and plans test generation
Success Criteria
- ✅ Source session context loaded successfully
- ✅ Test coverage gaps identified with MCP tools
- ✅ Test framework detected and documented
- ✅ Valid test-context-package.json generated
- ✅ All missing tests catalogued with priority
- ✅ Execution time < 20 seconds
Related Commands
/workflow:test-gen- Main test generation workflow/workflow:tools:test-concept-enhanced- Test generation analysis/workflow:tools:test-task-generate- Test task JSON generation