@leejungkiin/awkit 1.1.9 → 1.3.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.
@@ -4,11 +4,11 @@ description: >-
4
4
  Gate 2 — Architecture & Data Design Gate. Chốt thiết kế kỹ thuật (DB Schema,
5
5
  API Contract, State Machine) TRƯỚC KHI cho phép code. Bắt buộc user approve
6
6
  thiết kế để tránh "vừa làm vừa sửa database". Auto-triggered bởi orchestrator
7
- khi Gate 2 chưa thỏa mãn.
7
+ khi Gate 2 chưa thỏa mãn. Hỗ trợ auto-detect .kiro/specs/design.md.
8
8
  metadata:
9
9
  stage: core
10
- version: "1.0"
11
- tags: [gate, architecture, database, design, spec-first, core]
10
+ version: "1.1"
11
+ tags: [gate, architecture, database, design, spec-first, core, kiro]
12
12
  requires: orchestrator
13
13
  agent: Architect
14
14
  trigger: conditional
@@ -58,8 +58,13 @@ Skill này được kích hoạt bởi:
58
58
  Trước khi chạy, PHẢI có:
59
59
 
60
60
  ```
61
- REQUIRED:
62
- docs/specs/<feature>.md HOẶC BRIEF.md (output từ Gate 1)
61
+ REQUIRED (theo thứ tự ưu tiên):
62
+ CHECK 1 (Kiro): .kiro/specs/<module>/design.md
63
+ → Nếu tồn tại → AUTO-APPROVE: Load làm pre-approved architecture
64
+ → Skip Phase 2-7, thẳng Phase 8 (Write to NeuralMemory)
65
+ → Thông báo: "🔍 Phát hiện .kiro/specs design docs.
66
+ Thiết kế đã được chốt trong Kiro IDE. Auto-approve → Gate 2 PASS."
67
+ → CHECK 2: docs/specs/<feature>.md HOẶC BRIEF.md (output từ Gate 1)
63
68
  → .project-identity (projectId, techStack)
64
69
 
65
70
  OPTIONAL:
@@ -75,6 +80,17 @@ OPTIONAL:
75
80
  ### Phase 1: Context Gathering (Silent)
76
81
 
77
82
  ```
83
+ 0. CHECK KIRO SPECS FIRST (HIGHEST PRIORITY):
84
+ - Scan .kiro/specs/<module>/design.md
85
+ - Nếu tồn tại:
86
+ → Load design.md làm approved architecture
87
+ → Load .kiro/specs/<project>/design.md cho project-wide schema
88
+ → Load .kiro/specs/<module>/requirements.md cho acceptance criteria
89
+ → Lưu vào NeuralMemory: "Kiro architecture loaded: <summary>"
90
+ → SKIP Phase 2-7, thẳng Phase 8 (write decision to NeuralMemory)
91
+ → Gate 2 AUTO-PASS
92
+ - Không tồn tại → tiếp Phase 1 bình thường
93
+
78
94
  1. Đọc BRIEF.md / spec document → Extract:
79
95
  - Core entities (Users, Orders, Products...)
80
96
  - Relationships (1-N, N-N)
@@ -188,7 +204,21 @@ checklist:
188
204
  - [ ] Input validation cho mọi user input?
189
205
  ```
190
206
 
191
- ### Phase 6: Present & Approval
207
+ ### Phase 6: Multi-Role Architecture Review (AI Simulated)
208
+
209
+ **Trước khi gửi cho user approve, AI TỰ ĐỘNG đóng 5 vai trò chuyên sâu để soát lỗi:**
210
+
211
+ ```
212
+ 1. DBA (Database Admin): Đã đánh index các trường queries thường xuyên? Bảng có chuẩn hóa (normalize) chưa? Có issue N+1 query không?
213
+ 2. Backend Lead: API có reusable không? Có tính đến rate limit chưa? Transaction boundaries ở đâu?
214
+ 3. Security Officer: Có chống SQL Injection không? Data at rest/in transit encrypt thế nào? Cấp quyền Row-level (RBAC)?
215
+ 4. QA Automation: Việc setup test data có khó không? Mock API/DB có thuận lợi không?
216
+ 5. SRE / DevOps: Nếu data lớn lên, hệ thống có scale nổi? Quá trình migrate db (schema update) có gây downtime không?
217
+
218
+ *Nếu có P0/P1 issues, AI phải fix bản draft ngay lập tức.*
219
+ ```
220
+
221
+ ### Phase 7: Present & Approval
192
222
 
193
223
  ```
