@leejungkiin/awkit 1.3.8 → 1.4.0
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.
- package/bin/awk.js +204 -52
- package/core/AGENTS.md +38 -0
- package/core/GEMINI.md.bak +126 -199
- package/package.json +1 -1
- package/skills/awf-session-restore/SKILL.md +12 -2
- package/skills/brainstorm-agent/SKILL.md +11 -8
- package/skills/gitnexus/gitnexus-cli/SKILL.md +82 -0
- package/skills/gitnexus/gitnexus-debugging/SKILL.md +89 -0
- package/skills/gitnexus/gitnexus-exploring/SKILL.md +78 -0
- package/skills/gitnexus/gitnexus-guide/SKILL.md +64 -0
- package/skills/gitnexus/gitnexus-impact-analysis/SKILL.md +97 -0
- package/skills/gitnexus/gitnexus-refactoring/SKILL.md +121 -0
- package/skills/nm-memory-sync/SKILL.md +14 -1
- package/skills/orchestrator/SKILL.md +0 -38
- package/skills/ship-to-code/SKILL.md +115 -0
- package/skills/single-flow-task-execution/SKILL.md +409 -0
- package/skills/single-flow-task-execution/code-quality-reviewer-prompt.md +20 -0
- package/skills/single-flow-task-execution/implementer-prompt.md +78 -0
- package/skills/single-flow-task-execution/spec-reviewer-prompt.md +61 -0
- package/skills/symphony-enforcer/SKILL.md +36 -18
- package/skills/trello-sync/SKILL.md +25 -17
- package/templates/CODEBASE.md +26 -42
- package/templates/configs/trello-config.json +2 -2
- package/templates/project-identity/android.json +10 -0
- package/templates/project-identity/backend-nestjs.json +10 -0
- package/templates/project-identity/expo.json +10 -0
- package/templates/project-identity/ios.json +10 -0
- package/templates/project-identity/web-nextjs.json +10 -0
- package/templates/workflow_dual_mode_template.md +5 -5
- package/workflows/_uncategorized/conductor-codex.md +125 -0
- package/workflows/_uncategorized/conductor.md +97 -0
- package/workflows/_uncategorized/trello-sync.md +52 -0
- package/workflows/quality/visual-debug.md +66 -12
|
@@ -7,8 +7,8 @@ description: |
|
|
|
7
7
|
v3.5: UI-First Three-Phase Execution with User Test Checkpoints.
|
|
8
8
|
metadata:
|
|
9
9
|
stage: core
|
|
10
|
-
version: "3.
|
|
11
|
-
replaces: "v3.
|
|
10
|
+
version: "3.6"
|
|
11
|
+
replaces: "v3.5"
|
|
12
12
|
requires: symphony-orchestrator
|
|
13
13
|
tags: [symphony, enforcement, checkpoint, task-lifecycle, core, spec-first, auto-next, kiro, ui-first, user-test]
|
|
14
14
|
agent: Symphony Enforcer
|
|
@@ -24,14 +24,15 @@ invocation-type: auto
|
|
|
24
24
|
priority: 1
|
|
25
25
|
---
|
|
26
26
|
|
|
27
|
-
# Symphony Enforcer v3.
|
|
27
|
+
# Symphony Enforcer v3.6 — UI-First Three-Phase Execution + Legacy Cleanup
|
|
28
28
|
|
|
29
29
|
> **Purpose:** Đảm bảo AI KHÔNG BAO GIỜ quên cập nhật Symphony.
|
|
30
|
-
> **Key Changes v3.
|
|
30
|
+
> **Key Changes v3.6:**
|
|
31
|
+
> - **Step 0.5: Legacy Artifact Cleanup**: Auto-detect stale `.symphony/tasks.json` and warn user
|
|
31
32
|
> - **Gate 4 Three-Phase Execution**: Phase A (Infra) → Phase B (UI Shell + User Test) → Phase C (Logic + User Test)
|
|
32
33
|
> - **TP1.7: User Test Checkpoint**: Trigger dừng lại cho user test trên device thật
|
|
33
34
|
> - **UI-First Task Ordering**: UI tasks PHẢI đi trước logic tasks trong Symphony
|
|
34
|
-
> - Kế thừa tất cả features v3.
|
|
35
|
+
> - Kế thừa tất cả features v3.5 (Kiro, Completion Status, Design Compliance).
|
|
35
36
|
> **Principle:** AI tự detect completion — user KHÔNG CẦN nói "xong".
|
|
36
37
|
|
|
37
38
|
---
|
|
@@ -52,16 +53,32 @@ KHÔNG CÓ NGOẠI LỆ:
|
|
|
52
53
|
|
|
53
54
|
## 🔒 STRICT STARTUP PROTOCOL (BẮT BUỘC)
|
|
54
55
|
|
|
55
|
-
Mỗi khi bắt đầu task code/debug/plan, AI PHẢI đi qua **
|
|
56
|
+
Mỗi khi bắt đầu task code/debug/plan, AI PHẢI đi qua **6 steps tuần tự**.
|
|
56
57
|
KHÔNG được bắt đầu work cho đến khi TẤT CẢ steps ✅.
|
|
57
58
|
|
|
59
|
+
### Step 0.5: Legacy Artifact Cleanup (AUTO — v3.6)
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
→ Kiểm tra: .symphony/tasks.json tồn tại?
|
|
63
|
+
→ CÓ → ⚠️ CẢNH BÁO: "Legacy tasks.json detected. Symphony uses SQLite DB — this file is stale."
|
|
64
|
+
→ Khuyên user xoá: "rm .symphony/tasks.json"
|
|
65
|
+
→ KHÔNG tự xoá (safety guardrail) — chỉ cảnh báo.
|
|
66
|
+
→ Ghi log vào NeuralMemory: "Legacy tasks.json found at {project}, warned user."
|
|
67
|
+
→ KHÔNG → ✅ Clean (no legacy artifacts)
|
|
68
|
+
→ Output: "🧹 Step 0.5: Legacy Check ✅ — No stale artifacts"
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
> **Lý do:** Symphony v2+ sử dụng SQLite DB (`symphony.db`) làm single source of truth.
|
|
72
|
+
> File `tasks.json` là di sản từ phiên bản cũ (pre-SQLite). Nếu tồn tại song song sẽ gây
|
|
73
|
+
> "split-brain" — một nửa tool đọc JSON, một nửa đọc DB → dữ liệu lệch pha.
|
|
74
|
+
|
|
58
75
|
### Step 1: Project Identity — `.project-identity`
|
|
59
76
|
|
|
60
77
|
```
|
|
61
78
|
→ Kiểm tra: file .project-identity có tồn tại?
|
|
62
79
|
→ CÓ → Đọc projectId, projectName
|
|
63
80
|
→ KHÔNG → ⛔ DỪNG. Hỏi user hoặc tạo .project-identity.
|
|
64
|
-
→ Output: "📋 Step 1/
|
|
81
|
+
→ Output: "📋 Step 1/6: Project Identity ✅ — {projectId}"
|
|
65
82
|
```
|
|
66
83
|
|
|
67
84
|
### Step 2: NeuralMemory Brain — Switch brain
|
|
@@ -69,7 +86,7 @@ KHÔNG được bắt đầu work cho đến khi TẤT CẢ steps ✅.
|
|
|
69
86
|
```
|
|
70
87
|
→ nmem brain use <projectId>
|
|
71
88
|
→ nmem_recap(level=1) — load context
|
|
72
|
-
→ Output: "🧠 Step 2/
|
|
89
|
+
→ Output: "🧠 Step 2/6: Brain ✅ — switched to {projectId}"
|
|
73
90
|
```
|
|
74
91
|
|
|
75
92
|
### Step 3: Spec Alignment — Đọc Project Spec (v3.4 + Kiro)
|
|
@@ -82,7 +99,7 @@ KHÔNG được bắt đầu work cho đến khi TẤT CẢ steps ✅.
|
|
|
82
99
|
- .kiro/specs/<module>/design.md → architecture
|
|
83
100
|
- .kiro/specs/<module>/tasks.md → task breakdown (cho Step 4)
|
|
84
101
|
→ Extract constraints liên quan đến task hiện tại
|
|
85
|
-
→ Output: "📐 Step 3/
|
|
102
|
+
→ Output: "📐 Step 3/6: Kiro Specs Loaded ✅ — {N} modules, {M} design docs"
|
|
86
103
|
|
|
87
104
|
→ CHECK 2 (fallback): docs/specs/PROJECT.md tồn tại?
|
|
88
105
|
→ CÓ → Đọc silent: PROJECT.md + TECH-SPEC.md + REQUIREMENTS.md
|
|
@@ -90,8 +107,8 @@ KHÔNG được bắt đầu work cho đến khi TẤT CẢ steps ✅.
|
|
|
90
107
|
→ NẾU PLANNING mode:
|
|
91
108
|
- Hỏi user 1-3 câu về constraints/UX cụ thể của feature
|
|
92
109
|
- Ví dụ: "Feature này cần offline support không?"
|
|
93
|
-
→ Output: "📐 Step 3/
|
|
94
|
-
→ KHÔNG → Skip (project chưa /init) → "📐 Step 3/
|
|
110
|
+
→ Output: "📐 Step 3/6: Spec Aligned ✅"
|
|
111
|
+
→ KHÔNG → Skip (project chưa /init) → "📐 Step 3/6: No spec — skipped"
|
|
95
112
|
```
|
|
96
113
|
|
|
97
114
|
> **Quan trọng:** Nếu .kiro/specs hoặc TECH-SPEC.md có "Constraints & Non-Negotiables",
|
|
@@ -105,7 +122,7 @@ KHÔNG được bắt đầu work cho đến khi TẤT CẢ steps ✅.
|
|
|
105
122
|
- Group theo module name
|
|
106
123
|
- Đánh tag kèm module name
|
|
107
124
|
→ ⛔ 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.
|
|
108
|
-
→ Output: "🎯 Step 4/
|
|
125
|
+
→ Output: "🎯 Step 4/6: Kiro Tasks Imported ✅ — {N} tasks created"
|
|
109
126
|
→ Claim task phù hợp nhất với user request
|
|
110
127
|
→ CÓ + đã import → symphony_available_tasks → claim task phù hợp
|
|
111
128
|
|
|
@@ -114,7 +131,7 @@ KHÔNG được bắt đầu work cho đến khi TẤT CẢ steps ✅.
|
|
|
114
131
|
→ CÓ task ready phù hợp → symphony_claim_task
|
|
115
132
|
→ KHÔNG CÓ → symphony_create_task(title) → symphony_claim_task(new_id)
|
|
116
133
|
→ Lưu task_id cho TP1-TP4
|
|
117
|
-
→ Output: "🎯 Step 4/
|
|
134
|
+
→ Output: "🎯 Step 4/6: Task ✅ — #sym-XYZ claimed"
|
|
118
135
|
```
|
|
119
136
|
|
|
120
137
|
### Step 5: Confirmation Block
|
|
@@ -122,11 +139,12 @@ KHÔNG được bắt đầu work cho đến khi TẤT CẢ steps ✅.
|
|
|
122
139
|
```
|
|
123
140
|
🚦 STARTUP PROTOCOL COMPLETE
|
|
124
141
|
══════════════════════════════════════
|
|
125
|
-
Step
|
|
126
|
-
Step
|
|
127
|
-
Step
|
|
128
|
-
Step
|
|
129
|
-
Step
|
|
142
|
+
Step 0.5: 🧹 Legacy Check ✅ No stale artifacts
|
|
143
|
+
Step 1: 📋 Project Identity ✅ {projectId}
|
|
144
|
+
Step 2: 🧠 NeuralMemory ✅ brain: {projectId}
|
|
145
|
+
Step 3: 📐 Spec Alignment ✅ {constraints_count} constraints loaded
|
|
146
|
+
Step 4: 🎯 Task ✅ #sym-XYZ — "{title}"
|
|
147
|
+
Step 5: ✅ READY TO WORK
|
|
130
148
|
══════════════════════════════════════
|
|
131
149
|
```
|
|
132
150
|
|
|
@@ -30,21 +30,23 @@ priority: 2
|
|
|
30
30
|
KHÔNG CÓ NGOẠI LỆ:
|
|
31
31
|
- 1 Dự án = 1 Trello Card (KHÔNG tạo card mới cho mỗi task).
|
|
32
32
|
- **Mô tả Card (Description)** BẮT BUỘC phải được update chứa cái nhìn tổng thể về dự án (Mục tiêu, Tech Stack, Tình trạng chung) để Quản lý dễ nắm bắt.
|
|
33
|
-
- **Trello (PM View) vs Kiro (Dev View):** Trello là màn hình dành cho Quản lý (PM, QC), còn `.kiro/specs/tasks.md` là nơi để AI/Dev làm việc.
|
|
34
|
-
- [QUAN TRỌNG
|
|
35
|
-
-
|
|
36
|
-
-
|
|
37
|
-
-
|
|
38
|
-
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
33
|
+
- **Trello (PM View) vs Kiro (Dev View):** Trello là màn hình dành cho Quản lý (PM, QC), còn `.kiro/specs/tasks.md` hay `task.md` là nơi để AI/Dev làm việc.
|
|
34
|
+
- [QUAN TRỌNG NHẤT VỀ ĐỘ CHI TIẾT (GRANULARITY)]: Khi được yêu cầu chia task để sync lên Trello, AI PHẢI CHIA NHỎ các phase/tính năng lớn ra thành các Sub-features / Điểm chạm nghiệp vụ (Medium-detail). CẤM làm task quá chung chung.
|
|
35
|
+
- BAD (Quá chung chung): "Hoàn thiện Launch", "Setup Thanh Toán", "Xử lý Logic".
|
|
36
|
+
- BAD (Quá chi tiết / Dev task): "Tạo file BillingManager.kt", "Sửa padding cho nút Share".
|
|
37
|
+
- GOOD (Chuẩn PM View): "Tích hợp Google Play Billing v7", "Xử lý AlarmManager nhắc nhở đo huyết áp", "Cài đặt Crashlytics", "Thiết kế Store Assets (Icon, Screenshots)".
|
|
38
|
+
- AI NÊN gom nhóm các Items vào thành nhiều Checklist rõ ràng theo từng phân khu lớn (VD: `Checklist: 1. Hoàn Thiện Logic`, `Checklist: 2. Monetization`, `Checklist: 3. Analytics & QA`).
|
|
39
|
+
- ⛔ TUYỆT ĐỐI CẤM đưa các GIAI ĐOẠN QUY TRÌNH (Process Gates) vào Checklist Items. KHÔNG CÓ CÁC MỤC NHƯ: "Tài liệu", "Thiết kế Giao diện", "Gate 1", "Phase 2".
|
|
40
|
+
- Progress qua các Gate (Gate 1, Gate 2...) CHỈ ĐƯỢC BÁO CÁO qua Comment. Quản lý không quan tâm AI đang ở Gate nào trên Checklists.
|
|
41
|
+
- BẮT BUỘC ĐỒNG BỘ TOÀN BỘ DANH SÁCH NGHIỆP VỤ TỔNG HỢP: Khi Spec/dự án đã hòm hòm, AI phân mảnh các scope thành các Checklist Items (như quy tắc Granularity ở trên).
|
|
42
|
+
- Comment ở milestone quan trọng PHẢI bao gồm các quyết định cốt lõi hoặc sự thay đổi phase (VD: "Đã thiết kế xong màn hình Home", "Bắt đầu code Logic tracking").
|
|
41
43
|
```
|
|
42
44
|
|
|
43
45
|
---
|
|
44
46
|
|
|
45
47
|
## 🔐 Auth & Config
|
|
46
48
|
|
|
47
|
-
Credentials được lưu dưới dạng **environment variables** (`TRELLO_KEY`, `TRELLO_TOKEN`) trong shell profile (`~/.zshrc` hoặc `~/.bashrc`). Cấu hình dự án (Board/List/Card) lưu
|
|
49
|
+
Credentials được lưu dưới dạng **environment variables** (`TRELLO_KEY`, `TRELLO_TOKEN`) trong shell profile (`~/.zshrc` hoặc `~/.bashrc`). Cấu hình dự án (Board/List/Card) lưu trong `"trello"` key của `.project-identity` ở root mỗi dự án (fallback: `.trello-config.json`).
|
|
48
50
|
|
|
49
51
|
### 1. Global Credentials (Environment Variables)
|
|
50
52
|
|
|
@@ -52,15 +54,21 @@ User setup lần đầu qua **interactive wizard** khi chạy `awkit init`:
|
|
|
52
54
|
- CLI tự hỏi API Key → tạo link authorize token → hỏi Token → lưu vào `~/.zshrc`.
|
|
53
55
|
- Nếu user đã setup rồi, CLI tự skip bước này.
|
|
54
56
|
|
|
55
|
-
### 2. Local Project Config (
|
|
57
|
+
### 2. Local Project Config (`"trello"` key trong `.project-identity`)
|
|
56
58
|
```json
|
|
57
59
|
{
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
60
|
+
"projectName": "MyApp",
|
|
61
|
+
"projectId": "myapp",
|
|
62
|
+
"trello": {
|
|
63
|
+
"board": "Appdexter - Code Magic",
|
|
64
|
+
"list": "Kiên",
|
|
65
|
+
"card": "Tên Card Dự Án"
|
|
66
|
+
}
|
|
61
67
|
}
|
|
62
68
|
```
|
|
63
69
|
|
|
70
|
+
> **Fallback:** Nếu `.project-identity` không có key `trello`, CLI sẽ thử đọc `.trello-config.json` (backward compat).
|
|
71
|
+
|
|
64
72
|
| Field | Mô tả |
|
|
65
73
|
|-------|--------|
|
|
66
74
|
| `board` | Tên board (TÊN, không dùng ID) |
|
|
@@ -81,7 +89,7 @@ Lần 3 (vẫn lỗi): báo user "Trello chưa được cấu hình. Vui lòng c
|
|
|
81
89
|
|
|
82
90
|
### Tự Động Hóa Qua `awkit trello` (BẮT BUỘC)
|
|
83
91
|
|
|
84
|
-
AI không cần tự inject ENV hay tìm kiếm cấu hình. Công cụ lệnh `awkit trello` v1.3.0+ sẽ TỰ ĐỘNG đọc từ env vars và `.
|
|
92
|
+
AI không cần tự inject ENV hay tìm kiếm cấu hình. Công cụ lệnh `awkit trello` v1.3.0+ sẽ TỰ ĐỘNG đọc từ env vars và `.project-identity`. MỌI thao tác Trello phải đi qua `awkit trello`.
|
|
85
93
|
---
|
|
86
94
|
|
|
87
95
|
## 📚 Command Reference
|
|
@@ -99,7 +107,7 @@ Công cụ `awkit` đã cung cấp sẵn các lệnh native quản lý Trello. P
|
|
|
99
107
|
| Báo Blocked / Lỗi | `awkit trello block "<reason>"` |
|
|
100
108
|
| Tạo checklist mới | `awkit trello checklist "<name>"` |
|
|
101
109
|
|
|
102
|
-
> 💡 Nếu gặp board/list/card "not found", cấu hình có thể sai, báo user kiểm tra lại `.
|
|
110
|
+
> 💡 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` key trong `.project-identity`.
|
|
103
111
|
|
|
104
112
|
---
|
|
105
113
|
|
|
@@ -222,14 +230,14 @@ Trong comment, **PHẢI** ghi Symphony Task ID: `Symphony: #sym-XXX`
|
|
|
222
230
|
|
|
223
231
|
| Tình huống | Xử lý |
|
|
224
232
|
|-----------|--------|
|
|
225
|
-
|
|
|
233
|
+
| Trello config not found | ⛔ Bỏ qua Trello sync, log cảnh báo, tiếp tục code |
|
|
226
234
|
| **Credentials not found** | `source ~/.zshrc` → retry (max 2 lần). Vẫn lỗi → báo user chạy `awkit init` |
|
|
227
235
|
| Card not found | Chạy `sync`, retry. Nếu vẫn lỗi → báo user |
|
|
228
236
|
| Checklist chưa có | Tạo checklist mới bằng `awkit trello checklist` |
|
|
229
237
|
| Item trùng tên | Dùng `card:checklists` kiểm tra trước khi thêm |
|
|
230
238
|
| Rate limit / API error | Log warning, tiếp tục code, KHÔNG block flow. CLI tự retry 429. |
|
|
231
239
|
| Token hết hạn | Báo user chạy `awkit init` để setup lại credential mới |
|
|
232
|
-
| Dự án chưa có card trên Trello | Báo user tạo card trên board, cập nhật `.
|
|
240
|
+
| Dự án chưa có card trên Trello | Báo user tạo card trên board, cập nhật `trello` trong `.project-identity` |
|
|
233
241
|
|
|
234
242
|
---
|
|
235
243
|
|
package/templates/CODEBASE.md
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
# {{PROJECT_NAME}} — Codebase Map
|
|
2
2
|
|
|
3
|
-
> **Project Type:** {{PROJECT_TYPE}} | **
|
|
4
|
-
> **Tech Stack:** {{TECH_STACK_SUMMARY}}
|
|
3
|
+
> **Project Type:** {{PROJECT_TYPE}} | **Tech Stack:** {{TECH_STACK_SUMMARY}}
|
|
5
4
|
> **Last Synced:** {{DATE}}
|
|
6
5
|
|
|
7
|
-
|
|
6
|
+
> [!NOTE]
|
|
7
|
+
> AI PHẢI đọc file này TRƯỚC KHI dùng `grep_search` / `codebase_search` / `list_dir`.
|
|
8
|
+
> Đọc → xác định target → search cụ thể. KHÔNG search "mù".
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
---
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
## 🗺️ Directory Structure
|
|
12
13
|
|
|
13
14
|
```
|
|
14
15
|
{{DIR_STRUCTURE}}
|
|
@@ -16,47 +17,32 @@
|
|
|
16
17
|
|
|
17
18
|
---
|
|
18
19
|
|
|
19
|
-
## 📁
|
|
20
|
-
|
|
21
|
-
| Area | Location | Description |
|
|
22
|
-
|------|----------|-------------|
|
|
23
|
-
| _(example)_ Features | `{{FEATURES_DIR}}` | Main feature modules |
|
|
24
|
-
| _(example)_ Shared UI | `{{SHARED_UI_DIR}}` | Reusable UI components |
|
|
25
|
-
| _(example)_ Services | `{{SERVICES_DIR}}` | Business logic & data layer |
|
|
26
|
-
| _(example)_ Models | `{{MODELS_DIR}}` | Data models & DTOs |
|
|
27
|
-
|
|
28
|
-
> ⚠️ Update this table after adding new feature areas.
|
|
29
|
-
|
|
30
|
-
---
|
|
20
|
+
## 📁 File Index
|
|
31
21
|
|
|
32
|
-
|
|
22
|
+
> Compact format: `path` → purpose (1 line mỗi file)
|
|
33
23
|
|
|
34
|
-
|
|
35
|
-
|---------|--------|-------|
|
|
36
|
-
| Analytics | ✅ | Event tracking |
|
|
37
|
-
| Crashlytics | ✅ | Crash reporting |
|
|
38
|
-
| Remote Config | ✅ | Feature flags |
|
|
39
|
-
| Auth | ✅ | Sign in methods |
|
|
40
|
-
| Firestore | ⬜ | — |
|
|
41
|
-
| Storage | ⬜ | — |
|
|
24
|
+
### Core / Infrastructure
|
|
42
25
|
|
|
43
|
-
|
|
26
|
+
| Path | Purpose |
|
|
27
|
+
|------|---------|
|
|
28
|
+
| `{{CORE_FILE_1}}` | {{PURPOSE_1}} |
|
|
29
|
+
| `{{CORE_FILE_2}}` | {{PURPOSE_2}} |
|
|
44
30
|
|
|
45
|
-
|
|
31
|
+
### Features
|
|
46
32
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
33
|
+
| Path | Purpose |
|
|
34
|
+
|------|---------|
|
|
35
|
+
| `{{FEATURE_FILE_1}}` | {{PURPOSE_1}} |
|
|
36
|
+
| `{{FEATURE_FILE_2}}` | {{PURPOSE_2}} |
|
|
51
37
|
|
|
52
|
-
|
|
38
|
+
### UI / Views
|
|
53
39
|
|
|
54
|
-
|
|
40
|
+
| Path | Purpose |
|
|
41
|
+
|------|---------|
|
|
42
|
+
| `{{VIEW_FILE_1}}` | {{PURPOSE_1}} |
|
|
43
|
+
| `{{VIEW_FILE_2}}` | {{PURPOSE_2}} |
|
|
55
44
|
|
|
56
|
-
|
|
57
|
-
- **Functions/Methods:** `camelCase`
|
|
58
|
-
- **Constants:** `UPPER_SNAKE_CASE`
|
|
59
|
-
- **Variables:** `camelCase`
|
|
45
|
+
> ⚠️ Thêm file mới vào section phù hợp. Dùng `/codebase-sync` để auto-update.
|
|
60
46
|
|
|
61
47
|
---
|
|
62
48
|
|
|
@@ -67,14 +53,12 @@
|
|
|
67
53
|
| `.project-identity` | AI project context |
|
|
68
54
|
| `CODEBASE.md` | This file — codebase map for AI |
|
|
69
55
|
|
|
70
|
-
> Add important files here as the project grows.
|
|
71
|
-
|
|
72
56
|
---
|
|
73
57
|
|
|
74
58
|
## 📝 Notes
|
|
75
59
|
|
|
76
|
-
|
|
60
|
+
_Architecture decisions, gotchas, và context quan trọng._
|
|
77
61
|
|
|
78
62
|
---
|
|
79
63
|
|
|
80
|
-
*Auto-generated by `awkit init` — keep
|
|
64
|
+
*Auto-generated by `awkit init` — keep updated with `/codebase-sync`*
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"_comments": {
|
|
3
|
+
"projectId": "Auto-generated from folder name. DO NOT change — used by Symphony for task scoping.",
|
|
4
|
+
"trello": "Fill in your Trello board/list/card names. Run 'awkit trello info' to verify."
|
|
5
|
+
},
|
|
2
6
|
"projectName": "MyAndroidApp",
|
|
7
|
+
"projectId": "myandroidapp",
|
|
3
8
|
"projectType": "android",
|
|
4
9
|
"packageName": "com.company.myandroidapp",
|
|
5
10
|
"primaryLanguage": "en",
|
|
@@ -16,6 +21,11 @@
|
|
|
16
21
|
"testing": "JUnit + Espresso",
|
|
17
22
|
"buildSystem": "Gradle (KTS)"
|
|
18
23
|
},
|
|
24
|
+
"trello": {
|
|
25
|
+
"board": "Your Board Name",
|
|
26
|
+
"list": "Your List Name",
|
|
27
|
+
"card": "Your Card Name"
|
|
28
|
+
},
|
|
19
29
|
"projectStage": "planning",
|
|
20
30
|
"codingStandards": {
|
|
21
31
|
"language": "en",
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"_comments": {
|
|
3
|
+
"projectId": "Auto-generated from folder name. DO NOT change — used by Symphony for task scoping.",
|
|
4
|
+
"trello": "Fill in your Trello board/list/card names. Run 'awkit trello info' to verify."
|
|
5
|
+
},
|
|
2
6
|
"projectName": "MyBackendAPI",
|
|
7
|
+
"projectId": "mybackendapi",
|
|
3
8
|
"projectType": "backend",
|
|
4
9
|
"primaryLanguage": "en",
|
|
5
10
|
"techStack": {
|
|
@@ -12,6 +17,11 @@
|
|
|
12
17
|
"testing": "Jest",
|
|
13
18
|
"deployment": "Docker + Cloud Run"
|
|
14
19
|
},
|
|
20
|
+
"trello": {
|
|
21
|
+
"board": "Your Board Name",
|
|
22
|
+
"list": "Your List Name",
|
|
23
|
+
"card": "Your Card Name"
|
|
24
|
+
},
|
|
15
25
|
"projectStage": "planning",
|
|
16
26
|
"codingStandards": {
|
|
17
27
|
"language": "en",
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"_comments": {
|
|
3
|
+
"projectId": "Auto-generated from folder name. DO NOT change — used by Symphony for task scoping.",
|
|
4
|
+
"trello": "Fill in your Trello board/list/card names. Run 'awkit trello info' to verify."
|
|
5
|
+
},
|
|
2
6
|
"projectName": "MyExpoApp",
|
|
7
|
+
"projectId": "myexpoapp",
|
|
3
8
|
"projectType": "expo",
|
|
4
9
|
"bundleIdentifier": "com.company.myexpoapp",
|
|
5
10
|
"primaryLanguage": "en",
|
|
@@ -15,6 +20,11 @@
|
|
|
15
20
|
"testing": "Jest + Detox",
|
|
16
21
|
"build": "EAS Build"
|
|
17
22
|
},
|
|
23
|
+
"trello": {
|
|
24
|
+
"board": "Your Board Name",
|
|
25
|
+
"list": "Your List Name",
|
|
26
|
+
"card": "Your Card Name"
|
|
27
|
+
},
|
|
18
28
|
"projectStage": "planning",
|
|
19
29
|
"codingStandards": {
|
|
20
30
|
"language": "en",
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"_comments": {
|
|
3
|
+
"projectId": "Auto-generated from folder name. DO NOT change — used by Symphony for task scoping.",
|
|
4
|
+
"trello": "Fill in your Trello board/list/card names. Run 'awkit trello info' to verify."
|
|
5
|
+
},
|
|
2
6
|
"projectName": "MyiOSApp",
|
|
7
|
+
"projectId": "myiosapp",
|
|
3
8
|
"projectType": "ios",
|
|
4
9
|
"bundleIdentifier": "com.company.myiosapp",
|
|
5
10
|
"primaryLanguage": "en",
|
|
@@ -15,6 +20,11 @@
|
|
|
15
20
|
"testing": "XCTest",
|
|
16
21
|
"packageManager": "SPM"
|
|
17
22
|
},
|
|
23
|
+
"trello": {
|
|
24
|
+
"board": "Your Board Name",
|
|
25
|
+
"list": "Your List Name",
|
|
26
|
+
"card": "Your Card Name"
|
|
27
|
+
},
|
|
18
28
|
"projectStage": "planning",
|
|
19
29
|
"codingStandards": {
|
|
20
30
|
"language": "en",
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"_comments": {
|
|
3
|
+
"projectId": "Auto-generated from folder name. DO NOT change — used by Symphony for task scoping.",
|
|
4
|
+
"trello": "Fill in your Trello board/list/card names. Run 'awkit trello info' to verify."
|
|
5
|
+
},
|
|
2
6
|
"projectName": "MyWebApp",
|
|
7
|
+
"projectId": "mywebapp",
|
|
3
8
|
"projectType": "react_web",
|
|
4
9
|
"primaryLanguage": "en",
|
|
5
10
|
"techStack": {
|
|
@@ -12,6 +17,11 @@
|
|
|
12
17
|
"auth": "NextAuth.js",
|
|
13
18
|
"deployment": "Vercel"
|
|
14
19
|
},
|
|
20
|
+
"trello": {
|
|
21
|
+
"board": "Your Board Name",
|
|
22
|
+
"list": "Your List Name",
|
|
23
|
+
"card": "Your Card Name"
|
|
24
|
+
},
|
|
15
25
|
"projectStage": "planning",
|
|
16
26
|
"codingStandards": {
|
|
17
27
|
"language": "en",
|
|
@@ -34,7 +34,7 @@ description: [Short description of the workflow]
|
|
|
34
34
|
### Phase 1: Context & Setup
|
|
35
35
|
1. **Understand Intent:**
|
|
36
36
|
- "Bạn muốn làm gì với [Command]?"
|
|
37
|
-
- (AI analyzes context from `.project-identity` & `.
|
|
37
|
+
- (AI analyzes context from `.project-identity` & `.beads`)
|
|
38
38
|
|
|
39
39
|
2. **Configuration:**
|
|
40
40
|
- [Question 1]
|
|
@@ -68,7 +68,7 @@ description: [Short description of the workflow]
|
|
|
68
68
|
- Locations of artifacts.
|
|
69
69
|
|
|
70
70
|
2. **Memory Sync:**
|
|
71
|
-
- Auto-sync with
|
|
71
|
+
- Auto-sync with Beads (Task) & Brain (Knowledge).
|
|
72
72
|
|
|
73
73
|
3. **Next Steps Menu:**
|
|
74
74
|
```markdown
|
|
@@ -79,9 +79,9 @@ description: [Short description of the workflow]
|
|
|
79
79
|
|
|
80
80
|
---
|
|
81
81
|
|
|
82
|
-
## 🧠 Brain &
|
|
82
|
+
## 🧠 Brain & Beads Integration
|
|
83
83
|
|
|
84
|
-
- **Input:** Check `
|
|
84
|
+
- **Input:** Check `bd list --status in_progress` to resume context.
|
|
85
85
|
- **Output:**
|
|
86
|
-
- Create/Update
|
|
86
|
+
- Create/Update Beads task.
|
|
87
87
|
- Create Brain memory file if knowledge is valuable.
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 🔍 Codex Conductor — Gọi Codex CLI rà soát code, debug, review logic, và verify refactor
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /conductor-codex — Three-Agent Inspector Workflow
|
|
6
|
+
|
|
7
|
+
> Antigravity gọi Codex CLI (headless, read-only) khi cần rà soát chuyên sâu.
|
|
8
|
+
> Codex CHỈ ĐỌC + TẠO BÁO CÁO `.md`. KHÔNG BAO GIỜ sửa code.
|
|
9
|
+
|
|
10
|
+
// turbo-all
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Prerequisites
|
|
15
|
+
|
|
16
|
+
1. Kiểm tra Codex CLI:
|
|
17
|
+
```bash
|
|
18
|
+
which codex || echo "NOT_INSTALLED"
|
|
19
|
+
```
|
|
20
|
+
2. Nếu chưa cài → đề xuất cài:
|
|
21
|
+
```bash
|
|
22
|
+
npm i -g @openai/codex
|
|
23
|
+
```
|
|
24
|
+
3. Tạo thư mục report nếu chưa có:
|
|
25
|
+
```bash
|
|
26
|
+
mkdir -p codex-reports
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Sub-commands
|
|
32
|
+
|
|
33
|
+
### `/conductor-codex:debug` — Phân tích root cause bug
|
|
34
|
+
|
|
35
|
+
1. User mô tả bug (crash, lỗi logic, unexpected behavior)
|
|
36
|
+
2. Thông báo: "🔍 Đang gọi Codex CLI phân tích bug..."
|
|
37
|
+
3. Gọi CLI:
|
|
38
|
+
```bash
|
|
39
|
+
cd <PROJECT_ROOT> && timeout 120 codex "A bug was reported: <BUG_DESCRIPTION>. Analyze the codebase to find the root cause. List: (1) most likely root cause with file:line, (2) contributing factors, (3) suggested fix approach. DO NOT edit any files." --approval-mode suggest -q 2>/dev/null
|
|
40
|
+
```
|
|
41
|
+
4. Parse output → lưu vào `codex-reports/bug-analysis-<DATE>.md`
|
|
42
|
+
5. Tóm tắt findings cho user
|
|
43
|
+
6. Nếu critical → Antigravity thực hiện fix
|
|
44
|
+
|
|
45
|
+
### `/conductor-codex:review` — Pre-commit code review
|
|
46
|
+
|
|
47
|
+
1. Kiểm tra có uncommitted changes: `git diff --stat`
|
|
48
|
+
2. Thông báo: "🔍 Đang gọi Codex CLI review code..."
|
|
49
|
+
3. Gọi CLI:
|
|
50
|
+
```bash
|
|
51
|
+
cd <PROJECT_ROOT> && timeout 120 codex "Review the uncommitted changes in this repo. Check for: bugs, logic errors, edge cases, thread safety, security issues, performance problems. Rank issues by severity (critical/warning/info). DO NOT edit any files." --approval-mode suggest -q 2>/dev/null
|
|
52
|
+
```
|
|
53
|
+
4. Parse output → lưu vào `codex-reports/review-<DATE>.md`
|
|
54
|
+
5. Tóm tắt: issues found + severity
|
|
55
|
+
6. Nếu clean → suggest `git commit`
|
|
56
|
+
|
|
57
|
+
### `/conductor-codex:logic` — Phân tích logic & edge cases
|
|
58
|
+
|
|
59
|
+
1. Xác định file/module cần kiểm tra
|
|
60
|
+
2. Thông báo: "🔍 Đang gọi Codex CLI kiểm tra logic..."
|
|
61
|
+
3. Gọi CLI:
|
|
62
|
+
```bash
|
|
63
|
+
cd <PROJECT_ROOT> && timeout 120 codex "Analyze <FILE_OR_MODULE> for logic correctness. Focus on: edge cases (null, empty, boundary), race conditions, error handling gaps, unreachable code, off-by-one errors. List each issue with file:line and severity. DO NOT edit any files." --approval-mode suggest -q 2>/dev/null
|
|
64
|
+
```
|
|
65
|
+
4. Parse output → lưu vào `codex-reports/logic-analysis-<DATE>.md`
|
|
66
|
+
5. Tóm tắt findings cho user
|
|
67
|
+
|
|
68
|
+
### `/conductor-codex:test` — Generate test cases
|
|
69
|
+
|
|
70
|
+
1. Xác định feature/module cần test
|
|
71
|
+
2. Thông báo: "🔍 Đang gọi Codex CLI generate test cases..."
|
|
72
|
+
3. Gọi CLI:
|
|
73
|
+
```bash
|
|
74
|
+
cd <PROJECT_ROOT> && timeout 120 codex "Analyze <FILE_OR_MODULE> and generate a comprehensive list of test cases. Include: happy path, edge cases, error cases, boundary values. Format as markdown table with columns: Test Name | Input | Expected Output | Type. DO NOT edit any files." --approval-mode suggest -q 2>/dev/null
|
|
75
|
+
```
|
|
76
|
+
4. Parse output → lưu vào `codex-reports/test-cases-<DATE>.md`
|
|
77
|
+
5. Trình bày test plan cho user
|
|
78
|
+
|
|
79
|
+
### `/conductor-codex:plan-review` — Review implementation plan
|
|
80
|
+
|
|
81
|
+
1. Đọc `implementation_plan.md` hiện tại
|
|
82
|
+
2. Thông báo: "🔍 Đang gọi Codex CLI review plan..."
|
|
83
|
+
3. Gọi CLI:
|
|
84
|
+
```bash
|
|
85
|
+
cd <PROJECT_ROOT> && timeout 120 codex "Review this implementation plan in the current directory. Find: logic holes, missing error handling, security risks, race conditions, scalability issues, missing edge cases. Rate each issue by severity (critical/warning/info). DO NOT edit any files." --approval-mode suggest -q 2>/dev/null
|
|
86
|
+
```
|
|
87
|
+
4. Parse output → lưu vào `codex-reports/plan-review-<DATE>.md`
|
|
88
|
+
5. Tóm tắt issues → Antigravity cập nhật plan
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Fallback Rules
|
|
93
|
+
|
|
94
|
+
```yaml
|
|
95
|
+
cli_not_installed:
|
|
96
|
+
- "⚠️ Codex CLI chưa cài. Chạy: npm i -g @openai/codex"
|
|
97
|
+
- Offer to install automatically
|
|
98
|
+
|
|
99
|
+
cli_unavailable:
|
|
100
|
+
- "⚠️ Codex CLI không khả dụng, tiếp tục với Antigravity-only"
|
|
101
|
+
- Do NOT block workflow
|
|
102
|
+
|
|
103
|
+
cli_timeout:
|
|
104
|
+
- "⏳ Codex phân tích quá lâu (>120s), bỏ qua và tiếp tục"
|
|
105
|
+
|
|
106
|
+
cli_error:
|
|
107
|
+
- Log error
|
|
108
|
+
- Fall back gracefully
|
|
109
|
+
- Suggest: "codex --version" to check installation
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## Communication
|
|
115
|
+
|
|
116
|
+
Mỗi khi gọi CLI, LUÔN thông báo user:
|
|
117
|
+
```
|
|
118
|
+
🔍 Đang gọi Codex CLI để [mục đích]...
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Sau khi nhận kết quả:
|
|
122
|
+
```
|
|
123
|
+
✅ Codex rà soát xong. Báo cáo: codex-reports/<file>.md
|
|
124
|
+
📊 Tóm tắt: [key findings]
|
|
125
|
+
```
|