@leejungkiin/awkit 1.3.4 → 1.3.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,13 +4,13 @@ description: |
4
4
  Mandatory Symphony checkpoint system. Ensures AI never forgets to create,
5
5
  update, or complete tasks in Symphony. Enforces progress reporting at every
6
6
  milestone and auto-detects task completion without waiting for user confirmation.
7
- v3.4: Kiro Spec Integration, Completion Status Protocol, Search-Before-Building, Boil-the-Lake.
7
+ v3.5: UI-First Three-Phase Execution with User Test Checkpoints.
8
8
  metadata:
9
9
  stage: core
10
- version: "3.4"
11
- replaces: "v3.3"
10
+ version: "3.5"
11
+ replaces: "v3.4"
12
12
  requires: symphony-orchestrator
13
- tags: [symphony, enforcement, checkpoint, task-lifecycle, core, spec-first, auto-next, kiro]
13
+ tags: [symphony, enforcement, checkpoint, task-lifecycle, core, spec-first, auto-next, kiro, ui-first, user-test]
14
14
  agent: Symphony Enforcer
15
15
  allowed-tools:
16
16
  - symphony_create_task
@@ -24,17 +24,14 @@ invocation-type: auto
24
24
  priority: 1
25
25
  ---
26
26
 
27
- # Symphony Enforcer v3.4Kiro Spec Integration + Completion Status Protocol
27
+ # Symphony Enforcer v3.5UI-First Three-Phase Execution + User Test Checkpoints
28
28
 
29
29
  > **Purpose:** Đảm bảo AI KHÔNG BAO GIỜ quên cập nhật Symphony.
30
- > **Key Changes v3.4:**
31
- > - **Kiro Spec Integration**: Auto-detect `.kiro/specs/`load specs + import tasks
32
- > - **Completion Status Protocol**: 4-status (DONE/DONE_WITH_CONCERNS/BLOCKED/NEEDS_CONTEXT)
33
- > - **Design Compliance (TP1.5)**: Đối chiếu schema changes vs approved design doc
34
- > - **Pre-Plan Gate**: Đọc spec trước khi plan, hỏi user về constraints
35
- > - **Auto-Lifecycle**: Liên kết task_boundary ↔ Symphony tự động
36
- > - **Auto-Next**: BẮT BUỘC gợi ý next steps sau mỗi task done
37
- > - **Atomic Git Commits**: Tự động commit sau mỗi task done
30
+ > **Key Changes v3.5:**
31
+ > - **Gate 4 Three-Phase Execution**: Phase A (Infra) Phase B (UI Shell + User Test) → Phase C (Logic + User Test)
32
+ > - **TP1.7: User Test Checkpoint**: Trigger dừng lại cho user test trên device thật
33
+ > - **UI-First Task Ordering**: UI tasks PHẢI đi trước logic tasks trong Symphony
34
+ > - Kế thừa tất cả features v3.4 (Kiro, Completion Status, Design Compliance).
38
35
  > **Principle:** AI tự detect completion — user KHÔNG CẦN nói "xong".
39
36
 
40
37
  ---
@@ -137,7 +134,7 @@ KHÔNG được bắt đầu work cho đến khi TẤT CẢ steps ✅.
137
134
 
138
135
  ---
139
136
 
140
- ## Auto-Lifecycle: task_boundary ↔ Symphony (NEW v3.0)
137
+ ## Auto-Lifecycle: task_boundary ↔ Symphony (v3.5)
141
138
 
142
139
  ```
143
140
  LIÊN KẾT TỰ ĐỘNG:
@@ -145,6 +142,12 @@ LIÊN KẾT TỰ ĐỘNG:
145
142
  - task_boundary(EXECUTION) → symphony_report_progress(40%)
146
143
  - task_boundary(VERIFICATION) → symphony_report_progress(80%)
147
144
  - notify_user(BlockedOnUser=false) → TRIGGER TP2 (completion check)
145
+
146
+ THREE-PHASE MAPPING (Gate 4 — COMPLEX tasks với UI):
147
+ - Phase A done (build OK) → report_progress(25%) + checkpoint build
148
+ - Phase B done (UI mock) → report_progress(45%) + TRIGGER TP1.7 (User Test)
149
+ - Phase C per-feature done → report_progress(50-85%) + TRIGGER TP1.7 (User Test)
150
+ - Phase C all features done → report_progress(90%) → Gate 5
148
151
  ```