194
224
  Present cho user với format:
@@ -206,8 +236,7 @@ Present cho user với format:
206
236
  ## State Machine
207
237
  [Phase 4 output — nếu có]
208
238
 
209
- ## Self-Review
210
- [Phase 5 checklist results]
239
+ [Phase 7 checklist results]
211
240
 
212
241
  ## Concerns & Trade-offs
213
242
  - [Concern 1]: [Mô tả + recommendation]
@@ -219,7 +248,7 @@ Present cho user với format:
219
248
  ───────────────────────────────────
220
249
  ```
221
250
 
222
- ### Phase 7: Write Design Doc
251
+ ### Phase 8: Write Design Doc
223
252
 
224
253
  Sau khi user approve:
225
254
 
@@ -309,4 +338,4 @@ WORKS WITH: nm-memory-sync (store architectural decisions)
309
338
 
310
339
  ---
311
340
 
312
- *spec-gate v1.0 — Architecture & Data Design Gate for AWKit*
341
+ *spec-gate v1.1 — Architecture & Data Design Gate for AWKit (Kiro Spec Integration)*
@@ -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.3: Completion Status Protocol, Search-Before-Building, Boil-the-Lake.
7
+ v3.4: Kiro Spec Integration, Completion Status Protocol, Search-Before-Building, Boil-the-Lake.
8
8
  metadata:
9
9
  stage: core
10
- version: "3.3"
11
- replaces: "v2.0"
10
+ version: "3.4"
11
+ replaces: "v3.3"
12
12
  requires: symphony-orchestrator
13
- tags: [symphony, enforcement, checkpoint, task-lifecycle, core, spec-first, auto-next]
13
+ tags: [symphony, enforcement, checkpoint, task-lifecycle, core, spec-first, auto-next, kiro]
14
14
  agent: Symphony Enforcer
15
15
  allowed-tools:
16
16
  - symphony_create_task
@@ -24,10 +24,11 @@ invocation-type: auto
24
24
  priority: 1
25
25
  ---
26
26
 
27
- # Symphony Enforcer v3.3Completion Status Protocol + Gstack Principles
27
+ # Symphony Enforcer v3.4Kiro Spec Integration + Completion Status Protocol
28
28
 
29
29
  > **Purpose:** Đảm bảo AI KHÔNG BAO GIỜ quên cập nhật Symphony.
30
- > **Key Changes v3.3:**
30
+ > **Key Changes v3.4:**
31
+ > - **Kiro Spec Integration**: Auto-detect `.kiro/specs/` → load specs + import tasks
31
32
  > - **Completion Status Protocol**: 4-status (DONE/DONE_WITH_CONCERNS/BLOCKED/NEEDS_CONTEXT)
32
33
  > - **Design Compliance (TP1.5)**: Đối chiếu schema changes vs approved design doc
33
34
  > - **Pre-Plan Gate**: Đọc spec trước khi plan, hỏi user về constraints
@@ -47,7 +48,7 @@ KHÔNG CÓ NGOẠI LỆ:
47
48
  - AI tự detect completion và auto-complete task
48
49
  - Task done → PHẢI atomic git commit trước khi suggest next
49
50
  - Kết thúc task PHẢI kèm next suggestion
50
- - BỎ QUA BẤT KỲ STEP NÀO = VI PHẠM
51
+ - BỎ QUA BẤT BẤT KỲ STEP NÀO = VI PHẠM
51
52
  ```
52
53
 
53
54
  ---
