@compozy/cli 0.1.10 → 0.1.11

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 (2) hide show
  1. package/README.md +255 -87
  2. package/package.json +16 -16
package/README.md CHANGED
@@ -28,14 +28,16 @@ One CLI to replace scattered prompts, manual task tracking, and copy-paste revie
28
28
 
29
29
  ## ✨ Highlights
30
30
 
31
- - **One command, 40+ agents.** Install bundled skills into Claude Code, Codex, Cursor, Droid, OpenCode, Pi, Gemini, and 40+ other agents and editors with `compozy setup`.
31
+ - **One command, 40+ agents.** Install core workflow skills into Claude Code, Codex, Cursor, Droid, OpenCode, Pi, Gemini, and 40+ other agents and editors with `compozy setup`, plus any setup assets shipped by enabled extensions.
32
32
  - **Idea to code in a structured pipeline.** Optional Idea → PRD → TechSpec → Tasks → Execution → Review. Each phase produces plain markdown artifacts that feed into the next. Start from an idea for full research and debate, or jump straight to PRD if you already have a clear scope.
33
33
  - **Codebase-aware enrichment.** Tasks aren't generic prompts. Compozy spawns parallel agents to explore your codebase, discover patterns, and ground every task in real project context.
34
34
  - **Multi-agent execution.** Run tasks through ACP-capable runtimes like Claude Code, Codex, Cursor, Droid, OpenCode, Pi, or Gemini — just change `--ide`. Concurrent batch processing with configurable timeouts, retries, and exponential backoff, all with a live terminal UI.
35
+ - **Reusable agents.** Package a prompt, runtime defaults, and optional agent-local MCP servers under `.compozy/agents/<name>/`, then run it from `compozy exec --agent <name>` or through nested `run_agent` calls.
35
36
  - **Workflow memory between runs.** Agents inherit context from every previous task — decisions, learnings, errors, and handoffs. Two-tier markdown memory with automatic compaction keeps context fresh without manual bookkeeping.
36
37
  - **Provider-agnostic reviews.** Fetch review comments from CodeRabbit, GitHub, or run AI-powered reviews internally. All normalize to the same format. Provider threads resolve automatically after fixes.
37
38
  - **Markdown everywhere.** PRDs, specs, tasks, reviews, and ADRs are human-readable markdown files. Version-controlled, diffable, editable between steps. No vendor lock-in.
38
39
  - **Frontmatter for machine-readable metadata.** Tasks and review issues keep parseable metadata in standard YAML frontmatter instead of custom XML tags.
40
+ - **Executable extensions.** Intercept and modify any pipeline phase with subprocess hooks. Ship custom prompt decorators, lifecycle observers, review providers, and skill packs using the TypeScript or Go SDKs.
39
41
  - **Single binary, local-first.** Compiles to one Go binary with zero runtime dependencies. Your code and data stay on your machine.
40
42
  - **Embeddable.** Use as a standalone CLI or import as a Go package into your own tools.
41
43
 
@@ -67,25 +69,35 @@ git clone git@github.com:compozy/compozy.git
67
69
  cd compozy && make verify && go build ./cmd/compozy
68
70
  ```
69
71
 
70
- Then install bundled skills into your AI agents:
72
+ Then install core skills into your AI agents:
71
73
 
72
74
  ```bash
73
75
  compozy setup # interactive — pick agents and skills
74
76
  compozy setup --all # install everything to every detected agent
