@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
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: 🤖 Tự động hóa git workflow hoàn chỉnh (audit → commit → push)
|
|
2
|
+
description: 🤖 Tự động hóa git workflow hoàn chỉnh (audit → commit → push → telegram report)
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
# /smart-git-ops - Complete Git Automation
|
|
6
6
|
|
|
7
|
-
**Tự động hóa toàn bộ:** Audit → Semantic Commit → Push
|
|
7
|
+
**Tự động hóa toàn bộ:** Audit → Semantic Commit → Push → Telegram Report
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
@@ -20,7 +20,7 @@ echo "🔍 Running pre-commit audit..."
|
|
|
20
20
|
|
|
21
21
|
---
|
|
22
22
|
|
|
23
|
-
## Phase 2: Status & Staging
|
|
23
|
+
## Phase 2: Status & Smart Staging
|
|
24
24
|
|
|
25
25
|
// turbo
|
|
26
26
|
```bash
|
|
@@ -78,6 +78,48 @@ git push origin HEAD
|
|
|
78
78
|
|
|
79
79
|
---
|
|
80
80
|
|
|
81
|
+
## Phase 7: Telegram Report 📨
|
|
82
|
+
|
|
83
|
+
**Mục đích:** Sau khi push thành công, tự động tóm tắt các thay đổi và gửi báo cáo vào Telegram group.
|
|
84
|
+
|
|
85
|
+
**Logic:**
|
|
86
|
+
1. Lấy thông tin commit vừa push:
|
|
87
|
+
```bash
|
|
88
|
+
COMMIT_HASH=$(git log -1 --format='%h')
|
|
89
|
+
COMMIT_MSG=$(git log -1 --format='%s')
|
|
90
|
+
BRANCH=$(git branch --show-current)
|
|
91
|
+
AUTHOR=$(git log -1 --format='%an')
|
|
92
|
+
FILES_CHANGED=$(git diff --stat HEAD~1 HEAD | tail -1)
|
|
93
|
+
REPO_NAME=$(basename $(git rev-parse --show-toplevel))
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
2. Tạo message tóm tắt (Markdown):
|
|
97
|
+
```
|
|
98
|
+
🚀 *Git Push Report*
|
|
99
|
+
|
|
100
|
+
📦 *Repo:* `{REPO_NAME}`
|
|
101
|
+
🌿 *Branch:* `{BRANCH}`
|
|
102
|
+
🔖 *Commit:* `{COMMIT_HASH}`
|
|
103
|
+
👤 *Author:* {AUTHOR}
|
|
104
|
+
|
|
105
|
+
📝 *Message:* {COMMIT_MSG}
|
|
106
|
+
📊 *Changes:* {FILES_CHANGED}
|
|
107
|
+
🕐 *Time:* {timestamp}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
3. Gửi qua `awkit tg send`:
|
|
111
|
+
// turbo
|
|
112
|
+
```bash
|
|
113
|
+
awkit tg send --parse-mode md "<generated-report>"
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
**Fallback:** Nếu `awkit tg send` fail (chưa config), hiển thị hướng dẫn:
|
|
117
|
+
```
|
|
118
|
+
⚠️ Telegram chưa được cấu hình. Chạy: awkit tg setup
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
81
123
|
## 🎛️ Configuration
|
|
82
124
|
|
|
83
125
|
User có thể config trong `.gemini/config.json`:
|
|
@@ -86,7 +128,8 @@ User có thể config trong `.gemini/config.json`:
|
|
|
86
128
|
"smart_git_ops": {
|
|
87
129
|
"auto_approve_timeout": 5,
|
|
88
130
|
"run_audit": true,
|
|
89
|
-
"run_tests_before_push": false
|
|
131
|
+
"run_tests_before_push": false,
|
|
132
|
+
"telegram_report": true
|
|
90
133
|
}
|
|
91
134
|
}
|
|
92
135
|
```
|
|
@@ -95,9 +138,9 @@ User có thể config trong `.gemini/config.json`:
|
|
|
95
138
|
|
|
96
139
|
## ⚠️ NEXT STEPS
|
|
97
140
|
|
|
98
|
-
Sau khi push thành công:
|
|
141
|
+
Sau khi push & report thành công:
|
|
99
142
|
```
|
|
100
143
|
1️⃣ Xem commit log (`git log --oneline -3`)
|
|
101
|
-
2️⃣ Đóng task
|
|
144
|
+
2️⃣ Đóng task trong Symphony (`symphony_complete_task(task_id)`)
|
|
102
145
|
3️⃣ Tiếp tục task tiếp theo (`/next`)
|
|
103
146
|
```
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
description: 🐞 Sửa lỗi & Debug (Dual-Mode v5.0)
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
# WORKFLOW: /debug - The Sherlock Holmes (Dual-Mode +
|
|
5
|
+
# WORKFLOW: /debug - The Sherlock Holmes (Dual-Mode + Symphony)
|
|
6
6
|
|
|
7
7
|
> **Mode A (Expert):** `/debug --auto-fix` -> Tự động phân tích và sửa lỗi.
|
|
8
8
|
> **Mode B (Guided):** `/debug` -> Hướng dẫn thu thập thông tin -> Phân tích -> Menu sửa.
|
|
@@ -27,8 +27,8 @@ description: 🐞 Sửa lỗi & Debug (Dual-Mode v5.0)
|
|
|
27
27
|
3. **Auto-Fix (Safe Only):**
|
|
28
28
|
- Lỗi *Safe-to-fix*: Missing import, typo, undefined check -> Sửa ngay.
|
|
29
29
|
- Lỗi *Logic*: Báo cáo và đề xuất (không tự ý sửa).
|
|
30
|
-
4. **
|
|
31
|
-
- Nếu lỗi Critical và không thể auto-fix -> `
|
|
30
|
+
4. **Symphony Sync:**
|
|
31
|
+
- Nếu lỗi Critical và không thể auto-fix -> `symphony_create_task(title="Fix Critical Bug in Cart.tsx")`.
|
|
32
32
|
5. **Report:** "✅ Fixed 1 issue. ⚠️ Created task #456 for manual review."
|
|
33
33
|
|
|
34
34
|
---
|
|
@@ -74,7 +74,7 @@ description: 🐞 Sửa lỗi & Debug (Dual-Mode v5.0)
|
|
|
74
74
|
2. **Fix Options:**
|
|
75
75
|
```markdown
|
|
76
76
|
1️⃣ 🔧 Em sửa ngay (Auto-fix)
|
|
77
|
-
2️⃣ 📿 Tạo task
|
|
77
|
+
2️⃣ 📿 Tạo task Symphony để sửa sau
|
|
78
78
|
3️⃣ 📝 Hướng dẫn anh tự sửa
|
|
79
79
|
4️⃣ 🔍 Điều tra sâu hơn
|
|
80
80
|
```
|
|
@@ -86,11 +86,11 @@ description: 🐞 Sửa lỗi & Debug (Dual-Mode v5.0)
|
|
|
86
86
|
|
|
87
87
|
---
|
|
88
88
|
|
|
89
|
-
## 🧠 Brain &
|
|
89
|
+
## 🧠 Brain & Symphony Logic
|
|
90
90
|
|
|
91
91
|
### 1. Bug Tracking
|
|
92
92
|
- Mọi lỗi được phát hiện -> Ghi vào `brain/bugs/[date]_[issue].md`.
|
|
93
|
-
- Nếu lỗi Critical -> Auto-create
|
|
93
|
+
- Nếu lỗi Critical -> Auto-create Symphony task với tag `bug` và `high-priority`.
|
|
94
94
|
|
|
95
95
|
### 2. Knowledge Base
|
|
96
96
|
- Lỗi đã fix -> Lưu vào `brain/solutions/` để tham khảo sau.
|
|
@@ -104,7 +104,7 @@ description: 🐞 Sửa lỗi & Debug (Dual-Mode v5.0)
|
|
|
104
104
|
## 🛡️ Resilience Patterns
|
|
105
105
|
|
|
106
106
|
- **False Fix Detection:** Sau khi sửa, tự động chạy test. Nếu fail -> Rollback ngay.
|
|
107
|
-
- **Unknown Error:** Nếu không tìm ra nguyên nhân sau 3 lần -> Tạo task
|
|
107
|
+
- **Unknown Error:** Nếu không tìm ra nguyên nhân sau 3 lần -> Tạo task Symphony "Investigate Unknown Error" và gợi ý user tìm expert.
|
|
108
108
|
|
|
109
109
|
---
|
|
110
110
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
description: 🚀 Deploy lên Production (Dual-Mode v5.0)
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
# WORKFLOW: /deploy - The Release Manager (Dual-Mode +
|
|
5
|
+
# WORKFLOW: /deploy - The Release Manager (Dual-Mode + Symphony)
|
|
6
6
|
|
|
7
7
|
> **Mode A (Expert):** `/deploy --prod --force` -> Bỏ qua checks, deploy ngay.
|
|
8
8
|
> **Mode B (Guided):** `/deploy` -> Pre-flight Checks -> Config -> Deploy -> Verify.
|
|
@@ -23,9 +23,9 @@ description: 🚀 Deploy lên Production (Dual-Mode v5.0)
|
|
|
23
23
|
2. **Execute:**
|
|
24
24
|
- Chạy build script (`npm run build`).
|
|
25
25
|
- Chạy deploy command (Vercel/Docker/AWS).
|
|
26
|
-
3. **
|
|
27
|
-
-
|
|
28
|
-
-
|
|
26
|
+
3. **Symphony Sync:**
|
|
27
|
+
- Complete all in-progress tasks: `symphony_complete_task(task_id, summary)`.
|
|
28
|
+
- Report deployment progress.
|
|
29
29
|
4. **Report:** "✅ Deployed to Production. URL: [Link]"
|
|
30
30
|
|
|
31
31
|
---
|
|
@@ -35,7 +35,7 @@ description: 🚀 Deploy lên Production (Dual-Mode v5.0)
|
|
|
35
35
|
### Phase 1: Pre-Audit & Health Check
|
|
36
36
|
1. **Blocker Check:**
|
|
37
37
|
- Check `session.json`: Có test nào đang `skipped` không?
|
|
38
|
-
- Check
|
|
38
|
+
- Check Symphony: Có task nào `critical` đang mở không?
|
|
39
39
|
- *If Issue:* ❌ "Khoan! Còn 2 bugs nghiêm trọng chưa fix. Bạn chắc chắn muốn deploy?"
|
|
40
40
|
|
|
41
41
|
2. **Environment Check:**
|
|
@@ -56,9 +56,9 @@ description: 🚀 Deploy lên Production (Dual-Mode v5.0)
|
|
|
56
56
|
1. **Smoke Test:**
|
|
57
57
|
- AI tự truy cập URL vừa deploy.
|
|
58
58
|
- Check HTTP 200, check JS errors.
|
|
59
|
-
2. **
|
|
59
|
+
2. **Symphony Release:**
|
|
60
60
|
- "Tạo Release Note từ các tasks đã làm?"
|
|
61
|
-
- Action:
|
|
61
|
+
- Action: Complete all related tasks in Symphony.
|
|
62
62
|
3. **Action Menu:**
|
|
63
63
|
```markdown
|
|
64
64
|
1️⃣ 📢 Thông báo team (Copy release note)
|
|
@@ -68,11 +68,11 @@ description: 🚀 Deploy lên Production (Dual-Mode v5.0)
|
|
|
68
68
|
|
|
69
69
|
---
|
|
70
70
|
|
|
71
|
-
## 🧠 Brain &
|
|
71
|
+
## 🧠 Brain & Symphony Logic
|
|
72
72
|
|
|
73
73
|
### 1. Release Tracking
|
|
74
74
|
- Mỗi lần deploy thành công -> Tạo bản ghi trong `brain/releases/`.
|
|
75
|
-
- Nội dung: Version, Date, Commit Hash
|
|
75
|
+
- Nội dung: Version, Date, Commit Hash.
|
|
76
76
|
|
|
77
77
|
### 2. Deployment Knowledge
|
|
78
78
|
- Lưu các preferences của user (vd: "Luôn dung Vercel", "Luôn skip test ở Staging").
|
|
@@ -91,5 +91,5 @@ description: 🚀 Deploy lên Production (Dual-Mode v5.0)
|
|
|
91
91
|
```
|
|
92
92
|
1️⃣ Monitor logs (`/logs`)
|
|
93
93
|
2️⃣ Rollback nhanh (`/rollback`)
|
|
94
|
-
3️⃣ Đóng task trong
|
|
94
|
+
3️⃣ Đóng task trong Symphony (`/done`)
|
|
95
95
|
```
|
|
@@ -23,7 +23,7 @@ description: Quy trình thiết kế tính năng toàn diện từ kiến trúc
|
|
|
23
23
|
│ └── Domain → Data → Presentation layers │
|
|
24
24
|
│ ↓ │
|
|
25
25
|
│ Phase 3: FEATURE SPECS │
|
|
26
|
-
│ └── requirements.md → design.md →
|
|
26
|
+
│ └── requirements.md → design.md → Symphony tasks │
|
|
27
27
|
│ ↓ │
|
|
28
28
|
│ Phase 4: UI/UX DESIGN │
|
|
29
29
|
│ └── Design analysis + Platform guidelines │
|
|
@@ -206,9 +206,9 @@ Use `/auto-implement [feature-name]` for spec-driven auto-coding.
|
|
|
206
206
|
|
|
207
207
|
### 5.3. Progress Tracking
|
|
208
208
|
|
|
209
|
-
Update
|
|
209
|
+
Update Symphony status as you complete each task:
|
|
210
210
|
```bash
|
|
211
|
-
|
|
211
|
+
symphony_complete_task(task_id)
|
|
212
212
|
```
|
|
213
213
|
|
|
214
214
|
---
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
description: 📝 Thiết kế tính năng (Dual-Mode v5.0)
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
# WORKFLOW: /plan - The Logic Architect v3 (Dual-Mode +
|
|
5
|
+
# WORKFLOW: /plan - The Logic Architect v3 (Dual-Mode + Symphony)
|
|
6
6
|
|
|
7
7
|
> **Mode A (Expert):** `/plan "Feature Name" --auto` -> Tạo plan chuẩn ngay lập tức.
|
|
8
8
|
> **Mode B (Guided):** `/plan` -> Dẫn dắt từng bước Socratic.
|
|
@@ -20,8 +20,8 @@ description: 📝 Thiết kế tính năng (Dual-Mode v5.0)
|
|
|
20
20
|
1. **Analyze Intent:** Extract feature name from args.
|
|
21
21
|
2. **Generate Spec:** Create `docs/specs/ecommerce-cart_spec.md` with standard sections.
|
|
22
22
|
3. **Generate Phases:** Create `plans/[timestamp]-ecommerce-cart/` with 4-6 standard phases.
|
|
23
|
-
4. **Sync
|
|
24
|
-
5. **Report:** "✅ Plan created at `plans/...`. 6 tasks synced to
|
|
23
|
+
4. **Sync Symphony:** Auto-create tasks in Symphony for each phase.
|
|
24
|
+
5. **Report:** "✅ Plan created at `plans/...`. 6 tasks synced to Symphony."
|
|
25
25
|
|
|
26
26
|
---
|
|
27
27
|
|
|
@@ -31,7 +31,7 @@ description: 📝 Thiết kế tính năng (Dual-Mode v5.0)
|
|
|
31
31
|
1. **Understand Intent:** "Mô tả ý tưởng của bạn đi? (Nói tự nhiên thôi)"
|
|
32
32
|
2. **Socratic Questions:** (Based on previous Logic Architect v2 logic)
|
|
33
33
|
- Auth? Files? Notifications? Payment?
|
|
34
|
-
- *New:* "Có cần tạo task trong
|
|
34
|
+
- *New:* "Có cần tạo task trong Symphony luôn không?"
|
|
35
35
|
|
|
36
36
|
### Phase 2: Architecture & Flow
|
|
37
37
|
1. **Visualize:** Vẽ sơ đồ Mermaid (Flowchart/Entity Relationship).
|
|
@@ -45,44 +45,42 @@ description: 📝 Thiết kế tính năng (Dual-Mode v5.0)
|
|
|
45
45
|
|
|
46
46
|
### Phase 3: Plan Generation
|
|
47
47
|
1. **Action:** Tạo folder structure và file markdown (như v2).
|
|
48
|
-
2. **Sync
|
|
49
|
-
- `
|
|
50
|
-
- Loop qua từng Phase → `
|
|
51
|
-
- Loop qua từng Step → `
|
|
52
|
-
- `bd dep add` cho inter-phase dependencies
|
|
48
|
+
2. **Sync Symphony:** (Nếu user đồng ý ở Phase 1)
|
|
49
|
+
- `symphony_create_task(title="<Feature>", priority=1)` → Create root task
|
|
50
|
+
- Loop qua từng Phase → `symphony_create_task(title="Phase X", ...)`
|
|
51
|
+
- Loop qua từng Step → `symphony_create_task(title="<Step>", acceptance="...")`
|
|
53
52
|
|
|
54
53
|
### Phase 4: Handoff
|
|
55
|
-
1. **Report:** Hiển thị chi tiết Plan và Link
|
|
54
|
+
1. **Report:** Hiển thị chi tiết Plan và Link Symphony.
|
|
56
55
|
2. **Next Steps Menu:**
|
|
57
56
|
```markdown
|
|
58
57
|
1️⃣ 🚀 Bắt đầu code ngay (`/code phase-01`)
|
|
59
58
|
2️⃣ 👁️ Xem trước UI (`/visualize`)
|
|
60
|
-
3️⃣
|
|
59
|
+
3️⃣ 🎵 Xem danh sách task (`/todo`)
|
|
61
60
|
4️⃣ 🔄 Chỉnh sửa lại plan
|
|
62
61
|
```
|
|
63
62
|
|
|
64
63
|
---
|
|
65
64
|
|
|
66
|
-
## 🧠 Brain &
|
|
65
|
+
## 🧠 Brain & Symphony Integration Details
|
|
67
66
|
|
|
68
|
-
### 1. Auto-Sync Logic
|
|
67
|
+
### 1. Auto-Sync Logic
|
|
69
68
|
Khi tạo plan, hệ thống sẽ:
|
|
70
|
-
1. `
|
|
71
|
-
2. For each phase: `
|
|
72
|
-
3. For each task: `
|
|
73
|
-
4.
|
|
74
|
-
5. Ghi epic mapping → `brain/active_plans.json`
|
|
69
|
+
1. `symphony_create_task(title="<Feature>", priority=1)` → Create root task
|
|
70
|
+
2. For each phase: `symphony_create_task(title="Phase X", ...)`
|
|
71
|
+
3. For each task: `symphony_create_task(title="Task", acceptance="...")`
|
|
72
|
+
4. Ghi task mapping → `brain/active_plans.json`
|
|
75
73
|
|
|
76
74
|
### 2. Context Retention
|
|
77
|
-
- Lưu
|
|
78
|
-
- Khi User gõ `/next`, hệ thống dùng `
|
|
75
|
+
- Lưu task IDs vào `brain/active_plans.json`.
|
|
76
|
+
- Khi User gõ `/next`, hệ thống dùng `symphony_available_tasks(filter="ready")` để suggest task.
|
|
79
77
|
|
|
80
78
|
---
|
|
81
79
|
|
|
82
80
|
## 🛡️ Resilience Patterns
|
|
83
81
|
|
|
84
82
|
- **Duplicate Plan:** Nếu folder đã tồn tại -> Hỏi "Ghi đè (Overwrite) hay Tạo bản sao (Copy)?"
|
|
85
|
-
- **
|
|
83
|
+
- **Symphony Error:** Nếu Symphony unavailable -> Vẫn tạo file MD, báo warning "Task tracking disabled".
|
|
86
84
|
|
|
87
85
|
---
|
|
88
86
|
|
|
@@ -185,7 +185,7 @@ fi
|
|
|
185
185
|
```markdown
|
|
186
186
|
1️⃣ Xem chi tiết vấn đề (scroll up)
|
|
187
187
|
2️⃣ Sửa ngay (`/code`)
|
|
188
|
-
3️⃣ Tạo task để sửa sau (`
|
|
188
|
+
3️⃣ Tạo task để sửa sau (`symphony_create_task(title="Fix warnings")`)
|
|
189
189
|
4️⃣ Bỏ qua và commit (KHÔNG khuyến khích)
|
|
190
190
|
```
|
|
191
191
|
|
|
@@ -27,7 +27,7 @@ priority: "high"
|
|
|
27
27
|
**Trigger**: Complex Logic / New Component.
|
|
28
28
|
1. **Plan**: Check `code-quality.md` & `project-identity`.
|
|
29
29
|
2. **Structure**: File organization & Data flow.
|
|
30
|
-
3. **Output**: `docs/specs/[feature]/design.md` &
|
|
30
|
+
3. **Output**: `docs/specs/[feature]/design.md` & Symphony tasks.
|
|
31
31
|
|
|
32
32
|
### Phase 4: Building (The Developer Hat) 💻
|
|
33
33
|
**Trigger**: Approved Plan.
|
|
@@ -44,7 +44,7 @@ priority: "high"
|
|
|
44
44
|
## 🚀 How to Use
|
|
45
45
|
- **Auto-Switch**: As an AI, I will seamlessly switch personas.
|
|
46
46
|
- **Explicit Call**: You can say "Put on your PM hat" or "QA this for me".
|
|
47
|
-
- **Progress**: Use `
|
|
47
|
+
- **Progress**: Use `symphony_available_tasks()` to track which phase we are in.
|
|
48
48
|
|
|
49
49
|
## 🌟 The Vibe
|
|
50
50
|
- Keep it **Fast**.
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 🤖 Tự động hóa git workflow hoàn chỉnh (audit → commit → push → telegram report)
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /smart-git-ops - Complete Git Automation
|
|
6
|
+
|
|
7
|
+
**Tự động hóa toàn bộ:** Audit → Semantic Commit → Push → Telegram Report
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Phase 1: Pre-Commit Audit
|
|
12
|
+
|
|
13
|
+
// turbo
|
|
14
|
+
```bash
|
|
15
|
+
# Run audit to check for issues
|
|
16
|
+
echo "🔍 Running pre-commit audit..."
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
**Note:** Nếu audit phát hiện 🔴 Critical issues → DỪNG workflow.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Phase 2: Status & Smart Staging
|
|
24
|
+
|
|
25
|
+
// turbo
|
|
26
|
+
```bash
|
|
27
|
+
git status
|
|
28
|
+
git diff --stat
|
|
29
|
+
|
|
30
|
+
# Auto-stage known safe paths
|
|
31
|
+
git add src/ app/ lib/ docs/ tests/ *.swift *.kt *.ts *.tsx
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Phase 3: Generate Semantic Commit
|
|
37
|
+
|
|
38
|
+
**Logic:**
|
|
39
|
+
1. Phân tích thay đổi từ `git diff --staged`
|
|
40
|
+
2. Tự động tạo commit message theo format: `type(scope): subject`
|
|
41
|
+
3. Hiển thị message → User xác nhận (timeout 5s = auto-approve)
|
|
42
|
+
|
|
43
|
+
**Example Output:**
|
|
44
|
+
```
|
|
45
|
+
📝 Proposed commit message:
|
|
46
|
+
feat(social): add following list view with real-time sync
|
|
47
|
+
|
|
48
|
+
✅ Accept (Enter) | ❌ Edit (E)
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Phase 4: Commit
|
|
54
|
+
|
|
55
|
+
// turbo
|
|
56
|
+
```bash
|
|
57
|
+
git commit -m "<generated-message>"
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Phase 5: Pre-Push Verification (Optional)
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
# Optional: Run quick build/lint if configured
|
|
66
|
+
# Skip for docs-only changes
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Phase 6: Push
|
|
72
|
+
|
|
73
|
+
// turbo
|
|
74
|
+
```bash
|
|
75
|
+
git pull --rebase origin HEAD 2>/dev/null || true
|
|
76
|
+
git push origin HEAD
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Phase 7: Telegram Report 📨
|
|
82
|
+
|
|
83
|
+
**Mục đích:** Sau khi push thành công, tự động tóm tắt các thay đổi và gửi báo cáo vào Telegram group.
|
|
84
|
+
|
|
85
|
+
**Logic:**
|
|
86
|
+
1. Lấy thông tin commit vừa push:
|
|
87
|
+
```bash
|
|
88
|
+
COMMIT_HASH=$(git log -1 --format='%h')
|
|
89
|
+
COMMIT_MSG=$(git log -1 --format='%s')
|
|
90
|
+
BRANCH=$(git branch --show-current)
|
|
91
|
+
AUTHOR=$(git log -1 --format='%an')
|
|
92
|
+
FILES_CHANGED=$(git diff --stat HEAD~1 HEAD | tail -1)
|
|
93
|
+
REPO_NAME=$(basename $(git rev-parse --show-toplevel))
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
2. Tạo message tóm tắt (Markdown):
|
|
97
|
+
```
|
|
98
|
+
🚀 *Git Push Report*
|
|
99
|
+
|
|
100
|
+
📦 *Repo:* `{REPO_NAME}`
|
|
101
|
+
🌿 *Branch:* `{BRANCH}`
|
|
102
|
+
🔖 *Commit:* `{COMMIT_HASH}`
|
|
103
|
+
👤 *Author:* {AUTHOR}
|
|
104
|
+
|
|
105
|
+
📝 *Message:* {COMMIT_MSG}
|
|
106
|
+
📊 *Changes:* {FILES_CHANGED}
|
|
107
|
+
🕐 *Time:* {timestamp}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
3. Gửi qua `awkit tg send`:
|
|
111
|
+
// turbo
|
|
112
|
+
```bash
|
|
113
|
+
awkit tg send --parse-mode md "<generated-report>"
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
**Fallback:** Nếu `awkit tg send` fail (chưa config), hiển thị hướng dẫn:
|
|
117
|
+
```
|
|
118
|
+
⚠️ Telegram chưa được cấu hình. Chạy: awkit tg setup
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## 🎛️ Configuration
|
|
124
|
+
|
|
125
|
+
User có thể config trong `.gemini/config.json`:
|
|
126
|
+
```json
|
|
127
|
+
{
|
|
128
|
+
"smart_git_ops": {
|
|
129
|
+
"auto_approve_timeout": 5,
|
|
130
|
+
"run_audit": true,
|
|
131
|
+
"run_tests_before_push": false,
|
|
132
|
+
"telegram_report": true
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## ⚠️ NEXT STEPS
|
|
140
|
+
|
|
141
|
+
Sau khi push & report thành công:
|
|
142
|
+
```
|
|
143
|
+
1️⃣ Xem commit log (`git log --oneline -3`)
|
|
144
|
+
2️⃣ Đóng task trong Symphony (`symphony_complete_task(task_id)`)
|
|
145
|
+
3️⃣ Tiếp tục task tiếp theo (`/next`)
|
|
146
|
+
```
|
|
@@ -10,7 +10,7 @@ description: 📱 Phân tích màn hình & tạo đặc tả UI
|
|
|
10
10
|
1. **Input Analysis**: Detect App Type & Context.
|
|
11
11
|
2. **Screen Discovery**: Core → Secondary → Common.
|
|
12
12
|
3. **Feature Grouping**: Organize screens into Features.
|
|
13
|
-
4. **Spec Gen**: Create `docs/specs/[feature]/{requirements,design}.md` and init tasks via **
|
|
13
|
+
4. **Spec Gen**: Create `docs/specs/[feature]/{requirements,design}.md` and init tasks via **Symphony**.
|
|
14
14
|
5. **Overview**: Create `docs/specs/_overview.md`.
|
|
15
15
|
|
|
16
16
|
---
|
|
@@ -101,10 +101,10 @@ enum ViewState { case idle, loading, loaded([Model]), error(Error) }
|
|
|
101
101
|
[Entry] -> [Screen1] -> [Screen2]
|
|
102
102
|
```
|
|
103
103
|
|
|
104
|
-
### 3.3. Task Initialization (
|
|
104
|
+
### 3.3. Task Initialization (Symphony)
|
|
105
105
|
```bash
|
|
106
|
-
|
|
107
|
-
|
|
106
|
+
symphony_create_task(title= "Implement [Feature] - A1: Models & Repos" --body "File: Domain & Data\nValidates: RQ-01"
|
|
107
|
+
symphony_create_task(title= "Implement [Feature] - B1: [Screen1]" --body "File: Presentation/[Feature]/"
|
|
108
108
|
```
|
|
109
109
|
|
|
110
110
|
---
|
|
@@ -109,14 +109,14 @@ Property 1: [Property description]
|
|
|
109
109
|
**Validates: Requirements X.X, X.X**
|
|
110
110
|
```
|
|
111
111
|
|
|
112
|
-
#### Task Creation (using
|
|
113
|
-
Instead of a `tasks.md` file, use
|
|
112
|
+
#### Task Creation (using Symphony)
|
|
113
|
+
Instead of a `tasks.md` file, use Symphony to create tracking tasks:
|
|
114
114
|
|
|
115
115
|
```bash
|
|
116
116
|
# Initialize tasks for the feature
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
117
|
+
symphony_create_task(title="Implement [Feature Name] - Phase A: Foundation", description="Models, Repositories")
|
|
118
|
+
symphony_create_task(title="Implement [Feature Name] - Phase B: UI", description="Views, Components")
|
|
119
|
+
symphony_create_task(title="Implement [Feature Name] - Phase C: Logic", description="ViewModels, Services")
|
|
120
120
|
```
|
|
121
121
|
|
|
122
122
|
#### product.md Template (Steering - one-time)
|
|
@@ -212,7 +212,7 @@ When initiating specs, follow this process:
|
|
|
212
212
|
|
|
213
213
|
### 1.1. Check Spec
|
|
214
214
|
Is there a spec file in `docs/specs/[current-feature]/`?
|
|
215
|
-
- **YES**: **Strict Implementation** mode (follow spec exactly, track progress with
|
|
215
|
+
- **YES**: **Strict Implementation** mode (follow spec exactly, track progress with Symphony)
|
|
216
216
|
- **NO**: **Agile Coding** mode (quick implementation, optionally create spec first)
|
|
217
217
|
|
|
218
218
|
### 1.2. Agile Coding Mode
|
|
@@ -277,7 +277,7 @@ Users often FORGET these. AI MUST ADD:
|
|
|
277
277
|
|
|
278
278
|
### 3.4. Task Sync
|
|
279
279
|
If working in **Strict Implementation** mode:
|
|
280
|
-
- Mark tasks as completed using `
|
|
280
|
+
- Mark tasks as completed using `symphony_complete_task(task_id)`
|
|
281
281
|
- Update `design.md` if architecture changes
|
|
282
282
|
- Keep specs as source of truth
|
|
283
283
|
|
|
@@ -304,7 +304,7 @@ If working in **Strict Implementation** mode:
|
|
|
304
304
|
|
|
305
305
|
1. Report: "Completed [Task Name]."
|
|
306
306
|
2. List: "Changed files: [List]"
|
|
307
|
-
3. If using specs: Update
|
|
307
|
+
3. If using specs: Update task status with `symphony_report_progress(task_id)`
|
|
308
308
|
4. Suggest next steps:
|
|
309
309
|
- "Use `/run` to test."
|
|
310
310
|
- "Use `/test` to verify logic."
|
|
@@ -123,7 +123,7 @@ enum ViewState {
|
|
|
123
123
|
- **Animations:** [Duration, Easing]
|
|
124
124
|
```
|
|
125
125
|
|
|
126
|
-
### 3.4. Task Generation (
|
|
126
|
+
### 3.4. Task Generation (Symphony)
|
|
127
127
|
|
|
128
128
|
**Script:** `docs/specs/[feature]/init_tasks.sh`
|
|
129
129
|
|
|
@@ -131,23 +131,23 @@ enum ViewState {
|
|
|
131
131
|
#!/bin/bash
|
|
132
132
|
|
|
133
133
|
# Phase A: Foundation
|
|
134
|
-
|
|
135
|
-
|
|
134
|
+
symphony_create_task(title= "Implement [Feature] - A1: Models" --body "File: Domain/Models/[Feature].swift\nValidates: RQ-01"
|
|
135
|
+
symphony_create_task(title= "Implement [Feature] - A2: Repository" --body "File: Data/Repositories/[Feature]Repository.swift\nValidates: RQ-01, RQ-02"
|
|
136
136
|
|
|
137
137
|
# Phase B: UI
|
|
138
|
-
|
|
139
|
-
|
|
138
|
+
symphony_create_task(title= "Implement [Feature] - B1: Main View" --body "File: Presentation/[Feature]/[Feature]View.swift\nValidates: RQ-01"
|
|
139
|
+
symphony_create_task(title= "Implement [Feature] - B2: Components" --body "File: Presentation/[Feature]/Components/\nValidates: RQ-01"
|
|
140
140
|
|
|
141
141
|
# Phase C: Logic
|
|
142
|
-
|
|
142
|
+
symphony_create_task(title= "Implement [Feature] - C1: ViewModel" --body "File: Presentation/[Feature]/[Feature]ViewModel.swift\nValidates: RQ-01, RQ-02"
|
|
143
143
|
|
|
144
144
|
# Phase D: Polish
|
|
145
|
-
|
|
146
|
-
|
|
145
|
+
symphony_create_task(title= "Implement [Feature] - D1: Localization" --body "Type: i18n"
|
|
146
|
+
symphony_create_task(title= "Implement [Feature] - D2: Accessibility" --body "Type: a11y"
|
|
147
147
|
|
|
148
148
|
# Phase E: Verify
|
|
149
|
-
|
|
150
|
-
|
|
149
|
+
symphony_create_task(title= "Implement [Feature] - E1: Unit Tests" --body "Type: test"
|
|
150
|
+
symphony_create_task(title= "Implement [Feature] - E2: Final Review" --body "Type: checkpoint"
|
|
151
151
|
```
|
|
152
152
|
|
|
153
153
|
---
|
|
@@ -160,7 +160,7 @@ Sau khi tạo xong, trình bày:
|
|
|
160
160
|
📁 Created: docs/specs/[feature]/
|
|
161
161
|
├── requirements.md (X requirements, Y criteria)
|
|
162
162
|
├── design.md (Component hierarchy, Models, UI specs)
|
|
163
|
-
└── init_tasks.sh (Script to create
|
|
163
|
+
└── init_tasks.sh (Script to create Symphony tasks)
|
|
164
164
|
|
|
165
165
|
Ready for implementation with /auto-implement
|
|
166
166
|
```
|