@mrpatronz/nexusflow 2.11.0 → 2.12.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 (194) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +151 -12
  3. package/dist/analyzers/detect-deps.js +1 -1
  4. package/dist/analyzers/detect-deps.js.map +1 -1
  5. package/dist/commands/commit.d.ts.map +1 -1
  6. package/dist/commands/commit.js +15 -0
  7. package/dist/commands/commit.js.map +1 -1
  8. package/dist/commands/create.d.ts +10 -1
  9. package/dist/commands/create.d.ts.map +1 -1
  10. package/dist/commands/create.js +44 -23
  11. package/dist/commands/create.js.map +1 -1
  12. package/dist/commands/finish.d.ts.map +1 -1
  13. package/dist/commands/finish.js +15 -0
  14. package/dist/commands/finish.js.map +1 -1
  15. package/dist/commands/flow.d.ts +13 -0
  16. package/dist/commands/flow.d.ts.map +1 -0
  17. package/dist/commands/flow.js +91 -0
  18. package/dist/commands/flow.js.map +1 -0
  19. package/dist/commands/skill.d.ts +28 -0
  20. package/dist/commands/skill.d.ts.map +1 -0
  21. package/dist/commands/skill.js +250 -0
  22. package/dist/commands/skill.js.map +1 -0
  23. package/dist/commands/status.d.ts.map +1 -1
  24. package/dist/commands/status.js +14 -0
  25. package/dist/commands/status.js.map +1 -1
  26. package/dist/commands/tag.d.ts +13 -0
  27. package/dist/commands/tag.d.ts.map +1 -0
  28. package/dist/commands/tag.js +179 -0
  29. package/dist/commands/tag.js.map +1 -0
  30. package/dist/commands/verify.d.ts +16 -0
  31. package/dist/commands/verify.d.ts.map +1 -0
  32. package/dist/commands/verify.js +91 -0
  33. package/dist/commands/verify.js.map +1 -0
  34. package/dist/core/adapters/local-storage.d.ts.map +1 -1
  35. package/dist/core/adapters/local-storage.js +2 -2
  36. package/dist/core/adapters/local-storage.js.map +1 -1
  37. package/dist/core/commit.d.ts +2 -0
  38. package/dist/core/commit.d.ts.map +1 -1
  39. package/dist/core/commit.js +15 -0
  40. package/dist/core/commit.js.map +1 -1
  41. package/dist/core/domain-catalog.d.ts +9 -0
  42. package/dist/core/domain-catalog.d.ts.map +1 -0
  43. package/dist/core/domain-catalog.js +47 -0
  44. package/dist/core/domain-catalog.js.map +1 -0
  45. package/dist/core/domain-packs.d.ts +81 -0
  46. package/dist/core/domain-packs.d.ts.map +1 -0
  47. package/dist/core/domain-packs.js +443 -0
  48. package/dist/core/domain-packs.js.map +1 -0
  49. package/dist/core/generation-lock.d.ts.map +1 -1
  50. package/dist/core/generation-lock.js +1 -3
  51. package/dist/core/generation-lock.js.map +1 -1
  52. package/dist/core/lifecycle.d.ts +28 -0
  53. package/dist/core/lifecycle.d.ts.map +1 -0
  54. package/dist/core/lifecycle.js +411 -0
  55. package/dist/core/lifecycle.js.map +1 -0
  56. package/dist/core/verify.d.ts +39 -0
  57. package/dist/core/verify.d.ts.map +1 -0
  58. package/dist/core/verify.js +397 -0
  59. package/dist/core/verify.js.map +1 -0
  60. package/dist/core/work-guidance.d.ts +201 -0
  61. package/dist/core/work-guidance.d.ts.map +1 -0
  62. package/dist/core/work-guidance.js +225 -0
  63. package/dist/core/work-guidance.js.map +1 -0
  64. package/dist/core/workspace-state.d.ts +24 -3
  65. package/dist/core/workspace-state.d.ts.map +1 -1
  66. package/dist/core/workspace-state.js +93 -31
  67. package/dist/core/workspace-state.js.map +1 -1
  68. package/dist/core/workspace.d.ts.map +1 -1
  69. package/dist/core/workspace.js +7 -0
  70. package/dist/core/workspace.js.map +1 -1
  71. package/dist/generators/base.d.ts.map +1 -1
  72. package/dist/generators/base.js +38 -4
  73. package/dist/generators/base.js.map +1 -1
  74. package/dist/generators/index.d.ts.map +1 -1
  75. package/dist/generators/index.js +4 -0
  76. package/dist/generators/index.js.map +1 -1
  77. package/dist/generators/plan-generator.d.ts.map +1 -1
  78. package/dist/generators/plan-generator.js +6 -1
  79. package/dist/generators/plan-generator.js.map +1 -1
  80. package/dist/generators/skills-generator.d.ts.map +1 -1
  81. package/dist/generators/skills-generator.js +36 -3
  82. package/dist/generators/skills-generator.js.map +1 -1
  83. package/dist/gui/assets/AgentsPage-GCFiyNSm.js +3 -0
  84. package/dist/gui/assets/DashboardPage-51JHl4Hg.js +1 -0
  85. package/dist/gui/assets/{GettingStartedPage-1MOTng3B.js → GettingStartedPage-DH-zXYgU.js} +1 -1
  86. package/dist/gui/assets/ProjectsPage-DUv2fhI8.js +1 -0
  87. package/dist/gui/assets/ScaffoldRepoInline-Asao9IqG.js +1 -0
  88. package/dist/gui/assets/SettingsPage--pnZKpmm.js +1 -0
  89. package/dist/gui/assets/SkillsPage-BPq8arO5.js +7 -0
  90. package/dist/gui/assets/StartWorkPage-CypGEQZ0.js +1 -0
  91. package/dist/gui/assets/{StrategiesPage-CdCbbIu-.js → StrategiesPage-BHAzXMnc.js} +2 -2
  92. package/dist/gui/assets/WorkroomsPage-BYC8c-rP.js +4 -0
  93. package/dist/gui/assets/WorkspacesPage-DRASo1aL.js +13 -0
  94. package/dist/gui/assets/{alert-dialog-u7qgb9Hq.js → alert-dialog-BD3wT0w3.js} +1 -1
  95. package/dist/gui/assets/badge-DTBzXOWn.js +1 -0
  96. package/dist/gui/assets/index-er-mkc2S.css +2 -0
  97. package/dist/gui/assets/index-jcGHcXQ1.js +57 -0
  98. package/dist/gui/assets/square-check-big-Bj8Rf_dH.js +1 -0
  99. package/dist/gui/assets/tabs-DfbdubLX.js +1 -0
  100. package/dist/gui/assets/{useAriaLabelledBy-C4zV-1Ra.js → useAriaLabelledBy-BmJErI5a.js} +1 -1
  101. package/dist/gui/assets/vsc-Dn-smJni.js +1 -0
  102. package/dist/gui/index.html +3 -5
  103. package/dist/http/work-guidance-routes.d.ts +4 -0
  104. package/dist/http/work-guidance-routes.d.ts.map +1 -0
  105. package/dist/http/work-guidance-routes.js +44 -0
  106. package/dist/http/work-guidance-routes.js.map +1 -0
  107. package/dist/index.js +169 -1
  108. package/dist/index.js.map +1 -1
  109. package/dist/mcp/tools.d.ts.map +1 -1
  110. package/dist/mcp/tools.js +183 -0
  111. package/dist/mcp/tools.js.map +1 -1
  112. package/dist/resources/contracts.d.ts.map +1 -1
  113. package/dist/resources/contracts.js +2 -1
  114. package/dist/resources/contracts.js.map +1 -1
  115. package/dist/resources/fs-safety.d.ts.map +1 -1
  116. package/dist/resources/fs-safety.js +2 -1
  117. package/dist/resources/fs-safety.js.map +1 -1
  118. package/dist/resources/materializer.d.ts +3 -0
  119. package/dist/resources/materializer.d.ts.map +1 -1
  120. package/dist/resources/materializer.js +45 -19
  121. package/dist/resources/materializer.js.map +1 -1
  122. package/dist/server.d.ts.map +1 -1
  123. package/dist/server.js +327 -4
  124. package/dist/server.js.map +1 -1
  125. package/dist/static-resources/skills/contextspace-verify-release/SKILL.md +51 -0
  126. package/dist/static-resources/skills/contextspace-verify-release/references/evidence.md +21 -0
  127. package/dist/static-resources/skills/nexusflow-dev/SKILL.md +49 -0
  128. package/dist/static-resources/skills/nexusflow-dev/references/cli-conventions.md +15 -0
  129. package/dist/static-resources/skills/nexusflow-dev/references/verification-checklist.md +28 -0
  130. package/dist/static-resources/skills/nexusflow-lifecycle/SKILL.md +62 -0
  131. package/dist/static-resources/skills/nexusflow-lifecycle/references/epic-deliverables.md +22 -0
  132. package/dist/static-resources/skills/nexusflow-lifecycle/references/flow-selection-matrix.md +21 -0
  133. package/dist/static-resources/skills/nexusflow-lifecycle/references/stage-outcomes.md +23 -0
  134. package/dist/static-resources/workflows/epic-multi-slice.md +21 -0
  135. package/dist/static-resources/workflows/plan-implement-review.md +17 -6
  136. package/dist/static-resources/workflows/research-verify.md +15 -4
  137. package/dist/static-resources/workflows/solo-developer.md +11 -2
  138. package/dist/test-setup.d.ts +2 -0
  139. package/dist/test-setup.d.ts.map +1 -0
  140. package/dist/test-setup.js +8 -0
  141. package/dist/test-setup.js.map +1 -0
  142. package/dist/types.d.ts +175 -0
  143. package/dist/types.d.ts.map +1 -1
  144. package/dist/utils/resolve-workspace.d.ts.map +1 -1
  145. package/dist/utils/resolve-workspace.js +15 -8
  146. package/dist/utils/resolve-workspace.js.map +1 -1
  147. package/dist/utils/skills-catalog.d.ts +13 -9
  148. package/dist/utils/skills-catalog.d.ts.map +1 -1
  149. package/dist/utils/skills-catalog.js +241 -341
  150. package/dist/utils/skills-catalog.js.map +1 -1
  151. package/dist/utils/workflow-advisor.d.ts +1 -1
  152. package/dist/utils/workflow-advisor.d.ts.map +1 -1
  153. package/dist/utils/workflow-advisor.js +16 -4
  154. package/dist/utils/workflow-advisor.js.map +1 -1
  155. package/dist/utils/workflows.d.ts.map +1 -1
  156. package/dist/utils/workflows.js +5 -2
  157. package/dist/utils/workflows.js.map +1 -1
  158. package/dist/workrooms/contracts.d.ts +3 -3
  159. package/dist/workrooms/local-resources.d.ts +4 -1
  160. package/dist/workrooms/local-resources.d.ts.map +1 -1
  161. package/dist/workrooms/manager.d.ts +5 -2
  162. package/dist/workrooms/manager.d.ts.map +1 -1
  163. package/dist/workrooms/store.d.ts +2 -2
  164. package/package.json +3 -2
  165. package/resources/skills/contextspace-verify-release/SKILL.md +51 -0
  166. package/resources/skills/contextspace-verify-release/references/evidence.md +21 -0
  167. package/resources/skills/nexusflow-dev/SKILL.md +49 -0
  168. package/resources/skills/nexusflow-dev/references/cli-conventions.md +15 -0
  169. package/resources/skills/nexusflow-dev/references/verification-checklist.md +28 -0
  170. package/resources/skills/nexusflow-lifecycle/SKILL.md +62 -0
  171. package/resources/skills/nexusflow-lifecycle/references/epic-deliverables.md +22 -0
  172. package/resources/skills/nexusflow-lifecycle/references/flow-selection-matrix.md +21 -0
  173. package/resources/skills/nexusflow-lifecycle/references/stage-outcomes.md +23 -0
  174. package/resources/workflows/epic-multi-slice.md +21 -0
  175. package/resources/workflows/plan-implement-review.md +17 -6
  176. package/resources/workflows/research-verify.md +15 -4
  177. package/resources/workflows/solo-developer.md +11 -2
  178. package/dist/gui/assets/AgentsPage-DbivhmK0.js +0 -3
  179. package/dist/gui/assets/DashboardPage-D50Qrm3e.js +0 -1
  180. package/dist/gui/assets/NullStore-tdPen1kp.js +0 -1
  181. package/dist/gui/assets/ProjectsPage-srKgf7VN.js +0 -1
  182. package/dist/gui/assets/ScaffoldRepoInline-CP0yn5mw.js +0 -1
  183. package/dist/gui/assets/SettingsPage-DWmrLV8o.js +0 -1
  184. package/dist/gui/assets/SkillsPage-CKjTXdrd.js +0 -6
  185. package/dist/gui/assets/StartWorkPage-BCUnJ9k8.js +0 -1
  186. package/dist/gui/assets/WorkroomsPage-BcT-mGtT.js +0 -4
  187. package/dist/gui/assets/WorkspacesPage-CYFCm-7_.js +0 -2
  188. package/dist/gui/assets/badge-DwXvB44H.js +0 -1
  189. package/dist/gui/assets/chunk-BV7QT456-DfUBKG-z.js +0 -3
  190. package/dist/gui/assets/index-3tD_IeyQ.js +0 -55
  191. package/dist/gui/assets/index-CK5YRfPV.css +0 -2
  192. package/dist/gui/assets/square-check-big-BSIiYXPI.js +0 -1
  193. package/dist/gui/assets/tabs-BrHKp5bD.js +0 -1
  194. package/dist/gui/assets/vsc-D80c4gBT.js +0 -1
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2026 MrPatronHogia
3
+ Copyright (c) 2026 Anton Patron
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -18,8 +18,13 @@ ContextSpace combines multiple Git repositories into a single feature workspace
18
18
 