149
152
 
150
153
  AI PHẢI giữ `current_task_id` xuyên suốt session.
@@ -152,6 +155,113 @@ Mỗi lần gọi `task_boundary` với mode mới → đồng thời report pro
152
155
 
153
156
  ---
154
157
 
158
+ ## 🚨 Three-Phase Auto-Enforcement Protocol (BẮT BUỘC — v3.5)
159
+
160
+ > **Vấn đề:** AI không tự chủ động dùng Three-Phase nếu không bị ép.
161
+ > **Giải pháp:** Auto-detect + auto-announce + auto-enforce.
162
+
163
+ ### Phase State Tracking
164
+
165
+ AI PHẢI duy trì trạng thái phase hiện tại xuyên suốt Gate 4:
166
+
167
+ ```
168
+ current_phase = "A" | "B" | "C" | "none"
169
+ phase_b_confirmed = false | true
170
+ checkpoint_count = 0
171
+ ```
172
+
173
+ ### Auto-Detection: Khi nào kích hoạt Three-Phase?
174
+
175
+ Tại đầu Gate 4 (EXECUTION bắt đầu), AI PHẢI tự kiểm tra:
176
+
177
+ ```
178
+ 1. Task được triage là COMPLEX?
179
+ 2. Task có UI component? (detect qua):
180
+ → Symphony task title chứa: screen, view, UI, layout, dashboard, form
181
+ → Implementation plan mentions: Composable, Fragment, Activity, Screen, View
182
+ → Design doc tồn tại (docs/design/ hoặc docs/architecture/ có UI sections)
183
+ → Spec references: wireframe, mockup, screenshot
184
+ → Platform: Android/iOS/React Native/Flutter (hầu hết có UI)
185
+
186
+ Nếu CẢ HAI điều kiện thỏa:
187
+ → BẮT BUỘC kích hoạt Three-Phase
188
+ → Hiển thị Phase Announcement Block
189
+ ```
190
+
191
+ ### Phase Announcement Block (BẮT BUỘC)
192
+
193
+ Khi kích hoạt Three-Phase, AI PHẢI hiển thị:
194
+
195
+ ```
196
+ 🎯 THREE-PHASE EXECUTION ACTIVATED
197
+ ══════════════════════════════════════
198
+ 🏗️ Phase A: Infrastructure Setup
199
+ → {list tasks for Phase A}
200
+ 🎨 Phase B: UI Shell (Mock Data)
201
+ → {list tasks for Phase B}
202
+ → 🧪 USER TEST sau phase này
203
+ ⚡ Phase C: Logic Integration
204
+ → {list tasks for Phase C}
205
+ → 🧪 USER TEST mỗi feature
206
+ ══════════════════════════════════════
207
+ Bắt đầu Phase A...
208
+ ```
209
+
210
+ ### Phase Transition Triggers (TỰ ĐỘNG)
211
+
212
+ AI PHẢI tự động phát hiện khi chuyển phase:
213
+
214
+ ```yaml
215
+ auto_triggers:
216
+ phase_a_to_b:
217
+ signal: Tất cả [INFRA] tasks đã done + build OK
218
+ action: |
219
+ - Announce: "🏗️ Phase A ✅ — Build thành công. Chuyển sang Phase B (UI Shell)."
220
+ - Set current_phase = "B"
221
+ - Bắt đầu code UI tasks
222
+
223
+ phase_b_to_checkpoint:
224
+ signal: Tất cả [UI] tasks đã done
225
+ action: |
226
+ - ⛔ DẪNG CODE NGAY LẬP TỨC
227
+ - TRIGGER TP1.7 (User Test Checkpoint)
228
+ - CHỊ user confirm "✅ OK" trước khi làm bất cứ gì khác
229
+ - KHÔNG được tự ý skip bước này
230
+
231
+ checkpoint_to_phase_c:
232
+ signal: User confirmed "✅" hoặc "OK"
233
+ action: |
234
+ - Set phase_b_confirmed = true
235
+ - Set current_phase = "C"
236
+ - Announce: "🎨 Phase B ✅ — UI đã được duyệt. Chuyển sang Phase C (Logic)."
237
+ - Bắt đầu code [LOGIC] tasks
238
+
239
+ phase_c_per_feature:
240
+ signal: 1 feature [LOGIC] đã done + có UI impact
241
+ action: |
242
+ - TRIGGER TP1.7 (mini checkpoint)
243
+ - Batch các features nhỏ lại nếu có thể
244
+ ```
245
+
246
+ ### Enforcement Rules
247
+
248
+ ```
249
+ ❌ VI PHạM NẶNG:
250
+ - Code logic (Phase C) khi phase_b_confirmed = false
251
+ - Skip Phase Announcement Block
252
+ - Code UI và Logic lẫn lộn trong cùng 1 lượt (phải tách rõ phase)
253
+ - Tự giả vờ user confirm để skip checkpoint
254
+ - Không hiển thị Phase Announcement khi Three-Phase activated
255
+
256
+ ✅ BẮT BUỘC:
257
+ - Luôn announce phase transition rõ ràng
258
+ - Luôn tạo hướng dẫn test CỤ THỂ (không chung chung)
259
+ - Luôn dùng notify_user(BlockedOnUser=true) cho checkpoints
260
+ - Ghi lại phase state vào NeuralMemory khi chuyển phase
261
+ ```
262
+
263
+ ---
264
+
155
265
  ## Trigger Points
