🎼 Tutorial: Symphony orchestrate 3 repo (API + Web + Mobile RN), ship feature trong 1 ngày

🎼 Tutorial: Symphony orchestrate 3 repo (API + Web + Mobile RN), ship feature trong 1 ngày

Bạn từng đau đầu khi 1 feature phải đụng cả backend API, web appmobile React Native, mỗi repo 1 dev rồi chờ nhau cả tuần? Với OpenAI Symphony, bạn có thể parallel hóa 3 repo và ship trong 1 ngày.

🧩 Bối cảnh và tính năng ví dụ

Team SME có 3 repo: backend-api (NestJS), web-app (Next.js), mobile-app (RN + Expo). Cần build feature upload avatar:

  • Backend: POST /api/users/me/avatar trả về S3 presigned URL, validate MIME và size 5MB
  • Web: Settings page với drag-drop, crop preview, optimistic UI
  • Mobile: expo-image-picker, FormData PUT, progress bar, retry on fail

Bài toán: làm sao 3 phần code song song mà không break contract?

⚙️ Setup WORKFLOW.md trong 3 repo

Clone github.com/openai/symphony, đọc SPEC.md. Trong mỗi repo, tạo file WORKFLOW.md định nghĩa:

  • Tools agent được dùng: pnpm test, pnpm typecheck, eas build --profile preview
  • Branch naming: symphony/AVATAR-1
  • Test command, lint, deploy preview
  • PR template kèm checklist contract API

Commit vào main mỗi repo. Đầu tư 1 ngày setup tiết kiệm hàng tuần sau đó.

📋 Tạo Epic + 3 sub-ticket trên Linear

Cài Symphony Elixir reference impl, connect Linear API token + GitHub PAT cho 3 repo. Symphony poll Linear board, mỗi ticket có label symphony sẽ spawn 1 agent.

Tạo Epic AVATAR: User profile photo upload với 3 sub-ticket:

  1. [backend-api] AVATAR-1: POST endpoint với S3 presigned URL, response {uploadUrl, key, expiresAt}
  2. [web-app] AVATAR-2: Settings page upload UI (depends on AVATAR-1)
  3. [mobile-app] AVATAR-3: RN avatar picker + upload (depends on AVATAR-1)

Dán API contract chi tiết vào description từng ticket. Spec càng rõ, agent càng làm đúng.

🔄 API contract first và parallel execution

Đây là bước critical. Cho AVATAR-1 chạy TRƯỚC (1 agent backend). Khi backend merge PR + push OpenAPI spec lên npm package @yourorg/api-types, Symphony tự động unblock AVATAR-2 và AVATAR-3.

Sau đó 2 agent (web + mobile) spawn cùng lúc, mỗi agent workspace riêng. Cả 2 import types từ @yourorg/api-types để type-safe end-to-end. Web test với msw, mobile mock fetch.

Khác biệt lớn nhất so với cách cũ: thay vì tuần tự, bạn có 3 agent parallel.

📦 Review packet và merge

Mỗi agent submit review packet đầy đủ:

  • PR link với CI status (test/lint/build)
  • Walkthrough video Symphony tự generate
  • Complexity analysis (cyclomatic, lines changed)
  • Risk flags (security, breaking change)

CTO review 3 PR cùng lúc, merge theo thứ tự: backend → web → mobile. Tuyệt đối KHÔNG cho agent quyền merge tự động.

💡 Tips bảo mật và ROI thực tế

ROI rõ ràng:

  • Trước Symphony: 3 dev × 2 ngày = 6 person-days
  • Với Symphony: 1 dev oversight × 1 ngày = ~1 person-day
  • Tiết kiệm 80%+, throughput x3-5 lần

Tips cho team Việt:

  • Bắt đầu với feature CRUD đơn giản, đừng thử auth/payment ngay
  • Khi agent stuck: bug thường ở ticket spec mơ hồ, không phải agent
  • Track Codex API usage qua dashboard, set rate limit
  • Bảo mật: GitHub App permission tối thiểu, không cấp prod credential
  • Optional: GitHub Codespaces làm sandbox riêng cho mỗi agent

Sau 2 tuần, team 5-10 dev ship feature 3-repo với throughput x3-5 lần. Dev tập trung architecture và review thay vì gõ code repetitive.

Anh em đang setup AI dev workflow thế nào? Có ai thử Symphony hoặc tự build orchestrator chưa? Comment chia sẻ stack nhé!

#OpenAISymphony #Codex #ReactNative #AICoding #VibeAICoder

Bài viết liên quan

🎼 Tutorial: Symphony orchestrate 3 repo (API + Web + Mobile RN), ship feature trong 1 ngày | Vibe AI Coder