@leejungkiin/awkit 1.4.0 → 1.4.3

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.
Files changed (119) hide show
  1. package/bin/awk.js +458 -7
  2. package/bin/claude-generators.js +122 -0
  3. package/core/AGENTS.md +16 -0
  4. package/core/CLAUDE.md +155 -0
  5. package/core/GEMINI.md +44 -9
  6. package/package.json +1 -1
  7. package/skills/ai-sprite-maker/SKILL.md +81 -0
  8. package/skills/ai-sprite-maker/scripts/animate_sprite.py +102 -0
  9. package/skills/ai-sprite-maker/scripts/process_sprites.py +140 -0
  10. package/skills/code-review/SKILL.md +21 -33
  11. package/skills/lucylab-tts/SKILL.md +64 -0
  12. package/skills/lucylab-tts/resources/voices_library.json +908 -0
  13. package/skills/lucylab-tts/scripts/.env +1 -0
  14. package/skills/lucylab-tts/scripts/lucylab_tts.py +506 -0
  15. package/skills/orchestrator/SKILL.md +5 -0
  16. package/skills/short-maker/SKILL.md +150 -0
  17. package/skills/short-maker/_backup/storyboard.html +106 -0
  18. package/skills/short-maker/_backup/video_mixer.py +296 -0
  19. package/skills/short-maker/outputs/fitbite-promo/background.jpg +0 -0
  20. package/skills/short-maker/outputs/fitbite-promo/final/promo-final.mp4 +0 -0
  21. package/skills/short-maker/outputs/fitbite-promo/script.md +19 -0
  22. package/skills/short-maker/outputs/fitbite-promo/segments/scene-01.mp4 +0 -0
  23. package/skills/short-maker/outputs/fitbite-promo/segments/scene-02.mp4 +0 -0
  24. package/skills/short-maker/outputs/fitbite-promo/segments/scene-03.mp4 +0 -0
  25. package/skills/short-maker/outputs/fitbite-promo/segments/scene-04.mp4 +0 -0
  26. package/skills/short-maker/outputs/fitbite-promo/storyboard/scene-01.png +0 -0
  27. package/skills/short-maker/outputs/fitbite-promo/storyboard/scene-02.png +0 -0
  28. package/skills/short-maker/outputs/fitbite-promo/storyboard/scene-03.png +0 -0
  29. package/skills/short-maker/outputs/fitbite-promo/storyboard/scene-04.png +0 -0
  30. package/skills/short-maker/outputs/fitbite-promo/storyboard.html +133 -0
  31. package/skills/short-maker/outputs/fitbite-promo/storyboard.json +38 -0
  32. package/skills/short-maker/outputs/fitbite-promo/temp/merged_chroma.mp4 +0 -0
  33. package/skills/short-maker/outputs/fitbite-promo/temp/merged_crossfaded.mp4 +0 -0
  34. package/skills/short-maker/outputs/fitbite-promo/temp/ready_00.mp4 +0 -0
  35. package/skills/short-maker/outputs/fitbite-promo/temp/ready_01.mp4 +0 -0
  36. package/skills/short-maker/outputs/fitbite-promo/temp/ready_02.mp4 +0 -0
  37. package/skills/short-maker/outputs/fitbite-promo/temp/ready_03.mp4 +0 -0
  38. package/skills/short-maker/outputs/fitbite-promo/tts/manifest.json +31 -0
  39. package/skills/short-maker/outputs/fitbite-promo/tts/scene-01.wav +0 -0
  40. package/skills/short-maker/outputs/fitbite-promo/tts/scene-02.wav +0 -0
  41. package/skills/short-maker/outputs/fitbite-promo/tts/scene-03.wav +0 -0
  42. package/skills/short-maker/outputs/fitbite-promo/tts/scene-04.wav +0 -0
  43. package/skills/short-maker/outputs/fitbite-promo/tts_script.txt +11 -0
  44. package/skills/short-maker/scripts/google-flow-cli/.project-identity +41 -0
  45. package/skills/short-maker/scripts/google-flow-cli/.trae/rules/project_rules.md +52 -0
  46. package/skills/short-maker/scripts/google-flow-cli/CODEBASE.md +67 -0
  47. package/skills/short-maker/scripts/google-flow-cli/GoogleFlowCli.code-workspace +29 -0
  48. package/skills/short-maker/scripts/google-flow-cli/README.md +168 -0
  49. package/skills/short-maker/scripts/google-flow-cli/docs/specs/PROJECT.md +12 -0
  50. package/skills/short-maker/scripts/google-flow-cli/docs/specs/REQUIREMENTS.md +22 -0
  51. package/skills/short-maker/scripts/google-flow-cli/docs/specs/ROADMAP.md +16 -0
  52. package/skills/short-maker/scripts/google-flow-cli/docs/specs/TECH-SPEC.md +13 -0
  53. package/skills/short-maker/scripts/google-flow-cli/gflow/__init__.py +3 -0
  54. package/skills/short-maker/scripts/google-flow-cli/gflow/api/__init__.py +19 -0
  55. package/skills/short-maker/scripts/google-flow-cli/gflow/api/client.py +1921 -0
  56. package/skills/short-maker/scripts/google-flow-cli/gflow/api/models.py +64 -0
  57. package/skills/short-maker/scripts/google-flow-cli/gflow/api/rpc_ids.py +98 -0
  58. package/skills/short-maker/scripts/google-flow-cli/gflow/auth/__init__.py +15 -0
  59. package/skills/short-maker/scripts/google-flow-cli/gflow/auth/browser_auth.py +692 -0
  60. package/skills/short-maker/scripts/google-flow-cli/gflow/auth/humanizer.py +417 -0
  61. package/skills/short-maker/scripts/google-flow-cli/gflow/auth/proxy_ext.py +120 -0
  62. package/skills/short-maker/scripts/google-flow-cli/gflow/auth/recaptcha.py +482 -0
  63. package/skills/short-maker/scripts/google-flow-cli/gflow/batchexecute/__init__.py +5 -0
  64. package/skills/short-maker/scripts/google-flow-cli/gflow/batchexecute/client.py +414 -0
  65. package/skills/short-maker/scripts/google-flow-cli/gflow/cli/__init__.py +1 -0
  66. package/skills/short-maker/scripts/google-flow-cli/gflow/cli/main.py +1075 -0
  67. package/skills/short-maker/scripts/google-flow-cli/pyproject.toml +36 -0
  68. package/skills/short-maker/scripts/google-flow-cli/script.txt +22 -0
  69. package/skills/short-maker/scripts/google-flow-cli/tests/__init__.py +0 -0
  70. package/skills/short-maker/scripts/google-flow-cli/tests/test_batchexecute.py +113 -0
  71. package/skills/short-maker/scripts/google-flow-cli/tests/test_client.py +190 -0
  72. package/skills/short-maker/templates/aida_script.md +40 -0
  73. package/skills/short-maker/templates/mimic_analyzer.md +29 -0
  74. package/skills/single-flow-task-execution/SKILL.md +9 -6
  75. package/skills/skill-creator/SKILL.md +44 -0
  76. package/skills/spm-build-analysis/SKILL.md +92 -0
  77. package/skills/spm-build-analysis/references/build-optimization-sources.md +155 -0
  78. package/skills/spm-build-analysis/references/recommendation-format.md +85 -0
  79. package/skills/spm-build-analysis/references/spm-analysis-checks.md +105 -0
  80. package/skills/spm-build-analysis/scripts/check_spm_pins.py +118 -0
  81. package/skills/symphony-enforcer/SKILL.md +51 -83
  82. package/skills/symphony-orchestrator/SKILL.md +1 -1
  83. package/skills/trello-sync/SKILL.md +27 -28
  84. package/skills/verification-gate/SKILL.md +13 -2
  85. package/skills/xcode-build-benchmark/SKILL.md +88 -0
  86. package/skills/xcode-build-benchmark/references/benchmark-artifacts.md +94 -0
  87. package/skills/xcode-build-benchmark/references/benchmarking-workflow.md +67 -0
  88. package/skills/xcode-build-benchmark/schemas/build-benchmark.schema.json +230 -0
  89. package/skills/xcode-build-benchmark/scripts/benchmark_builds.py +308 -0
  90. package/skills/xcode-build-fixer/SKILL.md +218 -0
  91. package/skills/xcode-build-fixer/references/build-settings-best-practices.md +216 -0
  92. package/skills/xcode-build-fixer/references/fix-patterns.md +290 -0
  93. package/skills/xcode-build-fixer/references/recommendation-format.md +85 -0
  94. package/skills/xcode-build-fixer/scripts/benchmark_builds.py +308 -0
  95. package/skills/xcode-build-orchestrator/SKILL.md +156 -0
  96. package/skills/xcode-build-orchestrator/references/benchmark-artifacts.md +94 -0
  97. package/skills/xcode-build-orchestrator/references/build-settings-best-practices.md +216 -0
  98. package/skills/xcode-build-orchestrator/references/orchestration-report-template.md +143 -0
  99. package/skills/xcode-build-orchestrator/references/recommendation-format.md +85 -0
  100. package/skills/xcode-build-orchestrator/scripts/benchmark_builds.py +308 -0
  101. package/skills/xcode-build-orchestrator/scripts/diagnose_compilation.py +273 -0
  102. package/skills/xcode-build-orchestrator/scripts/generate_optimization_report.py +533 -0
  103. package/skills/xcode-compilation-analyzer/SKILL.md +89 -0
  104. package/skills/xcode-compilation-analyzer/references/build-optimization-sources.md +155 -0
  105. package/skills/xcode-compilation-analyzer/references/code-compilation-checks.md +106 -0
  106. package/skills/xcode-compilation-analyzer/references/recommendation-format.md +85 -0
  107. package/skills/xcode-compilation-analyzer/scripts/diagnose_compilation.py +273 -0
  108. package/skills/xcode-project-analyzer/SKILL.md +76 -0
  109. package/skills/xcode-project-analyzer/references/build-optimization-sources.md +155 -0
  110. package/skills/xcode-project-analyzer/references/build-settings-best-practices.md +216 -0
  111. package/skills/xcode-project-analyzer/references/project-audit-checks.md +101 -0
  112. package/skills/xcode-project-analyzer/references/recommendation-format.md +85 -0
  113. package/templates/project-identity/android.json +0 -10
  114. package/templates/project-identity/backend-nestjs.json +0 -10
  115. package/templates/project-identity/expo.json +0 -10
  116. package/templates/project-identity/ios.json +0 -10
  117. package/templates/project-identity/web-nextjs.json +0 -10
  118. package/workflows/_uncategorized/ship-to-code.md +85 -0
  119. package/workflows/context/codebase-sync.md +10 -87