156
266
 
157
267
  ### TP1: Progress Milestone
@@ -171,13 +281,16 @@ symphony_report_progress(
171
281
  )
172
282
  ```
173
283
 
174
- **Progress Guide:**
284
+ **Progress Guide (Three-Phase Model):**
175
285
  ```
176
286
  10% — Task created, đang research/đọc code
177
- 25% — Implementation plan approved
178
- 40% — Bắt đầu code changes
179
- 60% — Code changes xong, đang test
180
- 80% — Tests pass, đang verification
287
+ 20% — Implementation plan approved
288
+ 25% — Phase A done (build OK, dependencies ready)
289
+ 30% — Phase B bắt đầu (UI shell coding)
290
+ 45% — Phase B done → USER TEST CHECKPOINT #1 (UI review)
291
+ 50% — Phase C bắt đầu (logic integration)
292
+ 50-85% — Phase C per-feature (each feature = +5-10%)
293
+ 85% — Phase C done, đang final verification
181
294
  90% — Walkthrough/docs tạo xong
182
295
  100% — Hoàn thành (auto-trigger TP2)
183
296
  ```
@@ -229,6 +342,80 @@ File patterns:
229
342
 
230
343
  ---
231
344
 
345
+ ### TP1.7: User Test Checkpoint (NEW v3.5 — Gate 4 Three-Phase)
346
+
347
+ **Khi nào:** Trigger ở 2 thời điểm chính trong Gate 4:
348
+
349
+ 1. **Phase B → C Transition (BẮT BUỘC cho COMPLEX):**
350
+ - ALL UI screens đã code xong với mock data
351
+ - Navigation hoạt động full flow
352
+ - App build và chạy OK trên emulator/device
353
+
354
+ 2. **Sau mỗi feature trong Phase C (COMPLEX tasks):**
355
+ - Feature X đã thay mock bằng real data
356
+ - Feature works end-to-end trên device
357
+
358
+ **Điều kiện kích hoạt:**
359
+ ```
360
+ COMPLEX + có UI component → BẮT BUỘC TP1.7
361
+ MODERATE + có UI component → OPTIONAL (recommend cho hardware features: camera, GPS, sensors)
362
+ TRIVIAL → SKIP
363
+ Backend-only tasks → SKIP
364
+ ```
365
+
366
+ **Action:**
367
+ ```
368
+ 1. Report progress trước: symphony_report_progress(current_task, progress)
369
+
370
+ 2. Present User Test Checkpoint:
371
+
372
+ 🧪 USER TEST CHECKPOINT #{N}
373
+ ══════════════════════════════════════
374
+ 📱 Phase: {B|C} — {phase_name}
375
+ 📋 Đã code xong: {summary of completed work}
376
+ 📁 Files changed: {N} files
377
+
378
+ 🔍 Hướng dẫn test:
379
+ 1. {step 1 — cụ thể, actionable}
380
+ 2. {step 2 — expected behavior}
381
+ 3. {step 3 — edge case to check}
382
+
383
+ ⏳ Anh test xong reply:
384
+ ✅ OK — tiếp tục
385
+ ⚠️ Issue: {mô tả} — tôi sẽ fix trước khi đi tiếp
386
+ ══════════════════════════════════════
387
+
388
+ 3. Gọi notify_user(BlockedOnUser=true) — DỪNG và CHỜ user response
389
+
390
+ 4. User response handling:
391
+ → "OK" / "✅" → Tiếp tục phase tiếp / feature tiếp
392
+ → "Issue: ..." → Fix issue → re-run checkpoint
393
+ → "Skip" → Ghi note concern, tiếp tục (DONE_WITH_CONCERNS later)
394
+ ```
395
+
396
+ **Test Guidance Generation:**
397
+ ```
398
+ AI PHẢI tạo hướng dẫn test CỤ THỂ cho từng checkpoint:
399
+
400
+ Phase B Examples (UI):
401
+ - "Mở app → bấm tab Health → xem Dashboard có hiển thị 4 cards không?"
402
+ - "Quay ngang màn hình → layout có bể không?"
403
+ - "Bấm nút Camera → xem preview có xuất hiện không?"
404
+
405
+ Phase C Examples (Logic):
406
+ - "Mở Health Dashboard → data thật có load lên không? (nếu có wifi)"
407
+ - "Chụp ảnh thức ăn → kết quả AI có trả về trong 5s không?"
408
+ - "Bấm Save → quay lại list → record mới có xuất hiện không?"
409
+ ```
410
+
411
+ **Enforcement:**
412
+ - ❌ KHÔNG được chuyển từ Phase B → Phase C mà chưa có user confirm (COMPLEX)
413
+ - ❌ KHÔNG được skip checkpoint cho hardware-related features (Camera, GPS, Sensors)
414
+ - ✅ NÊN batch các features nhỏ lại thành 1 checkpoint (tránh quá nhiều interrupt)
415
+ - ✅ Checkpoint cho logic KHÔNG cần nếu feature là pure-backend/invisible
416
+
417
+ ---
418
+
232
419
  ### TP2: Task Complete — Completion Status Protocol
233
420
 
234
421
  **Khi nào:** AI detect ≥2/4 completion signals:
@@ -470,3 +657,5 @@ Nếu completed:
470
657
  - Spec alignment tránh plan bị lệch khỏi project constraints
471
658
  - Atomic commits giúp rollback chính xác — 1 task = 1 commit (learned from GSD)
472
659
  - KHÔNG auto-push — chỉ commit local, push cần user confirm
660
+ - Three-Phase WORKS vì AI CHỦ ĐỘNG announce — không chờ user gọi (learned from FitWitness v12.3)
661
+ - User test sớm bắt lỗi sớm — code logic trên UI sai = double wasted (learned from FitWitness v12.3)
@@ -30,29 +30,29 @@ priority: 2
30
30
  KHÔNG CÓ NGOẠI LỆ:
31
31
  - 1 Dự án = 1 Trello Card (KHÔNG tạo card mới cho mỗi task).
32
32
  - **Mô tả Card (Description)** BẮT BUỘC phải được update chứa cái nhìn tổng thể về dự án (Mục tiêu, Tech Stack, Tình trạng chung) để Quản lý dễ nắm bắt.
33
- - Tiến độ = Checklist Items trên card dự án. CHỈ ghi lại các task mức High-level / Module / Tính năng lớn.
34
- - KHÔNG BAO GIỜ đồng bộ từng sub-task chi tiết (từ file `.kiro/specs/tasks.md` hay Symphony) thành checklist item trên Trello, làm vậy sẽ gây rác board (spam).
33
+ - **Trello (PM View) vs Kiro (Dev View):** Trello màn hình dành cho Quản (PM, QC), còn `.kiro/specs/tasks.md` nơi để AI/Dev làm việc. Hai khái niệm này hoàn toàn khác nhau.
34
+ - [QUAN TRỌNG] Checklist Items trên Trello = ĐẦU VIỆC NGHIỆP VỤ (Business Features). VD: "Màn hình Đăng Nhập", "Chức năng AI Chat", "Tích hợp Thanh Toán".
35
+ - ⛔ TUYỆT ĐỐI CẤM đưa các GIAI ĐOẠN QUY TRÌNH (Process Gates) vào Checklist Items. KHÔNG CÓ CÁC MỤC NHƯ: "Tài liệu", "Thiết kế Giao diện", "Gate 1", "Phase 2", "App Scaffolding".
36
+ - PM KHÔNG QUAN TÂM ĐẾN QUY TRÌNH GATE CỦA AI. Progress qua các Gate (Gate 1, Gate 2...) CHỈ ĐƯỢC BÁO CÁO qua Comment.
37
+ - KHÔNG BAO GIỜ bứng nguyên các task kỹ thuật chi tiết (VD: "Tạo file `BloodPressureViewModel.kt`") lên Trello. CẤM ĐỒNG BỘ (bulk-sync) raw `tasks.md` sang Trello.
38
+ - BẮT BUỘC ĐỒNG BỘ TOÀN BỘ DANH SÁCH NGHIỆP VỤ TỔNG HỢP (Features): Chờ đến khi Đặc tả kỹ thuật (Specs) đã có rõ các tính năng, AI mới parse ra các Features thành các Checklist Items để Quản lý (PM) có thể thấy trọn vẹn scope.
35
39
  - Card KHÔNG di chuyển giữa lists (list = team member, cố định).
36
- - Comment ở milestone quan trọng PHẢI bao gồm các quyết định kỹ thuật cốt lõi hoặc nguyên nhân gốc rễ, không chỉ ghi "Done" chung chung.
37
- - Comment chỉ ở milestone quan trọng, KHÔNG spam.
38
- - KHÔNG ĐƯỢC sinh script file python/bash (VD: `trello_sync_kiro.py`) để đồng bộ hàng loạt (bulk sync) từ file markdown lên Trello.
40
+ - Comment ở milestone quan trọng PHẢI bao gồm các quyết định cốt lõi hoặc sự thay đổi phase (VD: "Đã hoàn thành Gate 2 Design", "Bắt đầu code Logic").
39
41
  ```
