@mrpatronz/nexusflow 0.2.17 → 0.2.19

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 (320) hide show
  1. package/.agents/skills/ccc/SKILL.md +71 -0
  2. package/.agents/skills/ccc/references/management.md +110 -0
  3. package/.agents/skills/ccc/references/settings.md +126 -0
  4. package/.github/dependabot.yml +52 -52
  5. package/.github/workflows/ci.yml +44 -0
  6. package/.github/workflows/dependabot-merge.yml +53 -53
  7. package/.github/workflows/release-desktop.yml +67 -0
  8. package/.github/workflows/release-npm.yml +65 -0
  9. package/.github/workflows/release-vscode.yml +61 -0
  10. package/.vscode/launch.json +17 -17
  11. package/.vscode/tasks.json +17 -17
  12. package/GETTING_STARTED.md +114 -114
  13. package/README.md +364 -336
  14. package/desktop/build-installer.js +228 -228
  15. package/desktop/build.js +118 -118
  16. package/desktop/installer/nexusflow.iss +35 -35
  17. package/desktop/neutralino.config.json +38 -38
  18. package/desktop/package-lock.json +1060 -1060
  19. package/desktop/package.json +14 -14
  20. package/dist/commands/adapter.d.ts +27 -0
  21. package/dist/commands/adapter.d.ts.map +1 -0
  22. package/dist/commands/adapter.js +318 -0
  23. package/dist/commands/adapter.js.map +1 -0
  24. package/dist/commands/add-repo.d.ts.map +1 -1
  25. package/dist/commands/add-repo.js +0 -1
  26. package/dist/commands/add-repo.js.map +1 -1
  27. package/dist/commands/commands.test.js +2 -2
  28. package/dist/commands/commands.test.js.map +1 -1
  29. package/dist/commands/config.d.ts +22 -0
  30. package/dist/commands/config.d.ts.map +1 -0
  31. package/dist/commands/config.js +50 -0
  32. package/dist/commands/config.js.map +1 -0
  33. package/dist/commands/create.d.ts.map +1 -1
  34. package/dist/commands/create.js +14 -17
  35. package/dist/commands/create.js.map +1 -1
  36. package/dist/commands/doctor.d.ts.map +1 -1
  37. package/dist/commands/doctor.js +11 -0
  38. package/dist/commands/doctor.js.map +1 -1
  39. package/dist/commands/refresh.d.ts +1 -0
  40. package/dist/commands/refresh.d.ts.map +1 -1
  41. package/dist/commands/refresh.js +2 -14
  42. package/dist/commands/refresh.js.map +1 -1
  43. package/dist/commands/sync.d.ts.map +1 -1
  44. package/dist/commands/sync.js +36 -54
  45. package/dist/commands/sync.js.map +1 -1
  46. package/dist/commands/tui.d.ts.map +1 -1
  47. package/dist/commands/tui.js +63 -10
  48. package/dist/commands/tui.js.map +1 -1
  49. package/dist/core/adapters/local-storage.d.ts +14 -0
  50. package/dist/core/adapters/local-storage.d.ts.map +1 -0
  51. package/dist/core/adapters/local-storage.js +58 -0
  52. package/dist/core/adapters/local-storage.js.map +1 -0
  53. package/dist/core/adapters/obsidian-storage.d.ts +28 -0
  54. package/dist/core/adapters/obsidian-storage.d.ts.map +1 -0
  55. package/dist/core/adapters/obsidian-storage.js +135 -0
  56. package/dist/core/adapters/obsidian-storage.js.map +1 -0
  57. package/dist/core/adapters/registry.d.ts +8 -0
  58. package/dist/core/adapters/registry.d.ts.map +1 -0
  59. package/dist/core/adapters/registry.js +37 -0
  60. package/dist/core/adapters/registry.js.map +1 -0
  61. package/dist/core/adapters/storage.test.d.ts +2 -0
  62. package/dist/core/adapters/storage.test.d.ts.map +1 -0
  63. package/dist/core/adapters/storage.test.js +106 -0
  64. package/dist/core/adapters/storage.test.js.map +1 -0
  65. package/dist/core/adapters/vault-storage.d.ts +16 -0
  66. package/dist/core/adapters/vault-storage.d.ts.map +1 -0
  67. package/dist/core/adapters/vault-storage.js +77 -0
  68. package/dist/core/adapters/vault-storage.js.map +1 -0
  69. package/dist/core/config.d.ts.map +1 -1
  70. package/dist/core/config.js +28 -4
  71. package/dist/core/config.js.map +1 -1
  72. package/dist/core/plugins/index.d.ts +14 -0
  73. package/dist/core/plugins/index.d.ts.map +1 -0
  74. package/dist/core/plugins/index.js +2 -0
  75. package/dist/core/plugins/index.js.map +1 -0
  76. package/dist/core/plugins/loader.d.ts +2 -0
  77. package/dist/core/plugins/loader.d.ts.map +1 -0
  78. package/dist/core/plugins/loader.js +34 -0
  79. package/dist/core/plugins/loader.js.map +1 -0
  80. package/dist/core/ports/storage.d.ts +59 -0
  81. package/dist/core/ports/storage.d.ts.map +1 -0
  82. package/dist/core/ports/storage.js +10 -0
  83. package/dist/core/ports/storage.js.map +1 -0
  84. package/dist/core/storage.d.ts +10 -0
  85. package/dist/core/storage.d.ts.map +1 -0
  86. package/dist/core/storage.js +29 -0
  87. package/dist/core/storage.js.map +1 -0
  88. package/dist/core/sync.d.ts +44 -0
  89. package/dist/core/sync.d.ts.map +1 -0
  90. package/dist/core/sync.js +82 -0
  91. package/dist/core/sync.js.map +1 -0
  92. package/dist/core/workspace-state.d.ts +51 -0
  93. package/dist/core/workspace-state.d.ts.map +1 -0
  94. package/dist/core/workspace-state.js +108 -0
  95. package/dist/core/workspace-state.js.map +1 -0
  96. package/dist/core/workspace-state.test.d.ts +2 -0
  97. package/dist/core/workspace-state.test.d.ts.map +1 -0
  98. package/dist/core/workspace-state.test.js +84 -0
  99. package/dist/core/workspace-state.test.js.map +1 -0
  100. package/dist/core/workspace.d.ts.map +1 -1
  101. package/dist/core/workspace.js +110 -16
  102. package/dist/core/workspace.js.map +1 -1
  103. package/dist/generators/base.d.ts.map +1 -1
  104. package/dist/generators/base.js +80 -79
  105. package/dist/generators/base.js.map +1 -1
  106. package/dist/generators/codex.js +11 -11
  107. package/dist/generators/copilot.js +17 -17
  108. package/dist/generators/cursor.js +5 -5
  109. package/dist/generators/diff-context.d.ts +6 -0
  110. package/dist/generators/diff-context.d.ts.map +1 -0
  111. package/dist/generators/diff-context.js +68 -0
  112. package/dist/generators/diff-context.js.map +1 -0
  113. package/dist/generators/index.d.ts +1 -1
  114. package/dist/generators/index.d.ts.map +1 -1
  115. package/dist/generators/index.js +125 -68
  116. package/dist/generators/index.js.map +1 -1
  117. package/dist/generators/map-generator.d.ts.map +1 -1
  118. package/dist/generators/map-generator.js +21 -25
  119. package/dist/generators/map-generator.js.map +1 -1
  120. package/dist/generators/plan-generator.d.ts.map +1 -1
  121. package/dist/generators/plan-generator.js +3 -5
  122. package/dist/generators/plan-generator.js.map +1 -1
  123. package/dist/generators/skills-generator.js +28 -28
  124. package/dist/gui/assets/index-Bdbld6yY.css +1 -0
  125. package/dist/gui/assets/index-D8iJPvnk.js +26 -0
  126. package/dist/gui/icons.svg +24 -24
  127. package/dist/gui/index.html +18 -18
  128. package/dist/index.js +131 -20
  129. package/dist/index.js.map +1 -1
  130. package/dist/mcp/server.d.ts.map +1 -1
  131. package/dist/mcp/server.js +42 -0
  132. package/dist/mcp/server.js.map +1 -1
  133. package/dist/server.d.ts.map +1 -1
  134. package/dist/server.js +140 -56
  135. package/dist/server.js.map +1 -1
  136. package/dist/server.test.js +105 -48
  137. package/dist/server.test.js.map +1 -1
  138. package/dist/types.d.ts +38 -2
  139. package/dist/types.d.ts.map +1 -1
  140. package/dist/utils/local-ai.d.ts.map +1 -1
  141. package/dist/utils/local-ai.js +7 -3
  142. package/dist/utils/local-ai.js.map +1 -1
  143. package/dist/utils/multi-git.d.ts +33 -8
  144. package/dist/utils/multi-git.d.ts.map +1 -1
  145. package/dist/utils/multi-git.js +91 -19
  146. package/dist/utils/multi-git.js.map +1 -1
  147. package/dist/utils/multi-git.test.d.ts +2 -0
  148. package/dist/utils/multi-git.test.d.ts.map +1 -0
  149. package/dist/utils/multi-git.test.js +125 -0
  150. package/dist/utils/multi-git.test.js.map +1 -0
  151. package/dist/utils/update-check.d.ts.map +1 -1
  152. package/dist/utils/update-check.js +0 -28
  153. package/dist/utils/update-check.js.map +1 -1
  154. package/dist/utils/workflow-advisor.d.ts +16 -0
  155. package/dist/utils/workflow-advisor.d.ts.map +1 -0
  156. package/dist/utils/workflow-advisor.js +100 -0
  157. package/dist/utils/workflow-advisor.js.map +1 -0
  158. package/extension/package-lock.json +6044 -2673
  159. package/extension/package.json +117 -108
  160. package/extension/src/extension.ts +653 -631
  161. package/extension/tsconfig.json +21 -21
  162. package/gui/README.md +73 -73
  163. package/gui/e2e/dashboard.spec.ts +61 -0
  164. package/gui/e2e/wizard.spec.ts +346 -346
  165. package/gui/eslint.config.js +26 -26
  166. package/gui/index.html +17 -17
  167. package/gui/package-lock.json +3137 -3079
  168. package/gui/package.json +37 -36
  169. package/gui/playwright.config.ts +41 -41
  170. package/gui/public/icons.svg +24 -24
  171. package/gui/src/App.css +1 -1
  172. package/gui/src/App.tsx +3573 -3407
  173. package/gui/src/app/AppSidebar.tsx +69 -0
  174. package/gui/src/assets/vite.svg +1 -1
  175. package/gui/src/components/AddRepoPicker.tsx +81 -0
  176. package/gui/src/components/ui/Button.tsx +40 -0
  177. package/gui/src/components/ui/Card.tsx +6 -0
  178. package/gui/src/components/ui/EmptyState.tsx +22 -0
  179. package/gui/src/components/ui/Input.tsx +21 -0
  180. package/gui/src/components/ui/Menu.tsx +71 -0
  181. package/gui/src/components/ui/Modal.tsx +39 -0
  182. package/gui/src/components/ui/PageHeader.tsx +21 -0
  183. package/gui/src/components/ui/RepoStatusStrip.tsx +33 -0
  184. package/gui/src/components/ui/Skeleton.tsx +5 -0
  185. package/gui/src/components/ui/StatusPill.tsx +36 -0
  186. package/gui/src/components/ui/Tabs.tsx +40 -0
  187. package/gui/src/components/ui/cn.ts +4 -0
  188. package/gui/src/components/ui/index.ts +16 -0
  189. package/gui/src/features/changes/ChangesViewer.tsx +388 -388
  190. package/gui/src/features/knowledge/KnowledgeBase.tsx +84 -84
  191. package/gui/src/features/onboarding/OnboardingWizard.tsx +230 -230
  192. package/gui/src/features/plan/ImplementationPlan.tsx +32 -32
  193. package/gui/src/features/services/ServiceConsole.tsx +215 -250
  194. package/gui/src/features/sessions/SessionHistory.tsx +195 -195
  195. package/gui/src/index.css +167 -152
  196. package/gui/src/lib/status.ts +24 -0
  197. package/gui/src/main.tsx +94 -94
  198. package/gui/src/pages/DashboardPage.tsx +129 -0
  199. package/gui/src/pages/WorkspacesPage.tsx +352 -0
  200. package/gui/src/types.ts +81 -62
  201. package/gui/tsconfig.app.json +25 -25
  202. package/gui/tsconfig.json +7 -7
  203. package/gui/tsconfig.node.json +24 -24
  204. package/gui/vite.config.ts +12 -12
  205. package/package.json +55 -56
  206. package/resources/workflows/plan-implement-review.md +8 -8
  207. package/resources/workflows/research-verify.md +6 -6
  208. package/resources/workflows/solo-developer.md +3 -3
  209. package/scripts/simulate-workspaces.ts +55 -55
  210. package/skills-lock.json +11 -0
  211. package/src/analyzers/detect-apis.ts +290 -290
  212. package/src/analyzers/detect-deps.ts +315 -315
  213. package/src/analyzers/detect-existing.ts +74 -74
  214. package/src/analyzers/detect-ports.ts +110 -110
  215. package/src/analyzers/index.ts +97 -97
  216. package/src/analyzers/messaging-analyzer.ts +254 -254
  217. package/src/analyzers/readme-summarizer.ts +102 -102
  218. package/src/analyzers/run-analyzer.ts +269 -269
  219. package/src/analyzers/tech-stack.ts +283 -283
  220. package/src/commands/adapter.ts +348 -0
  221. package/src/commands/add-repo.ts +156 -157
  222. package/src/commands/commands.test.ts +156 -155
  223. package/src/commands/commit.ts +131 -131
  224. package/src/commands/config.ts +52 -0
  225. package/src/commands/create.ts +204 -207
  226. package/src/commands/desktop.ts +128 -128
  227. package/src/commands/diff.ts +125 -125
  228. package/src/commands/doctor.ts +370 -357
  229. package/src/commands/handoff.ts +266 -266
  230. package/src/commands/init.ts +134 -134
  231. package/src/commands/list.ts +46 -46
  232. package/src/commands/logs.ts +63 -63
  233. package/src/commands/mcp.ts +94 -92
  234. package/src/commands/open.ts +129 -129
  235. package/src/commands/refresh.ts +137 -147
  236. package/src/commands/remove.ts +98 -98
  237. package/src/commands/start.ts +117 -117
  238. package/src/commands/status.ts +54 -54
  239. package/src/commands/stop.ts +55 -55
  240. package/src/commands/sync.ts +125 -151
  241. package/src/commands/tui.ts +484 -424
  242. package/src/commands/ui.ts +111 -111
  243. package/src/core/adapters/local-storage.ts +66 -0
  244. package/src/core/adapters/obsidian-storage.ts +151 -0
  245. package/src/core/adapters/registry.ts +44 -0
  246. package/src/core/adapters/storage.test.ts +174 -0
  247. package/src/core/adapters/vault-storage.ts +86 -0
  248. package/src/core/config.test.ts +96 -96
  249. package/src/core/config.ts +140 -115
  250. package/src/core/graph.ts +344 -344
  251. package/src/core/plugins/index.ts +17 -0
  252. package/src/core/plugins/loader.ts +36 -0
  253. package/src/core/ports/storage.ts +71 -0
  254. package/src/core/scanner.test.ts +61 -61
  255. package/src/core/scanner.ts +91 -91
  256. package/src/core/storage.ts +37 -0
  257. package/src/core/sync.ts +121 -0
  258. package/src/core/workspace-state.test.ts +108 -0
  259. package/src/core/workspace-state.ts +130 -0
  260. package/src/core/workspace.ts +487 -380
  261. package/src/core/worktree.ts +120 -120
  262. package/src/generators/antigravity.ts +32 -32
  263. package/src/generators/base.ts +243 -240
  264. package/src/generators/claude.ts +34 -34
  265. package/src/generators/codex.ts +48 -48
  266. package/src/generators/copilot.ts +56 -56
  267. package/src/generators/cursor.ts +44 -44
  268. package/src/generators/diff-context.ts +75 -0
  269. package/src/generators/index.ts +322 -250
  270. package/src/generators/map-generator.test.ts +159 -159
  271. package/src/generators/map-generator.ts +539 -542
  272. package/src/generators/plan-generator.ts +483 -481
  273. package/src/generators/skills-generator.ts +259 -259
  274. package/src/index.ts +539 -426
  275. package/src/mcp/server.ts +338 -294
  276. package/src/orchestration/detect.ts +313 -313
  277. package/src/orchestration/index.ts +7 -7
  278. package/src/orchestration/runner.ts +283 -283
  279. package/src/server.test.ts +618 -555
  280. package/src/server.ts +1402 -1308
  281. package/src/types.ts +451 -408
  282. package/src/utils/detect-ai.test.ts +44 -44
  283. package/src/utils/detect-ai.ts +84 -84
  284. package/src/utils/detect-editors.test.ts +48 -48
  285. package/src/utils/detect-editors.ts +57 -57
  286. package/src/utils/git.test.ts +74 -74
  287. package/src/utils/git.ts +117 -117
  288. package/src/utils/local-ai.test.ts +130 -130
  289. package/src/utils/local-ai.ts +116 -111
  290. package/src/utils/multi-git.test.ts +158 -0
  291. package/src/utils/multi-git.ts +405 -313
  292. package/src/utils/prompts.ts +209 -209
  293. package/src/utils/session-finder.ts +483 -483
  294. package/src/utils/system-scanner.test.ts +89 -89
  295. package/src/utils/system-scanner.ts +96 -96
  296. package/src/utils/update-check.ts +286 -309
  297. package/src/utils/workflow-advisor.ts +118 -0
  298. package/src/utils/workflows.test.ts +114 -114
  299. package/src/utils/workflows.ts +178 -178
  300. package/tsconfig.json +19 -19
  301. package/vitest.config.ts +14 -14
  302. package/.github/workflows/release.yml +0 -112
  303. package/dist/commands/pack.d.ts +0 -7
  304. package/dist/commands/pack.d.ts.map +0 -1
  305. package/dist/commands/pack.js +0 -64
  306. package/dist/commands/pack.js.map +0 -1
  307. package/dist/core/packer.d.ts +0 -14
  308. package/dist/core/packer.d.ts.map +0 -1
  309. package/dist/core/packer.js +0 -87
  310. package/dist/core/packer.js.map +0 -1
  311. package/dist/core/packer.test.d.ts +0 -2
  312. package/dist/core/packer.test.d.ts.map +0 -1
  313. package/dist/core/packer.test.js +0 -82
  314. package/dist/core/packer.test.js.map +0 -1
  315. package/dist/gui/assets/index-Ct3qq-X4.js +0 -25
  316. package/dist/gui/assets/index-P_ZrgHXg.css +0 -1
  317. package/gui/src/features/workspace/WorkspaceList.tsx +0 -666
  318. package/src/commands/pack.ts +0 -73
  319. package/src/core/packer.test.ts +0 -99
  320. package/src/core/packer.ts +0 -107
