compound-agent 2.1.1 → 2.2.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 (3) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +16 -22
  3. package/package.json +5 -5
package/CHANGELOG.md CHANGED
@@ -7,6 +7,31 @@ All notable changes to this project will be documented in this file.
7
7
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
8
8
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
9
9
 
10
+ ## [2.2.0] - 2026-03-23
11
+
12
+ ### Added
13
+
14
+ - **CLI flag parity with TypeScript**: Ported 5 missing flags from the former TS CLI to the Go implementation for full migration parity:
15
+ - `--quiet` / `-q` global flag — suppresses non-essential `[ok]`/status output in `init` and `setup`
16
+ - `init --skip-agents` — skips template installation (AGENTS.md, skills, commands, docs)
17
+ - `init --skip-claude` — skips Claude Code hooks installation (alias for `--skip-hooks`)
18
+ - `setup claude --dry-run` — previews what would be installed/upgraded/reconciled without writing
19
+ - `download-model --json` — outputs download result as JSON
20
+ - **Stack-aware quality gates**: `ca setup` now detects the project stack (Go, Rust, Python, Node, Make) and substitutes `{{QUALITY_GATE_TEST}}` / `{{QUALITY_GATE_LINT}}` placeholders in skill and doc templates with the correct commands. Non-JS codebases no longer see hardcoded `pnpm test` / `pnpm lint`.
21
+
22
+ ### Changed
23
+
24
+ - **Refactored `main.go`**: Extracted `buildHooksCmd()` helper from `main()` to stay within 50-line function limit.
25
+ - **Refactored `commands_setup.go`**: Extracted `setupClaudeOpts` struct and `runSetupClaude()` function from the `registerSetupClaudeCmd` inline closure.
26
+ - **Refactored `commands_advanced.go`**: Extracted `printDownloadModelResult()` helper from `downloadModelCmd`.
27
+
28
+ ## [2.1.2] - 2026-03-23
29
+
30
+ ### Fixed
31
+
32
+ - **Compound-agent prime output was invisible in Claude hooks**: `ca prime` now writes normal command output to stdout instead of stderr, so `SessionStart` and `PreCompact` hook output is visible to Claude Code rather than being dropped by stderr redirection or ignored by hook rendering.
33
+ - **Duplicate Claude hook reconciliation**: `ca setup claude` now detects and repairs duplicated compound-agent hook entries in `.claude/settings.json` instead of treating them as healthy installs. Hook detection and removal now correctly recognize shell-escaped binary commands like `'/path/to/ca' prime`.
34
+
10
35
  ## [2.1.1] - 2026-03-23
11
36
 
