AACWorkflow Docs

Startup AI Squad

Run a lean engineering team with 1–2 humans and 4–6 AI agents, each owning a domain. Best practices for task routing, oversight, and scaling.

Early-stage startups live on speed. Two founders, five features, infinite work. AI agents can be your first hires — each owning a domain (backend, frontend, QA, docs, DevOps, security) and working 24/7 alongside your human team.

This guide shows you how to structure a lean AI squad, assign domains clearly, and keep humans in the loop without creating bottlenecks.

The team structure

A typical startup squad looks like this:

RoleAgent nameWhat it owns
Founder / CTO(human)Vision, architecture decisions, external comms
Backend lead@backend-botServer code, API design, databases, migrations
Frontend lead@frontend-botWeb UI, mobile views, component library, styling
QA / DevOps lead@qa-botTest coverage, CI/CD, deployments, observability
Docs / Content lead@docs-botUser docs, API docs, changelogs, tutorials
Security / Infra lead@security-botDependency audits, security scans, secrets, access control

Why this works:

  • Each agent is narrow (one codebase, clear domain) so mistakes stay isolated
  • 1–2 humans review, approve, and ship (not waiting for code review from 5 people)
  • Agents can parallelize (backend and frontend work independently)
  • Humans stay on strategy, not unblocking reviews

How to onboard an agent

Step 1: Define the scope

Write a one-page charter for each agent. Example:

Agent: @backend-bot
Domain: server/ (Go backend)

Owns:
- Chi HTTP handlers in server/internal/handler/
- sqlc queries in server/pkg/db/queries/
- PostgreSQL migrations
- API contract tests

Does NOT own:
- Frontend code (belongs to @frontend-bot)
- DevOps / deployment (belongs to @qa-bot)
- Docs (belongs to @docs-bot)

Workflow:
- Assign an issue from the board → agent picks it up
- Agent opens a draft PR (for review)
- @backend-bot author posts in #engineering Slack: "PR #123 ready for review"
- Human reviews within 2–4 hours (async OK)
- Merge when approved

Step 2: Give each agent an MCP server

Each agent needs access to the tools for its domain:

AgentMCP servers / APIsTools
@backend-botGitHub (code), Go CLI, sqlc, PostgreSQLBash, git, Go toolchain
@frontend-botGitHub (code), npm/pnpm, Next.js, TypeScriptBash, npm, Node.js CLI
@qa-botGitHub (CI/CD logs), Docker, kubectl, monitoringBash, docker, CI logs API
@docs-botGitHub (repo), Markdown tools, link checkerBash, grep, curl
@security-botGitHub, npm audit, OWASP ZAP, Snyk APIBash, curl, audit CLIs

Step 3: Create a shared Slack channel

Post a thread with each agent's charter, domain, and current status:

🤖 Engineering Squad
Frontend: @frontend-bot (available) ✅ Last task: Add dark mode
Backend: @backend-bot (available) ✅ Last task: Workspace API pagination
QA/DevOps: @qa-bot (running) 🔄 Last task: Deploy v1.1 to production
Docs: @docs-bot (available) ✅ Last task: API changelog
Security: @security-bot (available) ✅ Last task: npm audit weekly

Task assignment workflow

The 3-step handoff

  1. Human writes the issue (5 minutes)

    Title: Add dark mode toggle to sidebar
    
    Description:
    Users need a way to switch between light and dark themes.
    Store preference in localStorage and sync across tabs.
    Use existing Tailwind dark: variants in packages/ui/.
    
    AC:
    - [ ] Dark mode toggle in sidebar
    - [ ] Respects system preference on first visit
    - [ ] Persists across sessions
    - [ ] All components render in dark mode
    
    Reference: Figma design link
  2. Human assigns to an agent (1 minute)

    • For frontend: assign to @frontend-bot
    • For backend: assign to @backend-bot
    • Unclear? Assign to @orchestrator (meta-agent) for routing
  3. Agent executes end-to-end (1–4 hours)

    • Reads the issue
    • Plans the implementation
    • Opens a draft PR with code
    • Posts in Slack: "Dark mode PR is ready for review → #123"
    • Human reviews, approves, merges

Review SLA

Set expectations upfront:

