@leejungkiin/awkit 1.1.0 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/README.md +3 -3
  2. package/VERSION +1 -1
  3. package/bin/awf.js +1 -1
  4. package/bin/awk.js +237 -26
  5. package/core/AGENTS.md +8 -9
  6. package/core/GEMINI.md +74 -199
  7. package/package.json +3 -2
  8. package/skill-packs/neural-memory/skills/nm-memory-sync/SKILL.md +2 -2
  9. package/skills/CATALOG.md +3 -2
  10. package/skills/README.md +109 -0
  11. package/skills/android-re-analyzer/SKILL.md +238 -0
  12. package/skills/android-re-analyzer/references/api-extraction-patterns.md +119 -0
  13. package/skills/android-re-analyzer/references/call-flow-analysis.md +176 -0
  14. package/skills/android-re-analyzer/references/fernflower-usage.md +115 -0
  15. package/skills/android-re-analyzer/references/jadx-usage.md +116 -0
  16. package/skills/android-re-analyzer/references/setup-guide.md +221 -0
  17. package/skills/android-re-analyzer/scripts/check-deps.sh +129 -0
  18. package/skills/android-re-analyzer/scripts/decompile.sh +375 -0
  19. package/skills/android-re-analyzer/scripts/find-api-calls.sh +118 -0
  20. package/skills/android-re-analyzer/scripts/install-dep.sh +448 -0
  21. package/skills/awf-session-restore/SKILL.md +108 -184
  22. package/skills/beads-manager/SKILL.md +2 -2
  23. package/skills/brainstorm-agent/SKILL.md +47 -2
  24. package/skills/gemini-conductor/SKILL.md +234 -0
  25. package/skills/memory-sync/SKILL.md +29 -1
  26. package/skills/nm-memory-sync/SKILL.md +2 -2
  27. package/skills/orchestrator/SKILL.md +29 -155
  28. package/skills/skills/nm-memory-sync/SKILL.md +2 -2
  29. package/skills/smali-to-kotlin/SKILL.md +1 -1
  30. package/skills/smali-to-swift/SKILL.md +1 -1
  31. package/skills/swiftui-pro/SKILL.md +108 -0
  32. package/skills/swiftui-pro/agents/openai.yaml +10 -0
  33. package/skills/swiftui-pro/assets/swiftui-pro-icon.png +0 -0
  34. package/skills/swiftui-pro/assets/swiftui-pro-icon.svg +29 -0
  35. package/skills/swiftui-pro/references/accessibility.md +13 -0
  36. package/skills/swiftui-pro/references/api.md +39 -0
  37. package/skills/swiftui-pro/references/data.md +43 -0
  38. package/skills/swiftui-pro/references/design.md +31 -0
  39. package/skills/swiftui-pro/references/hygiene.md +9 -0
  40. package/skills/swiftui-pro/references/navigation.md +14 -0
  41. package/skills/swiftui-pro/references/performance.md +46 -0
  42. package/skills/swiftui-pro/references/swift.md +56 -0
  43. package/skills/swiftui-pro/references/views.md +35 -0
  44. package/skills/symphony-enforcer/SKILL.md +362 -0
  45. package/skills/symphony-orchestrator/SKILL.md +301 -0
  46. package/skills/telegram-notify/SKILL.md +57 -0
  47. package/symphony/LICENSE +21 -0
  48. package/symphony/README.md +178 -0
  49. package/symphony/app/api/agents/route.js +152 -0
  50. package/symphony/app/api/events/route.js +22 -0
  51. package/symphony/app/api/knowledge/route.js +253 -0
  52. package/symphony/app/api/locks/route.js +29 -0
  53. package/symphony/app/api/notes/route.js +125 -0
  54. package/symphony/app/api/preflight/route.js +23 -0
  55. package/symphony/app/api/projects/route.js +116 -0
  56. package/symphony/app/api/roles/route.js +134 -0
  57. package/symphony/app/api/skills/route.js +82 -0
  58. package/symphony/app/api/status/route.js +18 -0
  59. package/symphony/app/api/tasks/route.js +157 -0
  60. package/symphony/app/api/workflows/route.js +61 -0
  61. package/symphony/app/api/workspaces/route.js +15 -0
  62. package/symphony/app/globals.css +2605 -0
  63. package/symphony/app/layout.js +20 -0
  64. package/symphony/app/page.js +2122 -0
  65. package/symphony/cli/index.js +1060 -0
  66. package/symphony/core/agent-manager.js +357 -0
  67. package/symphony/core/context-bus.js +100 -0
  68. package/symphony/core/db.js +223 -0
  69. package/symphony/core/file-lock-manager.js +154 -0
  70. package/symphony/core/merge-pipeline.js +234 -0
  71. package/symphony/core/orchestrator.js +236 -0
  72. package/symphony/core/task-manager.js +335 -0
  73. package/symphony/core/workspace-manager.js +168 -0
  74. package/symphony/jsconfig.json +7 -0
  75. package/symphony/lib/core.mjs +1034 -0
  76. package/symphony/mcp/index.js +29 -0
  77. package/symphony/mcp/server.js +110 -0
  78. package/symphony/mcp/tools/context.js +80 -0
  79. package/symphony/mcp/tools/locks.js +99 -0
  80. package/symphony/mcp/tools/status.js +82 -0
  81. package/symphony/mcp/tools/tasks.js +216 -0
  82. package/symphony/mcp/tools/workspace.js +143 -0
  83. package/symphony/next.config.mjs +7 -0
  84. package/symphony/package.json +53 -0
  85. package/symphony/scripts/postinstall.js +49 -0
  86. package/symphony/symphony.config.js +41 -0
  87. package/templates/conductor-tracks.md +38 -0
  88. package/templates/specs/PROJECT.md +50 -0
  89. package/templates/specs/ROADMAP.md +79 -0
  90. package/templates/specs/TECH-SPEC.md +81 -0
  91. package/templates/specs/task-spec-template.xml +65 -0
  92. package/templates/workflow_dual_mode_template.md +5 -5
  93. package/workflows/_uncategorized/AGENTS.md +38 -0
  94. package/workflows/_uncategorized/decompile.md +67 -0
  95. package/workflows/_uncategorized/skill-health.md +7 -7
  96. package/workflows/ads/ads-audit.md +5 -5
  97. package/workflows/ads/ads-optimize.md +10 -10
  98. package/workflows/ads/adsExpert.md +7 -7
  99. package/workflows/conductor.md +97 -0
  100. package/workflows/context/auto-implement.md +4 -4
  101. package/workflows/context/codebase-sync.md +19 -8
  102. package/workflows/context/next.md +27 -27
  103. package/workflows/context/user-intent-analysis-workflow.md +4 -4
  104. package/workflows/expert/codeExpert.md +28 -31
  105. package/workflows/expert/debugExpert.md +11 -11
  106. package/workflows/expert/planExpert.md +21 -36
  107. package/workflows/git/smart-git-ops.md +49 -6
  108. package/workflows/lifecycle/debug.md +7 -7
  109. package/workflows/lifecycle/deploy.md +10 -10
  110. package/workflows/lifecycle/init.md +103 -91
  111. package/workflows/lifecycle/master-code-workflow.md +3 -3
  112. package/workflows/lifecycle/plan.md +19 -21
  113. package/workflows/quality/audit.md +1 -1
  114. package/workflows/quality/project-audit.md +1 -1
  115. package/workflows/roles/vibe-coding-master-workflow.md +2 -2
  116. package/workflows/smart-git-ops.md +146 -0
  117. package/workflows/ui/app-screen-analyzer.md +4 -4
  118. package/workflows/ui/create-feature.md +8 -8
  119. package/workflows/ui/create-spec-architect.md +11 -11
