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
@@ -0,0 +1,712 @@
1
+ {
2
+ "version": 1,
3
+ "name": "Gitflow",
4
+ "branchingMode": "worktree",
5
+ "description": "9-list Gitflow workflow with dev/staging/production pipeline and worktree isolation",
6
+ "lists": [
7
+ {
8
+ "id": "icebox",
9
+ "label": "Icebox",
10
+ "order": 0,
11
+ "group": "planning",
12
+ "color": "187 72% 43%",
13
+ "hex": "#1faabd",
14
+ "isEntryPoint": true,
15
+ "hasDirectory": true
16
+ },
17
+ {
18
+ "id": "planning",
19
+ "label": "Planning",
20
+ "order": 1,
21
+ "group": "planning",
22
+ "color": "231 99% 66%",
23
+ "hex": "#526cfe",
24
+ "hasDirectory": true,
25
+ "sessionKey": "createScope"
26
+ },
27
+ {
28
+ "id": "backlog",
29
+ "label": "Backlog",
30
+ "order": 2,
31
+ "group": "planning",
32
+ "color": "330 81% 60%",
33
+ "hex": "#ec4899",
34
+ "supportsSprint": true,
35
+ "hasDirectory": true,
36
+ "sessionKey": "reviewScope"
37
+ },
38
+ {
39
+ "id": "implementing",
40
+ "label": "Implementing",
41
+ "order": 3,
42
+ "group": "development",
43
+ "color": "0 84% 60%",
44
+ "hex": "#ef4444",
45
+ "hasDirectory": true,
46
+ "sessionKey": "implementScope",
47
+ "activeHooks": ["block-commit-implementing"]
48
+ },
49
+ {
50
+ "id": "review",
51
+ "label": "Review",
52
+ "order": 4,
53
+ "group": "development",
54
+ "color": "45 93% 58%",
55
+ "hex": "#eab308",
56
+ "hasDirectory": true,
57
+ "sessionKey": "reviewGate"
58
+ },
59
+ {
60
+ "id": "completed",
61
+ "label": "Completed",
62
+ "order": 5,
63
+ "group": "development",
64
+ "color": "175 70% 42%",
65
+ "hex": "#20b6aa",
66
+ "supportsBatch": true,
67
+ "hasDirectory": true,
68
+ "sessionKey": "commit"
69
+ },
70
+ {
71
+ "id": "dev",
72
+ "label": "Dev",
73
+ "order": 6,
74
+ "group": "deploy-dev",
75
+ "color": "199 100% 63%",
76
+ "hex": "#42c3ff",
77
+ "supportsBatch": true,
78
+ "hasDirectory": true,
79
+ "sessionKey": "prDev"
80
+ },
81
+ {
82
+ "id": "staging",
83
+ "label": "Staging",
84
+ "order": 7,
85
+ "group": "deploy-staging",
86
+ "color": "330 81% 60%",
87
+ "hex": "#ec4699",
88
+ "supportsBatch": true,
89
+ "hasDirectory": true,
90
+ "gitBranch": "staging",
91
+ "sessionKey": "pushToStaging"
92
+ },
93
+ {
94
+ "id": "production",
95
+ "label": "Production",
96
+ "order": 8,
97
+ "group": "deploy-prod",
98
+ "color": "153 100% 39%",
99
+ "hex": "#00c76d",
100
+ "hasDirectory": true,
101
+ "gitBranch": "main",
102
+ "sessionKey": "pushToProduction"
103
+ }
104
+ ],
105
+ "edges": [
106
+ {
107
+ "from": "icebox",
108
+ "to": "planning",
109
+ "direction": "forward",
110
+ "command": "/scope-create {id}",
111
+ "confirmLevel": "quick",
112
+ "label": "Create Scope",
113
+ "description": "Launches /scope-create with idea context pre-filled.",
114
+ "dispatchOnly": false,
115
+ "hooks": ["session-enforcer", "scope-create-gate", "blocker-check", "dependency-check", "scope-transition", "orbital-scope-update"]
116
+ },
117
+ {
118
+ "from": "planning",
119
+ "to": "backlog",
120
+ "direction": "forward",
121
+ "command": "/scope-pre-review {id}",
122
+ "confirmLevel": "quick",
123
+ "label": "Team Review",
124
+ "description": "Runs full agent team review, locks spec, moves to backlog.",
125
+ "dispatchOnly": true,
126
+ "hooks": ["session-enforcer", "blocker-check", "dependency-check", "scope-transition", "orbital-scope-update"]
127
+ },
128
+ {
129
+ "from": "planning",
130
+ "to": "implementing",
131
+ "direction": "shortcut",
132
+ "command": "/scope-implement {id}",
133
+ "confirmLevel": "full",
134
+ "checklist": [
135
+ "Scope is small and well-understood",
136
+ "Spec is complete — no open questions",
137
+ "No cross-scope dependencies to resolve first"
138
+ ],
139
+ "label": "Fast Track",
140
+ "description": "Skips team review and starts implementing directly.",
141
+ "dispatchOnly": false,
142
+ "humanOnly": true,
143
+ "hooks": ["session-enforcer", "blocker-check", "dependency-check", "scope-transition", "orbital-scope-update"]
144
+ },
145
+ {
146
+ "from": "backlog",
147
+ "to": "implementing",
148
+ "direction": "forward",
149
+ "command": "/scope-implement {id}",
150
+ "confirmLevel": "quick",
151
+ "label": "Start Implementing",
152
+ "description": "Opens a Claude session running /scope-implement.",
153
+ "dispatchOnly": true,
154
+ "hooks": ["session-enforcer", "blocker-check", "dependency-check", "scope-transition", "orbital-scope-update"]
155
+ },
156
+ {
157
+ "from": "implementing",
158
+ "to": "review",
159
+ "direction": "forward",
160
+ "command": "/scope-post-review {id}",
161
+ "confirmLevel": "quick",
162
+ "label": "Run Review Gate",
163
+ "description": "Launches formal review gate. Moves to review only if all criteria pass.",
164
+ "dispatchOnly": true,
165
+ "hooks": ["session-enforcer", "review-gate-check", "blocker-check", "dependency-check", "scope-transition", "orbital-scope-update"]
166
+ },
167
+ {
168
+ "from": "implementing",
169
+ "to": "completed",
170
+ "direction": "shortcut",
171
+ "command": null,
172
+ "confirmLevel": "full",
173
+ "checklist": [
174
+ "Change is small and self-contained",
175
+ "I have manually verified this change works",
176
+ "No review verdict needed for this scope"
177
+ ],
178
+ "label": "Skip Review",
179
+ "description": "Moves directly to completed without running the review gate.",
180
+ "dispatchOnly": false,
181
+ "humanOnly": true,
182
+ "hooks": ["session-enforcer", "completion-checklist", "blocker-check", "dependency-check", "scope-transition", "orbital-scope-update"]
183
+ },
184
+ {
185
+ "from": "review",
186
+ "to": "completed",
187
+ "direction": "forward",
188
+ "command": "/git-commit",
189
+ "confirmLevel": "quick",
190
+ "label": "Commit",
191
+ "description": "Commits scope work to feature branch.",
192
+ "dispatchOnly": true,
193
+ "hooks": ["session-enforcer", "completion-checklist", "blocker-check", "dependency-check", "scope-transition", "orbital-scope-update", "scope-commit-logger"]
194
+ },
195
+ {
196
+ "from": "completed",
197
+ "to": "dev",
198
+ "direction": "forward",
199
+ "command": "/git-dev",
200
+ "confirmLevel": "quick",
201
+ "label": "Merge to Dev",
202
+ "description": "Merges feature branch into dev. Batches multiple completed scopes.",
203
+ "dispatchOnly": true,
204
+ "hooks": ["session-enforcer", "blocker-check", "dependency-check", "scope-transition", "orbital-scope-update"]
205
+ },
206
+ {
207
+ "from": "dev",
208
+ "to": "staging",
209
+ "direction": "forward",
210
+ "command": "/git-staging",
211
+ "confirmLevel": "quick",
212
+ "label": "PR to Staging",
213
+ "description": "Creates a GitHub PR from dev to staging.",
214
+ "dispatchOnly": true,
215
+ "hooks": ["session-enforcer", "lifecycle-gate", "blocker-check", "dependency-check", "scope-transition", "orbital-scope-update", "scope-commit-logger"]
216
+ },
217
+ {
218
+ "from": "staging",
219
+ "to": "production",
220
+ "direction": "forward",
221
+ "command": "/git-production",
222
+ "confirmLevel": "full",
223
+ "checklist": [
224
+ "Staging deployment verified healthy",
225
+ "No regressions in staging tests",
226
+ "Ready for production release"
227
+ ],
228
+ "label": "PR to Production",
229
+ "description": "Creates a release PR from staging to main for production.",
230
+ "dispatchOnly": true,
231
+ "hooks": ["session-enforcer", "lifecycle-gate", "blocker-check", "dependency-check", "scope-transition", "orbital-scope-update", "scope-commit-logger"]
232
+ },
233
+ {
234
+ "from": "review",
235
+ "to": "implementing",
236
+ "direction": "backward",
237
+ "command": "/scope-implement {id}",
238
+ "confirmLevel": "quick",
239
+ "label": "Back to Implementing",
240
+ "description": "Re-opens implementation to address review findings.",
241
+ "dispatchOnly": true,
242
+ "hooks": ["session-enforcer", "scope-transition", "orbital-scope-update"]
243
+ },
244
+ {
245
+ "from": "dev",
246
+ "to": "implementing",
247
+ "direction": "backward",
248
+ "command": "/scope-implement {id}",
249
+ "confirmLevel": "quick",
250
+ "label": "Back to Implementing",
251
+ "description": "Re-opens implementation to fix issues found after commit.",
252
+ "dispatchOnly": true,
253
+ "hooks": ["session-enforcer", "scope-transition", "orbital-scope-update"]
254
+ },
255
+ {
256
+ "from": "completed",
257
+ "to": "implementing",
258
+ "direction": "backward",
259
+ "command": "/scope-implement {id}",
260
+ "confirmLevel": "quick",
261
+ "label": "Back to Implementing",
262
+ "description": "Re-opens implementation to fix issues found after commit.",
263
+ "dispatchOnly": true,
264
+ "hooks": ["session-enforcer", "scope-transition", "orbital-scope-update"]
265
+ },
266
+ {
267
+ "from": "implementing",
268
+ "to": "backlog",
269
+ "direction": "backward",
270
+ "command": null,
271
+ "confirmLevel": "quick",
272
+ "label": "Back to Backlog",
273
+ "description": "Returns this scope to the backlog. Use when implementation was not started or session failed.",
274
+ "dispatchOnly": false,
275
+ "humanOnly": true,
276
+ "hooks": ["session-enforcer", "scope-transition", "orbital-scope-update"]
277
+ },
278
+ {
279
+ "from": "planning",
280
+ "to": "icebox",
281
+ "direction": "backward",
282
+ "command": null,
283
+ "confirmLevel": "quick",
284
+ "label": "Demote to Idea",
285
+ "description": "Sends this scope back to the icebox as an idea.",
286
+ "dispatchOnly": false,
287
+ "humanOnly": true,
288
+ "hooks": ["session-enforcer", "scope-transition", "orbital-scope-update"]
289
+ },
290
+ {
291
+ "from": "backlog",
292
+ "to": "planning",
293
+ "direction": "backward",
294
+ "command": null,
295
+ "confirmLevel": "quick",
296
+ "label": "Revert to Planning",
297
+ "description": "Sends this scope back for more planning. Unlocks spec.",
298
+ "dispatchOnly": false,
299
+ "humanOnly": true,
300
+ "hooks": ["session-enforcer", "scope-transition", "orbital-scope-update"]
301
+ }
302
+ ],
303
+ "hooks": [
304
+ {
305
+ "id": "session-enforcer",
306
+ "label": "Session Authorization",
307
+ "timing": "before",
308
+ "type": "shell",
309
+ "target": ".claude/hooks/session-enforcer.sh",
310
+ "blocking": true,
311
+ "description": "Blocks unauthorized status transitions without a valid session",
312
+ "category": "guard"
313
+ },
314
+ {
315
+ "id": "completion-checklist",
316
+ "label": "Completion Checklist",
317
+ "timing": "before",
318
+ "type": "shell",
319
+ "target": ".claude/hooks/completion-checklist.sh",
320
+ "blocking": true,
321
+ "description": "Blocks completion if DoD items are unchecked",
322
+ "category": "guard"
323
+ },
324
+ {
325
+ "id": "review-gate-check",
326
+ "label": "Review Verdict Check",
327
+ "timing": "before",
328
+ "type": "shell",
329
+ "target": ".claude/hooks/review-gate-check.sh",
330
+ "blocking": false,
331
+ "description": "Warns if review verdict file is missing",
332
+ "category": "gate"
333
+ },
334
+ {
335
+ "id": "blocker-check",
336
+ "label": "Blocker Check",
337
+ "timing": "before",
338
+ "type": "shell",
339
+ "target": ".claude/hooks/blocker-check.sh",
340
+ "blocking": false,
341
+ "description": "Warns if unresolved blockers exist on the scope",
342
+ "category": "gate"
343
+ },
344
+ {
345
+ "id": "dependency-check",
346
+ "label": "Dependency Check",
347
+ "timing": "before",
348
+ "type": "shell",
349
+ "target": ".claude/hooks/dependency-check.sh",
350
+ "blocking": false,
351
+ "description": "Warns if cross-scope dependencies are unresolved",
352
+ "category": "gate"
353
+ },
354
+ {
355
+ "id": "scope-create-gate",
356
+ "label": "Scope Creation Gate",
357
+ "timing": "before",
358
+ "type": "shell",
359
+ "target": ".claude/hooks/scope-create-gate.sh",
360
+ "blocking": false,
361
+ "description": "Validates new scope structure before creation",
362
+ "category": "gate"
363
+ },
364
+ {
365
+ "id": "scope-transition",
366
+ "label": "Scope File Mover",
367
+ "timing": "before",
368
+ "type": "shell",
369
+ "target": ".claude/hooks/scope-transition.sh",
370
+ "blocking": false,
371
+ "description": "Moves scope files between directories and updates frontmatter",
372
+ "category": "lifecycle"
373
+ },
374
+ {
375
+ "id": "lifecycle-gate",
376
+ "label": "Git Lifecycle Gate",
377
+ "timing": "before",
378
+ "type": "shell",
379
+ "target": ".claude/hooks/scope-lifecycle-gate.sh",
380
+ "blocking": false,
381
+ "description": "Intercepts git push/commit and triggers batch transitions",
382
+ "category": "lifecycle"
383
+ },
384
+ {
385
+ "id": "orbital-scope-update",
386
+ "label": "Dashboard Sync",
387
+ "timing": "after",
388
+ "type": "shell",
389
+ "target": ".claude/hooks/orbital-scope-update.sh",
390
+ "blocking": false,
391
+ "description": "Pushes status updates to the Orbital Command dashboard",
392
+ "category": "observer"
393
+ },
394
+ {
395
+ "id": "scope-commit-logger",
396
+ "label": "Commit Logger",
397
+ "timing": "after",
398
+ "type": "shell",
399
+ "target": ".claude/hooks/scope-commit-logger.sh",
400
+ "blocking": false,
401
+ "description": "Logs git commits that mention scope IDs",
402
+ "category": "observer"
403
+ },
404
+ {
405
+ "id": "block-workarounds",
406
+ "label": "Block Workarounds",
407
+ "timing": "before",
408
+ "type": "shell",
409
+ "target": ".claude/hooks/block-workarounds.sh",
410
+ "blocking": true,
411
+ "description": "Blocks --no-verify and direct push to main patterns",
412
+ "category": "guard"
413
+ },
414
+ {
415
+ "id": "scope-gate",
416
+ "label": "Scope Document Gate",
417
+ "timing": "after",
418
+ "type": "shell",
419
+ "target": ".claude/hooks/scope-gate.sh",
420
+ "blocking": false,
421
+ "description": "Triggers scope document creation after plan approval",
422
+ "category": "gate"
423
+ },
424
+ {
425
+ "id": "scope-lifecycle-gate",
426
+ "label": "Scope Lifecycle Gate",
427
+ "timing": "before",
428
+ "type": "shell",
429
+ "target": ".claude/hooks/scope-lifecycle-gate.sh",
430
+ "blocking": false,
431
+ "description": "Records session UUIDs on scopes before git operations",
432
+ "category": "gate"
433
+ },
434
+ {
435
+ "id": "scope-file-sync",
436
+ "label": "Scope File Sync",
437
+ "timing": "before",
438
+ "type": "shell",
439
+ "target": ".claude/hooks/scope-file-sync.sh",
440
+ "blocking": false,
441
+ "description": "Flags out-of-scope files before git commits",
442
+ "category": "gate"
443
+ },
444
+ {
445
+ "id": "init-session",
446
+ "label": "Session Init",
447
+ "timing": "after",
448
+ "type": "shell",
449
+ "target": ".claude/hooks/init-session.sh",
450
+ "blocking": false,
451
+ "description": "Caches session ID for parallel-safe lookup at session start",
452
+ "category": "lifecycle"
453
+ },
454
+ {
455
+ "id": "end-session",
456
+ "label": "Session End",
457
+ "timing": "after",
458
+ "type": "shell",
459
+ "target": ".claude/hooks/end-session.sh",
460
+ "blocking": false,
461
+ "description": "Emits SESSION_END event when Claude session exits",
462
+ "category": "lifecycle"
463
+ },
464
+ {
465
+ "id": "scope-create-cleanup",
466
+ "label": "Scope Create Cleanup",
467
+ "timing": "after",
468
+ "type": "shell",
469
+ "target": ".claude/hooks/scope-create-cleanup.sh",
470
+ "blocking": false,
471
+ "description": "Removes scope-create session marker after scope document written",
472
+ "category": "lifecycle"
473
+ },
474
+ {
475
+ "id": "get-session-id",
476
+ "label": "Get Session ID",
477
+ "timing": "before",
478
+ "type": "shell",
479
+ "target": ".claude/hooks/get-session-id.sh",
480
+ "blocking": false,
481
+ "description": "Reads cached session UUID from process tree",
482
+ "category": "lifecycle"
483
+ },
484
+ {
485
+ "id": "orbital-emit",
486
+ "label": "Orbital Event Emitter",
487
+ "timing": "after",
488
+ "type": "shell",
489
+ "target": ".claude/hooks/orbital-emit.sh",
490
+ "blocking": false,
491
+ "description": "Emits events to Orbital dashboard via file-based bus",
492
+ "category": "lifecycle"
493
+ },
494
+ {
495
+ "id": "scope-helpers",
496
+ "label": "Scope Helpers",
497
+ "timing": "before",
498
+ "type": "shell",
499
+ "target": ".claude/hooks/scope-helpers.sh",
500
+ "blocking": false,
501
+ "description": "Shared utility functions for scope lifecycle hooks",
502
+ "category": "lifecycle"
503
+ },
504
+ {
505
+ "id": "decision-capture",
506
+ "label": "Decision Capture",
507
+ "timing": "after",
508
+ "type": "shell",
509
+ "target": ".claude/hooks/decision-capture.sh",
510
+ "blocking": false,
511
+ "description": "Nudges user to log decisions after asking questions",
512
+ "category": "observer"
513
+ },
514
+ {
515
+ "id": "exploration-logger",
516
+ "label": "Exploration Logger",
517
+ "timing": "after",
518
+ "type": "shell",
519
+ "target": ".claude/hooks/exploration-logger.sh",
520
+ "blocking": false,
521
+ "description": "Tracks search operations and nudges to log findings",
522
+ "category": "observer"
523
+ },
524
+ {
525
+ "id": "files-changed-summary",
526
+ "label": "Files Changed Summary",
527
+ "timing": "before",
528
+ "type": "shell",
529
+ "target": ".claude/hooks/files-changed-summary.sh",
530
+ "blocking": false,
531
+ "description": "Shows planned vs actual files changed before scope completion",
532
+ "category": "observer"
533
+ },
534
+ {
535
+ "id": "phase-verify-reminder",
536
+ "label": "Phase Verify Reminder",
537
+ "timing": "before",
538
+ "type": "shell",
539
+ "target": ".claude/hooks/phase-verify-reminder.sh",
540
+ "blocking": false,
541
+ "description": "Reminds to verify before marking a phase as done",
542
+ "category": "observer"
543
+ },
544
+ {
545
+ "id": "scope-create-tracker",
546
+ "label": "Scope Create Tracker",
547
+ "timing": "after",
548
+ "type": "shell",
549
+ "target": ".claude/hooks/scope-create-tracker.sh",
550
+ "blocking": false,
551
+ "description": "Tracks when scope create skill is invoked in a session",
552
+ "category": "observer"
553
+ },
554
+ {
555
+ "id": "orbital-report-gates",
556
+ "label": "Report Gates",
557
+ "timing": "after",
558
+ "type": "shell",
559
+ "target": ".claude/hooks/orbital-report-gates.sh",
560
+ "blocking": false,
561
+ "description": "Reports quality gate results to Orbital dashboard",
562
+ "category": "observer"
563
+ },
564
+ {
565
+ "id": "orbital-report-deploy",
566
+ "label": "Report Deploy",
567
+ "timing": "after",
568
+ "type": "shell",
569
+ "target": ".claude/hooks/orbital-report-deploy.sh",
570
+ "blocking": false,
571
+ "description": "Reports deployment events to Orbital dashboard",
572
+ "category": "observer"
573
+ },
574
+ {
575
+ "id": "orbital-report-violation",
576
+ "label": "Report Violation",
577
+ "timing": "after",
578
+ "type": "shell",
579
+ "target": ".claude/hooks/orbital-report-violation.sh",
580
+ "blocking": false,
581
+ "description": "Emits enforcement violation events to Orbital dashboard",
582
+ "category": "observer"
583
+ },
584
+ {
585
+ "id": "agent-trigger",
586
+ "label": "Agent Trigger",
587
+ "timing": "before",
588
+ "type": "shell",
589
+ "target": ".claude/hooks/agent-trigger.sh",
590
+ "blocking": false,
591
+ "description": "Auto-invokes agent review when editing sensitive files",
592
+ "category": "observer"
593
+ },
594
+ {
595
+ "id": "time-tracker",
596
+ "label": "Time Tracker",
597
+ "timing": "after",
598
+ "type": "shell",
599
+ "target": ".claude/hooks/time-tracker.sh",
600
+ "blocking": false,
601
+ "description": "Emits scope status transition events for time tracking",
602
+ "category": "observer"
603
+ },
604
+ {
605
+ "id": "block-commit-implementing",
606
+ "label": "Block Commit (Implementing)",
607
+ "timing": "before",
608
+ "type": "shell",
609
+ "target": ".claude/hooks/block-push.sh",
610
+ "blocking": true,
611
+ "description": "Blocks git commit/add during implementing sessions",
612
+ "category": "guard"
613
+ }
614
+ ],
615
+ "groups": [
616
+ { "id": "planning", "label": "Planning", "order": 0 },
617
+ { "id": "development", "label": "Development", "order": 1 },
618
+ { "id": "deploy-dev", "label": "Dev", "order": 2 },
619
+ { "id": "deploy-staging", "label": "Staging", "order": 3 },
620
+ { "id": "deploy-prod", "label": "Production", "order": 4 }
621
+ ],
622
+ "eventInference": [
623
+ {
624
+ "eventType": "SCOPE_STATUS_CHANGED",
625
+ "targetStatus": "",
626
+ "dataField": "to",
627
+ "forwardOnly": true
628
+ },
629
+ {
630
+ "eventType": "AGENT_STARTED",
631
+ "targetStatus": "implementing",
632
+ "forwardOnly": true
633
+ },
634
+ {
635
+ "eventType": "AGENT_STARTED",
636
+ "targetStatus": "review",
637
+ "conditions": { "mode": "review" },
638
+ "forwardOnly": true
639
+ },
640
+ {
641
+ "eventType": "AGENT_COMPLETED",
642
+ "targetStatus": "implementing",
643
+ "forwardOnly": true
644
+ },
645
+ {
646
+ "eventType": "AGENT_COMPLETED",
647
+ "targetStatus": "",
648
+ "conditions": {
649
+ "outcome": ["success", "failure", "committed"],
650
+ "dispatchResolution": true
651
+ },
652
+ "forwardOnly": false
653
+ },
654
+ {
655
+ "eventType": "AGENT_CONSENSUS",
656
+ "targetStatus": "implementing",
657
+ "forwardOnly": true
658
+ },
659
+ {
660
+ "eventType": "GATE_STARTED",
661
+ "targetStatus": "review",
662
+ "forwardOnly": true
663
+ },
664
+ {
665
+ "eventType": "GATE_PASSED",
666
+ "targetStatus": "review",
667
+ "forwardOnly": true
668
+ },
669
+ {
670
+ "eventType": "GATE_FAILED",
671
+ "targetStatus": "review",
672
+ "forwardOnly": true
673
+ },
674
+ {
675
+ "eventType": "ALL_GATES_PASSED",
676
+ "targetStatus": "review",
677
+ "forwardOnly": true
678
+ },
679
+ {
680
+ "eventType": "PR_CREATED",
681
+ "targetStatus": "review",
682
+ "forwardOnly": true
683
+ },
684
+ {
685
+ "eventType": "PR_MERGED",
686
+ "targetStatus": "review",
687
+ "forwardOnly": true
688
+ },
689
+ {
690
+ "eventType": "DEPLOY_STARTED",
691
+ "targetStatus": "",
692
+ "dataField": "environment",
693
+ "dataMap": { "production": "production", "_default": "staging" },
694
+ "forwardOnly": true
695
+ },
696
+ {
697
+ "eventType": "DEPLOY_HEALTHY",
698
+ "targetStatus": "",
699
+ "dataField": "environment",
700
+ "dataMap": { "production": "production", "_default": "staging" },
701
+ "forwardOnly": true
702
+ },
703
+ {
704
+ "eventType": "SCOPE_COMPLETED",
705
+ "targetStatus": "completed",
706
+ "forwardOnly": true
707
+ }
708
+ ],
709
+ "allowedCommandPrefixes": ["/scope-", "/git-", "/test-", "/session-"],
710
+ "terminalStatuses": ["completed", "dev", "staging", "production"],
711
+ "commitBranchPatterns": "^(dev|feat/|fix/|scope/|chore/)"
712
+ }