40
42
 
41
43
  ---
42
44
 
43
45
  ## 🔐 Auth & Config
44
46
 
45
- Bảo mật: API Key Token được lưu tại Global, cấu hình dự án (Board/List/Card) lưu tại Local.
47
+ Credentials được lưu dưới dạng **environment variables** (`TRELLO_KEY`, `TRELLO_TOKEN`) trong shell profile (`~/.zshrc` hoặc `~/.bashrc`). Cấu hình dự án (Board/List/Card) lưu tại `.trello-config.json` ở root mỗi dự án.
46
48
 
47
- ### 1. Global Credentials (đặt tại `~/.gemini/antigravity/credentials/trello.json`)
48
- ```json
49
- {
50
- "api_key": "YOUR_TRELLO_API_KEY",
51
- "api_token": "YOUR_TRELLO_API_TOKEN"
52
- }
53
- ```
49
+ ### 1. Global Credentials (Environment Variables)
54
50
 
55
- ### 2. Local Project Config (đặt file `.trello-config.json` tại root mỗi dự án)
51
+ User setup lần đầu qua **interactive wizard** khi chạy `awkit init`:
52
+ - CLI tự hỏi API Key → tạo link authorize token → hỏi Token → lưu vào `~/.zshrc`.
53
+ - Nếu user đã setup rồi, CLI tự skip bước này.
54
+
55
+ ### 2. Local Project Config (`.trello-config.json` tại root dự án)
56
56
  ```json
57
57
  {
58
58
  "board": "Appdexter - Code Magic",
@@ -67,9 +67,21 @@ Bảo mật: API Key và Token được lưu tại Global, cấu hình dự án
67
67
  | `list` | Tên list chứa card (= team member đang phụ trách) |
68
68
  | `card` | Tên card dự án (phải khớp chính xác trên Trello) |
69
69
 
70
+ ### 🔄 Credential Auto-Recovery (BẮT BUỘC cho AI)
71
+
72
+ Khi `awkit trello` báo **"Trello credentials not found"**, AI PHẢI thực hiện:
73
+
74
+ ```text
75
+ Lần 1: chạy `source ~/.zshrc` → retry lệnh awkit trello
76
+ Lần 2: chạy `source ~/.zshrc` → retry lệnh awkit trello
77
+ Lần 3 (vẫn lỗi): báo user "Trello chưa được cấu hình. Vui lòng chạy awkit init để setup lại."
78
+ ```
79
+
80
+ > ⚠️ KHÔNG được tự tạo script, tự inject biến, hay tự sửa file `.zshrc`. CHỈ dùng `source` và `awkit init`.
81
+
70
82
  ### Tự Động Hóa Qua `awkit trello` (BẮT BUỘC)
71
83
 
72
- AI không cần tự inject ENV hay tìm kiếm cấu hình. Công cụ lệnh `awkit trello` v1.3.0+ sẽ TỰ ĐỘNG đọc từ Global ConfigLocal Config để thực thi nhanh chóng. MỌI thao tác Trello phải đi qua `awkit trello`.
84
+ AI không cần tự inject ENV hay tìm kiếm cấu hình. Công cụ lệnh `awkit trello` v1.3.0+ sẽ TỰ ĐỘNG đọc từ env vars`.trello-config.json`. MỌI thao tác Trello phải đi qua `awkit trello`.
73
85
  ---
74
86
 
75
87
  ## 📚 Command Reference
@@ -114,21 +126,23 @@ Mỗi Card chứa:
114
126
 
115
127
  ### TP1: 🚀 Start Task / Start Project (Description + Checklist)
116
128
 
117
- **Khi nào:** AI bắt đầu project mới hoặc làm task lớn mới (claim Symphony task).
129
+ **Khi nào:** AI bắt đầu project mới, hoặc chuẩn bị triển khai Specs đã chốt (Gate 3/Gate 4).
130
+ *(Lưu ý: Không tạo Checklist Items các phase "Gate 1", "Gate 2" - lúc này chỉ dùng Comment hoặc Update Description thôi).*
118
131
 
119
132
  **Action:**
120
133
  ```bash
