Files
auto-build/plugin/commands/qa-review.md
Marius Mutu 940c6a9f58 feat: Move specs and memory to git for multi-developer collaboration (v1.0.6)
BREAKING CHANGE: Specs, plans, and memory moved from .auto-build-data/ (gitignored)
to .auto-build/ (git-tracked) to enable team collaboration.

Changes:
- Specs/plans now in .auto-build/specs/ (shared with team)
- Memory (patterns, gotchas) now in .auto-build/memory/ (shared with team)
- .auto-build-data/ now only contains local data (worktrees, cache)
- Added /ab:migrate command for existing projects
- Removed symlinks from worktree-create.sh (no longer needed)

Benefits:
- Any developer can continue a plan started by another
- Patterns and gotchas shared across team
- Works on Windows/Linux/Mac without symlinks
- Full version history in git

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 17:44:52 +02:00

173 lines
4.1 KiB
Markdown

---
description: Run QA validation loop with automatic fixes
argument-hint: [feature-name] - Optional, uses current feature if omitted
---
# QA Review and Fix Loop
Run iterative QA review with automatic fix attempts. The system will review code, identify issues, and attempt fixes up to 50 iterations.
## Configuration
- **MAX_ITERATIONS**: 50
- **AUTO_FIX**: Ask user before each fix round
## Input
- **Feature name**: $ARGUMENTS or infer from current active build
## Workflow
### 1. Initialize
- Determine feature from argument or find active build in status files
- Load spec and plan from `.auto-build/specs/{feature-name}/`
- Create QA iteration directory: `.auto-build-data/cache/qa-iterations/{feature-name}/`
- Set iteration counter to 0
- Update status to `QA_REVIEW`
### 2. Review Loop
```
iteration = 0
while iteration < MAX_ITERATIONS:
# 2a. Launch QA Reviewer
Launch qa-reviewer agent with:
- Spec and plan context
- List of modified files (from status.json)
- Previous iteration results (if any)
# 2b. Collect Issues
Agent returns issues with severity:
- error: Must fix
- warning: Should fix
- info: Nice to fix
Save to: `.auto-build-data/cache/qa-iterations/{feature-name}/iteration-{n}.json`
# 2c. Check Exit Condition
if no errors and no warnings:
status = "PASSED"
break
# 2d. Present Issues
Display:
```
QA Review - Iteration {n}
Found 3 issues:
[ERROR] src/api/users.ts:42 - Potential null dereference
[WARNING] src/types/user.ts:15 - Missing type annotation
[INFO] src/utils/format.ts:8 - Could use const instead of let
Auto-fix these issues? [Yes] [Select] [Skip] [Abort]
```
# 2e. Fix Issues
if user says yes:
for each error/warning:
Launch qa-fixer agent with issue details
Track fix result
# 2f. Increment
iteration++
```
### 3. Exit Conditions
| Condition | Status | Action |
|-----------|--------|--------|
| No errors/warnings | `PASSED` | Proceed to completion |
| Max iterations | `NEEDS_MANUAL_REVIEW` | Show remaining issues |
| User abort | `ABORTED` | Save current state |
### 4. Final Report
```
======================================
QA Review Complete
======================================
Status: PASSED (after 3 iterations)
Summary:
- Total issues found: 8
- Issues fixed: 7
- Issues skipped: 1 (info level)
Iterations:
1. Found 5 issues, fixed 5
2. Found 2 issues, fixed 2
3. Found 1 issue (info), skipped
Files reviewed: 12
Files modified during fixes: 6
Next steps:
- Save learnings: /ab:memory-save
- If using worktree: /ab:worktree cleanup feature-name
```
## Iteration Record Format
`.auto-build-data/cache/qa-iterations/{feature-name}/iteration-{n}.json` (local cache):
```json
{
"iteration": 1,
"timestamp": "2025-01-15T14:30:00Z",
"issues_found": [
{
"severity": "error",
"category": "correctness",
"file": "src/api/users.ts",
"line": 42,
"code": "const x = data.value",
"description": "Potential null dereference - data could be undefined",
"suggestion": "Add null check: const x = data?.value ?? defaultValue"
}
],
"issues_fixed": [
{
"issue_id": 0,
"fix_applied": "Added optional chaining and default value",
"success": true
}
],
"issues_remaining": 0,
"status": "all_fixed"
}
```
## QA Categories
The qa-reviewer checks for:
1. **Correctness**
- Logic errors
- Null/undefined handling
- Type mismatches
2. **Patterns**
- Following codebase conventions
- Consistent error handling
3. **Security**
- Input validation
- Injection risks
4. **Performance**
- Unnecessary loops
- N+1 queries
5. **Maintainability**
- Code clarity
- DRY violations
## User Controls
- **Yes**: Fix all errors and warnings automatically
- **Select**: Choose which issues to fix
- **Skip**: Move to next iteration without fixing
- **Abort**: Stop QA review, save current state