compound-agent 1.2.10 → 1.3.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.
package/CHANGELOG.md CHANGED
@@ -9,6 +9,68 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9
9
 
10
10
  ## [Unreleased]
11
11
 
12
+ ## [1.3.0] - 2026-02-21
13
+
14
+ ### Added
15
+
16
+ - **Setup hardening**: Four new pre-flight checks during `ca init` and `ca setup`:
17
+ - **Beads CLI check** (`beads-check.ts`): Detects if `bd` is available, shows install URL if missing (informational, non-blocking)
18
+ - **User-scope detection** (`scope-check.ts`): Warns when installing at home directory level where lessons are shared across projects
19
+ - **.gitignore injection** (`gitignore.ts`): Ensures `node_modules/` and `.claude/.cache/` patterns exist in `.gitignore`
20
+ - **Upgrade detection** (`upgrade.ts`): Detects existing installs and runs migration pipeline (deprecated command removal, header stripping, doc version update)
21
+ - **Upgrade engine**: Automated migration from v1.2.x to v1.3.0:
22
+ - Removes 5 deprecated CLI wrapper commands (`search.md`, `list.md`, `show.md`, `stats.md`, `wrong.md`)
23
+ - Strips legacy `<!-- generated by compound-agent -->` headers from installed files
24
+ - Updates `HOW_TO_COMPOUND.md` version during upgrade
25
+ - **`/compound:research` skill**: PhD-depth research producing structured survey documents following `TEMPLATE_FOR_RESEARCH.md` format
26
+ - **`/compound:test-clean` skill**: 5-phase test suite optimization with adversarial review (audit, design, implement, verify, report)
27
+ - **Documentation template**: `HOW_TO_COMPOUND.md` deployed to `docs/compound/` during setup with version and date placeholders
28
+ - **Test scripts**: `test:segment` (run tests for specific module), `test:random` (seeded random subset), `test:critical` (*.critical.test.ts convention)
29
+ - **3 new doctor checks**: Beads CLI availability, `.gitignore` health, usage documentation presence
30
+
31
+ ### Fixed
32
+
33
+ - **`setup --update --dry-run` no longer mutates files**: `runUpgrade()` now accepts a `dryRun` parameter propagated to all sub-functions (removeDeprecatedCommands, stripGeneratedHeaders, upgradeDocVersion)
34
+ - **`setup --uninstall` respects plugin.json ownership**: Checks `name === "compound-agent"` before deleting; user-owned plugin manifests are preserved
35
+ - **Upgrade ownership guard**: `removeDeprecatedCommands` checks file content for compound-agent markers before deleting, preventing silent removal of user-authored files with the same name
36
+ - **Malformed settings.json no longer silently clobbered**: On parse error, `configureClaudeSettings` warns and skips instead of overwriting with empty config
37
+
38
+ ### Changed
39
+
40
+ - **`setup --update` overhaul**: Now uses path-based file detection (compound/ = managed) instead of marker-based. Runs upgrade pipeline and `.gitignore` remediation during update
41
+ - **JSON-first `bd` parsing in loop**: `jq` primary with `python3` fallback via `parse_json()` helper
42
+ - **CLI test helpers hardened**: Replaced shell string interpolation with `execFileSync` for safety and reliability
43
+ - **Beads check portable**: Uses POSIX `command -v` instead of non-portable `which`
44
+ - **Template expansion**: Brainstorm and plan skills now cross-reference researcher skill; 9 total skills, 11 total commands
45
+ - **Code organization**: Extracted display utilities to `display-utils.ts`, uninstall logic to `uninstall.ts`
46
+
47
+ ### Removed
48
+
49
+ - **5 deprecated CLI wrapper commands**: `search.md`, `list.md`, `show.md`, `stats.md`, `wrong.md` (redundant wrappers around `npx ca <cmd>`)
50
+ - **`GENERATED_MARKER` on new installs**: New installs use path-based detection; marker retained only for backward-compatible `--update` detection
51
+
52
+ ## [1.2.11] - 2026-02-19
53
+
54
+ ### Added
55
+
56
+ - **Git worktree integration** (`ca worktree`): Isolate epic work in separate git worktrees for parallel execution. Five subcommands:
57
+ - `ca worktree create <epic-id>` — Create worktree, install deps, copy lessons, create Merge beads task
58
+ - `ca worktree wire-deps <epic-id>` — Connect Review/Compound tasks as merge blockers (graceful no-op without worktree)
59
+ - `ca worktree merge <epic-id>` — Two-phase merge: resolve conflicts in worktree, then land clean on main
60
+ - `ca worktree list` — Show active worktrees with epic and merge task status
61
+ - `ca worktree cleanup <epic-id>` — Remove worktree, branch, and close Merge task (--force for dirty worktrees)
62
+ - **`/compound:set-worktree` slash command**: Set up a worktree before running `/compound:lfg` for isolated epic execution
63
+ - **Conditional Merge gate in `verify-gates`**: Worktree epics require the Merge task to be closed before epic closure. Non-worktree epics unaffected.
64
+ - **Plan skill wire-deps step**: Plan phase now calls `ca worktree wire-deps` to connect merge dependencies when a worktree is active.
65
+
66
+ ### Changed
67
+
68
+ - **Worktree merge safety hardening**: Added branch verification (asserts main repo is on `main`), worktree existence guard, structured error messages with worktree paths for conflict resolution and test failures
69
+ - **JSONL reconciliation**: Switched from ID-based to line-based deduplication to preserve last-write-wins semantics for same-ID updates and deletes
70
+ - **Worktree cleanup safety**: Branch deletion uses `-d` (safe) by default; `-D` (force) only with `--force` flag
71
+ - **Shared beads utilities**: Extracted `validateEpicId`, `parseBdShowDeps`, and `shortId` to `cli-utils.ts`, eliminating duplication between `worktree.ts` and `verify-gates.ts`
72
+ - **Sync API**: All worktree functions are now synchronous (removed misleading `async` wrapper around purely synchronous `execFileSync` calls)
73
+
12
74
  ## [1.2.10] - 2026-02-19