@@ -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.5: UI-First Three-Phase Execution with User Test Checkpoints.
7
+ v3.7: UI-First Three-Phase Execution with Auto Device Checkpoints (Maestro).
8
8
  metadata:
9
9
  stage: core
10
- version: "3.6"
11
- replaces: "v3.5"
10
+ version: "3.7"
11
+ replaces: "v3.6"
12
12
  requires: symphony-orchestrator
13
- tags: [symphony, enforcement, checkpoint, task-lifecycle, core, spec-first, auto-next, kiro, ui-first, user-test]
13
+ tags: [symphony, enforcement, checkpoint, task-lifecycle, core, spec-first, auto-next, kiro, ui-first, user-test, maestro, automated-verification]
14
14
  agent: Symphony Enforcer
15
15
  allowed-tools:
16
16
  - symphony_create_task
@@ -24,13 +24,13 @@ invocation-type: auto
24
24
  priority: 1
25
25
  ---
26
26
 
27
- # Symphony Enforcer v3.6 — UI-First Three-Phase Execution + Legacy Cleanup
27
+ # Symphony Enforcer v3.7 — UI-First Three-Phase Execution + Auto Device 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.6:**
30
+ > **Key Changes v3.7:**
31
31
  > - **Step 0.5: Legacy Artifact Cleanup**: Auto-detect stale `.symphony/tasks.json` and warn user