@@ -74,30 +75,47 @@ KHÔNG được bắt đầu work cho đến khi TẤT CẢ steps ✅.
74
75
  → Output: "🧠 Step 2/5: Brain ✅ — switched to {projectId}"
75
76
  ```
76
77
 
77
- ### Step 3: Spec Alignment — Đọc Project Spec (NEW v3.0)
78
+ ### Step 3: Spec Alignment — Đọc Project Spec (v3.4 + Kiro)
78
79
 
79
80
  ```
80
- Kiểm tra: docs/specs/PROJECT.md tồn tại?
81
- → CÓ Đọc silent: PROJECT.md + TECH-SPEC.md + REQUIREMENTS.md
82
- Extract constraints liên quan đến task hiện tại
83
- NẾU PLANNING mode:
84
- - Hỏi user 1-3 câu về constraints/UX cụ thể của feature
85
- - dụ: "Feature này cần offline support không?"
86
- - dụ: "UI nên dạng list hay cards?"
87
- → Output: "📐 Step 3/5: Spec Aligned ✅"
88
- → KHÔNG → Skip (project chưa /init) → "📐 Step 3/5: No spec — skipped"
81
+ CHECK 1 (Kiro — HIGHEST PRIORITY): .kiro/specs/ tồn tại?
82
+ → CÓ Load specs từ .kiro/specs/:
83
+ - .kiro/specs/<project>/requirements.md project spec
84
+ - .kiro/specs/<module>/requirements.md module specs
85
+ - .kiro/specs/<module>/design.md architecture
86
+ - .kiro/specs/<module>/tasks.md task breakdown (cho Step 4)
87
+ Extract constraints liên quan đến task hiện tại
88
+ → Output: "📐 Step 3/5: Kiro Specs Loaded — {N} modules, {M} design docs"
89
+
90
+ → CHECK 2 (fallback): docs/specs/PROJECT.md tồn tại?
91
+ → CÓ → Đọc silent: PROJECT.md + TECH-SPEC.md + REQUIREMENTS.md
92
+ → Extract constraints liên quan đến task hiện tại
93
+ → NẾU PLANNING mode:
94
+ - Hỏi user 1-3 câu về constraints/UX cụ thể của feature
95
+ - Ví dụ: "Feature này cần offline support không?"
96
+ → Output: "📐 Step 3/5: Spec Aligned ✅"
97
+ → KHÔNG → Skip (project chưa /init) → "📐 Step 3/5: No spec — skipped"
89
98
  ```
90
99
 
91
- > **Quan trọng:** Nếu TECH-SPEC.md có "Constraints & Non-Negotiables",
100
+ > **Quan trọng:** Nếu .kiro/specs hoặc TECH-SPEC.md có "Constraints & Non-Negotiables",
92
101
  > AI PHẢI tuân thủ chúng trong implementation_plan.md.
93
102
 
94
103
  ### Step 4: Symphony Task — Tạo hoặc nhận task
95
104
 
96
105
  ```
97
- symphony_available_tasks(filter="my") check active tasks
98
- → CÓ task in_progress phù hợp dùng tiếp
99
- task ready phù hợp → symphony_claim_task
100
- KHÔNG symphony_create_task(title) → symphony_claim_task(new_id)
106
+ CHECK 1 (Kiro tasks): .kiro/specs/<module>/tasks.md tồn tại?
107
+ → CÓ + chưa importParse task items từ tasks.md:
108
+ - Group theo module name
109
+ - Đánh tag kèm module name
110
+ → ⛔ CẢNH BÁO: KHÔNG đồng bộ hàng loạt các item nhỏ này lên Trello (để tránh rác board). Chỉ đồng bộ lên cấp module hoặc feature lớn.
111
+ → Output: "🎯 Step 4/5: Kiro Tasks Imported ✅ — {N} tasks created"
112
+ → Claim task phù hợp nhất với user request
113
+ → CÓ + đã import → symphony_available_tasks → claim task phù hợp
114
+
115
+ → CHECK 2 (fallback): symphony_available_tasks(filter="my") → check active tasks
116
+ → CÓ task in_progress phù hợp → dùng tiếp
117
+ → CÓ task ready phù hợp → symphony_claim_task
118
+ → KHÔNG CÓ → symphony_create_task(title) → symphony_claim_task(new_id)
101
119
  → Lưu task_id cho TP1-TP4