package/README.md CHANGED
@@ -1,337 +1,365 @@
1
- <p align="center">
2
- <h1 align="center">🔗 NexusFlow</h1>
3
- <p align="center">
4
- <strong>Multi-repo workspace manager for AI-assisted development</strong>
5
- </p>
6
- <p align="center">
7
- Group repositories · Generate AI context · Resume LLM sessions · Orchestrate services
8
- </p>
9
- </p>
10
-
11
- ---
12
-
13
- NexusFlow combines multiple Git repositories into a single feature workspace and generates the context files that your AI coding assistant needs to understand all of them at once. It uses **git worktrees** so every repo stays on a clean feature branch without disturbing your main working copy.
14
-
15
- > **New to NexusFlow?** Jump to the [Getting Started Guide](GETTING_STARTED.md) for a hands-on walkthrough.
16
-
17
- ## ✨ Features
18
-
19
- - **Multi-repo workspaces** — group any set of local Git repos under one feature branch using worktrees
20
- - **AI context generation** — automatically writes `CLAUDE.md`, `AGENTS.md`, `.github/copilot-instructions.md`, and `.cursor/rules/nexusflow.mdc`
21
- - **Codebase context packing** — compress an entire multi-repo workspace into a single token-efficient XML file for web-based LLMs using Repomix
22
- - **Smart codebase analysis** — detects tech stacks, ports, API endpoints, dependencies, and existing AI configs across all projects
23
- - **Teamwork Strategy Workflows** — predefine coordination flows and subagent behaviors (e.g. plan-implement-review) and inspect them with local AI coding assistant harnesses
24
- - **Session history & resumption** — browse past conversation transcripts from Antigravity, Claude Code, OpenAI Codex, and GitHub Copilot, then resume where you left off
25
- - **Service orchestration** — start, stop, and tail logs for all services in a workspace with a single command
26
- - **Interactive Web Dashboard** — rich dark-themed GUI for managing workspaces, viewing sessions, and streaming logs
27
- - **CLI-first** — every action available from the terminal via the `nexusflow` command
28
-
29
- ## 📦 Installation
30
-
31
- ### Prerequisites
32
-
33
- | Requirement | Version |
34
- |:---|:---|
35
- | [Node.js](https://nodejs.org) | 18 or later |
36
- | [Git](https://git-scm.com) | 2.20 or later (worktree support) |
37
- | npm | Bundled with Node.js |
38
-
39
- ### Install from npm
40
-
41
- ```bash
42
- npm install -g @mrpatronz/nexusflow
43
- ```
44
-
45
- ### Install from source
46
-
47
- ```bash
48
- git clone https://github.com/antan87/NexusFlow.git
49
- cd NexusFlow
50
-
51
- # Install backend dependencies
52
- npm install
53
-
54
- # Install GUI dependencies
55
- cd gui && npm install && cd ..
56
-
57
- # Build everything
58
- npm run build
59
-
60
- # Link the CLI globally
61
- npm link
62
- ```
63
-
64
- After linking, the `nexusflow` command is available system-wide.
65
-
66
- ## 🚀 Quick Start
67
-
68
- ```bash
69
- # 1 — Initialize config (optional, defaults work out of the box)
70
- nexusflow init
71
-
72
- # 2 — Create a feature workspace
73
- nexusflow create
74
-
75
- # 3 — Or launch the Web Dashboard
76
- nexusflow ui
77
- ```
78
-
79
- The `create` wizard walks you through:
80
-
81
- 1. **Name your feature branch** — e.g. `feature/user-auth`
82
- 2. **Describe what you're building** — plain text or a path to a `.md` file
83
- 3. **Pick your repos** — NexusFlow scans `~/dev` for git repositories
84
- 4. **Choose AI assistant(s)** — auto-detects what's installed
85
- 5. **Done!** — workspace created with git worktrees + AI context files
86
-
87
- ## 📂 What Gets Generated
88
-
89
- ```
90
- ~/dev/workspaces/feature/user-auth/
91
- ├── CLAUDE.md # Context for Claude / Antigravity
92
- ├── AGENTS.md # Context for OpenAI Codex
93
- ├── .github/
94
- │ └── copilot-instructions.md # Context for GitHub Copilot
95
- ├── .cursor/
96
- │ └── rules/nexusflow.mdc # Context for Cursor
97
- ├── nexusflow.json # Feature config (branch, repos, etc.)
98
- ├── nexusflow-overview.md # AI-generated workspace analysis
99
- ├── my-api/ # ← Git worktree on feature branch
100
- └── my-frontend/ # ← Git worktree on feature branch
101
- ```
102
-
103
- Open this folder in your editor → your AI assistant picks up the context → it understands *all* your repos.
104
-
105
- ## 🖥️ Commands
106
-
107
- | Command | Description |
108
- |:---|:---|
109
- | `nexusflow create` | Interactive wizard to create a new feature workspace |
110
- | `nexusflow list` | List all existing workspaces (alias: `ls`) |
111
- | `nexusflow open` | Re-open a workspace in your editor |
112
- | `nexusflow init` | Configure NexusFlow settings |
113
- | `nexusflow pack` | Pack the workspace codebase into a single token-efficient XML file |
114
- | `nexusflow start` | Start all services in a workspace (auto-detected) |
115
- | `nexusflow stop` | Stop all running services |
116
- | `nexusflow status` | Show running/stopped status and PIDs |
117
- | `nexusflow logs` | Tail aggregated logs from all services |
118
- | `nexusflow ui` | Launch the interactive Web Dashboard (port 3000) |
119
- | `nexusflow diff` | View changes across all sub-repositories in the active workspace |
120
- | `nexusflow commit` | Commit and push changes across all modified repositories |
121
- | `nexusflow sync` | Rebase all repositories in the workspace with default base branches |
122
- | `nexusflow refresh`| Regenerate codebase maps, plan, and AI context files without rebasing |
123
- | `nexusflow doctor` | Run health checks and diagnostics to verify workspace integrity |
124
-
125
- ## 🤖 Supported AI Assistants
126
-
127
- NexusFlow auto-detects which assistants are available on your machine and generates the right context files for each:
128
-
129
- | Assistant | Config File | How It's Detected |
130
- |:---|:---|:---|
131
- | **Claude Code / Antigravity** | `CLAUDE.md` | `claude` or `antigravity` in PATH |
132
- | **OpenAI Codex** | `AGENTS.md` | `codex` in PATH |
133
- | **GitHub Copilot** | `.github/copilot-instructions.md` | Always available |
134
- | **Cursor** | `.cursor/rules/nexusflow.mdc` | `cursor` in PATH |
135
-
136
- ## 🕐 Session History & Resumption
137
-
138
- NexusFlow can discover and display your past AI coding sessions across all supported assistants. This lets you:
139
-
140
- - **Browse** conversation transcripts from previous sessions
141
- - **Search** through your interaction history
142
- - **Resume** a session by copying the resume command to your clipboard
143
-
144
- Session data is read directly from each assistant's local storage:
145
-
146
- | Assistant | Session Location |
147
- |:---|:---|
148
- | Antigravity | `~/.gemini/antigravity-cli/brain/` |
149
- | Claude Code | `~/.claude/projects/` |
150
- | OpenAI Codex | `~/.codex/sessions/` |
151
- | GitHub Copilot | `~/.copilot/` |
152
-
153
- Access sessions via the Web Dashboard's **Sessions** tab or through the API:
154
-
155
- ```
156
- GET /api/workspace/:id/sessions
157
- GET /api/session/:assistant/:sessionId/transcript
158
- ```
159
-
160
- ## 👥 Teamwork Strategy Workflows
161
-
162
- NexusFlow allows you to predefine orchestration workflows and cooperation rules that govern how multiple AI subagents coordinate when solving complex, multi-repo software engineering tasks.
163
-
164
- You can select a strategy workflow when creating a workspace (or define custom ones). Built-in templates include:
165
- - **Plan-Implement-Review** — A structured, multi-agent flow where an Orchestrator coordinates planning, implementation, review, and documentation.
166
- - **Research-Verify** — A fast iteration strategy centered on research, drafting code, and immediately running verification test suites.
167
- - **Solo Developer** — A simplified, lightweight direct-action workflow for minor tweaks and linear tasks.
168
-
169
- ### Custom Strategies & AI Inspection
170
-
171
- You can create, edit, or delete custom strategies directly via the Web Dashboard's **Team Strategies** tab. Strategies are written in clean Markdown guidelines and stored in:
172
- `~/.nexusflow/workflows/`
173
-
174
- The dashboard integrates an **AI Strategy Analysis** inspector:
175
- 1. Select an AI assistant harness installed on your machine (e.g. *Claude Code*, *Antigravity*).
176
- 2. (Optional) Provide a comment or specific evaluation focus (e.g. *"Ensure subagent roles are distinct"*).
177
- 3. Click **Inspect Strategy** to have the AI analyze the strategy rules, identify ambiguities/contradictions, rate its orchestration effectiveness, and generate an optimized rewritten guideline.
178
-
179
- ## 🌐 Web Dashboard
180
-
181
- Launch with `nexusflow ui` to get a full-featured dark-themed GUI:
182
-
183
- - **Workspaces tab** — create, browse, and manage feature workspaces
184
- - **Sessions tab** view past AI conversation transcripts and resume sessions
185
- - **Logs panel** — real-time aggregated service log output
186
- - **Config panel** — edit NexusFlow settings from the browser
187
-
188
- The dashboard runs a local [Hono](https://hono.dev) server on port 3000 and serves a [React](https://react.dev) + [Vite](https://vite.dev) frontend.
189
-
190
- ## ⚙️ Configuration
191
-
192
- NexusFlow stores its config at `~/.nexusflow/config.json`:
193
-
194
- ```json
195
- {
196
- "version": "0.1.0",
197
- "devDir": "~/dev",
198
- "workspacesDir": "~/dev/workspaces",
199
- "scanDepth": 2,
200
- "defaultAssistant": null
201
- }
202
- ```
203
-
204
- | Key | Default | Description |
205
- |:---|:---|:---|
206
- | `devDir` | `~/dev` | Root directory to scan for git repos |
207
- | `workspacesDir` | `~/dev/workspaces` | Where feature workspaces are created |
208
- | `scanDepth` | `2` | How many levels deep to scan for repos |
209
- | `defaultAssistant` | `null` | Pre-select an assistant during workspace creation |
210
-
211
- Run `nexusflow init` to interactively set these values.
212
-
213
- ## 🏗️ Architecture
214
-
215
- ```
216
- NexusFlow/
217
- ├── src/
218
- │ ├── index.ts # CLI entry point (Commander.js)
219
- │ ├── server.ts # Hono API server (REST endpoints)
220
- │ ├── types.ts # Shared TypeScript interfaces
221
- │ ├── commands/ # CLI command handlers
222
- │ │ ├── create.ts # nexusflow create
223
- │ │ ├── init.ts # nexusflow init
224
- │ │ ├── list.ts # nexusflow list
225
- │ │ ├── open.ts # nexusflow open
226
- │ │ ├── start.ts # nexusflow start
227
- │ │ ├── stop.ts # nexusflow stop
228
- │ │ ├── status.ts # nexusflow status
229
- │ │ ├── logs.ts # nexusflow logs
230
- │ │ └── ui.ts # nexusflow ui
231
- │ ├── core/ # Core workspace logic
232
- │ │ ├── config.ts # Config management (~/.nexusflow/)
233
- │ │ ├── scanner.ts # Git repo scanner
234
- │ │ ├── worktree.ts # Git worktree operations
235
- │ │ └── workspace.ts # Workspace CRUD
236
- │ ├── analyzers/ # Codebase analysis
237
- │ │ ├── tech-stack.ts # Language/framework detection
238
- │ │ ├── detect-ports.ts # Port & server detection
239
- │ │ ├── detect-apis.ts # API endpoint scanning
240
- │ │ ├── detect-deps.ts # Dependency analysis
241
- │ │ ├── detect-existing.ts# Existing AI config detection
242
- │ │ └── readme-summarizer.ts# README content extraction
243
- │ ├── generators/ # AI context file generators
244
- │ │ ├── base.ts # Shared context builder
245
- │ │ ├── claude.ts # CLAUDE.md generator
246
- ├── codex.ts # AGENTS.md generator
247
- ├── copilot.ts # copilot-instructions.md generator
248
- │ └── cursor.ts # nexusflow.mdc generator
249
- │ ├── orchestration/ # Service start/stop/log management
250
- └── utils/ # Helper utilities
251
- ├── git.ts # Git operations
252
- ├── detect-ai.ts # AI assistant detection
253
- ├── detect-editors.ts # Editor detection
254
- ├── session-finder.ts # AI session history discovery
255
- └── prompts.ts # Interactive prompts
256
- ├── gui/ # React + Vite Web Dashboard
257
- └── src/
258
- └── App.tsx # Main dashboard component
259
- ├── package.json
260
- └── tsconfig.json
261
- ```
262
-
263
- ## 🤝 Contributing
264
-
265
- Contributions are welcome! Here's how to get set up:
266
-
267
- ### Development Setup
268
-
269
- ```bash
270
- # Clone the repo
271
- git clone https://github.com/antan87/NexusFlow.git
272
- cd NexusFlow
273
-
274
- # Install all dependencies
275
- npm install
276
- cd gui && npm install && cd ..
277
-
278
- # Start the TypeScript compiler in watch mode
279
- npm run dev
280
-
281
- # In another terminal, start the GUI dev server
282
- cd gui && npm run dev
283
- ```
284
-
285
- ### Build
286
-
287
- ```bash
288
- # Full build (TypeScript + GUI)
289
- npm run build
290
-
291
- # Clean build artifacts
292
- npm run clean
293
- ```
294
-
295
- ### Test
296
-
297
- ```bash
298
- # Run tests
299
- npm test
300
-
301
- # Watch mode
302
- npm run test:watch
303
- ```
304
-
305
- ### Code Style
306
-
307
- - **TypeScript** — strict mode, ES modules
308
- - **Imports** — use `.js` extensions for local imports (`import { x } from './config.js'`)
309
- - **Node built-ins** use the `node:` prefix (`import path from 'node:path'`)
310
- - **JSDoc** add doc comments to all exported functions
311
- - **Error handling** — wrap external calls (git, filesystem) in try/catch
312
-
313
- ### Adding a New AI Assistant
314
-
315
- 1. Add the assistant identifier to the `AIAssistant` type in [types.ts](src/types.ts)
316
- 2. Add detection logic in [detect-ai.ts](src/utils/detect-ai.ts)
317
- 3. Create a new generator in `src/generators/` (follow the pattern in [claude.ts](src/generators/claude.ts))
318
- 4. Register it in the [generator index](src/generators/index.ts)
319
- 5. Add session discovery logic in [session-finder.ts](src/utils/session-finder.ts)
320
-
321
- ### Adding a New Analyzer
322
-
323
- 1. Create a new file in `src/analyzers/` following the existing patterns
324
- 2. Export the analyzer function and register it in [analyzers/index.ts](src/analyzers/index.ts)
325
- 3. The analyzer output is fed into the context generators and the `WORKSPACE.md` file
326
-
327
- ### Pull Request Guidelines
328
-
329
- - Fork the repo and create a feature branch
330
- - Write clear commit messages
331
- - Add tests for new functionality
332
- - Make sure `npm run build` passes before submitting
333
- - Update documentation if you change user-facing behavior
334
-
335
- ## 📄 License
336
-
1
+ <p align="center">
2
+ <h1 align="center">🔗 NexusFlow</h1>
3
+ <p align="center">
4
+ <strong>Multi-repo workspace manager for AI-assisted development</strong>
5
+ </p>
6
+ <p align="center">
7
+ Group repositories · Generate AI context · Resume LLM sessions · Orchestrate services
8
+ </p>
9
+ </p>
10
+
11
+ ---
12
+
13
+ NexusFlow combines multiple Git repositories into a single feature workspace and generates the context files that your AI coding assistant needs to understand all of them at once. It uses **git worktrees** so every repo stays on a clean feature branch without disturbing your main working copy.
14
+
15
+ > **New to NexusFlow?** Jump to the [Getting Started Guide](GETTING_STARTED.md) for a hands-on walkthrough.
16
+
17
+ ## ✨ Features
18
+
19
+ - **Multi-repo workspaces** — group any set of local Git repos under one feature branch using worktrees
20
+ - **AI context generation** — automatically writes `CLAUDE.md`, `AGENTS.md`, `.github/copilot-instructions.md`, and `.cursor/rules/nexusflow.mdc`
21
+ - **Codebase context packing** — compress an entire multi-repo workspace into a single token-efficient XML file for web-based LLMs using Repomix
22
+ - **Smart codebase analysis** — detects tech stacks, ports, API endpoints, dependencies, and existing AI configs across all projects
23
+ - **Teamwork Strategy Workflows** — predefine coordination flows and subagent behaviors (e.g. plan-implement-review) and inspect them with local AI coding assistant harnesses
24
+ - **Session history & resumption** — browse past conversation transcripts from Antigravity, Claude Code, OpenAI Codex, and GitHub Copilot, then resume where you left off
25
+ - **Service orchestration** — start, stop, and tail logs for all services in a workspace with a single command
26
+ - **Interactive Web Dashboard** — rich dark-themed GUI for managing workspaces, viewing sessions, and streaming logs
27
+ - **CLI-first** — every action available from the terminal via the `nexusflow` command
28
+
29
+ ## 📦 Installation
30
+
31
+ ### Prerequisites
32
+
33
+ | Requirement | Version |
34
+ |:---|:---|
35
+ | [Node.js](https://nodejs.org) | 18 or later |
36
+ | [Git](https://git-scm.com) | 2.20 or later (worktree support) |
37
+ | npm | Bundled with Node.js |
38
+
39
+ ### Install from npm
40
+
41
+ ```bash
42
+ npm install -g @mrpatronz/nexusflow
43
+ ```
44
+
45
+ ### Install from source
46
+
47
+ ```bash
48
+ git clone https://github.com/antan87/NexusFlow.git
49
+ cd NexusFlow
50
+
51
+ # Install backend dependencies
52
+ npm install
53
+
54
+ # Install GUI dependencies
55
+ cd gui && npm install && cd ..
56
+
57
+ # Build everything
58
+ npm run build
59
+
60
+ # Link the CLI globally
61
+ npm link
62
+ ```
63
+
64
+ After linking, the `nexusflow` command is available system-wide.
65
+
66
+ ## 🚀 Quick Start
67
+
68
+ ```bash
69
+ # 1 — Initialize config (optional, defaults work out of the box)
70
+ nexusflow init
71
+
72
+ # 2 — Create a feature workspace
73
+ nexusflow create
74
+
75
+ # 3 — Or launch the Web Dashboard
76
+ nexusflow ui
77
+ ```
78
+
79
+ The `create` wizard walks you through:
80
+
81
+ 1. **Name your feature branch** — e.g. `feature/user-auth`
82
+ 2. **Describe what you're building** — plain text or a path to a `.md` file
83
+ 3. **Pick your repos** — NexusFlow scans `~/dev` for git repositories
84
+ 4. **Choose AI assistant(s)** — auto-detects what's installed
85
+ 5. **Done!** — workspace created with git worktrees + AI context files
86
+
87
+ ## 📂 What Gets Generated
88
+
89
+ ```
90
+ ~/dev/workspaces/feature/user-auth/
91
+ ├── CLAUDE.md # Context for Claude / Antigravity
92
+ ├── AGENTS.md # Context for OpenAI Codex
93
+ ├── .github/
94
+ │ └── copilot-instructions.md # Context for GitHub Copilot
95
+ ├── .cursor/
96
+ │ └── rules/nexusflow.mdc # Context for Cursor
97
+ ├── nexusflow.json # Feature config (branch, repos, etc.)
98
+ ├── nexusflow-overview.md # AI-generated workspace analysis
99
+ ├── my-api/ # ← Git worktree on feature branch
100
+ └── my-frontend/ # ← Git worktree on feature branch
101
+ ```
102
+
103
+ Open this folder in your editor → your AI assistant picks up the context → it understands *all* your repos.
104
+
105
+ ## 🖥️ Commands
106
+
107
+ | Command | Description |
108
+ |:---|:---|
109
+ | `nexusflow create` | Interactive wizard to create a new feature workspace |
110
+ | `nexusflow list` | List all existing workspaces (alias: `ls`) |
111
+ | `nexusflow open` | Re-open a workspace in your editor |
112
+ | `nexusflow init` | Configure NexusFlow settings |
113
+ | `nexusflow adapter` | Manage storage adapters list, switch, configure, or initialize custom plugins |
114
+ | `nexusflow pack` | Pack the workspace codebase into a single token-efficient XML file |
115
+ | `nexusflow start` | Start all services in a workspace (auto-detected) |
116
+ | `nexusflow stop` | Stop all running services |
117
+ | `nexusflow status` | Show running/stopped status and PIDs |
118
+ | `nexusflow logs` | Tail aggregated logs from all services |
119
+ | `nexusflow ui` | Launch the interactive Web Dashboard (port 3000) |
120
+ | `nexusflow diff` | View changes across all sub-repositories in the active workspace |
121
+ | `nexusflow commit` | Commit and push changes across all modified repositories |
122
+ | `nexusflow sync` | Rebase all repositories in the workspace with default base branches |
123
+ | `nexusflow refresh`| Regenerate codebase maps, plan, and AI context files without rebasing |
124
+ | `nexusflow doctor` | Run health checks and diagnostics to verify workspace integrity |
125
+
126
+ ## 🤖 Supported AI Assistants
127
+
128
+ NexusFlow auto-detects which assistants are available on your machine and generates the right context files for each:
129
+
130
+ | Assistant | Config File | How It's Detected |
131
+ |:---|:---|:---|
132
+ | **Claude Code / Antigravity** | `CLAUDE.md` | `claude` or `antigravity` in PATH |
133
+ | **OpenAI Codex** | `AGENTS.md` | `codex` in PATH |
134
+ | **GitHub Copilot** | `.github/copilot-instructions.md` | Always available |
135
+ | **Cursor** | `.cursor/rules/nexusflow.mdc` | `cursor` in PATH |
136
+
137
+ ## 🕐 Session History & Resumption
138
+
139
+ NexusFlow can discover and display your past AI coding sessions across all supported assistants. This lets you:
140
+
141
+ - **Browse** conversation transcripts from previous sessions
142
+ - **Search** through your interaction history
143
+ - **Resume** a session by copying the resume command to your clipboard
144
+
145
+ Session data is read directly from each assistant's local storage:
146
+
147
+ | Assistant | Session Location |
148
+ |:---|:---|
149
+ | Antigravity | `~/.gemini/antigravity-cli/brain/` |
150
+ | Claude Code | `~/.claude/projects/` |
151
+ | OpenAI Codex | `~/.codex/sessions/` |
152
+ | GitHub Copilot | `~/.copilot/` |
153
+
154
+ Access sessions via the Web Dashboard's **Sessions** tab or through the API:
155
+
156
+ ```
157
+ GET /api/workspace/:id/sessions
158
+ GET /api/session/:assistant/:sessionId/transcript
159
+ ```
160
+
161
+ ## 🗄️ Pluggable Storage & Vault Adapters
162
+
163
+ NexusFlow supports multiple storage backends to control where workspace context maps, plans, and persistent AI knowledge files are stored. This allows keeping your Git repository workspaces completely clean from AI file clutter.
164
+
165
+ Available storage providers:
166
+ - **Local (`local`)** — Stores files directly in the workspace directory (default).
167
+ - **Central Vault (`central-vault`)** — Stores files in a centralized folder on your machine at `~/.nexusflow/vault/`.
168
+ - **Obsidian Vault (`obsidian`)** — Stores files in a designated folder inside your Obsidian Vault, wrapped in a `nexusflow/` subdirectory (e.g. `vault/nexusflow/workspaces/<featureId>`). Auto-wraps files with YAML frontmatter metadata and tags for easy Obsidian indexing.
169
+
170
+ ### CLI Adapter Management
171
+
172
+ Configure storage adapters from the command line:
173
+
174
+ ```bash
175
+ # List all registered storage adapters and the active provider
176
+ nexusflow adapter list
177
+
178
+ # View configurations and fields for a specific adapter
179
+ nexusflow adapter info obsidian
180
+
181
+ # Switch to a different adapter (e.g. obsidian) and configure its settings
182
+ nexusflow adapter use obsidian
183
+
184
+ # Scaffolds a template for creating a new custom storage adapter plugin
185
+ nexusflow adapter init my-custom-plugin
186
+ ```
187
+
188
+ ## 👥 Teamwork Strategy Workflows
189
+
190
+ NexusFlow allows you to predefine orchestration workflows and cooperation rules that govern how multiple AI subagents coordinate when solving complex, multi-repo software engineering tasks.
191
+
192
+ You can select a strategy workflow when creating a workspace (or define custom ones). Built-in templates include:
193
+ - **Plan-Implement-Review** — A structured, multi-agent flow where an Orchestrator coordinates planning, implementation, review, and documentation.
194
+ - **Research-Verify** — A fast iteration strategy centered on research, drafting code, and immediately running verification test suites.
195
+ - **Solo Developer** — A simplified, lightweight direct-action workflow for minor tweaks and linear tasks.
196
+
197
+ ### Custom Strategies & AI Inspection
198
+
199
+ You can create, edit, or delete custom strategies directly via the Web Dashboard's **Team Strategies** tab. Strategies are written in clean Markdown guidelines and stored in:
200
+ `~/.nexusflow/workflows/`
201
+
202
+ The dashboard integrates an **AI Strategy Analysis** inspector:
203
+ 1. Select an AI assistant harness installed on your machine (e.g. *Claude Code*, *Antigravity*).
204
+ 2. (Optional) Provide a comment or specific evaluation focus (e.g. *"Ensure subagent roles are distinct"*).
205
+ 3. Click **Inspect Strategy** to have the AI analyze the strategy rules, identify ambiguities/contradictions, rate its orchestration effectiveness, and generate an optimized rewritten guideline.
206
+
207
+ ## 🌐 Web Dashboard
208
+
209
+ Launch with `nexusflow ui` to get a full-featured dark-themed GUI:
210
+
211
+ - **Workspaces tab** create, browse, and manage feature workspaces
212
+ - **Sessions tab** — view past AI conversation transcripts and resume sessions
213
+ - **Logs panel** — real-time aggregated service log output
214
+ - **Config panel** — edit NexusFlow settings from the browser
215
+
216
+ The dashboard runs a local [Hono](https://hono.dev) server on port 3000 and serves a [React](https://react.dev) + [Vite](https://vite.dev) frontend.
217
+
218
+ ## ⚙️ Configuration
219
+
220
+ NexusFlow stores its config at `~/.nexusflow/config.json`:
221
+
222
+ ```json
223
+ {
224
+ "version": "0.1.0",
225
+ "devDir": "~/dev",
226
+ "workspacesDir": "~/dev/workspaces",
227
+ "scanDepth": 2,
228
+ "defaultAssistant": null
229
+ }
230
+ ```
231
+
232
+ | Key | Default | Description |
233
+ |:---|:---|:---|
234
+ | `devDir` | `~/dev` | Root directory to scan for git repos |
235
+ | `workspacesDir` | `~/dev/workspaces` | Where feature workspaces are created |
236
+ | `scanDepth` | `2` | How many levels deep to scan for repos |
237
+ | `defaultAssistant` | `null` | Pre-select an assistant during workspace creation |
238
+
239
+ Run `nexusflow init` to interactively set these values.
240
+
241
+ ## 🏗️ Architecture
242
+
243
+ ```
244
+ NexusFlow/
245
+ ├── src/
246
+ │ ├── index.ts # CLI entry point (Commander.js)
247
+ │ ├── server.ts # Hono API server (REST endpoints)
248
+ ├── types.ts # Shared TypeScript interfaces
249
+ │ ├── commands/ # CLI command handlers
250
+ │ ├── create.ts # nexusflow create
251
+ ├── init.ts # nexusflow init
252
+ ├── list.ts # nexusflow list
253
+ ├── open.ts # nexusflow open
254
+ ├── start.ts # nexusflow start
255
+ │ ├── stop.ts # nexusflow stop
256
+ │ │ ├── status.ts # nexusflow status
257
+ │ ├── logs.ts # nexusflow logs
258
+ └── ui.ts # nexusflow ui
259
+ ├── core/ # Core workspace logic
260
+ │ │ ├── config.ts # Config management (~/.nexusflow/)
261
+ │ │ ├── scanner.ts # Git repo scanner
262
+ │ │ ├── worktree.ts # Git worktree operations
263
+ │ │ └── workspace.ts # Workspace CRUD
264
+ │ ├── analyzers/ # Codebase analysis
265
+ │ │ ├── tech-stack.ts # Language/framework detection
266
+ │ │ ├── detect-ports.ts # Port & server detection
267
+ │ │ ├── detect-apis.ts # API endpoint scanning
268
+ │ │ ├── detect-deps.ts # Dependency analysis
269
+ │ │ ├── detect-existing.ts# Existing AI config detection
270
+ │ │ └── readme-summarizer.ts# README content extraction
271
+ │ ├── generators/ # AI context file generators
272
+ │ │ ├── base.ts # Shared context builder
273
+ │ │ ├── claude.ts # CLAUDE.md generator
274
+ │ │ ├── codex.ts # AGENTS.md generator
275
+ │ │ ├── copilot.ts # copilot-instructions.md generator
276
+ │ │ └── cursor.ts # nexusflow.mdc generator
277
+ │ ├── orchestration/ # Service start/stop/log management
278
+ │ └── utils/ # Helper utilities
279
+ │ ├── git.ts # Git operations
280
+ │ ├── detect-ai.ts # AI assistant detection
281
+ │ ├── detect-editors.ts # Editor detection
282
+ │ ├── session-finder.ts # AI session history discovery
283
+ │ └── prompts.ts # Interactive prompts
284
+ ├── gui/ # React + Vite Web Dashboard
285
+ │ └── src/
286
+ │ └── App.tsx # Main dashboard component
287
+ ├── package.json
288
+ └── tsconfig.json
289
+ ```
290
+
291
+ ## 🤝 Contributing
292
+
293
+ Contributions are welcome! Here's how to get set up:
294
+
295
+ ### Development Setup
296
+
297
+ ```bash
298
+ # Clone the repo
299
+ git clone https://github.com/antan87/NexusFlow.git
300
+ cd NexusFlow
301
+
302
+ # Install all dependencies
303
+ npm install
304
+ cd gui && npm install && cd ..
305
+
306
+ # Start the TypeScript compiler in watch mode
307
+ npm run dev
308
+
309
+ # In another terminal, start the GUI dev server
310
+ cd gui && npm run dev
311
+ ```
312
+
313
+ ### Build
314
+
315
+ ```bash
316
+ # Full build (TypeScript + GUI)
317
+ npm run build
318
+
319
+ # Clean build artifacts
320
+ npm run clean
321
+ ```
322
+
323
+ ### Test
324
+
325
+ ```bash
326
+ # Run tests
327
+ npm test
328
+
329
+ # Watch mode
330
+ npm run test:watch
331
+ ```
332
+
333
+ ### Code Style
334
+
335
+ - **TypeScript** — strict mode, ES modules
336
+ - **Imports** — use `.js` extensions for local imports (`import { x } from './config.js'`)
337
+ - **Node built-ins** — use the `node:` prefix (`import path from 'node:path'`)
338
+ - **JSDoc** — add doc comments to all exported functions
339
+ - **Error handling** — wrap external calls (git, filesystem) in try/catch
340
+
341
+ ### Adding a New AI Assistant
342
+
343
+ 1. Add the assistant identifier to the `AIAssistant` type in [types.ts](src/types.ts)
344
+ 2. Add detection logic in [detect-ai.ts](src/utils/detect-ai.ts)
345
+ 3. Create a new generator in `src/generators/` (follow the pattern in [claude.ts](src/generators/claude.ts))
346
+ 4. Register it in the [generator index](src/generators/index.ts)
347
+ 5. Add session discovery logic in [session-finder.ts](src/utils/session-finder.ts)
348
+
349
+ ### Adding a New Analyzer
350
+
351
+ 1. Create a new file in `src/analyzers/` following the existing patterns
352
+ 2. Export the analyzer function and register it in [analyzers/index.ts](src/analyzers/index.ts)
353
+ 3. The analyzer output is fed into the context generators and the `WORKSPACE.md` file
354
+
355
+ ### Pull Request Guidelines
356
+
357
+ - Fork the repo and create a feature branch
358
+ - Write clear commit messages
359
+ - Add tests for new functionality
360
+ - Make sure `npm run build` passes before submitting
361
+ - Update documentation if you change user-facing behavior
362
+
363
+ ## 📄 License
364
+
337
365
  MIT — see [LICENSE](LICENSE) for details.