13
75
 
14
76
  ### Fixed
@@ -534,7 +596,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
534
596
  - Vitest test suite
535
597
  - tsup build configuration
536
598
 
537
- [Unreleased]: https://github.com/Nathandela/learning_agent/compare/v1.2.10...HEAD
599
+ [Unreleased]: https://github.com/Nathandela/learning_agent/compare/v1.3.0...HEAD
600
+ [1.3.0]: https://github.com/Nathandela/learning_agent/compare/v1.2.11...v1.3.0
601
+ [1.2.11]: https://github.com/Nathandela/learning_agent/compare/v1.2.10...v1.2.11
538
602
  [1.2.10]: https://github.com/Nathandela/learning_agent/compare/v1.2.9...v1.2.10
539
603
  [1.2.9]: https://github.com/Nathandela/learning_agent/compare/v1.2.7...v1.2.9
540
604
  [1.2.7]: https://github.com/Nathandela/learning_agent/compare/v1.2.6...v1.2.7
package/README.md CHANGED
@@ -175,6 +175,16 @@ The CLI binary is `ca` (alias: `compound-agent`).
175
175
  | `ca rules check` | Run repository-defined rule checks |
176
176
  | `ca test-summary` | Run tests and output a compact summary |
177
177
 
178
+ ### Worktree
179
+
180
+ | Command | Description |
181
+ |---------|-------------|
182
+ | `ca worktree create <epic-id>` | Create isolated worktree for an epic |
183
+ | `ca worktree wire-deps <epic-id>` | Wire Review/Compound as merge blockers |
184
+ | `ca worktree merge <epic-id>` | Two-phase merge back to main |
185
+ | `ca worktree list` | List active worktrees with status |
186
+ | `ca worktree cleanup <epic-id>` | Remove worktree and clean up (--force for dirty) |
187
+
178
188
  ### Automation
179
189
 
180
190
  | Command | Description |
@@ -213,6 +223,7 @@ Installed to `.claude/commands/compound/` during setup. Invoked as slash command
213
223
  | `/compound:review` | Review | Multi-agent review (security, architecture, performance, tests, simplicity) |
214
224
  | `/compound:compound` | Compound | Capture lessons, solutions, patterns into memory |
215
225
  | `/compound:lfg` | All | Chain all phases sequentially |
226
+ | `/compound:set-worktree` | Setup | Create isolated git worktree for an epic |
216
227
 
217
228
  ## Memory Types
218
229