102
120
  → Output: "🎯 Step 4/5: Task ✅ — #sym-XYZ claimed"
103
121
  ```
@@ -0,0 +1,214 @@
1
+ ---
2
+ name: trello-sync
3
+ description: |
4
+ Hệ thống đồng bộ tiến độ dự án lên Trello sử dụng Trello CLI (v1.5+) + REST API.
5
+ Mỗi dự án = 1 Trello Card. Tiến độ được theo dõi qua Checklists và Comments.
6
+ AI tự động thêm/đánh dấu checklist items khi hoàn thành task.
7
+ metadata:
8
+ stage: core
9
+ version: "3.0"
10
+ tags: [trello, sync, project-management, tracking, agile]
11
+ agent: Trello Sync Agent
12
+ allowed-tools:
13
+ - run_command
14
+ trigger: always
15
+ invocation-type: auto
16
+ priority: 2
17
+ ---
18
+
19
+ # Trello Sync v3.0 — Project-Per-Card Protocol
20
+
21
+ > **Purpose:** Tự động đồng bộ tiến độ dự án lên Trello card tương ứng, giúp team (PM, QC, Dev) theo dõi realtime.
22
+ > **Model:** 1 Card = 1 Dự án. Checklist Items = tasks/features. Comments = milestones.
23
+ > **Tools:** `trello-cli v1.5` (CLI) + Trello REST API (curl) cho checklist items.
24
+
25
+ ---
26
+
27
+ ## ⚠️ Core Rules
28
+
29
+ ```text
30
+ KHÔNG CÓ NGOẠI LỆ:
31
+ - 1 Dự án = 1 Trello Card (KHÔNG tạo card mới cho mỗi task).
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).
35
+ - 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.
39
+ ```
40
+
41
+ ---
42
+
43
+ ## 🔐 Auth & Config
44
+
45
+ Bảo mật: API Key và Token được lưu tại Global, cấu hình dự án (Board/List/Card) lưu tại Local.
46
+
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
+ ```
54
+
55
+ ### 2. Local Project Config (đặt file `.trello-config.json` tại root mỗi dự án)
56
+ ```json
57
+ {
58
+ "board": "Appdexter - Code Magic",
59
+ "list": "Kiên",
60
+ "card": "Tên Card Dự Án"
61
+ }
62
+ ```
63
+
64
+ | Field | Mô tả |
65
+ |-------|--------|
66
+ | `board` | Tên board (TÊN, không dùng ID) |
67
+ | `list` | Tên list chứa card (= team member đang phụ trách) |
68
+ | `card` | Tên card dự án (phải khớp chính xác trên Trello) |
69
+
70
+ ### Tự Động Hóa Qua `awkit trello` (BẮT BUỘC)
71
+
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 Config và Local Config để thực thi nhanh chóng. MỌI thao tác Trello phải đi qua `awkit trello`.
73
+ ---
74
+
75
+ ## 📚 Command Reference
76
+
77
+ ### AWKit Trello CLI (Native, Zero Config Needed in Bash)
78
+
79
+ Công cụ `awkit` đã cung cấp sẵn các lệnh native quản lý Trello. Phải ƯU TIÊN SỬ DỤNG.
80
+
81
+ | Action | Command |
82
+ |--------|---------|
83
+ | Cập nhật mô tả (desc) | `awkit trello desc "<text>"` |
84
+ | Comment milestone | `awkit trello comment "<text>"` |
85
+ | Thêm checklist item | `awkit trello item "<name>"` |
86
+ | Check ✅ hoàn thành | `awkit trello complete "<name>"` |
87
+ | Báo Blocked / Lỗi | `awkit trello block "<reason>"` |
88
+ | Tạo checklist mới | `awkit trello checklist "<name>"` |
89
+
90
+ > 💡 Nếu gặp board/list/card "not found", cấu hình có thể sai, báo user kiểm tra lại `.trello-config.json`.
91
+
92
+ ---
93
+
94
+ ## 🔄 Lifecycle & Trigger Points
95
+
96
+ ### Board Structure (Context)
97
+
98
+ ```
99
+ Board: Appdexter - Code Magic
100
+ ├── App cần làm ☘️ ← Backlog (ý tưởng)
101
+ ├── Kiên ← Cards = projects assigned to Kiên
102
+ ├── Huy lớn ← Cards = projects assigned to Huy lớn
103
+ ├── Doing ← Cards actively being worked on
104
+ ├── Done ← Completed cards
105
+ └── ...
106
+ ```
107
+
108
+ Mỗi Card chứa:
109
+ - **Description**: Mô tả dự án, link repo
110
+ - **Checklists**: Các phase (UI, Code Logic, Infrastructure...)
111
+ - **Checklist Items**: Tasks cụ thể trong phase đó
112
+
113
+ ---
114
+
115
+ ### TP1: 🚀 Start Task / Start Project (Description + Checklist)
116
+
117
+ **Khi nào:** AI bắt đầu project mới hoặc làm task lớn mới (claim Symphony task).
118
+
119
+ **Action:**
120
+ ```bash
121
+ # Update Card Description với thông tin cực kỳ rõ ràng cho Quản lý (PM) dự án
122
+ 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
+
124
+ # 1. Tạo checklist (nếu cần, ví dụ Sprint)
125
+ awkit trello checklist "Sprint 2026-03"
126
+
127
+ # 2. Thêm item mới vào checklist
128
+ awkit trello item "Feature: Login Flow"
129
+
130
+ # 3. Comment báo bắt đầu
131
+ awkit trello comment "🤖 AI bắt đầu: Login Flow | Symphony: #sym-XXX"
132
+ ```
133
+
134
+ ---
135
+
136
+ ### TP2: 📈 Report Progress (Comment Milestone)
137
+
138
+ **Khi nào:** AI đạt milestone quan trọng (40%, 60%, 80%) hoặc hoàn thành cụm tính năng.
139
+
140
+ **Action:** Cung cấp thông tin CHUYÊN MÔN nhưng RÕ RÀNG cho PM:
141
+ ```bash
142
+ 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."
143
+ ```
144
+
145
+ ---
146
+
147
+ ### TP3: 🛑 Blocked
148
+
149
+ **Khi nào:** Task bị chặn, cần human input.
150
+
151
+ ```bash
152
+ # Label + Comment
153
+ awkit trello block "API 500 on /auth/login. Cần Backend check."
154
+ ```
155
+
156
+ ---
157
+
158
+ ### TP4: ✅ Task Done (Đánh dấu Item Complete)
159
+
160
+ **Khi nào:** Task hoàn thành, verification pass.
161
+
162
+ ```bash
163
+ # 1. Đánh dấu checklist item ✅
164
+ awkit trello complete "Feature: Login Flow"
165
+
166
+ # 2. Comment kết quả
167
+ awkit trello comment "✅ DONE: Login Flow | Commit: #$(git rev-parse --short HEAD)"
168
+ ```
169
+
170
+ ---
171
+
172
+ ## 🔗 Symphony Integration
173
+
174
+ | Symphony Event | Trello Action |
175
+ |----------------|---------------|
176
+ | `symphony_claim_task` | Thêm checklist item (incomplete) + Comment start |
177
+ | `symphony_report_progress` | Comment milestone |
178
+ | Task BLOCKED | Label "Blocked" + Comment |
179
+ | `symphony_complete_task` | Mark item ✅ complete + Comment result |
180
+
181
+ Trong comment, **PHẢI** ghi Symphony Task ID: `Symphony: #sym-XXX`
182
+
183
+ ---
184
+
185
+ ## 🎯 Best Practices
186
+
187
+ 1. **Checklist naming**: Theo phase/module lớn (VD: "Module: fw-01-foundation", "Sprint 2026-03").
188
+ 2. **Item naming**: Mô 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`.
190
+ 4. **Graceful degradation**: CLI/API lỗi → log warning, KHÔNG block code flow.
191
+ 5. **Dùng lệnh Native**: Luôn luôn gọi `awkit trello <lệnh>` thay vì `trello-cli` thủ công.
192
+ 6. **Card KHÔNG di chuyển**: Card nằm cố định trong list team member. KHÔNG move card.
193
+
194
+ ---
195
+
196
+ ## Edge Cases
197
+
198
+ | Tình huống | Xử lý |
199
+ |-----------|--------|
200
+ | `.trello-config.json` không tồn tại | ⛔ Bỏ qua Trello sync, log cảnh báo, tiếp tục code |
201
+ | 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` |
203
+ | 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 |
207
+
208
+ ---
209
+
210
+ ## Learnings
211
+
212
+ - Board "Appdexter - Code Magic": Lists = team members, Cards = projects
213
+ - Tool native CLI `awkit trello` cho phép update thông tin dự án thẳng từ CLI mà không cần inject variables lằng nhằng.
214
+ - KHÔNG sinh script file mồ côi `trello_sync_kiro.py` — phải chạy trực tiếp qua `awkit trello`
@@ -138,6 +138,8 @@ Trước khi claim DONE, kiểm tra **mỗi item** dưới đây:
138
138
  ☐ Input validation: User input được validate trước khi process?
