WELIFE Docs Swagger Admin Web

10 — Agent autonomous loop (Cursor)

Mục tiêu: Coding AI làm liên tục theo hàng đợi STUB→IMP: xong 1 WP → tự chuyển WP kế → đến khi queue rỗng hoặc chạm stop-gate. So khớp màn hình / JPG đã cung cấp; sai thì tự sửa; chạy & test local trước khi đánh dấu Done. Không deploy production trong loop này.

Kích hoạt (user nói một trong các câu):

Tắt / dừng:


0. Nguồn sự thật (đọc mỗi vòng)

Thứ tự File Dùng để
0 agent-owner-gate.json OWNER paused / approvedWp — không có duyệt thì dừng
0b agent-wp-catalog.json Catalog chip Dashboard → Agent (AI) → Lưu duyệt
1 09-AGENT-AUDIT-QUEUE.md WP ưu tiên + AC + design JPG
2 docs/references/agent-work-queue.json nextRecommended máy (BE STUB — empty)
2b docs/references/figma-fe-work-queue.json P9 FE · null = DONE_QUEUE → OWNER
3 design-index.md Map JPG → domain
4 LOCAL-TEST.md Smoke + gate local
5 07-ENVIRONMENT.md Ports · Docker · health
6 01-MATRIX-TRACEABILITY.md Cập nhật khi Done
7 Skill image-to-ui UI từ ảnh
npm run infra:up
npm run audit:refresh    # audit + gen queue

1. Vòng lặp chính (bắt buộc)

flowchart TD
  S[Start / resume loop] --> Q[Đọc agent-work-queue.json]
  Q --> E{nextRecommended còn?}
  E -->|Không| Z[STOP: queue rỗng · báo cáo tổng]
  E -->|Có| W[Chọn đúng 1 WP / cặp BE+FE cùng domain]
  W --> D[Read design JPG nếu UI]
  D --> I[Implement theo clone hotels/rentals]
  I --> V[Verify local §3]
  V --> C{Pass?}
  C -->|Không| F[Tự sửa · tối đa 3 vòng fix]
  F --> V
  C -->|Có| U[Cập nhật MATRIX + BACKLOG + audit:refresh]
  U --> R[Báo cáo footer WP vừa xong]
  R --> Q
  F -->|Hết 3 lần fail| X[STOP-GATE: báo lỗi · chờ user]

Một vòng = một Domain. Không gộp pharmacy + medical trong cùng turn implement.


2. Checklist trong một WP

2.1 Trước khi code

2.2 Khi code

2.3 Khi lệch design (tự sửa)

Sai thường gặp Hành động
Thiếu section / CTA trên mockup Thêm đúng hierarchy; không invent feature ngoài ảnh
Sai màu / font “AI generic” Chỉ dùng mobile/src/theme/tokens.ts
Copy Anh / placeholder Đổi đúng chữ Việt trên JPG
List không có empty/loading Thêm state tối thiểu như hotels/rentals
Nav Home không vào màn Wire route + icon domain trên Home

Lặp Read ảnh → diff UI → sửa đến khi khớp đủ AC design (không yêu cầu pixel-perfect 100%, nhưng không thiếu block chính).


3. Verify local (bắt buộc trước Done)

Không đánh IMP nếu chưa chạy được trên máy local.

3.1 Infra + API

npm run infra:up
npm run env:check
# terminal riêng
npm run api:dev
curl -s http://localhost:3000/api/v1/health
curl -s http://localhost:3000/api/v1/health/deps

3.2 Module vừa làm

cd api
npx prisma db push
npx prisma db seed
npm run build
# nếu có test domain: npm test -- <pattern>

Smoke tối thiểu (thay path theo WP):

# ví dụ pharmacy sau IMP
curl -s "http://localhost:3000/api/v1/pharmacy/stores/nearby?lat=10.7769&lng=106.7009"
# Swagger: http://localhost:3000/docs — tag không còn stub description

3.3 FE (khi có WP-FE-*)

npm run mobile:start
# Kiểm tra: mở màn từ Home → list → detail → action chính không crash

3.4 Audit

npm run audit:refresh
# Tag vừa làm: stub ops = 0 (hoặc PARTIAL có ghi rõ trong MATRIX)

Chi tiết smoke toàn hệ: LOCAL-TEST.md.


4. Định nghĩa Done → chuyển task

