A reusable, stack-generic AI agent pipeline for React Native / Expo projects. Drop it into any project of the same stack, fill in one config file, and get a full orchestrated pipeline of specialised agents — plus native Claude Code subagents.
Self-contained: no third-party CLI. A tiny bundled script (.pipeline/apply.mjs)
distributes the ruleset into each tool's instruction file.
Stack: React Native · Expo · TypeScript · NativeWind · Zustand · Jest · Maestro.
- Pipeline source (
.pipeline/) — the source of truth: role docs (00–90), the base ruleset (AGENTS.md), handoff contracts (dependencies.yml), feedback templates, and a skill.apply.mjscopiesAGENTS.mdinto each AI tool's file (CLAUDE.md,AGENTS.md,.github/copilot-instructions.md,GEMINI.md, …). The role docs are read on demand by the agents. - Native Claude Code subagents (
.claude/agents/) — 8 first-class agents with per-role tools and models, invokable directly and via auto-delegation, with real context isolation for the quality gates (Reviewer, Security).
Project-specific values live in one file, agents.config.yml, which the agents read at
runtime — so the same generic pipeline adapts to each project without editing role files.
aissembly/
├── agents.config.example.yml # ← copy to your project as agents.config.yml
├── pipeline/ # installed into your project as .pipeline/
│ ├── apply.mjs # distributes AGENTS.md into each tool's file (no deps)
│ ├── AGENTS.md # base ruleset (the distributed source)
│ ├── agents/00…90.agent.md # pipeline role definitions
│ ├── dependencies.yml # handoffs, data contracts, pipeline map
│ ├── feedback/ # inter-agent feedback templates
│ ├── skills/ # cross-cutting skills (autonomous-feedback-loop)
│ └── inputs/batches/ # batch template + per-task artifacts
├── claude/
│ ├── agents/ # 8 native subagents (see roster) → .claude/agents/
│ └── mcp.json # MCP servers → project .mcp.json (token via env)
├── scripts/init.mjs · sync.mjs # install / update in a project
└── templates/ # STYLE_GUIDE + DEBUG starters
node /path/to/aissembly/scripts/init.mjs # from your project root
# then: edit agents.config.yml, export FIGMA_API_KEYSee SETUP.md for the full walkthrough.
10 → 20 → 30 → 40 → 50 → 60 → 80 with 70 and 90 running in parallel.
| # | Role | Native agent | Model | Access |
|---|---|---|---|---|
| 10 | Orchestrator | execution-manager |
opus | read/write |
| 20 | Architect | mobile-architect |
opus | read/write + Figma |
| 30 | Developer | mobile-developer |
sonnet | read/write + Figma |
| 40 | Tester | mobile-tester |
sonnet | writes tests only |
| 50 | Reviewer | code-reviewer |
opus | read-only |
| 60 | Release | release-manager |
sonnet | read/write (PR; human merges) |
| 70 | Security | security-auditor |
opus | read-only |
| 80 | Docs | knowledge-gardener |
sonnet | read/write |
00-common-rules is the shared base every role inherits; 90-backend is a stub for
projects with an owned backend. Full handoff contracts are in .pipeline/dependencies.yml.
Everything project-specific is in agents.config.yml (name, bundle id, paths, tracker
prefix, coverage gates, release backends). Secrets are never stored here — they are
referenced by env-var name (e.g. FIGMA_API_KEY), and the Figma/Playwright MCP servers live
in .mcp.json.
After editing .pipeline/AGENTS.md, redistribute it:
node .pipeline/apply.mjsEdit the TARGETS list at the top of .pipeline/apply.mjs to add/remove tool files.
node /path/to/aissembly/scripts/sync.mjs # from your project rootOverwrites .pipeline/ and .claude/agents/; preserves agents.config.yml and .mcp.json.
Review with git diff before committing.
.pipeline/apply.mjs writes the same ruleset for Claude Code, Copilot, Gemini, and any
AGENTS.md-based tool (Codex, Cursor, Amp). Trim the TARGETS list to just the tools you
use. (The native .claude/agents/ are Claude Code-only.)