75
77
  ```
76
78
 
79
+ `compozy setup` installs Compozy's core workflow skills plus any setup assets shipped by enabled extensions.
80
+
81
+ If you want the optional ideation workflow and council roster, install the first-party `cy-idea-factory` extension first:
82
+
83
+ ```bash
84
+ compozy ext install --yes compozy/compozy --remote github --ref <tag> --subdir extensions/cy-idea-factory
85
+ compozy ext enable cy-idea-factory
86
+ compozy setup
87
+ ```
88
+
77
89
  Execution runtimes are separate from skill installation. To run `compozy exec`, `compozy start`, or `compozy fix-reviews`, install an ACP-capable runtime or adapter on `PATH` for the `--ide` you choose:
78
90
 
79
- | Runtime | `--ide` flag | Expected ACP command |
80
- | ------------ | -------------- | -------------------------------- |
81
- | Claude Agent | `claude` | `claude-agent-acp` |
82
- | Codex CLI | `codex` | `codex-acp` |
83
- | GitHub Copilot CLI | `copilot` | `copilot --acp` |
84
- | Cursor | `cursor-agent` | `cursor-agent acp` |
85
- | Droid | `droid` | `droid exec --output-format acp` |
86
- | OpenCode | `opencode` | `opencode acp` |
87
- | pi ACP | `pi` | `pi-acp` |
88
- | Gemini CLI | `gemini` | `gemini --acp` |
91
+ | Runtime | `--ide` flag | Expected ACP command |
92
+ | ------------------ | -------------- | -------------------------------- |
93
+ | Claude Agent | `claude` | `claude-agent-acp` |
94
+ | Codex CLI | `codex` | `codex-acp` |
95
+ | GitHub Copilot CLI | `copilot` | `copilot --acp` |
96
+ | Cursor | `cursor-agent` | `cursor-agent acp` |
97
+ | Droid | `droid` | `droid exec --output-format acp` |
98
+ | OpenCode | `opencode` | `opencode acp` |
99
+ | pi ACP | `pi` | `pi-acp` |
100
+ | Gemini CLI | `gemini` | `gemini --acp` |
89
101
 
90
102
  When the direct ACP command is not installed, Compozy can also fall back to supported launchers such as `npx @zed-industries/codex-acp` when the launcher is available locally.
91
103
 
@@ -183,6 +195,90 @@ Notes:
183
195
  - `max_retries` applies to execution-stage ACP failures and inactivity timeouts for `compozy exec`, `compozy start`, and `compozy fix-reviews`.
184
196
  - `retry_backoff_multiplier` only increases the next attempt timeout; retries restart immediately and do not add a sleep delay.
185
197
 
198
+ ## Reusable Agents
199
+
200
+ Reusable agents are flat filesystem bundles discovered from two scopes:
201
+
202
+ - workspace: `.compozy/agents/<name>/`
203
+ - global: `~/.compozy/agents/<name>/`
204
+
205
+ When the same agent name exists in both places, the workspace directory wins as a whole. Compozy does not merge `AGENT.md` from one scope with `mcp.json` from the other.
206
+
207
+ Each agent directory contains:
208
+
209
+ - required `AGENT.md` with YAML frontmatter plus a markdown body
210
+ - optional `mcp.json` using the standard top-level `mcpServers` shape
211
+
212
+ Agent directory names are the canonical agent ids. They must match `^[a-z][a-z0-9-]{0,63}$`, and `compozy` is reserved.
213
+
214
+ Quick start:
215
+
216
+ ```bash
217
+ compozy agents list
218
+ compozy agents inspect reviewer
219
+ compozy exec --agent reviewer "Review the staged changes"
220
+ ```
221
+
222
+ Runtime precedence for `compozy exec --agent ...` is:
223
+
224
+ ```text
225
+ explicit CLI flags > AGENT.md runtime defaults > .compozy/config.toml > built-in defaults
226
+ ```
227
+
228
+ `mcp.json` is only for agent-local MCP servers. The reserved Compozy MCP server is also named `compozy`, but it is injected by the host and must not appear in `mcp.json`. That reserved server exists only to expose host-owned tools such as `run_agent`. Child agent runs receive the reserved `compozy` server plus the child agent's own `mcp.json`; they do not inherit the parent agent's local MCP servers.
229
+
230
+ Use these committed example fixtures as starting points:
231
+
232
+ - [`docs/examples/agents/reviewer/AGENT.md`](docs/examples/agents/reviewer/AGENT.md) for a minimal reusable agent
233
+ - [`docs/examples/agents/repo-copilot/AGENT.md`](docs/examples/agents/repo-copilot/AGENT.md) and [`docs/examples/agents/repo-copilot/mcp.json`](docs/examples/agents/repo-copilot/mcp.json) for an agent with external MCP dependencies
234
+
235
+ The detailed guide lives in [`docs/reusable-agents.md`](docs/reusable-agents.md).
236
+
237
+ ## 🔌 Extensions
238
+
239
+ Compozy extensions are executable subprocess plugins that intercept and modify pipeline behavior without rebuilding the binary. Extensions communicate with the host over JSON-RPC 2.0 on stdin/stdout and can observe lifecycle events, mutate prompts, inject plan sources, modify agent sessions, gate retries, ship skill packs, and register review providers.
240
+
241
+ ### SDK support
242
+
243
+ | Language | Package | Install |
244
+ | ---------- | ------------------------------------------------- | ------------------------------------------------- |
245
+ | TypeScript | [`@compozy/extension-sdk`](sdk/extension-sdk-ts/) | `npm install @compozy/extension-sdk` |
246
+ | Go | [`sdk/extension`](sdk/extension/) | `go get github.com/compozy/compozy/sdk/extension` |
247
+
248
+ Scaffold a new extension project with starter templates:
249
+
250
+ ```bash
251
+ npx @compozy/create-extension my-ext
252
+ npx @compozy/create-extension my-ext --template prompt-decorator
253
+ npx @compozy/create-extension my-ext --runtime go
254
+ ```
255
+
256
+ Available templates: `lifecycle-observer`, `prompt-decorator`, `review-provider`, `skill-pack`.
257
+
258
+ ### Extension CLI
259
+
260
+ ```bash
261
+ compozy ext list # discover extensions across all scopes
262
+ compozy ext inspect <name> # show manifest, capabilities, enablement status
263
+ compozy ext install <source> # install from a local path or GitHub repo archive
264
+ compozy ext uninstall <name> # remove a user-scoped extension
265
+ compozy ext enable <name> # enable on this machine
266
+ compozy ext disable <name> # disable on this machine
267
+ compozy ext doctor # validate manifests and report health warnings
268
+ ```
269
+
270
+ Extensions are discovered from three scopes with workspace > user > bundled precedence. User and workspace extensions start disabled and must be explicitly enabled by the local operator.
271
+
272
+ ### Learn more
273
+
274
+ - [Extension author guide](.compozy/docs/extensibility/index.md)
275
+ - [Architecture overview](.compozy/docs/extensibility/architecture.md)
276
+ - [Hook reference](.compozy/docs/extensibility/hook-reference.md) -- 28 hooks across 6 pipeline phases
277
+ - [Host API reference](.compozy/docs/extensibility/host-api-reference.md) -- 11 typed host methods
278
+ - [Capability reference](.compozy/docs/extensibility/capability-reference.md) -- 19 capability grants
279
+ - [Trust and enablement](.compozy/docs/extensibility/trust-and-enablement.md)
280
+ - [Testing guide](.compozy/docs/extensibility/testing.md)
281
+
186
282
  ## ⚡ Ad Hoc Exec
187
283
 
188
284
  Use `compozy exec` when you want one prompt through the same ACP-backed execution stack without creating a full workflow first.
@@ -235,13 +331,21 @@ This walkthrough builds a feature called **user-auth** from idea to shipped code
235
331
  compozy setup
236
332
  ```