121
134
  # Update Card Description với thông tin cực kỳ rõ ràng cho Quản lý (PM) dự án
122
135
  awkit trello desc "**Trạng thái:** Đang phát triển. **Công nghệ:** Kotlin, Jetpack Compose, Room. **Tiến độ hiện tại:** ... (Tóm tắt sơ lược)"
123
136
 
124
- # 1. Tạo checklist (nếu cần, dụ Sprint)
125
- awkit trello checklist "Sprint 2026-03"
137
+ # 1. Tạo checklist dựa trên Module/Epic Nghiệp vụ thực tế
138
+ awkit trello checklist "Module: Xác thực Người Dùng"
126
139
 
127
- # 2. Thêm item mới vào checklist
128
- awkit trello item "Feature: Login Flow"
140
+ # 2. Thêm item mới vào checklist (Tuyệt đối KHÔNG ĐẶT TÊN theo Gate/Phase/Scaffolding)
141
+ awkit trello item "Đăng nhập bằng Google"
142
+ awkit trello item "Hồ sơ Người Dùng"
129
143
 
130
- # 3. Comment báo bắt đầu
131
- awkit trello comment "🤖 AI bắt đầu: Login Flow | Symphony: #sym-XXX"
144
+ # 3. Comment thông báo cập nhật tiến trình hoặc trạng thái Agent
145
+ awkit trello comment "🤖 AI bắt đầu: Xây dựng giao diện Đăng Nhập | Symphony: #sym-XXX"
132
146
  ```
133
147
 
134
148
  ---
@@ -157,26 +171,35 @@ awkit trello block "API 500 on /auth/login. Cần Backend check."
157
171
 
158
172
  ### TP4: ✅ Task Done (Đánh dấu Item Complete)
159
173
 
160
- **Khi nào:** Task hoàn thành, verification pass.
174
+ **Khi nào:** Toàn bộ cụm Tính năng Nghiệp vụ (Epic/Feature bao gồm nhiều sub-tasks) đã hoàn thành sẵn sàng test.
175
+ *(Lưu ý: Không check item nếu chỉ mới xong 1 task code con lập trình)*
161
176
 
162
177
  ```bash
