playbook/antigravity-awesome-skills/skills/subagent-orchestrator/examples/api-plus-frontend.md

2.6 KiB

Example: Backend API Agent + Frontend UI Agent in Parallel

Scenario

User prompt: "Build a proposal generator — form on frontend, AI call on backend, result displayed on screen."

This is the ProposalKit core feature pattern.


Mission Brief

MISSION BRIEF
─────────────────────────────────────────
Goal: Working proposal generator with form input, API processing, and result display.
Total Agents: 2 + 1 integration
Quota Strategy: MIXED — Flash for backend, Sonnet for frontend UI
Expected Token Cost: MEDIUM

AGENTS:
[1] ID: agent-001
    Role: Builder — Backend API
    Scope: /app/api/generate/route.ts
    Model: Gemini Flash
    Input: NVIDIA API key env name, prompt template from resources/prompt-template.md
    Output: POST route that accepts {clientName, projectType, budget}, returns {proposal: string}
    Depends on: none

[2] ID: agent-002
    Role: Builder — Frontend Form + Display
    Scope: /components/ProposalForm.tsx, /components/ProposalResult.tsx, /app/page.tsx
    Model: Claude Sonnet (UI needs quality)
    Input: API contract from agent-001 spec (input/output shape only — not the code)
    Output: Form component, result display, wired to /api/generate
    Depends on: none (uses spec, not agent-001 output directly)

[3] ID: agent-003
    Role: Integrator
    Scope: review only — no new files
    Model: Gemini Flash
    Input: Outputs from agent-001 and agent-002
    Output: List of any mismatches between API contract and frontend calls
    Depends on: agent-001, agent-002
─────────────────────────────────────────

Key Pattern: Spec-First Parallelism

agents 001 and 002 run at the same time because:

  • agent-002 receives the API contract (input/output shape) not the actual code
  • The contract is defined before either agent runs
  • Both agents work from the same agreed spec

This avoids agent-002 waiting for agent-001 to finish, saving significant time and quota.

Always define the API contract before spawning parallel agents:

// Agree on this before agents run:
// POST /api/generate
// Input:  { clientName: string, projectType: string, budget: number }
// Output: { proposal: string, error?: string }

Quota Log

Event Impact
agent-001 (Flash, 1 file) LOW
agent-002 (Sonnet, 3 files) MEDIUM
agent-003 (Flash, review only) LOW
0 browser agents NONE
Total estimated ~30% sprint