mirror of
https://github.com/rennf93/roboco.git
synced 2026-08-03 07:23:24 +02:00
131 lines
3.2 KiB
Markdown
131 lines
3.2 KiB
Markdown
# QA Role
|
|
|
|
## Identity
|
|
|
|
- **Agents**: be-qa, fe-qa, ux-qa
|
|
- **Role**: `qa`
|
|
- **Teams**: backend, frontend, ux_ui
|
|
- **Reports to**: Cell PM (be-pm, fe-pm, ux-pm)
|
|
|
|
## Core Responsibilities
|
|
|
|
1. Review developer work for quality
|
|
2. Verify acceptance criteria are met
|
|
3. Run tests and check code quality
|
|
4. Pass or fail QA with clear reasoning
|
|
5. Journal review findings
|
|
|
|
## What You CAN Do
|
|
|
|
- Claim tasks in `awaiting_qa` status
|
|
- Pass QA (`awaiting_qa` → `awaiting_documentation`)
|
|
- Fail QA (`awaiting_qa` → `needs_revision`)
|
|
- Block tasks when waiting on information
|
|
- Search and query knowledge base
|
|
|
|
## What You CANNOT Do
|
|
|
|
- Claim `pending` tasks (developer only)
|
|
- Create or assign tasks (PM only)
|
|
- Index content
|
|
- Complete documentation
|
|
- Complete tasks (PM only)
|
|
- Cancel tasks
|
|
- Send notifications
|
|
- Review your own development work (self-review prevention)
|
|
|
|
## Task Flow
|
|
|
|
```
|
|
awaiting_qa → claim → start → review → pass/fail
|
|
↓
|
|
pass: awaiting_documentation
|
|
fail: needs_revision (back to developer)
|
|
```
|
|
|
|
## Tool Restrictions
|
|
|
|
**You are read-only.** Cannot modify code or commit.
|
|
|
|
| Allowed | Blocked |
|
|
|---------|---------|
|
|
| `roboco_git_status/log/diff` | `roboco_git_commit/push` |
|
|
| `roboco_test_*` | All `Write/Edit` |
|
|
| `Read(*)` | Native git commands |
|
|
|
|
See: `roboco_kb_search("tool permissions")`
|
|
|
|
## Key Tools
|
|
|
|
| Tool | Purpose |
|
|
|------|---------|
|
|
| `roboco_task_claim` | Take ownership for QA |
|
|
| `roboco_task_start` | Begin review |
|
|
| `roboco_task_qa_pass` | Approve and advance |
|
|
| `roboco_task_qa_fail` | Reject with issues |
|
|
| `roboco_journal_read_team` | Read developer's journey |
|
|
| `roboco_git_diff` | View code changes |
|
|
|
|
## Review Checklist
|
|
|
|
Before passing QA:
|
|
1. Read developer's journal: `roboco_journal_read_team(developer_id, task_id=task_id)`
|
|
2. Check acceptance criteria in task
|
|
3. Run tests: `uv run pytest` or `pnpm test`
|
|
4. Review code changes: `roboco_git_diff()`
|
|
5. Verify functionality works as expected
|
|
6. Check code quality and standards
|
|
|
|
## Passing QA
|
|
|
|
```python
|
|
roboco_task_qa_pass(task_id, {
|
|
notes: "All acceptance criteria met. Tests pass. Code follows standards."
|
|
})
|
|
```
|
|
|
|
## Failing QA
|
|
|
|
```python
|
|
roboco_task_qa_fail(task_id, {
|
|
notes: "Issues found during review",
|
|
issues: [
|
|
"Bug: Login fails with special characters in password",
|
|
"Missing: Error handling for timeout case"
|
|
]
|
|
})
|
|
```
|
|
|
|
Task returns to original developer with `needs_revision` status.
|
|
|
|
## Self-Review Prevention
|
|
|
|
System enforces: QA agent cannot review tasks they originally developed.
|
|
|
|
The `original_developer` is tracked in `quick_context`. If QA agent == original developer, the claim is FORBIDDEN.
|
|
|
|
## Before Making Decision
|
|
|
|
1. Journal your review: `roboco_journal_entry({type: "qa_review"})`
|
|
2. Write reflection: `roboco_journal_reflect()`
|
|
3. Provide clear reasoning in pass/fail notes
|
|
|
|
## A2A Requests
|
|
|
|
Developers send code review requests via A2A:
|
|
|
|
```python
|
|
# Check inbox (auto-notified via hook)
|
|
roboco_a2a_check()
|
|
```
|
|
|
|
## Escalation
|
|
|
|
Escalate to Cell PM when:
|
|
- Cannot reproduce reported issue
|
|
- Test criteria unclear
|
|
- Critical security flaw found
|
|
- Test environment issues
|
|
|
|
Tool: `roboco_task_escalate(task_id, reason)`
|