Chỉ khi tất cả đúng:

  1. AC trong 09 §3 (hoặc backlog) đã tick
  2. Local verify §3 PASS
  3. 01-MATRIX + 05-PHASE-BACKLOG cập nhật Status IMP
  4. npm run audit:refresh · nextRecommended trỏ WP khác (hoặc rỗng)
  5. Footer báo cáo:
Domain: D-…
WP: WP-… (+ WP-FE-… nếu có)
Surfaces: CON|PAR|…
Status: IMP
Local: PASS (health + smoke + audit)
Next: <nextRecommended hoặc DONE_QUEUE>

Ngay sau đó (nếu user đã bật autonomous): đọc lại queue → bắt đầu WP kế không hỏi lại, trừ khi stop-gate.


5. Stop-gate (bắt buộc dừng, báo user)

Điều kiện Hành động
User nói dừng / stop / pause Dừng ngay; giữ WIP; báo WP đang dở
Cùng 1 WP fail verify 3 lần liên tiếp Dừng; log lỗi; không nhảy WP khác che giấu bug
Cần secret / key / tài khoản ngoài (SMS prod, payment live) Dừng; dùng MOCK / .env.example
Xung đột git lớn / mất data Dừng; không reset --hard / force push
Task ngoài queue (refactor toàn repo) Từ chối; chỉ làm theo 09
Dashboard / infra cloud chưa được user bật trong session Skip WP đó, ghi SKIPPED, lấy WP kế chỉ nếu user đã cho phép skip; mặc định dừng hỏi

6. Giới hạn an toàn session

Limit Mặc định Ghi chú
Max WP / session autonomous 3 Sau 3 WP Done → tóm tắt + hỏi user tiếp tục
Max fix vòng / WP 3 Sau đó stop-gate
Scope file Trong path queue be/fe + docs MATRIX/BACKLOG Không refactor xuyên domain
Commit / PR Chỉ khi user yêu cầu Loop không tự commit
Push remote Không bao giờ trong loop

User có thể nói unlimited loop để bỏ cap 3 WP/session (vẫn giữ stop-gate §5).


7. Báo cáo giữa các WP (ngắn)

Sau mỗi WP Done, trước khi sang WP kế, ghi ≤10 dòng:

  1. WP vừa xong + Status IMP
  2. File chính đụng (3–8 path)
  3. Lệnh local đã PASS
  4. Lệch design đã sửa (nếu có)
  5. Next: WP-…

Không viết essay; không nhắc lại toàn bộ kế hoạch.


8. Prompt kích hoạt (copy vào Cursor Agent)

Chế độ: AUTONOMOUS LOOP theo docs/10-AGENT-AUTONOMOUS-LOOP.md

1. Đọc docs/09-AGENT-AUDIT-QUEUE.md + docs/references/agent-work-queue.json
2. Làm nextRecommended (một Domain/WP mỗi vòng)
3. UI: Read JPG trong design-index / queue; skill image-to-ui; sai thì tự sửa
4. Clone hotels/rentals; bỏ stub(); seed; nearbyPostgis nếu cần
5. Verify local: infra + health + prisma + build + smoke endpoint + audit:refresh
6. Cập nhật 01-MATRIX + 05-PHASE-BACKLOG khi IMP
7. Báo cáo footer → tự chuyển WP kế (tối đa 3 WP/session trừ khi tôi nói unlimited loop)
8. Gặp stop-gate §5 thì dừng và báo rõ

Bắt đầu ngay từ nextRecommended. Không hỏi lại trừ stop-gate.

Biến thể một WP rồi dừng: thêm dòng Chỉ làm 1 WP rồi pause.

Biến thể chỉ FE polish theo ảnh: Chỉ WP-FE-* · so ảnh · không đổi contract BE trừ bug block.


9. Mapping lệnh user → hành vi agent

User nói Agent làm
tiếp 1 WP từ queue (đã có rule agent-queue)
chạy autonomous / làm đến hết Loop §1 · cap 3 WP
unlimited loop Loop không cap 3 (vẫn stop-gate)
dừng Pause; không bắt WP mới
sửa theo ảnh … image-to-ui + self-fix; không nhảy vertical khác
test local Chỉ §3 + LOCAL-TEST; không code feature mới

10. Liên kết

File Vai trò
09-AGENT-AUDIT-QUEUE Queue + AC + prompt từng WP
03-AI-WORKFLOW Luồng WP đơn
LOCAL-TEST Smoke đầy đủ
AGENTS.md Entry agent
.cursor/rules/agent-queue.mdc Gate «tiếp»
.cursor/rules/agent-autonomous-loop.mdc Gate autonomous
npm run audit:refresh Cập nhật queue máy