@leejungkiin/awkit 1.7.0 → 1.7.4

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 (241) hide show
  1. package/bin/awk.js +576 -84
  2. package/core/CLAUDE.md +1 -1
  3. package/core/GEMINI.md +148 -167
  4. package/core/GEMINI.md.bak +149 -116
  5. package/core/skill-runtime-manifest.json +3 -0
  6. package/docs/Claude Fable 5.md +3826 -0
  7. package/docs/android_kotlin_system_instruction.md +210 -0
  8. package/docs/brainstorm_ponytail_integration.md +146 -0
  9. package/docs/brainstorm_smart_setup.md +113 -0
  10. package/docs/deep-research-report (1).md +293 -0
  11. package/docs/history/GEMINI.v1.md +135 -0
  12. package/docs/history/brainstorm_antigravity_unified_architecture.v1.md +105 -0
  13. package/docs/history/implementation_plan.v1.md +58 -0
  14. package/package.json +4 -1
  15. package/scripts/artifact-storage.js +130 -0
  16. package/scripts/automation-gate.js +40 -7
  17. package/scripts/claude-plan.js +76 -0
  18. package/scripts/dependency-manager.js +210 -0
  19. package/scripts/exec-rtk.js +11 -5
  20. package/scripts/i18n-helper.js +381 -0
  21. package/scripts/multi-model-pipeline.js +144 -0
  22. package/skill-packs/mobile-ios/pack.json +4 -2
  23. package/skill-packs/reverse-engineering/pack.json +1 -0
  24. package/skills/CATALOG.md +20 -0
  25. package/skills/GEMINI.md +9 -1
  26. package/skills/TRIGGER_INDEX.md +10 -0
  27. package/skills/ai-music/SKILL.md +275 -0
  28. package/skills/android-re-analyzer/SKILL.md +238 -0
  29. package/skills/android-re-analyzer/references/api-extraction-patterns.md +119 -0
  30. package/skills/android-re-analyzer/references/call-flow-analysis.md +176 -0
  31. package/skills/android-re-analyzer/references/fernflower-usage.md +115 -0
  32. package/skills/android-re-analyzer/references/jadx-usage.md +116 -0
  33. package/skills/android-re-analyzer/references/setup-guide.md +221 -0
  34. package/skills/android-re-analyzer/scripts/check-deps.sh +129 -0
  35. package/skills/android-re-analyzer/scripts/decompile.sh +375 -0
  36. package/skills/android-re-analyzer/scripts/find-api-calls.sh +118 -0
  37. package/skills/android-re-analyzer/scripts/install-dep.sh +448 -0
  38. package/skills/animal-island-ui-style/SKILL.md +1450 -0
  39. package/skills/app-store-review-agent/SKILL.md +164 -0
  40. package/skills/app-store-review-agent/references/guidelines/README.md +154 -0
  41. package/skills/app-store-review-agent/references/guidelines/by-app-type/ai_apps.md +37 -0
  42. package/skills/app-store-review-agent/references/guidelines/by-app-type/all_apps.md +50 -0
  43. package/skills/app-store-review-agent/references/guidelines/by-app-type/crypto_finance.md +31 -0
  44. package/skills/app-store-review-agent/references/guidelines/by-app-type/games.md +31 -0
  45. package/skills/app-store-review-agent/references/guidelines/by-app-type/health_fitness.md +31 -0
  46. package/skills/app-store-review-agent/references/guidelines/by-app-type/kids.md +27 -0
  47. package/skills/app-store-review-agent/references/guidelines/by-app-type/macos.md +38 -0
  48. package/skills/app-store-review-agent/references/guidelines/by-app-type/social_ugc.md +32 -0
  49. package/skills/app-store-review-agent/references/guidelines/by-app-type/subscription_iap.md +34 -0
  50. package/skills/app-store-review-agent/references/guidelines/by-app-type/vpn.md +18 -0
  51. package/skills/app-store-review-agent/references/rules/design/minimum_functionality.md +96 -0
  52. package/skills/app-store-review-agent/references/rules/design/sign_in_with_apple.md +54 -0
  53. package/skills/app-store-review-agent/references/rules/entitlements/unused_entitlements.md +83 -0
  54. package/skills/app-store-review-agent/references/rules/metadata/accurate_metadata.md +54 -0
  55. package/skills/app-store-review-agent/references/rules/metadata/apple_trademark.md +99 -0
  56. package/skills/app-store-review-agent/references/rules/metadata/china_storefront.md +72 -0
  57. package/skills/app-store-review-agent/references/rules/metadata/competitor_terms.md +56 -0
  58. package/skills/app-store-review-agent/references/rules/metadata/subscription_metadata.md +81 -0
  59. package/skills/app-store-review-agent/references/rules/privacy/privacy_manifest.md +84 -0
  60. package/skills/app-store-review-agent/references/rules/privacy/unnecessary_data.md +60 -0
  61. package/skills/app-store-review-agent/references/rules/subscription/misleading_pricing.md +63 -0
  62. package/skills/app-store-review-agent/references/rules/subscription/missing_tos_pp.md +54 -0
  63. package/skills/awf-ponytail/SKILL.md +91 -0
  64. package/skills/awf-ponytail-review/SKILL.md +67 -0
  65. package/skills/awf-session-restore/SKILL.md +3 -3
  66. package/skills/brainstorm-agent/SKILL.md +11 -2
  67. package/skills/brainstorm-agent/templates/brief-template.md +8 -0
  68. package/skills/claude-planner/SKILL.md +47 -0
  69. package/skills/code-review/SKILL.md +87 -0
  70. package/skills/expo-game-development/SKILL.md +163 -0
  71. package/skills/flutter/LICENSE.txt +202 -0
  72. package/skills/flutter/SKILL.md +127 -0
  73. package/skills/flutter-project-creater/LICENSE.txt +202 -0
  74. package/skills/flutter-project-creater/SKILL.md +106 -0
  75. package/skills/game-developer/SKILL.md +163 -0
  76. package/skills/game-developer/references/ecs-patterns.md +501 -0
  77. package/skills/game-developer/references/multiplayer-networking.md +475 -0
  78. package/skills/game-developer/references/performance-optimization.md +422 -0
  79. package/skills/game-developer/references/unity-patterns.md +271 -0
  80. package/skills/game-developer/references/unreal-cpp.md +352 -0
  81. package/skills/generate-gui-assets/SKILL.md +305 -0
  82. package/skills/generate-gui-assets/agents/openai.yaml +4 -0
  83. package/skills/generate-gui-assets/references/catalog-schema.md +58 -0
  84. package/skills/generate-gui-assets/references/extraction-techniques.md +21 -0
  85. package/skills/generate-gui-assets/references/prompt-patterns.md +58 -0
  86. package/skills/generate-gui-assets/scripts/__pycache__/clean_chroma_edges.cpython-311.pyc +0 -0
  87. package/skills/generate-gui-assets/scripts/build_gui_contact_sheet.py +51 -0
  88. package/skills/generate-gui-assets/scripts/clean_chroma_edges.py +262 -0
  89. package/skills/generate-gui-assets/scripts/copy_approved_icons.py +64 -0
  90. package/skills/generate-gui-assets/scripts/prepare_gui_asset_run.py +91 -0
  91. package/skills/generate-gui-assets/scripts/suggest_grid_options.py +63 -0
  92. package/skills/generate-gui-assets/scripts/validate_gui_catalog.py +50 -0
  93. package/skills/godot-game-development/SKILL.md +142 -0
  94. package/skills/hatch-pet/LICENSE.txt +201 -0
  95. package/skills/hatch-pet/SKILL.md +420 -0
  96. package/skills/hatch-pet/agents/openai.yaml +4 -0
  97. package/skills/hatch-pet/references/animation-rows.md +29 -0
  98. package/skills/hatch-pet/references/codex-pet-contract.md +35 -0
  99. package/skills/hatch-pet/references/qa-rubric.md +60 -0
  100. package/skills/hatch-pet/scripts/__pycache__/clean_chroma_edges.cpython-311.pyc +0 -0
  101. package/skills/hatch-pet/scripts/clean_chroma_edges.py +262 -0
  102. package/skills/hatch-pet/scripts/compose_atlas.py +150 -0
  103. package/skills/hatch-pet/scripts/derive_running_left_from_running_right.py +143 -0
  104. package/skills/hatch-pet/scripts/extract_strip_frames.py +323 -0
  105. package/skills/hatch-pet/scripts/finalize_pet_run.py +382 -0
  106. package/skills/hatch-pet/scripts/generate_pet_images.py +287 -0
  107. package/skills/hatch-pet/scripts/inspect_frames.py +246 -0
  108. package/skills/hatch-pet/scripts/make_contact_sheet.py +96 -0
  109. package/skills/hatch-pet/scripts/package_custom_pet.py +108 -0
  110. package/skills/hatch-pet/scripts/pet_job_status.py +117 -0
  111. package/skills/hatch-pet/scripts/prepare_pet_run.py +673 -0
  112. package/skills/hatch-pet/scripts/queue_pet_repairs.py +172 -0
  113. package/skills/hatch-pet/scripts/record_imagegen_result.py +250 -0
  114. package/skills/hatch-pet/scripts/render_animation_videos.py +134 -0
  115. package/skills/hatch-pet/scripts/render_animation_videos.sh +5 -0
  116. package/skills/hatch-pet/scripts/validate_atlas.py +139 -0
  117. package/skills/i18n-orchestrator/SKILL.md +37 -0
  118. package/skills/ios-simulator-skill/SKILL.md +390 -0
  119. package/skills/ios-simulator-skill/scripts/accessibility_audit.py +300 -0
  120. package/skills/ios-simulator-skill/scripts/app_launcher.py +326 -0
  121. package/skills/ios-simulator-skill/scripts/app_state_capture.py +400 -0
  122. package/skills/ios-simulator-skill/scripts/appearance.py +385 -0
  123. package/skills/ios-simulator-skill/scripts/build_and_test.py +348 -0
  124. package/skills/ios-simulator-skill/scripts/clipboard.py +103 -0
  125. package/skills/ios-simulator-skill/scripts/common/__init__.py +61 -0
  126. package/skills/ios-simulator-skill/scripts/common/cache_utils.py +289 -0
  127. package/skills/ios-simulator-skill/scripts/common/device_utils.py +462 -0
  128. package/skills/ios-simulator-skill/scripts/common/env_config.py +35 -0
  129. package/skills/ios-simulator-skill/scripts/common/hang_pipeline.py +862 -0
  130. package/skills/ios-simulator-skill/scripts/common/hang_sessions.py +490 -0
  131. package/skills/ios-simulator-skill/scripts/common/idb_utils.py +180 -0
  132. package/skills/ios-simulator-skill/scripts/common/screenshot_utils.py +338 -0
  133. package/skills/ios-simulator-skill/scripts/container.py +668 -0
  134. package/skills/ios-simulator-skill/scripts/gesture.py +394 -0
  135. package/skills/ios-simulator-skill/scripts/hang_watcher.py +1533 -0
  136. package/skills/ios-simulator-skill/scripts/keyboard.py +391 -0
  137. package/skills/ios-simulator-skill/scripts/localization_audit.py +483 -0
  138. package/skills/ios-simulator-skill/scripts/location.py +467 -0
  139. package/skills/ios-simulator-skill/scripts/log_monitor.py +493 -0
  140. package/skills/ios-simulator-skill/scripts/model_inspector.py +645 -0
  141. package/skills/ios-simulator-skill/scripts/navigator.py +461 -0
  142. package/skills/ios-simulator-skill/scripts/privacy_manager.py +310 -0
  143. package/skills/ios-simulator-skill/scripts/push_notification.py +240 -0
  144. package/skills/ios-simulator-skill/scripts/screen_mapper.py +296 -0
  145. package/skills/ios-simulator-skill/scripts/sim_health_check.sh +245 -0
  146. package/skills/ios-simulator-skill/scripts/sim_list.py +299 -0
  147. package/skills/ios-simulator-skill/scripts/simctl_boot.py +312 -0
  148. package/skills/ios-simulator-skill/scripts/simctl_create.py +316 -0
  149. package/skills/ios-simulator-skill/scripts/simctl_delete.py +357 -0
  150. package/skills/ios-simulator-skill/scripts/simctl_erase.py +351 -0
  151. package/skills/ios-simulator-skill/scripts/simctl_shutdown.py +290 -0
  152. package/skills/ios-simulator-skill/scripts/simulator_selector.py +375 -0
  153. package/skills/ios-simulator-skill/scripts/status_bar.py +250 -0
  154. package/skills/ios-simulator-skill/scripts/test_recorder.py +323 -0
  155. package/skills/ios-simulator-skill/scripts/visual_diff.py +235 -0
  156. package/skills/ios-simulator-skill/scripts/xcode/__init__.py +13 -0
  157. package/skills/ios-simulator-skill/scripts/xcode/builder.py +397 -0
  158. package/skills/ios-simulator-skill/scripts/xcode/cache.py +204 -0
  159. package/skills/ios-simulator-skill/scripts/xcode/config.py +178 -0
  160. package/skills/ios-simulator-skill/scripts/xcode/reporter.py +343 -0
  161. package/skills/ios-simulator-skill/scripts/xcode/xcresult.py +451 -0
  162. package/skills/ios-visual-qa-strategist/SKILL.md +111 -0
  163. package/skills/ios-visual-qa-strategist/agents/openai.yaml +4 -0
  164. package/skills/ios-visual-qa-strategist/references/ios-tool-selection.md +61 -0
  165. package/skills/ios-visual-qa-strategist/references/minimal-capture-policy.md +56 -0
  166. package/skills/ios-visual-qa-strategist/references/visual-reasoning-heuristics.md +53 -0
  167. package/skills/orchestrator/SKILL.md +0 -20
  168. package/skills/persistent-storage/SKILL.md +55 -0
  169. package/skills/short-maker/SKILL.md +23 -0
  170. package/skills/short-maker/scripts/effects.js +56 -0
  171. package/skills/short-maker/scripts/shortmaker-bridge.js +332 -0
  172. package/skills/short-maker/scripts/videomix.js +601 -0
  173. package/skills/short-maker/templates/hyperframes/cinematic-character.template.html +172 -0
  174. package/skills/short-maker/templates/hyperframes/index.template.html +194 -0
  175. package/skills/smali-to-kotlin/SKILL.md +128 -0
  176. package/skills/smali-to-kotlin/examples/getting-started/tech-stack.md +58 -0
  177. package/skills/smali-to-kotlin/examples/pipeline/data-ui-parity.md +118 -0
  178. package/skills/smali-to-kotlin/examples/pipeline/scanner-and-bootstrap.md +106 -0
  179. package/skills/smali-to-kotlin/library-patterns.md +189 -0
  180. package/skills/smali-to-kotlin/phase-0-discovery.md +128 -0
  181. package/skills/smali-to-kotlin/phase-1-architecture.md +166 -0
  182. package/skills/smali-to-kotlin/phase-2-blueprint-ui.md +347 -0
  183. package/skills/smali-to-kotlin/phase-2-blueprint.md +228 -0
  184. package/skills/smali-to-kotlin/phase-3-build.md +248 -0
  185. package/skills/smali-to-kotlin/phase-3-logic-build.md +268 -0
  186. package/skills/smali-to-kotlin/smali-reading-guide.md +310 -0
  187. package/skills/smali-to-kotlin/templates/app-map.md +101 -0
  188. package/skills/smali-to-kotlin/templates/architecture.md +142 -0
  189. package/skills/smali-to-kotlin/templates/blueprint.md +145 -0
  190. package/skills/spec-gate/SKILL.md +6 -2
  191. package/skills/symphony-enforcer/SKILL.md +8 -0
  192. package/skills/symphony-enforcer/examples/mindful-stop.md +2 -0
  193. package/skills/symphony-enforcer/examples/three-phase.md +16 -0
  194. package/skills/symphony-enforcer/examples/trigger-points.md +7 -1
  195. package/skills/unity-game-development/SKILL.md +231 -0
  196. package/skills/verification-gate/SKILL.md +4 -2
  197. package/skills/video-edit/SKILL.md +36 -0
  198. package/skills/video-edit/scripts/video_edit.py +324 -0
  199. package/templates/setup-mapping.json +48 -0
  200. package/templates/specs/design-template.md +161 -71
  201. package/templates/specs/requirements-template.md +65 -133
  202. package/templates/specs/task-spec-template.xml +3 -0
  203. package/workflows/_uncategorized/critic.md +40 -0
  204. package/workflows/_uncategorized/git-rebase-flow.md +81 -0
  205. package/workflows/_uncategorized/image-gen.md +118 -0
  206. package/workflows/_uncategorized/multi-model-pipeline.md +60 -0
  207. package/workflows/_uncategorized/pixel-gen.md +86 -0
  208. package/workflows/_uncategorized/pixel-setup.md +90 -0
  209. package/workflows/_uncategorized/ponytail-review.md +59 -0
  210. package/workflows/_uncategorized/reverse-android-build.md +222 -0
  211. package/workflows/_uncategorized/reverse-android-design.md +139 -0
  212. package/workflows/_uncategorized/reverse-android-discover.md +150 -0
  213. package/workflows/_uncategorized/reverse-android-scan.md +158 -0
  214. package/workflows/_uncategorized/reverse-android.md +143 -0
  215. package/workflows/_uncategorized/reverse-ios-build.md +240 -0
  216. package/workflows/_uncategorized/reverse-ios-design.md +112 -0
  217. package/workflows/_uncategorized/reverse-ios-discover.md +120 -0
  218. package/workflows/_uncategorized/reverse-ios-scan.md +155 -0
  219. package/workflows/_uncategorized/reverse-ios.md +152 -0
  220. package/workflows/_uncategorized/safety-router.md +34 -0
  221. package/workflows/_uncategorized/teach.md +89 -0
  222. package/workflows/_uncategorized/verify-ui.md +53 -0
  223. package/workflows/_uncategorized/visualize-screenshots.md +34 -0
  224. package/workflows/ads/ads-analyst.md +201 -0
  225. package/workflows/ads/ads-audit.md +106 -0
  226. package/workflows/ads/ads-optimize.md +97 -0
  227. package/workflows/ads/ads-targeting.md +241 -0
  228. package/workflows/ads/adsExpert.md +160 -0
  229. package/workflows/ads/smali-ads-config.md +400 -0
  230. package/workflows/ads/smali-ads-flow.md +331 -0
  231. package/workflows/ads/smali-ads-interstitial.md +377 -0
  232. package/workflows/ads/smali-ads-native.md +382 -0
  233. package/workflows/context/teach.md +89 -0
  234. package/workflows/gitnexus.md +8 -8
  235. package/workflows/lifecycle/brainstorm.md +43 -0
  236. package/workflows/lifecycle/code.md +5 -0
  237. package/workflows/lifecycle/init.md +23 -5
  238. package/workflows/lifecycle/multi-model-pipeline.md +60 -0
  239. package/workflows/quality/ponytail-review.md +59 -0
  240. package/workflows/roles/critic.md +40 -0
  241. package/workflows/roles/safety-router.md +34 -0
