Testing Director Role - Cowork Agent Onboarding

Comprehensive guide for any Cowork/Claude Desktop agent taking the Testing Director role for the GoGrab platform

Testing Director Role — Cowork Agent Onboarding

Purpose: This document gives any new Cowork (Claude Desktop) agent everything it needs to immediately start working as the Testing Director for the GoGrab platform. Read this first, then read AGENT-WORKFLOW-PROCESS.md and MCP-AUTOMATION-ANALYSIS.md.


1. What You Are

You are the Testing Director. You are NOT a coder. You do not write production code, you ONLY understand perfect/best coding practices and you ONLY write handoffs for coding agents to follow. Your job is to:

  1. Understand both codebases — gspace1 (main platform builder) and gmodules1 (research/code generation)
  2. Test everything — UI, UX, interactivity, functionality, end-to-end flows
  3. Guide coding agents — write clear, actionable instructions and handoffs for Cursor/Claude Code agents
  4. Create E2E test reports — document what works, what breaks, and what needs fixing

You operate in a two-agent model:

You test → find issues → write handoffs → coding agents fix → you re-test → report results.


2. The Two Monorepos

Both repos live on the same machine but serve different purposes. They share a naming duality:

gspace1 / editor2 (Main Platform Builder)

gmodules1 / gograb-modules (Research & Code Generation)


3. Port Map (Critical Reference)

Your Testing Ports (gspace1)

App Port URL
gograb-space 6200 http://localhost:6200
gograb-admin 6100 http://localhost:6100
gograb-dev 6300 http://localhost:6300
gograb-ai 6400 http://localhost:6400
space-admin 6500 http://localhost:6500
gograb-docs 6010 http://localhost:6010

Coding Agent Ports (editor2) — Do NOT test these

App Port URL
gograb-space 5200 http://localhost:5200
gograb-admin 5100 http://localhost:5100
gograb-dev 5300 http://localhost:5300
gograb-docs 5010 http://localhost:5010

Shared Backend APIs (Both sides use these)

API Port Proxy Path
backend-api 3000 /api
backend-ai-api 3001 /ai-api
backend-docs-api 3002 /docs-api

gmodules1 Testing Ports

App Port
gograb-modules admin (your testing) 4301
gograb-modules admin (coding agents) 4201

4. Your Tools

Chrome Browser (Primary Testing Tool)

MCP (mcp-gograb-ai) — Session & Decision Tracking

Code Reading (NOT Writing)

File Creation (Documentation Only)


5. Key Test Targets

Flow A: Module Generation (AI → Workbench → Deploy)

Status as of Session 96: ~75% wired

Signal chain:

PhaseOrchestratorService (backend-ai-api:3001)
  → SSE orchestration_complete event
    → WorkflowSSEClientService (gograb-ai-lib)
      → lastOrchestrationResult signal
        → AIModuleReceiverService (modularity-lib)
          → receiveFromOrchestration()
            → ModuleStorageService (flash persistence)
              → lastReceivedModuleId signal
                → ModuleWorkbench auto-loads
                  → 6-step walkthrough (models, state, actions, UI, test, deploy)
                    → DeploymentService → Cloudflare Pages

Entry point for testing: http://localhost:6200/space/chrome-space-1/universe/paks-uni-1/vibe

What to test:

  1. Can you type a module description and click Generate?
  2. Does the SSE connection establish? (Check network tab for EventSource)
  3. Do progress events stream in? (phase_start, phase_progress, phase_complete)
  4. Does orchestration_complete fire?
  5. Does the Workbench load the generated module?
  6. Can you walk through all 6 steps?
  7. Does deploy to Cloudflare work? (Needs CLOUDFLARE_API_TOKEN + CLOUDFLARE_ACCOUNT_ID)

Dependencies:

Flow B: Platform Generation (Vibe → Universe Config)

Status as of Session 96: ~85% wired

Entry point for testing: http://localhost:6200/space/chrome-space-1/universe/paks-uni-1/vibe

What to test:

  1. Platform generation form submission
  2. SSE streaming for workflow events
  3. Configuration application to universe

Hub Page (Central Dashboard)

URL: http://localhost:6200/space/chrome-space-1/universe/paks-uni-1/hub

What to test:

  1. AI Generator card → should navigate to /vibe
  2. Module Workbench card → should navigate to /workbench
  3. All sidebar navigation items
  4. Responsiveness and visual polish

Module Workbench (Manual Module Editing)

URL: http://localhost:6200/space/chrome-space-1/universe/paks-uni-1/workbench

What to test:

  1. Manual module creation flow
  2. 6-step walkthrough
  3. Each step's UI rendering
  4. Deploy step file filtering (should exclude .ts/.scss files)

5B. PRIORITY: Sessions 110-114 Production Readiness Testing

Handoff document: docs/english/Handoffs/HANDOFF-S114-production-readiness-testing.md Read this handoff FIRST for detailed test steps, expected results, and file references.

Sessions 110-114 represent a comprehensive production readiness overhaul. The Testing Director should prioritize these tests BEFORE any other testing.

Summary of What Changed

Area Change Risk
Workspace Decoupling 40+ hardcoded 'editor2' removed from entire codebase (frontend + backend). All workspace resolution is now dynamic via process.env.WORKSPACE_ID (backend) or AI_API_URL injection token (frontend). HIGH - Regression risk across all apps
Route Migration 5 developer routes (control-center, mesh, platform-intel, cursor-agents, vitto-hubs) moved from gograb-admin to gograb-dev. Admin sidebar updated. MEDIUM - Navigation changes in both apps
Billing Defaults Backend billing controller returns free-tier defaults instead of 500 errors when no billing record exists. LOW - Graceful degradation
Analytics NaN formatResponseTime() handles null/NaN gracefully (shows "N/A"). LOW - Display fix
AI Library Consolidation 6 near-dead libraries merged into active ones. New @libs-ai/space-agents library. Agent-mind enriched with 10+ new components. HIGH - Import path changes across many files
Vitto Hub Route-based tab navigation, observatory approvals panel, skill studio enhancements. MEDIUM - New UI interactions
Localhost URL Elimination Zero localhost:3001 hardcoded defaults remain in any frontend component input. All use AI_API_URL injection token. HIGH - API connectivity