12
37
  ### Fixed
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  [![npm version](https://img.shields.io/npm/v/compound-agent)](https://www.npmjs.com/package/compound-agent)
6
6
  [![license](https://img.shields.io/npm/l/compound-agent)](LICENSE)
7
- [![TypeScript](https://img.shields.io/badge/TypeScript-5.3+-blue)](https://www.typescriptlang.org/)
7
+ [![Go](https://img.shields.io/badge/Go-1.24+-00ADD8)](https://go.dev/)
8
8
 
9
9
  <p align="center">
10
10
  <img src="docs/assets/diagram-4.png" alt="Compound-agent ecosystem overview: Architect phase decomposes work via Socratic dialogue into a dependency graph. ca loop chains tasks with cross-model review, retry, and fresh sessions. Scenario evaluation validates changes with iterative refinement. All backed by persistent memory (lessons + knowledge across all sessions) and verification gates (tests, lint, type checks on every task)." width="700">
@@ -342,11 +342,14 @@ The CLI binary is `ca` (alias: `compound-agent`).
342
342
  | `ca setup` | One-shot setup (hooks + templates) |
343
343
  | `ca setup --skip-hooks` | Setup without installing hooks |
344
344
  | `ca setup --json` | Output result as JSON |
345
- | `ca setup --repo-root <path>` | Specify repository root |
346
345
  | `ca setup claude` | Install Claude Code hooks only |
347
346
  | `ca setup claude --status` | Check Claude Code integration health |
348
347
  | `ca setup claude --uninstall` | Remove Claude hooks only |
348
+ | `ca setup claude --dry-run` | Preview what would change without writing |
349
349
  | `ca init` | Initialize compound-agent in current repo |
350
+ | `ca init --skip-agents` | Skip AGENTS.md and template installation |
351
+ | `ca init --skip-claude` | Skip Claude Code hooks installation |
352
+ | `ca download-model --json` | Download embedding model with JSON output |
350
353
  | `ca about` | Show version, animation, and recent changelog |
351
354
  | `ca doctor` | Verify external dependencies and project health |
352
355
 
@@ -394,32 +397,23 @@ A: The loop works and has been used to ship real projects, including compound-ag
394
397
  ## Development
395
398
 
396
399
  ```bash
397
- pnpm install # Install dependencies
398
- pnpm build # Build with tsup
399
- pnpm dev # Watch mode (rebuild on changes)
400
- pnpm lint # Type check + ESLint
400
+ cd go && go build -tags sqlite_fts5 ./cmd/ca # Build CLI binary
401
+ cd go && go test -tags sqlite_fts5 ./... # Full test suite
402
+ cd go && go vet -tags sqlite_fts5 ./... # Static analysis
401
403
  ```
402
404
 
403
- | Script | Duration | Use Case |
404
- |--------|----------|----------|
405
- | `pnpm test:fast` | ~12s | Rapid feedback during development |
406
- | `pnpm test` | ~60s | Full suite before committing |
407
- | `pnpm test:changed` | varies | Only tests affected by recent changes |
408
- | `pnpm test:watch` | - | Watch mode for TDD workflow |
409
- | `pnpm test:all` | ~60s | Full suite with model download |
410
-
411
405
  ## Technology Stack
412
406
 
413
407
  | Component | Technology |
414
408
  |-----------|------------|
415
- | Language | TypeScript (ESM) |
416
- | Package Manager | pnpm |
417
- | Build | tsup |
418
- | Testing | Vitest + fast-check (property tests) |
419
- | Storage | better-sqlite3 + FTS5 |
420
- | Embeddings | @huggingface/transformers + nomic-embed-text-v1.5 (Q8 ONNX) |
421
- | CLI | Commander.js |
422
- | Schema | Zod |
409
+ | Language | Go |
410
+ | Package Manager | Go modules (+ pnpm for npm wrapper) |
411
+ | Build | go build with CGO + sqlite_fts5 tag |
412
+ | Testing | go test + table-driven tests |
413
+ | Storage | mattn/go-sqlite3 + FTS5 |
414
+ | Embeddings | ca-embed (Rust daemon via IPC) |
415
+ | CLI | Cobra |
416
+ | Release | GoReleaser |
423
417
  | Issue Tracking | Beads (bd) |
424
418
 
425
419
  ## Documentation
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "compound-agent",
3
- "version": "2.1.1",
3
+ "version": "2.2.0",
4
4
  "type": "module",
5
5
  "description": "Learning system for Claude Code — avoids repeating mistakes across sessions",
6
6
  "bin": {
@@ -50,10 +50,10 @@
50
50
  "knowledge-management"
51
51
  ],
52
52
  "optionalDependencies": {
53
- "@syottos/darwin-arm64": "2.1.1",
54
- "@syottos/darwin-x64": "2.1.1",
55
- "@syottos/linux-arm64": "2.1.1",
56
- "@syottos/linux-x64": "2.1.1"
53
+ "@syottos/darwin-arm64": "2.2.0",
54
+ "@syottos/darwin-x64": "2.2.0",
55
+ "@syottos/linux-arm64": "2.2.0",
56
+ "@syottos/linux-x64": "2.2.0"
57
57
  },
58
58
  "author": "Nathan Delacrétaz",
59
59
  "license": "MIT",