163
- # 1. Đánh dấu checklist item ✅
164
- awkit trello complete "Feature: Login Flow"
178
+ # 1. Đánh dấu checklist item đại diện cho tính năng
179
+ awkit trello complete "Đăng nhập bằng Google"
165
180
 
166
181
  # 2. Comment kết quả
167
- awkit trello comment "✅ DONE: Login Flow | Commit: #$(git rev-parse --short HEAD)"
182
+ awkit trello comment "✅ DONE Feature: Đăng nhập bằng Google | Commit: #$(git rev-parse --short HEAD)"
168
183
  ```
169
184
 
170
185
  ---
171
186
 
172
- ## 🔗 Symphony Integration
187
+ ## 🔗 Symphony Integration (NGUYÊN TẮC: Nhiều Task Code -> 1 Trello Feature)
188
+
189
+ ⚠️ **CHÚ Ý CỰC KỲ QUAN TRỌNG:** KHÔNG MAP 1:1 TỪ SYMPHONY SANG TRELLO CHECKLIST!
190
+ Trong Symphony có thể có 50 task nhỏ (VD: Tạo View, Viết API, Sửa CSS). Trello chỉ có 5 Checklist Items lớn (VD: Chức năng Đăng nhập, Profile, Thanh toán).
191
+ Do đó: **CẤM** gọi `awkit trello item` mỗi khi claim 1 task con từ Symphony. Nếu làm vậy Trello sẽ biến thành bãi rác toàn các task code lặt vặt.
192
+
193
+ **Cách Sync Đúng:**
194
+ - Thiết lập Checklist Items ngay từ đầu dựa trên Spec tổng.
195
+ - Khi code từng phân hệ con, ĐỪNG sinh ra checklist mới.
173
196
 
174
197
  | Symphony Event | Trello Action |
175
198
  |----------------|---------------|
176
- | `symphony_claim_task` | Thêm checklist item (incomplete) + Comment start |
199
+ | `symphony_claim_task` | **CHỈ** Comment báo tiến độ: "Đang xử lý code: [Task]..." |
177
200
  | `symphony_report_progress` | Comment milestone |
178
201
  | Task BLOCKED | Label "Blocked" + Comment |
179
- | `symphony_complete_task` | Mark item complete + Comment result |
202
+ | `symphony_complete_task` | **CHỈ** Comment: "Xong code task [Task]." *(Tùy chọn: nếu feature lớn xong 100%, mới call `complete` cho item chính)* |
180
203
 
181
204
  Trong comment, **PHẢI** ghi Symphony Task ID: `Symphony: #sym-XXX`