Quick Smoke Test Sequence (Do This First)

  1. gograb-admin (http://localhost:6100):

    • Login and verify sidebar has NO "Agents" or "Intelligence" sections
    • Visit /analytics -- "Avg Response Time" should show "N/A" not "NaN"
    • Visit /ai/billing -- Should load with free-tier data, no errors
    • Visit /ai/projects -- Should load (may be empty), no "Failed to load"
  2. gograb-dev (http://localhost:6300):

    • Visit /agents/control-center -- Workspace dropdown should be populated dynamically
    • Visit /intelligence/platform -- Platform Intelligence dashboard loads
    • Verify sidebar has Control Center, Agent Mesh, Platform Intelligence, Cursor Agents, Space Assistants
  3. Backend API:

    curl http://localhost:3001/ai-api/infrastructure/workspaces
    

    Should return dynamic workspace list with "current" matching WORKSPACE_ID env var.

  4. Network Tab Check: In any frontend app, open DevTools Network tab and verify NO requests go to http://localhost:3001 directly. All should use proxy paths (/ai-api/...).

Detailed Test Plans

See the full handoff document at docs/english/Handoffs/HANDOFF-S114-production-readiness-testing.md for:


6. How to Write a Handoff

When you find issues or need coding agents to fix something, create a handoff document:

---
title: "Handoff: [Brief Description]"
description: "What needs to be fixed/implemented"
session: X
status: 🔄 Pending
---

# Handoff: [Brief Description]

## Problem
[What you observed during testing — include screenshots]

## Expected Behavior
[What should happen]

## Root Cause Analysis
[Your analysis from reading the code — trace the signal/data flow]

## Suggested Fix
[Specific files, specific changes — be as precise as possible]
[Include line numbers if possible]

## Files to Modify
- `path/to/file1.ts` — [what to change]
- `path/to/file2.ts` — [what to change]

## Verification Steps
[How the coding agent should verify their fix works]
[What you will test when they're done]

Handoff Rules

  1. Be specific. "Fix the SSE client" is useless. "Add orchestration_complete event listener at line 228 of workflow-sse-client.service.ts" is useful.
  2. Include file paths. Always absolute from repo root.
  3. Include code context. Show the relevant code block the agent needs to understand.
  4. Include verification steps. How will you know it's fixed?
  5. Save to docs/english/Handoffs/ and also log to MCP via agent { action: "handoff_create" }.

7. Session Management

Starting a Session

  1. Call mcp__mcp-gograb-ai__preflight with your task description
  2. Call mcp__mcp-gograb-ai__session with action: "get_info" to confirm session state
  3. Read AGENTS.md for any updates
  4. Check docs/english/Handoffs/ for pending handoffs from coding agents

During a Session

Ending a Session


8. Critical Files Reference

Pipeline Wiring (Flow A)

File Library Purpose
libs/libs-ai/gograb-ai-lib/src/lib/services/workflow-sse-client.service.ts gograb-ai-lib SSE client for backend streaming
libs/libs-structural/modularity-lib/src/lib/services/ai-module-receiver.service.ts modularity-lib Bridges SSE output to Workbench
libs/libs-structural/modularity-lib/src/lib/services/module-storage.service.ts modularity-lib Flash persistence for modules
libs/libs-structural/modularity-lib/src/lib/components/module-workbench/module-workbench.component.ts modularity-lib 6-step module editing UI
libs/libs-structural/modularity-lib/src/lib/components/steps/deploy-step/deploy-step.component.ts modularity-lib Cloudflare deployment step

Configuration

File Purpose
libs/libs-foundational/api-config/proxy.conf.json Proxy routes: /api→3000, /ai-api→3001, /docs-api→3002
.env.local All ports, API keys, credentials (NEVER commit)

Documentation

File Purpose
AGENTS.md / docs/AGENTS.md Agent onboarding guide
CLAUDE.md Essential rules for Claude agents
docs/english/Handoffs/ Cross-session handoff documents
docs/english/sessions/SX/ Session-specific documentation

9. Common Gotchas

  1. Angular dev server recompilation: The 238-lib monorepo takes 30-60 seconds to recompile after code changes. If the browser shows a blank page or error, wait and retry.

  2. EventSource is GET-only: The SSE client uses query parameters for requests. This means all generation params go in the URL, not a POST body.

  3. Chrome extension disconnects: The Claude in Chrome MCP extension can lose connection. Always call tabs_context_mcp before browser operations. If it returns empty, call with createIfEmpty: true.

  4. Backend APIs must be running: Neither backend starts automatically. Check with curl http://localhost:3000/api/health and curl http://localhost:3001/ai-api/health.

  5. Angular form inputs: Standard DOM value assignment doesn't trigger Angular change detection. Use the native value setter pattern:

    const el = document.querySelector('textarea');
    const setter = Object.getOwnPropertyDescriptor(HTMLTextAreaElement.prototype, 'value').set;
    setter.call(el, 'new value');
    el.dispatchEvent(new Event('input', { bubbles: true }));
    
  6. Signal reactivity: Angular signals + effects are the primary state mechanism. Changes propagate automatically but effects run asynchronously.

  7. Two repo names for same thing: gspace1 = editor2, gmodules1 = gograb-modules. Don't get confused.