Files
roboco/docs/workflows/DOCUMENTER.md
T
Renn F 5315e9c72d feat: workflow enforcement, RAG upgrade, and permission fixes
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
2025-12-29 00:30:18 +01:00

7.9 KiB

Documenter Workflow

Overview

Documenters (be-doc, fe-doc, ux-doc) create production documentation from developer work.

┌─────────────────────────────────────────────────────────────────────────┐
│                       DOCUMENTER WORKFLOW                               │
└─────────────────────────────────────────────────────────────────────────┘

1. SCAN FOR WORK
   │
   │  roboco_task_scan(team="backend")
   │
   │  Look for:
   │  └── Tasks in "awaiting_documentation" status
   │
   ▼
2. CLAIM TASK
   │
   │  roboco_task_claim(task_id)
   │
   │  ┌─────────────────────────────────────────────────────────────────┐
   │  │ Documenter can claim:                                           │
   │  │ ├── "awaiting_documentation" (normal workflow)                  │
   │  │ └── "pending" (direct docs tasks from PM)                       │
   │  │                                                                 │
   │  │ AFTER:                                                          │
   │  │   status: claimed                                               │
   │  │   assigned_to: documenter                                       │
   │  └─────────────────────────────────────────────────────────────────┘
   │
   ▼
3. START DOCUMENTATION
   │
   │  roboco_task_start(task_id)
   │
   │  # REQUIRED: Announce to cell
   │  roboco_message_send({
   │    channel: "backend-cell",
   │    content: "Starting documentation for [task title]",
   │    task_id: task_id
   │  })
   │
   │  STATUS: claimed → in_progress
   │
   ▼
4. GATHER CONTEXT
   │
   │  ┌─────────────────────────────────────────────────────────────────┐
   │  │ REQUIRED - Read dev's journey:                                  │
   │  │   roboco_journal_read_team(original_developer, task_id=task_id) │
   │  │                                                                 │
   │  │ Also review:                                                    │
   │  │ ├── Developer's handoff notes (in quick_context)                │
   │  │ ├── QA review notes                                             │
   │  │ ├── roboco_channel_history("backend-cell")                      │
   │  │ └── roboco_kb_search("similar documentation")                   │
   │  │                                                                 │
   │  │ Journal what you gathered:                                      │
   │  │   roboco_journal_entry({type: "research", ...})                 │
   │  └─────────────────────────────────────────────────────────────────┘
   │
   ▼
5. WRITE DOCUMENTATION
   │
   │  ┌─────────────────────────────────────────────────────────────────┐
   │  │ Create:                                                         │
   │  │ ├── API documentation                                           │
   │  │ ├── Usage examples                                              │
   │  │ ├── Architecture notes                                          │
   │  │ └── Update README if needed                                     │
   │  │                                                                 │
   │  │ REQUIRED - Progress updates:                                    │
   │  │   roboco_task_progress(task_id, "Writing API docs", 50)         │
   │  │   roboco_task_progress(task_id, "Adding examples", 75)          │
   │  │                                                                 │
   │  │ REQUIRED - Journal as you write:                                │
   │  │   roboco_journal_entry({type: "documentation", ...})            │
   │  │   roboco_journal_decision(...) # For doc structure choices      │
   │  └─────────────────────────────────────────────────────────────────┘
   │
   ▼
6. REFLECT & INDEX (before completing)
   │
   │  # REQUIRED: Reflect on documentation work
   │  roboco_journal_reflect({
   │    task_id: task_id,
   │    what_done: "Created X docs with Y examples",
   │    what_learned: "Doc patterns for this codebase",
   │    what_struggled: "Understanding Z component"
   │  })
   │
   │  # Index your new docs for future search
   │  roboco_kb_index_docs(["docs/new-feature.md"])
   │
   ▼
7. COMPLETE DOCUMENTATION
   │
   │  roboco_task_docs_complete(task_id)
   │
   │  STATUS: in_progress → awaiting_pm_review
   │  ASSIGNED_TO: automatically set to responsible PM
   │  NOTIFICATION: sent to PM via Redis Streams
   │
   ▼
   DONE (for documenter) → PM receives notification and reviews

Self-Documentation Prevention

┌─────────────────────────────────────────────────────────────────────────┐
│ Documenter CANNOT document tasks they originally developed              │
│                                                                         │
│ System tracks original_developer in quick_context                       │
│ If documenter == original_developer → FORBIDDEN                         │
└─────────────────────────────────────────────────────────────────────────┘

Status Transitions (Documenter perspective)

CAN CLAIM:
  awaiting_documentation ──claim──► claimed
  pending ─────────────────claim──► claimed  (direct docs tasks)

AFTER CLAIM:
  claimed ──start──► in_progress

COMPLETE:
  in_progress ──docs_complete──► awaiting_pm_review

Using Knowledge Base

Documenters have KB access including doc indexing:

roboco_kb_search("similar documentation")      # Find related docs
roboco_rag_query("how is X documented?")       # AI-generated answers
roboco_journal_read_team("be-dev-1")           # Read developer's journey

# Indexing (Documenter)
roboco_kb_index_docs(["docs/**/*.md"])         # Index your docs for search

See KNOWLEDGE_BASE.md for full documentation.

Key Rules

  1. Only claim awaiting_documentation or pending - Can't claim dev tasks
  2. Cannot self-document - Can't document your own dev work
  3. MESSAGE when starting - Announce to cell channel
  4. READ dev's journey - roboco_journal_read_team() REQUIRED
  5. JOURNAL your work - Document decisions, learnings
  6. REFLECT before submit - roboco_journal_reflect() REQUIRED
  7. INDEX your docs - roboco_kb_index_docs() for future search
  8. Quality docs - Future developers depend on this
  9. Cannot COMPLETE task - Only submits for PM review