182
205
 
@@ -184,9 +207,11 @@ Trong comment, **PHẢI** ghi Symphony Task ID: `Symphony: #sym-XXX`
184
207
 
185
208
  ## 🎯 Best Practices
186
209
 
187
- 1. **Checklist naming**: Theo phase/module lớn (VD: "Module: fw-01-foundation", "Sprint 2026-03").
188
- 2. **Item naming**: tả tính năng lớn (VD: "Login Flow", "Firebase Integration"). KHÔNG ĐƯA CÁC ĐẦU MỤC CODE LEVEL VÀO ĐÂY (VD: "Thêm nút bấm", "Sửa CSS", v.v.).
189
- 3. **Minimizing noise**: Comment chỉ milestones, KHÔNG spam mỗi dòng code. Cấm bulk-sync checklist item từ `tasks.md`.
210
+ 1. **Checklist naming (Module/Epic)**: Tên checklist thể hiện mảng Tính năng/Module lớn (VD: "Module: Authentication", "Sprint: Workout Tính năng cốt lõi").
211
+ KHÔNG ĐẶT theo quy trình AI như "Gate 1", "Phase: Setup", "Giai đoạn Design".
212
+ 2. **Item naming (Product Features)**: Tên item tính năng/màn hình cụ thể (VD: "Google Sign-In", "Màn hình Thông kê Calorie", "Chức năng AI tư vấn thực đơn").
213
+ ⛔ KHÔNG ĐẶT kiểu "Tài liệu Specs", "Code Scaffolding", "Sửa CSS" hay "Tạo file ABC".
214
+ 3. **Minimizing noise**: Cập nhật milestone (chuyển gate, chuyển phase) qua **Comment** trên Card, KHÔNG GHI THÀNH **Checklist item** (vốn dĩ checklist item là thứ bàn giao được cho user). Cấm bulk-sync từ `tasks.md`.
190
215
  4. **Graceful degradation**: CLI/API lỗi → log warning, KHÔNG block code flow.