32
- > - **Gate 4 Three-Phase Execution**: Phase A (Infra) → Phase B (UI Shell + User Test) → Phase C (Logic + User Test)
33
- > - **TP1.7: User Test Checkpoint**: Trigger dừng lại cho user test trên device thật
32
+ > - **Gate 4 Three-Phase Execution**: Phase A (Infra) → Phase B (UI Shell + Auto Check) → Phase C (Logic + Auto Check)
33
+ > - **TP1.7: Auto Device Checkpoint (ADC)**: Tự động build & quét UI bằng Maestro MCP thay vì chờ user test thủ công
34
34
  > - **UI-First Task Ordering**: UI tasks PHẢI đi trước logic tasks trong Symphony
35
35
  > - Kế thừa tất cả features v3.5 (Kiro, Completion Status, Design Compliance).
36
36
  > **Principle:** AI tự detect completion — user KHÔNG CẦN nói "xong".
@@ -163,8 +163,8 @@ LIÊN KẾT TỰ ĐỘNG:
163
163
 
164
164
  THREE-PHASE MAPPING (Gate 4 — COMPLEX tasks với UI):
165
165
  - Phase A done (build OK) → report_progress(25%) + checkpoint build
166
- - Phase B done (UI mock) → report_progress(45%) + TRIGGER TP1.7 (User Test)
167
- - Phase C per-feature done → report_progress(50-85%) + TRIGGER TP1.7 (User Test)
166
+ - Phase B done (UI mock) → report_progress(45%) + TRIGGER TP1.7 (Auto Device Checkpoint)
167
+ - Phase C per-feature done → report_progress(50-85%) + TRIGGER TP1.7 (Auto Device Checkpoint)
168
168
  - Phase C all features done → report_progress(90%) → Gate 5
169
169
  ```
170
170
 
@@ -217,10 +217,10 @@ Khi kích hoạt Three-Phase, AI PHẢI hiển thị:
217
217
  → {list tasks for Phase A}
218
218
  🎨 Phase B: UI Shell (Mock Data)
219
219
  → {list tasks for Phase B}
220
- → 🧪 USER TEST sau phase này
220
+ → 🧪 AUTO DEVICE TEST (Maestro) sau phase này
221
221
  ⚡ Phase C: Logic Integration
222
222
  → {list tasks for Phase C}
223
- → 🧪 USER TEST mỗi feature
223
+ → 🧪 AUTO DEVICE TEST (Maestro) mỗi feature
224
224
  ══════════════════════════════════════
225
225
  Bắt đầu Phase A...
226
226
  ```
@@ -241,13 +241,19 @@ auto_triggers:
241
241
  phase_b_to_checkpoint:
242
242
  signal: Tất cả [UI] tasks đã done
243
243
  action: |
244
- - ⛔ DẪNG CODE NGAY LẬP TỨC
245
- - TRIGGER TP1.7 (User Test Checkpoint)
246
- - CHỊ user confirm "✅ OK" trước khi làm bất cứ gì khác
247
- - KHÔNG được tự ý skip bước này
244
+ - ⛔ TRIGGER TP1.7 (Checkpoint)
245
+ - Đọc `.project-identity` -> `autoVerification`
246
+ - NẾU `true`:
247
+ + Chạy Auto Build check exit code 0
248
+ + Dùng mcp_maestro_launch_app và take_screenshot
249
+ + NẾU fail → DỪNG (notify_user BlockedOnUser=true)
250
+ + NẾU pass → Báo cáo Screenshot (BlockedOnUser=false) và làm tiếp Phase C
251
+ - NẾU `false` (default):
252
+ + DỪNG VÀ CHỜ user test thủ công (notify_user BlockedOnUser=true)
253
+ + CHỜ user xác nhận "OK" mới đi tiếp Phase C
248
254
 
249
255
  checkpoint_to_phase_c:
250
- signal: User confirmed "" hoặc "OK"
256
+ signal: Build success & App launched (autoVerification=true) HOẶC User confirmed "OK" (autoVerification=false)
251
257
  action: |
252
258
  - Set phase_b_confirmed = true
253
259
  - Set current_phase = "C"
@@ -265,16 +271,16 @@ auto_triggers:
265
271
 
266
272
  ```
267
273
  ❌ VI PHạM NẶNG:
268
- - Code logic (Phase C) khi phase_b_confirmed = false
274
+ - Code logic (Phase C) khi phase_b_confirmed = false (chưa pass Phase B checkpoint)
269
275
  - Skip Phase Announcement Block
270
- - Code UI và Logic lẫn lộn trong cùng 1 lượt (phải tách rõ phase)
271
- - Tự giả vờ user confirm để skip checkpoint
272
- - Không hiển thị Phase Announcement khi Three-Phase activated
276
+ - Bỏ qua TP1.7
277
+ - Chạy Auto-verification khi `autoVerification: false` (bỏ qua thủ công)
278
+ - Chờ user test thủ công khi `autoVerification: true` (lười setup auto)
273
279
 
274
280
  ✅ BẮT BUỘC:
275
281
  - Luôn announce phase transition rõ ràng
276
- - Luôn tạo hướng dẫn test CỤ THỂ (không chung chung)
277
- - Luôn dùng notify_user(BlockedOnUser=true) cho checkpoints
282
+ - Luôn đọc `autoVerification` trong `.project-identity` trước khi trigger check.
283
+ - Gắn BlockedOnUser = true cho mode manual, false cho mode auto.
278
284
  - Ghi lại phase state vào NeuralMemory khi chuyển phase
279
285
  ```