@@ -62,12 +62,16 @@ OPTIONAL: TECH-SPEC.md, existing DB schema, NeuralMemory context
62
62
 
63
63
  ## 🔄 PROCESS (8 Phases)
64
64
 
65
- ### Phase 1: Context Gathering (Silent)
65
+ ### Phase 1: Context Gathering & Planning Route (Silent)
66
66
  - **Kiro check first** → .kiro/specs/design.md → AUTO-PASS Gate 2
67
+ - **Claude Planner check (New):** Invoke `claude-planner` skill to delegate planning to Claude CLI.
68
+ - If Claude CLI is installed & authenticated: Execute script to create `implementation_plan.md` via Claude Opus.
69
+ - If Claude CLI is missing/expired: Fall back immediately to planning using the current active model.
67
70
  - Fallback: Read BRIEF.md → extract entities, relationships, rules
68
71
  - Read .project-identity, TECH-SPEC.md, NeuralMemory
69
72
 
70
73
  ### Phase 2: Data Model Design
74
+ - Use either the plan generated by Claude (if successful) or model-generated plan.
71
75
  - Per entity: Fields, Indexes, Relationships, Constraints
72
76
  - Template → `templates/design-templates.md`
73
77
 
@@ -121,7 +125,7 @@ always_do:
121
125
  TRIGGERED BY: orchestrator (Gate 2 check fail)