191
216
  5. **Dùng lệnh Native**: Luôn luôn gọi `awkit trello <lệnh>` thay vì `trello-cli` thủ công.
192
217
  6. **Card KHÔNG di chuyển**: Card nằm cố định trong list team member. KHÔNG move card.
@@ -198,12 +223,13 @@ Trong comment, **PHẢI** ghi Symphony Task ID: `Symphony: #sym-XXX`
198
223
  | Tình huống | Xử lý |
199
224
  |-----------|--------|
200
225
  | `.trello-config.json` không tồn tại | ⛔ Bỏ qua Trello sync, log cảnh báo, tiếp tục code |
226
+ | **Credentials not found** | `source ~/.zshrc` → retry (max 2 lần). Vẫn lỗi → báo user chạy `awkit init` |
201
227
  | Card not found | Chạy `sync`, retry. Nếu vẫn lỗi → báo user |
202
- | Checklist chưa có | Tạo checklist mới bằng `card:checklist` |
228
+ | Checklist chưa có | Tạo checklist mới bằng `awkit trello checklist` |
203
229
  | Item trùng tên | Dùng `card:checklists` kiểm tra trước khi thêm |
204
- | Rate limit / API error | Log warning, tiếp tục code, KHÔNG block flow |
205
- | Token hết hạn | Báo user refresh trong `.trello-config.json` |
206
- | Dự án chưa có card trên Trello | Báo user tạo card trên board, cập nhật config |
230
+ | Rate limit / API error | Log warning, tiếp tục code, KHÔNG block flow. CLI tự retry 429. |
231
+ | Token hết hạn | Báo user chạy `awkit init` để setup lại credential mới |
232
+ | Dự án chưa có card trên Trello | Báo user tạo card trên board, cập nhật `.trello-config.json` |
207
233
 
208
234
  ---
209
235