mirror of
https://github.com/rennf93/roboco.git
synced 2026-08-03 07:23:24 +02:00
Task Management:
- Add cancellation safeguards: require valid reason category (duplicate,
obsolete, blocked_permanently, reassigned, scope_change, stakeholder_request)
- Protect active work from arbitrary cancellation - must pause/block first
- Auto-notify PM when task is blocked with ACTION REQUIRED message
- PM task scan now shows blocked tasks needing their attention
Permissions:
- Add VIEW_STATS to Developer, QA, Documenter, Head Marketing KB permissions
- Aligns code with docs/workflows/PERMISSIONS.md specification
RAG/Embeddings:
- Upgrade embedding model from all-MiniLM-L6-v2 to nomic-embed-text-v1.5
- 768 dimensions with 8K token context (vs 512 tokens)
- Add per-index chunk sizes: docs=1536, journals=1024, others=512
- Switch to fixed chunking (semantic chunking loads separate MiniLM model)
- Add einops dependency required by nomic model
8.8 KiB
8.8 KiB
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)
│
│ # REQUIRED: Announce to cell
│ roboco_message_send({
│ channel: "backend-cell",
│ content: "Starting QA review of [task title]",
│ task_id: task_id
│ })
│
│ STATUS: claimed → in_progress
│
▼
4. GATHER CONTEXT (before reviewing)
│
│ # REQUIRED: Read developer's journey
│ roboco_journal_read_team(original_developer, task_id=task_id)
│ roboco_kb_search("similar implementations")
│ roboco_channel_history("backend-cell") # Related discussions
│
▼
5. REVIEW WORK
│
│ ┌─────────────────────────────────────────────────────────────────┐
│ │ Review checklist: │
│ │ ├── Read developer's handoff notes │
│ │ ├── Check acceptance criteria │
│ │ ├── Run tests │
│ │ ├── Verify functionality │
│ │ └── Check code quality │
│ │ │
│ │ REQUIRED - Progress updates: │
│ │ roboco_task_progress(task_id, "Reviewing X", 50) │
│ │ │
│ │ REQUIRED - Journal your review: │
│ │ roboco_journal_entry({type: "qa_review", ...}) │
│ │ roboco_journal_decision(...) # If making judgment calls │
│ │ roboco_journal_struggle(...) # If issues found │
│ └─────────────────────────────────────────────────────────────────┘
│
▼
6. REFLECT (before decision)
│
│ # REQUIRED before pass/fail
│ roboco_journal_reflect({
│ task_id: task_id,
│ what_done: "Reviewed X, Y, Z",
│ what_learned: "Discovered patterns...",
│ what_struggled: "Edge cases were unclear"
│ })
│
▼
7. 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
Using Knowledge Base
Before reviewing, search for context:
roboco_kb_search("similar past reviews") # Find related QA work
roboco_rag_query("what are common issues?") # AI-generated insights
roboco_journal_search("qa patterns") # Your past reviews
See KNOWLEDGE_BASE.md for full documentation.
Agent-to-Agent (A2A) Tools
QA can collaborate directly with other agents:
roboco_agent_discover(role, team, skill) # Find agents who can help
roboco_agent_request(target_agent, skill, message) # Request work
roboco_agent_request_status(a2a_task_id) # Check request progress
When to use A2A:
- Need dev clarification? →
roboco_agent_request("be-dev-1", "code_review", "Can you explain...") - Need security review? →
roboco_agent_discover(skill="security_audit")
Key Rules
- Only claim awaiting_qa - Can't claim pending tasks
- Cannot self-review - Can't QA your own dev work
- MESSAGE when starting - Announce to cell channel
- READ dev's journey - roboco_journal_read_team() REQUIRED
- JOURNAL your review - Document what was tested and why
- REFLECT before decision - roboco_journal_reflect() REQUIRED
- Clear fail reasons - Developer needs to know what to fix
- Cannot COMPLETE - Only PM completes after docs