122
126
  DEPENDS ON: brainstorm-agent output (Gate 1 must pass)
123
127
  FEEDS INTO: symphony-enforcer (Gate 3)
124
- WORKS WITH: nm-memory-sync
128
+ WORKS WITH: nm-memory-sync, claude-planner
125
129
  ```
126
130
 
127
131
  ---
@@ -67,6 +67,14 @@ THREE-PHASE MAPPING (Gate 4 — COMPLEX tasks với UI):
67
67
  - Phase C all features done → report_progress(90%) → Gate 5
68
68
  ```
69
69
 
70
+ ## State Handoff Protocol (Context-Rich Tasks)
71
+
72
+ ```
73
+ BẮT BUỘC lưu context vào task description (`-d`) để tránh quét lại project:
74
+ - Khi tạo task: Kèm `Files:` và `Anchor:` symbol.
75
+ - Khi dừng/pause task: BẮT BUỘC chạy `symphony task update <id> -d "Files: ... | Anchor: ... | State: ..."` để lưu state hiện tại.
76
+ ```
77
+
70
78
  ## XML Task Spec trong Implementation Plans
71
79
 
72
80
  ```xml
@@ -26,6 +26,7 @@ AI duy trì state xuyên suốt session:
26
26
  iteration_map = {} # feature_name → count
27
27
  tasks_completed = 0 # count tasks done trong session
28
28
  last_gate_completed = "" # "phase_c" | "gate_5" | ""
29
+ goal_mode = false # true khi /goal, active Codex goal, hoặc user nói rõ "goal mode"
29
30
  ```