237
333
 
238
- Auto-detects installed agents and copies (or symlinks) skills into their configuration directories.
334
+ Auto-detects installed agents, copies (or symlinks) core skills into their configuration directories, and installs setup assets shipped by enabled extensions.
239
335
  `compozy start` and `compozy fix-reviews` now verify that bundled Compozy skills are installed for the selected agent before running. Missing installs block the run, and outdated installs prompt for refresh in interactive terminals.
240
336
 
241
337
  ### 2. (Optional) Create an Issue
242
338
 
243
339
  Inside your AI agent (Claude Code, Codex, Cursor, OpenCode, Pi, etc.):
244
340
 
341
+ ```bash
342
+ compozy ext install --yes compozy/compozy --remote github --ref <tag> --subdir extensions/cy-idea-factory
343
+ compozy ext enable cy-idea-factory
344
+ compozy setup
345
+ ```
346
+
347
+ Then:
348
+
245
349
  ```
246
350
  /cy-idea-factory user-auth
247
351
  ```
@@ -312,11 +416,10 @@ Repeat steps 7–8. Each cycle creates a new review round (`reviews-002/`, `revi
312
416
 
313
417
  ## 🧩 Skills
314
418
 
315
- Compozy bundles 9 skills that its workflows depend on. They run inside your AI agent — no context switching to external tools.
419
+ Compozy bundles 9 core skills that its workflows depend on. They run inside your AI agent — no context switching to external tools.
316
420
 
317
421
  | Skill | Purpose |
318
422
  | -------------------- | -------------------------------------------------------------------------- |
319
- | `cy-idea-factory` | Raw idea → structured idea spec with market research, business analysis, and council debate |
320
423
  | `cy-create-prd` | Idea → Product Requirements Document with ADRs |
321
424
  | `cy-create-techspec` | PRD → Technical Specification with architecture exploration |
322
425
  | `cy-create-tasks` | PRD + TechSpec → Independently implementable task files |
@@ -326,6 +429,20 @@ Compozy bundles 9 skills that its workflows depend on. They run inside your AI a
326
429
  | `cy-fix-reviews` | Triage, fix, verify, and resolve review issues |
327
430
  | `cy-final-verify` | Enforces verification evidence before any completion claim |
328
431
 
432
+ Optional first-party extension skills:
433
+
434
+ | Skill | Purpose |
435
+ | ----------------- | ------------------------------------------------------------------------------------------- |
436
+ | `cy-idea-factory` | Raw idea → structured idea spec with market research, business analysis, and council debate |
437
+
438
+ Install the optional ideation extension with:
439
+
440
+ ```bash
441
+ compozy ext install --yes compozy/compozy --remote github --ref <tag> --subdir extensions/cy-idea-factory
442
+ compozy ext enable cy-idea-factory
443
+ compozy setup
444
+ ```
445
+
329
446
  ### 🧠 Workflow Memory
330
447
 
331
448
  When agents execute tasks, context gets lost between runs — decisions made, errors hit, patterns discovered. Compozy solves this with a two-tier memory system that gives each agent a running history of the workflow.
@@ -355,18 +472,18 @@ The `cy-workflow-memory` skill handles all of this automatically when referenced
355
472
 
356
473
  **Execution** (`compozy exec`, `compozy start`, `compozy fix-reviews`) — ACP-capable runtimes that can run ad hoc prompts and task workflows:
357
474
 
358
- | Agent | `--ide` flag |
359
- | ----------- | -------------- |
360
- | Claude Code | `claude` |
361
- | Codex | `codex` |
362
- | GitHub Copilot | `copilot` |
363
- | Cursor | `cursor-agent` |
364
- | Droid | `droid` |
365
- | OpenCode | `opencode` |
366
- | Pi | `pi` |
367
- | Gemini | `gemini` |
475
+ | Agent | `--ide` flag |
476
+ | -------------- | -------------- |
477
+ | Claude Code | `claude` |
478
+ | Codex | `codex` |
479
+ | GitHub Copilot | `copilot` |
480
+ | Cursor | `cursor-agent` |
481
+ | Droid | `droid` |
482
+ | OpenCode | `opencode` |
483
+ | Pi | `pi` |
484
+ | Gemini | `gemini` |
368
485
 
369
- **Skill installation** (`compozy setup`) — 40+ agents and editors, including Claude Code, Codex, Cursor, Droid, OpenCode, Pi, Gemini CLI, GitHub Copilot, Windsurf, Amp, Continue, Goose, Roo Code, Augment, Kiro CLI, Cline, and many more. Run `compozy setup` to see all detected agents on your system.
486
+ **Skill installation** (`compozy setup`) — 40+ agents and editors, including Claude Code, Codex, Cursor, Droid, OpenCode, Pi, Gemini CLI, GitHub Copilot, Windsurf, Amp, Continue, Goose, Roo Code, Augment, Kiro CLI, Cline, and many more. `compozy setup` installs core workflow skills plus any setup assets shipped by enabled extensions. Run `compozy setup` to see all detected agents on your system.
370
487
 
371
488
  When installing to multiple agents, Compozy offers two modes:
372
489
 
@@ -376,21 +493,21 @@ When installing to multiple agents, Compozy offers two modes:
376
493
  ## 📖 CLI Reference
377
494
 
378
495
  <details>
379
- <summary><code>compozy setup</code> — Install bundled skills for supported agents</summary>
496
+ <summary><code>compozy setup</code> — Install core skills and enabled extension assets</summary>
380
497
 
381
498
  ```bash
382
499
  compozy setup [flags]
383
500
  ```
384
501
 
385
- | Flag | Default | Description |
386
- | ---------------- | ------- | -------------------------------------------- |
387
- | `--agent`, `-a` | | Target agent name (repeatable) |
388
- | `--skill`, `-s` | | Skill name to install (repeatable) |
389
- | `--global`, `-g` | `false` | Install to user directory instead of project |
390
- | `--copy` | `false` | Copy files instead of symlinking |
391
- | `--list`, `-l` | `false` | List bundled skills without installing |
392
- | `--yes`, `-y` | `false` | Skip confirmation prompts |
393
- | `--all` | `false` | Install all skills to all agents |
502
+ | Flag | Default | Description |
503
+ | ---------------- | ------- | ---------------------------------------------------------------- |
504
+ | `--agent`, `-a` | | Target agent name (repeatable) |
505
+ | `--skill`, `-s` | | Skill name to install (repeatable) |
506
+ | `--global`, `-g` | `false` | Install to user directory instead of project |
507
+ | `--copy` | `false` | Copy files instead of symlinking |
508
+ | `--list`, `-l` | `false` | List core skills and enabled extension assets without installing |
509
+ | `--yes`, `-y` | `false` | Skip confirmation prompts |
510
+ | `--all` | `false` | Install all skills to all agents |
394
511
 
395
512
  </details>
396
513
 
@@ -450,23 +567,67 @@ compozy exec [prompt] [flags]
450
567
 
451
568
  Provide exactly one prompt source: a positional prompt, `--prompt-file`, or `stdin`. When present, `.compozy/config.toml` can provide exec defaults through `[exec]` and shared runtime defaults through `[defaults]`.
452
569
 
453
- `compozy exec` is headless and ephemeral by default. Use `--persist` to create `.compozy/runs/<run-id>/` for resumable sessions, `--run-id` to continue a persisted session, `--format json` for JSONL, and `--tui` to opt back into the interactive UI.
570
+ `compozy exec` is headless and ephemeral by default. Use `--agent <name>` to execute a reusable agent from `.compozy/agents/` or `~/.compozy/agents/`, `--persist` to create `.compozy/runs/<run-id>/` for resumable sessions, `--run-id` to continue a persisted session, `--format json` for lean JSONL, `--format raw-json` for the full raw event stream, and `--tui` to opt back into the interactive UI.
454
571
 
455
- | Flag | Default | Description |
456
- | ---------------------------- | ----------- | --------------------------------------------------------------------------- |
572
+ | Flag | Default | Description |
573
+ | ---------------------------- | ----------- | ------------------------------------------------------------------------------------------ |
457
574
  | `--ide` | `codex` | Runtime: `claude`, `codex`, `copilot`, `cursor-agent`, `droid`, `gemini`, `opencode`, `pi` |
458
- | `--model` | _(per IDE)_ | Model override |
459
- | `--prompt-file` | | Read prompt text from a file |
460
- | `--format` | `text` | Output contract: `text` or `json` |
461
- | `--reasoning-effort` | `medium` | `low`, `medium`, `high`, `xhigh` |
462
- | `--access-mode` | `full` | `default` or `full` runtime access policy |
463
- | `--timeout` | `10m` | Activity timeout per job |
464
- | `--max-retries` | `0` | Retry execution-stage ACP failures or timeouts N times |
465
- | `--retry-backoff-multiplier` | `1.5` | Multiplier applied to the next timeout after each retry |
466
- | `--tail-lines` | `0` | Maximum log lines retained per job in UI (`0` = full history) |
467
- | `--add-dir` | | Additional directories to allow (repeatable; currently `claude` and `codex` only) |
468
- | `--auto-commit` | `false` | Include automatic commit instructions when the prompt asks for code changes |
469
- | `--dry-run` | `false` | Preview prompts without executing |
575
+ | `--model` | _(per IDE)_ | Model override |
576
+ | `--agent` | | Reusable agent to execute from `.compozy/agents/` or `~/.compozy/agents/` |
577
+ | `--prompt-file` | | Read prompt text from a file |
578
+ | `--format` | `text` | Output contract: `text`, `json`, or `raw-json` |
579
+ | `--reasoning-effort` | `medium` | `low`, `medium`, `high`, `xhigh` |
580
+ | `--access-mode` | `full` | `default` or `full` runtime access policy |
581
+ | `--timeout` | `10m` | Activity timeout per job |
582
+ | `--max-retries` | `0` | Retry execution-stage ACP failures or timeouts N times |
583
+ | `--retry-backoff-multiplier` | `1.5` | Multiplier applied to the next timeout after each retry |
584
+ | `--tail-lines` | `0` | Maximum log lines retained per job in UI (`0` = full history) |
585
+ | `--add-dir` | | Additional directories to allow (repeatable; currently `claude` and `codex` only) |
586
+ | `--auto-commit` | `false` | Include automatic commit instructions when the prompt asks for code changes |
587
+ | `--verbose` | `false` | Emit operational runtime logs to stderr during exec |
588
+ | `--tui` | `false` | Open the interactive TUI instead of headless stdout output |
589
+ | `--persist` | `false` | Persist exec artifacts under `.compozy/runs/<run-id>/` |
590
+ | `--run-id` | | Resume a previously persisted exec session by run id |
591
+ | `--dry-run` | `false` | Preview prompts without executing |
592
+
593
+ </details>
594
+
595
+ <details>
596
+ <summary><code>compozy agents</code> — Discover and inspect reusable agents</summary>
597
+
598
+ ```bash
599
+ compozy agents list
600
+ compozy agents inspect <name>
601
+ ```
602
+
603
+ `compozy agents list` prints resolved agents from workspace and global scope, then reports any invalid definitions without hiding the valid ones. `compozy agents inspect <name>` prints the resolved source, runtime defaults, MCP summary, and validation status for one agent. Invalid inspections print the validation report first and then exit non-zero.
604
+
605
+ Examples:
606
+
607
+ ```bash
608
+ compozy agents list
609
+ compozy agents inspect reviewer
610
+ compozy agents inspect repo-copilot
611
+ ```
612
+
613
+ </details>
614
+
615
+ <details>
616
+ <summary><code>compozy ext</code> — Manage executable extensions</summary>
617
+
618
+ ```bash
619
+ compozy ext <subcommand> [flags]
620
+ ```
621
+
622
+ | Subcommand | Description |
623
+ | ---------------------- | -------------------------------------------------- |
624
+ | `ext list` | List discovered extensions across all scopes |
625
+ | `ext inspect <name>` | Show manifest, capabilities, and enablement status |
626
+ | `ext install <path>` | Install an extension into the user scope |
627
+ | `ext uninstall <name>` | Remove a user-scoped extension |
628
+ | `ext enable <name>` | Enable an extension on this machine |
629
+ | `ext disable <name>` | Disable an extension on this machine |
630
+ | `ext doctor` | Validate manifests and report health warnings |
470
631
 
471
632
  </details>
472
633
 
@@ -481,22 +642,22 @@ Running `compozy start` with no flags opens the interactive form automatically.
481
642
  When present, `.compozy/config.toml` can provide defaults for runtime flags such as
482
643
  `--ide`, `--model`, `--reasoning-effort`, `--access-mode`, `--timeout`, `--add-dir`, and `--auto-commit`.
483
644
 
484
- | Flag | Default | Description |
485
- | ---------------------------- | ----------- | ------------------------------------------------------------- |
486
- | `--name` | | Workflow name (`.compozy/tasks/<name>`) |
487
- | `--tasks-dir` | | Path to tasks directory |
645
+ | Flag | Default | Description |
646
+ | ---------------------------- | ----------- | ------------------------------------------------------------------------------------------ |
647
+ | `--name` | | Workflow name (`.compozy/tasks/<name>`) |
648
+ | `--tasks-dir` | | Path to tasks directory |
488
649
  | `--ide` | `codex` | Runtime: `claude`, `codex`, `copilot`, `cursor-agent`, `droid`, `gemini`, `opencode`, `pi` |
489
- | `--model` | _(per IDE)_ | Model override |
490
- | `--reasoning-effort` | `medium` | `low`, `medium`, `high`, `xhigh` |
491
- | `--access-mode` | `full` | `default` or `full` runtime access policy |
492
- | `--timeout` | `10m` | Activity timeout per job |
493
- | `--max-retries` | `0` | Retry execution-stage ACP failures or timeouts N times |
494
- | `--retry-backoff-multiplier` | `1.5` | Multiplier applied to the next timeout after each retry |
495
- | `--tail-lines` | `0` | Maximum log lines retained per job in UI (`0` = full history) |
496
- | `--add-dir` | | Additional directories to allow (repeatable; currently `claude` and `codex` only) |
497
- | `--auto-commit` | `false` | Auto-commit after each task |
498
- | `--include-completed` | `false` | Re-run completed tasks |
499
- | `--dry-run` | `false` | Preview prompts without executing |
650
+ | `--model` | _(per IDE)_ | Model override |
651
+ | `--reasoning-effort` | `medium` | `low`, `medium`, `high`, `xhigh` |
652
+ | `--access-mode` | `full` | `default` or `full` runtime access policy |
653
+ | `--timeout` | `10m` | Activity timeout per job |
654
+ | `--max-retries` | `0` | Retry execution-stage ACP failures or timeouts N times |
655
+ | `--retry-backoff-multiplier` | `1.5` | Multiplier applied to the next timeout after each retry |
656
+ | `--tail-lines` | `0` | Maximum log lines retained per job in UI (`0` = full history) |
657
+ | `--add-dir` | | Additional directories to allow (repeatable; currently `claude` and `codex` only) |
658
+ | `--auto-commit` | `false` | Auto-commit after each task |
659
+ | `--include-completed` | `false` | Re-run completed tasks |
660
+ | `--dry-run` | `false` | Preview prompts without executing |
500
661
 
501
662
  </details>
502
663
 
@@ -530,25 +691,25 @@ Running `compozy fix-reviews` with no flags opens the interactive form automatic
530
691
  When present, `.compozy/config.toml` can provide runtime defaults as well as review workflow
531
692
  defaults such as `--concurrent`, `--batch-size`, and `--include-resolved`.
532
693
 
533
- | Flag | Default | Description |
534
- | ---------------------------- | ----------- | ------------------------------------------------------------- |
535
- | `--name` | | Workflow name |
536
- | `--round` | `0` | Round number (latest if omitted) |
537
- | `--reviews-dir` | | Override review directory path |
694
+ | Flag | Default | Description |
695
+ | ---------------------------- | ----------- | ------------------------------------------------------------------------------------------ |
696
+ | `--name` | | Workflow name |
697
+ | `--round` | `0` | Round number (latest if omitted) |
698
+ | `--reviews-dir` | | Override review directory path |
538
699
  | `--ide` | `codex` | Runtime: `claude`, `codex`, `copilot`, `cursor-agent`, `droid`, `gemini`, `opencode`, `pi` |
539
- | `--model` | _(per IDE)_ | Model override |
540
- | `--batch-size` | `1` | Issues per batch |
541
- | `--concurrent` | `1` | Parallel batches |
542
- | `--include-resolved` | `false` | Re-process resolved issues |
543
- | `--reasoning-effort` | `medium` | `low`, `medium`, `high`, `xhigh` |
544
- | `--access-mode` | `full` | `default` or `full` runtime access policy |
545
- | `--timeout` | `10m` | Activity timeout per job |
546
- | `--max-retries` | `0` | Retry execution-stage ACP failures or timeouts N times |
547
- | `--retry-backoff-multiplier` | `1.5` | Multiplier applied to the next timeout after each retry |
548
- | `--tail-lines` | `0` | Maximum log lines retained per job in UI (`0` = full history) |
549
- | `--add-dir` | | Additional directories to allow (repeatable; currently `claude` and `codex` only) |
550
- | `--auto-commit` | `false` | Auto-commit after each batch |
551
- | `--dry-run` | `false` | Preview prompts without executing |
700
+ | `--model` | _(per IDE)_ | Model override |
701
+ | `--batch-size` | `1` | Issues per batch |
702
+ | `--concurrent` | `1` | Parallel batches |
703
+ | `--include-resolved` | `false` | Re-process resolved issues |
704
+ | `--reasoning-effort` | `medium` | `low`, `medium`, `high`, `xhigh` |
705
+ | `--access-mode` | `full` | `default` or `full` runtime access policy |
706
+ | `--timeout` | `10m` | Activity timeout per job |
707
+ | `--max-retries` | `0` | Retry execution-stage ACP failures or timeouts N times |
708
+ | `--retry-backoff-multiplier` | `1.5` | Multiplier applied to the next timeout after each retry |
709
+ | `--tail-lines` | `0` | Maximum log lines retained per job in UI (`0` = full history) |
710
+ | `--add-dir` | | Additional directories to allow (repeatable; currently `claude` and `codex` only) |
711
+ | `--auto-commit` | `false` | Auto-commit after each batch |
712
+ | `--dry-run` | `false` | Preview prompts without executing |
552
713
 
553
714
  </details>
554
715
 
@@ -584,7 +745,7 @@ _ = compozy.Run(context.Background(), compozy.Config{
584
745
  })
585
746
 
586
747
  // Embed the Cobra command in another CLI
587
- root := command.New()
748
+ root := compozy.NewCommand()
588
749
  _ = root.Execute()
589
750
  ```
590
751
 
@@ -595,19 +756,26 @@ _ = root.Execute()
595
756
 
596
757
  ```
597
758
  cmd/compozy/ CLI entry point
598
- command/ Public Cobra wrapper for embedding
759
+ compozy.go Public Go API + reusable Cobra command helpers
599
760
  internal/cli/ Cobra flags, interactive form, CLI glue
600
761
  internal/core/ Internal facade for preparation and execution
601
762
  agent/ IDE command validation and process construction
763
+ agents/ Reusable agent discovery, validation, MCP merge, nested execution
764
+ extension/ Extension manifest, discovery, hooks, Host API, lifecycle
602
765
  memory/ Workflow memory bootstrapping, inspection, and compaction detection
603
766
  model/ Shared runtime data structures
604
767
  plan/ Input discovery, filtering, grouping, batch prep
605
768
  prompt/ Prompt builders emitting runtime context + skill names
606
769
  run/ Execution pipeline, logging, shutdown, Bubble Tea UI
607
- internal/setup/ Bundled skill installer (agent detection, symlink/copy)
770
+ internal/setup/ Bundled skill and council-agent installer (agent detection, symlink/copy)
608
771
  internal/version/ Build metadata
772
+ sdk/extension/ Public Go SDK for extension authors
773
+ sdk/extension-sdk-ts/ Public TypeScript SDK for extension authors
774
+ sdk/create-extension/ CLI scaffolder for new extension projects
609
775
  skills/ Bundled installable skills
610
776
  .compozy/config.toml Optional workspace defaults for CLI execution
777
+ .compozy/agents/ Optional reusable agents (`AGENT.md` + optional `mcp.json`)
778
+ .compozy/extensions/ Workspace-scoped extensions (starts disabled)
611
779
  .compozy/runs/ Runtime artifacts for persisted executions and resumable exec sessions
612
780
  .compozy/tasks/ Default workflow artifact root (PRDs, TechSpecs, tasks, ADRs, reviews)
613
781
  ```
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@compozy/cli",
3
3
  "type": "module",
4
- "version": "0.1.10",
4
+ "version": "0.1.11",
5
5
  "description": "Compozy CLI",
6
6
  "scripts": {
7
7
  "postinstall": "node install.js",
@@ -27,63 +27,63 @@
27
27
  },
28
28
  "archives": {
29
29
  "darwin-arm64": {
30
- "name": "compozy_0.1.10_darwin_arm64.tar.gz",
31
- "url": "https://github.com/compozy/compozy/releases/download/v0.1.10/compozy_0.1.10_darwin_arm64.tar.gz",
30
+ "name": "compozy_0.1.11_darwin_arm64.tar.gz",
31
+ "url": "https://github.com/compozy/compozy/releases/download/v0.1.11/compozy_0.1.11_darwin_arm64.tar.gz",
32
32
  "bins": [
33
33
  "compozy"
34
34
  ],
35
35
  "format": "tar.gz",
36
36
  "checksum": {
37
37
  "algorithm": "sha256",
38
- "digest": "11775673564a54314065ea8307d5ce1f1b187f2322d7428b4bd5f5a97228f196"
38
+ "digest": "9cbfc3642a8475abfcfb89fd99fcbff943e79b8a4a0ae51648e9bcd83c5826de"
39
39
  }
40
40
  },
41
41
  "darwin-x64": {
42
- "name": "compozy_0.1.10_darwin_x86_64.tar.gz",
43
- "url": "https://github.com/compozy/compozy/releases/download/v0.1.10/compozy_0.1.10_darwin_x86_64.tar.gz",
42
+ "name": "compozy_0.1.11_darwin_x86_64.tar.gz",
43
+ "url": "https://github.com/compozy/compozy/releases/download/v0.1.11/compozy_0.1.11_darwin_x86_64.tar.gz",
44
44
  "bins": [
45
45
  "compozy"
46
46
  ],
47
47
  "format": "tar.gz",
48
48
  "checksum": {
49
49
  "algorithm": "sha256",
50
- "digest": "cacb8818efccc7f03e53d584747056ce1e682c6f78221a05ba67769d6a603204"
50
+ "digest": "2e98122d651d646113672c5bf0c98743d25205e12548b9652b398b7d0e16eb11"
51
51
  }
52
52
  },
53
53
  "linux-arm64": {
54
- "name": "compozy_0.1.10_linux_arm64.tar.gz",
55
- "url": "https://github.com/compozy/compozy/releases/download/v0.1.10/compozy_0.1.10_linux_arm64.tar.gz",
54
+ "name": "compozy_0.1.11_linux_arm64.tar.gz",
55
+ "url": "https://github.com/compozy/compozy/releases/download/v0.1.11/compozy_0.1.11_linux_arm64.tar.gz",
56
56
  "bins": [
57
57
  "compozy"
58
58
  ],
59
59
  "format": "tar.gz",
60
60
  "checksum": {
61
61
  "algorithm": "sha256",
62
- "digest": "a89a221bb2385456d6de1a7830c7023d6d9c94cb0be9dc4c02d3fe801f198e4f"
62
+ "digest": "83e8bd3f52046384c70eb2ea8e34d084e39117775d987136b0aeb0842931526f"
63
63
  }
64
64
  },
65
65
  "linux-x64": {
66
- "name": "compozy_0.1.10_linux_x86_64.tar.gz",
67
- "url": "https://github.com/compozy/compozy/releases/download/v0.1.10/compozy_0.1.10_linux_x86_64.tar.gz",
66
+ "name": "compozy_0.1.11_linux_x86_64.tar.gz",
67
+ "url": "https://github.com/compozy/compozy/releases/download/v0.1.11/compozy_0.1.11_linux_x86_64.tar.gz",
68
68
  "bins": [
69
69
  "compozy"
70
70
  ],
71
71
  "format": "tar.gz",
72
72
  "checksum": {
73
73
  "algorithm": "sha256",
74
- "digest": "3915ad13f8ebd5d0176927130878f77fe87302989dcbbcfdf3e560b86dd75c19"
74
+ "digest": "6a2c0ad67b81e0424983677f745daf72ce166b4e3dbfc99db45c1159037fb53f"
75
75
  }
76
76
  },
77
77
  "win32-x64": {
78
- "name": "compozy_0.1.10_windows_x86_64.zip",
79
- "url": "https://github.com/compozy/compozy/releases/download/v0.1.10/compozy_0.1.10_windows_x86_64.zip",
78
+ "name": "compozy_0.1.11_windows_x86_64.zip",
79
+ "url": "https://github.com/compozy/compozy/releases/download/v0.1.11/compozy_0.1.11_windows_x86_64.zip",
80
80
  "bins": [
81
81
  "compozy.exe"
82
82
  ],
83
83
  "format": "zip",
84
84
  "checksum": {
85
85
  "algorithm": "sha256",
86
- "digest": "72f4d3ce6caa32aca4fb09f5a5803968de6a514553266cfe0948ca370d51dd00"
86
+ "digest": "6a27063b8e2a6932770d1f20932685e58e33796d24aac001b852f8faba1a4412"
87
87
  }
88
88
  }
89
89
  }