280
286
 
@@ -360,78 +366,40 @@ File patterns:
360
366
 
361
367
  ---
362
368
 
363
- ### TP1.7: User Test Checkpoint (NEW v3.5 Gate 4 Three-Phase)
369
+ ### TP1.7: Flexible Checkpoint (Manual v/s Auto) (UPDATE v3.7)
364
370
 
365
- **Khi nào:** Trigger ở 2 thời điểm chính trong Gate 4:
371
+ **Cấu hình Mode Verification:**
372
+ Quy trình Verification được quyết định bởi thuộc tính `"autoVerification"` trong `.project-identity`:
373
+ - `{"autoVerification": true}` → **Auto Device Checkpoint (ADC)**: Dùng Maestro tự build & chụp ảnh screenshot. Tiến thẳng sang bước tiếp (BlockedOnUser=false).
374
+ - `{"autoVerification": false}` (hoặc không khai báo) → **Manual Checkpoint**: Dừng lại chờ user test thủ công (BlockedOnUser=true). Đây là **MẶC ĐỊNH an toàn**.
375
+
376
+ **Khi nào trigger TP1.7:**
366
377
 
367
378
  1. **Phase B → C Transition (BẮT BUỘC cho COMPLEX):**
368
- - ALL UI screens đã code xong với mock data
369
- - Navigation hoạt động full flow
370
- - App build và chạy OK trên emulator/device
379
+ - ALL UI screens đã code xong
371
380
 
372
381
  2. **Sau mỗi feature trong Phase C (COMPLEX tasks):**
373
- - Feature X đã thay mock bằng real data
374
- - Feature works end-to-end trên device
375
-
376
- **Điều kiện kích hoạt:**
377
- ```
378
- COMPLEX + có UI component → BẮT BUỘC TP1.7
379
- MODERATE + có UI component → OPTIONAL (recommend cho hardware features: camera, GPS, sensors)
380
- TRIVIAL → SKIP
381
- Backend-only tasks → SKIP
382
- ```
382
+ - Feature X đã code xong logic
383
383
 
384
- **Action:**
384
+ **Action (Tùy theo Mode):**
385
385
  ```
386
386
  1. Report progress trước: symphony_report_progress(current_task, progress)
387
+ 2. Kiểm tra cờ `autoVerification` trong .project-identity.
387
388
 
388
- 2. Present User Test Checkpoint:
389
-
390
- 🧪 USER TEST CHECKPOINT #{N}
391
- ══════════════════════════════════════
392
- 📱 Phase: {B|C} {phase_name}
393
- 📋 Đã code xong: {summary of completed work}
394
- 📁 Files changed: {N} files
395
-
396
- 🔍 Hướng dẫn test:
397
- 1. {step 1 — cụ thể, actionable}
398
- 2. {step 2 — expected behavior}
399
- 3. {step 3 — edge case to check}
400
-
401
- ⏳ Anh test xong reply:
402
- ✅ OK — tiếp tục
403
- ⚠️ Issue: {mô tả} — tôi sẽ fix trước khi đi tiếp
404
- ══════════════════════════════════════
405
-
406
- 3. Gọi notify_user(BlockedOnUser=true) — DỪNG và CHỜ user response
407
-
408
- 4. User response handling:
409
- → "OK" / "✅" → Tiếp tục phase tiếp / feature tiếp
410
- → "Issue: ..." → Fix issue → re-run checkpoint
411
- → "Skip" → Ghi note concern, tiếp tục (DONE_WITH_CONCERNS later)
412
- ```
413
-
414
- **Test Guidance Generation:**
415
- ```
416
- AI PHẢI tạo hướng dẫn test CỤ THỂ cho từng checkpoint:
417
-
418
- Phase B Examples (UI):
419
- - "Mở app → bấm tab Health → xem Dashboard có hiển thị 4 cards không?"
420
- - "Quay ngang màn hình → layout có bể không?"
421
- - "Bấm nút Camera → xem preview có xuất hiện không?"
389
+ === TRƯỜNG HỢP 1: autoVerification = false (Default Manual) ===
390
+ - Announce "🧪 MANUAL USER TEST CHECKPOINT #{N}"
391
+ - Đưa hướng dẫn test cụ thể (e.g. "Mở app -> Bấm nút A -> Xem kết quả B")
392
+ - Gọi notify_user(BlockedOnUser=true) — DỪNG và CHỜ user response
393
+ - Chỉ đi tiếp khi user reply "OK".
422
394
 
423
- Phase C Examples (Logic):
424
- - "Mở Health Dashboard → data thật có load lên không? (nếu có wifi)"
425
- - "Chụp ảnh thức ăn → kết quả AI có trả về trong 5s không?"
426
- - "Bấm Save quay lại list record mới có xuất hiện không?"
395
+ === TRƯỜNG HỢP 2: autoVerification = true (Auto Maestro) ===
396
+ - Chạy Auto Build
397
+ - Chạy mcp_maestro_launch_app, mcp_maestro_take_screenshot
398
+ - Announce "🤖 AUTO DEVICE CHECKPOINT #{N}" + Log + Evidence
399
+ - NẾU Build/Run Lỗi: BlockedOnUser=true (bắt user xem lỗi).
400
+ - NẾU Pass: BlockedOnUser=false. Lập tức đi tiếp phase tiếp theo! KHÔNG DỪNG.
427
401
  ```