139
139
  ☐ Concurrency: Thread-safe? Race conditions handled?
140
140
  ☐ Backwards compatibility: Breaking changes documented?
141
+ ☐ Localization (I18N): Text UI mới đã được thêm vào Localizable.strings (EN & VI) chưa?
142
+ → Việc bọc `Localized()` trong code là chưa đủ. Phải THỰC SỰ mở file .strings (hoặc chạy update_strings.py) để bổ sung key/value trước khi báo cáo DONE.
141
143
  ```
142
144
 
143
145
  **Nếu thiếu bất kỳ item nào → report DONE_WITH_CONCERNS, không DONE.**
@@ -0,0 +1,177 @@
1
+ ---
2
+ name: visual-design-gate
3
+ description: >-
4
+ Gate 2.5 — Visual Design & UI Sync Gate. Thống nhất cách hiểu về UI/UX giữa
5
+ người dùng và AI thông qua phác thảo bằng Pencil MCP Server, hoặc thông qua
6
+ hình ảnh screenshot/design có sẵn. Đảm bảo UI/UX đã được chốt trước khi chia
7
+ Symphony tasks và viết code.
8
+ metadata:
9
+ stage: core
10
+ version: "1.0"
11
+ tags: [gate, ui, ux, design, pencil, visual, sync, core]
12
+ requires: orchestrator
13
+ agent: UI/UX Designer
14
+ trigger: conditional
15
+ invocation-type: auto
16
+ priority: 2.5
17
+ activation_keywords:
18
+ - "thiết kế giao diện"
19
+ - "vẽ UI"
20
+ - "phác thảo màn hình"
21
+ - "design ui"
22
+ - "pencil"
23
+ ---
24
+
25
+ # Visual Design Gate v1.0 (Gate 2.5) — UI/UX Sync Gate
26
+
27
+ > **Purpose:** Giúp AI và người dùng đồng bộ cách hiểu về ý tưởng giao diện (UI/UX)
28
+ > TRƯỚC KHI chia tasks và bắt tay vào code. Sử dụng công cụ Pencil để vẽ preview,
29
+ > hoặc sử dụng mockups/screenshots do người dùng cung cấp sẵn để làm căn cứ.
30
+ >
31
+ > **Problem it solves:** "Code xong giao diện không ra gì, hoặc chệch hướng so với ý tưởng UI của user"
32
+
33
+ ---
34
+
35
+ ## ⚠️ SCOPE CLARITY
36
+
37
+ | Skill này LÀM | Skill này KHÔNG làm |
38
+ |---------------|---------------------|
39
+ | Dùng `pencil` MCP server để phác thảo file `.pen` | Viết code React/Swift/Compose UI |
40
+ | Đọc hiểu ảnh đính kèm từ `docs/design` hoặc `docs/screenshot` | Nhận diện DB Schema (việc của spec-gate) |
41
+ | Tương tác với user để chốt màu sắc, bố cục, fonts | Quản lý logic back-end |
42
+ | Giới thiệu user về Pencil tool nếu project cần thiết kế mới | Phân chia task Symphony |
43
+
44
+ ---
45
+
46
+ ## 🚀 ACTIVATION
47
+
48
+ Skill này được kích hoạt bởi:
49
+ 1. **Orchestrator auto-trigger:** Khi Gate 2.5 check FAIL (feature có giao diện nhưng thiếu preview chốt UI, hoặc chưa có design image).
50
+ 2. **Explicit command:** `/design-ui` hoặc `/visual-sync`
51
+ 3. **Keyword trigger:** "thiết kế giao diện", "design ui bằng pencil", "phác thảo ui"
52
+
53
+ ---
54
+
55
+ ## 📋 INPUT REQUIREMENTS
56
+
57
+ Trước khi chạy, PHẢI có:
58
+
59
+ ```
60
+ REQUIRED:
61
+ → docs/specs/<feature>.md (output Gate 1) HOẶC thiết kế DB đã chốt tại Gate 2
62
+
63
+ OPTIONAL BUT HIGHLY RECOMMENDED:
64
+ → docs/design/ hoặc docs/screenshot/ chứa ảnh tham khảo đã có.
65
+ ```
66
+
67
+ ---
68
+
69
+ ## 🔄 PROCESS
70
+
71
+ ### Phase 1: Context Gathering (Silent)
72
+
73
+ ```
74
+ 1. Đọc spec document của feature để xác định các elements UI cần thiết
75
+ (Danh sách nút, forms, data grids, navigations).
76
+ 2. Quyét thư mục `docs/design/` và `docs/screenshot/` xem đã có ảnh tham khảo chưa.
77
+ 3. Nếu CÓ ẢNH: Đọc và report phân tích UI của ảnh, và chuyển luôn sang Phase 3 (Approval).
78
+ 4. Nếu KHÔNG CÓ ẢNH: Chuyển sang Phase 2 (Pencil Draft).
79
+ ```
80
+
81
+ ### Phase 2: Pencil Blueprint Drafting
82
+
83
+ ```
84
+ Khi dự án được chốt là CHƯA có giao diện mẫu, AI phải:
85
+ 1. Thông báo cho User: "Để chúng ta hiểu đúng ý nhau về giao diện, tôi sẽ phác thảo một bản vẽ UI bằng công cụ Pencil. Quá trình này sẽ mất một chút thời gian xử lý."
86
+ 2. Chạy tool `open_document` để tạo file `docs/design/<feature>.pen` (nếu chưa có).
87
+ 3. Sử dụng tool `batch_design`:
88
+ - Dựng Layout theo chuẩn component (Container, Navbar, Sidebar, Content).
89
+ - Thêm Text, Buttons, Forms theo dữ liệu đã chốt từ spec-gate (ví dụ: spec ghi có login form email/pass, thì màn hình phải có 2 input + submit button).
90
+ - Áp color/theme phù hợp với identity của project.
91
+ 4. Render screenshot của Pencil (sử dụng `get_screenshot` node id của screen).
92
+ ```
93
+
94
+ ### Phase 3: Present & Approval
95
+
96
+ ```
97
+ Present cho user với format sau:
98
+
99
+ ───────────────────────────────────
100
+ 🎨 UI/UX DESIGN PREVIEW: <Feature Name>
101
+ ───────────────────────────────────
102
+
103
+ ## Design Source
104
+ [Trạng thái: Đã đọc từ ảnh `docs/design/mockup.png` HOẶC Bản nháp Pencil `docs/design/<feature>.pen`]
105
+
106
+ ## Core UI Components
107
+ - [Component 1]: [Mô tả vai trò, ví dụ: Authentication Form chứa inputs login]
108
+ - [Component 2]: [Mô tả trạng thái state...]
109
+ - [Component 3]: ...
110
+
111
+ ## Hình ảnh Preview
112
+ [Đính kèm Screenshot preview nếu dùng Pencil]
113
+
114
+ ───────────────────────────────────
115
+ ⏳ Anh xem giao diện tổ chức thế này đã đúng ý đồ anh muốn chưa?
116
+ - Nếu cần tôi tinh chỉnh bố cục, màu sắc bằng Pencil thì anh cứ báo.
117
+ - Nếu anh đã chốt, phản hồi "OK" để tôi chia task code nhé!
118
+ ───────────────────────────────────
119
+ ```
120
+
121
+ ### Phase 4: Write UI Decision Doc
122
+
123
+ Sau khi user approve:
124
+
125
+ ```
126
+ 1. (Nếu xài thư mục chung) Ghi vào file README của thư mục `docs/design/` các quyết định chính về giao diện.
127
+ 2. Lưu vào NeuralMemory:
128
+ nmem_remember(
129
+ content="Visual Design for <feature> approved. Focus points: <summary_ui_points>",
130
+ type="decision",
131
+ tags=["ui", "design", "<projectId>", "<feature>"]
132
+ )
133
+ 3. Proceed → Orchestrator re-checks Gate 2.5 → PASS → Gate 3 (Symphony tasks).
134
+ ```
135
+
136
+ ---
137
+
138
+ ## 🔙 DESIGN REVISION PROTOCOL
139
+
140
+ Khi User yêu cầu sửa bản Pencil phác thảo:
141
+
142
+ ```
143
+ 1. Xác định chính xác node cần sửa.
144
+ 2. Dùng batch_get từ Pencil MCP để lấy IDs các khung components liên quan.
145
+ 3. Chạy Update (U) hoặc Replace (R) logic trên Pencil batch_design tool.
146
+ 4. Cập nhật screenshot UI mới gửi lại User.
147
+ 5. Tiếp tục vòng lặp cho đến khi "Approved".
148
+ ```
149
+
150
+ ---
151
+
152
+ ## 🗣️ Communication Style
153
+
154
+ ```
155
+ ❌ "Please provide design mockups or approve the design generation process."
156
+ ✅ "Để mình đồng điệu cách triển khai, tôi nghĩ nên phác thảo qua cái giao diện một chút.
157
+ Anh có ảnh màn hình / mockup (Figma/PNG) sẵn trong thư mục nào không, hay để tôi dùng công cụ Pencil vẽ nhanh 1 bản phác thảo anh xem qua?"
158
+ ```
159
+
160
+ ---
161
+
162
+ ## 🚫 Anti-Patterns
163
+
164
+ ```yaml
165
+ never_do:
166
+ - Ép user xài Pencil nếu user đã copy đầy đủ file design (ảnh, video) vào /docs/.
167
+ - Code Front-end UI (HTML/CSS/Swift) khi người dùng chưa đồng ý phương án bố cục.
168
+ - Vẽ chi tiết quá mất thời gian cho những task internal/CLI thuần túy (Orchestrator phải skip Gate này cho Backend).
169
+
170
+ always_do:
171
+ - Báo hiệu quá trình thao tác với Pencil vì nó sẽ mất thời gian load server, render node, chụp screenshot.
172
+ - Tái sử dụng các rules về spacing/màu sắc nếu trong file .pen đã có sẵn Design System Variables.
173
+ ```
174
+
175
+ ---
176
+
177
+ *visual-design-gate v1.0 — Visual Design & UI Sync Gate for AWKit*
@@ -0,0 +1,5 @@
1
+ {
2
+ "BOARD_NAME": "Appdexter - Code Magic",
3
+ "LIST_NAME": "Your Backlog List",
4
+ "CARD_NAME": "Project Card Name or ID"
5
+ }
package/VERSION DELETED
@@ -1 +0,0 @@
1
- 1.1.6