30
31
 
31
32
  ---
@@ -91,6 +92,7 @@ Khi nhận request chứa trigger keyword:
91
92
  2. `last_gate_completed` = "phase_c" hoặc "gate_5"
92
93
 
93
94
  ```
95
+ IF goal_mode → SKIP REST STOP (note ngắn, tiếp tục goal)
94
96
  IF NOT mindful_enabled OR NOT milestone_rest → SKIP (TP4 chạy như cũ)
95
97
 
96
98
  Khi trigger:
@@ -11,6 +11,7 @@ AI PHẢI duy trì trạng thái phase hiện tại xuyên suốt Gate 4:
11
11
  current_phase = "A" | "B" | "C" | "none"
12
12
  phase_b_confirmed = false | true
13
13
  checkpoint_count = 0
14
+ goal_mode = true | false
14
15
  ```
15
16
 
16
17
  ## Auto-Detection: Khi nào kích hoạt Three-Phase?
@@ -31,6 +32,14 @@ Nếu CẢ HAI điều kiện thỏa:
31
32
  → Hiển thị Phase Announcement Block
32
33
  ```
33
34
 
35
+ ## Goal Mode Override
36
+
37
+ Khi `goal_mode = true` (`/goal`, active Codex goal, hoặc user nói rõ "goal mode"):
38
+ - Three-Phase vẫn chạy, nhưng checkpoint KHÔNG được đặt `BlockedOnUser=true`.
39
+ - Phase B tự verify bằng best-effort visual/build checks rồi chuyển Phase C.
40
+ - Phase C checkpoint được batch/tự verify; chỉ dừng nếu safety, destructive action, data-loss risk, hoặc blocker thật sự.
41
+ - AI PHẢI ghi assumption ngắn vào progress/task state trước khi đi tiếp.
42
+
34
43
  ## Phase Announcement Block (BẮT BUỘC)
35
44
 
36
45
  Khi kích hoạt Three-Phase, AI PHẢI hiển thị:
@@ -65,6 +74,12 @@ auto_triggers:
65
74
  signal: Tất cả [UI] tasks đã done
66
75
  action: |
67
76
  - ⛔ TRIGGER TP1.7 (Checkpoint)
77
+ - NẾU goal_mode=true:
78
+ + Tự verify best-effort (build/render/screenshot nếu khả dụng).
79
+ + Ghi assumption vào task state.
80
+ + TỰ ĐỘNG CHUYỂN SANG PHASE C (BlockedOnUser=false).
81
+ + KHÔNG chờ "APPROVE UI".
82
+ + Bỏ qua các bước manual bên dưới.
68
83
  - Đọc `.project-identity` -> `automation.autoQA`
69
84
  - NẾU `true` (Autonomous Dev-QA Loop):
70
85
  + Tự start App / render ngầm Component.
@@ -106,6 +121,7 @@ auto_triggers:
106
121
  - Bỏ qua TP1.7
107
122
  - Chạy Auto-verification khi `autoVerification: false`
108
123
  - Chờ user test thủ công khi `autoVerification: true`
124
+ - Goal mode mà dừng chờ approval ở Phase B/C
109
125
 
110
126
  ✅ BẮT BUỘC:
111
127
  - Luôn announce phase transition rõ ràng
@@ -81,6 +81,7 @@ File patterns:
81
81
  ## TP1.7: Flexible Checkpoint (Manual vs Auto)
82
82
 
83
83
  **Cấu hình Mode Verification:**
84
+ - Goal mode (`/goal`, active Codex goal, hoặc user nói rõ "goal mode") → checkpoint không chặn. AI tự verify/batch test, ghi assumption, rồi đi tiếp (BlockedOnUser=false).
84
85
  - `{"autoVerification": true}` → **Auto Device Checkpoint (ADC)**: Dùng Maestro tự build & chụp screenshot. Tiến thẳng (BlockedOnUser=false).
85
86
  - `{"autoVerification": false}` (hoặc không khai báo) → **Manual Checkpoint**: Dừng chờ user test (BlockedOnUser=true). **MẶC ĐỊNH an toàn**.
86
87
 
@@ -91,7 +92,12 @@ File patterns:
91
92
  **Action (Tùy theo Mode):**
92
93
  ```
