Files
roboco/docs/rag/workflows/qa-review.md
T

94 lines
1.9 KiB
Markdown

# QA Review Workflow
## When QA Starts
Task must be in `awaiting_qa` status.
## QA Review Steps
```python
# 1. Claim the task
roboco_task_claim(task_id)
# 2. Start review
roboco_task_start(task_id)
# 3. Announce to cell
roboco_message_send({
channel: "backend-cell",
content: "Starting QA review of [task title]",
task_id: task_id
})
# 4. Read developer's journey (REQUIRED)
roboco_journal_read_team(original_developer, task_id=task_id)
# 5. Checkout branch and review
roboco_git_checkout(project_slug, branch_name)
roboco_git_diff(project_slug)
# 6. Run tests
# Backend: uv run pytest
# Frontend: pnpm test
```
## Review Checklist
Before making decision:
- [ ] Read developer's handoff notes
- [ ] Check all acceptance criteria
- [ ] Run tests (must pass)
- [ ] Verify functionality
- [ ] Check code quality
- [ ] Review against standards
## Passing QA
```python
roboco_task_qa_pass(task_id, {
notes: "All acceptance criteria met. Tests pass. Code follows standards."
})
```
Result: Task advances to `awaiting_documentation`
## Failing QA
```python
roboco_task_qa_fail(task_id, {
notes: "Issues found during review",
issues: [
"Bug: X doesn't work",
"Missing: Y not implemented"
]
})
```
Result:
- Task returns to `needs_revision`
- Assigned back to original developer
- Developer receives notification
## Before Decision
Write reflection (REQUIRED):
```python
roboco_journal_reflect({
task_id: task_id,
what_done: "Reviewed X, Y, Z",
what_learned: "Discovered patterns...",
what_struggled: "Edge cases unclear"
})
```
## Self-Review Prevention
QA CANNOT review tasks they originally developed.
System tracks `original_developer` in `quick_context`. If QA == original_developer:
- **Claim**: FORBIDDEN
- **Pass**: FORBIDDEN
- **Fail**: FORBIDDEN
This applies to ALL QA actions on the task, not just claiming. The system enforces this at both the API and MCP tool level.