428
402
 
429
- **Enforcement:**
430
- - ❌ KHÔNG được chuyển từ Phase B → Phase C mà chưa có user confirm (COMPLEX)
431
- - ❌ KHÔNG được skip checkpoint cho hardware-related features (Camera, GPS, Sensors)
432
- - ✅ NÊN batch các features nhỏ lại thành 1 checkpoint (tránh quá nhiều interrupt)
433
- - ✅ Checkpoint cho logic KHÔNG cần nếu feature là pure-backend/invisible
434
-
435
403
  ---
436
404
 
437
405
  ### TP2: Task Complete — Completion Status Protocol
@@ -8,7 +8,7 @@ metadata:
8
8
  stage: core
9
9
  version: "3.0"
10
10
  replaces: null
11
- requires: "@leejungkiin/awkit-symphony" (npm i -g @leejungkiin/awkit-symphony)
11
+ requires: "@leejungkiin/awkit-symphony (npm i -g @leejungkiin/awkit-symphony)"
12
12
  tags: [symphony, setup, server, orchestration, core, preflight, multi-project, agent]
13
13
  agent: Symphony Conductor
14
14
  allowed-tools:
@@ -132,62 +132,61 @@ Mỗi Card chứa:
132
132
 
133
133
  ---
134
134
 
135
- ### TP1: 🚀 Start Task / Start Project (Description + Checklist)
135
+ ### ⚡ Delegation Rule: Khi nào dùng CLI, khi nào tự xử
136
136
 
137
- **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).
138
- *(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).*
137
+ > [!IMPORTANT]
138
+ > Gemini/Codex CLI đã sẵn skill trello-sync. Chỉ delegate cho CLI khi **tác vụ NẶNG** (nhiều bước, cần phân tích). Tác vụ đơn giản thì Antigravity tự gọi `awkit trello` trực tiếp — tránh xử lý 2 lần.
139
139
 
140
- **Action:**
141
- ```bash
142
- # Update Card Description với thông tin cực kỳ ràng cho Quản (PM) dự án
143
- 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 lược)"
140
+ | Loại tác vụ | Xử lý | Lý do |
141
+ |-------------|--------|-------|
142
+ | 🔴 **Nặng** Setup project, tạo nhiều checklists, sync toàn bộ spec | `gemini -p "..." --approval-mode auto` | Nhiều bước, cần phân tích spec → delegate |
143
+ | 🟢 **Nhẹ** Add 1 item, complete 1 item, comment, block | `awkit trello <cmd>` trực tiếp | 1 lệnh duy nhất → tự gọi, không cần CLI |
144
144
 
145
- # 1. Tạo checklist dựa trên Module/Epic Nghiệp vụ thực tế
146
- awkit trello checklist "Module: Xác thực Người Dùng"
145
+ ---
147
146
 
148
- # 2. Thêm item mới vào checklist (Tuyệt đối KHÔNG ĐẶT TÊN theo Gate/Phase/Scaffolding)
149
- awkit trello item "Đăng nhập bằng Google"
150
- awkit trello item "Hồ sơ Người Dùng"
147
+ ### TP1: 🚀 Start Task / Start Project (Description + Checklist) 🔴 DELEGATE
151
148
 
152
- # 3. Comment thông báo cập nhật tiến trình hoặc trạng thái Agent
153
- awkit trello comment "🤖 AI bắt đầu: Xây dựng giao diện Đăng Nhập | Symphony: #sym-XXX"
149
+ **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).
150
+ *(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).*
151
+
152
+ **Action:** Delegate cho **Gemini CLI** (nhiều bước: update desc + tạo checklists + thêm items + comment):
153
+ ```bash
154
+ gemini -p "Phân tích Spec/thiết kế đã chốt của dự án. Tạo các checklists và checklist items trên Trello card theo quy tắc Granularity (PM View). Cập nhật description card với tổng quan dự án. Comment thông báo bắt đầu. Dùng awkit trello." --approval-mode auto
154
155
  ```
155
156
 
156
157
  ---
157
158
 
158
- ### TP2: 📈 Report Progress (Comment Milestone)
159
+ ### TP2: 📈 Report Progress (Comment Milestone) — 🟢 TRỰC TIẾP
159
160
 
160
161
  **Khi nào:** AI đạt milestone quan trọng (40%, 60%, 80%) hoặc hoàn thành cụm tính năng.
161
162
 
162
- **Action:** Cung cấp thông tin CHUYÊN MÔN nhưng RÕ RÀNG cho PM:
163
+ **Action:** Gọi trực tiếp (1 lệnh duy nhất):
163
164
  ```bash
164
- awkit trello comment "⏳ Progress: Login Flow (60%) — UI hoàn thiện. QUYẾT ĐỊNH KỸ THUẬT: Đã chọn SQLite/Room thay vì Firebase để đảm bảo Offline-first theo spec."
165
+ awkit trello comment "⏳ Progress: [Tính năng] ([X]%) — [Chi tiết kỹ thuật]. Symphony: #sym-XXX"
165
166
  ```
166
167
 
167
168
  ---
168
169
 
169
- ### TP3: 🛑 Blocked
170
+ ### TP3: 🛑 Blocked — 🟢 TRỰC TIẾP
170
171
 
171
172
  **Khi nào:** Task bị chặn, cần human input.
172
173
 
174
+ **Action:** Gọi trực tiếp:
173
175
  ```bash
