dev process
Quy trình Phát triển (Dev Process)
QUY TRÌNH PHÁT TRIỂN (DEV PROCESS)
Hiệu lực: 2026-02-08 Phê duyệt: User (Commander) Đồng thuận: Claude (Opus), Gemini, GPT
⚡ CÁC NGUYÊN TẮC TỐI THƯỢNG (SUPREME PRINCIPLES)
-
Local First: Mọi logic BẮT BUỘC chạy thành công trên Local trước. Cloud chỉ để deploy, không để debug. Mục tiêu: tốc độ tối đa, chi phí bằng 0.
-
Assembly First: Lắp ghép trước khi chế tạo. Tận dụng tối đa Block/Flow/Module đã có. Chỉ viết code mới khi không còn mảnh ghép phù hợp.
-
Evidence-Based Verification: Không chấp nhận báo cáo miệng. Mọi Commit/Merge phải có bằng chứng: script test PASS, log thành công, hoặc screenshot. "Chưa thấy Bằng chứng = Chưa làm xong."
QUY TRÌNH 2 NHỊP
Nhịp 1 — Phát triển (liên tục, nhanh)
- Agent sửa code → test local → commit vào feature branch
- Gom nhiều thay đổi liên quan vào cùng 1 branch
- KHÔNG push mỗi commit nhỏ, KHÔNG trigger CI liên tục
- Local verify đủ tiêu chí mới chuyển sang nhịp 2
Chốt chặn Nhịp 1 — Luật "Commit Xanh"
- Trước mỗi commit: bắt buộc chạy
bash scripts/test_mcp_e2e.sh --target=local - Test đỏ → sửa ngay. Chỉ commit khi test xanh.
- Không gom code lỗi vào batch chờ lên Cloud sửa.
Nhịp 2 — Đồng bộ (theo batch, linh hoạt)
- Gom tất cả commits → push 1 lần → tạo PR
- CI chạy 1 lần duy nhất cho cả batch
- Review (mũ Kỹ sư trưởng) → merge → Cloud Run deploy 1 lần
- Batch size linh hoạt, do Claude (điều phối) quyết định
Tiêu chí chuyển Nhịp 1 → Nhịp 2
- Hoàn thành 1 mission trọn vẹn
- Tích lũy đủ 5-10+ commits liên quan
- Cuối ngày làm việc (GH luôn có bản mới nhất)
- Cần production verify cho feature quan trọng
3 CHỐT CHẶN CƯỠNG CHẾ
Agents không cần "nhớ" — hệ thống tự chặn.
| Chốt | Thời điểm | Cơ chế | Chặn gì |
|---|---|---|---|
| Pre-commit Hook | Trước commit | Git hook chạy test --quick | Code lỗi logic |
| CI Pipeline | Sau push | GitHub Actions chạy test --full | Lỗi tương thích, lint |
| Branch Protection | Trước merge | Require CI pass | Code chưa chuẩn vào main |
TIÊU CHUẨN RESILIENT CALLER (Hiệu lực 2026-02-08)
Mọi cuộc gọi đến Cloud Run services và external APIs PHẢI tuân thủ:
- Async-only: Dùng httpx (async), CẤM dùng requests (blocking)
- Retry: Dùng tenacity — 3 retries, exponential backoff 1s/2s/4s, timeout 30s
- Phonebook Pattern: KHÔNG hardcode URLs — đọc từ env vars (SERVICE_{NAME}_URL)
- Health endpoint: Mọi Cloud Run service PHẢI có /health trả chi tiết per-service
- Startup Probe: Mọi Cloud Run service PHẢI cấu hình startup probe gọi /health
- Graceful degradation: Service lỗi → status=degraded, không crash container
Chi tiết: xem Playbook docs/playbooks/resilient-caller-standard.md
LUẬT BỔ SUNG
- Code đi kèm Test: Thêm tính năng = thêm test case
- Cấm deploy thủ công: gcloud run deploy trực tiếp = VI PHẠM
- Sai project = dừng ngay: Chỉ dùng github-chatgpt-ggcloud
- Mission phải có checkpoint: CI xanh → báo cáo → chờ User phê duyệt → mới merge
CÔNG CỤ
Script scripts/test_mcp_e2e.sh:
- --target=local (localhost:8000) | --target=cloud (Cloud Run)
- --quick (< 1 phút, cho pre-commit) | --full (cho CI)
Quy trình merge theo repo
- agent-data-test: 3 bước UNGATE → MERGE → REGATE
- web-test: CI-as-reviewer, gh pr merge --squash --delete-branch