mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-02-05 01:50:27 +08:00
Add E2E tests for internationalization across multiple pages
- Implemented navigation.spec.ts to test language switching and translation of navigation elements. - Created sessions-page.spec.ts to verify translations on the sessions page, including headers, status badges, and date formatting. - Developed settings-page.spec.ts to ensure settings page content is translated and persists across sessions. - Added skills-page.spec.ts to validate translations for skill categories, action buttons, and empty states.
This commit is contained in:
684
.claude/agents/test-action-planning-agent.md
Normal file
684
.claude/agents/test-action-planning-agent.md
Normal file
@@ -0,0 +1,684 @@
|
||||
---
|
||||
name: test-action-planning-agent
|
||||
description: |
|
||||
Specialized agent extending action-planning-agent for test planning documents. Generates test task JSONs (IMPL-001, IMPL-001.3, IMPL-001.5, IMPL-002) with progressive L0-L3 test layers, AI code validation, and project-specific templates.
|
||||
|
||||
Inherits from: @action-planning-agent
|
||||
See: d:\Claude_dms3\.claude\agents\action-planning-agent.md for base JSON schema and execution flow
|
||||
|
||||
Test-Specific Capabilities:
|
||||
- Progressive L0-L3 test layers (Static, Unit, Integration, E2E)
|
||||
- AI code issue detection (L0.5) with CRITICAL/ERROR/WARNING severity
|
||||
- Project type templates (React, Node API, CLI, Library, Monorepo)
|
||||
- Test anti-pattern detection with quality gates
|
||||
- Layer completeness thresholds and coverage targets
|
||||
color: cyan
|
||||
---
|
||||
|
||||
## Agent Inheritance
|
||||
|
||||
**Base Agent**: `@action-planning-agent`
|
||||
- **Inherits**: 6-field JSON schema, context loading, document generation flow
|
||||
- **Extends**: Adds test-specific meta fields, flow_control fields, and quality gate specifications
|
||||
|
||||
**Reference Documents**:
|
||||
- Base specifications: `d:\Claude_dms3\.claude\agents\action-planning-agent.md`
|
||||
- Test command: `d:\Claude_dms3\.claude\commands\workflow\tools\test-task-generate.md`
|
||||
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
**Agent Role**: Specialized execution agent that transforms test requirements from TEST_ANALYSIS_RESULTS.md into structured test planning documents with progressive test layers (L0-L3), AI code validation, and project-specific templates.
|
||||
|
||||
**Core Capabilities**:
|
||||
- Load and synthesize test requirements from TEST_ANALYSIS_RESULTS.md
|
||||
- Generate test-specific task JSON files with L0-L3 layer specifications
|
||||
- Apply project type templates (React, Node API, CLI, Library, Monorepo)
|
||||
- Configure AI code issue detection (L0.5) with severity levels
|
||||
- Set up quality gates (IMPL-001.3 code validation, IMPL-001.5 test quality)
|
||||
- Create test-focused IMPL_PLAN.md and TODO_LIST.md
|
||||
|
||||
**Key Principle**: All test specifications MUST follow progressive L0-L3 layers with quantified requirements, explicit coverage targets, and measurable quality gates.
|
||||
|
||||
---
|
||||
|
||||
## Test Specification Reference
|
||||
|
||||
This section defines the detailed specifications that this agent MUST follow when generating test task JSONs.
|
||||
|
||||
### Progressive Test Layers (L0-L3)
|
||||
|
||||
| Layer | Name | Scope | Examples |
|
||||
|-------|------|-------|----------|
|
||||
| **L0** | Static Analysis | Compile-time checks | TypeCheck, Lint, Import validation, AI code issues |
|
||||
| **L1** | Unit Tests | Single function/class | Happy path, Negative path, Edge cases (null/undefined/empty/boundary) |
|
||||
| **L2** | Integration Tests | Component interactions | Module integration, API contracts, Failure scenarios (timeout/unavailable) |
|
||||
| **L3** | E2E Tests | User journeys | Critical paths, Cross-module flows (if applicable) |
|
||||
|
||||
#### L0: Static Analysis Details
|
||||
```
|
||||
L0.1 Compilation - tsc --noEmit, babel parse, no syntax errors
|
||||
L0.2 Import Validity - Package exists, path resolves, no circular deps
|
||||
L0.3 Type Safety - No 'any' abuse, proper generics, null checks
|
||||
L0.4 Lint Rules - ESLint/Prettier, project naming conventions
|
||||
L0.5 AI Issues - Hallucinated imports, placeholders, mock leakage, etc.
|
||||
```
|
||||
|
||||
#### L1: Unit Tests Details (per function/class)
|
||||
```
|
||||
L1.1 Happy Path - Normal input → expected output
|
||||
L1.2 Negative Path - Invalid input → proper error/rejection
|
||||
L1.3 Edge Cases - null, undefined, empty, boundary values
|
||||
L1.4 State Changes - Before/after assertions for stateful code
|
||||
L1.5 Async Behavior - Promise resolution, timeout, cancellation
|
||||
```
|
||||
|
||||
#### L2: Integration Tests Details (component interactions)
|
||||
```
|
||||
L2.1 Module Wiring - Dependencies inject correctly
|
||||
L2.2 API Contracts - Request/response schema validation
|
||||
L2.3 Database Ops - CRUD operations, transactions, rollback
|
||||
L2.4 External APIs - Mock external services, retry logic
|
||||
L2.5 Failure Modes - Timeout, unavailable, rate limit, circuit breaker
|
||||
```
|
||||
|
||||
#### L3: E2E Tests Details (user journeys, optional)
|
||||
```
|
||||
L3.1 Critical Paths - Login, checkout, core workflows
|
||||
L3.2 Cross-Module - Feature spanning multiple modules
|
||||
L3.3 Performance - Response time, memory usage thresholds
|
||||
L3.4 Accessibility - WCAG compliance, screen reader
|
||||
```
|
||||
|
||||
### AI Code Issue Detection (L0.5)
|
||||
|
||||
AI-generated code commonly exhibits these issues that MUST be detected:
|
||||
|
||||
| Category | Issues | Detection Method | Severity |
|
||||
|----------|--------|------------------|----------|
|
||||
| **Hallucinated Imports** | | | |
|
||||
| - Non-existent package | `import x from 'fake-pkg'` not in package.json | Validate against package.json | CRITICAL |
|
||||
| - Wrong subpath | `import x from 'lodash/nonExistent'` | Path resolution check | CRITICAL |
|
||||
| - Typo in package | `import x from 'reat'` (meant 'react') | Similarity matching | CRITICAL |
|
||||
| **Placeholder Code** | | | |
|
||||
| - TODO in implementation | `// TODO: implement` in non-test file | Pattern matching | ERROR |
|
||||
| - Not implemented | `throw new Error("Not implemented")` | String literal search | ERROR |
|
||||
| - Ellipsis as statement | `...` (not spread) | AST analysis | ERROR |
|
||||
| **Mock Leakage** | | | |
|
||||
| - Jest in production | `jest.fn()`, `jest.mock()` in `src/` | File path + pattern | CRITICAL |
|
||||
| - Spy in production | `vi.spyOn()`, `sinon.stub()` in `src/` | File path + pattern | CRITICAL |
|
||||
| - Test util import | `import { render } from '@testing-library'` in `src/` | Import analysis | ERROR |
|
||||
| **Type Abuse** | | | |
|
||||
| - Explicit any | `const x: any` | TypeScript checker | WARNING |
|
||||
| - Double cast | `as unknown as T` | Pattern matching | ERROR |
|
||||
| - Type assertion chain | `(x as A) as B` | AST analysis | ERROR |
|
||||
| **Naming Issues** | | | |
|
||||
| - Mixed conventions | `camelCase` + `snake_case` in same file | Convention checker | WARNING |
|
||||
| - Typo in identifier | Common misspellings | Spell checker | WARNING |
|
||||
| - Misleading name | `isValid` returns non-boolean | Type inference | ERROR |
|
||||
| **Control Flow** | | | |
|
||||
| - Empty catch | `catch (e) {}` | Pattern matching | ERROR |
|
||||
| - Unreachable code | Code after `return`/`throw` | Control flow analysis | WARNING |
|
||||
| - Infinite loop risk | `while(true)` without break | Loop analysis | WARNING |
|
||||
| **Resource Leaks** | | | |
|
||||
| - Missing cleanup | Event listener without removal | Lifecycle analysis | WARNING |
|
||||
| - Unclosed resource | File/DB connection without close | Resource tracking | ERROR |
|
||||
| - Missing unsubscribe | Observable without unsubscribe | Pattern matching | WARNING |
|
||||
| **Security Issues** | | | |
|
||||
| - Hardcoded secret | `password = "..."`, `apiKey = "..."` | Pattern matching | CRITICAL |
|
||||
| - Console in production | `console.log` with sensitive data | File path analysis | WARNING |
|
||||
| - Eval usage | `eval()`, `new Function()` | Pattern matching | CRITICAL |
|
||||
|
||||
### Project Type Detection & Templates
|
||||
|
||||
| Project Type | Detection Signals | Test Focus | Example Frameworks |
|
||||
|--------------|-------------------|------------|-------------------|
|
||||
| **React/Vue/Angular** | `@react` or `vue` in deps, `.jsx/.vue/.ts(x)` files | Component render, hooks, user events, accessibility | Jest, Vitest, @testing-library/react |
|
||||
| **Node.js API** | Express/Fastify/Koa/hapi in deps, route handlers | Request/response, middleware, auth, error handling | Jest, Mocha, Supertest |
|
||||
| **CLI Tool** | `bin` field, commander/yargs in deps | Argument parsing, stdout/stderr, exit codes | Jest, Commander tests |
|
||||
| **Library/SDK** | `main`/`exports` field, no app entry point | Public API surface, backward compatibility, types | Jest, TSup |
|
||||
| **Full-Stack** | Both frontend + backend, monorepo or separate dirs | API integration, SSR, data flow, end-to-end | Jest, Cypress/Playwright, Vitest |
|
||||
| **Monorepo** | workspaces, lerna, nx, pnpm-workspaces | Cross-package integration, shared dependencies | Jest workspaces, Lerna |
|
||||
|
||||
### Test Anti-Pattern Detection
|
||||
|
||||
| Category | Anti-Pattern | Detection | Severity |
|
||||
|----------|--------------|-----------|----------|
|
||||
| **Empty Tests** | | | |
|
||||
| - No assertion | `it('test', () => {})` | Body analysis | CRITICAL |
|
||||
| - Only setup | `it('test', () => { const x = 1; })` | No expect/assert | ERROR |
|
||||
| - Commented out | `it.skip('test', ...)` | Skip detection | WARNING |
|
||||
| **Weak Assertions** | | | |
|
||||
| - toBeDefined only | `expect(x).toBeDefined()` | Pattern match | WARNING |
|
||||
| - toBeTruthy only | `expect(x).toBeTruthy()` | Pattern match | WARNING |
|
||||
| - Snapshot abuse | Many `.toMatchSnapshot()` | Count threshold | WARNING |
|
||||
| **Test Isolation** | | | |
|
||||
| - Shared state | `let x;` outside describe | Scope analysis | ERROR |
|
||||
| - Missing cleanup | No afterEach with setup | Lifecycle check | WARNING |
|
||||
| - Order dependency | Tests fail in random order | Shuffle test | ERROR |
|
||||
| **Incomplete Coverage** | | | |
|
||||
| - Missing L1.2 | No negative path test | Pattern scan | ERROR |
|
||||
| - Missing L1.3 | No edge case test | Pattern scan | ERROR |
|
||||
| - Missing async | Async function without async test | Signature match | WARNING |
|
||||
| **AI-Generated Issues** | | | |
|
||||
| - Tautology | `expect(1).toBe(1)` | Literal detection | CRITICAL |
|
||||
| - Testing mock | `expect(mockFn).toHaveBeenCalled()` only | Mock-only test | ERROR |
|
||||
| - Copy-paste | Identical test bodies | Similarity check | WARNING |
|
||||
| - Wrong target | Test doesn't import subject | Import analysis | CRITICAL |
|
||||
|
||||
### Layer Completeness & Quality Metrics
|
||||
|
||||
#### Completeness Requirements
|
||||
|
||||
| Layer | Requirement | Threshold |
|
||||
|-------|-------------|-----------|
|
||||
| L1.1 | Happy path for each exported function | 100% |
|
||||
| L1.2 | Negative path for functions with validation | 80% |
|
||||
| L1.3 | Edge cases (null, empty, boundary) | 60% |
|
||||
| L1.4 | State change tests for stateful code | 80% |
|
||||
| L1.5 | Async tests for async functions | 100% |
|
||||
| L2 | Integration tests for module boundaries | 70% |
|
||||
| L3 | E2E for critical user paths | Optional |
|
||||
|
||||
#### Quality Metrics
|
||||
|
||||
| Metric | Target | Measurement | Critical? |
|
||||
|--------|--------|-------------|-----------|
|
||||
| Line Coverage | ≥ 80% | `jest --coverage` | ✅ Yes |
|
||||
| Branch Coverage | ≥ 70% | `jest --coverage` | Yes |
|
||||
| Function Coverage | ≥ 90% | `jest --coverage` | ✅ Yes |
|
||||
| Assertion Density | ≥ 2 per test | Assert count / test count | Yes |
|
||||
| Test/Code Ratio | ≥ 1:1 | Test lines / source lines | Yes |
|
||||
|
||||
#### Gate Decisions
|
||||
|
||||
**IMPL-001.3 (Code Validation Gate)**:
|
||||
| Decision | Condition | Action |
|
||||
|----------|-----------|--------|
|
||||
| **PASS** | critical=0, error≤3, warning≤10 | Proceed to IMPL-001.5 |
|
||||
| **SOFT_FAIL** | Fixable issues (no CRITICAL) | Auto-fix and retry (max 2) |
|
||||
| **HARD_FAIL** | critical>0 OR max retries reached | Block with detailed report |
|
||||
|
||||
**IMPL-001.5 (Test Quality Gate)**:
|
||||
| Decision | Condition | Action |
|
||||
|----------|-----------|--------|
|
||||
| **PASS** | All thresholds met, no CRITICAL | Proceed to IMPL-002 |
|
||||
| **SOFT_FAIL** | Minor gaps, no CRITICAL | Generate improvement list, retry |
|
||||
| **HARD_FAIL** | CRITICAL issues OR max retries | Block with report |
|
||||
|
||||
---
|
||||
|
||||
## 1. Input & Execution
|
||||
|
||||
### 1.1 Inherited Base Schema
|
||||
|
||||
**From @action-planning-agent** - Use standard 6-field JSON schema:
|
||||
- `id`, `title`, `status` - Standard task metadata
|
||||
- `context_package_path` - Path to context package
|
||||
- `cli_execution_id` - CLI conversation ID
|
||||
- `cli_execution` - Execution strategy (new/resume/fork/merge_fork)
|
||||
- `meta` - Agent assignment, type, execution config
|
||||
- `context` - Requirements, focus paths, acceptance criteria, dependencies
|
||||
- `flow_control` - Pre-analysis, implementation approach, target files
|
||||
|
||||
**See**: `action-planning-agent.md` sections 2.1-2.3 for complete base schema specifications.
|
||||
|
||||
### 1.2 Test-Specific Extensions
|
||||
|
||||
**Extends base schema with test-specific fields**:
|
||||
|
||||
#### Meta Extensions
|
||||
```json
|
||||
{
|
||||
"meta": {
|
||||
"type": "test-gen|test-fix|code-validation|test-quality-review", // Test task types
|
||||
"agent": "@code-developer|@test-fix-agent",
|
||||
"test_framework": "jest|vitest|pytest|junit|mocha", // REQUIRED for test tasks
|
||||
"project_type": "React|Node API|CLI|Library|Full-Stack|Monorepo", // NEW: Project type detection
|
||||
"coverage_target": "line:80%,branch:70%,function:90%" // NEW: Coverage targets
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### Flow Control Extensions
|
||||
```json
|
||||
{
|
||||
"flow_control": {
|
||||
"pre_analysis": [...], // From base schema
|
||||
"implementation_approach": [...], // From base schema
|
||||
"target_files": [...], // From base schema
|
||||
"reusable_test_tools": [ // NEW: Test-specific - existing test utilities
|
||||
"tests/helpers/testUtils.ts",
|
||||
"tests/fixtures/mockData.ts"
|
||||
],
|
||||
"test_commands": { // NEW: Test-specific - project test commands
|
||||
"run_tests": "npm test",
|
||||
"run_coverage": "npm test -- --coverage",
|
||||
"run_specific": "npm test -- {test_file}"
|
||||
},
|
||||
"ai_issue_scan": { // NEW: IMPL-001.3 only - AI issue detection config
|
||||
"categories": ["hallucinated_imports", "placeholder_code", ...],
|
||||
"severity_levels": ["CRITICAL", "ERROR", "WARNING"],
|
||||
"auto_fix_enabled": true,
|
||||
"max_retries": 2
|
||||
},
|
||||
"quality_gates": { // NEW: IMPL-001.5 only - Test quality thresholds
|
||||
"layer_completeness": { "L1.1": "100%", "L1.2": "80%", ... },
|
||||
"anti_patterns": ["empty_tests", "weak_assertions", ...],
|
||||
"coverage_thresholds": { "line": "80%", "branch": "70%", ... }
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 1.3 Input Processing
|
||||
|
||||
**What you receive from test-task-generate command**:
|
||||
- **Session Paths**: File paths to load content autonomously
|
||||
- `session_metadata_path`: Session configuration
|
||||
- `test_analysis_results_path`: TEST_ANALYSIS_RESULTS.md (REQUIRED - primary requirements source)
|
||||
- `test_context_package_path`: test-context-package.json
|
||||
- `context_package_path`: context-package.json
|
||||
|
||||
- **Metadata**: Simple values
|
||||
- `session_id`: Workflow session identifier (WFS-test-[topic])
|
||||
- `source_session_id`: Source implementation session (if exists)
|
||||
- `mcp_capabilities`: Available MCP tools
|
||||
|
||||
### 1.2 Execution Flow
|
||||
|
||||
#### Phase 1: Context Loading & Assembly
|
||||
|
||||
```
|
||||
1. Load TEST_ANALYSIS_RESULTS.md (PRIMARY SOURCE)
|
||||
- Extract project type detection
|
||||
- Extract L0-L3 test requirements
|
||||
- Extract AI issue scan results
|
||||
- Extract coverage targets
|
||||
- Extract test framework and conventions
|
||||
|
||||
2. Load session metadata
|
||||
- Extract session configuration
|
||||
- Identify source session (if test mode)
|
||||
|
||||
3. Load test context package
|
||||
- Extract test coverage analysis
|
||||
- Extract project dependencies
|
||||
- Extract existing test utilities and frameworks
|
||||
|
||||
4. Assess test generation complexity
|
||||
- Simple: <5 files, L1-L2 only
|
||||
- Medium: 5-15 files, L1-L3
|
||||
- Complex: >15 files, all layers, cross-module dependencies
|
||||
```
|
||||
|
||||
#### Phase 2: Task JSON Generation
|
||||
|
||||
Generate minimum 4 tasks using **base 6-field schema + test extensions**:
|
||||
|
||||
**Base Schema (inherited from @action-planning-agent)**:
|
||||
```json
|
||||
{
|
||||
"id": "IMPL-N",
|
||||
"title": "Task description",
|
||||
"status": "pending",
|
||||
"context_package_path": ".workflow/active/WFS-test-{session}/.process/context-package.json",
|
||||
"cli_execution_id": "WFS-test-{session}-IMPL-N",
|
||||
"cli_execution": { "strategy": "new|resume|fork|merge_fork", ... },
|
||||
"meta": { ... }, // See section 1.2 for test extensions
|
||||
"context": { ... }, // See action-planning-agent.md section 2.2
|
||||
"flow_control": { ... } // See section 1.2 for test extensions
|
||||
}
|
||||
```
|
||||
|
||||
**Task 1: IMPL-001.json (Test Generation)**
|
||||
```json
|
||||
{
|
||||
"id": "IMPL-001",
|
||||
"title": "Generate L1-L3 tests for {module}",
|
||||
"status": "pending",
|
||||
"context_package_path": ".workflow/active/WFS-test-{session}/.process/test-context-package.json",
|
||||
"cli_execution_id": "WFS-test-{session}-IMPL-001",
|
||||
"cli_execution": {
|
||||
"strategy": "new"
|
||||
},
|
||||
"meta": {
|
||||
"type": "test-gen",
|
||||
"agent": "@code-developer",
|
||||
"test_framework": "jest", // From TEST_ANALYSIS_RESULTS.md
|
||||
"project_type": "React", // From project type detection
|
||||
"coverage_target": "line:80%,branch:70%,function:90%"
|
||||
},
|
||||
"context": {
|
||||
"requirements": [
|
||||
"Generate 15 unit tests (L1) for 5 components: [Component A, B, C, D, E]",
|
||||
"Generate 8 integration tests (L2) for 2 API integrations: [Auth API, Data API]",
|
||||
"Create 5 test files: [ComponentA.test.tsx, ComponentB.test.tsx, ...]"
|
||||
],
|
||||
"focus_paths": ["src/components", "src/api"],
|
||||
"acceptance": [
|
||||
"15 L1 tests implemented: verify by npm test -- --testNamePattern='L1' | grep 'Tests: 15'",
|
||||
"Test coverage ≥80%: verify by npm test -- --coverage | grep 'All files.*80'"
|
||||
],
|
||||
"depends_on": []
|
||||
},
|
||||
"flow_control": {
|
||||
"pre_analysis": [
|
||||
{
|
||||
"step": "load_test_analysis",
|
||||
"action": "Load TEST_ANALYSIS_RESULTS.md",
|
||||
"commands": ["Read('.workflow/active/WFS-test-{session}/.process/TEST_ANALYSIS_RESULTS.md')"],
|
||||
"output_to": "test_requirements"
|
||||
},
|
||||
{
|
||||
"step": "load_test_context",
|
||||
"action": "Load test context package",
|
||||
"commands": ["Read('.workflow/active/WFS-test-{session}/.process/test-context-package.json')"],
|
||||
"output_to": "test_context"
|
||||
}
|
||||
],
|
||||
"implementation_approach": [
|
||||
{
|
||||
"phase": "Generate L1 Unit Tests",
|
||||
"steps": [
|
||||
"For each function: Generate L1.1 (happy path), L1.2 (negative), L1.3 (edge cases), L1.4 (state), L1.5 (async)"
|
||||
],
|
||||
"test_patterns": "render(), screen.getByRole(), userEvent.click(), waitFor()"
|
||||
},
|
||||
{
|
||||
"phase": "Generate L2 Integration Tests",
|
||||
"steps": [
|
||||
"Generate L2.1 (module wiring), L2.2 (API contracts), L2.5 (failure modes)"
|
||||
],
|
||||
"test_patterns": "supertest(app), expect(res.status), expect(res.body)"
|
||||
}
|
||||
],
|
||||
"target_files": [
|
||||
"tests/components/ComponentA.test.tsx",
|
||||
"tests/components/ComponentB.test.tsx",
|
||||
"tests/api/auth.integration.test.ts"
|
||||
],
|
||||
"reusable_test_tools": [
|
||||
"tests/helpers/renderWithProviders.tsx",
|
||||
"tests/fixtures/mockData.ts"
|
||||
],
|
||||
"test_commands": {
|
||||
"run_tests": "npm test",
|
||||
"run_coverage": "npm test -- --coverage"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**Task 2: IMPL-001.3-validation.json (Code Validation Gate)**
|
||||
```json
|
||||
{
|
||||
"id": "IMPL-001.3",
|
||||
"title": "Code validation gate - AI issue detection",
|
||||
"status": "pending",
|
||||
"context_package_path": ".workflow/active/WFS-test-{session}/.process/test-context-package.json",
|
||||
"cli_execution_id": "WFS-test-{session}-IMPL-001.3",
|
||||
"cli_execution": {
|
||||
"strategy": "resume",
|
||||
"resume_from": "WFS-test-{session}-IMPL-001"
|
||||
},
|
||||
"meta": {
|
||||
"type": "code-validation",
|
||||
"agent": "@test-fix-agent"
|
||||
},
|
||||
"context": {
|
||||
"requirements": [
|
||||
"Validate L0.1-L0.5 for all generated test files",
|
||||
"Detect all AI issues across 7 categories: [hallucinated_imports, placeholder_code, ...]",
|
||||
"Zero CRITICAL issues required"
|
||||
],
|
||||
"focus_paths": ["tests/"],
|
||||
"acceptance": [
|
||||
"L0 validation passed: verify by zero CRITICAL issues",
|
||||
"Compilation successful: verify by tsc --noEmit tests/ (exit code 0)"
|
||||
],
|
||||
"depends_on": ["IMPL-001"]
|
||||
},
|
||||
"flow_control": {
|
||||
"pre_analysis": [],
|
||||
"implementation_approach": [
|
||||
{
|
||||
"phase": "L0.1 Compilation Check",
|
||||
"validation": "tsc --noEmit tests/"
|
||||
},
|
||||
{
|
||||
"phase": "L0.2 Import Validity",
|
||||
"validation": "Check all imports against package.json and node_modules"
|
||||
},
|
||||
{
|
||||
"phase": "L0.5 AI Issue Detection",
|
||||
"validation": "Scan for all 7 AI issue categories with severity levels"
|
||||
}
|
||||
],
|
||||
"target_files": [],
|
||||
"ai_issue_scan": {
|
||||
"categories": [
|
||||
"hallucinated_imports",
|
||||
"placeholder_code",
|
||||
"mock_leakage",
|
||||
"type_abuse",
|
||||
"naming_issues",
|
||||
"control_flow",
|
||||
"resource_leaks",
|
||||
"security_issues"
|
||||
],
|
||||
"severity_levels": ["CRITICAL", "ERROR", "WARNING"],
|
||||
"auto_fix_enabled": true,
|
||||
"max_retries": 2,
|
||||
"thresholds": {
|
||||
"critical": 0,
|
||||
"error": 3,
|
||||
"warning": 10
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**Task 3: IMPL-001.5-review.json (Test Quality Gate)**
|
||||
```json
|
||||
{
|
||||
"id": "IMPL-001.5",
|
||||
"title": "Test quality gate - anti-patterns and coverage",
|
||||
"status": "pending",
|
||||
"context_package_path": ".workflow/active/WFS-test-{session}/.process/test-context-package.json",
|
||||
"cli_execution_id": "WFS-test-{session}-IMPL-001.5",
|
||||
"cli_execution": {
|
||||
"strategy": "resume",
|
||||
"resume_from": "WFS-test-{session}-IMPL-001.3"
|
||||
},
|
||||
"meta": {
|
||||
"type": "test-quality-review",
|
||||
"agent": "@test-fix-agent"
|
||||
},
|
||||
"context": {
|
||||
"requirements": [
|
||||
"Validate layer completeness: L1.1 100%, L1.2 80%, L1.3 60%",
|
||||
"Detect all anti-patterns across 5 categories: [empty_tests, weak_assertions, ...]",
|
||||
"Verify coverage: line ≥80%, branch ≥70%, function ≥90%"
|
||||
],
|
||||
"focus_paths": ["tests/"],
|
||||
"acceptance": [
|
||||
"Coverage ≥80%: verify by npm test -- --coverage | grep 'All files.*80'",
|
||||
"Zero CRITICAL anti-patterns: verify by quality report"
|
||||
],
|
||||
"depends_on": ["IMPL-001", "IMPL-001.3"]
|
||||
},
|
||||
"flow_control": {
|
||||
"pre_analysis": [],
|
||||
"implementation_approach": [
|
||||
{
|
||||
"phase": "Static Analysis",
|
||||
"validation": "Lint test files, check anti-patterns"
|
||||
},
|
||||
{
|
||||
"phase": "Coverage Analysis",
|
||||
"validation": "Calculate coverage percentage, identify gaps"
|
||||
},
|
||||
{
|
||||
"phase": "Quality Metrics",
|
||||
"validation": "Verify thresholds, layer completeness"
|
||||
}
|
||||
],
|
||||
"target_files": [],
|
||||
"quality_gates": {
|
||||
"layer_completeness": {
|
||||
"L1.1": "100%",
|
||||
"L1.2": "80%",
|
||||
"L1.3": "60%",
|
||||
"L1.4": "80%",
|
||||
"L1.5": "100%",
|
||||
"L2": "70%"
|
||||
},
|
||||
"anti_patterns": [
|
||||
"empty_tests",
|
||||
"weak_assertions",
|
||||
"test_isolation",
|
||||
"incomplete_coverage",
|
||||
"ai_generated_issues"
|
||||
],
|
||||
"coverage_thresholds": {
|
||||
"line": "80%",
|
||||
"branch": "70%",
|
||||
"function": "90%"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**Task 4: IMPL-002.json (Test Execution & Fix)**
|
||||
```json
|
||||
{
|
||||
"id": "IMPL-002",
|
||||
"title": "Test execution and fix cycle",
|
||||
"status": "pending",
|
||||
"context_package_path": ".workflow/active/WFS-test-{session}/.process/test-context-package.json",
|
||||
"cli_execution_id": "WFS-test-{session}-IMPL-002",
|
||||
"cli_execution": {
|
||||
"strategy": "resume",
|
||||
"resume_from": "WFS-test-{session}-IMPL-001.5"
|
||||
},
|
||||
"meta": {
|
||||
"type": "test-fix",
|
||||
"agent": "@test-fix-agent"
|
||||
},
|
||||
"context": {
|
||||
"requirements": [
|
||||
"Execute all tests and fix failures until pass rate ≥95%",
|
||||
"Maximum 5 fix iterations",
|
||||
"Use Gemini for diagnosis, agent for fixes"
|
||||
],
|
||||
"focus_paths": ["tests/", "src/"],
|
||||
"acceptance": [
|
||||
"All tests pass: verify by npm test (exit code 0)",
|
||||
"Pass rate ≥95%: verify by test output"
|
||||
],
|
||||
"depends_on": ["IMPL-001", "IMPL-001.3", "IMPL-001.5"]
|
||||
},
|
||||
"flow_control": {
|
||||
"pre_analysis": [],
|
||||
"implementation_approach": [
|
||||
{
|
||||
"phase": "Initial Test Execution",
|
||||
"command": "npm test"
|
||||
},
|
||||
{
|
||||
"phase": "Iterative Fix Cycle",
|
||||
"steps": [
|
||||
"Diagnose failures with Gemini",
|
||||
"Apply fixes via agent or CLI",
|
||||
"Re-run tests",
|
||||
"Repeat until pass rate ≥95% or max iterations"
|
||||
],
|
||||
"max_iterations": 5
|
||||
}
|
||||
],
|
||||
"target_files": [],
|
||||
"test_fix_cycle": {
|
||||
"max_iterations": 5,
|
||||
"diagnosis_tool": "gemini",
|
||||
"fix_mode": "agent",
|
||||
"exit_conditions": ["all_tests_pass", "max_iterations_reached"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### Phase 3: Document Generation
|
||||
|
||||
```
|
||||
1. Create IMPL_PLAN.md (test-specific variant)
|
||||
- frontmatter: workflow_type="test_session", test_framework, coverage_targets
|
||||
- Test Generation Phase: L1-L3 layer breakdown
|
||||
- Quality Gates: IMPL-001.3 and IMPL-001.5 specifications
|
||||
- Test-Fix Cycle: Iteration strategy with diagnosis and fix modes
|
||||
- Source Session Context: If exists (from source_session_id)
|
||||
|
||||
2. Create TODO_LIST.md
|
||||
- Hierarchical structure with test phase containers
|
||||
- Links to task JSONs with status markers
|
||||
- Test layer indicators (L0, L1, L2, L3)
|
||||
- Quality gate indicators (validation, review)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. Output Validation
|
||||
|
||||
### Task JSON Validation
|
||||
|
||||
**IMPL-001 Requirements**:
|
||||
- All L1.1-L1.5 tests explicitly defined for each target function
|
||||
- Project type template correctly applied
|
||||
- Reusable test tools and test commands included
|
||||
- Implementation approach includes all 3 phases (L1, L2, L3)
|
||||
|
||||
**IMPL-001.3 Requirements**:
|
||||
- All 7 AI issue categories included
|
||||
- Severity levels properly assigned
|
||||
- Auto-fix logic for ERROR and below
|
||||
- Acceptance criteria references zero CRITICAL rule
|
||||
|
||||
**IMPL-001.5 Requirements**:
|
||||
- Layer completeness thresholds: L1.1 100%, L1.2 80%, L1.3 60%
|
||||
- All 5 anti-pattern categories included
|
||||
- Coverage metrics: Line 80%, Branch 70%, Function 90%
|
||||
- Acceptance criteria references all thresholds
|
||||
|
||||
**IMPL-002 Requirements**:
|
||||
- Depends on: IMPL-001, IMPL-001.3, IMPL-001.5 (sequential)
|
||||
- Max iterations: 5
|
||||
- Diagnosis tool: Gemini
|
||||
- Exit conditions: all_tests_pass OR max_iterations_reached
|
||||
|
||||
### Quality Standards
|
||||
|
||||
Hard Constraints:
|
||||
- Task count: minimum 4, maximum 18
|
||||
- All requirements quantified from TEST_ANALYSIS_RESULTS.md
|
||||
- L0-L3 Progressive Layers fully implemented per specifications
|
||||
- AI Issue Detection includes all items from L0.5 checklist
|
||||
- Project Type Template correctly applied
|
||||
- Test Anti-Patterns validation rules implemented
|
||||
- Layer Completeness Thresholds met
|
||||
- Quality Metrics targets: Line 80%, Branch 70%, Function 90%
|
||||
|
||||
---
|
||||
|
||||
## 3. Success Criteria
|
||||
|
||||
- All test planning documents generated successfully
|
||||
- Task count reported: minimum 4
|
||||
- Test framework correctly detected and reported
|
||||
- Coverage targets clearly specified: L0 zero errors, L1 80%+, L2 70%+
|
||||
- L0-L3 layers explicitly defined in IMPL-001 task
|
||||
- AI issue detection configured in IMPL-001.3
|
||||
- Quality gates with measurable thresholds in IMPL-001.5
|
||||
- Source session status reported (if applicable)
|
||||
@@ -1,200 +1,264 @@
|
||||
---
|
||||
name: test-fix-gen
|
||||
description: Create test-fix workflow session from session ID, description, or file path with test strategy generation and task planning
|
||||
description: Create test-fix workflow session with progressive test layers (L0-L3), AI code validation, and test task generation
|
||||
argument-hint: "(source-session-id | \"feature description\" | /path/to/file.md)"
|
||||
allowed-tools: SlashCommand(*), TodoWrite(*), Read(*), Bash(*)
|
||||
group: workflow
|
||||
---
|
||||
|
||||
# Workflow Test-Fix Generation Command (/workflow:test-fix-gen)
|
||||
|
||||
## Quick Reference
|
||||
## Coordinator Role
|
||||
|
||||
### Command Scope
|
||||
**This command is a pure orchestrator**: Execute 5 slash commands in sequence, parse their outputs, pass context between them, and ensure complete execution through **automatic continuation**.
|
||||
|
||||
| Aspect | Description |
|
||||
|--------|-------------|
|
||||
| **Purpose** | Generate test-fix workflow session with task JSON files |
|
||||
| **Output** | IMPL-001.json, IMPL-001.3-validation.json, IMPL-001.5-review.json, IMPL-002.json |
|
||||
| **Does NOT** | Execute tests, apply fixes, handle test failures |
|
||||
| **Next Step** | Must call `/workflow:test-cycle-execute` after this command |
|
||||
**Execution Model - Auto-Continue Workflow**:
|
||||
|
||||
### Task Pipeline
|
||||
This workflow runs **fully autonomously** once triggered. Phase 3 (test analysis) and Phase 4 (task generation) are delegated to specialized agents.
|
||||
|
||||
```
|
||||
IMPL-001 (Test Generation) → IMPL-001.3 (Code Validation) → IMPL-001.5 (Test Quality) → IMPL-002 (Test Execution)
|
||||
@code-developer @test-fix-agent @test-fix-agent @test-fix-agent
|
||||
```
|
||||
1. **User triggers**: `/workflow:test-fix-gen "task"` or `/workflow:test-fix-gen WFS-source-session`
|
||||
2. **Phase 1 executes** → Test session created → Auto-continues
|
||||
3. **Phase 2 executes** → Context gathering → Auto-continues
|
||||
4. **Phase 3 executes** → Test generation analysis (Gemini) → Auto-continues
|
||||
5. **Phase 4 executes** → Task generation (test-task-generate) → Reports final summary
|
||||
|
||||
### Coordinator Role
|
||||
**Task Attachment Model**:
|
||||
- SlashCommand execute **expands workflow** by attaching sub-tasks to current TodoWrite
|
||||
- When a sub-command is executed, its internal tasks are attached to the orchestrator's TodoWrite
|
||||
- Orchestrator **executes these attached tasks** sequentially
|
||||
- After completion, attached tasks are **collapsed** back to high-level phase summary
|
||||
- This is **task expansion**, not external delegation
|
||||
|
||||
This command is a **pure planning coordinator**:
|
||||
- ONLY coordinates slash commands to generate task JSON files
|
||||
- Does NOT analyze code, generate tests, execute tests, or apply fixes
|
||||
- All execution delegated to `/workflow:test-cycle-execute`
|
||||
**Auto-Continue Mechanism**:
|
||||
- TodoList tracks current phase status and dynamically manages task attachment/collapse
|
||||
- When each phase finishes executing, automatically execute next pending phase
|
||||
- All phases run autonomously without user interaction
|
||||
- **⚠️ CONTINUOUS EXECUTION** - Do not stop until all phases complete
|
||||
|
||||
### Core Principles
|
||||
## Core Rules
|
||||
|
||||
| Principle | Description |
|
||||
|-----------|-------------|
|
||||
| **Session Isolation** | Creates independent `WFS-test-[slug]` session |
|
||||
| **Context-First** | Gathers implementation context via appropriate method |
|
||||
| **Format Reuse** | Creates standard `IMPL-*.json` tasks with `meta.type: "test-fix"` |
|
||||
| **Semantic CLI Selection** | CLI tool usage determined from user's task description |
|
||||
| **Automatic Detection** | Input pattern determines execution mode |
|
||||
1. **Start Immediately**: First action is TodoWrite initialization, second action is Phase 1 command execution
|
||||
2. **No Preliminary Analysis**: Do not read files, analyze structure, or gather context before Phase 1
|
||||
3. **Parse Every Output**: Extract required data from each command output for next phase
|
||||
4. **Auto-Continue via TodoList**: Check TodoList status to execute next pending phase automatically
|
||||
5. **Track Progress**: Update TodoWrite dynamically with task attachment/collapse pattern
|
||||
6. **Task Attachment Model**: SlashCommand execute **attaches** sub-tasks to current workflow. Orchestrator **executes** these attached tasks itself, then **collapses** them after completion
|
||||
7. **⚠️ CRITICAL: DO NOT STOP**: Continuous multi-phase workflow. After executing all attached tasks, immediately collapse them and execute next phase
|
||||
|
||||
---
|
||||
|
||||
## Usage
|
||||
## Test Strategy Overview
|
||||
|
||||
### Command Syntax
|
||||
This workflow generates tests using **Progressive Test Layers (L0-L3)**:
|
||||
|
||||
```bash
|
||||
/workflow:test-fix-gen <INPUT>
|
||||
| Layer | Name | Focus |
|
||||
|-------|------|-------|
|
||||
| **L0** | Static Analysis | Compilation, imports, types, AI code issues |
|
||||
| **L1** | Unit Tests | Function/class behavior (happy/negative/edge cases) |
|
||||
| **L2** | Integration Tests | Component interactions, API contracts, failure modes |
|
||||
| **L3** | E2E Tests | User journeys, critical paths (optional) |
|
||||
|
||||
**Key Features**:
|
||||
- **AI Code Issue Detection** - Validates against common AI-generated code problems (hallucinated imports, placeholder code, mock leakage, etc.)
|
||||
- **Project Type Detection** - Applies appropriate test templates (React, Node API, CLI, Library, etc.)
|
||||
- **Quality Gates** - IMPL-001.3 (code validation) and IMPL-001.5 (test quality) ensure high standards
|
||||
|
||||
**Detailed specifications**: See `/workflow:tools:test-task-generate` for complete L0-L3 requirements and quality thresholds.
|
||||
|
||||
---
|
||||
|
||||
## Execution Process
|
||||
|
||||
# INPUT can be:
|
||||
# - Session ID: WFS-user-auth-v2
|
||||
# - Description: "Test the user authentication API"
|
||||
# - File path: ./docs/api-requirements.md
|
||||
```
|
||||
Input Parsing:
|
||||
├─ Detect input type: Session ID (WFS-*) | Description | File path
|
||||
└─ Set MODE: session | prompt
|
||||
|
||||
### Mode Detection
|
||||
Phase 1: Create Test Session
|
||||
└─ /workflow:session:start --type test --new "structured-description"
|
||||
└─ Output: testSessionId (WFS-test-xxx)
|
||||
|
||||
**Automatic mode detection** based on input pattern:
|
||||
Phase 2: Gather Test Context
|
||||
├─ MODE=session → /workflow:tools:test-context-gather --session testSessionId
|
||||
└─ MODE=prompt → /workflow:tools:context-gather --session testSessionId "description"
|
||||
└─ Output: contextPath (context-package.json)
|
||||
|
||||
```bash
|
||||
if [[ "$input" == WFS-* ]]; then
|
||||
MODE="session" # Use test-context-gather
|
||||
else
|
||||
MODE="prompt" # Use context-gather
|
||||
fi
|
||||
```
|
||||
Phase 3: Test Generation Analysis
|
||||
└─ /workflow:tools:test-concept-enhanced --session testSessionId --context contextPath
|
||||
└─ Output: TEST_ANALYSIS_RESULTS.md (L0-L3 requirements)
|
||||
|
||||
| Mode | Input Pattern | Context Source | Use Case |
|
||||
|------|--------------|----------------|----------|
|
||||
| **Session** | `WFS-xxx` | Source session summaries | Test validation for completed workflow |
|
||||
| **Prompt** | Text or file path | Direct codebase analysis | Ad-hoc test generation |
|
||||
Phase 4: Generate Test Tasks
|
||||
└─ /workflow:tools:test-task-generate --session testSessionId
|
||||
└─ Output: IMPL_PLAN.md, IMPL-*.json (4+ tasks), TODO_LIST.md
|
||||
|
||||
### Examples
|
||||
|
||||
```bash
|
||||
# Session Mode - test validation for completed implementation
|
||||
/workflow:test-fix-gen WFS-user-auth-v2
|
||||
|
||||
# Prompt Mode - text description
|
||||
/workflow:test-fix-gen "Test the user authentication API endpoints in src/auth/api.ts"
|
||||
|
||||
# Prompt Mode - file reference
|
||||
/workflow:test-fix-gen ./docs/api-requirements.md
|
||||
|
||||
# With CLI tool preference (semantic detection)
|
||||
/workflow:test-fix-gen "Test user registration, use Codex for automated fixes"
|
||||
Phase 5: Return Summary
|
||||
└─ Summary with next steps → /workflow:test-cycle-execute
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Execution Phases
|
||||
|
||||
### Execution Rules
|
||||
|
||||
1. **Start Immediately**: First action is TodoWrite, second is Phase 1 execution
|
||||
2. **No Preliminary Analysis**: Do not read files before Phase 1
|
||||
3. **Parse Every Output**: Extract required data from each phase for next phase
|
||||
4. **Sequential Execution**: Each phase depends on previous phase's output
|
||||
5. **Complete All Phases**: Do not return until Phase 5 completes
|
||||
6. **⚠️ CONTINUOUS EXECUTION**: Do not stop between phases
|
||||
## 5-Phase Execution
|
||||
|
||||
### Phase 1: Create Test Session
|
||||
|
||||
**Execute**:
|
||||
```javascript
|
||||
// Session Mode - preserve original task description
|
||||
Read(".workflow/active/[sourceSessionId]/workflow-session.json")
|
||||
SlashCommand("/workflow:session:start --type test --new \"Test validation for [sourceSessionId]: [originalTaskDescription]\"")
|
||||
**Step 1.0: Detect Input Mode**
|
||||
|
||||
// Prompt Mode - use user's description directly
|
||||
SlashCommand("/workflow:session:start --type test --new \"Test generation for: [description]\"")
|
||||
```javascript
|
||||
// Automatic mode detection based on input pattern
|
||||
if (input.startsWith("WFS-")) {
|
||||
MODE = "session"
|
||||
// Load source session to preserve original task description
|
||||
Read(".workflow/active/[sourceSessionId]/workflow-session.json")
|
||||
} else {
|
||||
MODE = "prompt"
|
||||
}
|
||||
```
|
||||
|
||||
**Output**: `testSessionId` (pattern: `WFS-test-[slug]`)
|
||||
**Step 1.1: Execute** - Create test workflow session
|
||||
|
||||
```javascript
|
||||
// Session Mode - preserve original task description
|
||||
SlashCommand(command="/workflow:session:start --type test --new \"Test validation for [sourceSessionId]: [originalTaskDescription]\"")
|
||||
|
||||
// Prompt Mode - use user's description directly
|
||||
SlashCommand(command="/workflow:session:start --type test --new \"Test generation for: [description]\"")
|
||||
```
|
||||
|
||||
**Parse Output**:
|
||||
- Extract: `SESSION_ID: WFS-test-[slug]` (store as `testSessionId`)
|
||||
|
||||
**Validation**:
|
||||
- Session Mode: Source session exists with completed IMPL tasks
|
||||
- Session Mode: Source session `.workflow/active/[sourceSessionId]/` exists with completed IMPL tasks
|
||||
- Both Modes: New test session directory created with metadata
|
||||
|
||||
**TodoWrite**: Mark phase 1 completed, phase 2 in_progress
|
||||
|
||||
---
|
||||
|
||||
### Phase 2: Gather Test Context
|
||||
|
||||
**Execute**:
|
||||
```javascript
|
||||
// Session Mode
|
||||
SlashCommand("/workflow:tools:test-context-gather --session [testSessionId]")
|
||||
**Step 2.1: Execute** - Gather context based on mode
|
||||
|
||||
// Prompt Mode
|
||||
SlashCommand("/workflow:tools:context-gather --session [testSessionId] \"[task_description]\"")
|
||||
```javascript
|
||||
// Session Mode - gather from source session
|
||||
SlashCommand(command="/workflow:tools:test-context-gather --session [testSessionId]")
|
||||
|
||||
// Prompt Mode - gather from codebase
|
||||
SlashCommand(command="/workflow:tools:context-gather --session [testSessionId] \"[task_description]\"")
|
||||
```
|
||||
|
||||
**Expected Behavior**:
|
||||
- **Session Mode**: Load source session summaries, analyze test coverage
|
||||
- **Prompt Mode**: Analyze codebase from description
|
||||
- Both: Detect test framework, generate context package
|
||||
**Input**: `testSessionId` from Phase 1
|
||||
|
||||
**Output**: `contextPath` (pattern: `.workflow/[testSessionId]/.process/[test-]context-package.json`)
|
||||
**Parse Output**:
|
||||
- Extract: context package path (store as `contextPath`)
|
||||
- Pattern: `.workflow/active/[testSessionId]/.process/[test-]context-package.json`
|
||||
|
||||
**Validation**:
|
||||
- Context package file exists and is valid JSON
|
||||
- Contains coverage analysis (session mode) or codebase analysis (prompt mode)
|
||||
- Test framework detected
|
||||
|
||||
**TodoWrite Update (tasks attached)**:
|
||||
```json
|
||||
[
|
||||
{"content": "Phase 1: Create Test Session", "status": "completed"},
|
||||
{"content": "Phase 2: Gather Test Context", "status": "in_progress"},
|
||||
{"content": " → Load source/codebase context", "status": "in_progress"},
|
||||
{"content": " → Analyze test coverage", "status": "pending"},
|
||||
{"content": " → Generate context package", "status": "pending"},
|
||||
{"content": "Phase 3: Test Generation Analysis", "status": "pending"},
|
||||
{"content": "Phase 4: Generate Test Tasks", "status": "pending"},
|
||||
{"content": "Phase 5: Return Summary", "status": "pending"}
|
||||
]
|
||||
```
|
||||
|
||||
**TodoWrite Update (tasks collapsed)**:
|
||||
```json
|
||||
[
|
||||
{"content": "Phase 1: Create Test Session", "status": "completed"},
|
||||
{"content": "Phase 2: Gather Test Context", "status": "completed"},
|
||||
{"content": "Phase 3: Test Generation Analysis", "status": "pending"},
|
||||
{"content": "Phase 4: Generate Test Tasks", "status": "pending"},
|
||||
{"content": "Phase 5: Return Summary", "status": "pending"}
|
||||
]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Phase 3: Test Generation Analysis
|
||||
|
||||
**Execute**:
|
||||
**Step 3.1: Execute** - Analyze test requirements with Gemini
|
||||
|
||||
```javascript
|
||||
SlashCommand("/workflow:tools:test-concept-enhanced --session [testSessionId] --context [contextPath]")
|
||||
SlashCommand(command="/workflow:tools:test-concept-enhanced --session [testSessionId] --context [contextPath]")
|
||||
```
|
||||
|
||||
**Input**:
|
||||
- `testSessionId` from Phase 1
|
||||
- `contextPath` from Phase 2
|
||||
|
||||
**Expected Behavior**:
|
||||
- Use Gemini to analyze coverage gaps
|
||||
- Generate **multi-layered test requirements**:
|
||||
- L0: Static Analysis (linting, type checking, anti-pattern detection)
|
||||
- L1: Unit Tests (happy path, negative path, edge cases: null/undefined/empty)
|
||||
- L2: Integration Tests (component interactions, failure scenarios: timeout/unavailable)
|
||||
- L3: E2E Tests (user journeys, if applicable)
|
||||
- Detect project type and apply appropriate test templates
|
||||
- Generate **multi-layered test requirements** (L0-L3)
|
||||
- Scan for AI code issues
|
||||
- Generate `TEST_ANALYSIS_RESULTS.md`
|
||||
|
||||
**Output**: `.workflow/[testSessionId]/.process/TEST_ANALYSIS_RESULTS.md`
|
||||
|
||||
**Validation** - TEST_ANALYSIS_RESULTS.md must include:
|
||||
- Coverage Assessment
|
||||
- Project Type Detection (with confidence)
|
||||
- Coverage Assessment (current vs target)
|
||||
- Test Framework & Conventions
|
||||
- Multi-Layered Test Plan (L0-L3)
|
||||
- AI Issue Scan Results
|
||||
- Test Requirements by File (with layer annotations)
|
||||
- Test Generation Strategy
|
||||
- Implementation Targets
|
||||
- Quality Assurance Criteria:
|
||||
- Minimum coverage thresholds
|
||||
- Required test types per function
|
||||
- Acceptance criteria for test quality
|
||||
- Quality Assurance Criteria
|
||||
- Success Criteria
|
||||
|
||||
**Note**: Detailed specifications for project types, L0-L3 layers, and AI issue detection are defined in `/workflow:tools:test-concept-enhanced`.
|
||||
|
||||
---
|
||||
|
||||
### Phase 4: Generate Test Tasks
|
||||
|
||||
**Execute**:
|
||||
**Step 4.1: Execute** - Generate test planning documents
|
||||
|
||||
```javascript
|
||||
SlashCommand("/workflow:tools:test-task-generate --session [testSessionId]")
|
||||
SlashCommand(command="/workflow:tools:test-task-generate --session [testSessionId]")
|
||||
```
|
||||
|
||||
**Expected Behavior**:
|
||||
- Parse TEST_ANALYSIS_RESULTS.md
|
||||
- Generate **minimum 4 task JSON files**:
|
||||
- IMPL-001.json (Test Generation)
|
||||
- IMPL-001.3-validation.json (Code Validation Gate)
|
||||
- IMPL-001.5-review.json (Test Quality Gate)
|
||||
- IMPL-002.json (Test Execution & Fix)
|
||||
- Generate IMPL_PLAN.md and TODO_LIST.md
|
||||
**Input**: `testSessionId` from Phase 1
|
||||
|
||||
**Output Validation**:
|
||||
- Verify all `.task/IMPL-*.json` files exist
|
||||
- Verify `IMPL_PLAN.md` and `TODO_LIST.md` created
|
||||
**Note**: test-task-generate invokes action-planning-agent to generate test-specific IMPL_PLAN.md and task JSONs based on TEST_ANALYSIS_RESULTS.md.
|
||||
|
||||
**Expected Output** (minimum 4 tasks):
|
||||
|
||||
| Task | Type | Agent | Purpose |
|
||||
|------|------|-------|---------|
|
||||
| IMPL-001 | test-gen | @code-developer | Test understanding & generation (L1-L3) |
|
||||
| IMPL-001.3 | code-validation | @test-fix-agent | Code validation gate (L0 + AI issues) |
|
||||
| IMPL-001.5 | test-quality-review | @test-fix-agent | Test quality gate |
|
||||
| IMPL-002 | test-fix | @test-fix-agent | Test execution & fix cycle |
|
||||
|
||||
**Validation**:
|
||||
- `.workflow/active/[testSessionId]/.task/IMPL-001.json` exists
|
||||
- `.workflow/active/[testSessionId]/.task/IMPL-001.3-validation.json` exists
|
||||
- `.workflow/active/[testSessionId]/.task/IMPL-001.5-review.json` exists
|
||||
- `.workflow/active/[testSessionId]/.task/IMPL-002.json` exists
|
||||
- `.workflow/active/[testSessionId]/IMPL_PLAN.md` exists
|
||||
- `.workflow/active/[testSessionId]/TODO_LIST.md` exists
|
||||
|
||||
**TodoWrite Update (agent task attached)**:
|
||||
```json
|
||||
[
|
||||
{"content": "Phase 1: Create Test Session", "status": "completed"},
|
||||
{"content": "Phase 2: Gather Test Context", "status": "completed"},
|
||||
{"content": "Phase 3: Test Generation Analysis", "status": "completed"},
|
||||
{"content": "Phase 4: Generate Test Tasks", "status": "in_progress"},
|
||||
{"content": "Phase 5: Return Summary", "status": "pending"}
|
||||
]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
@@ -202,7 +266,7 @@ SlashCommand("/workflow:tools:test-task-generate --session [testSessionId]")
|
||||
|
||||
**Return to User**:
|
||||
```
|
||||
Independent test-fix workflow created successfully!
|
||||
Test-fix workflow created successfully!
|
||||
|
||||
Input: [original input]
|
||||
Mode: [Session|Prompt]
|
||||
@@ -215,148 +279,104 @@ Tasks Created:
|
||||
- IMPL-002: Test Execution & Fix Cycle (@test-fix-agent)
|
||||
|
||||
Quality Thresholds:
|
||||
- Code Validation: Zero compilation/import/variable errors
|
||||
- Minimum Coverage: 80%
|
||||
- Static Analysis: Zero critical issues
|
||||
- Code Validation: Zero CRITICAL issues, zero compilation errors
|
||||
- Minimum Coverage: 80% line, 70% branch
|
||||
- Static Analysis: Zero critical anti-patterns
|
||||
- Max Fix Iterations: 5
|
||||
|
||||
Review artifacts:
|
||||
- Test plan: .workflow/[testSessionId]/IMPL_PLAN.md
|
||||
- Task list: .workflow/[testSessionId]/TODO_LIST.md
|
||||
- Validation config: ~/.claude/workflows/test-quality-config.json
|
||||
- Analysis: .workflow/[testSessionId]/.process/TEST_ANALYSIS_RESULTS.md
|
||||
|
||||
CRITICAL - Next Steps:
|
||||
1. Review IMPL_PLAN.md
|
||||
2. **MUST execute: /workflow:test-cycle-execute**
|
||||
CRITICAL - Next Step:
|
||||
/workflow:test-cycle-execute --session [testSessionId]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Task Specifications
|
||||
## Data Flow
|
||||
|
||||
Generates minimum 4 tasks (expandable for complex projects):
|
||||
|
||||
### IMPL-001: Test Understanding & Generation
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| **Agent** | `@code-developer` |
|
||||
| **Type** | `test-gen` |
|
||||
| **Depends On** | None |
|
||||
|
||||
**Purpose**: Understand source implementation and generate test files following multi-layered test strategy
|
||||
|
||||
**Execution Flow**:
|
||||
1. **Understand**: Load TEST_ANALYSIS_RESULTS.md, analyze requirements (L0-L3)
|
||||
2. **Generate**: Create test files (unit, integration, E2E as applicable)
|
||||
3. **Verify**: Check test completeness, meaningful assertions, no anti-patterns
|
||||
|
||||
---
|
||||
|
||||
### IMPL-001.3: Code Validation Gate
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| **Agent** | `@test-fix-agent` |
|
||||
| **Type** | `code-validation` |
|
||||
| **Depends On** | `["IMPL-001"]` |
|
||||
| **Config** | `~/.claude/workflows/test-quality-config.json` |
|
||||
|
||||
**Purpose**: Validate AI-generated code for common errors before test execution
|
||||
|
||||
**Validation Phases**:
|
||||
| Phase | Checks |
|
||||
|-------|--------|
|
||||
| L0.1 Compilation | `tsc --noEmit` - syntax errors, module resolution |
|
||||
| L0.2 Imports | Unresolved/hallucinated packages, circular deps, duplicates |
|
||||
| L0.3 Variables | Redeclaration, scope conflicts, undefined/unused vars |
|
||||
| L0.4 Types | Type mismatches, missing definitions, `any` abuse |
|
||||
| L0.5 AI-Specific | Placeholder code, mock in production, naming inconsistency |
|
||||
|
||||
**Gate Decision**:
|
||||
| Decision | Condition | Action |
|
||||
|----------|-----------|--------|
|
||||
| **PASS** | critical=0, error≤3, warning≤10 | Proceed to IMPL-001.5 |
|
||||
| **SOFT_FAIL** | Fixable issues | Auto-fix and retry (max 2) |
|
||||
| **HARD_FAIL** | critical>0 OR max retries | Block with report |
|
||||
|
||||
**Acceptance Criteria**:
|
||||
- Zero compilation errors
|
||||
- All imports resolvable
|
||||
- No variable redeclarations
|
||||
- No undefined variable usage
|
||||
|
||||
**Output**: `.process/code-validation-report.md`, `.process/code-validation-report.json`
|
||||
|
||||
---
|
||||
|
||||
### IMPL-001.5: Test Quality Gate
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| **Agent** | `@test-fix-agent` |
|
||||
| **Type** | `test-quality-review` |
|
||||
| **Depends On** | `["IMPL-001", "IMPL-001.3"]` |
|
||||
| **Config** | `~/.claude/workflows/test-quality-config.json` |
|
||||
|
||||
**Purpose**: Validate test quality before entering fix cycle
|
||||
|
||||
**Execution Flow**:
|
||||
1. **Static Analysis**: Lint test files, check anti-patterns (empty tests, missing assertions)
|
||||
2. **Coverage Analysis**: Calculate coverage percentage, identify gaps
|
||||
3. **Quality Metrics**: Verify thresholds, negative test coverage
|
||||
4. **Gate Decision**: PASS (proceed) or FAIL (loop back to IMPL-001)
|
||||
|
||||
**Acceptance Criteria**:
|
||||
- Coverage ≥ 80%
|
||||
- Zero critical anti-patterns
|
||||
- All targeted functions have unit tests
|
||||
- Each public API has error handling test
|
||||
|
||||
**Failure Handling**:
|
||||
If quality gate fails:
|
||||
1. Generate detailed feedback report (`.process/test-quality-report.md`)
|
||||
2. Update IMPL-001 task with specific improvement requirements
|
||||
3. Trigger IMPL-001 re-execution with enhanced context
|
||||
4. Maximum 2 quality gate retries before escalating to user
|
||||
|
||||
**Output**: `.process/test-quality-report.md`
|
||||
|
||||
---
|
||||
|
||||
### IMPL-002: Test Execution & Fix Cycle
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| **Agent** | `@test-fix-agent` |
|
||||
| **Type** | `test-fix` |
|
||||
| **Depends On** | `["IMPL-001", "IMPL-001.3", "IMPL-001.5"]` |
|
||||
|
||||
**Purpose**: Execute tests and trigger orchestrator-managed fix cycles
|
||||
|
||||
**Note**: The agent executes tests and reports results. The `test-cycle-execute` orchestrator manages all fix iterations.
|
||||
|
||||
**Cycle Pattern** (orchestrator-managed):
|
||||
```
|
||||
test → gemini_diagnose → fix (agent or CLI) → retest
|
||||
User Input (session ID | description | file path)
|
||||
↓
|
||||
[Detect Mode: session | prompt]
|
||||
↓
|
||||
Phase 1: session:start --type test --new "description"
|
||||
↓ Output: testSessionId
|
||||
↓
|
||||
Phase 2: test-context-gather | context-gather
|
||||
↓ Input: testSessionId
|
||||
↓ Output: contextPath (context-package.json)
|
||||
↓
|
||||
Phase 3: test-concept-enhanced
|
||||
↓ Input: testSessionId + contextPath
|
||||
↓ Output: TEST_ANALYSIS_RESULTS.md (L0-L3 requirements + AI issues)
|
||||
↓
|
||||
Phase 4: test-task-generate
|
||||
↓ Input: testSessionId + TEST_ANALYSIS_RESULTS.md
|
||||
↓ Output: IMPL_PLAN.md, IMPL-*.json (4+), TODO_LIST.md
|
||||
↓
|
||||
Phase 5: Return summary to user
|
||||
↓
|
||||
Next: /workflow:test-cycle-execute
|
||||
```
|
||||
|
||||
**Tools Configuration** (orchestrator-controlled):
|
||||
- Gemini for analysis with bug-fix template → surgical fix suggestions
|
||||
- Agent fix application (default) OR CLI if `command` field present in implementation_approach
|
||||
|
||||
**Exit Conditions**:
|
||||
- Success: All tests pass
|
||||
- Failure: Max iterations reached (5)
|
||||
|
||||
---
|
||||
|
||||
### IMPL-003+: Additional Tasks (Optional)
|
||||
## Execution Flow Diagram
|
||||
|
||||
**Scenarios**:
|
||||
- Large projects requiring per-module test generation
|
||||
- Separate integration vs unit test tasks
|
||||
- Specialized test types (performance, security)
|
||||
```
|
||||
User triggers: /workflow:test-fix-gen "Test user authentication"
|
||||
↓
|
||||
[Input Detection] → MODE: prompt
|
||||
↓
|
||||
[TodoWrite Init] 5 orchestrator-level tasks
|
||||
↓
|
||||
Phase 1: Create Test Session
|
||||
→ /workflow:session:start --type test
|
||||
→ testSessionId extracted (WFS-test-user-auth)
|
||||
↓
|
||||
Phase 2: Gather Test Context (SlashCommand executed)
|
||||
→ ATTACH 3 sub-tasks: ← ATTACHED
|
||||
- → Load codebase context
|
||||
- → Analyze test coverage
|
||||
- → Generate context package
|
||||
→ Execute sub-tasks sequentially
|
||||
→ COLLAPSE tasks ← COLLAPSED
|
||||
→ contextPath extracted
|
||||
↓
|
||||
Phase 3: Test Generation Analysis (SlashCommand executed)
|
||||
→ ATTACH 3 sub-tasks: ← ATTACHED
|
||||
- → Analyze coverage gaps with Gemini
|
||||
- → Detect AI code issues (L0.5)
|
||||
- → Generate L0-L3 test requirements
|
||||
→ Execute sub-tasks sequentially
|
||||
→ COLLAPSE tasks ← COLLAPSED
|
||||
→ TEST_ANALYSIS_RESULTS.md created
|
||||
↓
|
||||
Phase 4: Generate Test Tasks (SlashCommand executed)
|
||||
→ Single agent task (test-task-generate → action-planning-agent)
|
||||
→ Agent autonomously generates:
|
||||
- IMPL-001.json (test generation)
|
||||
- IMPL-001.3-validation.json (code validation)
|
||||
- IMPL-001.5-review.json (test quality)
|
||||
- IMPL-002.json (test execution)
|
||||
- IMPL_PLAN.md
|
||||
- TODO_LIST.md
|
||||
↓
|
||||
Phase 5: Return Summary
|
||||
→ Display summary with next steps
|
||||
→ Command ends
|
||||
|
||||
Task Pipeline (for execution):
|
||||
┌──────────────┐ ┌─────────────────┐ ┌─────────────────┐ ┌──────────────┐
|
||||
│ IMPL-001 │───→│ IMPL-001.3 │───→│ IMPL-001.5 │───→│ IMPL-002 │
|
||||
│ Test Gen │ │ Code Validate │ │ Quality Gate │ │ Test & Fix │
|
||||
│ L1-L3 │ │ L0 + AI Issues │ │ Coverage 80%+ │ │ Max 5 iter │
|
||||
│@code-developer│ │ @test-fix-agent │ │ @test-fix-agent │ │@test-fix-agent│
|
||||
└──────────────┘ └─────────────────┘ └─────────────────┘ └──────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
@@ -377,10 +397,7 @@ test → gemini_diagnose → fix (agent or CLI) → retest
|
||||
│ └── IMPL-*.json # Additional tasks (if applicable)
|
||||
└── .process/
|
||||
├── [test-]context-package.json # Context and coverage analysis
|
||||
├── TEST_ANALYSIS_RESULTS.md # Test requirements and strategy
|
||||
├── code-validation-report.md # Code validation findings
|
||||
├── code-validation-report.json # Machine-readable findings
|
||||
└── test-quality-report.md # Test quality gate findings
|
||||
└── TEST_ANALYSIS_RESULTS.md # Test requirements and strategy (L0-L3)
|
||||
```
|
||||
|
||||
### Session Metadata
|
||||
@@ -394,101 +411,67 @@ test → gemini_diagnose → fix (agent or CLI) → retest
|
||||
|
||||
---
|
||||
|
||||
## Orchestration Patterns
|
||||
|
||||
### TodoWrite Pattern
|
||||
|
||||
**Initial Structure**:
|
||||
```json
|
||||
[
|
||||
{"content": "Phase 1: Create Test Session", "status": "in_progress", "activeForm": "Creating test session"},
|
||||
{"content": "Phase 2: Gather Test Context", "status": "pending", "activeForm": "Gathering test context"},
|
||||
{"content": "Phase 3: Test Generation Analysis", "status": "pending", "activeForm": "Analyzing test generation"},
|
||||
{"content": "Phase 4: Generate Test Tasks", "status": "pending", "activeForm": "Generating test tasks"},
|
||||
{"content": "Phase 5: Return Summary", "status": "pending", "activeForm": "Completing"}
|
||||
]
|
||||
```
|
||||
|
||||
### Task Attachment Model
|
||||
|
||||
SlashCommand execution follows **attach → execute → collapse** pattern:
|
||||
|
||||
1. **Attach**: Sub-command's tasks are attached to orchestrator's TodoWrite
|
||||
2. **Execute**: Orchestrator executes attached tasks sequentially
|
||||
3. **Collapse**: After completion, sub-tasks collapse to phase summary
|
||||
|
||||
**Example - Phase 2 Expanded**:
|
||||
```json
|
||||
[
|
||||
{"content": "Phase 1: Create Test Session", "status": "completed"},
|
||||
{"content": "Phase 2: Gather Test Context", "status": "in_progress"},
|
||||
{"content": " → Load context and analyze coverage", "status": "in_progress"},
|
||||
{"content": " → Detect test framework and conventions", "status": "pending"},
|
||||
{"content": " → Generate context package", "status": "pending"},
|
||||
{"content": "Phase 3: Test Generation Analysis", "status": "pending"},
|
||||
...
|
||||
]
|
||||
```
|
||||
|
||||
### Auto-Continue Mechanism
|
||||
|
||||
- TodoList tracks current phase status
|
||||
- When phase completes, automatically execute next pending phase
|
||||
- All phases run autonomously without user interaction
|
||||
- **⚠️ Do not stop until all phases complete**
|
||||
|
||||
---
|
||||
|
||||
## Reference
|
||||
|
||||
### Error Handling
|
||||
## Error Handling
|
||||
|
||||
| Phase | Error Condition | Action |
|
||||
|-------|----------------|--------|
|
||||
| 1 | Source session not found | Return error with session ID |
|
||||
| 1 | No completed IMPL tasks | Return error, source incomplete |
|
||||
| 1 | Source session not found (session mode) | Return error with session ID |
|
||||
| 1 | No completed IMPL tasks (session mode) | Return error, source incomplete |
|
||||
| 2 | Context gathering failed | Return error, check source artifacts |
|
||||
| 3 | Gemini analysis failed | Return error, check context package |
|
||||
| 4 | Task generation failed | Retry once, then return error |
|
||||
|
||||
### Best Practices
|
||||
---
|
||||
|
||||
**Before Running**:
|
||||
- Ensure implementation is complete (session mode: check summaries exist)
|
||||
- Commit all implementation changes
|
||||
## Coordinator Checklist
|
||||
|
||||
**After Running**:
|
||||
- Review `IMPL_PLAN.md` before execution
|
||||
- Check `TEST_ANALYSIS_RESULTS.md` for completeness
|
||||
- Verify task dependencies in `TODO_LIST.md`
|
||||
- Detect input type (session ID / description / file path)
|
||||
- Initialize TodoWrite before any command
|
||||
- Execute Phase 1 immediately with structured description
|
||||
- Parse test session ID from Phase 1 output, store in memory
|
||||
- Execute Phase 2 with appropriate context-gather command based on mode
|
||||
- Parse context path from Phase 2 output, store in memory
|
||||
- Execute Phase 3 test-concept-enhanced with session and context
|
||||
- Verify TEST_ANALYSIS_RESULTS.md created with L0-L3 requirements
|
||||
- Execute Phase 4 test-task-generate with session ID
|
||||
- Verify all Phase 4 outputs (4 task JSONs, IMPL_PLAN.md, TODO_LIST.md)
|
||||
- Return summary with next step: `/workflow:test-cycle-execute`
|
||||
- Update TodoWrite after each phase
|
||||
|
||||
**During Execution** (in test-cycle-execute):
|
||||
- Monitor iteration logs in `.process/fix-iteration-*`
|
||||
- Track progress with `/workflow:status`
|
||||
- Review Gemini diagnostic outputs
|
||||
---
|
||||
|
||||
**Mode Selection**:
|
||||
- **Session Mode**: For completed workflow validation
|
||||
- **Prompt Mode**: For ad-hoc test generation
|
||||
- Include "use Codex" in description for autonomous fix application
|
||||
## Usage Examples
|
||||
|
||||
### Related Commands
|
||||
```bash
|
||||
# Session Mode - test validation for completed implementation
|
||||
/workflow:test-fix-gen WFS-user-auth-v2
|
||||
|
||||
**Prerequisites**:
|
||||
# Prompt Mode - text description
|
||||
/workflow:test-fix-gen "Test the user authentication API endpoints in src/auth/api.ts"
|
||||
|
||||
# Prompt Mode - file reference
|
||||
/workflow:test-fix-gen ./docs/api-requirements.md
|
||||
|
||||
# With CLI tool preference (semantic detection)
|
||||
/workflow:test-fix-gen "Test user registration, use Codex for automated fixes"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Related Commands
|
||||
|
||||
**Prerequisite Commands**:
|
||||
- `/workflow:plan` or `/workflow:execute` - Complete implementation (Session Mode)
|
||||
- None for Prompt Mode
|
||||
|
||||
**Called by This Command**:
|
||||
- `/workflow:session:start` - Phase 1
|
||||
- `/workflow:tools:test-context-gather` - Phase 2 (Session Mode)
|
||||
- `/workflow:tools:context-gather` - Phase 2 (Prompt Mode)
|
||||
- `/workflow:tools:test-concept-enhanced` - Phase 3
|
||||
- `/workflow:tools:test-task-generate` - Phase 4
|
||||
|
||||
**Validation Commands** (invoked during test-cycle-execute):
|
||||
- `/workflow:tools:code-validation-gate` - IMPL-001.3
|
||||
**Called by This Command** (5 phases):
|
||||
- `/workflow:session:start` - Phase 1: Create test workflow session
|
||||
- `/workflow:tools:test-context-gather` - Phase 2 (Session Mode): Analyze test coverage
|
||||
- `/workflow:tools:context-gather` - Phase 2 (Prompt Mode): Analyze codebase
|
||||
- `/workflow:tools:test-concept-enhanced` - Phase 3: Generate test requirements with Gemini
|
||||
- `/workflow:tools:test-task-generate` - Phase 4: Generate test task JSONs via action-planning-agent
|
||||
|
||||
**Follow-up Commands**:
|
||||
- `/workflow:status` - Review generated tasks
|
||||
- `/workflow:test-cycle-execute` - Execute test workflow
|
||||
- `/workflow:execute` - Standard task execution
|
||||
- `/workflow:test-cycle-execute` - Execute test workflow (REQUIRED next step)
|
||||
- `/workflow:execute` - Alternative: Standard task execution
|
||||
|
||||
@@ -1,529 +0,0 @@
|
||||
---
|
||||
name: test-gen
|
||||
description: Create independent test-fix workflow session from completed implementation session, analyzes code to generate test tasks
|
||||
argument-hint: "source-session-id"
|
||||
allowed-tools: SlashCommand(*), TodoWrite(*), Read(*), Bash(*)
|
||||
---
|
||||
|
||||
# Workflow Test Generation Command (/workflow:test-gen)
|
||||
|
||||
## Coordinator Role
|
||||
|
||||
**This command is a pure orchestrator**: Creates an independent test-fix workflow session for validating a completed implementation. It reuses the standard planning toolchain with automatic cross-session context gathering.
|
||||
|
||||
**Core Principles**:
|
||||
- **Session Isolation**: Creates new `WFS-test-[source]` session to keep verification separate from implementation
|
||||
- **Context-First**: Prioritizes gathering code changes and summaries from source session
|
||||
- **Format Reuse**: Creates standard `IMPL-*.json` task, using `meta.type: "test-fix"` for agent assignment
|
||||
- **Parameter Simplification**: Tools auto-detect test session type via metadata, no manual cross-session parameters needed
|
||||
- **Semantic CLI Selection**: CLI tool usage is determined by user's task description (e.g., "use Codex for fixes")
|
||||
|
||||
**Task Attachment Model**:
|
||||
- SlashCommand dispatch **expands workflow** by attaching sub-tasks to current TodoWrite
|
||||
- When a sub-command is executed (e.g., `/workflow:tools:test-context-gather`), its internal tasks are attached to the orchestrator's TodoWrite
|
||||
- Orchestrator **executes these attached tasks** sequentially
|
||||
- After completion, attached tasks are **collapsed** back to high-level phase summary
|
||||
- This is **task expansion**, not external delegation
|
||||
|
||||
**Auto-Continue Mechanism**:
|
||||
- TodoList tracks current phase status and dynamically manages task attachment/collapse
|
||||
- When each phase finishes executing, automatically execute next pending phase
|
||||
- All phases run autonomously without user interaction
|
||||
- **⚠️ CONTINUOUS EXECUTION** - Do not stop until all phases complete
|
||||
|
||||
**Execution Flow**:
|
||||
1. Initialize TodoWrite → Create test session → Parse session ID
|
||||
2. Gather cross-session context (automatic) → Parse context path
|
||||
3. Analyze implementation with concept-enhanced → Parse ANALYSIS_RESULTS.md
|
||||
4. Generate test task from analysis → Return summary
|
||||
|
||||
**Command Scope**: This command ONLY prepares test workflow artifacts. It does NOT execute tests or implementation. Task execution requires separate user action.
|
||||
|
||||
## Core Rules
|
||||
|
||||
1. **Start Immediately**: First action is TodoWrite initialization, second action is Phase 1 test session creation
|
||||
2. **No Preliminary Analysis**: Do not read files or analyze before Phase 1
|
||||
3. **Parse Every Output**: Extract required data from each phase for next phase
|
||||
4. **Sequential Execution**: Each phase depends on previous phase's output
|
||||
5. **Complete All Phases**: Do not return to user until Phase 5 completes (summary returned)
|
||||
6. **Track Progress**: Update TodoWrite dynamically with task attachment/collapse pattern
|
||||
7. **Automatic Detection**: context-gather auto-detects test session and gathers source session context
|
||||
8. **Semantic CLI Selection**: CLI tool usage determined from user's task description, passed to Phase 4
|
||||
9. **Command Boundary**: This command ends at Phase 5 summary. Test execution is NOT part of this command.
|
||||
10. **Task Attachment Model**: SlashCommand dispatch **attaches** sub-tasks to current workflow. Orchestrator **executes** these attached tasks itself, then **collapses** them after completion
|
||||
11. **⚠️ CRITICAL: DO NOT STOP**: Continuous multi-phase workflow. After executing all attached tasks, immediately collapse them and execute next phase
|
||||
|
||||
## 5-Phase Execution
|
||||
|
||||
### Phase 1: Create Test Session
|
||||
|
||||
**Step 1.0: Load Source Session Intent** - Preserve user's original task description for semantic CLI selection
|
||||
|
||||
```javascript
|
||||
// Read source session metadata to get original task description
|
||||
Read(".workflow/active/[sourceSessionId]/workflow-session.json")
|
||||
// OR if context-package exists:
|
||||
Read(".workflow/active/[sourceSessionId]/.process/context-package.json")
|
||||
|
||||
// Extract: metadata.task_description or project/description field
|
||||
// This preserves user's CLI tool preferences (e.g., "use Codex for fixes")
|
||||
```
|
||||
|
||||
**Step 1.1: Execute** - Create new test workflow session with preserved intent
|
||||
|
||||
```javascript
|
||||
// Include original task description to enable semantic CLI selection
|
||||
SlashCommand(command="/workflow:session:start --new \"Test validation for [sourceSessionId]: [originalTaskDescription]\"")
|
||||
```
|
||||
|
||||
**Input**:
|
||||
- `sourceSessionId` from user argument (e.g., `WFS-user-auth`)
|
||||
- `originalTaskDescription` from source session metadata (preserves CLI tool preferences)
|
||||
|
||||
**Expected Behavior**:
|
||||
- Creates new session with pattern `WFS-test-[source-slug]` (e.g., `WFS-test-user-auth`)
|
||||
- Writes metadata to `workflow-session.json`:
|
||||
- `workflow_type: "test_session"`
|
||||
- `source_session_id: "[sourceSessionId]"`
|
||||
- Description includes original user intent for semantic CLI selection
|
||||
- Returns new session ID for subsequent phases
|
||||
|
||||
**Parse Output**:
|
||||
- Extract: new test session ID (store as `testSessionId`)
|
||||
- Pattern: `WFS-test-[slug]`
|
||||
|
||||
**Validation**:
|
||||
- Source session `.workflow/[sourceSessionId]/` exists
|
||||
- Source session has completed IMPL tasks (`.summaries/IMPL-*-summary.md`)
|
||||
- New test session directory created
|
||||
- Metadata includes `workflow_type` and `source_session_id`
|
||||
|
||||
**TodoWrite**: Mark phase 1 completed, phase 2 in_progress
|
||||
|
||||
---
|
||||
|
||||
### Phase 2: Gather Test Context
|
||||
|
||||
**Step 2.1: Execute** - Gather test coverage context from source session
|
||||
|
||||
```javascript
|
||||
SlashCommand(command="/workflow:tools:test-context-gather --session [testSessionId]")
|
||||
```
|
||||
|
||||
**Input**: `testSessionId` from Phase 1 (e.g., `WFS-test-user-auth`)
|
||||
|
||||
**Expected Behavior**:
|
||||
- Load source session implementation context and summaries
|
||||
- Analyze test coverage using MCP tools (find existing tests)
|
||||
- Identify files requiring tests (coverage gaps)
|
||||
- Detect test framework and conventions
|
||||
- Generate `test-context-package.json`
|
||||
|
||||
**Parse Output**:
|
||||
- Extract: test context package path (store as `testContextPath`)
|
||||
- Pattern: `.workflow/[testSessionId]/.process/test-context-package.json`
|
||||
|
||||
**Validation**:
|
||||
- Test context package created
|
||||
- Contains source session summaries
|
||||
- Includes coverage gap analysis
|
||||
- Test framework detected
|
||||
- Test conventions documented
|
||||
|
||||
<!-- TodoWrite: When test-context-gather executed, INSERT 3 test-context-gather tasks -->
|
||||
|
||||
**TodoWrite Update (Phase 2 SlashCommand executed - tasks attached)**:
|
||||
```json
|
||||
[
|
||||
{"content": "Create independent test session", "status": "completed", "activeForm": "Creating test session"},
|
||||
{"content": "Phase 2.1: Load source session summaries (test-context-gather)", "status": "in_progress", "activeForm": "Loading source session summaries"},
|
||||
{"content": "Phase 2.2: Analyze test coverage with MCP tools (test-context-gather)", "status": "pending", "activeForm": "Analyzing test coverage"},
|
||||
{"content": "Phase 2.3: Identify coverage gaps and framework (test-context-gather)", "status": "pending", "activeForm": "Identifying coverage gaps"},
|
||||
{"content": "Analyze test requirements with Gemini", "status": "pending", "activeForm": "Analyzing test requirements"},
|
||||
{"content": "Generate test generation and execution tasks", "status": "pending", "activeForm": "Generating test tasks"},
|
||||
{"content": "Return workflow summary", "status": "pending", "activeForm": "Returning workflow summary"}
|
||||
]
|
||||
```
|
||||
|
||||
**Note**: SlashCommand dispatch **attaches** test-context-gather's 3 tasks. Orchestrator **executes** these tasks.
|
||||
|
||||
**Next Action**: Tasks attached → **Execute Phase 2.1-2.3** sequentially
|
||||
|
||||
<!-- TodoWrite: After Phase 2 tasks complete, REMOVE Phase 2.1-2.3, restore to orchestrator view -->
|
||||
|
||||
**TodoWrite Update (Phase 2 completed - tasks collapsed)**:
|
||||
```json
|
||||
[
|
||||
{"content": "Create independent test session", "status": "completed", "activeForm": "Creating test session"},
|
||||
{"content": "Gather test coverage context", "status": "completed", "activeForm": "Gathering test coverage context"},
|
||||
{"content": "Analyze test requirements with Gemini", "status": "pending", "activeForm": "Analyzing test requirements"},
|
||||
{"content": "Generate test generation and execution tasks", "status": "pending", "activeForm": "Generating test tasks"},
|
||||
{"content": "Return workflow summary", "status": "pending", "activeForm": "Returning workflow summary"}
|
||||
]
|
||||
```
|
||||
|
||||
**Note**: Phase 2 tasks completed and collapsed to summary.
|
||||
|
||||
---
|
||||
|
||||
### Phase 3: Test Generation Analysis
|
||||
|
||||
**Step 3.1: Execute** - Analyze test requirements with Gemini
|
||||
|
||||
```javascript
|
||||
SlashCommand(command="/workflow:tools:test-concept-enhanced --session [testSessionId] --context [testContextPath]")
|
||||
```
|
||||
|
||||
**Input**:
|
||||
- `testSessionId` from Phase 1
|
||||
- `testContextPath` from Phase 2
|
||||
|
||||
**Expected Behavior**:
|
||||
- Use Gemini to analyze coverage gaps and implementation context
|
||||
- Study existing test patterns and conventions
|
||||
- Generate test requirements for each missing test file
|
||||
- Design test generation strategy
|
||||
- Generate `TEST_ANALYSIS_RESULTS.md`
|
||||
|
||||
**Parse Output**:
|
||||
- Verify `.workflow/[testSessionId]/.process/TEST_ANALYSIS_RESULTS.md` created
|
||||
- Contains test requirements and generation strategy
|
||||
- Lists test files to create with specifications
|
||||
|
||||
**Validation**:
|
||||
- TEST_ANALYSIS_RESULTS.md exists with complete sections:
|
||||
- Coverage Assessment
|
||||
- Test Framework & Conventions
|
||||
- Test Requirements by File
|
||||
- Test Generation Strategy
|
||||
- Implementation Targets (test files to create)
|
||||
- Success Criteria
|
||||
|
||||
<!-- TodoWrite: When test-concept-enhanced executed, INSERT 3 concept-enhanced tasks -->
|
||||
|
||||
**TodoWrite Update (Phase 3 SlashCommand executed - tasks attached)**:
|
||||
```json
|
||||
[
|
||||
{"content": "Create independent test session", "status": "completed", "activeForm": "Creating test session"},
|
||||
{"content": "Gather test coverage context", "status": "completed", "activeForm": "Gathering test coverage context"},
|
||||
{"content": "Phase 3.1: Analyze coverage gaps with Gemini (test-concept-enhanced)", "status": "in_progress", "activeForm": "Analyzing coverage gaps"},
|
||||
{"content": "Phase 3.2: Study existing test patterns (test-concept-enhanced)", "status": "pending", "activeForm": "Studying test patterns"},
|
||||
{"content": "Phase 3.3: Generate test generation strategy (test-concept-enhanced)", "status": "pending", "activeForm": "Generating test strategy"},
|
||||
{"content": "Generate test generation and execution tasks", "status": "pending", "activeForm": "Generating test tasks"},
|
||||
{"content": "Return workflow summary", "status": "pending", "activeForm": "Returning workflow summary"}
|
||||
]
|
||||
```
|
||||
|
||||
**Note**: SlashCommand dispatch **attaches** test-concept-enhanced's 3 tasks. Orchestrator **executes** these tasks.
|
||||
|
||||
**Next Action**: Tasks attached → **Execute Phase 3.1-3.3** sequentially
|
||||
|
||||
<!-- TodoWrite: After Phase 3 tasks complete, REMOVE Phase 3.1-3.3, restore to orchestrator view -->
|
||||
|
||||
**TodoWrite Update (Phase 3 completed - tasks collapsed)**:
|
||||
```json
|
||||
[
|
||||
{"content": "Create independent test session", "status": "completed", "activeForm": "Creating test session"},
|
||||
{"content": "Gather test coverage context", "status": "completed", "activeForm": "Gathering test coverage context"},
|
||||
{"content": "Analyze test requirements with Gemini", "status": "completed", "activeForm": "Analyzing test requirements"},
|
||||
{"content": "Generate test generation and execution tasks", "status": "pending", "activeForm": "Generating test tasks"},
|
||||
{"content": "Return workflow summary", "status": "pending", "activeForm": "Returning workflow summary"}
|
||||
]
|
||||
```
|
||||
|
||||
**Note**: Phase 3 tasks completed and collapsed to summary.
|
||||
|
||||
---
|
||||
|
||||
### Phase 4: Generate Test Tasks
|
||||
|
||||
**Step 4.1: Execute** - Generate test task JSON files and planning documents
|
||||
|
||||
```javascript
|
||||
SlashCommand(command="/workflow:tools:test-task-generate --session [testSessionId]")
|
||||
```
|
||||
|
||||
**Input**:
|
||||
- `testSessionId` from Phase 1
|
||||
|
||||
**Note**: CLI tool usage for fixes is determined semantically from user's task description (e.g., "use Codex for automated fixes").
|
||||
|
||||
**Expected Behavior**:
|
||||
- Parse TEST_ANALYSIS_RESULTS.md from Phase 3
|
||||
- Extract test requirements and generation strategy
|
||||
- Generate **TWO task JSON files**:
|
||||
- **IMPL-001.json**: Test Generation task (calls @code-developer)
|
||||
- **IMPL-002.json**: Test Execution and Fix Cycle task (calls @test-fix-agent)
|
||||
- Generate IMPL_PLAN.md with test generation and execution strategy
|
||||
- Generate TODO_LIST.md with both tasks
|
||||
|
||||
**Parse Output**:
|
||||
- Verify `.workflow/[testSessionId]/.task/IMPL-001.json` exists (test generation)
|
||||
- Verify `.workflow/[testSessionId]/.task/IMPL-002.json` exists (test execution & fix)
|
||||
- Verify `.workflow/[testSessionId]/IMPL_PLAN.md` created
|
||||
- Verify `.workflow/[testSessionId]/TODO_LIST.md` created
|
||||
|
||||
**Validation - IMPL-001.json (Test Generation)**:
|
||||
- Task ID: `IMPL-001`
|
||||
- `meta.type: "test-gen"`
|
||||
- `meta.agent: "@code-developer"`
|
||||
- `context.requirements`: Generate tests based on TEST_ANALYSIS_RESULTS.md
|
||||
- `flow_control.pre_analysis`: Load TEST_ANALYSIS_RESULTS.md and test context
|
||||
- `flow_control.implementation_approach`: Test generation steps
|
||||
- `flow_control.target_files`: Test files to create from analysis section 5
|
||||
|
||||
**Validation - IMPL-002.json (Test Execution & Fix)**:
|
||||
- Task ID: `IMPL-002`
|
||||
- `meta.type: "test-fix"`
|
||||
- `meta.agent: "@test-fix-agent"`
|
||||
- `context.depends_on: ["IMPL-001"]`
|
||||
- `context.requirements`: Execute and fix tests
|
||||
- `flow_control.implementation_approach.test_fix_cycle`: Complete cycle specification
|
||||
- **Cycle pattern**: test → gemini_diagnose → fix (agent or CLI based on `command` field) → retest
|
||||
- **Tools configuration**: Gemini for analysis with bug-fix template, agent or CLI for fixes
|
||||
- **Exit conditions**: Success (all pass) or failure (max iterations)
|
||||
- `flow_control.implementation_approach.modification_points`: 3-phase execution flow
|
||||
- Phase 1: Initial test execution
|
||||
- Phase 2: Iterative Gemini diagnosis + fixes (agent or CLI based on step's `command` field)
|
||||
- Phase 3: Final validation and certification
|
||||
|
||||
<!-- TodoWrite: When test-task-generate executed, INSERT 3 test-task-generate tasks -->
|
||||
|
||||
**TodoWrite Update (Phase 4 SlashCommand executed - tasks attached)**:
|
||||
```json
|
||||
[
|
||||
{"content": "Create independent test session", "status": "completed", "activeForm": "Creating test session"},
|
||||
{"content": "Gather test coverage context", "status": "completed", "activeForm": "Gathering test coverage context"},
|
||||
{"content": "Analyze test requirements with Gemini", "status": "completed", "activeForm": "Analyzing test requirements"},
|
||||
{"content": "Phase 4.1: Parse TEST_ANALYSIS_RESULTS.md (test-task-generate)", "status": "in_progress", "activeForm": "Parsing test analysis"},
|
||||
{"content": "Phase 4.2: Generate IMPL-001.json and IMPL-002.json (test-task-generate)", "status": "pending", "activeForm": "Generating task JSONs"},
|
||||
{"content": "Phase 4.3: Generate IMPL_PLAN.md and TODO_LIST.md (test-task-generate)", "status": "pending", "activeForm": "Generating plan documents"},
|
||||
{"content": "Return workflow summary", "status": "pending", "activeForm": "Returning workflow summary"}
|
||||
]
|
||||
```
|
||||
|
||||
**Note**: SlashCommand dispatch **attaches** test-task-generate's 3 tasks. Orchestrator **executes** these tasks.
|
||||
|
||||
**Next Action**: Tasks attached → **Execute Phase 4.1-4.3** sequentially
|
||||
|
||||
<!-- TodoWrite: After Phase 4 tasks complete, REMOVE Phase 4.1-4.3, restore to orchestrator view -->
|
||||
|
||||
**TodoWrite Update (Phase 4 completed - tasks collapsed)**:
|
||||
```json
|
||||
[
|
||||
{"content": "Create independent test session", "status": "completed", "activeForm": "Creating test session"},
|
||||
{"content": "Gather test coverage context", "status": "completed", "activeForm": "Gathering test coverage context"},
|
||||
{"content": "Analyze test requirements with Gemini", "status": "completed", "activeForm": "Analyzing test requirements"},
|
||||
{"content": "Generate test generation and execution tasks", "status": "completed", "activeForm": "Generating test tasks"},
|
||||
{"content": "Return workflow summary", "status": "in_progress", "activeForm": "Returning workflow summary"}
|
||||
]
|
||||
```
|
||||
|
||||
**Note**: Phase 4 tasks completed and collapsed to summary.
|
||||
|
||||
---
|
||||
|
||||
### Phase 5: Return Summary (Command Ends Here)
|
||||
|
||||
**Important**: This is the final phase of `/workflow:test-gen`. The command completes and returns control to the user. No automatic execution occurs.
|
||||
|
||||
**Return to User**:
|
||||
```
|
||||
Test workflow preparation complete!
|
||||
|
||||
Source Session: [sourceSessionId]
|
||||
Test Session: [testSessionId]
|
||||
|
||||
Artifacts Created:
|
||||
- Test context analysis
|
||||
- Test generation strategy
|
||||
- Task definitions (IMPL-001, IMPL-002)
|
||||
- Implementation plan
|
||||
|
||||
Test Framework: [detected framework]
|
||||
Test Files to Generate: [count]
|
||||
Fix Mode: [Agent|CLI] (based on `command` field in implementation_approach steps)
|
||||
|
||||
Review Generated Artifacts:
|
||||
- Test plan: .workflow/[testSessionId]/IMPL_PLAN.md
|
||||
- Task list: .workflow/[testSessionId]/TODO_LIST.md
|
||||
- Analysis: .workflow/[testSessionId]/.process/TEST_ANALYSIS_RESULTS.md
|
||||
|
||||
Ready for execution. Use appropriate workflow commands to proceed.
|
||||
```
|
||||
|
||||
**TodoWrite**: Mark phase 5 completed
|
||||
|
||||
**Command Boundary**: After this phase, the command terminates and returns to user prompt.
|
||||
|
||||
---
|
||||
|
||||
## TodoWrite Pattern
|
||||
|
||||
**Core Concept**: Dynamic task attachment and collapse for test-gen workflow with cross-session context gathering and test generation strategy.
|
||||
|
||||
### Key Principles
|
||||
|
||||
1. **Task Attachment** (when SlashCommand executed):
|
||||
- Sub-command's internal tasks are **attached** to orchestrator's TodoWrite
|
||||
- Example: `/workflow:tools:test-context-gather` attaches 3 sub-tasks (Phase 2.1, 2.2, 2.3)
|
||||
- First attached task marked as `in_progress`, others as `pending`
|
||||
- Orchestrator **executes** these attached tasks sequentially
|
||||
|
||||
2. **Task Collapse** (after sub-tasks complete):
|
||||
- Remove detailed sub-tasks from TodoWrite
|
||||
- **Collapse** to high-level phase summary
|
||||
- Example: Phase 2.1-2.3 collapse to "Gather test coverage context: completed"
|
||||
- Maintains clean orchestrator-level view
|
||||
|
||||
3. **Continuous Execution**:
|
||||
- After collapse, automatically proceed to next pending phase
|
||||
- No user intervention required between phases
|
||||
- TodoWrite dynamically reflects current execution state
|
||||
|
||||
**Lifecycle Summary**: Initial pending tasks → Phase executed (tasks ATTACHED) → Sub-tasks executed sequentially → Phase completed (tasks COLLAPSED to summary) → Next phase begins → Repeat until all phases complete.
|
||||
|
||||
### Test-Gen Specific Features
|
||||
|
||||
- **Phase 2**: Cross-session context gathering from source implementation session
|
||||
- **Phase 3**: Test requirements analysis with Gemini for generation strategy
|
||||
- **Phase 4**: Dual-task generation (IMPL-001 for test generation, IMPL-002 for test execution)
|
||||
- **Fix Mode Configuration**: CLI tool usage determined semantically from user's task description
|
||||
|
||||
|
||||
|
||||
**Note**: See individual Phase descriptions (Phase 2, 3, 4) for detailed TodoWrite Update examples with full JSON structures.
|
||||
|
||||
## Execution Flow Diagram
|
||||
|
||||
```
|
||||
Test-Gen Workflow Orchestrator
|
||||
│
|
||||
├─ Phase 1: Create Test Session
|
||||
│ └─ /workflow:session:start --new
|
||||
│ └─ Returns: testSessionId (WFS-test-[source])
|
||||
│
|
||||
├─ Phase 2: Gather Test Context ← ATTACHED (3 tasks)
|
||||
│ └─ /workflow:tools:test-context-gather
|
||||
│ ├─ Phase 2.1: Load source session summaries
|
||||
│ ├─ Phase 2.2: Analyze test coverage with MCP tools
|
||||
│ └─ Phase 2.3: Identify coverage gaps and framework
|
||||
│ └─ Returns: test-context-package.json ← COLLAPSED
|
||||
│
|
||||
├─ Phase 3: Test Generation Analysis ← ATTACHED (3 tasks)
|
||||
│ └─ /workflow:tools:test-concept-enhanced
|
||||
│ ├─ Phase 3.1: Analyze coverage gaps with Gemini
|
||||
│ ├─ Phase 3.2: Study existing test patterns
|
||||
│ └─ Phase 3.3: Generate test generation strategy
|
||||
│ └─ Returns: TEST_ANALYSIS_RESULTS.md ← COLLAPSED
|
||||
│
|
||||
├─ Phase 4: Generate Test Tasks ← ATTACHED (3 tasks)
|
||||
│ └─ /workflow:tools:test-task-generate
|
||||
│ ├─ Phase 4.1: Parse TEST_ANALYSIS_RESULTS.md
|
||||
│ ├─ Phase 4.2: Generate IMPL-001.json and IMPL-002.json
|
||||
│ └─ Phase 4.3: Generate IMPL_PLAN.md and TODO_LIST.md
|
||||
│ └─ Returns: Task JSONs and plans ← COLLAPSED
|
||||
│
|
||||
└─ Phase 5: Return Summary
|
||||
└─ Command ends, control returns to user
|
||||
|
||||
Artifacts Created:
|
||||
├── .workflow/active/WFS-test-[session]/
|
||||
│ ├── workflow-session.json
|
||||
│ ├── IMPL_PLAN.md
|
||||
│ ├── TODO_LIST.md
|
||||
│ ├── .task/
|
||||
│ │ ├── IMPL-001.json (test generation task)
|
||||
│ │ └── IMPL-002.json (test execution task)
|
||||
│ └── .process/
|
||||
│ ├── test-context-package.json
|
||||
│ └── TEST_ANALYSIS_RESULTS.md
|
||||
|
||||
Key Points:
|
||||
• ← ATTACHED: SlashCommand attaches sub-tasks to orchestrator TodoWrite
|
||||
• ← COLLAPSED: Sub-tasks executed and collapsed to phase summary
|
||||
```
|
||||
|
||||
## Session Metadata
|
||||
|
||||
Test session includes `workflow_type: "test_session"` and `source_session_id` for automatic context gathering.
|
||||
|
||||
## Task Output
|
||||
|
||||
Generates two task definition files:
|
||||
- **IMPL-001.json**: Test generation task specification
|
||||
- Agent: @code-developer
|
||||
- Input: TEST_ANALYSIS_RESULTS.md
|
||||
- Output: Test files based on analysis
|
||||
- **IMPL-002.json**: Test execution and fix cycle specification
|
||||
- Agent: @test-fix-agent
|
||||
- Dependency: IMPL-001 must complete first
|
||||
- Max iterations: 5
|
||||
- Fix mode: Agent or CLI (based on `command` field in implementation_approach)
|
||||
|
||||
See `/workflow:tools:test-task-generate` for complete task JSON schemas.
|
||||
|
||||
## Error Handling
|
||||
|
||||
| Phase | Error | Action |
|
||||
|-------|-------|--------|
|
||||
| 1 | Source session not found | Return error with source session ID |
|
||||
| 1 | No completed IMPL tasks | Return error, source incomplete |
|
||||
| 2 | Context gathering failed | Return error, check source artifacts |
|
||||
| 3 | Analysis failed | Return error, check context package |
|
||||
| 4 | Task generation failed | Retry once, then error with details |
|
||||
|
||||
## Output Files
|
||||
|
||||
Created in `.workflow/active/WFS-test-[session]/`:
|
||||
- `workflow-session.json` - Session metadata
|
||||
- `.process/test-context-package.json` - Coverage analysis
|
||||
- `.process/TEST_ANALYSIS_RESULTS.md` - Test requirements
|
||||
- `.task/IMPL-001.json` - Test generation task
|
||||
- `.task/IMPL-002.json` - Test execution & fix task
|
||||
- `IMPL_PLAN.md` - Test plan
|
||||
- `TODO_LIST.md` - Task checklist
|
||||
|
||||
## Task Specifications
|
||||
|
||||
**IMPL-001.json Structure**:
|
||||
- `meta.type: "test-gen"`
|
||||
- `meta.agent: "@code-developer"`
|
||||
- `context.requirements`: Generate tests based on TEST_ANALYSIS_RESULTS.md
|
||||
- `flow_control.target_files`: Test files to create
|
||||
- `flow_control.implementation_approach`: Test generation strategy
|
||||
|
||||
**IMPL-002.json Structure**:
|
||||
- `meta.type: "test-fix"`
|
||||
- `meta.agent: "@test-fix-agent"`
|
||||
- `context.depends_on: ["IMPL-001"]`
|
||||
- `flow_control.implementation_approach.test_fix_cycle`: Complete cycle specification
|
||||
- Gemini diagnosis template
|
||||
- Fix application mode (agent or CLI based on `command` field)
|
||||
- Max iterations: 5
|
||||
- `flow_control.implementation_approach.modification_points`: 3-phase flow
|
||||
|
||||
See `/workflow:tools:test-task-generate` for complete JSON schemas.
|
||||
|
||||
## Best Practices
|
||||
|
||||
1. **Prerequisites**: Ensure source session has completed IMPL tasks with summaries
|
||||
2. **Clean State**: Commit implementation changes before running test-gen
|
||||
3. **Review Artifacts**: Check generated IMPL_PLAN.md and TODO_LIST.md before proceeding
|
||||
4. **Understand Scope**: This command only prepares artifacts; it does not execute tests
|
||||
|
||||
## Related Commands
|
||||
|
||||
**Prerequisite Commands**:
|
||||
- `/workflow:plan` or `/workflow:execute` - Complete implementation session that needs test validation
|
||||
|
||||
**Executed by This Command** (4 phases):
|
||||
- `/workflow:session:start` - Phase 1: Create independent test workflow session
|
||||
- `/workflow:tools:test-context-gather` - Phase 2: Analyze test coverage and gather source session context
|
||||
- `/workflow:tools:test-concept-enhanced` - Phase 3: Generate test requirements and strategy using Gemini
|
||||
- `/workflow:tools:test-task-generate` - Phase 4: Generate test task JSONs (CLI tool usage determined semantically)
|
||||
|
||||
**Follow-up Commands**:
|
||||
- `/workflow:status` - Review generated test tasks
|
||||
- `/workflow:test-cycle-execute` - Execute test generation and fix cycles
|
||||
- `/workflow:execute` - Execute generated test tasks
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
name: test-task-generate
|
||||
description: Generate test planning documents (IMPL_PLAN.md, test task JSONs, TODO_LIST.md) using action-planning-agent - produces test planning artifacts, does NOT execute tests
|
||||
description: Generate test planning documents (IMPL_PLAN.md, test task JSONs, TODO_LIST.md) by invoking test-action-planning-agent
|
||||
argument-hint: "--session WFS-test-session-id"
|
||||
examples:
|
||||
- /workflow:tools:test-task-generate --session WFS-test-auth
|
||||
@@ -9,33 +9,29 @@ examples:
|
||||
# Generate Test Planning Documents Command
|
||||
|
||||
## Overview
|
||||
Generate test planning documents (IMPL_PLAN.md, test task JSONs, TODO_LIST.md) using action-planning-agent. This command produces **test planning artifacts only** - it does NOT execute tests or implement code. Actual test execution requires separate execution command (e.g., /workflow:test-cycle-execute).
|
||||
|
||||
## Core Philosophy
|
||||
- **Planning Only**: Generate test planning documents (IMPL_PLAN.md, task JSONs, TODO_LIST.md) - does NOT execute tests
|
||||
- **Agent-Driven Document Generation**: Delegate test plan generation to action-planning-agent
|
||||
- **Two-Phase Flow**: Context Preparation (command) → Test Document Generation (agent)
|
||||
- **Memory-First**: Reuse loaded documents from conversation memory
|
||||
- **MCP-Enhanced**: Use MCP tools for test pattern research and analysis
|
||||
- **Path Clarity**: All `focus_paths` prefer absolute paths (e.g., `D:\\project\\src\\module`), or clear relative paths from project root
|
||||
- **Leverage Existing Test Infrastructure**: Prioritize using established testing frameworks and tools present in the project
|
||||
Generate test planning documents (IMPL_PLAN.md, test task JSONs, TODO_LIST.md) by invoking **test-action-planning-agent**.
|
||||
|
||||
## Test-Specific Execution Modes
|
||||
This command produces **test planning artifacts only** - it does NOT execute tests or implement code. Actual test execution requires separate execution command (e.g., /workflow:test-cycle-execute).
|
||||
|
||||
### Test Generation (IMPL-001)
|
||||
- **Agent Mode** (default): @code-developer generates tests within agent context
|
||||
- **CLI Mode**: Use CLI tools when `command` field present in implementation_approach (determined semantically)
|
||||
### Agent Specialization
|
||||
|
||||
### Test Execution & Fix (IMPL-002+)
|
||||
- **Agent Mode** (default): Gemini diagnosis → agent applies fixes
|
||||
- **CLI Mode**: Gemini diagnosis → CLI applies fixes (when `command` field present in implementation_approach)
|
||||
This command invokes `@test-action-planning-agent` - a specialized variant of action-planning-agent with:
|
||||
- Progressive L0-L3 test layers (Static, Unit, Integration, E2E)
|
||||
- AI code issue detection (L0.5) with severity levels
|
||||
- Project type templates (React, Node API, CLI, Library, Monorepo)
|
||||
- Test anti-pattern detection with quality gates
|
||||
- Layer completeness thresholds and coverage targets
|
||||
|
||||
**See**: `d:\Claude_dms3\.claude\agents\test-action-planning-agent.md` for complete test specifications.
|
||||
|
||||
---
|
||||
|
||||
## Execution Process
|
||||
|
||||
```
|
||||
Input Parsing:
|
||||
├─ Parse flags: --session
|
||||
└─ Validation: session_id REQUIRED
|
||||
└─ Parse flags: --session
|
||||
|
||||
Phase 1: Context Preparation (Command)
|
||||
├─ Assemble test session paths
|
||||
@@ -47,78 +43,33 @@ Phase 1: Context Preparation (Command)
|
||||
Phase 2: Test Document Generation (Agent)
|
||||
├─ Load TEST_ANALYSIS_RESULTS.md as primary requirements source
|
||||
├─ Generate Test Task JSON Files (.task/IMPL-*.json)
|
||||
│ ├─ IMPL-001: Test generation (meta.type: "test-gen")
|
||||
│ └─ IMPL-002+: Test execution & fix (meta.type: "test-fix")
|
||||
│ ├─ IMPL-001: Test generation (L1-L3 layers, project-specific templates)
|
||||
│ ├─ IMPL-001.3: Code validation gate (L0 + AI issue detection)
|
||||
│ ├─ IMPL-001.5: Test quality gate (anti-patterns + coverage)
|
||||
│ └─ IMPL-002: Test execution & fix cycle
|
||||
├─ Create IMPL_PLAN.md (test_session variant)
|
||||
└─ Generate TODO_LIST.md with test phase indicators
|
||||
```
|
||||
|
||||
## Document Generation Lifecycle
|
||||
---
|
||||
|
||||
### Phase 1: Context Preparation (Command Responsibility)
|
||||
## Agent Invocation
|
||||
|
||||
**Command prepares test session paths and metadata for planning document generation.**
|
||||
|
||||
**Test Session Path Structure**:
|
||||
```
|
||||
.workflow/active/WFS-test-{session-id}/
|
||||
├── workflow-session.json # Test session metadata
|
||||
├── .process/
|
||||
│ ├── TEST_ANALYSIS_RESULTS.md # Test requirements and strategy
|
||||
│ ├── test-context-package.json # Test patterns and coverage
|
||||
│ └── context-package.json # General context artifacts
|
||||
├── .task/ # Output: Test task JSON files
|
||||
├── IMPL_PLAN.md # Output: Test implementation plan
|
||||
└── TODO_LIST.md # Output: Test TODO list
|
||||
```
|
||||
|
||||
**Command Preparation**:
|
||||
1. **Assemble Test Session Paths** for agent prompt:
|
||||
- `session_metadata_path`
|
||||
- `test_analysis_results_path` (REQUIRED)
|
||||
- `test_context_package_path`
|
||||
- Output directory paths
|
||||
|
||||
2. **Provide Metadata** (simple values):
|
||||
- `session_id`
|
||||
- `source_session_id` (if exists)
|
||||
- `mcp_capabilities` (available MCP tools)
|
||||
|
||||
**Note**: CLI tool usage is now determined semantically from user's task description, not by flags.
|
||||
|
||||
### Phase 2: Test Document Generation (Agent Responsibility)
|
||||
|
||||
**Purpose**: Generate test-specific IMPL_PLAN.md, task JSONs, and TODO_LIST.md - planning documents only, NOT test execution.
|
||||
|
||||
**Agent Invocation**:
|
||||
```javascript
|
||||
Task(
|
||||
subagent_type="action-planning-agent",
|
||||
subagent_type="test-action-planning-agent",
|
||||
run_in_background=false,
|
||||
description="Generate test planning documents (IMPL_PLAN.md, task JSONs, TODO_LIST.md)",
|
||||
description="Generate test planning documents",
|
||||
prompt=`
|
||||
## TASK OBJECTIVE
|
||||
Generate test planning documents (IMPL_PLAN.md, task JSONs, TODO_LIST.md) for test workflow session
|
||||
|
||||
IMPORTANT: This is TEST PLANNING ONLY - you are generating planning documents, NOT executing tests.
|
||||
|
||||
CRITICAL:
|
||||
- Use existing test frameworks and utilities from the project
|
||||
- Follow the progressive loading strategy defined in your agent specification (load context incrementally from memory-first approach)
|
||||
|
||||
## AGENT CONFIGURATION REFERENCE
|
||||
|
||||
Refer to your specification for:
|
||||
- Test Task JSON Schema (6-field structure with test-specific metadata)
|
||||
- Test IMPL_PLAN.md Structure (test_session variant with test-fix cycle)
|
||||
- TODO_LIST.md Format (with test phase indicators)
|
||||
- Progressive Loading Strategy (memory-first, load TEST_ANALYSIS_RESULTS.md as primary source)
|
||||
- Quality Validation Rules (task count limits, requirement quantification)
|
||||
|
||||
## SESSION PATHS
|
||||
Input:
|
||||
- Session Metadata: .workflow/active/{test-session-id}/workflow-session.json
|
||||
- TEST_ANALYSIS_RESULTS: .workflow/active/{test-session-id}/.process/TEST_ANALYSIS_RESULTS.md (REQUIRED - primary requirements source)
|
||||
- TEST_ANALYSIS_RESULTS: .workflow/active/{test-session-id}/.process/TEST_ANALYSIS_RESULTS.md (REQUIRED)
|
||||
- Test Context Package: .workflow/active/{test-session-id}/.process/test-context-package.json
|
||||
- Context Package: .workflow/active/{test-session-id}/.process/context-package.json
|
||||
- Source Session Summaries: .workflow/active/{source-session-id}/.summaries/IMPL-*.md (if exists)
|
||||
@@ -134,130 +85,95 @@ Workflow Type: test_session
|
||||
Source Session: {source-session-id} (if exists)
|
||||
MCP Capabilities: {exa_code, exa_web, code_index}
|
||||
|
||||
## CLI TOOL SELECTION
|
||||
Determine CLI tool usage per-step based on user's task description:
|
||||
- If user specifies "use Codex/Gemini/Qwen for X" → Add command field to relevant steps
|
||||
- Default: Agent execution (no command field) unless user explicitly requests CLI
|
||||
## YOUR SPECIFICATIONS
|
||||
You are @test-action-planning-agent. Your complete test specifications are defined in:
|
||||
d:\Claude_dms3\.claude\agents\test-action-planning-agent.md
|
||||
|
||||
## TEST-SPECIFIC REQUIREMENTS SUMMARY
|
||||
(Detailed specifications in your agent definition)
|
||||
This includes:
|
||||
- Progressive Test Layers (L0-L3) with L0.1-L0.5, L1.1-L1.5, L2.1-L2.5, L3.1-L3.4
|
||||
- AI Code Issue Detection (L0.5) with 7 categories and severity levels
|
||||
- Project Type Detection & Templates (6 project types)
|
||||
- Test Anti-Pattern Detection (5 categories)
|
||||
- Layer Completeness & Quality Metrics (thresholds and gate decisions)
|
||||
- Task JSON structure requirements (minimum 4 tasks)
|
||||
- Quality validation rules
|
||||
|
||||
### Task Structure Requirements
|
||||
- Minimum 4 tasks: IMPL-001 (test generation) + IMPL-001.3 (code validation) + IMPL-001.5 (test quality) + IMPL-002 (test execution & fix)
|
||||
- Expandable for complex projects: Add IMPL-003+ (per-module, integration, E2E tests)
|
||||
|
||||
Task Configuration:
|
||||
IMPL-001 (Test Generation):
|
||||
- meta.type: "test-gen"
|
||||
- meta.agent: "@code-developer"
|
||||
- meta.test_framework: Specify existing framework (e.g., "jest", "vitest", "pytest")
|
||||
- flow_control: Test generation strategy from TEST_ANALYSIS_RESULTS.md
|
||||
- CLI execution: Add `command` field when user requests (determined semantically)
|
||||
|
||||
IMPL-001.3 (Code Validation Gate) ← NEW:
|
||||
- meta.type: "code-validation"
|
||||
- meta.agent: "@test-fix-agent"
|
||||
- context.depends_on: ["IMPL-001"]
|
||||
- context.validation_config: "~/.claude/workflows/test-quality-config.json"
|
||||
- flow_control.validation_phases: ["compilation", "imports", "variables", "types", "ai_specific"]
|
||||
- flow_control.auto_fix_enabled: true
|
||||
- flow_control.max_retries: 2
|
||||
- flow_control.severity_thresholds: { critical: 0, error: 3, warning: 10 }
|
||||
- acceptance_criteria: Zero compilation errors, all imports resolvable, no variable redeclarations
|
||||
|
||||
IMPL-001.5 (Test Quality Gate):
|
||||
- meta.type: "test-quality-review"
|
||||
- meta.agent: "@test-fix-agent"
|
||||
- context.depends_on: ["IMPL-001", "IMPL-001.3"]
|
||||
- context.quality_config: "~/.claude/workflows/test-quality-config.json"
|
||||
- flow_control: Static analysis, coverage analysis, anti-pattern detection
|
||||
- acceptance_criteria: Coverage ≥ 80%, zero critical anti-patterns
|
||||
|
||||
IMPL-002+ (Test Execution & Fix):
|
||||
- meta.type: "test-fix"
|
||||
- meta.agent: "@test-fix-agent"
|
||||
- context.depends_on: ["IMPL-001", "IMPL-001.3", "IMPL-001.5"]
|
||||
- flow_control: Test-fix cycle with iteration limits and diagnosis configuration
|
||||
- CLI execution: Add `command` field when user requests (determined semantically)
|
||||
|
||||
### Test-Fix Cycle Specification (IMPL-002+)
|
||||
Required flow_control fields:
|
||||
- max_iterations: 5
|
||||
- diagnosis_tool: "gemini"
|
||||
- diagnosis_template: "~/.claude/workflows/cli-templates/prompts/analysis/01-diagnose-bug-root-cause.txt"
|
||||
- cycle_pattern: "test → gemini_diagnose → fix → retest"
|
||||
- exit_conditions: ["all_tests_pass", "max_iterations_reached"]
|
||||
- auto_revert_on_failure: true
|
||||
- CLI fix: Add `command` field when user specifies CLI tool usage
|
||||
|
||||
### Automation Framework Configuration
|
||||
Select automation tools based on test requirements from TEST_ANALYSIS_RESULTS.md:
|
||||
- UI interaction testing → E2E browser automation (meta.e2e_framework)
|
||||
- API/database integration → integration test tools (meta.test_tools)
|
||||
- Performance metrics → load testing tools (meta.perf_framework)
|
||||
- Logic verification → unit test framework (meta.test_framework)
|
||||
|
||||
**Tool Selection**: Detect from project config > suggest based on requirements
|
||||
|
||||
### TEST_ANALYSIS_RESULTS.md Mapping
|
||||
PRIMARY requirements source - extract and map to task JSONs:
|
||||
- Test framework config → meta.test_framework (use existing framework from project)
|
||||
- Existing test utilities → flow_control.reusable_test_tools (discovered test helpers, fixtures, mocks)
|
||||
- Test runner commands → flow_control.test_commands (from package.json or pytest config)
|
||||
- Coverage targets → meta.coverage_target
|
||||
- Test requirements → context.requirements (quantified with explicit counts)
|
||||
- Test generation strategy → IMPL-001 flow_control.implementation_approach
|
||||
- Implementation targets → context.files_to_test (absolute paths)
|
||||
**Follow your specification exactly** when generating test task JSONs.
|
||||
|
||||
## EXPECTED DELIVERABLES
|
||||
1. Test Task JSON Files (.task/IMPL-*.json) - Minimum 4 required:
|
||||
- IMPL-001.json: Test generation task
|
||||
- IMPL-001.3-validation.json: Code validation gate (AI error detection) ← NEW
|
||||
- IMPL-001.5-review.json: Test quality gate
|
||||
1. Test Task JSON Files (.task/IMPL-*.json) - Minimum 4:
|
||||
- IMPL-001.json: Test generation (L1-L3 layers per spec)
|
||||
- IMPL-001.3-validation.json: Code validation gate (L0 + AI issues per spec)
|
||||
- IMPL-001.5-review.json: Test quality gate (anti-patterns + coverage per spec)
|
||||
- IMPL-002.json: Test execution & fix cycle
|
||||
|
||||
Each task includes:
|
||||
- 6-field schema with quantified requirements from TEST_ANALYSIS_RESULTS.md
|
||||
- Test-specific metadata: type, agent, test_framework, coverage_target
|
||||
- flow_control includes: reusable_test_tools, test_commands (from project config)
|
||||
- Validation config reference for IMPL-001.3: ~/.claude/workflows/test-quality-config.json
|
||||
- CLI execution via `command` field when user requests (determined semantically)
|
||||
- Artifact references from test-context-package.json
|
||||
- Absolute paths in context.files_to_test
|
||||
2. IMPL_PLAN.md: Test implementation plan with quality gates
|
||||
|
||||
2. Test Implementation Plan (IMPL_PLAN.md)
|
||||
- Template: ~/.claude/workflows/cli-templates/prompts/workflow/impl-plan-template.txt
|
||||
- Test-specific frontmatter: workflow_type="test_session", test_framework, source_session_id
|
||||
- Test-Fix-Retest Cycle section with diagnosis configuration
|
||||
- Source session context integration (if applicable)
|
||||
|
||||
3. TODO List (TODO_LIST.md)
|
||||
- Hierarchical structure with test phase containers
|
||||
- Links to task JSONs with status markers
|
||||
- Matches task JSON hierarchy
|
||||
|
||||
## QUALITY STANDARDS
|
||||
Hard Constraints:
|
||||
- Task count: minimum 4, maximum 18 (IMPL-001, IMPL-001.3, IMPL-001.5, IMPL-002 required)
|
||||
- All requirements quantified from TEST_ANALYSIS_RESULTS.md
|
||||
- Test framework matches existing project framework
|
||||
- flow_control includes reusable_test_tools and test_commands from project
|
||||
- Absolute paths for all focus_paths
|
||||
- Acceptance criteria include verification commands
|
||||
- CLI `command` field added only when user explicitly requests CLI tool usage
|
||||
3. TODO_LIST.md: Hierarchical task list with test phase indicators
|
||||
|
||||
## SUCCESS CRITERIA
|
||||
- All test planning documents generated successfully
|
||||
- Return completion status: task count, test framework, coverage targets, source session status
|
||||
- Task count: minimum 4 (expandable for complex projects)
|
||||
- Test framework: {detected from project}
|
||||
- Coverage targets: L0 zero errors, L1 80%+, L2 70%+
|
||||
- L0-L3 layers explicitly defined per spec
|
||||
- AI issue detection configured per spec
|
||||
- Quality gates with measurable thresholds
|
||||
`
|
||||
)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Test-Specific Execution Modes
|
||||
|
||||
### Test Generation (IMPL-001)
|
||||
- **Agent Mode** (default): @code-developer generates tests within agent context
|
||||
- **CLI Mode**: Use CLI tools when `command` field present in implementation_approach
|
||||
|
||||
### Test Execution & Fix (IMPL-002+)
|
||||
- **Agent Mode** (default): Gemini diagnosis → agent applies fixes
|
||||
- **CLI Mode**: Gemini diagnosis → CLI applies fixes (when `command` field present)
|
||||
|
||||
**CLI Tool Selection**: Determined semantically from user's task description (e.g., "use Codex for fixes")
|
||||
|
||||
---
|
||||
|
||||
## Output
|
||||
|
||||
### Directory Structure
|
||||
|
||||
```
|
||||
.workflow/active/WFS-test-[session]/
|
||||
├── workflow-session.json # Session metadata
|
||||
├── IMPL_PLAN.md # Test implementation plan
|
||||
├── TODO_LIST.md # Task checklist
|
||||
├── .task/
|
||||
│ ├── IMPL-001.json # Test generation (L1-L3)
|
||||
│ ├── IMPL-001.3-validation.json # Code validation gate (L0 + AI)
|
||||
│ ├── IMPL-001.5-review.json # Test quality gate
|
||||
│ └── IMPL-002.json # Test execution & fix cycle
|
||||
└── .process/
|
||||
├── test-context-package.json # Test coverage and patterns
|
||||
└── TEST_ANALYSIS_RESULTS.md # L0-L3 requirements (source for agent)
|
||||
```
|
||||
|
||||
### Task Summary
|
||||
|
||||
| Task | Type | Agent | Purpose |
|
||||
|------|------|-------|---------|
|
||||
| IMPL-001 | test-gen | @code-developer | Generate L1-L3 tests with project templates |
|
||||
| IMPL-001.3 | code-validation | @test-fix-agent | Validate L0 + detect AI issues (CRITICAL/ERROR/WARNING) |
|
||||
| IMPL-001.5 | test-quality-review | @test-fix-agent | Check anti-patterns, layer completeness, coverage |
|
||||
| IMPL-002 | test-fix | @test-fix-agent | Execute tests, diagnose failures, apply fixes |
|
||||
|
||||
---
|
||||
|
||||
## Integration & Usage
|
||||
|
||||
### Command Chain
|
||||
- **Called By**: `/workflow:test-gen` (Phase 4), `/workflow:test-fix-gen` (Phase 4)
|
||||
- **Invokes**: `action-planning-agent` for test planning document generation
|
||||
- **Called By**: `/workflow:test-fix-gen` (Phase 4)
|
||||
- **Invokes**: `@test-action-planning-agent` for test planning document generation
|
||||
- **Followed By**: `/workflow:test-cycle-execute` or `/workflow:execute` (user-triggered)
|
||||
|
||||
### Usage Examples
|
||||
@@ -265,22 +181,31 @@ Hard Constraints:
|
||||
# Standard execution
|
||||
/workflow:tools:test-task-generate --session WFS-test-auth
|
||||
|
||||
# With semantic CLI request (include in task description)
|
||||
# With semantic CLI request (include in task description when calling /workflow:test-fix-gen)
|
||||
# e.g., "Generate tests, use Codex for implementation and fixes"
|
||||
```
|
||||
|
||||
### CLI Tool Selection
|
||||
CLI tool usage is determined semantically from user's task description:
|
||||
- Include "use Codex" for automated fixes
|
||||
- Include "use Gemini" for analysis
|
||||
- Default: Agent execution (no `command` field)
|
||||
### Output Validation
|
||||
|
||||
### Output
|
||||
- Test task JSON files in `.task/` directory (minimum 4):
|
||||
- IMPL-001.json (test generation)
|
||||
- IMPL-001.3-validation.json (code validation gate)
|
||||
- IMPL-001.5-review.json (test quality gate)
|
||||
- IMPL-002.json (test execution & fix)
|
||||
- IMPL_PLAN.md with test strategy, validation gates, and fix cycle specification
|
||||
- TODO_LIST.md with test phase indicators
|
||||
- Session ready for test execution
|
||||
**Minimum Requirements**:
|
||||
- 4 task JSON files created
|
||||
- IMPL_PLAN.md exists with test-specific sections
|
||||
- TODO_LIST.md exists with test phase hierarchy
|
||||
- All tasks reference TEST_ANALYSIS_RESULTS.md specifications
|
||||
- L0-L3 layers explicitly defined in IMPL-001
|
||||
- AI issue detection configured in IMPL-001.3
|
||||
- Quality gates with thresholds in IMPL-001.5
|
||||
|
||||
---
|
||||
|
||||
## Related Commands
|
||||
|
||||
**Called By**:
|
||||
- `/workflow:test-fix-gen` - Phase 4: Generate test planning documents
|
||||
|
||||
**Prerequisite**:
|
||||
- `/workflow:tools:test-concept-enhanced` - Must generate TEST_ANALYSIS_RESULTS.md first
|
||||
|
||||
**Follow-Up**:
|
||||
- `/workflow:test-cycle-execute` - Execute generated test tasks
|
||||
- `/workflow:execute` - Alternative: Standard task execution
|
||||
|
||||
Reference in New Issue
Block a user