@leejungkiin/awkit 1.0.9 → 1.1.1
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/README.md +3 -3
- package/VERSION +1 -1
- package/bin/awf.js +1 -1
- package/bin/awk.js +287 -34
- package/core/AGENTS.md +8 -9
- package/core/GEMINI.md +77 -199
- package/package.json +2 -1
- package/skill-packs/neural-memory/skills/nm-memory-sync/SKILL.md +2 -2
- package/skills/CATALOG.md +3 -2
- package/skills/README.md +109 -0
- package/skills/android-re-analyzer/SKILL.md +238 -0
- package/skills/android-re-analyzer/references/api-extraction-patterns.md +119 -0
- package/skills/android-re-analyzer/references/call-flow-analysis.md +176 -0
- package/skills/android-re-analyzer/references/fernflower-usage.md +115 -0
- package/skills/android-re-analyzer/references/jadx-usage.md +116 -0
- package/skills/android-re-analyzer/references/setup-guide.md +221 -0
- package/skills/android-re-analyzer/scripts/check-deps.sh +129 -0
- package/skills/android-re-analyzer/scripts/decompile.sh +375 -0
- package/skills/android-re-analyzer/scripts/find-api-calls.sh +118 -0
- package/skills/android-re-analyzer/scripts/install-dep.sh +448 -0
- package/skills/awf-session-restore/SKILL.md +108 -184
- package/skills/beads-manager/SKILL.md +2 -2
- package/skills/brainstorm-agent/SKILL.md +47 -2
- package/skills/gemini-conductor/SKILL.md +234 -0
- package/skills/memory-sync/SKILL.md +29 -1
- package/skills/nm-memory-sync/SKILL.md +2 -2
- package/skills/orchestrator/SKILL.md +32 -154
- package/skills/skills/nm-memory-sync/SKILL.md +2 -2
- package/skills/smali-to-kotlin/SKILL.md +1 -1
- package/skills/smali-to-swift/SKILL.md +1 -1
- package/skills/swiftui-pro/SKILL.md +108 -0
- package/skills/swiftui-pro/agents/openai.yaml +10 -0
- package/skills/swiftui-pro/assets/swiftui-pro-icon.png +0 -0
- package/skills/swiftui-pro/assets/swiftui-pro-icon.svg +29 -0
- package/skills/swiftui-pro/references/accessibility.md +13 -0
- package/skills/swiftui-pro/references/api.md +39 -0
- package/skills/swiftui-pro/references/data.md +43 -0
- package/skills/swiftui-pro/references/design.md +31 -0
- package/skills/swiftui-pro/references/hygiene.md +9 -0
- package/skills/swiftui-pro/references/navigation.md +14 -0
- package/skills/swiftui-pro/references/performance.md +46 -0
- package/skills/swiftui-pro/references/swift.md +56 -0
- package/skills/swiftui-pro/references/views.md +35 -0
- package/skills/symphony-enforcer/SKILL.md +227 -0
- package/skills/symphony-orchestrator/SKILL.md +301 -0
- package/skills/telegram-notify/SKILL.md +57 -0
- package/symphony/LICENSE +21 -0
- package/symphony/README.md +178 -0
- package/symphony/app/api/agents/route.js +152 -0
- package/symphony/app/api/events/route.js +22 -0
- package/symphony/app/api/knowledge/route.js +253 -0
- package/symphony/app/api/locks/route.js +29 -0
- package/symphony/app/api/notes/route.js +125 -0
- package/symphony/app/api/preflight/route.js +23 -0
- package/symphony/app/api/projects/route.js +116 -0
- package/symphony/app/api/roles/route.js +134 -0
- package/symphony/app/api/skills/route.js +82 -0
- package/symphony/app/api/status/route.js +18 -0
- package/symphony/app/api/tasks/route.js +157 -0
- package/symphony/app/api/workflows/route.js +61 -0
- package/symphony/app/api/workspaces/route.js +15 -0
- package/symphony/app/globals.css +2605 -0
- package/symphony/app/layout.js +20 -0
- package/symphony/app/page.js +2122 -0
- package/symphony/cli/index.js +1060 -0
- package/symphony/core/agent-manager.js +357 -0
- package/symphony/core/context-bus.js +100 -0
- package/symphony/core/db.js +223 -0
- package/symphony/core/file-lock-manager.js +154 -0
- package/symphony/core/merge-pipeline.js +234 -0
- package/symphony/core/orchestrator.js +236 -0
- package/symphony/core/task-manager.js +335 -0
- package/symphony/core/workspace-manager.js +168 -0
- package/symphony/jsconfig.json +7 -0
- package/symphony/lib/core.mjs +1034 -0
- package/symphony/mcp/index.js +29 -0
- package/symphony/mcp/server.js +110 -0
- package/symphony/mcp/tools/context.js +80 -0
- package/symphony/mcp/tools/locks.js +99 -0
- package/symphony/mcp/tools/status.js +82 -0
- package/symphony/mcp/tools/tasks.js +216 -0
- package/symphony/mcp/tools/workspace.js +143 -0
- package/symphony/next.config.mjs +7 -0
- package/symphony/package.json +53 -0
- package/symphony/scripts/postinstall.js +49 -0
- package/symphony/symphony.config.js +41 -0
- package/templates/conductor-tracks.md +38 -0
- package/templates/workflow_dual_mode_template.md +5 -5
- package/workflows/_uncategorized/AGENTS.md +38 -0
- package/workflows/_uncategorized/decompile.md +67 -0
- package/workflows/_uncategorized/skill-health.md +7 -7
- package/workflows/ads/ads-audit.md +5 -5
- package/workflows/ads/ads-optimize.md +10 -10
- package/workflows/ads/adsExpert.md +7 -7
- package/workflows/conductor.md +97 -0
- package/workflows/context/auto-implement.md +4 -4
- package/workflows/context/codebase-sync.md +19 -8
- package/workflows/context/next.md +27 -27
- package/workflows/context/user-intent-analysis-workflow.md +4 -4
- package/workflows/expert/codeExpert.md +28 -31
- package/workflows/expert/debugExpert.md +11 -11
- package/workflows/expert/planExpert.md +21 -36
- package/workflows/git/smart-git-ops.md +49 -6
- package/workflows/lifecycle/debug.md +7 -7
- package/workflows/lifecycle/deploy.md +10 -10
- package/workflows/lifecycle/master-code-workflow.md +3 -3
- package/workflows/lifecycle/plan.md +19 -21
- package/workflows/quality/audit.md +1 -1
- package/workflows/quality/project-audit.md +1 -1
- package/workflows/roles/vibe-coding-master-workflow.md +2 -2
- package/workflows/smart-git-ops.md +146 -0
- package/workflows/ui/app-screen-analyzer.md +4 -4
- package/workflows/ui/create-feature.md +8 -8
- package/workflows/ui/create-spec-architect.md +11 -11
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 🎼 CLI Conductor — Gọi Gemini CLI phân tích, lên chiến lược, và review code project-wide
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /conductor — Two-Agent Orchestration Workflow
|
|
6
|
+
|
|
7
|
+
> Antigravity chủ động gọi Gemini CLI (headless) khi cần tầm nhìn toàn project.
|
|
8
|
+
> CLI chạy quota pool riêng → nhân đôi AI capacity.
|
|
9
|
+
|
|
10
|
+
// turbo-all
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Sub-commands
|
|
15
|
+
|
|
16
|
+
### `/conductor:analyze` — Phân tích project-wide
|
|
17
|
+
|
|
18
|
+
1. Xác định project root (dùng `.project-identity` hoặc `CODEBASE.md`)
|
|
19
|
+
2. Thông báo user: "📡 Đang gọi Gemini CLI phân tích cấu trúc project..."
|
|
20
|
+
3. Gọi CLI:
|
|
21
|
+
```bash
|
|
22
|
+
cd <PROJECT_ROOT> && timeout 60 gemini -p "Analyze the project structure. List main modules, their responsibilities, key files, and dependencies. Be concise." --approval-mode plan 2>/dev/null
|
|
23
|
+
```
|
|
24
|
+
4. Parse output → tóm tắt cho user
|
|
25
|
+
5. Nếu project có `conductor/tracks.md` → cập nhật
|
|
26
|
+
6. Nếu chưa có `conductor/` → hỏi user có muốn tạo không
|
|
27
|
+
|
|
28
|
+
### `/conductor:track` — Tạo/cập nhật strategic track
|
|
29
|
+
|
|
30
|
+
1. Đọc `conductor/tracks.md` hiện tại (nếu có)
|
|
31
|
+
2. User mô tả mục tiêu chiến lược
|
|
32
|
+
3. Gọi CLI:
|
|
33
|
+
```bash
|
|
34
|
+
cd <PROJECT_ROOT> && timeout 60 gemini -p "Given this project context and goal: <GOAL>. Create a strategic track with: objectives, key milestones, and task breakdown. Current tracks: <EXISTING_TRACKS>" --approval-mode plan 2>/dev/null
|
|
35
|
+
```
|
|
36
|
+
4. Parse output → ghi vào `conductor/tracks.md`
|
|
37
|
+
5. Tạo Symphony tasks từ task breakdown (nếu user đồng ý)
|
|
38
|
+
|
|
39
|
+
### `/conductor:delegate` — Delegate task cho CLI xử lý
|
|
40
|
+
|
|
41
|
+
1. Xác định task cần CLI (phân tích, review, generate)
|
|
42
|
+
2. Build prompt với context đầy đủ
|
|
43
|
+
3. Gọi CLI:
|
|
44
|
+
```bash
|
|
45
|
+
cd <PROJECT_ROOT> && timeout 60 gemini -p "<TASK_PROMPT>" --approval-mode plan 2>/dev/null
|
|
46
|
+
```
|
|
47
|
+
4. Nhận kết quả → tích hợp vào workflow hiện tại
|
|
48
|
+
5. Tiếp tục code/debug với insights từ CLI
|
|
49
|
+
|
|
50
|
+
### `/conductor:review` — Pre-commit review qua CLI
|
|
51
|
+
|
|
52
|
+
1. Lấy diff: `git diff --staged` hoặc `git diff`
|
|
53
|
+
2. Gọi CLI:
|
|
54
|
+
```bash
|
|
55
|
+
cd <PROJECT_ROOT> && timeout 60 gemini -p "Review these code changes for bugs, security issues, and best practices: $(git diff --staged --stat)" --approval-mode plan 2>/dev/null
|
|
56
|
+
```
|
|
57
|
+
3. Parse output → báo cáo issues cho user
|
|
58
|
+
4. Nếu clean → suggest `git commit`
|
|
59
|
+
|
|
60
|
+
### `/conductor:setup` — Khởi tạo conductor infrastructure
|
|
61
|
+
|
|
62
|
+
1. Tạo thư mục `conductor/` tại project root
|
|
63
|
+
2. Copy template `conductor-tracks.md` → `conductor/tracks.md`
|
|
64
|
+
3. Thêm `conductor/` vào `.gitignore` (nếu user muốn)
|
|
65
|
+
4. Thông báo: "✅ Conductor infrastructure ready!"
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Fallback Rules
|
|
70
|
+
|
|
71
|
+
```yaml
|
|
72
|
+
cli_unavailable:
|
|
73
|
+
- "⚠️ Gemini CLI không khả dụng, tiếp tục với Antigravity-only mode"
|
|
74
|
+
- Do NOT block workflow
|
|
75
|
+
|
|
76
|
+
cli_timeout:
|
|
77
|
+
- "⏳ CLI phân tích quá lâu (>60s), bỏ qua và tiếp tục"
|
|
78
|
+
|
|
79
|
+
cli_error:
|
|
80
|
+
- Log error
|
|
81
|
+
- Fall back gracefully
|
|
82
|
+
- Suggest: "gemini --version" to check installation
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Communication
|
|
88
|
+
|
|
89
|
+
Mỗi khi gọi CLI, LUÔN thông báo user:
|
|
90
|
+
```
|
|
91
|
+
📡 Đang gọi Gemini CLI để [mục đích]...
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Sau khi nhận kết quả:
|
|
95
|
+
```
|
|
96
|
+
✅ CLI phân tích xong. Tóm tắt: [key findings]
|
|
97
|
+
```
|
|
@@ -23,10 +23,10 @@ FEATURE=$1 # Pass feature name as argument
|
|
|
23
23
|
Đọc và parse:
|
|
24
24
|
1. `requirements.md` → Hiểu WHAT & WHY
|
|
25
25
|
2. `design.md` → Hiểu HOW (architecture, models, UI)
|
|
26
|
-
3. `
|
|
26
|
+
3. `symphony_available_tasks()` → Hiểu execution plan (list tasks in JSON format for parsing)
|
|
27
27
|
|
|
28
28
|
### 0.3. Parse Tasks
|
|
29
|
-
Retrieve tasks using
|
|
29
|
+
Retrieve tasks using Symphony:
|
|
30
30
|
- Extract task ID
|
|
31
31
|
- Extract description and body
|
|
32
32
|
- Extract requirements from body tags
|
|
@@ -45,7 +45,7 @@ FOR each task WHERE status = "[ ]":
|
|
|
45
45
|
4. GENERATE code
|
|
46
46
|
5. WRITE to specified file
|
|
47
47
|
6. VERIFY (syntax check)
|
|
48
|
-
7. MARK task as complete: `
|
|
48
|
+
7. MARK task as complete: `symphony_complete_task(task_id)`
|
|
49
49
|
8. REPORT progress
|
|
50
50
|
END FOR
|
|
51
51
|
```
|
|
@@ -113,7 +113,7 @@ Mọi code phải tuân thủ:
|
|
|
113
113
|
### 3.1. Update Status
|
|
114
114
|
Sau mỗi task hoàn thành:
|
|
115
115
|
```bash
|
|
116
|
-
|
|
116
|
+
symphony_complete_task(task_id)
|
|
117
117
|
```
|
|
118
118
|
|
|
119
119
|
### 3.2. Progress Report
|
|
@@ -83,17 +83,29 @@ for each missing_file:
|
|
|
83
83
|
|
|
84
84
|
## Phase 3: Update CODEBASE.md
|
|
85
85
|
|
|
86
|
+
> [!IMPORTANT]
|
|
87
|
+
> CODEBASE.md dùng **compact format** — AI đọc nhanh, tốn ít context.
|
|
88
|
+
> KHÔNG dùng format verbose (multi-line per file).
|
|
89
|
+
|
|
86
90
|
```yaml
|
|
87
91
|
MO:
|
|
88
92
|
- APPEND vào đúng section, không xóa gì cũ
|
|
89
93
|
- Update "Last Updated" timestamp
|
|
90
94
|
- Nếu thêm feature mới → thêm section mới
|
|
91
95
|
|
|
92
|
-
Format
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
96
|
+
Compact Format (BẮT BUỘC):
|
|
97
|
+
Mỗi file = 1 dòng trong table:
|
|
98
|
+
| `path/to/File.swift` | Purpose mô tả ngắn (1 câu) |
|
|
99
|
+
|
|
100
|
+
Ví dụ:
|
|
101
|
+
| `Core/Services/PushNotificationService.swift` | FCM push notification registration & handling |
|
|
102
|
+
| `Features/WeeklyGoal/ViewModels/WeeklyGoalVM.swift` | Weekly goal progress tracking logic |
|
|
103
|
+
|
|
104
|
+
❌ KHÔNG dùng format cũ:
|
|
105
|
+
#### FileName.swift
|
|
106
|
+
**Layer:** ...
|
|
107
|
+
**Purpose:** ...
|
|
108
|
+
**Key class:** ...
|
|
97
109
|
|
|
98
110
|
Footer update:
|
|
99
111
|
**Last Updated**: [current date]
|
|
@@ -103,9 +115,8 @@ Footer update:
|
|
|
103
115
|
**Preview trước khi apply:**
|
|
104
116
|
```
|
|
105
117
|
📝 Sẽ thêm [K] entries vào CODEBASE.md:
|
|
106
|
-
+ Core/Services/PushNotificationService.swift →
|
|
107
|
-
+ Features/WeeklyGoal/ViewModels/
|
|
108
|
-
+ Presentation/Views/Dashboard/CombinedDashboardHeader.swift → Views
|
|
118
|
+
+ Core/Services/PushNotificationService.swift → FCM push notification
|
|
119
|
+
+ Features/WeeklyGoal/ViewModels/WeeklyGoalVM.swift → Weekly goal logic
|
|
109
120
|
|
|
110
121
|
Apply? [auto-yes nếu < 10 entries / confirm nếu lớn hơn]
|
|
111
122
|
```
|
|
@@ -1,36 +1,36 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: ➡️ Không biết làm gì tiếp? (v5.0 -
|
|
2
|
+
description: ➡️ Không biết làm gì tiếp? (v5.0 - Symphony + Brain)
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
# WORKFLOW: /next - The Smart Compass (
|
|
5
|
+
# WORKFLOW: /next - The Smart Compass (Symphony + Brain Navigator)
|
|
6
6
|
|
|
7
|
-
> **Mục tiêu:** Phân tích context từ
|
|
7
|
+
> **Mục tiêu:** Phân tích context từ Symphony (Tasks) và Brain (Plans/Knowledge) để gợi ý bước tiếp theo CHÍNH XÁC.
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
## Giai đoạn 1: Multi-Source Context Check (Tự động)
|
|
12
12
|
|
|
13
|
-
### 1.1. Priority 1: Check
|
|
14
|
-
```
|
|
15
|
-
|
|
13
|
+
### 1.1. Priority 1: Check Symphony (Task Tracker)
|
|
14
|
+
```
|
|
15
|
+
symphony_available_tasks(filter="my")
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
**Case A: Có task đang làm dở**
|
|
19
19
|
```
|
|
20
|
-
|
|
20
|
+
🎵 **Symphony Context:**
|
|
21
21
|
Task #123: "Implement Login API" (in_progress)
|
|
22
22
|
└─ Started: 2 hours ago
|
|
23
23
|
└─ Blocker: None
|
|
24
24
|
|
|
25
25
|
➡️ **Bước tiếp theo:**
|
|
26
26
|
1️⃣ Tiếp tục task này? `/code` (AI sẽ tự load context)
|
|
27
|
-
2️⃣ Xem chi tiết task? `
|
|
28
|
-
3️⃣ Chuyển sang task khác? `
|
|
27
|
+
2️⃣ Xem chi tiết task? `symphony_workspace_status(task_id)`
|
|
28
|
+
3️⃣ Chuyển sang task khác? `symphony_available_tasks(filter="ready")`
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
**Case B: Không có task in_progress**
|
|
32
|
-
```
|
|
33
|
-
|
|
32
|
+
```
|
|
33
|
+
symphony_available_tasks(filter="ready")
|
|
34
34
|
```
|
|
35
35
|
→ Hiển thị danh sách tasks đang chờ (ready to start).
|
|
36
36
|
|
|
@@ -46,7 +46,7 @@ else:
|
|
|
46
46
|
**Từ Brain lấy được:**
|
|
47
47
|
- Feature đang làm
|
|
48
48
|
- Phase hiện tại
|
|
49
|
-
- Tasks trong phase (so sánh với
|
|
49
|
+
- Tasks trong phase (so sánh với Symphony)
|
|
50
50
|
|
|
51
51
|
### 1.3. Priority 3: Check Git State (Fallback)
|
|
52
52
|
- `git status` → File nào đang thay đổi?
|
|
@@ -62,16 +62,16 @@ else:
|
|
|
62
62
|
|
|
63
63
|
➡️ **Bước tiếp theo:**
|
|
64
64
|
1️⃣ Lập kế hoạch: `/plan "Feature Name"`
|
|
65
|
-
→ Sẽ tự động tạo tasks trong
|
|
65
|
+
→ Sẽ tự động tạo tasks trong Symphony
|
|
66
66
|
2️⃣ Brainstorm ý tưởng: `/brainstorm`
|
|
67
67
|
```
|
|
68
68
|
|
|
69
69
|
### 2.2. Scenario: Có Plan nhưng chưa có Task
|
|
70
70
|
```
|
|
71
|
-
🧭 **Tình trạng:** Có plan tại `plans/260130-login/` nhưng chưa sync
|
|
71
|
+
🧭 **Tình trạng:** Có plan tại `plans/260130-login/` nhưng chưa sync Symphony.
|
|
72
72
|
|
|
73
73
|
➡️ **Bước tiếp theo:**
|
|
74
|
-
1️⃣ Sync plan sang
|
|
74
|
+
1️⃣ Sync plan sang Symphony? (Em sẽ tạo tasks tự động)
|
|
75
75
|
2️⃣ Bắt đầu code luôn? `/code phase-01`
|
|
76
76
|
```
|
|
77
77
|
|
|
@@ -79,13 +79,13 @@ else:
|
|
|
79
79
|
```
|
|
80
80
|
🧭 **Tình trạng:** Có 3 tasks sẵn sàng làm:
|
|
81
81
|
|
|
82
|
-
|
|
83
|
-
#101 Setup Database Schema (
|
|
84
|
-
#102 Create User Model (
|
|
85
|
-
#103 Write API Tests (
|
|
82
|
+
🎵 **Symphony Tasks:**
|
|
83
|
+
#101 Setup Database Schema (P1 - High)
|
|
84
|
+
#102 Create User Model (P2 - Medium)
|
|
85
|
+
#103 Write API Tests (P3 - Low)
|
|
86
86
|
|
|
87
87
|
➡️ **Bước tiếp theo:**
|
|
88
|
-
1️⃣ Làm task #101? `/code` (AI sẽ tự chọn
|
|
88
|
+
1️⃣ Làm task #101? `/code` (AI sẽ tự chọn P1)
|
|
89
89
|
2️⃣ Chọn task khác? Gõ số task (vd: "102")
|
|
90
90
|
```
|
|
91
91
|
|
|
@@ -95,7 +95,7 @@ else:
|
|
|
95
95
|
|
|
96
96
|
📊 **Progress:**
|
|
97
97
|
- Brain: Phase 02 - Backend (50%)
|
|
98
|
-
-
|
|
98
|
+
- Symphony: Task #123 (in_progress, 2h ago)
|
|
99
99
|
- Git: 3 files changed
|
|
100
100
|
|
|
101
101
|
➡️ **Bước tiếp theo:**
|
|
@@ -136,7 +136,7 @@ else:
|
|
|
136
136
|
|
|
137
137
|
➡️ **Gợi ý:**
|
|
138
138
|
1️⃣ Tiếp tục task này? `/code`
|
|
139
|
-
2️⃣
|
|
139
|
+
2️⃣ Bỏ task (không làm nữa)? `symphony_abandon_task(task_id, reason)`
|
|
140
140
|
```
|
|
141
141
|
|
|
142
142
|
### 3.3. Knowledge Gap
|
|
@@ -152,9 +152,9 @@ else:
|
|
|
152
152
|
|
|
153
153
|
```markdown
|
|
154
154
|
🧭 **ĐANG Ở ĐÂU:**
|
|
155
|
-
[Context từ
|
|
155
|
+
[Context từ Symphony + Brain + Git]
|
|
156
156
|
|
|
157
|
-
|
|
157
|
+
🎵 **SYMPHONY STATUS:**
|
|
158
158
|
- In Progress: X tasks
|
|
159
159
|
- Ready: Y tasks
|
|
160
160
|
- Blocked: Z tasks
|
|
@@ -174,11 +174,11 @@ else:
|
|
|
174
174
|
|
|
175
175
|
## 🛡️ Resilience Patterns
|
|
176
176
|
|
|
177
|
-
###
|
|
177
|
+
### Symphony Unavailable
|
|
178
178
|
```
|
|
179
|
-
if
|
|
179
|
+
if symphony_command_fails:
|
|
180
180
|
→ Fallback to Brain only
|
|
181
|
-
→ Warning: "
|
|
181
|
+
→ Warning: "Symphony không khả dụng. Dùng context từ Brain."
|
|
182
182
|
```
|
|
183
183
|
|
|
184
184
|
### Brain Empty
|
|
@@ -7,16 +7,16 @@ alwaysApply: true
|
|
|
7
7
|
|
|
8
8
|
## Nguyên Tắc Cốt Lõi
|
|
9
9
|
|
|
10
|
-
- **_BẮT BUỘC_** kiểm tra
|
|
10
|
+
- **_BẮT BUỘC_** kiểm tra Symphony task trước khi phân tích bất kỳ yêu cầu coding nào
|
|
11
11
|
- **_BẮT BUỘC_** phân tích và suy luận ý định thực sự của người dùng
|
|
12
12
|
- **_BẮT BUỘC_** đề xuất giải pháp tối ưu thay vì chỉ làm theo nghĩa đen
|
|
13
|
-
- **_NGHIÊM CẤM_** bỏ qua
|
|
13
|
+
- **_NGHIÊM CẤM_** bỏ qua Symphony check kể cả khi user nói “nhanh lên”, “làm luôn”
|
|
14
14
|
|
|
15
|
-
## ⛔ Pre-Analysis
|
|
15
|
+
## ⛔ Pre-Analysis Symphony Gate (LUÔN LUÔN CHẠY TRƯỚC)
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
18
|
# Trước khi phân tích bất kỳ yêu cầu coding/debug/plan:
|
|
19
|
-
|
|
19
|
+
symphony_available_tasks(filter="my")
|
|
20
20
|
|
|
21
21
|
# Nếu có task → Confirm: “Đây có liên quan đến Task #X không?”
|
|
22
22
|
# Nếu không có → Tạo task mới sau khi confirm với user
|
|
@@ -18,42 +18,39 @@ description: 💻 Code ngay lập tức (Expert Mode)
|
|
|
18
18
|
```bash
|
|
19
19
|
/codeExpert phase-01 # Code toàn bộ phase 01
|
|
20
20
|
/codeExpert "Login API" # Code task cụ thể
|
|
21
|
-
/codeExpert # Code task tiếp theo (auto-detect từ
|
|
21
|
+
/codeExpert # Code task tiếp theo (auto-detect từ Symphony)
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
---
|
|
25
25
|
|
|
26
26
|
## Execution Flow
|
|
27
27
|
|
|
28
|
-
### 1. Context Detection — `smart_pick()`
|
|
28
|
+
### 1. Context Detection — `smart_pick()`
|
|
29
29
|
|
|
30
|
-
**Priority 1: Active
|
|
31
|
-
```
|
|
32
|
-
# Read
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
bd update <id> --claim
|
|
42
|
-
fi
|
|
30
|
+
**Priority 1: Active Tasks (Symphony)**
|
|
31
|
+
```
|
|
32
|
+
# Read task mapping from brain
|
|
33
|
+
TASK_MAPPING = read brain/active_plans.json
|
|
34
|
+
|
|
35
|
+
# Check in-progress first
|
|
36
|
+
symphony_available_tasks(filter="my")
|
|
37
|
+
# If none → Get ready tasks
|
|
38
|
+
symphony_available_tasks(filter="ready")
|
|
39
|
+
# Auto-claim first ready task
|
|
40
|
+
symphony_claim_task(task_id)
|
|
43
41
|
```
|
|
44
42
|
|
|
45
43
|
**Priority 2: Argument**
|
|
46
44
|
- Nếu có `phase-XX` → Load phase file
|
|
47
45
|
- Nếu có task name → Search trong plan
|
|
48
46
|
|
|
49
|
-
**Priority 3:
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
bd ready --limit 5
|
|
47
|
+
**Priority 3: Fallback**
|
|
48
|
+
```
|
|
49
|
+
symphony_available_tasks(filter="ready")
|
|
53
50
|
```
|
|
54
51
|
|
|
55
52
|
### 2. Load Spec/Plan
|
|
56
|
-
- Đọc acceptance criteria từ task
|
|
53
|
+
- Đọc acceptance criteria từ Symphony task
|
|
57
54
|
- Đọc spec từ `docs/specs/` hoặc phase file
|
|
58
55
|
|
|
59
56
|
### 3. Execute (Zero Questions)
|
|
@@ -67,15 +64,15 @@ bd ready --limit 5
|
|
|
67
64
|
### 4. Auto-Test
|
|
68
65
|
- Chạy test liên quan (nếu có)
|
|
69
66
|
- Fix lỗi tự động (max 3 lần)
|
|
70
|
-
- Nếu fail sau 3 lần → Tạo
|
|
67
|
+
- Nếu fail sau 3 lần → Tạo Symphony task "Fix test for [Feature]"
|
|
71
68
|
|
|
72
|
-
### 5. Update
|
|
73
|
-
```
|
|
74
|
-
#
|
|
75
|
-
|
|
69
|
+
### 5. Update Symphony — `complete_task()`
|
|
70
|
+
```
|
|
71
|
+
# Complete task with summary
|
|
72
|
+
symphony_complete_task(task_id, summary="Completed", files_changed=[...])
|
|
76
73
|
|
|
77
|
-
#
|
|
78
|
-
|
|
74
|
+
# Report progress if partially done
|
|
75
|
+
symphony_report_progress(task_id, progress=100)
|
|
79
76
|
```
|
|
80
77
|
|
|
81
78
|
### 6. Report
|
|
@@ -89,7 +86,7 @@ bd epic close-eligible
|
|
|
89
86
|
|
|
90
87
|
✅ **Tests:** 5/5 passed
|
|
91
88
|
|
|
92
|
-
|
|
89
|
+
🎵 **Symphony:** Task #123 → Done
|
|
93
90
|
|
|
94
91
|
➡️ **Next:** /codeExpert (Auto-pick next task)
|
|
95
92
|
```
|
|
@@ -117,14 +114,14 @@ AI sẽ tự động quyết định:
|
|
|
117
114
|
Suggestions:
|
|
118
115
|
1. Create plan first: /planExpert "Feature"
|
|
119
116
|
2. Specify target: /codeExpert "Task Name"
|
|
120
|
-
3. Check
|
|
117
|
+
3. Check Symphony: symphony_available_tasks()
|
|
121
118
|
```
|
|
122
119
|
|
|
123
120
|
### Test Fail (After 3 Retries)
|
|
124
121
|
```
|
|
125
122
|
⚠️ Auto-fix failed after 3 attempts
|
|
126
123
|
|
|
127
|
-
|
|
124
|
+
🎵 Created task: "Fix test for Login API"
|
|
128
125
|
|
|
129
126
|
Options:
|
|
130
127
|
1. Debug manually: /debugExpert
|
|
@@ -136,6 +133,6 @@ Options:
|
|
|
136
133
|
|
|
137
134
|
## Integration
|
|
138
135
|
|
|
139
|
-
- **
|
|
136
|
+
- **Symphony:** Auto-update task status via `symphony_complete_task()`
|
|
140
137
|
- **Brain:** Auto-save code patterns to knowledge base
|
|
141
138
|
- **Git:** Auto-stage changes (optional)
|
|
@@ -58,15 +58,15 @@ description: 🐞 Sửa lỗi tự động (Expert Mode)
|
|
|
58
58
|
- ✅ Linting issues
|
|
59
59
|
|
|
60
60
|
**Need-Review:**
|
|
61
|
-
- ⚠️ Logic errors → Create
|
|
62
|
-
- ⚠️ Security issues → Create
|
|
63
|
-
- ⚠️ Performance issues → Create
|
|
61
|
+
- ⚠️ Logic errors → Create Symphony task
|
|
62
|
+
- ⚠️ Security issues → Create Symphony task + Alert
|
|
63
|
+
- ⚠️ Performance issues → Create Symphony task
|
|
64
64
|
|
|
65
65
|
### 4. Verify Fix
|
|
66
66
|
|
|
67
67
|
- Chạy lại test/linter
|
|
68
68
|
- Nếu pass → Done
|
|
69
|
-
- Nếu fail → Rollback + Create
|
|
69
|
+
- Nếu fail → Rollback + Create Symphony task
|
|
70
70
|
|
|
71
71
|
### 5. Report
|
|
72
72
|
|
|
@@ -81,7 +81,7 @@ Added null check before mapping products array
|
|
|
81
81
|
|
|
82
82
|
✅ **Verification:** Tests passed
|
|
83
83
|
|
|
84
|
-
|
|
84
|
+
🎵 **Symphony:** No new tasks (auto-fixed)
|
|
85
85
|
|
|
86
86
|
➡️ **Next:** /codeExpert (Continue coding)
|
|
87
87
|
```
|
|
@@ -105,15 +105,15 @@ AI sẽ tự động quyết định:
|
|
|
105
105
|
```
|
|
106
106
|
⚠️ Cannot auto-fix: Complex logic error
|
|
107
107
|
|
|
108
|
-
|
|
108
|
+
🎵 Created task: "Fix logic error in calculateTotal()"
|
|
109
109
|
|
|
110
110
|
📋 **Analysis:**
|
|
111
111
|
- Issue: Calculation returns negative value
|
|
112
112
|
- Root cause: Missing validation for discount > price
|
|
113
113
|
- Suggested fix: Add validation before calculation
|
|
114
114
|
|
|
115
|
-
➡️ **Next:**
|
|
116
|
-
1. Fix manually: Open task
|
|
115
|
+
➡️ **Next:**
|
|
116
|
+
1. Fix manually: Open task in Symphony
|
|
117
117
|
2. Get help: /debug (Guided Mode)
|
|
118
118
|
```
|
|
119
119
|
|
|
@@ -122,15 +122,15 @@ AI sẽ tự động quyết định:
|
|
|
122
122
|
⚠️ Found 5 errors
|
|
123
123
|
|
|
124
124
|
✅ Auto-fixed: 3 errors
|
|
125
|
-
|
|
125
|
+
🎵 Created Symphony tasks: 2 errors
|
|
126
126
|
|
|
127
|
-
➡️ **Next:**
|
|
127
|
+
➡️ **Next:** symphony_available_tasks(filter="ready")
|
|
128
128
|
```
|
|
129
129
|
|
|
130
130
|
---
|
|
131
131
|
|
|
132
132
|
## Integration
|
|
133
133
|
|
|
134
|
-
- **
|
|
134
|
+
- **Symphony:** Auto-create tasks for complex bugs
|
|
135
135
|
- **Brain:** Save bug patterns to `brain/bugs/`
|
|
136
136
|
- **Git:** Auto-commit fixes with message "fix: [description]"
|
|
@@ -42,34 +42,20 @@ description: 📝 Thiết kế tính năng (Expert Mode - Zero Questions)
|
|
|
42
42
|
- Medium: 6 phases (+ Database + Integration)
|
|
43
43
|
- Complex: 8+ phases (+ Auth + Deploy + Monitoring)
|
|
44
44
|
|
|
45
|
-
### 4. Sync to
|
|
46
|
-
```
|
|
47
|
-
# Step 1: Create
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
--design "<architecture approach>" \
|
|
52
|
-
--json | jq -r '.id')
|
|
53
|
-
|
|
54
|
-
# Step 2: Create phase tasks as children of epic
|
|
45
|
+
### 4. Sync to Symphony
|
|
46
|
+
```
|
|
47
|
+
# Step 1: Create root task (1 per plan)
|
|
48
|
+
symphony_create_task(title="<Feature Name>", priority=1, description="<feature summary>")
|
|
49
|
+
|
|
50
|
+
# Step 2: Create phase tasks
|
|
55
51
|
for each phase:
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
bd create "[Task Name]" \
|
|
64
|
-
--parent $PHASE_ID -p 2 \
|
|
65
|
-
--acceptance "<definition of done>" \
|
|
66
|
-
--json
|
|
67
|
-
|
|
68
|
-
# Step 4: Set inter-phase dependencies
|
|
69
|
-
bd dep add $PHASE2_ID $PHASE1_ID # Sequential phases
|
|
70
|
-
|
|
71
|
-
# Step 5: Save to brain/active_plans.json
|
|
72
|
-
# → { "current": { "epic_id": $EPIC_ID, "feature": "...", "phases": [...] } }
|
|
52
|
+
symphony_create_task(title="Phase X: [Name]", description="<phase summary>")
|
|
53
|
+
|
|
54
|
+
# Step 3: Create subtasks for each phase
|
|
55
|
+
for each task in phase:
|
|
56
|
+
symphony_create_task(title="[Task Name]", acceptance="<definition of done>")
|
|
57
|
+
|
|
58
|
+
# Step 4: Save to brain/active_plans.json
|
|
73
59
|
```
|
|
74
60
|
|
|
75
61
|
### 5. Report
|
|
@@ -80,15 +66,14 @@ bd dep add $PHASE2_ID $PHASE1_ID # Sequential phases
|
|
|
80
66
|
📋 Spec: docs/specs/shopping-cart_spec.md
|
|
81
67
|
|
|
82
68
|
📊 **Structure:**
|
|
83
|
-
- 🏔️ 1
|
|
84
|
-
- 📦 6 Phases (sequential
|
|
69
|
+
- 🏔️ 1 Root Task
|
|
70
|
+
- 📦 6 Phases (sequential)
|
|
85
71
|
- 📝 42 Subtasks (with acceptance criteria)
|
|
86
72
|
- Estimated: 3-4 sessions
|
|
87
73
|
|
|
88
|
-
|
|
89
|
-
-
|
|
90
|
-
-
|
|
91
|
-
- Ready: bd ready --parent bd-xxxx
|
|
74
|
+
🎵 **Symphony:**
|
|
75
|
+
- Tasks: symphony_available_tasks()
|
|
76
|
+
- Status: symphony_status()
|
|
92
77
|
|
|
93
78
|
➡️ **Next:** /codeExpert (auto-picks first ready subtask)
|
|
94
79
|
```
|
|
@@ -129,7 +114,7 @@ Options:
|
|
|
129
114
|
|
|
130
115
|
## Integration
|
|
131
116
|
|
|
132
|
-
- **Brain:** Auto-save
|
|
133
|
-
- **
|
|
134
|
-
- **Skill:** Uses `
|
|
117
|
+
- **Brain:** Auto-save task mapping to `brain/active_plans.json`
|
|
118
|
+
- **Symphony:** Auto-create task hierarchy via `symphony_create_task()`
|
|
119
|
+
- **Skill:** Uses `symphony-orchestrator` skill
|
|
135
120
|
- **Git:** Auto-commit plan files (optional)
|