174
- # Label + Comment
175
- awkit trello block "API 500 on /auth/login. Cần Backend check."
176
+ awkit trello block "[Lý do block chi tiết]"
176
177
  ```
177
178
 
178
179
  ---
179
180
 
180
- ### TP4: ✅ Task Done (Đánh dấu Item Complete)
181
+ ### TP4: ✅ Task Done (Đánh dấu Item Complete) — 🟢 TRỰC TIẾP
181
182
 
182
- **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 và sẵn sàng test.
183
- *(Lưu ý: Không check item nếu chỉ mới xong 1 task code con lập trình)*
183
+ **Khi nào:** Toàn bộ cụm Tính năng Nghiệp vụ đã hoàn thành và sẵn sàng test.
184
+ *(Lưu ý: Không check item nếu chỉ mới xong 1 task code con)*
184
185
 
186
+ **Action:** Gọi trực tiếp:
185
187
  ```bash
186
- # 1. Đánh dấu checklist item đại diện cho tính năng
187
- awkit trello complete "Đăng nhập bằng Google"
188
-
189
- # 2. Comment kết quả
190
- awkit trello comment "✅ DONE Feature: Đăng nhập bằng Google | Commit: #$(git rev-parse --short HEAD)"
188
+ awkit trello complete "[Tên tính năng]"
189
+ awkit trello comment " DONE: [Tên tính năng] | Commit: #$(git rev-parse --short HEAD)"
191
190
  ```
192
191
 
193
192
  ---
@@ -31,6 +31,10 @@ BEFORE claiming any status or expressing satisfaction:
31
31
  - If NO: State actual status with evidence
32
32
  - If YES: State claim WITH evidence
33
33
  5. ONLY THEN: Make the claim
34
+ 6. AUTO-COMMIT: Build 0 errors → git add → git commit → git push (non-force)
35
+ - Do NOT ask user permission for regular commits
36
+ - Use conventional commit message (fix:/feat:/refactor:)
37
+ - If push fails → git pull --rebase && git push (retry once)
34
38
 
35
39
  Skip any step = lying, not verifying
36
40
  ```
@@ -53,7 +57,7 @@ Skip any step = lying, not verifying
53
57
  | Linter clean | Linter output: 0 errors | Partial check, extrapolation |
54
58
  | Build succeeds | Build command: exit 0 | Linter passing, looks good |
55
59
  | Bug fixed | Test original symptom: passes | Code changed, assumed fixed |
56
- | Feature works | Demo/run showing behavior | Code written, assumed works |
60
+ | Feature works | Maestro MCP auto run/Screenshot | Code written, assumed works |
57
61
  | Requirements met | Line-by-line checklist | Tests passing |
58
62
  | Deploy succeeded | Health check: 200 OK | Deploy command completed |
59
63
 
@@ -93,8 +97,9 @@ If you catch yourself thinking any of these, STOP and run verification:
93
97
 
94
98
  **Build:**
95
99
  ```
96
- ✅ [Run build] → [See: BUILD SUCCEEDED] → "Build passes"
100
+ ✅ [Run build] → [See: BUILD SUCCEEDED] → auto git add+commit+push → "Build passes, committed & pushed"
97
101
  ❌ "Linter passed so build is fine"
102
+ ❌ Build succeeded but forgot to commit
98
103
  ```
99
104
 
100
105
  **Bug Fix:**
@@ -103,6 +108,12 @@ If you catch yourself thinking any of these, STOP and run verification:
103
108
  ❌ "I've changed the code, bug should be fixed"
104
109
  ```
105
110
 
111
+ **UI/Feature Verification:**
112
+ ```
113
+ ✅ Run Automated App Build → Run mcp_maestro_launch_app → Take mcp_maestro_take_screenshot → "UI renders correctly and no crash"
114
+ ❌ "Code looks good, layouts conform to specs, should render fine."
115
+ ```
116
+
106
117
  **Requirements:**
107
118
  ```
108
119
  ✅ Re-read plan → Create checklist → Verify each → Report gaps or completion