19
19
  - **Multi-repo workspaces** — group any set of local Git repos in isolated worktrees or in-place source repositories
20
20
  - **Project registry** — save named, persistent repo groups in `~/.contextspace/projects.json` and reuse them from the CLI or API
21
+ - **Dynamic lifecycle flow selection** — choose tailored development flow presets (`quick` for single-step bug fixes, `feature` for standard feature branches, and `epic` for multi-milestone initiatives) with milestone dependency gating and live fleet tracking
21
22
  - **The full feature loop** — `create` opens a workspace, `finish` closes it: commit + push every repo, open PRs (or print compare links), promote learnings, and optionally clean up
22
23
  - **Knowledge that accumulates durably** — titled, scoped decisions and gotchas are auto-committed to the workspace artifact repository, then reusable entries can be promoted into per-repo memory
24
+ - **Mechanical verification gates** — sequential test runners (`ctxspace verify`) enforce clean git commits, test-suite passing criteria, and cryptographic proof anchoring before advancing lifecycle milestones or completing features
25
+ - **Generic enterprise domain packs & categories** — model enterprise taxonomies through Root Organization Conventions (commit patterns, PR templates, compliance rules), Subsystem Verticals (domain-specific rules and verification gates), and Horizontal Traits (cross-cutting architectural invariants), persisted safely in `domain-catalog.json` with concurrency locks and full GUI administration
26
+ - **Open agentskills.io standard alignment** — portable agent skills deploy canonically to `.agents/skills/` with YAML frontmatter, execution playbooks, and auxiliary runbooks/scripts; streamlined projections for Claude Code (`.claude/skills/`) and native Codex custom agent personas (`.codex/agents/*.toml`)
27
+ - **Start Work GUI improvements** — launch workspaces from the GUI with instant skill selection, in-page tag and category creation, and visual flow pipeline configuration
23
28
  - **Provenance-checked AI context** — `contextspace.lock` records repo fingerprints and generated-view hashes; `ctxspace refresh --check` and `doctor` expose stale or modified context loudly