PR typeReview timeMerge timeAuto-action
Bug fixSame day2–4 hours after approvalNone
Small feature (<100 LOC)4–8 hours1 day after approvalNone
Large feature (>200 LOC)1–2 days2 days after approvalNone
Docs2–4 hoursImmediate after approvalAuto-merge
Dependencies (patch)Same dayImmediate if tests passAuto-merge

Preventing runaway agents

Agents are powerful but need guardrails:

1. Code review is mandatory

  • All agent PRs require human approval before merge
  • Use GitHub branch protection: require 1 approval
  • Humans, not agents, have merge permission

2. Assign one domain per agent

  • Clear boundaries prevent scope creep
  • Agent sticks to its charter (e.g., @frontend-bot doesn't touch server/)
  • If a task spans domains, break it into pieces

3. Watch for mistakes

  • Check agent PRs for:
    • Typos, comment grammar, variable naming
    • Missed test cases or edge cases
    • API contract changes (run parseWithFallback checks)
    • Dependency version pins (avoid accidental major bumps)

4. Roll back gracefully

If an agent merges a bad PR (rare, but happens):

git revert <commit-sha>
git push
# Assign revert to the same agent with context
# Agent learns and doesn't repeat the mistake

5. Pause agents when shipping critical features

Before a major release (v1.0, product launch):

  • Archive agents temporarily (or set to "review-only" mode)
  • Have humans directly review the critical path
  • Resume agents post-launch

Example week in a startup squad

Monday 9 AM: CTO writes 5 issues for the week (dark mode, API pagination, deployment automation, security audit, docs refresh).

Monday 10 AM: Assign to squad:

  • Issue #1 (UI) → @frontend-bot
  • Issue #2 (API) → @backend-bot
  • Issue #3 (DevOps) → @qa-bot
  • Issue #4 (security) → @security-bot
  • Issue #5 (docs) → @docs-bot

Monday 11 AM – Friday 5 PM: Agents work in parallel. Humans review PRs async, 2–4 times per day. Each agent opens 1–3 PRs during the week.

Friday 4 PM: All tasks merged. Agents post in Slack:

✅ Weekly squad recap (2025-06-20)
📊 Stats: 12 PRs, 0 rollbacks, 23 commits

🎯 Shipped:
- Dark mode toggle + system preference detection
- Workspace API pagination (tested with 100k issues)
- Deploy automation (v1.2.0 now deployable via CLI)
- npm audit + security patches (3 CVEs fixed)
- API docs updated + tutorial started

⏳ Next week:
- Mobile dark mode (WIP, high priority)
- Database query optimization
- E2E tests for invite flow

Friday 5:30 PM: CTO writes release notes, tags v1.2.0, ships. Squad gets the weekend off (literally — they're agents, no vacation needed).


Tips & best practices

Agents work for you, not the other way around. If an agent is causing more review overhead than it saves, it's not the right fit. Refocus its domain or retire it temporarily.

Getting started

  • Start with 2 agents — backend and frontend. Learn the workflow.
  • Add 1 per week — QA, then docs, then security. Don't boil the ocean.
  • Monitor agent quality — track PR acceptance rate (target: >90% merged on first try)
  • Weekly retro — spend 15 min Friday to discuss what went well and what to improve

Long-term scaling

  • Agents as mentors — junior humans learn from agent code; it's teaching material
  • Documentation from agents — agents generate docs that humans polish; saves writing time
  • Parallel tracks — 2–3 agents can work on independent features; humans review each
  • Incident response — assign bugs to the agent that owns that domain; they triage 24/7

Team morale

  • Credit agents in PRs and release notes ("Thanks @frontend-bot for the dark mode implementation")
  • Celebrate agent wins in Slack (e.g., "Agent shipped 50 PRs this month!")
  • Be transparent about agent limitations (they can't do design, strategy, or stakeholder comms)
  • Keep humans in the loop on important decisions (don't let agents decide pricing, feature direction, etc.)

Common pitfalls

MistakeWhat goes wrongFix
No code reviewAgents make mistakes that ship to productionRequire human approval always
Vague assignmentsAgent guesses what to do and wastes timeWrite clear ACs in the issue
Too many agents competing for one domainAgents conflict, duplicate work, confusionAssign one agent per domain
Agents never failYou think they're perfect and stop reviewingThey still make ~10% error rate; stay vigilant
Humans rubber-stamp PRsNo actual review happening; defeats the purposeRead the code; ask questions; care