@@ -0,0 +1,301 @@
1
+ ---
2
+ name: symphony-orchestrator
3
+ description: |
4
+ Symphony setup, health check, and auto-start skill. Ensures Symphony server
5
+ is running before any task management. Handles installation, global CLI setup,
6
+ project registration, and server lifecycle management.
7
+ metadata:
8
+ stage: core
9
+ version: "3.0"
10
+ replaces: null
11
+ requires: awkit-symphony (npm i -g awkit-symphony)
12
+ tags: [symphony, setup, server, orchestration, core, preflight, multi-project, agent]
13
+ agent: Symphony Conductor
14
+ allowed-tools:
15
+ - run_command
16
+ - read_url_content
17
+ - view_file
18
+ trigger: always
19
+ invocation-type: auto
20
+ priority: 0
21
+ ---
22
+
23
+ # Symphony Orchestrator Skill — Multi-Project & Agent Orchestration
24
+
25
+ > **Purpose:** Đảm bảo Symphony server luôn sẵn sàng cho mọi session.
26
+ > **Key Feature:** Single preflight call thay thế 4+ API calls.
27
+ > **Gate Enforcement:** User PHẢI thấy checklist block, nếu không = vi phạm.
28
+
29
+ ---
30
+
31
+ ## ⚠️ Core Principle: Multi-Project First
32
+
33
+ ```
34
+ QUAN TRỌNG:
35
+ - Symphony quản lý tasks từ NHIỀU project cùng lúc
36
+ - "Active project" trên UI CHỈ ảnh hưởng hiển thị dashboard
37
+ - "Active project" KHÔNG filter queries API/CLI
38
+ - CLI/API mặc định trả về TẤT CẢ tasks, dùng --project/-P để filter
39
+ - AI agents làm việc cross-project — không bị giới hạn bởi active project
40
+ ```
41
+
42
+ **Database:** Centralized tại `~/.gemini/antigravity/symphony/symphony.db`
43
+ - CLI (`core/db.js`) và API (`lib/core.mjs`) dùng CHUNG 1 database
44
+ - Tất cả tasks từ mọi project nằm trong 1 DB duy nhất
45
+
46
+ ---
47
+
48
+ ## Installation (One-Time Setup)
49
+
50
+ ### Bước 1: Install Global
51
+
52
+ ```bash
53
+ cd ~/Dev/NodeJS/main-awf/symphony
54
+ npm link
55
+ ```
56
+
57
+ > Hoặc khi publish npm:
58
+ > ```bash
59
+ > npm i -g awkit-symphony
60
+ > ```
61
+
62
+ ### Bước 2: Verify
63
+
64
+ ```bash
65
+ symphony --version # Expected: 0.1.0+
66
+ symphony --help # Shows: preflight, task, agent, dispatch, next, etc.
67
+ ```
68
+
69
+ ### Bước 3: Build + Start
70
+
71
+ ```bash
72
+ symphony build # Production build (~5-10s)
73
+ symphony start -p 3100 # Start server
74
+ ```
75
+
76
+ ### Troubleshooting
77
+
78
+ | Lỗi | Giải pháp |
79
+ |------|-----------|
80
+ | `command not found: symphony` | `source ~/.nvm/nvm.sh && nvm use default` |
81
+ | `better-sqlite3 architecture mismatch` | `npm rebuild better-sqlite3` |
82
+ | `EADDRINUSE port 3100` | Đã có instance → dùng port khác: `-p 3101` |
83
+ | `.next/ not found` | Chạy `symphony build` thủ công |
84
+
85
+ ---
86
+
87
+ ## 🚦 Preflight Gate Protocol (Gate 0) — BẮT BUỘC
88
+
89
+ Mỗi session, AI PHẢI thực hiện **1 call duy nhất**:
90
+
91
+ ### Via API (khi server đang chạy):
92
+
93
+ ```bash
94
+ curl -s http://localhost:3100/api/preflight
95
+ ```
96
+
97
+ ### Via CLI:
98
+
99
+ ```bash
100
+ symphony preflight # Pretty output
101
+ symphony preflight --json # JSON cho AI parsing
102
+ ```
103
+
104
+ ### Checklist Output (AI PHẢI hiển thị):
105
+
106
+ ```
107
+ 🚦 SYMPHONY PREFLIGHT
108
+ ──────────────────────────────────────────────────
109
+ Server: ✅ PASS
110
+ Project: ✅ PASS — 🧘 Giác Ngộ
111
+ Tasks: 🔵 HAS_ACTIVE
112
+ Overall: ✅ PASS
113
+
114
+ 📿 In Progress: #sym-X1Y2 — Theme System (P1)
115
+ 📋 Ready: #sym-A3B4 — Dark Mode (P2)
116
+ ```
117
+
118
+ > ⚠️ **Nếu không hiển thị checklist block này = VI PHẠM GATE**
119
+
120
+ ---
121
+
122
+ ## Auto-Start Protocol
123
+
124
+ ```
125
+ 1. curl -s http://localhost:3100/api/preflight
126
+ 2. Nếu FAIL (connection refused):
127
+ → symphony start -p 3100 &
128
+ → Đợi 3-5 giây
129
+ → Retry preflight
130
+ 3. Nếu vẫn FAIL:
131
+ → "⚠️ Symphony không khởi động được"
132
+ → Hướng dẫn: cd ~/Dev/NodeJS/main-awf/symphony && npm link && symphony start
133
+ ```
134
+
135
+ ---
136
+
137
+ ## CLI Commands — Full Reference
138
+
139
+ ### Task Management
140
+
141
+ ```bash
142
+ # Listing (cross-project by default)
143
+ symphony task list # ALL tasks, mọi project
144
+ symphony task list -P giacngo # Chỉ project giacngo
145
+ symphony task list -s ready # Filter by status
146
+ symphony task list -P awkit -s done # Combine filters
147
+
148
+ # CRUD
149
+ symphony task create "title" # Create task
150
+ symphony task show <id> # Show details
151
+
152
+ # Lifecycle
153
+ symphony task claim <id> # ready → claimed
154
+ symphony task start <id> # → in_progress (auto-claim)
155
+ symphony task done <id> -m "summary" # → done (auto-claim nếu cần)
156
+ symphony task approve <id> # draft → ready
157
+ symphony task reopen <id> # done → ready
158
+ symphony task abandon <id> # → ready (reset agent)
159
+ symphony task delete <id> # Xóa (draft/ready only)
160
+ symphony task update <id> # Sửa title/priority/desc
161
+ ```
162
+
163
+ ### Agent Management & AI Orchestration
164
+
165
+ ```bash
166
+ # Agents
167
+ symphony agent list # Tất cả agents + status
168
+ symphony agent register <id> -n "name" -s "code,debug" # Đăng ký
169
+ symphony agent show <id> # Chi tiết
170
+ symphony agent update <id> -s "new,specs" # Sửa profile
171
+ symphony agent remove <id> # Xóa (idle only)
172
+ symphony agent assign <agent-id> <task-id> # Gán task → agent
173
+ symphony agent idle <id> # Mark idle
174
+
175
+ # Orchestration Shortcuts
176
+ symphony dispatch <task-id> # 🎯 Auto-pick idle agent phù hợp
177
+ symphony dispatch <task-id> -a <agent> # 🎯 Dispatch cho agent chỉ định
178
+ symphony next # 📋 Gợi ý task tiếp theo
179
+ symphony next -n 5 # 📋 Top 5 suggestions
180
+ ```
181
+
182
+ ### Server & System
183
+
184
+ ```bash
185
+ symphony status # Full system status
186
+ symphony preflight # Gate check (BẮT BUỘC)
187
+ symphony start [-p PORT] # Production mode
188
+ symphony dev [-p PORT] # Dev mode
189
+ symphony build # Build dashboard
190
+ symphony dashboard # Open browser
191
+ ```
192
+
193
+ ---
194
+
195
+ ## Multi-Project Workflow
196
+
197
+ ### Scenario: AI làm việc trên 2 project cùng lúc
198
+
199
+ ```bash
200
+ # 1. Xem tất cả tasks cross-project
201
+ symphony task list
202
+ # → Hiển thị tasks từ cả giacngo, awkit, filmcam...
203
+
204
+ # 2. Filter khi cần focus 1 project
205
+ symphony task list -P giacngo -s ready
206
+
207
+ # 3. Claim task từ project bất kỳ
208
+ symphony task start sym-W0jcDtRo # giacngo task
209
+ symphony task start sym-VKTqZkyF # awkit task — vẫn hoạt động
210
+
211
+ # 4. Complete không cần switch project
212
+ symphony task done sym-W0jcDtRo -m "Theme system done"
213
+
214
+ # 5. Dispatch task cho agent cụ thể
215
+ symphony dispatch sym-A3B4 -a agent-frontend
216
+ ```
217
+
218
+ ### AI Agent Orchestration Flow
219
+
220
+ ```
221
+ 1. AI registers as agent:
222
+ symphony agent register antigravity-main -n "Antigravity" -s "code,debug,plan"
223
+
224
+ 2. AI picks next task from ANY project:
225
+ symphony next
226
+ → Shows ready tasks across all projects with project column
227
+
228
+ 3. AI claims and starts:
229
+ symphony task start <task-id>
230
+
231
+ 4. AI completes:
232
+ symphony task done <task-id> -m "summary"
233
+
234
+ 5. AI checks next:
235
+ symphony next
236
+ ```
237
+
238
+ ### Concurrency Control
239
+
240
+ ```bash
241
+ # Max 3 working agents (symphony.config.js → maxAgents: 3)
242
+ # Dispatch will fail if all slots occupied:
243
+ # "❌ No available agent slots"
244
+ # → Free a slot: symphony agent idle <agent-id>
245
+ ```
246
+
247
+ ---
248
+
249
+ ## API Endpoints
250
+
251
+ | Method | Endpoint | Description |
252
+ |--------|----------|-------------|
253
+ | **GET** | **`/api/preflight`** | **🚦 Single-call gate check (BẮT BUỘC)** |
254
+ | GET | `/api/status` | Full system status |
255
+ | GET | `/api/tasks` | List tasks (?status=, ?project=) |
256
+ | POST | `/api/tasks` | Create task |
257
+ | PATCH | `/api/tasks` | Actions: claim, complete, abandon, approve, reopen |
258
+ | DELETE | `/api/tasks?id=` | Delete task |
259
+ | GET | `/api/projects` | List projects (?stats=true) |
260
+ | POST | `/api/projects` | Register project |
261
+ | PATCH | `/api/projects` | Activate project (UI only) |
262
+ | GET | `/api/agents` | List agents |
263
+ | POST | `/api/agents` | Register agent |
264
+ | PATCH | `/api/agents` | Update profile / assign task |
265
+ | DELETE | `/api/agents` | Remove agent |
266
+
267
+ ---
268
+
269
+ ## Integration with GEMINI.md Gates
270
+
271
+ | Gate | Protocol |
272
+ |------|----------|
273
+ | **Gate 0** | `curl /api/preflight` → checklist block → NeuralMemory warm-up |
274
+ | Gate 0.5 | Check `preflight.projects` → auto-register if missing → switch brain |
275
+ | Gate 1 | `symphony task list -s in_progress` → claim/create task (cross-project) |
276
+ | Gate 2 | `symphony task done <id> -m "..."` → `symphony next` → suggest |
277
+ | Gate 3 | `symphony task list -s in_progress` → block deploy if any |
278
+
279
+ ---
280
+
281
+ ## Database Location
282
+
283
+ ```
284
+ ~/.gemini/antigravity/symphony/symphony.db # Centralized (all projects share 1 DB)
285
+ ```
286
+
287
+ > ⚠️ CLI và API dùng CHUNG database này.
288
+ > Active project selection trên dashboard KHÔNG ảnh hưởng queries.
289
+
290
+ ---
291
+
292
+ ## Learnings
293
+
294
+ - `npm link` requires NVM PATH — user may need `source ~/.nvm/nvm.sh`
295
+ - `better-sqlite3` is native module — may need `npm rebuild` after arch changes
296
+ - Production server ~170ms vs ~3s for dev — always prefer `symphony start`
297
+ - Preflight replaces 4+ API calls with 1 — much harder for AI to skip
298
+ - Preflight checklist block acts as visual enforcement — user sees immediately if skipped
299
+ - Active project is UI-only — NEVER use it to scope CLI/API queries
300
+ - CLI and API share centralized DB at `~/.gemini/antigravity/symphony/symphony.db`
301
+ - Multi-project work is default — tasks from all projects visible simultaneously
@@ -0,0 +1,57 @@
1
+ ---
2
+ name: telegram-notify
3
+ description: Send Telegram notifications via AWKit CLI (Bot API). Use when tasks complete, deploys finish, or user requests Telegram alerts.
4
+ triggers:
5
+ - keywords: ["telegram", "tg", "notify", "gửi telegram", "báo telegram", "thông báo"]
6
+ - events: ["deploy_complete", "task_complete", "user_request"]
7
+ priority: low
8
+ ---
9
+
10
+ # Telegram Notify Skill
11
+
12
+ Send messages to Telegram groups/topics via `awkit tg` CLI command (Bot API, zero MCP needed).
13
+
14
+ ## When to Use
15
+
16
+ - User explicitly asks to send a Telegram message
17
+ - After deploy/release completion (if user has configured notifications)
18
+ - Task completion summaries when user requests
19
+
20
+ ## Prerequisites
21
+
22
+ User must have run `awkit tg setup` first. If not configured, guide them:
23
+
24
+ ```bash
25
+ awkit tg setup
26
+ # Prompts: Bot Token → Chat ID → Topic ID (optional)
27
+ ```
28
+
29
+ ## Commands
30
+
31
+ ```bash
32
+ # Send plain text
33
+ awkit tg send "message here"
34
+
35
+ # Send to specific chat
36
+ awkit tg send --chat -100xxx "message"
37
+
38
+ # Send to specific forum topic
39
+ awkit tg send --topic 123 "message"
40
+
41
+ # Markdown formatting
42
+ awkit tg send --parse-mode md "**bold** _italic_ `code`"
43
+
44
+ # HTML formatting
45
+ awkit tg send --parse-mode html "<b>bold</b> <i>italic</i>"
46
+
47
+ # Combine flags
48
+ awkit tg send --chat -100xxx --topic 456 --parse-mode md "**Done!**"
49
+ ```
50
+
51
+ ## AI Usage Rules
52
+
53
+ 1. **NEVER send without user consent** — always confirm before sending
54
+ 2. **Keep messages concise** — summarize, don't dump full logs
55
+ 3. **Use Markdown** for formatted messages (`--parse-mode md`)
56
+ 4. **Config location**: `~/.gemini/antigravity/.tg_config.json`
57
+ 5. If `awkit tg send` returns error about config, tell user to run `awkit tg setup`
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 AWKit
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,178 @@
1
+ # 🎼 AWKit Symphony
2
+
3
+ > Multi-Agent Orchestration for AI Coding Assistants
4
+
5
+ Symphony coordinates multiple AI agents working on the same codebase — managing tasks, preventing file conflicts, and providing real-time visibility through a dashboard.
6
+
7
+ ## ✨ Features
8
+
9
+ | Feature | Description |
10
+ |---------|-------------|
11
+ | **Task Management** | Create, assign, track tasks with priority & acceptance criteria |
12
+ | **Git Isolation** | Auto worktree/clone per task — agents work on separate branches |
13
+ | **File Locking** | Pessimistic locking prevents two agents from editing the same file |
14
+ | **Merge Pipeline** | Auto-rebase + fast-forward merge when tasks complete |
15
+ | **MCP Server** | 14 tools for IDE integration via Model Context Protocol |
16
+ | **Dashboard** | Real-time Kanban board, agent status, events feed |
17
+ | **Context Bus** | Event pub/sub — agents notify each other of changes |
18
+
19
+ ## 🚀 Quick Start
20
+
21
+ ```bash
22
+ # Install
23
+ cd symphony
24
+ npm install
25
+
26
+ # Start dashboard (port 3100)
27
+ npm run dev
28
+
29
+ # Or use CLI
30
+ node cli/index.js status
31
+ node cli/index.js task list
32
+ ```
33
+
34
+ ## 📋 CLI Commands
35
+
36
+ ```bash
37
+ # System
38
+ symphony status # Show system status
39
+ symphony start # Start dashboard server
40
+ symphony dashboard # Open dashboard in browser
41
+
42
+ # Tasks
43
+ symphony task list [-s ready] # List tasks (filter by status)
44
+ symphony task create "Feature X" -p 1 # Create task (priority 1-3)
45
+ symphony task show <id> # Show task details
46
+
47
+ # Workspaces
48
+ symphony workspace list # List active workspaces
49
+ symphony workspace create <task-id> # Create workspace for task
50
+ symphony workspace merge <task-id> # Auto-merge completed task
51
+ symphony workspace clean # Remove merged workspaces
52
+
53
+ # File Locks
54
+ symphony lock list # Show active locks
55
+ symphony lock release <file> # Force-release stuck lock
56
+
57
+ # MCP Server
58
+ symphony mcp-serve [-n "Agent Name"] # Start MCP server (stdio)
59
+ ```
60
+
61
+ ## 🔌 MCP Integration
62
+
63
+ Add to your IDE's MCP config:
64
+
65
+ ```json
66
+ {
67
+ "mcpServers": {
68
+ "symphony": {
69
+ "command": "node",
70
+ "args": ["/path/to/symphony/mcp/server.js"],
71
+ "env": {
72
+ "SYMPHONY_AGENT_NAME": "my-agent"
73
+ }
74
+ }
75
+ }
76
+ }
77
+ ```
78
+
79
+ ### Available MCP Tools (14)
80
+
81
+ | Tool | Description |
82
+ |------|-------------|
83
+ | `symphony_available_tasks` | List available tasks |
84
+ | `symphony_claim_task` | Claim a task (get workspace + branch) |
85
+ | `symphony_report_progress` | Report progress (0-100%) |
86
+ | `symphony_complete_task` | Complete task + trigger merge |
87
+ | `symphony_abandon_task` | Abandon a task |
88
+ | `symphony_check_files` | Check file lock status |
89
+ | `symphony_lock_files` | Lock files for editing |
90
+ | `symphony_unlock_files` | Release file locks |
91
+ | `symphony_broadcast` | Broadcast event to other agents |
92
+ | `symphony_events` | Query context bus events |
93
+ | `symphony_status` | Get system status |
94
+ | `symphony_create_task` | Create a new task |
95
+ | `symphony_workspace_status` | Get workspace info + diff stats |
96
+ | `symphony_merge_task` | Run auto-merge pipeline |
97
+
98
+ ## 🏗️ Architecture
99
+
100
+ ```
101
+ symphony/
102
+ ├── core/ # Engine
103
+ │ ├── db.js # SQLite (WAL mode)
104
+ │ ├── task-manager.js # Task CRUD + state machine
105
+ │ ├── workspace-manager.js # Git worktree lifecycle
106
+ │ ├── merge-pipeline.js # Auto-rebase + merge
107
+ │ ├── file-lock-manager.js # Pessimistic file locking
108
+ │ ├── context-bus.js # Event pub/sub
109
+ │ └── orchestrator.js # Agent dispatch + state
110
+ ├── mcp/ # MCP Server
111
+ │ ├── server.js # stdio transport
112
+ │ ├── index.js # Tool registry (14 tools)
113
+ │ └── tools/ # Tool implementations
114
+ ├── cli/ # CLI
115
+ │ └── index.js # Commander.js commands
116
+ ├── app/ # Dashboard (Next.js)
117
+ │ ├── page.js # Kanban + status + events
118
+ │ └── api/ # REST API routes
119
+ └── lib/
120
+ └── core.mjs # ESM bridge for Turbopack
121
+ ```
122
+
123
+ ## ⚙️ Configuration
124
+
125
+ Edit `symphony.config.js`:
126
+
127
+ ```js
128
+ module.exports = {
129
+ port: 3100,
130
+ maxAgents: 3,
131
+ workspace: {
132
+ type: 'hybrid', // 'worktree' | 'clone' | 'hybrid'
133
+ cloneThreshold: 30, // files > 30 → full clone
134
+ },
135
+ git: {
136
+ autoMerge: true,
137
+ targetBranch: 'main',
138
+ branchPrefix: 'symphony/',
139
+ },
140
+ locks: {
141
+ strategy: 'pessimistic',
142
+ autoRelease: 3600, // seconds
143
+ },
144
+ };
145
+ ```
146
+
147
+ ## 📊 Dashboard
148
+
149
+ The dashboard runs on `http://localhost:3100` and provides:
150
+
151
+ - **Kanban Board** — Tasks by status (Ready → In Progress → Review → Done)
152
+ - **Agent Panel** — Connected agents with live status
153
+ - **Events Feed** — Real-time context bus events
154
+ - **Lock Panel** — Active file locks with force-release
155
+ - **Stats Bar** — Task counts and system health
156
+
157
+ ## 🔄 Task Lifecycle
158
+
159
+ ```
160
+ Ready → Claimed → In Progress → Review → Done
161
+ │ │
162
+ └─── Abandoned ◀────────────────────────┘
163
+ ```
164
+
165
+ 1. **Create** task via CLI or dashboard
166
+ 2. **Agent claims** via MCP → gets isolated workspace + branch
167
+ 3. **Agent works** → reports progress, locks files, broadcasts events
168
+ 4. **Agent completes** → triggers auto-merge pipeline
169
+ 5. **Merge** → rebase onto main, fast-forward, cleanup workspace
170
+
171
+ ## 📦 Tech Stack
172
+
173
+ - **Runtime:** Node.js
174
+ - **Database:** SQLite (via better-sqlite3, WAL mode)
175
+ - **Dashboard:** Next.js 16 + React 19
176
+ - **MCP:** @modelcontextprotocol/sdk
177
+ - **CLI:** Commander.js
178
+ - **Git:** Native git commands (worktree, rebase, merge)