24
29
  - **Single-source AI context generation** — `AGENTS.md` is canonical; stamped Claude, Copilot, Cursor, and skill views are generated artifacts
25
30
  - **Drive it from your assistant** — an MCP server exposes the whole loop (status, diff, commit, sync, refresh, doctor, knowledge, finish) so your AI can run it without leaving the session
@@ -134,7 +139,7 @@ The `create` wizard walks you through:
134
139
 
135
140
  ## šŸ“š Projects
136
141
 
137
- A project is a named, persistent group of source repositories stored centrally in `~/.contextspace/projects.json` (with automatic fallback to `~/.nexusflow/projects.json`). Project ids are slugified from the name, so `Hogia Billing` becomes `hogia-billing`. Use either the `project` command group or its `proj` alias:
142
+ A project is a named, persistent group of source repositories stored centrally in `~/.contextspace/projects.json` (with automatic fallback to `~/.nexusflow/projects.json`). Project ids are slugified from the name, so `Acme Billing` becomes `acme-billing`. Use either the `project` command group or its `proj` alias:
138
143
 
139
144
  | Command | Description |
140
145
  |:---|:---|
@@ -167,14 +172,13 @@ In isolated worktree mode:
167
172
  ā”œā”€ā”€ CLAUDE.md # Context for Claude Code
168
173
  ā”œā”€ā”€ AGENTS.md # Canonical context for Antigravity, Codex & agents
169
174
  ā”œā”€ā”€ .agents/
170
- │ └── skills/ # Skills for Google Antigravity (SKILL.md + assets)
175
+ │ └── skills/ # Canonical skills for Antigravity, Codex, Cursor, Copilot (SKILL.md + assets)
171
176
  ā”œā”€ā”€ .claude/
172
177
  │ └── skills/ # Skills for Claude Code (SKILL.md + assets)
173
178
  ā”œā”€ā”€ .codex/
174
- │ └── skills/ # Skills for OpenAI Codex (SKILL.md + assets)
179
+ │ └── agents/ # Custom agent personas for OpenAI Codex (.toml)
175
180
  ā”œā”€ā”€ .github/
176
- │ ā”œā”€ā”€ copilot-instructions.md # Context for GitHub Copilot
177
- │ └── instructions/ # Scoped skill instructions for Copilot
181
+ │ └── copilot-instructions.md # Context for GitHub Copilot
178
182
  ā”œā”€ā”€ .cursor/
179
183
  │ └── rules/ # Context & rules for Cursor (.mdc)
180
184
  ā”œā”€ā”€ contextspace.json # Feature config (branch, repos, etc.)
@@ -186,6 +190,12 @@ In isolated worktree mode:
186
190
 
