orbital-command 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (325) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +396 -0
  3. package/bin/orbital.js +362 -0
  4. package/dist/assets/WorkflowVisualizer-BZ21PIIF.js +84 -0
  5. package/dist/assets/WorkflowVisualizer-BZV40eAE.css +1 -0
  6. package/dist/assets/charts-D__PA1zp.js +72 -0
  7. package/dist/assets/index-D1G6i0nS.css +1 -0
  8. package/dist/assets/index-DpItvKpf.js +419 -0
  9. package/dist/assets/ui-BvF022GT.js +53 -0
  10. package/dist/assets/vendor-Dzv9lrRc.js +59 -0
  11. package/dist/index.html +19 -0
  12. package/dist/scanner-sweep.png +0 -0
  13. package/dist/server/server/adapters/index.js +34 -0
  14. package/dist/server/server/adapters/iterm2-adapter.js +29 -0
  15. package/dist/server/server/adapters/subprocess-adapter.js +21 -0
  16. package/dist/server/server/adapters/terminal-adapter.js +1 -0
  17. package/dist/server/server/config.js +156 -0
  18. package/dist/server/server/database.js +90 -0
  19. package/dist/server/server/index.js +372 -0
  20. package/dist/server/server/init.js +811 -0
  21. package/dist/server/server/parsers/event-parser.js +64 -0
  22. package/dist/server/server/parsers/scope-parser.js +188 -0
  23. package/dist/server/server/routes/config-routes.js +163 -0
  24. package/dist/server/server/routes/data-routes.js +461 -0
  25. package/dist/server/server/routes/dispatch-routes.js +215 -0
  26. package/dist/server/server/routes/git-routes.js +92 -0
  27. package/dist/server/server/routes/scope-routes.js +215 -0
  28. package/dist/server/server/routes/sprint-routes.js +116 -0
  29. package/dist/server/server/routes/version-routes.js +130 -0
  30. package/dist/server/server/routes/workflow-routes.js +185 -0
  31. package/dist/server/server/schema.js +90 -0
  32. package/dist/server/server/services/batch-orchestrator.js +253 -0
  33. package/dist/server/server/services/claude-session-service.js +352 -0
  34. package/dist/server/server/services/config-service.js +132 -0
  35. package/dist/server/server/services/deploy-service.js +51 -0
  36. package/dist/server/server/services/event-service.js +63 -0
  37. package/dist/server/server/services/gate-service.js +83 -0
  38. package/dist/server/server/services/git-service.js +309 -0
  39. package/dist/server/server/services/github-service.js +145 -0
  40. package/dist/server/server/services/readiness-service.js +184 -0
  41. package/dist/server/server/services/scope-cache.js +72 -0
  42. package/dist/server/server/services/scope-service.js +424 -0
  43. package/dist/server/server/services/sprint-orchestrator.js +312 -0
  44. package/dist/server/server/services/sprint-service.js +293 -0
  45. package/dist/server/server/services/workflow-service.js +397 -0
  46. package/dist/server/server/utils/cc-hooks-parser.js +49 -0
  47. package/dist/server/server/utils/dispatch-utils.js +305 -0
  48. package/dist/server/server/utils/logger.js +86 -0
  49. package/dist/server/server/utils/terminal-launcher.js +388 -0
  50. package/dist/server/server/utils/worktree-manager.js +98 -0
  51. package/dist/server/server/watchers/event-watcher.js +81 -0
  52. package/dist/server/server/watchers/scope-watcher.js +33 -0
  53. package/dist/server/shared/api-types.js +5 -0
  54. package/dist/server/shared/default-workflow.json +616 -0
  55. package/dist/server/shared/workflow-config.js +44 -0
  56. package/dist/server/shared/workflow-engine.js +353 -0
  57. package/index.html +15 -0
  58. package/package.json +110 -0
  59. package/postcss.config.js +6 -0
  60. package/schemas/orbital.config.schema.json +83 -0
  61. package/scripts/postinstall.js +24 -0
  62. package/scripts/start.sh +20 -0
  63. package/server/adapters/index.ts +41 -0
  64. package/server/adapters/iterm2-adapter.ts +37 -0
  65. package/server/adapters/subprocess-adapter.ts +25 -0
  66. package/server/adapters/terminal-adapter.ts +24 -0
  67. package/server/config.ts +234 -0
  68. package/server/database.ts +107 -0
  69. package/server/index.ts +452 -0
  70. package/server/init.ts +891 -0
  71. package/server/parsers/event-parser.ts +74 -0
  72. package/server/parsers/scope-parser.ts +240 -0
  73. package/server/routes/config-routes.ts +182 -0
  74. package/server/routes/data-routes.ts +548 -0
  75. package/server/routes/dispatch-routes.ts +275 -0
  76. package/server/routes/git-routes.ts +112 -0
  77. package/server/routes/scope-routes.ts +262 -0
  78. package/server/routes/sprint-routes.ts +142 -0
  79. package/server/routes/version-routes.ts +156 -0
  80. package/server/routes/workflow-routes.ts +198 -0
  81. package/server/schema.ts +90 -0
  82. package/server/services/batch-orchestrator.ts +286 -0
  83. package/server/services/claude-session-service.ts +441 -0
  84. package/server/services/config-service.ts +151 -0
  85. package/server/services/deploy-service.ts +98 -0
  86. package/server/services/event-service.ts +98 -0
  87. package/server/services/gate-service.ts +126 -0
  88. package/server/services/git-service.ts +391 -0
  89. package/server/services/github-service.ts +183 -0
  90. package/server/services/readiness-service.ts +250 -0
  91. package/server/services/scope-cache.ts +81 -0
  92. package/server/services/scope-service.ts +476 -0
  93. package/server/services/sprint-orchestrator.ts +361 -0
  94. package/server/services/sprint-service.ts +415 -0
  95. package/server/services/workflow-service.ts +461 -0
  96. package/server/utils/cc-hooks-parser.ts +70 -0
  97. package/server/utils/dispatch-utils.ts +395 -0
  98. package/server/utils/logger.ts +109 -0
  99. package/server/utils/terminal-launcher.ts +462 -0
  100. package/server/utils/worktree-manager.ts +104 -0
  101. package/server/watchers/event-watcher.ts +100 -0
  102. package/server/watchers/scope-watcher.ts +38 -0
  103. package/shared/api-types.ts +20 -0
  104. package/shared/default-workflow.json +616 -0
  105. package/shared/workflow-config.ts +170 -0
  106. package/shared/workflow-engine.ts +427 -0
  107. package/src/App.tsx +33 -0
  108. package/src/components/AgentBadge.tsx +40 -0
  109. package/src/components/BatchPreflightModal.tsx +115 -0
  110. package/src/components/CardDisplayToggle.tsx +74 -0
  111. package/src/components/ColumnHeaderActions.tsx +55 -0
  112. package/src/components/ColumnMenu.tsx +99 -0
  113. package/src/components/DeployHistory.tsx +141 -0
  114. package/src/components/DispatchModal.tsx +164 -0
  115. package/src/components/DispatchPopover.tsx +139 -0
  116. package/src/components/DragOverlay.tsx +25 -0
  117. package/src/components/DriftSidebar.tsx +140 -0
  118. package/src/components/EnvironmentStrip.tsx +88 -0
  119. package/src/components/ErrorBoundary.tsx +62 -0
  120. package/src/components/FilterChip.tsx +105 -0
  121. package/src/components/GateIndicator.tsx +33 -0
  122. package/src/components/IdeaDetailModal.tsx +190 -0
  123. package/src/components/IdeaFormDialog.tsx +113 -0
  124. package/src/components/KanbanColumn.tsx +201 -0
  125. package/src/components/MarkdownRenderer.tsx +114 -0
  126. package/src/components/NeonGrid.tsx +128 -0
  127. package/src/components/PromotionQueue.tsx +89 -0
  128. package/src/components/ScopeCard.tsx +234 -0
  129. package/src/components/ScopeDetailModal.tsx +255 -0
  130. package/src/components/ScopeFilterBar.tsx +152 -0
  131. package/src/components/SearchInput.tsx +102 -0
  132. package/src/components/SessionPanel.tsx +335 -0
  133. package/src/components/SprintContainer.tsx +303 -0
  134. package/src/components/SprintDependencyDialog.tsx +78 -0
  135. package/src/components/SprintPreflightModal.tsx +138 -0
  136. package/src/components/StatusBar.tsx +168 -0
  137. package/src/components/SwimCell.tsx +67 -0
  138. package/src/components/SwimLaneRow.tsx +94 -0
  139. package/src/components/SwimlaneBoardView.tsx +108 -0
  140. package/src/components/VersionBadge.tsx +139 -0
  141. package/src/components/ViewModeSelector.tsx +114 -0
  142. package/src/components/config/AgentChip.tsx +53 -0
  143. package/src/components/config/AgentCreateDialog.tsx +321 -0
  144. package/src/components/config/AgentEditor.tsx +175 -0
  145. package/src/components/config/DirectoryTree.tsx +582 -0
  146. package/src/components/config/FileEditor.tsx +550 -0
  147. package/src/components/config/HookChip.tsx +50 -0
  148. package/src/components/config/StageCard.tsx +198 -0
  149. package/src/components/config/TransitionZone.tsx +173 -0
  150. package/src/components/config/UnifiedWorkflowPipeline.tsx +216 -0
  151. package/src/components/config/WorkflowPipeline.tsx +161 -0
  152. package/src/components/source-control/BranchList.tsx +93 -0
  153. package/src/components/source-control/BranchPanel.tsx +105 -0
  154. package/src/components/source-control/CommitLog.tsx +100 -0
  155. package/src/components/source-control/CommitRow.tsx +47 -0
  156. package/src/components/source-control/GitHubPanel.tsx +110 -0
  157. package/src/components/source-control/GitHubSetupGuide.tsx +52 -0
  158. package/src/components/source-control/GitOverviewBar.tsx +101 -0
  159. package/src/components/source-control/PullRequestList.tsx +69 -0
  160. package/src/components/source-control/WorktreeList.tsx +80 -0
  161. package/src/components/ui/badge.tsx +41 -0
  162. package/src/components/ui/button.tsx +55 -0
  163. package/src/components/ui/card.tsx +78 -0
  164. package/src/components/ui/dialog.tsx +94 -0
  165. package/src/components/ui/popover.tsx +33 -0
  166. package/src/components/ui/scroll-area.tsx +54 -0
  167. package/src/components/ui/separator.tsx +28 -0
  168. package/src/components/ui/tabs.tsx +52 -0
  169. package/src/components/ui/toggle-switch.tsx +35 -0
  170. package/src/components/ui/tooltip.tsx +27 -0
  171. package/src/components/workflow/AddEdgeDialog.tsx +217 -0
  172. package/src/components/workflow/AddListDialog.tsx +201 -0
  173. package/src/components/workflow/ChecklistEditor.tsx +239 -0
  174. package/src/components/workflow/CommandPrefixManager.tsx +118 -0
  175. package/src/components/workflow/ConfigSettingsPanel.tsx +189 -0
  176. package/src/components/workflow/DirectionSelector.tsx +133 -0
  177. package/src/components/workflow/DispatchConfigPanel.tsx +180 -0
  178. package/src/components/workflow/EdgeDetailPanel.tsx +236 -0
  179. package/src/components/workflow/EdgePropertyEditor.tsx +251 -0
  180. package/src/components/workflow/EditToolbar.tsx +138 -0
  181. package/src/components/workflow/HookDetailPanel.tsx +250 -0
  182. package/src/components/workflow/HookExecutionLog.tsx +24 -0
  183. package/src/components/workflow/HookSourceModal.tsx +129 -0
  184. package/src/components/workflow/HooksDashboard.tsx +363 -0
  185. package/src/components/workflow/ListPropertyEditor.tsx +251 -0
  186. package/src/components/workflow/MigrationPreviewDialog.tsx +237 -0
  187. package/src/components/workflow/MovementRulesPanel.tsx +188 -0
  188. package/src/components/workflow/NodeDetailPanel.tsx +245 -0
  189. package/src/components/workflow/PresetSelector.tsx +414 -0
  190. package/src/components/workflow/SkillCommandBuilder.tsx +174 -0
  191. package/src/components/workflow/WorkflowEdgeComponent.tsx +145 -0
  192. package/src/components/workflow/WorkflowNode.tsx +147 -0
  193. package/src/components/workflow/graphLayout.ts +186 -0
  194. package/src/components/workflow/mergeHooks.ts +85 -0
  195. package/src/components/workflow/useEditHistory.ts +88 -0
  196. package/src/components/workflow/useWorkflowEditor.ts +262 -0
  197. package/src/components/workflow/validateConfig.ts +70 -0
  198. package/src/hooks/useActiveDispatches.ts +198 -0
  199. package/src/hooks/useBoardSettings.ts +170 -0
  200. package/src/hooks/useCardDisplay.ts +57 -0
  201. package/src/hooks/useCcHooks.ts +24 -0
  202. package/src/hooks/useConfigTree.ts +51 -0
  203. package/src/hooks/useEnforcementRules.ts +46 -0
  204. package/src/hooks/useEvents.ts +59 -0
  205. package/src/hooks/useFileEditor.ts +165 -0
  206. package/src/hooks/useGates.ts +57 -0
  207. package/src/hooks/useIdeaActions.ts +53 -0
  208. package/src/hooks/useKanbanDnd.ts +410 -0
  209. package/src/hooks/useOrbitalConfig.ts +54 -0
  210. package/src/hooks/usePipeline.ts +47 -0
  211. package/src/hooks/usePipelineData.ts +338 -0
  212. package/src/hooks/useReconnect.ts +25 -0
  213. package/src/hooks/useScopeFilters.ts +125 -0
  214. package/src/hooks/useScopeSessions.ts +44 -0
  215. package/src/hooks/useScopes.ts +67 -0
  216. package/src/hooks/useSearch.ts +67 -0
  217. package/src/hooks/useSettings.tsx +187 -0
  218. package/src/hooks/useSocket.ts +25 -0
  219. package/src/hooks/useSourceControl.ts +105 -0
  220. package/src/hooks/useSprintPreflight.ts +55 -0
  221. package/src/hooks/useSprints.ts +154 -0
  222. package/src/hooks/useStatusBarHighlight.ts +18 -0
  223. package/src/hooks/useSwimlaneBoardSettings.ts +104 -0
  224. package/src/hooks/useTheme.ts +9 -0
  225. package/src/hooks/useTransitionReadiness.ts +53 -0
  226. package/src/hooks/useVersion.ts +155 -0
  227. package/src/hooks/useViolations.ts +65 -0
  228. package/src/hooks/useWorkflow.tsx +125 -0
  229. package/src/hooks/useZoomModifier.ts +19 -0
  230. package/src/index.css +797 -0
  231. package/src/layouts/DashboardLayout.tsx +113 -0
  232. package/src/lib/collisionDetection.ts +20 -0
  233. package/src/lib/scope-fields.ts +61 -0
  234. package/src/lib/swimlane.ts +146 -0
  235. package/src/lib/utils.ts +15 -0
  236. package/src/main.tsx +19 -0
  237. package/src/socket.ts +11 -0
  238. package/src/types/index.ts +497 -0
  239. package/src/views/AgentFeed.tsx +339 -0
  240. package/src/views/DeployPipeline.tsx +59 -0
  241. package/src/views/EnforcementView.tsx +378 -0
  242. package/src/views/PrimitivesConfig.tsx +500 -0
  243. package/src/views/QualityGates.tsx +1012 -0
  244. package/src/views/ScopeBoard.tsx +454 -0
  245. package/src/views/SessionTimeline.tsx +516 -0
  246. package/src/views/Settings.tsx +183 -0
  247. package/src/views/SourceControl.tsx +95 -0
  248. package/src/views/WorkflowVisualizer.tsx +382 -0
  249. package/tailwind.config.js +161 -0
  250. package/templates/agents/AUTO-INVOKE.md +180 -0
  251. package/templates/agents/CONFLICT-RESOLUTION.md +128 -0
  252. package/templates/agents/QUICK-REFERENCE.md +122 -0
  253. package/templates/agents/README.md +188 -0
  254. package/templates/agents/SKILL-TRIGGERS.md +100 -0
  255. package/templates/agents/blue-team/frontend-designer.md +424 -0
  256. package/templates/agents/green-team/architect.md +526 -0
  257. package/templates/agents/green-team/rules-enforcer.md +131 -0
  258. package/templates/agents/red-team/attacker-learned.md +24 -0
  259. package/templates/agents/red-team/attacker.md +486 -0
  260. package/templates/agents/red-team/chaos.md +548 -0
  261. package/templates/agents/reference/component-registry.md +82 -0
  262. package/templates/agents/workflows/full-mode.md +218 -0
  263. package/templates/agents/workflows/quick-mode.md +118 -0
  264. package/templates/agents/workflows/security-mode.md +283 -0
  265. package/templates/anti-patterns/dangerous-shortcuts.md +427 -0
  266. package/templates/config/agent-triggers.json +92 -0
  267. package/templates/hooks/agent-team-gate.sh +31 -0
  268. package/templates/hooks/agent-trigger.sh +97 -0
  269. package/templates/hooks/block-push.sh +66 -0
  270. package/templates/hooks/block-workarounds.sh +61 -0
  271. package/templates/hooks/blocker-check.sh +28 -0
  272. package/templates/hooks/completion-checklist.sh +28 -0
  273. package/templates/hooks/decision-capture.sh +15 -0
  274. package/templates/hooks/dependency-check.sh +27 -0
  275. package/templates/hooks/end-session.sh +31 -0
  276. package/templates/hooks/exploration-logger.sh +37 -0
  277. package/templates/hooks/files-changed-summary.sh +37 -0
  278. package/templates/hooks/get-session-id.sh +49 -0
  279. package/templates/hooks/git-commit-guard.sh +34 -0
  280. package/templates/hooks/init-session.sh +93 -0
  281. package/templates/hooks/orbital-emit.sh +79 -0
  282. package/templates/hooks/orbital-report-deploy.sh +78 -0
  283. package/templates/hooks/orbital-report-gates.sh +40 -0
  284. package/templates/hooks/orbital-report-violation.sh +36 -0
  285. package/templates/hooks/orbital-scope-update.sh +53 -0
  286. package/templates/hooks/phase-verify-reminder.sh +26 -0
  287. package/templates/hooks/review-gate-check.sh +82 -0
  288. package/templates/hooks/scope-commit-logger.sh +37 -0
  289. package/templates/hooks/scope-create-cleanup.sh +36 -0
  290. package/templates/hooks/scope-create-gate.sh +80 -0
  291. package/templates/hooks/scope-create-tracker.sh +17 -0
  292. package/templates/hooks/scope-file-sync.sh +53 -0
  293. package/templates/hooks/scope-gate.sh +35 -0
  294. package/templates/hooks/scope-helpers.sh +188 -0
  295. package/templates/hooks/scope-lifecycle-gate.sh +139 -0
  296. package/templates/hooks/scope-prepare.sh +244 -0
  297. package/templates/hooks/scope-transition.sh +172 -0
  298. package/templates/hooks/session-enforcer.sh +143 -0
  299. package/templates/hooks/time-tracker.sh +33 -0
  300. package/templates/lessons-learned.md +15 -0
  301. package/templates/orbital.config.json +35 -0
  302. package/templates/presets/development.json +42 -0
  303. package/templates/presets/gitflow.json +712 -0
  304. package/templates/presets/minimal.json +23 -0
  305. package/templates/quick/rules.md +218 -0
  306. package/templates/scopes/_template.md +255 -0
  307. package/templates/settings-hooks.json +98 -0
  308. package/templates/skills/git-commit/SKILL.md +85 -0
  309. package/templates/skills/git-dev/SKILL.md +99 -0
  310. package/templates/skills/git-hotfix/SKILL.md +223 -0
  311. package/templates/skills/git-main/SKILL.md +84 -0
  312. package/templates/skills/git-production/SKILL.md +165 -0
  313. package/templates/skills/git-staging/SKILL.md +112 -0
  314. package/templates/skills/scope-create/SKILL.md +81 -0
  315. package/templates/skills/scope-fix-review/SKILL.md +168 -0
  316. package/templates/skills/scope-implement/SKILL.md +110 -0
  317. package/templates/skills/scope-post-review/SKILL.md +144 -0
  318. package/templates/skills/scope-pre-review/SKILL.md +211 -0
  319. package/templates/skills/scope-verify/SKILL.md +201 -0
  320. package/templates/skills/session-init/SKILL.md +62 -0
  321. package/templates/skills/session-resume/SKILL.md +201 -0
  322. package/templates/skills/test-checks/SKILL.md +171 -0
  323. package/templates/skills/test-code-review/SKILL.md +252 -0
  324. package/tsconfig.json +25 -0
  325. package/vite.config.ts +38 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Miguel
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.
package/README.md ADDED
@@ -0,0 +1,396 @@
1
+ # Orbital Command
2
+
3
+ **Mission control for Claude Code projects.**
4
+
5
+ ---
6
+
7
+ Orbital Command is a real-time project management dashboard purpose-built for [Claude Code](https://docs.anthropic.com/en/docs/claude-code). It gives you a visual Kanban board, sprint orchestration, a workflow DAG editor, quality gates, source control integration, and a session timeline โ€” all driven by a file-based event bus that works even when the server is offline.
8
+
9
+ Think of it as the control tower that turns a collection of AI-assisted coding sessions into a coordinated engineering operation.
10
+
11
+ ## Features
12
+
13
+ - **Kanban Board** โ€” Drag-and-drop scope cards across customizable columns. Supports swim-lane grouping, filters, sprints, and batch dispatch.
14
+ - **Sprint Orchestration** โ€” Group scopes into sprints, resolve dependencies via topological sort, and batch-dispatch to parallel Claude Code sessions with preflight checks.
15
+ - **Workflow Engine** โ€” Visual DAG editor to define columns, transitions, hooks, checklists, and confirmation levels. Ships with 4 presets (default, gitflow, development, minimal).
16
+ - **Quality Gates** โ€” 13 automated checks (type-check, lint, build, tests, rule enforcement, placeholder detection, and more). Gate verdicts block or allow scope transitions automatically.
17
+ - **Agent System** โ€” 5 AI agent definitions organized in Red/Blue/Green teams with 3 review modes (quick, full, security). Dispatch reviews from the dashboard and see findings in real time.
18
+ - **Source Control** โ€” Git overview, commit history, branch tracking, worktree management, GitHub PR integration, and deployment drift analysis.
19
+ - **Session Timeline** โ€” Browse Claude Code sessions with token counts, tool usage stats, scope associations, and one-click session resumption.
20
+ - **Primitives Editor** โ€” Browse and edit agents, skills, and hooks directly from the dashboard with a built-in file editor and workflow pipeline visualization.
21
+ - **File-Based Event Bus** โ€” No daemon required. Hooks write JSON events to `.claude/orbital-events/`; the server picks them up on next start. Events queue naturally when the server is offline.
22
+
23
+ ## Requirements
24
+
25
+ - **Node.js >= 18**
26
+ - **Claude Code** installed and available as `claude` on your PATH
27
+ - **C++ compiler** for the `better-sqlite3` native module:
28
+ - macOS: Xcode Command Line Tools (`xcode-select --install`)
29
+ - Linux: `build-essential` (`apt install build-essential`)
30
+
31
+ ## Installation
32
+
33
+ **Global install (recommended for regular use):**
34
+
35
+ ```bash
36
+ npm install -g github:SakaraLabs/orbital-command
37
+ ```
38
+
39
+ This registers the `orbital` command globally. Then in any project:
40
+
41
+ ```bash
42
+ orbital init
43
+ orbital dev
44
+ ```
45
+
46
+ **Without global install:**
47
+
48
+ ```bash
49
+ npx github:SakaraLabs/orbital-command init
50
+ npx github:SakaraLabs/orbital-command dev
51
+ ```
52
+
53
+ ## Quick Start
54
+
55
+ ```bash
56
+ # 1. Navigate to your project
57
+ cd my-project
58
+
59
+ # 2. Scaffold Orbital Command (hooks, skills, agents, config)
60
+ orbital init
61
+
62
+ # 3. Launch the dashboard
63
+ orbital dev
64
+ ```
65
+
66
+ Open [http://localhost:4445](http://localhost:4445) in your browser. The API server runs on port 4444.
67
+
68
+ The `init` command is non-destructive โ€” it skips files that already exist. Pass `--force` to overwrite everything with the latest templates.
69
+
70
+ ## What Gets Installed
71
+
72
+ After `orbital init`, your project receives:
73
+
74
+ ```
75
+ .claude/
76
+ orbital.config.json # Project configuration
77
+ settings.local.json # Hook registrations (merged, not overwritten)
78
+ hooks/ # 32 lifecycle hook scripts
79
+ skills/ # 16 skill definitions
80
+ agents/ # Agent team definitions + workflow docs
81
+ config/
82
+ workflow.json # Active workflow configuration
83
+ workflows/ # Workflow presets (default, gitflow, development, minimal)
84
+ agent-triggers.json # Auto-invoke rules for agents
85
+ scopes/
86
+ _template.md # Scope document template
87
+ icebox/ # Starting directory for scope documents
88
+ planning/ # (directories created per workflow preset)
89
+ ...
90
+ .gitignore # Orbital patterns appended
91
+ ```
92
+
93
+ | Category | Count | Description |
94
+ |----------|-------|-------------|
95
+ | Hooks | 32 | Shell scripts triggered by Claude Code lifecycle events |
96
+ | Skills | 16 | Scope lifecycle, git operations, testing, and session management |
97
+ | Agents | 5 | Red, Blue, and Green team agent definitions |
98
+ | Presets | 4 | `default` (7 columns), `gitflow` (9 columns), `development` (5 columns), `minimal` (3 columns) |
99
+
100
+ ## Dashboard Views
101
+
102
+ | View | Path | Description |
103
+ |------|------|-------------|
104
+ | **Kanban** | `/` | Scope board with drag-and-drop, swim lanes, sprint containers, batch dispatch |
105
+ | **Primitives** | `/primitives` | Browse and edit agents, skills, and hooks with a directory tree and file editor |
106
+ | **Safeguards** | `/gates` | Quality gate status, violation trends, enforcement rules, override audit trail |
107
+ | **Repo** | `/repo` | Git overview, commit log, branches, worktrees, GitHub PRs, deployment history |
108
+ | **Sessions** | `/sessions` | Claude Code session timeline with token stats, tool usage, and resume capability |
109
+ | **Workflow** | `/workflow` | Visual DAG editor for columns, transitions, hooks, and presets |
110
+ | **Settings** | `/settings` | Theme toggle, font selection, and UI scale adjustment |
111
+
112
+ ## CLI Reference
113
+
114
+ | Command | Description |
115
+ |---------|-------------|
116
+ | `orbital init` | Scaffold hooks, skills, agents, and config into the current project |
117
+ | `orbital init --force` | Re-scaffold, overwriting all existing files with latest templates |
118
+ | `orbital dev` | Start the API server and Vite dev server concurrently |
119
+ | `orbital build` | Production build of the dashboard frontend |
120
+ | `orbital emit <TYPE> [JSON]` | Emit an event to the file-based event bus |
121
+ | `orbital update` | Re-copy hooks, skills, agents, and presets (overwrites). Pass `--include-examples` to include domain-specific example agents |
122
+ | `orbital uninstall` | Remove all Orbital artifacts from the project. Preserves `scopes/` and event history |
123
+
124
+ ## Workflow Presets
125
+
126
+ Orbital ships with 4 workflow presets. Switch between them at any time via the Workflow Visualizer in the dashboard.
127
+
128
+ ### Default (7 columns, trunk-based)
129
+
130
+ **Icebox** โ†’ **Planning** โ†’ **Backlog** โ†’ **Implementing** โ†’ **Review** โ†’ **Completed** โ†’ **Main**
131
+
132
+ The standard trunk-based workflow. 13 transition edges including shortcuts (planning โ†’ implementing), backward transitions for rework, and forward paths. 30 hooks for session management, scope lifecycle, quality gates, and event reporting. Best for most projects.
133
+
134
+ ### Gitflow (9 columns, worktree isolation)
135
+
136
+ **Icebox** โ†’ **Planning** โ†’ **Backlog** โ†’ **Implementing** โ†’ **Review** โ†’ **Completed** โ†’ **Dev** โ†’ **Staging** โ†’ **Production**
137
+
138
+ Full gitflow with branch-per-scope worktree isolation. 16 transition edges, feature branches merged to dev, PRs to staging, and production releases. 30 hooks. Best for teams with formal release processes.
139
+
140
+ ### Development (5 columns, trunk-based)
141
+
142
+ **Backlog** โ†’ **Implementing** โ†’ **Review** โ†’ **Completed** โ†’ **Dev**
143
+
144
+ Streamlined flow that drops planning and deploy stages. 6 transition edges, no hooks. Good for active development before you have a staging/production pipeline.
145
+
146
+ ### Minimal (3 columns, trunk-based)
147
+
148
+ **To Do** โ†’ **In Progress** โ†’ **Done**
149
+
150
+ Simplest possible board. 2 transition edges, no hooks, no event inference. Good for experiments, hackathons, or projects that just need a task board.
151
+
152
+ ## Skills
153
+
154
+ Skills are slash commands that Claude Code agents use to navigate your workflow. They're installed as markdown files in `.claude/skills/`.
155
+
156
+ ### Scope Lifecycle
157
+ | Skill | Command | Purpose |
158
+ |-------|---------|---------|
159
+ | Create | `/scope-create` | Create a structured scope document with phases and success criteria |
160
+ | Implement | `/scope-implement` | Execute a scope end-to-end following defined phases |
161
+ | Pre-Review | `/scope-pre-review` | Run full agent team analysis before implementation |
162
+ | Post-Review | `/scope-post-review` | Orchestrate post-implementation quality gates and code review |
163
+ | Verify | `/scope-verify` | Formal review gate checking spec compliance and test results |
164
+ | Fix Review | `/scope-fix-review` | Execute all code review findings from agent team |
165
+
166
+ ### Git Operations
167
+ | Skill | Command | Purpose |
168
+ |-------|---------|---------|
169
+ | Commit | `/git-commit` | Routes to proper git workflow (trunk/worktree aware) |
170
+ | Main | `/git-main` | Push or PR scope work to main branch |
171
+ | Dev | `/git-dev` | Merge feature branch into dev |
172
+ | Staging | `/git-staging` | Create PR from dev to staging |
173
+ | Production | `/git-production` | Create release PR from staging to main |
174
+ | Hotfix | `/git-hotfix` | Emergency fix branching from main |
175
+
176
+ ### Testing & Sessions
177
+ | Skill | Command | Purpose |
178
+ |-------|---------|---------|
179
+ | Checks | `/test-checks` | Run 13 quality gates (lint, typecheck, rules, etc.) |
180
+ | Code Review | `/test-code-review` | Full validation suite with agent code review |
181
+ | Session Init | `/session-init` | Initialize work session with project context |
182
+ | Session Resume | `/session-resume` | Resume a previous session with saved context |
183
+
184
+ ## Agent System
185
+
186
+ Agents are AI-powered review sessions with specialized perspectives. They run as parallel Claude Code sessions and report findings back to the dashboard.
187
+
188
+ ### Red Team โ€” Adversarial
189
+
190
+ | Agent | Trigger | Focus |
191
+ |-------|---------|-------|
192
+ | **Attacker** ๐Ÿ—ก๏ธ | Security-sensitive changes | Credential extraction, injection vectors, API over-exposure, resource exhaustion, state corruption |
193
+ | **Chaos** ๐Ÿ’ฅ | New features, state changes, external calls | Partial completion, concurrent access conflicts, stale data, orphaned locks, queue backups |
194
+
195
+ ### Blue Team โ€” Domain Experts
196
+
197
+ | Agent | Trigger | Focus |
198
+ |-------|---------|-------|
199
+ | **Frontend Designer** ๐ŸŽจ | Frontend changes, user-facing features | React components, UX patterns, style consistency, data accuracy, real-time updates |
200
+
201
+ ### Green Team โ€” Guardians
202
+
203
+ | Agent | Trigger | Focus |
204
+ |-------|---------|-------|
205
+ | **Architect** ๐Ÿ—๏ธ | New features, structural changes | Layer separation, module boundaries, pattern consistency, database integrity |
206
+ | **Rules Enforcer** ๐Ÿ“‹ | Every commit (blocking) | No `any` types, no console.log, file size limits, import ordering, project rules |
207
+
208
+ ### Review Modes
209
+
210
+ Agents can run in three modes, configured per-transition in the workflow:
211
+
212
+ - **Quick** โ€” Fast feedback from relevant agents only
213
+ - **Full** โ€” Complete analysis from all agents
214
+ - **Security** โ€” Enhanced scrutiny with red team focus
215
+
216
+ ## Quality Gates
217
+
218
+ Orbital tracks 13 automated quality checks that can block or allow scope transitions:
219
+
220
+ | Gate | What it checks |
221
+ |------|---------------|
222
+ | `type-check` | TypeScript compilation |
223
+ | `lint` | Linter rules |
224
+ | `build` | Build succeeds |
225
+ | `tests` | Test suite passes |
226
+ | `rule-enforcement` | Project-specific rules |
227
+ | `template-validation` | Template compliance |
228
+ | `doc-links` | Documentation links valid |
229
+ | `doc-freshness` | Docs not stale |
230
+ | `no-placeholders` | No TODO/FIXME left behind |
231
+ | `no-mock-data` | No hardcoded test data |
232
+ | `no-shortcuts` | No workaround hacks |
233
+ | `no-default-secrets` | No hardcoded credentials |
234
+ | `no-stale-scopes` | Scopes aren't abandoned |
235
+
236
+ Gates are reported by hooks and displayed in the Safeguards view with trend charts and override tracking.
237
+
238
+ ## Configuration
239
+
240
+ All configuration lives in `.claude/orbital.config.json`:
241
+
242
+ ```jsonc
243
+ {
244
+ "projectName": "My Project",
245
+ "scopesDir": "scopes",
246
+ "eventsDir": ".claude/orbital-events",
247
+ "dbDir": ".claude/orbital",
248
+ "configDir": ".claude/config",
249
+ "serverPort": 4444,
250
+ "clientPort": 4445,
251
+
252
+ "terminal": {
253
+ "adapter": "auto", // "auto" | "iterm2" | "subprocess" | "none"
254
+ "profilePrefix": "Orbital"
255
+ },
256
+
257
+ "claude": {
258
+ "executable": "claude",
259
+ "flags": ["--dangerously-skip-permissions"]
260
+ },
261
+
262
+ // Project-specific commands (null = disabled)
263
+ "commands": {
264
+ "typeCheck": null, // e.g. "npx tsc --noEmit"
265
+ "lint": null, // e.g. "npx eslint ."
266
+ "build": null, // e.g. "npm run build"
267
+ "test": null // e.g. "npm test"
268
+ },
269
+
270
+ "categories": ["feature", "bugfix", "refactor", "infrastructure", "docs"],
271
+
272
+ "agents": [
273
+ { "id": "attacker", "label": "Attacker", "emoji": "๐Ÿ—ก๏ธ", "color": "#ff1744" },
274
+ { "id": "chaos", "label": "Chaos", "emoji": "๐Ÿ’ฅ", "color": "#F97316" },
275
+ { "id": "frontend-designer", "label": "Frontend Designer", "emoji": "๐ŸŽจ", "color": "#EC4899" },
276
+ { "id": "architect", "label": "Architect", "emoji": "๐Ÿ—๏ธ", "color": "#536dfe" },
277
+ { "id": "rules-enforcer", "label": "Rules Enforcer", "emoji": "๐Ÿ“‹", "color": "#6B7280" }
278
+ ]
279
+ }
280
+ ```
281
+
282
+ ## Architecture
283
+
284
+ ```
285
+ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
286
+ โ”‚ Browser (React 18) โ”‚
287
+ โ”‚ Kanban ยท Primitives ยท Safeguards ยท Repo ยท Sessions ยท DAG โ”‚
288
+ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
289
+ โ”‚ Socket.io + REST (/api/orbital/*)
290
+ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
291
+ โ”‚ Express Server (:4444) โ”‚
292
+ โ”‚ ScopeService ยท SprintOrchestrator ยท BatchOrchestrator โ”‚
293
+ โ”‚ WorkflowService ยท GateService ยท GitService ยท ConfigService โ”‚
294
+ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
295
+ โ”‚ โ”‚
296
+ โ”Œโ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
297
+ โ”‚ SQLite โ”‚ โ”‚ Filesystem โ”‚
298
+ โ”‚ (WAL) โ”‚ โ”‚ (scopes + โ”‚
299
+ โ”‚ โ”‚ โ”‚ events) โ”‚
300
+ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
301
+ ```
302
+
303
+ | Layer | Technology | Role |
304
+ |-------|-----------|------|
305
+ | **Frontend** | React 18 + Vite + Tailwind CSS + Radix UI | Dashboard with drag-and-drop Kanban, Recharts visualizations, React Flow DAG editor |
306
+ | **Server** | Express + Socket.io | REST API under `/api/orbital/*`, real-time push, file watchers via chokidar |
307
+ | **Database** | SQLite via better-sqlite3 (WAL mode) | Zero-setup storage for sessions, events, gates, deploys, and sprints |
308
+ | **Event Bus** | Filesystem (`.claude/orbital-events/`) | JSON event files written by hooks; ingested on startup and watched in real time |
309
+ | **Workflow Engine** | Pure TypeScript (shared) | Config-driven transitions, validation, event inference, shell manifest generation |
310
+ | **Hooks** | Shell scripts (`.claude/hooks/`) | 32 scripts triggered by Claude Code lifecycle events (SessionStart, SessionEnd, PreToolUse, PostToolUse) |
311
+ | **Skills** | Markdown (`.claude/skills/`) | 16 skill definitions that teach Claude Code how to navigate your workflow |
312
+ | **Agents** | Markdown (`.claude/agents/`) | Team-based agent definitions dispatched as parallel Claude Code sessions |
313
+
314
+ ## How It Works
315
+
316
+ ### Scopes
317
+ Scopes are the unit of work in Orbital Command. Each scope is a markdown file with YAML frontmatter stored in `scopes/<column>/`. Moving a scope between columns on the board physically moves the file between directories.
318
+
319
+ ```markdown
320
+ ---
321
+ id: "042"
322
+ title: Add user authentication
323
+ status: implementing
324
+ category: feature
325
+ priority: high
326
+ blocked_by: ["041"]
327
+ ---
328
+
329
+ ## Specification
330
+ ...
331
+ ```
332
+
333
+ ### Event Flow
334
+ 1. Claude Code hooks fire during sessions (tool use, session start/end)
335
+ 2. Hooks write JSON event files to `.claude/orbital-events/`
336
+ 3. The server's file watcher picks them up and ingests into SQLite
337
+ 4. Socket.io pushes updates to the dashboard in real time
338
+ 5. If the server is offline, events queue as files and get ingested on next start
339
+
340
+ ### Dispatch
341
+ When you dispatch a scope from the dashboard, Orbital:
342
+ 1. Validates the transition is allowed by the workflow
343
+ 2. Resolves the skill command for the edge (e.g., `/scope-implement`)
344
+ 3. Spawns a Claude Code session in a terminal (iTerm2 tabs or subprocess)
345
+ 4. Tracks the session lifecycle via hooks
346
+ 5. Updates scope status as events flow back
347
+
348
+ ## FAQ
349
+
350
+ ### Can I use this without Claude Code?
351
+ No. Orbital Command is purpose-built for Claude Code. The hooks, skills, agents, and session tracking all depend on Claude Code's lifecycle events and CLI.
352
+
353
+ ### Do I need to keep the dashboard running?
354
+ No. The file-based event bus means hooks write events as JSON files regardless of whether the server is running. Events queue up and get ingested when you next run `orbital dev`.
355
+
356
+ ### How do I customize the workflow columns?
357
+ Open the Workflow Visualizer (`/workflow` in the dashboard). You can add/remove columns, create transitions, attach hooks, and set confirmation levels. Or edit `.claude/config/workflow.json` directly. Changes take effect immediately.
358
+
359
+ ### How do I add my own agents?
360
+ Create a markdown file in `.claude/agents/<team>/` following the structure of existing agents. Add the agent to the `agents` array in `orbital.config.json` to show it in the dashboard. Agents are dispatched as independent Claude Code sessions with the markdown file as their system prompt.
361
+
362
+ ### What's the difference between trunk and worktree branching modes?
363
+ **Trunk mode** (default, development, minimal presets): All work happens on a single branch. Scopes commit directly. Simpler, good for solo or small teams.
364
+
365
+ **Worktree mode** (gitflow preset): Each scope gets its own git worktree and feature branch. Merges happen through PRs. Better for teams with formal review processes.
366
+
367
+ ### How do sprints work?
368
+ Sprints group multiple scopes for batch execution. The orchestrator resolves dependencies using topological sort (Kahn's algorithm), organizes scopes into execution layers, then dispatches them in parallel with staggered 2-second intervals. One active batch per workflow column.
369
+
370
+ ### How do I reset everything?
371
+ ```bash
372
+ orbital uninstall # Remove all Orbital artifacts
373
+ orbital init --force # Re-scaffold from scratch
374
+ ```
375
+
376
+ This preserves your `scopes/` directory and event history.
377
+
378
+ ### Can I use a different terminal than iTerm2?
379
+ Yes. Set `terminal.adapter` in your config:
380
+ - `"auto"` โ€” Detects iTerm2 on macOS, falls back to subprocess
381
+ - `"iterm2"` โ€” macOS iTerm2 with categorized tab groups
382
+ - `"subprocess"` โ€” Generic subprocess spawning (works everywhere)
383
+ - `"none"` โ€” Disable terminal dispatch
384
+
385
+ ## Contributing
386
+
387
+ 1. Fork the repository and clone locally
388
+ 2. Install dependencies: `npm install`
389
+ 3. Start development: `npm run dev:local`
390
+ 4. Typecheck: `npm run typecheck`
391
+
392
+ Open an issue first for large changes or new features.
393
+
394
+ ## License
395
+
396
+ MIT