@@ -0,0 +1,88 @@
1
+ ---
2
+ name: xcode-build-benchmark
3
+ description: Benchmark Xcode clean và incremental builds với đầu vào có thể lặp lại, xuất timing summaries và lưu timestamped `.build-benchmark/` artifacts. Sử dụng khi lập trình viên muốn đo lường baseline, so sánh trước và sau khi tối ưu, hoặc khi phàn nàn về việc build chậm và muốn đo chính xác build mất bao lâu.
4
+ ---
5
+
6
+ # Xcode Build Benchmark
7
+
8
+ Use this skill to produce a repeatable Xcode build baseline before anyone tries to optimize build times.
9
+
10
+ ## Core Rules
11
+
12
+ - Measure before recommending changes.
13
+ - Capture clean and incremental builds separately.
14
+ - Keep the command, destination, configuration, scheme, and warm-up rules consistent across runs.
15
+ - Write a timestamped JSON artifact to `.build-benchmark/`.
16
+ - Do not change project files as part of benchmarking.
17
+
18
+ ## Inputs To Collect
19
+
20
+ Confirm or infer:
21
+
22
+ - workspace or project path
23
+ - scheme
24
+ - configuration
25
+ - destination
26
+ - whether the user wants simulator or device numbers
27
+ - whether a custom `DerivedData` path is needed
28
+
29
+ If the project has both clean-build and incremental-build pain, benchmark both. That is the default.
30
+
31
+ ## Worktree Considerations
32
+
33
+ When benchmarking inside a git worktree, SPM packages with `exclude:` paths that reference gitignored directories (e.g., `__Snapshots__`) will cause `xcodebuild -resolvePackageDependencies` to crash. Create those missing directories before running any builds.
34
+
35
+ ## Default Workflow
36
+
37
+ 1. Normalize the build command and note every flag that affects caching or module reuse.
38
+ 2. Run one warm-up build if needed to validate that the command succeeds.
39
+ 3. Run 3 clean builds.
40
+ 4. If `COMPILATION_CACHING = YES` is detected, run 3 cached clean builds. These measure clean build time with a warm compilation cache -- the realistic scenario for branch switching, pulling changes, or Clean Build Folder. The script handles this automatically by building once to warm the cache, then deleting DerivedData (but not the compilation cache) before each measured run. Pass `--no-cached-clean` to skip.
41
+ 5. Run 3 zero-change builds (build immediately after a successful build with no edits). This measures the fixed overhead floor: dependency computation, project description transfer, build description creation, script phases, codesigning, and validation. A zero-change build that takes more than a few seconds indicates avoidable per-build overhead. Use the default `benchmark_builds.py` invocation (no `--touch-file` flag).
42
+ 6. Optionally run 3 incremental builds with a file touch to measure a real edit-rebuild loop. Use `--touch-file path/to/SomeFile.swift` to touch a representative source file before each build.
43
+ 7. Save the raw results and summary into `.build-benchmark/`.
44
+ 8. Report medians and spread, not just the single fastest run.
45
+
46
+ ## Preferred Command Path
47
+
48
+ Use the shared helper when possible:
49
+
50
+ ```bash
51
+ python3 scripts/benchmark_builds.py \
52
+ --workspace App.xcworkspace \
53
+ --scheme MyApp \
54
+ --configuration Debug \
55
+ --destination "platform=iOS Simulator,name=iPhone 16" \
56
+ --output-dir .build-benchmark
57
+ ```
58
+
59
+ If you cannot use the helper script, run equivalent `xcodebuild` commands with `-showBuildTimingSummary` and preserve the raw output.
60
+
61
+ ## Required Output
62
+
63
+ Return:
64
+
65
+ - clean build median, min, max
66
+ - cached clean build median, min, max (when COMPILATION_CACHING is enabled)
67
+ - zero-change build median, min, max (fixed overhead floor)
68
+ - incremental build median, min, max (if `--touch-file` was used)
69
+ - biggest timing-summary categories
70
+ - environment details that could affect comparisons
71
+ - path to the saved artifact
72
+
73
+ If results are noisy, say so and recommend rerunning under calmer conditions.
74
+
75
+ ## When To Stop
76
+
77
+ Stop after measurement if the user only asked for benchmarking. If they want optimization guidance, hand off the artifact to the relevant specialist by reading its SKILL.md and applying its workflow to the same project context:
78
+
79
+ - [`xcode-compilation-analyzer`](../xcode-compilation-analyzer/SKILL.md)
80
+ - [`xcode-project-analyzer`](../xcode-project-analyzer/SKILL.md)
81
+ - [`spm-build-analysis`](../spm-build-analysis/SKILL.md)
82
+ - [`xcode-build-orchestrator`](../xcode-build-orchestrator/SKILL.md) for full orchestration
83
+
84
+ ## Additional Resources
85
+
86
+ - For the benchmark contract, see [references/benchmarking-workflow.md](references/benchmarking-workflow.md)
87
+ - For the shared artifact format, see [references/benchmark-artifacts.md](references/benchmark-artifacts.md)
88
+ - For the JSON schema, see [schemas/build-benchmark.schema.json](schemas/build-benchmark.schema.json)
@@ -0,0 +1,94 @@
1
+ # Benchmark Artifacts
2
+
3
+ All skills in this repository should treat `.build-benchmark/` as the canonical location for measured build evidence.
4
+
5
+ ## Goals
6
+
7
+ - Keep build measurements reproducible.
8
+ - Make clean and incremental build data easy to compare.
9
+ - Preserve enough context for later specialist analysis without rerunning the benchmark.
10
+
11
+ ## Wall-Clock vs Cumulative Task Time
12
+
13
+ The `duration_seconds` field on each run and the `median_seconds` in the summary represent **wall-clock time** -- how long the developer actually waits. This is the primary success metric.
14
+
15
+ The `timing_summary_categories` are **aggregated task times** parsed from Xcode's Build Timing Summary. Because Xcode runs many tasks in parallel across CPU cores, these totals typically exceed the wall-clock duration. A large cumulative `SwiftCompile` value is diagnostic evidence of compiler workload, not proof that compilation is blocking the build. Always compare category totals against the wall-clock median before concluding that a category is a bottleneck.
16
+
17
+ ## File Layout
18
+
19
+ Recommended outputs:
20
+
21
+ - `.build-benchmark/<timestamp>-<scheme>.json`
22
+ - `.build-benchmark/<timestamp>-<scheme>-clean-1.log`
23
+ - `.build-benchmark/<timestamp>-<scheme>-clean-2.log`
24
+ - `.build-benchmark/<timestamp>-<scheme>-clean-3.log`
25
+ - `.build-benchmark/<timestamp>-<scheme>-cached-clean-1.log` (when COMPILATION_CACHING is enabled)
26
+ - `.build-benchmark/<timestamp>-<scheme>-cached-clean-2.log`
27
+ - `.build-benchmark/<timestamp>-<scheme>-cached-clean-3.log`
28
+ - `.build-benchmark/<timestamp>-<scheme>-incremental-1.log`
29
+ - `.build-benchmark/<timestamp>-<scheme>-incremental-2.log`
30
+ - `.build-benchmark/<timestamp>-<scheme>-incremental-3.log`
31
+
32
+ Use an ISO-like UTC timestamp without spaces so the files sort naturally.
33
+
34
+ ## Artifact Requirements
35
+
36
+ Each JSON artifact should include:
37
+
38
+ - schema version
39
+ - creation timestamp
40
+ - project context
41
+ - environment details when available
42
+ - the normalized build command
43
+ - separate `clean` and `incremental` run arrays
44
+ - summary statistics for each build type
45
+ - parsed timing-summary categories
46
+ - free-form notes for caveats or noise
47
+
48
+ ## Clean, Cached Clean, And Incremental Separation
49
+
50
+ Do not merge different build type measurements into a single list. They answer different questions:
51
+
52
+ - **Clean builds** show full build-system, package, and module setup cost with a cold compilation cache.
53
+ - **Cached clean builds** show clean build cost when the compilation cache is warm. This is the realistic scenario for branch switching, pulling changes, or Clean Build Folder. Only present when `COMPILATION_CACHING = YES` is detected.
54
+ - **Incremental builds** show edit-loop productivity and script or cache invalidation problems.
55
+
56
+ ## Raw Logs
57
+
58
+ Store raw `xcodebuild` output beside the JSON artifact whenever possible. That allows later skills to:
59
+
60
+ - re-parse timing summaries
61
+ - inspect failed builds
62
+ - search for long type-check warnings
63
+ - correlate build-system phases with recommendations
64
+
65
+ ## Measurement Caveats
66
+
67
+ ### COMPILATION_CACHING
68
+
69
+ `COMPILATION_CACHING = YES` stores compiled artifacts in a system-managed cache outside DerivedData so that repeated compilations of identical inputs are served from cache. The standard clean-build benchmark (`xcodebuild clean` between runs) may add overhead from cache population without showing the corresponding cache-hit benefit.
70
+
71
+ The benchmark script automatically detects `COMPILATION_CACHING = YES` and runs a **cached clean** benchmark phase. This phase:
72
+
73
+ 1. Builds once to warm the compilation cache.
74
+ 2. Deletes DerivedData (but not the compilation cache) before each measured run.
75
+ 3. Rebuilds, measuring the cache-hit clean build time.
76
+
77
+ The cached clean metric captures the realistic developer experience: branch switching, pulling changes, and Clean Build Folder. Use the cached clean median as the primary comparison metric when evaluating `COMPILATION_CACHING` impact.
78
+
79
+ To skip this phase, pass `--no-cached-clean`.
80
+
81
+ ### First-Run Variance
82
+
83
+ The first clean build after the warmup cycle often runs 20-40% slower than subsequent clean builds due to cold OS-level caches (disk I/O, dynamic linker cache, etc.). The benchmark script mitigates this by running a warmup clean+build cycle before measured runs. If variance between the first and later clean runs is still high, prefer the median or min over the mean, and note the variance in the artifact's `notes` field.
84
+
85
+ ## Shared Consumer Expectations
86
+
87
+ Any skill reading a benchmark artifact should be able to identify:
88
+
89
+ - what was measured
90
+ - how it was measured
91
+ - whether the run succeeded
92
+ - whether the results are stable enough to compare
93
+
94
+ For the authoritative field-level schema, see [../schemas/build-benchmark.schema.json](../schemas/build-benchmark.schema.json).
@@ -0,0 +1,67 @@
1
+ # Benchmarking Workflow
2
+
3
+ Use this reference when you need the full operational contract for collecting Xcode build measurements.
4
+
5
+ ## Goal
6
+
7
+ Produce a benchmark artifact that another skill can trust without rerunning the same setup discovery.
8
+
9
+ ## Benchmark Contract
10
+
11
+ - Measure both clean and incremental builds unless the user narrows the scope.
12
+ - Use the same scheme, configuration, destination, and command flags for all measured runs.
13
+ - Record the exact command and any environment overrides.
14
+ - Keep clean and incremental runs in separate arrays in the artifact.
15
+ - Save wall-clock timing plus any parsed timing-summary categories.
16
+
17
+ ## Suggested Run Counts
18
+
19
+ - Clean builds: 3 measured runs
20
+ - Incremental builds: 3 measured runs
21
+ - Warm-up: 0 to 1 validation run, excluded from the summary unless the user explicitly wants it included
22
+
23
+ ## Clean Build Rules
24
+
25
+ - Clear build products with `xcodebuild clean` or an equivalent clean-build-folder step before each measured clean run.
26
+ - Do not change scheme, destination, or configuration between runs.
27
+ - If the command fails, store the failure and stop rather than mixing failed and successful runs.
28
+
29
+ ## Incremental Build Rules
30
+
31
+ - Use the same build command after a successful baseline build.
32
+ - Do not clean between incremental runs.
33
+ - If the user wants edit-loop benchmarking, note the file change strategy explicitly in the artifact.
34
+ - If there are no source edits between runs, label the result as no-edit incremental timing.
35
+
36
+ ## What To Capture
37
+
38
+ At minimum, keep:
39
+
40
+ - timestamp
41
+ - host machine info if available
42
+ - Xcode version if available
43
+ - workspace or project path
44
+ - scheme, configuration, destination
45
+ - exact `xcodebuild` command
46
+ - duration per run
47
+ - success or failure
48
+ - parsed timing-summary categories
49
+ - notes on warm-up behavior or unusual noise
50
+
51
+ ## Reporting Guidance
52
+
53
+ Use medians for the headline number. Also include:
54
+
55
+ - min and max
56
+ - range
57
+ - category totals from the timing summary
58
+ - obvious outliers or instability
59
+
60
+ ## Handoff Expectations
61
+
62
+ The next optimization skill should be able to answer:
63
+
64
+ - Is the main problem clean, incremental, or both?
65
+ - Which build categories dominate time?
66
+ - Which command produced the evidence?
67
+ - Is the baseline trustworthy enough to compare before and after changes?