187
191
  In-place workspaces keep the manifest, skills, and generated AI context files in the workspace directory while the code stays in the source repositories.
188
192
 
193
+ ContextSpace adheres strictly to the open **[agentskills.io](https://agentskills.io)** standard:
194
+ - `.agents/skills/` is the canonical open directory for portable agent skills (`SKILL.md` frontmatter + execution playbook, `references/`, `scripts/`).
195
+ - `.claude/skills/` is maintained as a dedicated projection exclusively for Claude Code.
196
+ - `.codex/agents/*.toml` houses native custom agent personas for OpenAI Codex.
197
+ - Redundant mirror folders (`.codex/skills/`, `.cursor/skills/`) are retired in favor of universal discovery via `.agents/skills/`.
198
+
189
199
  Open this folder in your editor → your AI assistant picks up the context and skills → it understands *all* your repos.
190
200
 
191
201
  ## šŸ–„ļø Commands
@@ -193,6 +203,7 @@ Open this folder in your editor → your AI assistant picks up the context and s
193
203
  | Command | Description |
194
204
  |:---|:---|
195
205
  | `ctxspace create` | Interactive wizard to create a new worktree or in-place workspace |
206
+ | `ctxspace quick` | Fast-track instant workspace creation tailored for quick bug fixes |
196
207
  | `ctxspace list` | List all existing workspaces, tagging in-place ones with `[in-place]` (alias: `ls`) |
197
208
  | `ctxspace open` | Re-open a workspace in your editor |
198
209
  | `ctxspace init` | Configure ContextSpace settings |
@@ -202,6 +213,8 @@ Open this folder in your editor → your AI assistant picks up the context and s
202
213
  | `ctxspace start` | Start all services in a workspace (auto-detected) |
203
214
  | `ctxspace stop` | Stop all running services |
204
215
  | `ctxspace status` | Show live repo SHA/branch/dirty/push state, generated-context freshness, and service status |
216
+ | `ctxspace flow` | Visualize active lifecycle steps, milestone gates, and multi-branch sister fleet (`--step`, `--action`, `--assignment`) |
217
+ | `ctxspace verify` | Execute mechanical verification gates and record cryptographic proof in workspace state (`--repo`, `--tag`, `--filter`, `--timeout`, `--allow-dirty`) |
205
218
  | `ctxspace progress` | Derive implementation progress from live branch, push, and available PR state |
206
219
  | `ctxspace logs` | Tail aggregated logs from all services |
207
220
  | `ctxspace ui` | Start the dashboard server — the backend the desktop app embeds (`--port`, `--open`, `--strict-port`) |
@@ -212,6 +225,8 @@ Open this folder in your editor → your AI assistant picks up the context and s
212
225
  | `ctxspace sync` | Rebase worktree-mode repositories and reconcile generated views; in-place workspaces skip repo mutation but still reconcile stale context |
213
226
  | `ctxspace finish` | Close out a feature: commit & push all repos, open PRs / print compare links, promote learnings, optionally remove the workspace (`-m`, `--no-pr`, `--no-knowledge`, `--cleanup`, `--dry-run`) |
214
227
  | `ctxspace review` | Start an iterative reviewer-implementer agent loop with automated verification harnesses |
228
+ | `ctxspace tag` | Manage enterprise categories, vertical subsystems, and cross-cutting traits (`list`, `add`, `remove`, `show`) (alias: `category`) |
229
+ | `ctxspace skill` | Manage portable agent skills from CLI (`list`, `create`, `show`, `delete`) |
215
230
  | `ctxspace knowledge` | Capture titled decisions/gotchas/assumptions/questions with optional `--scope` and `--evidence`; `show`, `promote` into per-repo base knowledge |
216
231
  | `ctxspace refresh`| Regenerate plan and AI context files; use `--check` for a non-regenerating CI/pre-commit freshness gate |
217
232
  | `ctxspace remote` | Add, push, or pull the workspace artifact repository remote without touching child repo remotes |
@@ -261,6 +276,71 @@ ContextSpace is built around a single loop:
261
276
  ctxspace finish -m "Ship feature" --cleanup
262
277
  ```
263
278
 
279
+ ## 🌊 Dynamic Lifecycle Flows & Milestone Radar
280
+
281
+ ContextSpace provides dynamic development lifecycles (`flowType`), allowing developers and autonomous agents to right-size milestone pipelines, dependency gating, and multi-branch coordination:
282
+
283
+ | Flow Preset | Best For | Default Pipeline |
284
+ |:---|:---|:---|
285
+ | **`quick`** | Bug fixes, single-repo patches, typo fixes | Reproduce failure → Implement fix → Mechanical verify & commit |
286
+ | **`feature`** | Standard features, enhancements, new APIs | Foundation / Prereqs → Core feature slice → Integration, docs & verify → Finish |
287
+ | **`epic`** | Complex multi-repo initiatives, modular migrations | Architecture & Contracts → Milestone Slices (with dependency graph) → Cross-repo integration → Comprehensive release gate |
288
+
289
+ Select a flow preset during workspace creation (`ctxspace create` or `ctxspace quick`), or choose it directly in the Start Work GUI.
290
+
291
+ ### Inspecting Flow & Advancing Milestones
292
+
293
+ Use `ctxspace flow` to inspect your active milestone pipeline, the current active deliverable, and live status:
294
+
295
+ ```bash
296
+ # View active lifecycle pipeline and sister branch fleet in the terminal
297
+ ctxspace flow
298
+
299
+ # Output structured JSON for automation or scripting
300
+ ctxspace flow --json
301
+
302
+ # Read live AI assignment, source documents, and stage guidance
303
+ ctxspace flow --assignment
304
+ ctxspace flow --assignment --json
305
+
306
+ # Transition milestones through the state machine (start -> verify -> complete)
307
+ ctxspace flow --step milestone-1 --action start
308
+ ctxspace flow --step milestone-1 --action complete
309
+ ```
310
+
311
+ ### Sister Branch Fleet & Collaborator Radar
312
+
313
+ When coordinating across multiple repositories and developers, `ctxspace flow` surfaces the **Sister Branch Fleet**:
314
+ - **Non-destructive remote inspection**: Safely queries `refs/remotes/origin/*` across all repositories in the workspace without mutating local working trees.
315
+ - **Collision & Desync Detection**: Highlights ahead/behind commit deltas, unpushed local changes, and remote branch tracking state.
316
+ - **Collaborator Visibility**: Reports recent commit authors, commit messages, and relative commit timestamps across repositories so agents and developers avoid stomping on active teammate work.
317
+
318
+ ## 🧪 Mechanical Verification Gates
319
+
320
+ To prevent advancing unverified code, broken builds, or uncommitted modifications, ContextSpace provides automated **Mechanical Verification Gates** via `ctxspace verify`.
321
+
322
+ ```bash
323
+ # Execute verification commands across all repositories
324
+ ctxspace verify
325
+
326
+ # Target a specific repository or test tag
327
+ ctxspace verify --repo my-api
328
+ ctxspace verify --tag backend
329
+
330
+ # Specify a custom verification command or timeout
331
+ ctxspace verify --command "npm test" --timeout 120
332
+
333
+ # Run in CI or pre-commit scripts (exits with code 1 on failure or timeout)
334
+ ctxspace verify --json
335
+ ```
336
+
337
+ ### Verification Invariants & Security
338
+ - **Strict Sequential Execution**: Tests are executed sequentially per repository to prevent resource starvation and test harness interference.
339
+ - **Dangerous Operator Rejection**: Command strings containing shell operators (`&&`, `||`, `;`, `|`, `` ` ``, `$()`) are rejected to eliminate command injection risks and ensure deterministic status reporting.
340
+ - **Cryptographic SHA Anchoring**: Results are pinned to the exact Git commit SHA of each repository.
341
+ - **Dirty Tree Detection (`pass_dirty`)**: If tests pass but uncommitted changes remain in the repository working tree, ContextSpace reports `pass_dirty` with warnings to commit before finishing, ensuring that verification proof is anchored to immutable Git history.
342
+ - **Durable State Recording**: Test results, timings, commands, and SHA fingerprints are persisted in `.contextspace-state.json`. Subsequent checks or agents can inspect recorded verification evidence without redundant test re-runs.
343
+
264
344
  ## šŸ”Œ MCP Server & Tools
265
345
 
266
346
  `ctxspace mcp setup` registers ContextSpace's MCP server with Claude Desktop, Cursor, and VS Code so your assistant can drive the whole loop without leaving the session. The server exposes:
@@ -355,15 +435,22 @@ Jobs are stored in `~/.contextspace/schedules.json` (fallback: `~/.nexusflow/sch
355
435
 
356
436
  Scheduled runs are **token-efficient by design**: they use the same analysis cache as `ctxspace refresh`, so only repos whose content changed are re-analyzed, and unchanged context files are left byte-identical (no git churn, no invalidated AI prompt caches). The dashboard API exposes the same functionality under `/api/schedules`.
357
437
 
358
- ## 🧩 Resource Library
438
+ ## 🧩 Resource Library & Open AgentSkills Standard
359
439
 
360
- ContextSpace provides separate libraries for portable Agent Skills and Codex-native custom agents. Skills are complete directories; agents are validated native TOML definitions rather than skills disguised as personas.
440
+ ContextSpace provides first-class support for portable Agent Skills and Codex-native custom agents, aligned directly with the open **[agentskills.io](https://agentskills.io)** standard. Skills are complete directories; agents are validated native TOML definitions rather than skills disguised as personas.
361
441
 
362
442
  Skills bundle metadata triggers (for AI autonomous discovery) with full Markdown execution playbooks, auxiliary reference runbooks (`references/`), and automation scripts (`scripts/`).
363
443
 
444
+ ### Start Work GUI: Direct Selection & In-Page Creation
445
+
446
+ Starting work in the Web Dashboard or Desktop App includes streamlined skill and category management:
447
+ - **Direct Skills Selection**: Select specific skills via checkboxes directly on the Start Work page when configuring a feature workspace.
448
+ - **In-Page Tag & Category Creation**: Author and assign new categories, vertical subsystems, or traits on the fly without navigating away to administrative settings.
449
+ - **Inline Playbook Preview**: Inspect skill playbooks and reference markdown directly before assigning them.
450
+
364
451
  ### Category Boxes & Visual Drag-and-Drop
365
452
 
366
- Skills are grouped into clear visual accordion boxes by category. You can drag and drop skill cards between category boxes to re-categorize them, or use the quick menu on touch and mobile devices.
453
+ In the **Skills & Agents** hub, skills are grouped into clear visual accordion boxes by category. You can drag and drop skill cards between category boxes to re-categorize them, or use the quick menu on touch and mobile devices.
367
454
 
368
455
  #### Built-in Category Templates & Skills:
369
456
  - šŸ”€ **Pull Requests & Review**: `pr-review-toolkit`, `pr-description-gen`, `merge-conflict-resolver`
@@ -382,18 +469,60 @@ The Codex Agent Library supports creating, editing, importing, and deleting basi
382
469
 
383
470
  ### Cross-Harness Deployment
384
471
 
385
- When a workspace is refreshed, ContextSpace reconciles enabled resources through `.contextspace/resources.lock.json` (fallback: `.nexusflow/resources.lock.json`). It refuses unmanaged target collisions, removes only unchanged ContextSpace-owned outputs, and reports modified-file conflicts instead of overwriting them.
472
+ When a workspace is refreshed, ContextSpace reconciles enabled resources through `.contextspace/resources.lock.json` (fallback: `.nexusflow/resources.lock.json`). It refuses unmanaged target collisions, removes only unchanged ContextSpace-owned outputs, and reports modified-file conflicts instead of overwriting them. Redundant `.codex/skills/` and `.cursor/skills/` mirror directories are retired in favor of universal discovery under `.agents/skills/`.
386
473
 
387
474
  | Assistant Harness | Deployment Path | Format |
388
475
  |:---|:---|:---|
389
- | **Google Antigravity** | `.agents/skills/<name>/SKILL.md` | YAML frontmatter + Markdown body + `references/` + `scripts/` |
390
- | **Claude Code** | `.claude/skills/<name>/SKILL.md` | YAML frontmatter + Markdown body + `references/` + `scripts/` |
476
+ | **Google Antigravity** | `.agents/skills/<name>/SKILL.md` | Universal `agentskills.io` standard (playbook + `references/` + `scripts/`) |
477
+ | **Claude Code** | `.claude/skills/<name>/SKILL.md` | Compatibility projection for Claude Code |
391
478
  | **OpenAI Codex** | `.agents/skills/<name>/SKILL.md` | Complete portable Agent Skill directory |
392
479
  | **Cursor** | `.agents/skills/<name>/SKILL.md` | Complete portable Agent Skill directory |
393
480
  | **GitHub Copilot** | `.agents/skills/<name>/SKILL.md` | Complete portable Agent Skill directory |
394
481
 
395
482
  Codex custom agents are separate resources and deploy to `.codex/agents/<name>.toml`.
396
483
 
484
+ ## šŸ·ļø Enterprise Categories & Domain Packs
485
+
486
+ Large enterprise codebases suffer from AI context bloat when company-wide standards and domain-specific rules are mixed together. ContextSpace solves this with a generic 3-tier hierarchy:
487
+
488
+ 1. **Root Organization Conventions** (`OrganizationConventions`): Universal company guardrails applied across all repositories in the workspace:
489
+ - Conventional commit message regex patterns (e.g. `^(feat|fix|refactor|test|chore|docs)\([A-Za-z0-9_.-]+\): .+$`).
490
+ - Pull request templates and code-review compliance checklists.
491
+ - Root compliance rules (e.g. GDPR, secrets hygiene, architectural invariants).
492
+ 2. **Subsystem Verticals** (`categoryType: 'vertical'`): Isolated business domain rules (e.g. Invoicing, Billing, Identity) with dedicated verification test gates and microservice associations. Verticals support nested parent/child hierarchies.
493
+ 3. **Horizontal Traits** (`categoryType: 'trait'`): Cross-cutting invariants (e.g. security audits, GDPR data privacy, accessibility, performance thresholds) that apply across any business domain.
494
+
495
+ ### Concurrency & Catalog Persistence
496
+
497
+ Enterprise categories and domain packs are durably persisted in `~/.contextspace/domain-catalog.json` (with automatic fallback to `~/.nexusflow/domain-catalog.json`).
498
+ - **Concurrency Locks**: Multi-process mutex locking (`acquireLock`) ensures CLI processes and running GUI servers never conflict or overwrite concurrent edits.
499
+ - **Atomic Writes**: Persistent JSON updates use atomic write semantics (`atomicWriteJson`) to prevent data corruption.
500
+
501
+ ### CLI Management
502
+
503
+ Manage categories and domain packs with `ctxspace tag` (alias `ctxspace category`):
504
+
505
+ ```bash
506
+ # List active categories, vertical hierarchy, and horizontal traits
507
+ ctxspace tag list
508
+
509
+ # Add a domain pack or category to the current workspace
510
+ ctxspace tag add economy
511
+
512
+ # Inspect rules, verification gates, and microservices for a tag
513
+ ctxspace tag show economy
514
+
515
+ # Remove a domain pack from the workspace
516
+ ctxspace tag remove economy
517
+ ```
518
+
519
+ ### Full GUI Administration
520
+
521
+ The **Skills & Agents** page and the **Start Work** wizard provide complete GUI administration:
522
+ - **Create & Edit**: Define new categories and domain packs with custom labels, descriptions, icons, verification commands, and rule lists.
523
+ - **Hierarchical Nesting**: Assign parent verticals to build clear domain trees.
524
+ - **Reset & Revert**: Revert customizations to factory defaults or delete custom packs with confirmation safety.
525
+
397
526
  ## šŸ‘„ Teamwork Strategy Workflows
398
527
 
399
528
  ContextSpace allows you to predefine orchestration workflows and cooperation rules that govern how multiple AI subagents coordinate when solving complex, multi-repo software engineering tasks.
@@ -492,11 +621,20 @@ ContextSpace/
492
621
  │ │ ā”œā”€ā”€ start.ts # ctxspace start
493
622
  │ │ ā”œā”€ā”€ stop.ts # ctxspace stop
494
623
  │ │ ā”œā”€ā”€ status.ts # ctxspace status
624
+ │ │ ā”œā”€ā”€ flow.ts # ctxspace flow (milestones & fleet radar)
625
+ │ │ ā”œā”€ā”€ verify.ts # ctxspace verify (mechanical test gates)
626
+ │ │ ā”œā”€ā”€ tag.ts # ctxspace tag / category (enterprise domains)
627
+ │ │ ā”œā”€ā”€ skill.ts # ctxspace skill (portable skills)
495
628
  │ │ ā”œā”€ā”€ logs.ts # ctxspace logs
496
629
  │ │ └── ui.ts # ctxspace ui
497
630
  │ ā”œā”€ā”€ core/ # Core workspace logic
498
631
  │ │ ā”œā”€ā”€ constants.ts # Brand, manifest & lockfile constants
499
632
  │ │ ā”œā”€ā”€ config.ts # Config management (~/.contextspace/)
633
+ │ │ ā”œā”€ā”€ domain-catalog.ts # Enterprise catalog persistence & locks
634
+ │ │ ā”œā”€ā”€ domain-packs.ts # Organization conventions, verticals & traits
635
+ │ │ ā”œā”€ā”€ lifecycle.ts # Milestone state machine & fleet radar
636
+ │ │ ā”œā”€ā”€ verify.ts # Sequential verification runner & SHA anchoring
637
+ │ │ ā”œā”€ā”€ work-guidance.ts # Source docs & active AI assignments
500
638
  │ │ ā”œā”€ā”€ scanner.ts # Git repo scanner
501
639
  │ │ ā”œā”€ā”€ worktree.ts # Git worktree operations
502
640
  │ │ └── workspace.ts # Workspace CRUD
@@ -514,7 +652,7 @@ ContextSpace/
514
652
  │ │ ā”œā”€ā”€ codex.ts # Codex AGENTS.md generator
515
653
  │ │ ā”œā”€ā”€ copilot.ts # copilot-instructions.md generator
516
654
  │ │ ā”œā”€ā”€ cursor.ts # contextspace.mdc generator
517
- │ │ └── skills-generator.ts # Cross-harness skill deployment (.agents, .claude, .cursor, .codex)
655
+ │ │ └── skills-generator.ts # Cross-harness skill deployment (.agents, .claude)
518
656
  │ ā”œā”€ā”€ orchestration/ # Service start/stop/log management
519
657
  │ └── utils/ # Helper utilities
520
658
  │ ā”œā”€ā”€ skills-catalog.ts # Skills & Categories catalog manager (~/.contextspace/)
@@ -527,6 +665,7 @@ ContextSpace/
527
665
  │ └── src/
528
666
  │ ā”œā”€ā”€ pages/
529
667
  │ │ ā”œā”€ā”€ WorkspacesPage.tsx # Workspaces & launch targets
668
+ │ │ ā”œā”€ā”€ StartWorkPage.tsx # Interactive creation with skills & tags
530
669
  │ │ ā”œā”€ā”€ SkillsPage.tsx # Skills & Agents categorized drag-and-drop hub
531
670
  │ │ └── StrategiesPage.tsx # Teamwork strategy inspector
532
671
  │ └── App.tsx # Main application routing & layout
@@ -204,7 +204,7 @@ export function findInterRepoDependencies(repoAnalyses, repoNames) {
204
204
  if (a.produces) {
205
205
  for (const product of a.produces) {
206
206
  packageToRepo.set(product.name.toLowerCase(), thisName);
207
- // Also map basename (e.g. Hogia.EmploymentService.Client -> Client)
207
+ // Also map basename (e.g. Acme.EmploymentService.Client -> Client)
208
208
  const base = product.name.split('.').pop() ?? product.name;
209
209
  if (base && base.length > 3) {
210
210
  packageToRepo.set(base.toLowerCase(), thisName);
@@ -1 +1 @@
1
- {"version":3,"file":"detect-deps.js","sourceRoot":"","sources":["../../src/analyzers/detect-deps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"detect-deps.js","sourceRoot":"","sources":["../../src/analyzers/detect-deps.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"commit.d.ts","sourceRoot":"","sources":["../../src/commands/commit.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,UAAU,aAAa;IACrB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAaD;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,IAAI,CAAC,CA6Ef"}
1
+ {"version":3,"file":"commit.d.ts","sourceRoot":"","sources":["../../src/commands/commit.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,UAAU,aAAa;IACrB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAaD;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,IAAI,CAAC,CA4Ff"}
@@ -9,6 +9,7 @@ import { loadConfig } from '../core/config.js';
9
9
  import { listWorkspaces, loadFeatureConfig } from '../core/workspace.js';
10
10
  import { getWorkspaceRepos, getRepoStatus, getDiffSummary, commitAndPush } from '../utils/multi-git.js';
11
11
  import { BRAND_NAME, PRIMARY_MANIFEST_FILE } from '../core/constants.js';
12
+ import { getOrganization } from '../core/domain-packs.js';
12
13
  /**
13
14
  * Renders a porcelain status code with a color matching its state:
14
15
  * green for staged, yellow for unstaged, cyan for untracked.
@@ -39,6 +40,20 @@ export async function commitCommand(message, workspaceArg, options) {
39
40
  console.error(chalk.red('āœ– Failed to load workspace configuration.'));
40
41
  return;
41
42
  }
43
+ if (feature.organizationId) {
44
+ const org = getOrganization(feature.organizationId);
45
+ if (org?.commitMessagePattern) {
46
+ const regex = new RegExp(org.commitMessagePattern);
47
+ if (!regex.test(message)) {
48
+ console.warn(chalk.yellow(`āš ļø Commit message does not match ${org.name} convention:`));
49
+ console.warn(chalk.dim(` Required pattern: ${org.commitMessagePattern}`));
50
+ if (org.commitExample) {
51
+ console.warn(chalk.dim(` Example: ${chalk.green(org.commitExample)}`));
52
+ }
53
+ console.warn(chalk.yellow(` Your message: "${message}"\n`));
54
+ }
55
+ }
56
+ }
42
57
  let repos = await getWorkspaceRepos(workspacePath);
43
58
  if (options?.repo && options.repo.length > 0) {
44
59
  const unknown = options.repo.filter((name) => !repos.some((r) => r.name === name));
@@ -1 +1 @@
1
- {"version":3,"file":"commit.js","sourceRoot":"","sources":["../../src/commands/commit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commit.js","sourceRoot":"","sources":["../../src/commands/commit.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  * The main "create workspace" command — the core NexusFlow workflow.
4
4
  * Mirrors and enhances the user's existing Create-Workspace.ps1 script.
5
5
  */
6
+ import type { WorkspaceMode } from '../types.js';
6
7
  /**
7
8
  * Executes the full "create workspace" flow:
8
9
  * 1. Pick a registered project (or ad-hoc repos)
@@ -14,5 +15,13 @@
14
15
  * 7. Generate AI context files
15
16
  * 8. Optionally open in editor
16
17
  */
17
- export declare function createCommand(): Promise<void>;
18
+ export interface CreateCommandOptions {
19
+ quick?: boolean;
20
+ flow?: 'quick-fix' | 'feature' | 'epic';
21
+ mode?: WorkspaceMode;
22
+ strategy?: string;
23
+ tag?: string[] | string;
24
+ org?: string;
25
+ }
26
+ export declare function createCommand(options?: CreateCommandOptions): Promise<void>;
18
27
  //# sourceMappingURL=create.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAwCH;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAuXnD"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAmCH,OAAO,KAAK,EAAkE,aAAa,EAAE,MAAM,aAAa,CAAC;AAKjH;;;;;;;;;;GAUG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,CAAC;IACxC,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwZrF"}
@@ -26,20 +26,14 @@ import { getAllSkills, saveWorkspaceSkillsConfig } from '../utils/skills-catalog
26
26
  import { suggestWorkflow } from '../utils/workflow-advisor.js';
27
27
  import { getWorkflowTemplates, saveWorkflowTemplate } from '../utils/workflows.js';
28
28
  import { BRAND_NAME, CLI_NAME } from '../core/constants.js';
29
- /**
30
- * Executes the full "create workspace" flow:
31
- * 1. Pick a registered project (or ad-hoc repos)
32
- * 2. Pick a work mode (isolated worktree vs in-place)
33
- * 3. Branch / workspace name
34
- * 4. Feature description
35
- * 5. Assistant selection
36
- * 6. Create the workspace (worktrees only in worktree mode)
37
- * 7. Generate AI context files
38
- * 8. Optionally open in editor
39
- */
40
- export async function createCommand() {
29
+ export async function createCommand(options = {}) {
30
+ if (options.flow && !['quick-fix', 'feature', 'epic'].includes(options.flow)) {
31
+ throw new Error('Flow must be quick-fix, feature, or epic.');
32
+ }
41
33
  console.log(chalk.bold.cyan(`\nšŸš€ ${BRAND_NAME} — Start Work\n`));
42
34
  const config = await loadConfig();
35
+ const isQuick = Boolean(options.quick || options.flow === 'quick-fix');
36
+ const isEpic = options.flow === 'epic';
43
37
  // ── 0. Project selection (when a registry exists) ───────────────────
44
38
  const projects = await loadProjects({ quiet: true });
45
39
  let project = null;
@@ -57,19 +51,19 @@ export async function createCommand() {
57
51
  project = choice ? projects.find((p) => p.id === choice) ?? null : null;
58
52
  }
59
53
  // ── 1. Work mode ─────────────────────────────────────────────────────
60
- const mode = await select({
54
+ const mode = options.mode ?? (isQuick ? 'in-place' : isEpic ? 'worktree' : await select({
61
55
  message: 'How do you want to work?',
62
56
  choices: [
63
57
  {
64
- name: 'In-place — directly in the source repos (no branches, fastest start)',
58
+ name: 'In-place — directly in the source repos (fastest start; ideal for bug fixes and quick tweaks)',
65
59
  value: 'in-place',
66
60
  },
67
61
  {
68
- name: 'Isolated worktrees — a feature branch and worktree per repo',
62
+ name: 'Isolated worktrees — a feature branch and worktree per repo (ideal for isolated features & epics)',
69
63
  value: 'worktree',
70
64
  },
71
65
  ],
72
- });
66
+ }));
73
67
  const inPlace = mode === 'in-place';
74
68
  // ── 2. Identity: feature branch, or a plain name for in-place ───────
75
69
  let branchName = '';
@@ -87,7 +81,7 @@ export async function createCommand() {
87
81
  workspaceId = branchName;
88
82
  }
89
83
  // ── 2.1. Feature description ─────────────────────────────────────────
90
- const description = await promptDescription();
84
+ const description = isQuick ? 'Quick bug fix or tweak' : await promptDescription();
91
85
  // ── 3-4. Repos: from the project, or scanned and picked ad hoc ───────
92
86
  let selectedRepos;
93
87
  if (project) {
@@ -195,10 +189,23 @@ export async function createCommand() {
195
189
  }
196
190
  // ── 5. Detect and select AI assistants ──────────────────────────────
197
191
  const detectedAI = await detectAIAssistants();
198
- const selectedAI = await promptSelectAI(detectedAI);
192
+ const selectedAI = (isQuick && config.defaultAssistant)
193
+ ? [config.defaultAssistant]
194
+ : await promptSelectAI(detectedAI);
199
195
  // ── 5.5. Suggest workflow strategy ───────────────────────────────
200
196
  const templates = await getWorkflowTemplates();
201
- const selectedStrategyId = await promptSelectStrategy(templates);
197
+ let selectedStrategyId = options.strategy;
198
+ if (!selectedStrategyId) {
199
+ if (isQuick) {
200
+ selectedStrategyId = 'solo-developer';
201
+ }
202
+ else if (isEpic) {
203
+ selectedStrategyId = 'epic-multi-slice';
204
+ }
205
+ else {
206
+ selectedStrategyId = await promptSelectStrategy(templates);
207
+ }
208
+ }
202
209
  let teamworkInstructions = '';
203
210
  if (selectedStrategyId === 'auto') {
204
211
  const workflowSpinner = ora('Suggesting teamwork collaboration strategy...').start();
@@ -233,15 +240,24 @@ export async function createCommand() {
233
240
  }
234
241
  }
235
242
  // ── 5.6. Select Agent Skills to deploy ──────────────────────────────
236
- const catalogSkills = await getAllSkills();
237
- const selectedSkills = await promptSelectSkills(catalogSkills);
238
- if (selectedSkills.length > 0) {
239
- console.log(chalk.green(` āœ” Selected ${selectedSkills.length} skill(s) to deploy: ${selectedSkills.join(', ')}`));
243
+ let selectedSkills = [];
244
+ if (!isQuick) {
245
+ const catalogSkills = await getAllSkills();
246
+ selectedSkills = await promptSelectSkills(catalogSkills);
247
+ if (selectedSkills.length > 0) {
248
+ console.log(chalk.green(` āœ” Selected ${selectedSkills.length} skill(s) to deploy: ${selectedSkills.join(', ')}`));
249
+ }
240
250
  }
241
251
  // ── 6. Create workspace ─────────────────────────────────────────────
252
+ const explicitTags = options.tag
253
+ ? (Array.isArray(options.tag) ? options.tag : [options.tag])
254
+ .map((t) => String(t).trim().toLowerCase())
255
+ .filter(Boolean)
256
+ : [];
242
257
  const workspacePath = path.join(config.workspacesDir, workspaceId);
243
258
  const feature = {
244
259
  id: workspaceId,
260
+ flowType: isQuick ? 'quick' : isEpic ? 'epic' : options.flow === 'feature' ? 'feature' : undefined,
245
261
  mode,
246
262
  projectId: project?.id,
247
263
  branchName,
@@ -255,7 +271,12 @@ export async function createCommand() {
255
271
  workspacePath,
256
272
  createdAt: new Date().toISOString(),
257
273
  teamworkInstructions,
274
+ organizationId: options.org || undefined,
275
+ domainPacks: explicitTags.length > 0 ? explicitTags : undefined,
258
276
  };
277
+ if (explicitTags.length > 0) {
278
+ console.log(chalk.green(` āœ” Attached domain tags: ${explicitTags.map((t) => '#' + t).join(', ')}`));
279
+ }
259
280
  const wsSpinner = ora(inPlace ? 'Registering workspace...' : 'Creating workspace with git worktrees...').start();
260
281
  try {
261
282
  await createWorkspace(feature, selectedRepos, (repoName, index, total) => {