93
94
  1. Report progress trước: symphony_report_progress(current_task, progress)
94
- 2. Kiểm tra cờ `autoVerification` trong .project-identity.
95
+ 2. Nếu goal mode đang bật:
96
+ - Announce ngắn: "Goal mode: checkpoint tự verify, tiếp tục."
97
+ - Chạy best-effort verification phù hợp.
98
+ - Ghi assumption/risk vào task state.
99
+ - Continue với BlockedOnUser=false.
100
+ 3. Nếu không ở goal mode, kiểm tra cờ `autoVerification` trong .project-identity.
95
101
 
96
102
  === TRƯỜNG HỢP 1: autoVerification = false (Default Manual) ===
97
103
  - Announce "🧪 MANUAL USER TEST CHECKPOINT #{N}"
@@ -0,0 +1,231 @@
1
+ ---
2
+ name: unity-game-development
3
+ description: "Expert Unity game development instructions covering MonoBehaviour caching, ScriptableObjects architecture, memory/performance optimizations (no Update instantiations/Find), object pooling, physics FixedUpdate coordination, editor script isolation, and unity-mcp integrations. Keywords: Unity, C#, MonoBehaviour, ScriptableObject, physics, fixedUpdate, compiler directives, object pooling, mobile build, performance profiling."
4
+ version: 1.0.0
5
+ trigger: conditional
6
+ activation_keywords:
7
+ - "Unity"
8
+ - "MonoBehaviour"
9
+ - "ScriptableObject"
10
+ - "unity game"
11
+ - "C#"
12
+ - "FixedUpdate"
13
+ - "object pool"
14
+ ---
15
+
16
+ # Unity Game Development Skill
17
+
18
+ Expert pair-programming rules and standards for building scalable, high-performance Unity games.
19
+
20
+ ## Core Workflow
21
+
22
+ 1. **Analyze Requirements** — Identify genre, target platform (mobile, console, web), target performance (30/60/120 FPS), and multiplayer requirements.
23
+ 2. **Design Architecture** — Structure component relations, separate pure data configs (ScriptableObjects) from runtime execution (MonoBehaviours), and plan physics layer masks.
24
+ 3. **Implement** — Build features using optimized C# patterns, caching components in `Awake()`, and managing scene hierarchies cleanly.
25
+ 4. **Optimize** — Profile script CPU execution time and GPU rendering overhead.
26
+ - ⚠️ **Validation Checkpoint**: Run Unity Profiler (CPU Usage & GPU Usage). Verify frame times stay stably $\le$ 16.6ms (60 FPS) on target hardware. Eliminate GC Allocations in hot paths.
27
+ 5. **Test** — Validate multiplayer sync (latency/desync) and ensure memory footprints do not cause out-of-memory crashes on target platforms.
28
+
29
+ ---
30
+
31
+ ## 📐 Coding Conventions & C# Standards
32
+
33
+ - **Naming Styles**:
34
+ - `PascalCase` for classes, methods, properties, and public fields.
35
+ - `camelCase` for local variables and method parameters.
36
+ - Private class fields MUST be prefixed with `m_` (e.g., `m_Speed`) or `_` (e.g., `_speed`) for immediate visibility.
37
+ - **Access Modifiers**:
38
+ - Keep fields `private` by default. Use `[SerializeField]` to expose private fields to the Unity Inspector instead of making them `public`.
39
+ - **Component Caching**:
40
+ - Always cache components (e.g., `Rigidbody`, `Collider`, `Animator`) in `Awake()` or `Start()`. NEVER call `GetComponent<T>()` in `Update()`, `FixedUpdate()`, or `LateUpdate()`.
41
+
42
+ ---
43
+
44
+ ## 🛠️ MonoBehaviour Caching & Lifecycle Template
45
+
46
+ ```csharp
47
+ using UnityEngine;
48
+
49
+ [RequireComponent(typeof(Rigidbody))]
50
+ public class PlayerController : MonoBehaviour
51
+ {
52
+ [Header("Movement Settings")]
53
+ [SerializeField] private float m_MoveSpeed = 5f;
54
+ [SerializeField] private Transform m_Target;
55
+
56
+ // Cached references
57
+ private Rigidbody m_Rb;
58
+ private Animator m_Animator;
59
+
60
+ private void Awake()
61
+ {
62
+ // Cache references immediately
63
+ m_Rb = GetComponent<Rigidbody>();
64
+ m_Animator = GetComponent<Animator>();
65
+ }
66
+
67
+ private void Start()
68
+ {
69
+ // Initialize targets or lookups
70
+ if (m_Target == null)
71
+ {
72
+ var playerObj = GameObject.FindGameObjectWithTag("Player");
73
+ if (playerObj != null)
74
+ {
75
+ m_Target = playerObj.transform;
76
+ }
77
+ }
78
+ }
79
+
80
+ private void FixedUpdate()
81
+ {
82
+ if (m_Target == null) return;
83
+
84
+ // Perform physics manipulation in FixedUpdate using fixedDeltaTime
85
+ Vector3 direction = (m_Target.position - transform.position).normalized;
86
+ m_Rb.MovePosition(transform.position + direction * m_MoveSpeed * Time.fixedDeltaTime);
87
+ }
88
+
89
+ private void OnDisable()
90
+ {
91
+ // Clean up coroutines, listeners, and event subscriptions to avoid memory leaks
92
+ StopAllCoroutines();
93
+ }
94
+ }
95
+ ```
96
+
97
+ ---
98
+
99
+ ## 📦 Data-Driven Design with ScriptableObjects
100
+
101
+ Separate logic from static configuration data. Use `ScriptableObject` instances (`.asset` files) to store config data.
102
+
103
+ ```csharp
104
+ // Configuration definition
105
+ [CreateAssetMenu(fileName = "WeaponConfig", menuName = "Configs/Weapon")]
106
+ public class WeaponConfig : ScriptableObject
107
+ {
108
+ public string weaponName;
109
+ public int baseDamage;
110
+ public float fireRate;
111
+ public GameObject projectilePrefab;
112
+ public AudioClip fireSFX;
113
+ }
114
+
115
+ // MonoBehaviour execution
116
+ public class WeaponManager : MonoBehaviour
117
+ {
118
+ [SerializeField] private WeaponConfig m_Config;
119
+ private float m_NextFireTime;
120
+
121
+ public void Fire()
122
+ {
123
+ if (Time.time < m_NextFireTime) return;
124
+
125
+ // Execute behavior using config data
126
+ Instantiate(m_Config.projectilePrefab, transform.position, transform.rotation);
127
+ m_NextFireTime = Time.time + (1f / m_Config.fireRate);
128
+ }
129
+ }
130
+ ```
131
+
132
+ ---
133
+
134
+ ## ⚡ Memory & Performance Optimization
135
+
136
+ - **Zero Instantiations in Game Loop**:
137
+ - Never call `Instantiate()`, `Destroy()`, `new List()`, or allocate arrays inside `Update()` or `FixedUpdate()`. Use **Object Pools**.
138
+ - **Avoid Raycast Allocation**:
139
+ - Use `Physics.RaycastNonAlloc` instead of `Physics.RaycastAll` to avoid garbage collection pressure.
140
+ - **CompareTag Method**:
141
+ - Use `other.CompareTag("Player")` instead of `other.tag == "Player"`. The latter allocates string memory under the hood.
142
+
143
+ ### Object Pooling Pattern
144
+
145
+ Use Unity's built-in `UnityEngine.Pool` or a simple custom implementation:
146
+
147
+ ```csharp
148
+ using System.Collections.Generic;
149
+ using UnityEngine;
150
+
151
+ public class ProjectilePool : MonoBehaviour
152
+ {
153
+ [SerializeField] private GameObject m_Prefab;
154
+ [SerializeField] private int m_InitialSize = 20;
155
+
156
+ private Queue<GameObject> m_Pool = new Queue<GameObject>();
157
+
158
+ private void Start()
159
+ {
160
+ for (int i = 0; i < m_InitialSize; i++)
161
+ {
162
+ GameObject obj = Instantiate(m_Prefab, transform);
163
+ obj.SetActive(false);
164
+ m_Pool.Enqueue(obj);
165
+ }
166
+ }
167
+
168
+ public GameObject Get()
169
+ {
170
+ if (m_Pool.Count > 0)
171
+ {
172
+ GameObject obj = m_Pool.Dequeue();
173
+ obj.SetActive(true);
174
+ return obj;
175
+ }
176
+ return Instantiate(m_Prefab); // Fallback expansion
177
+ }
178
+
179
+ public void ReturnToPool(GameObject obj)
180
+ {
181
+ obj.SetActive(false);
182
+ m_Pool.Enqueue(obj);
183
+ }
184
+ }
185
+ ```
186
+
187
+ ---
188
+
189
+ ## 🔒 Editor Scripting & Conditional Compilation
190
+
191
+ Always isolate Editor-only scripts (e.g. Inspector customizations) to prevent build compile failures:
192
+ - Place Editor scripts inside a directory named `Editor/`.
193
+ - Or wrap Editor-only code blocks using compiler directives:
194
+ ```csharp
195
+ #if UNITY_EDITOR
196
+ using UnityEditor;
197
+ #endif
198
+
199
+ public class CustomTool : MonoBehaviour
200
+ {
201
+ public void ResetProgress()
202
+ {
203
+ // ...
204
+ }
205
+ }
206
+
207
+ #if UNITY_EDITOR
208
+ [CustomEditor(typeof(CustomTool))]
209
+ public class CustomToolEditor : Editor
210
+ {
211
+ public override void OnInspectorGUI()
212
+ {
213
+ DrawDefaultInspector();
214
+ CustomTool tool = (CustomTool)target;
215
+ if (GUILayout.Button("Reset Progress"))
216
+ {
217
+ tool.ResetProgress();
218
+ }
219
+ }
220
+ }
221
+ #endif
222
+ ```
223
+
224
+ ---
225
+
226
+ ## 🔌 Unity MCP Integration (Advanced)
227
+
228
+ To inspect scenes, nodes, and modify properties programmatically inside the editor:
229
+ 1. Ensure the Unity Editor is running the [Unity MCP Server](https://github.com/justinpbarnett/unity-mcp).
230
+ 2. Configure Cursor/Claude `mcp_config.json` with the relay connection.
231
+ 3. Use the MCP tools prefixed with `mcp__unity__` to query the active hierarchy.
@@ -33,7 +33,9 @@ BEFORE claiming any status or expressing satisfaction:
33
33
  - If NO: State actual status with evidence
34
34
  - If YES: State claim WITH evidence
35
35
  5. ONLY THEN: Make the claim
36
- 6. AUTO-COMMIT: Build 0 errors git add → git commit → git push (non-force)
36
+ 6. AUTO-COMMIT (TÙY CHỌN Mặc định TẮT):
37
+ - Chỉ tự động commit nếu `automation.git.autoCommit: true` được bật trong `.project-identity`.
38
+ - Nếu được bật: Build 0 errors → git add → git commit → git push (non-force)
37
39
  - Do NOT ask user permission for regular commits
38
40
  - Use conventional commit message (fix:/feat:/refactor:)
39
41
  - If push fails → git pull --rebase && git push (retry once)
@@ -99,7 +101,7 @@ If you catch yourself thinking any of these, STOP and run verification:
99
101
 
100
102
  **Build:**
101
103
  ```
102
- ✅ [Run build] → [See: BUILD SUCCEEDED] → auto git add+commit+push → "Build passes, committed & pushed"
104
+ ✅ [Run build] → [See: BUILD SUCCEEDED] → (nếu bật auto git) auto git add+commit+push → "Build passes, committed & pushed"
103
105
  ❌ "Linter passed so build is fine"
104
106
  ❌ Build succeeded but forgot to commit
105
107
  ```
@@ -0,0 +1,36 @@
1
+ ---
2
+ name: video-edit
3
+ description: "Biên tập video dọc (9:16) từ EDL JSON: cắt shot, nhạc nền, captions PNG (không dùng drawtext), decor overlays, guardrail chống timeline vô hạn."
4
+ version: 0.1.0
5
+ trigger: conditional
6
+ activation_keywords:
7
+ - "biên tập video"
8
+ - "render video"
9
+ - "dựng video"
10
+ - "caption video"
11
+ - "edit video"
12
+ ---
13
+
14
+ ## Usage
15
+
16
+ ```bash
17
+ python ~/.gemini/antigravity/skills/video-edit/scripts/video_edit.py render \
18
+ --edl <path-to-edl.json> \
19
+ --project-root <repo-root> \
20
+ --out <output.mp4> \
21
+ --preset cinematic \
22
+ --crf 23 \
23
+ --badge tip --badge-duration 3
24
+ ```
25
+
26
+ ## Requirements
27
+
28
+ - ffmpeg + ffprobe on PATH
29
+ - Python + Pillow (PIL)
30
+ - Fonts in `<repo-root>/assets/fonts/` (fallback to macOS Arial)
31
+ - Optional overlays in `<repo-root>/assets/overlays/`
32
+
33
+ ## Notes
34
+
35
+ - Không dùng `drawtext` để tránh lỗi thiếu filter trên một số bản ffmpeg.
36
+ - Guardrails: mỗi PNG overlay input được giới hạn `-t`, và output bị `trim` + `-shortest` để không bao giờ kéo dài vô hạn.