mirror of
https://github.com/rennf93/roboco.git
synced 2026-08-03 07:23:24 +02:00
Bringing back some old friends
This commit is contained in:
@@ -0,0 +1,120 @@
|
||||
# QA Workflow
|
||||
|
||||
## Overview
|
||||
|
||||
QA agents (be-qa, fe-qa, ux-qa) verify developer work meets acceptance criteria.
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────────┐
|
||||
│ QA WORKFLOW │
|
||||
└─────────────────────────────────────────────────────────────────────────┘
|
||||
|
||||
1. SCAN FOR WORK
|
||||
│
|
||||
│ roboco_task_scan(team="backend")
|
||||
│
|
||||
│ Look for:
|
||||
│ └── Tasks in "awaiting_qa" status
|
||||
│
|
||||
▼
|
||||
2. CLAIM TASK
|
||||
│
|
||||
│ roboco_task_claim(task_id)
|
||||
│
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐
|
||||
│ │ QA can ONLY claim tasks in "awaiting_qa" │
|
||||
│ │ │
|
||||
│ │ BEFORE: │
|
||||
│ │ status: awaiting_qa │
|
||||
│ │ assigned_to: original_developer │
|
||||
│ │ │
|
||||
│ │ AFTER: │
|
||||
│ │ status: claimed │
|
||||
│ │ assigned_to: qa_agent │
|
||||
│ │ (original_developer stored in quick_context) │
|
||||
│ └─────────────────────────────────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
3. START REVIEW
|
||||
│
|
||||
│ roboco_task_start(task_id)
|
||||
│
|
||||
│ STATUS: claimed → in_progress
|
||||
│
|
||||
▼
|
||||
4. REVIEW WORK
|
||||
│
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐
|
||||
│ │ Review checklist: │
|
||||
│ │ ├── Read developer's handoff notes │
|
||||
│ │ ├── Check acceptance criteria │
|
||||
│ │ ├── Run tests │
|
||||
│ │ ├── Verify functionality │
|
||||
│ │ └── Check code quality │
|
||||
│ │ │
|
||||
│ │ roboco_task_progress(task_id, "Reviewing X", 50) │
|
||||
│ │ roboco_journal_entry({type: "qa_review", ...}) │
|
||||
│ └─────────────────────────────────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
5. DECISION
|
||||
│
|
||||
├──── PASS ────────────────────────────────────────────────────────┐
|
||||
│ │
|
||||
│ roboco_task_qa_pass(task_id, { │
|
||||
│ notes: "All acceptance criteria met. Tests pass." │
|
||||
│ }) │
|
||||
│ │
|
||||
│ STATUS: in_progress → awaiting_documentation │
|
||||
│ → Documenter takes over │
|
||||
│ │
|
||||
└──── FAIL ────────────────────────────────────────────────────────┐
|
||||
│
|
||||
roboco_task_qa_fail(task_id, { │
|
||||
notes: "Issues found", │
|
||||
issues: [ │
|
||||
"Bug: X doesn't work", │
|
||||
"Missing: Y not implemented" │
|
||||
] │
|
||||
}) │
|
||||
│
|
||||
STATUS: in_progress → needs_revision │
|
||||
ASSIGNED_TO: back to original_developer │
|
||||
→ Developer fixes and resubmits │
|
||||
│
|
||||
▼
|
||||
DONE (for QA)
|
||||
```
|
||||
|
||||
## Self-Review Prevention
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────────┐
|
||||
│ QA CANNOT review tasks they originally developed │
|
||||
│ │
|
||||
│ System tracks original_developer in quick_context │
|
||||
│ If QA agent == original_developer → FORBIDDEN │
|
||||
└─────────────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
## Status Transitions (QA perspective)
|
||||
|
||||
```
|
||||
CAN CLAIM:
|
||||
awaiting_qa ──claim──► claimed
|
||||
|
||||
AFTER CLAIM:
|
||||
claimed ──start──► in_progress
|
||||
|
||||
DECISIONS:
|
||||
in_progress ──qa_pass──► awaiting_documentation
|
||||
in_progress ──qa_fail──► needs_revision
|
||||
```
|
||||
|
||||
## Key Rules
|
||||
|
||||
1. **Only claim awaiting_qa** - Can't claim pending tasks
|
||||
2. **Cannot self-review** - Can't QA your own dev work
|
||||
3. **Thorough notes** - Document what was tested and why
|
||||
4. **Clear fail reasons** - Developer needs to know what to fix
|
||||
5. **Cannot COMPLETE** - Only PM completes after docs
|
||||
Reference in New Issue
Block a user