@mrpatronz/nexusflow 2.11.0 ā 2.12.1
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.
- package/LICENSE +1 -1
- package/README.md +154 -13
- package/dist/analyzers/detect-deps.js +1 -1
- package/dist/analyzers/detect-deps.js.map +1 -1
- package/dist/commands/commit.d.ts.map +1 -1
- package/dist/commands/commit.js +15 -0
- package/dist/commands/commit.js.map +1 -1
- package/dist/commands/create.d.ts +10 -1
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +44 -23
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/finish.d.ts.map +1 -1
- package/dist/commands/finish.js +15 -0
- package/dist/commands/finish.js.map +1 -1
- package/dist/commands/flow.d.ts +13 -0
- package/dist/commands/flow.d.ts.map +1 -0
- package/dist/commands/flow.js +91 -0
- package/dist/commands/flow.js.map +1 -0
- package/dist/commands/skill.d.ts +28 -0
- package/dist/commands/skill.d.ts.map +1 -0
- package/dist/commands/skill.js +250 -0
- package/dist/commands/skill.js.map +1 -0
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +14 -0
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/tag.d.ts +13 -0
- package/dist/commands/tag.d.ts.map +1 -0
- package/dist/commands/tag.js +179 -0
- package/dist/commands/tag.js.map +1 -0
- package/dist/commands/verify.d.ts +16 -0
- package/dist/commands/verify.d.ts.map +1 -0
- package/dist/commands/verify.js +91 -0
- package/dist/commands/verify.js.map +1 -0
- package/dist/core/adapters/local-storage.d.ts.map +1 -1
- package/dist/core/adapters/local-storage.js +2 -2
- package/dist/core/adapters/local-storage.js.map +1 -1
- package/dist/core/commit.d.ts +2 -0
- package/dist/core/commit.d.ts.map +1 -1
- package/dist/core/commit.js +15 -0
- package/dist/core/commit.js.map +1 -1
- package/dist/core/domain-catalog.d.ts +9 -0
- package/dist/core/domain-catalog.d.ts.map +1 -0
- package/dist/core/domain-catalog.js +47 -0
- package/dist/core/domain-catalog.js.map +1 -0
- package/dist/core/domain-packs.d.ts +81 -0
- package/dist/core/domain-packs.d.ts.map +1 -0
- package/dist/core/domain-packs.js +443 -0
- package/dist/core/domain-packs.js.map +1 -0
- package/dist/core/generation-lock.d.ts +1 -1
- package/dist/core/generation-lock.d.ts.map +1 -1
- package/dist/core/generation-lock.js +18 -11
- package/dist/core/generation-lock.js.map +1 -1
- package/dist/core/lifecycle.d.ts +28 -0
- package/dist/core/lifecycle.d.ts.map +1 -0
- package/dist/core/lifecycle.js +423 -0
- package/dist/core/lifecycle.js.map +1 -0
- package/dist/core/planning-notes.d.ts +11 -0
- package/dist/core/planning-notes.d.ts.map +1 -0
- package/dist/core/planning-notes.js +108 -0
- package/dist/core/planning-notes.js.map +1 -0
- package/dist/core/verify.d.ts +39 -0
- package/dist/core/verify.d.ts.map +1 -0
- package/dist/core/verify.js +397 -0
- package/dist/core/verify.js.map +1 -0
- package/dist/core/work-guidance.d.ts +202 -0
- package/dist/core/work-guidance.d.ts.map +1 -0
- package/dist/core/work-guidance.js +231 -0
- package/dist/core/work-guidance.js.map +1 -0
- package/dist/core/workspace-git.d.ts.map +1 -1
- package/dist/core/workspace-git.js +1 -0
- package/dist/core/workspace-git.js.map +1 -1
- package/dist/core/workspace-state.d.ts +24 -3
- package/dist/core/workspace-state.d.ts.map +1 -1
- package/dist/core/workspace-state.js +93 -31
- package/dist/core/workspace-state.js.map +1 -1
- package/dist/core/workspace-tools.d.ts +10 -0
- package/dist/core/workspace-tools.d.ts.map +1 -0
- package/dist/core/workspace-tools.js +123 -0
- package/dist/core/workspace-tools.js.map +1 -0
- package/dist/core/workspace.d.ts.map +1 -1
- package/dist/core/workspace.js +7 -17
- package/dist/core/workspace.js.map +1 -1
- package/dist/generators/base.d.ts.map +1 -1
- package/dist/generators/base.js +42 -5
- package/dist/generators/base.js.map +1 -1
- package/dist/generators/index.d.ts.map +1 -1
- package/dist/generators/index.js +11 -0
- package/dist/generators/index.js.map +1 -1
- package/dist/generators/plan-generator.d.ts.map +1 -1
- package/dist/generators/plan-generator.js +61 -58
- package/dist/generators/plan-generator.js.map +1 -1
- package/dist/generators/skills-generator.d.ts.map +1 -1
- package/dist/generators/skills-generator.js +36 -3
- package/dist/generators/skills-generator.js.map +1 -1
- package/dist/gui/assets/AgentsPage-C7Rh_dp7.js +3 -0
- package/dist/gui/assets/DashboardPage-YVONGtqS.js +1 -0
- package/dist/gui/assets/{GettingStartedPage-1MOTng3B.js ā GettingStartedPage-C2Kbvz_N.js} +1 -1
- package/dist/gui/assets/ProjectsPage-DOpfV2Oj.js +1 -0
- package/dist/gui/assets/{ScaffoldRepoInline-CP0yn5mw.js ā ScaffoldRepoInline-D91aitAi.js} +1 -1
- package/dist/gui/assets/{SettingsPage-DWmrLV8o.js ā SettingsPage-BdaHN6fa.js} +1 -1
- package/dist/gui/assets/SkillsPage-DT9lRkCg.js +7 -0
- package/dist/gui/assets/StartWorkPage-D932lq9x.js +1 -0
- package/dist/gui/assets/{StrategiesPage-CdCbbIu-.js ā StrategiesPage-DCfS-wdu.js} +2 -2
- package/dist/gui/assets/WorkroomsPage-BQU27nWS.js +4 -0
- package/dist/gui/assets/WorkspacesPage-D3TLVmq-.js +13 -0
- package/dist/gui/assets/{alert-dialog-u7qgb9Hq.js ā alert-dialog-YynbGyj1.js} +1 -1
- package/dist/gui/assets/badge-DTBzXOWn.js +1 -0
- package/dist/gui/assets/index-er-mkc2S.css +2 -0
- package/dist/gui/assets/index-hTa55BQ6.js +57 -0
- package/dist/gui/assets/square-check-big-Bj8Rf_dH.js +1 -0
- package/dist/gui/assets/tabs-DfW7Akjs.js +1 -0
- package/dist/gui/assets/{useAriaLabelledBy-C4zV-1Ra.js ā useAriaLabelledBy-BmJErI5a.js} +1 -1
- package/dist/gui/assets/vsc-BsVrJLSg.js +1 -0
- package/dist/gui/index.html +3 -5
- package/dist/http/work-guidance-routes.d.ts +4 -0
- package/dist/http/work-guidance-routes.d.ts.map +1 -0
- package/dist/http/work-guidance-routes.js +50 -0
- package/dist/http/work-guidance-routes.js.map +1 -0
- package/dist/index.js +169 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp/tools.d.ts +0 -7
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +207 -0
- package/dist/mcp/tools.js.map +1 -1
- package/dist/resources/contracts.d.ts.map +1 -1
- package/dist/resources/contracts.js +2 -1
- package/dist/resources/contracts.js.map +1 -1
- package/dist/resources/fs-safety.d.ts.map +1 -1
- package/dist/resources/fs-safety.js +2 -1
- package/dist/resources/fs-safety.js.map +1 -1
- package/dist/resources/materializer.d.ts +3 -0
- package/dist/resources/materializer.d.ts.map +1 -1
- package/dist/resources/materializer.js +45 -19
- package/dist/resources/materializer.js.map +1 -1
- package/dist/resources/service.d.ts +1 -1
- package/dist/resources/service.d.ts.map +1 -1
- package/dist/resources/service.js +3 -2
- package/dist/resources/service.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +333 -8
- package/dist/server.js.map +1 -1
- package/dist/static-resources/skills/contextspace-verify-release/SKILL.md +51 -0
- package/dist/static-resources/skills/contextspace-verify-release/references/evidence.md +21 -0
- package/dist/static-resources/skills/nexusflow-dev/SKILL.md +49 -0
- package/dist/static-resources/skills/nexusflow-dev/references/cli-conventions.md +15 -0
- package/dist/static-resources/skills/nexusflow-dev/references/verification-checklist.md +28 -0
- package/dist/static-resources/skills/nexusflow-lifecycle/SKILL.md +66 -0
- package/dist/static-resources/skills/nexusflow-lifecycle/references/epic-deliverables.md +36 -0
- package/dist/static-resources/skills/nexusflow-lifecycle/references/flow-selection-matrix.md +21 -0
- package/dist/static-resources/skills/nexusflow-lifecycle/references/stage-outcomes.md +23 -0
- package/dist/static-resources/workflows/epic-multi-slice.md +21 -0
- package/dist/static-resources/workflows/plan-implement-review.md +17 -6
- package/dist/static-resources/workflows/research-verify.md +15 -4
- package/dist/static-resources/workflows/solo-developer.md +11 -2
- package/dist/test-setup.d.ts +2 -0
- package/dist/test-setup.d.ts.map +1 -0
- package/dist/test-setup.js +8 -0
- package/dist/test-setup.js.map +1 -0
- package/dist/types.d.ts +178 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/resolve-workspace.d.ts.map +1 -1
- package/dist/utils/resolve-workspace.js +15 -8
- package/dist/utils/resolve-workspace.js.map +1 -1
- package/dist/utils/skills-catalog.d.ts +18 -9
- package/dist/utils/skills-catalog.d.ts.map +1 -1
- package/dist/utils/skills-catalog.js +248 -344
- package/dist/utils/skills-catalog.js.map +1 -1
- package/dist/utils/workflow-advisor.d.ts +1 -1
- package/dist/utils/workflow-advisor.d.ts.map +1 -1
- package/dist/utils/workflow-advisor.js +16 -4
- package/dist/utils/workflow-advisor.js.map +1 -1
- package/dist/utils/workflows.d.ts.map +1 -1
- package/dist/utils/workflows.js +5 -2
- package/dist/utils/workflows.js.map +1 -1
- package/dist/workrooms/contracts.d.ts +3 -3
- package/dist/workrooms/local-resources.d.ts +4 -1
- package/dist/workrooms/local-resources.d.ts.map +1 -1
- package/dist/workrooms/manager.d.ts +5 -2
- package/dist/workrooms/manager.d.ts.map +1 -1
- package/dist/workrooms/store.d.ts +2 -2
- package/package.json +3 -2
- package/resources/skills/contextspace-verify-release/SKILL.md +51 -0
- package/resources/skills/contextspace-verify-release/references/evidence.md +21 -0
- package/resources/skills/nexusflow-dev/SKILL.md +49 -0
- package/resources/skills/nexusflow-dev/references/cli-conventions.md +15 -0
- package/resources/skills/nexusflow-dev/references/verification-checklist.md +28 -0
- package/resources/skills/nexusflow-lifecycle/SKILL.md +66 -0
- package/resources/skills/nexusflow-lifecycle/references/epic-deliverables.md +36 -0
- package/resources/skills/nexusflow-lifecycle/references/flow-selection-matrix.md +21 -0
- package/resources/skills/nexusflow-lifecycle/references/stage-outcomes.md +23 -0
- package/resources/workflows/epic-multi-slice.md +21 -0
- package/resources/workflows/plan-implement-review.md +17 -6
- package/resources/workflows/research-verify.md +15 -4
- package/resources/workflows/solo-developer.md +11 -2
- package/dist/gui/assets/AgentsPage-DbivhmK0.js +0 -3
- package/dist/gui/assets/DashboardPage-D50Qrm3e.js +0 -1
- package/dist/gui/assets/NullStore-tdPen1kp.js +0 -1
- package/dist/gui/assets/ProjectsPage-srKgf7VN.js +0 -1
- package/dist/gui/assets/SkillsPage-CKjTXdrd.js +0 -6
- package/dist/gui/assets/StartWorkPage-BCUnJ9k8.js +0 -1
- package/dist/gui/assets/WorkroomsPage-BcT-mGtT.js +0 -4
- package/dist/gui/assets/WorkspacesPage-CYFCm-7_.js +0 -2
- package/dist/gui/assets/badge-DwXvB44H.js +0 -1
- package/dist/gui/assets/chunk-BV7QT456-DfUBKG-z.js +0 -3
- package/dist/gui/assets/index-3tD_IeyQ.js +0 -55
- package/dist/gui/assets/index-CK5YRfPV.css +0 -2
- package/dist/gui/assets/square-check-big-BSIiYXPI.js +0 -1
- package/dist/gui/assets/tabs-BrHKp5bD.js +0 -1
- package/dist/gui/assets/vsc-D80c4gBT.js +0 -1
package/LICENSE
CHANGED
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 `
|
|
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/ #
|
|
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
|
-
ā āāā
|
|
179
|
+
ā āāā agents/ # Custom agent personas for OpenAI Codex (.toml)
|
|
175
180
|
āāā .github/
|
|
176
|
-
ā
|
|
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`) |
|
|
@@ -211,7 +224,11 @@ Open this folder in your editor ā your AI assistant picks up the context and s
|
|
|
211
224
|
| `ctxspace commit` | Commit and push changes across all modified repositories (`--repo`, `--no-push`, `--dry-run`) |
|
|
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
|
-
| `ctxspace
|
|
227
|
+
| `ctxspace isolate` | On-demand worktree isolation for repositories in in-place workspaces (`[repo] [branch]`) |
|
|
228
|
+
| `ctxspace strategy` | Manage teamwork strategy workflows (`list`, `create`, `edit`, `delete`, `show`) |
|
|
229
|
+
| `ctxspace migrate` | Migrate legacy `.nexusflow` workspaces to `.contextspace` |
|
|
230
|
+
| `ctxspace tag` | Manage enterprise categories, vertical subsystems, and cross-cutting traits (`list`, `add`, `remove`, `show`) (alias: `category`) |
|
|
231
|
+
| `ctxspace skill` | Manage portable agent skills from CLI (`list`, `create`, `show`, `delete`) |
|
|
215
232
|
| `ctxspace knowledge` | Capture titled decisions/gotchas/assumptions/questions with optional `--scope` and `--evidence`; `show`, `promote` into per-repo base knowledge |
|
|
216
233
|
| `ctxspace refresh`| Regenerate plan and AI context files; use `--check` for a non-regenerating CI/pre-commit freshness gate |
|
|
217
234
|
| `ctxspace remote` | Add, push, or pull the workspace artifact repository remote without touching child repo remotes |
|
|
@@ -261,6 +278,71 @@ ContextSpace is built around a single loop:
|
|
|
261
278
|
ctxspace finish -m "Ship feature" --cleanup
|
|
262
279
|
```
|
|
263
280
|
|
|
281
|
+
## š Dynamic Lifecycle Flows & Milestone Radar
|
|
282
|
+
|
|
283
|
+
ContextSpace provides dynamic development lifecycles (`flowType`), allowing developers and autonomous agents to right-size milestone pipelines, dependency gating, and multi-branch coordination:
|
|
284
|
+
|
|
285
|
+
| Flow Preset | Best For | Default Pipeline |
|
|
286
|
+
|:---|:---|:---|
|
|
287
|
+
| **`quick`** | Bug fixes, single-repo patches, typo fixes | Reproduce failure ā Implement fix ā Mechanical verify & commit |
|
|
288
|
+
| **`feature`** | Standard features, enhancements, new APIs | Foundation / Prereqs ā Core feature slice ā Integration, docs & verify ā Finish |
|
|
289
|
+
| **`epic`** | Complex multi-repo initiatives, modular migrations | Architecture & Contracts ā Milestone Slices (with dependency graph) ā Cross-repo integration ā Comprehensive release gate |
|
|
290
|
+
|
|
291
|
+
Select a flow preset during workspace creation (`ctxspace create` or `ctxspace quick`), or choose it directly in the Start Work GUI.
|
|
292
|
+
|
|
293
|
+
### Inspecting Flow & Advancing Milestones
|
|
294
|
+
|
|
295
|
+
Use `ctxspace flow` to inspect your active milestone pipeline, the current active deliverable, and live status:
|
|
296
|
+
|
|
297
|
+
```bash
|
|
298
|
+
# View active lifecycle pipeline and sister branch fleet in the terminal
|
|
299
|
+
ctxspace flow
|
|
300
|
+
|
|
301
|
+
# Output structured JSON for automation or scripting
|
|
302
|
+
ctxspace flow --json
|
|
303
|
+
|
|
304
|
+
# Read live AI assignment, source documents, and stage guidance
|
|
305
|
+
ctxspace flow --assignment
|
|
306
|
+
ctxspace flow --assignment --json
|
|
307
|
+
|
|
308
|
+
# Transition milestones through the state machine (start -> verify -> complete)
|
|
309
|
+
ctxspace flow --step milestone-1 --action start
|
|
310
|
+
ctxspace flow --step milestone-1 --action complete
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
### Sister Branch Fleet & Collaborator Radar
|
|
314
|
+
|
|
315
|
+
When coordinating across multiple repositories and developers, `ctxspace flow` surfaces the **Sister Branch Fleet**:
|
|
316
|
+
- **Non-destructive remote inspection**: Safely queries `refs/remotes/origin/*` across all repositories in the workspace without mutating local working trees.
|
|
317
|
+
- **Collision & Desync Detection**: Highlights ahead/behind commit deltas, unpushed local changes, and remote branch tracking state.
|
|
318
|
+
- **Collaborator Visibility**: Reports recent commit authors, commit messages, and relative commit timestamps across repositories so agents and developers avoid stomping on active teammate work.
|
|
319
|
+
|
|
320
|
+
## š§Ŗ Mechanical Verification Gates
|
|
321
|
+
|
|
322
|
+
To prevent advancing unverified code, broken builds, or uncommitted modifications, ContextSpace provides automated **Mechanical Verification Gates** via `ctxspace verify`.
|
|
323
|
+
|
|
324
|
+
```bash
|
|
325
|
+
# Execute verification commands across all repositories
|
|
326
|
+
ctxspace verify
|
|
327
|
+
|
|
328
|
+
# Target a specific repository or test tag
|
|
329
|
+
ctxspace verify --repo my-api
|
|
330
|
+
ctxspace verify --tag backend
|
|
331
|
+
|
|
332
|
+
# Specify a custom verification command or timeout
|
|
333
|
+
ctxspace verify --command "npm test" --timeout 120
|
|
334
|
+
|
|
335
|
+
# Run in CI or pre-commit scripts (exits with code 1 on failure or timeout)
|
|
336
|
+
ctxspace verify --json
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
### Verification Invariants & Security
|
|
340
|
+
- **Strict Sequential Execution**: Tests are executed sequentially per repository to prevent resource starvation and test harness interference.
|
|
341
|
+
- **Dangerous Operator Rejection**: Command strings containing shell operators (`&&`, `||`, `;`, `|`, `` ` ``, `$()`) are rejected to eliminate command injection risks and ensure deterministic status reporting.
|
|
342
|
+
- **Cryptographic SHA Anchoring**: Results are pinned to the exact Git commit SHA of each repository.
|
|
343
|
+
- **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.
|
|
344
|
+
- **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.
|
|
345
|
+
|
|
264
346
|
## š MCP Server & Tools
|
|
265
347
|
|
|
266
348
|
`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 +437,22 @@ Jobs are stored in `~/.contextspace/schedules.json` (fallback: `~/.nexusflow/sch
|
|
|
355
437
|
|
|
356
438
|
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
439
|
|
|
358
|
-
## š§© Resource Library
|
|
440
|
+
## š§© Resource Library & Open AgentSkills Standard
|
|
359
441
|
|
|
360
|
-
ContextSpace provides
|
|
442
|
+
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
443
|
|
|
362
444
|
Skills bundle metadata triggers (for AI autonomous discovery) with full Markdown execution playbooks, auxiliary reference runbooks (`references/`), and automation scripts (`scripts/`).
|
|
363
445
|
|
|
446
|
+
### Start Work GUI: Direct Selection & In-Page Creation
|
|
447
|
+
|
|
448
|
+
Starting work in the Web Dashboard or Desktop App includes streamlined skill and category management:
|
|
449
|
+
- **Direct Skills Selection**: Select specific skills via checkboxes directly on the Start Work page when configuring a feature workspace.
|
|
450
|
+
- **In-Page Tag & Category Creation**: Author and assign new categories, vertical subsystems, or traits on the fly without navigating away to administrative settings.
|
|
451
|
+
- **Inline Playbook Preview**: Inspect skill playbooks and reference markdown directly before assigning them.
|
|
452
|
+
|
|
364
453
|
### Category Boxes & Visual Drag-and-Drop
|
|
365
454
|
|
|
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.
|
|
455
|
+
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
456
|
|
|
368
457
|
#### Built-in Category Templates & Skills:
|
|
369
458
|
- š **Pull Requests & Review**: `pr-review-toolkit`, `pr-description-gen`, `merge-conflict-resolver`
|
|
@@ -382,18 +471,60 @@ The Codex Agent Library supports creating, editing, importing, and deleting basi
|
|
|
382
471
|
|
|
383
472
|
### Cross-Harness Deployment
|
|
384
473
|
|
|
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.
|
|
474
|
+
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
475
|
|
|
387
476
|
| Assistant Harness | Deployment Path | Format |
|
|
388
477
|
|:---|:---|:---|
|
|
389
|
-
| **Google Antigravity** | `.agents/skills/<name>/SKILL.md` |
|
|
390
|
-
| **Claude Code** | `.claude/skills/<name>/SKILL.md` |
|
|
478
|
+
| **Google Antigravity** | `.agents/skills/<name>/SKILL.md` | Universal `agentskills.io` standard (playbook + `references/` + `scripts/`) |
|
|
479
|
+
| **Claude Code** | `.claude/skills/<name>/SKILL.md` | Compatibility projection for Claude Code |
|
|
391
480
|
| **OpenAI Codex** | `.agents/skills/<name>/SKILL.md` | Complete portable Agent Skill directory |
|
|
392
481
|
| **Cursor** | `.agents/skills/<name>/SKILL.md` | Complete portable Agent Skill directory |
|
|
393
482
|
| **GitHub Copilot** | `.agents/skills/<name>/SKILL.md` | Complete portable Agent Skill directory |
|
|
394
483
|
|
|
395
484
|
Codex custom agents are separate resources and deploy to `.codex/agents/<name>.toml`.
|
|
396
485
|
|
|
486
|
+
## š·ļø Enterprise Categories & Domain Packs
|
|
487
|
+
|
|
488
|
+
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:
|
|
489
|
+
|
|
490
|
+
1. **Root Organization Conventions** (`OrganizationConventions`): Universal company guardrails applied across all repositories in the workspace:
|
|
491
|
+
- Conventional commit message regex patterns (e.g. `^(feat|fix|refactor|test|chore|docs)\([A-Za-z0-9_.-]+\): .+$`).
|
|
492
|
+
- Pull request templates and code-review compliance checklists.
|
|
493
|
+
- Root compliance rules (e.g. GDPR, secrets hygiene, architectural invariants).
|
|
494
|
+
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.
|
|
495
|
+
3. **Horizontal Traits** (`categoryType: 'trait'`): Cross-cutting invariants (e.g. security audits, GDPR data privacy, accessibility, performance thresholds) that apply across any business domain.
|
|
496
|
+
|
|
497
|
+
### Concurrency & Catalog Persistence
|
|
498
|
+
|
|
499
|
+
Enterprise categories and domain packs are durably persisted in `~/.contextspace/domain-catalog.json` (with automatic fallback to `~/.nexusflow/domain-catalog.json`).
|
|
500
|
+
- **Concurrency Locks**: Multi-process mutex locking (`acquireLock`) ensures CLI processes and running GUI servers never conflict or overwrite concurrent edits.
|
|
501
|
+
- **Atomic Writes**: Persistent JSON updates use atomic write semantics (`atomicWriteJson`) to prevent data corruption.
|
|
502
|
+
|
|
503
|
+
### CLI Management
|
|
504
|
+
|
|
505
|
+
Manage categories and domain packs with `ctxspace tag` (alias `ctxspace category`):
|
|
506
|
+
|
|
507
|
+
```bash
|
|
508
|
+
# List active categories, vertical hierarchy, and horizontal traits
|
|
509
|
+
ctxspace tag list
|
|
510
|
+
|
|
511
|
+
# Add a domain pack or category to the current workspace
|
|
512
|
+
ctxspace tag add economy
|
|
513
|
+
|
|
514
|
+
# Inspect rules, verification gates, and microservices for a tag
|
|
515
|
+
ctxspace tag show economy
|
|
516
|
+
|
|
517
|
+
# Remove a domain pack from the workspace
|
|
518
|
+
ctxspace tag remove economy
|
|
519
|
+
```
|
|
520
|
+
|
|
521
|
+
### Full GUI Administration
|
|
522
|
+
|
|
523
|
+
The **Skills & Agents** page and the **Start Work** wizard provide complete GUI administration:
|
|
524
|
+
- **Create & Edit**: Define new categories and domain packs with custom labels, descriptions, icons, verification commands, and rule lists.
|
|
525
|
+
- **Hierarchical Nesting**: Assign parent verticals to build clear domain trees.
|
|
526
|
+
- **Reset & Revert**: Revert customizations to factory defaults or delete custom packs with confirmation safety.
|
|
527
|
+
|
|
397
528
|
## š„ Teamwork Strategy Workflows
|
|
398
529
|
|
|
399
530
|
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 +623,20 @@ ContextSpace/
|
|
|
492
623
|
ā ā āāā start.ts # ctxspace start
|
|
493
624
|
ā ā āāā stop.ts # ctxspace stop
|
|
494
625
|
ā ā āāā status.ts # ctxspace status
|
|
626
|
+
ā ā āāā flow.ts # ctxspace flow (milestones & fleet radar)
|
|
627
|
+
ā ā āāā verify.ts # ctxspace verify (mechanical test gates)
|
|
628
|
+
ā ā āāā tag.ts # ctxspace tag / category (enterprise domains)
|
|
629
|
+
ā ā āāā skill.ts # ctxspace skill (portable skills)
|
|
495
630
|
ā ā āāā logs.ts # ctxspace logs
|
|
496
631
|
ā ā āāā ui.ts # ctxspace ui
|
|
497
632
|
ā āāā core/ # Core workspace logic
|
|
498
633
|
ā ā āāā constants.ts # Brand, manifest & lockfile constants
|
|
499
634
|
ā ā āāā config.ts # Config management (~/.contextspace/)
|
|
635
|
+
ā ā āāā domain-catalog.ts # Enterprise catalog persistence & locks
|
|
636
|
+
ā ā āāā domain-packs.ts # Organization conventions, verticals & traits
|
|
637
|
+
ā ā āāā lifecycle.ts # Milestone state machine & fleet radar
|
|
638
|
+
ā ā āāā verify.ts # Sequential verification runner & SHA anchoring
|
|
639
|
+
ā ā āāā work-guidance.ts # Source docs & active AI assignments
|
|
500
640
|
ā ā āāā scanner.ts # Git repo scanner
|
|
501
641
|
ā ā āāā worktree.ts # Git worktree operations
|
|
502
642
|
ā ā āāā workspace.ts # Workspace CRUD
|
|
@@ -514,7 +654,7 @@ ContextSpace/
|
|
|
514
654
|
ā ā āāā codex.ts # Codex AGENTS.md generator
|
|
515
655
|
ā ā āāā copilot.ts # copilot-instructions.md generator
|
|
516
656
|
ā ā āāā cursor.ts # contextspace.mdc generator
|
|
517
|
-
ā ā āāā skills-generator.ts # Cross-harness skill deployment (.agents, .claude
|
|
657
|
+
ā ā āāā skills-generator.ts # Cross-harness skill deployment (.agents, .claude)
|
|
518
658
|
ā āāā orchestration/ # Service start/stop/log management
|
|
519
659
|
ā āāā utils/ # Helper utilities
|
|
520
660
|
ā āāā skills-catalog.ts # Skills & Categories catalog manager (~/.contextspace/)
|
|
@@ -527,6 +667,7 @@ ContextSpace/
|
|
|
527
667
|
ā āāā src/
|
|
528
668
|
ā āāā pages/
|
|
529
669
|
ā ā āāā WorkspacesPage.tsx # Workspaces & launch targets
|
|
670
|
+
ā ā āāā StartWorkPage.tsx # Interactive creation with skills & tags
|
|
530
671
|
ā ā āāā SkillsPage.tsx # Skills & Agents categorized drag-and-drop hub
|
|
531
672
|
ā ā āāā StrategiesPage.tsx # Teamwork strategy inspector
|
|
532
673
|
ā āāā 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.
|
|
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;
|
|
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"}
|
package/dist/commands/commit.js
CHANGED
|
@@ -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":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAuB,MAAM,uBAAuB,CAAC;AAC7H,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;
|
|
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
|
|
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;
|
|
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"}
|
package/dist/commands/create.js
CHANGED
|
@@ -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
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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 (
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
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) => {
|