@dzhechkov/harness-cli 0.3.191 → 0.3.193

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/README.md CHANGED
@@ -363,7 +363,7 @@ dz setup --target <name> [--preset <name>] [--select id,id,...] [--s
363
363
  dz init --target <name> [--preset <name>] [--select id,id,...] [--force]
364
364
  dz install <npm-pkg> [--target <name>] [--project <dir>] [--force]
365
365
  dz bundle [--preset <name> | --select id,...] [--out <dir>] [--skills-dir <dir>] [--force]
366
- dz teach "<pattern>" [--reward <0-1>] [--domain <name>] [--type rule|success-pattern|lesson-learned] [--no-mirror]
366
+ dz teach "<pattern>" [--reward <0-1>] [--domain <name>] [--type rule|success-pattern|lesson-learned] [--project <dir>] [--no-mirror] # --project pins the learned store to <dir>/.dz (not the cwd) — pin to a canonical brain
367
367
  dz teach --from-json <file> [--project <dir>] [--no-mirror] # bulk-import a `dz recall --all --json` export (share a learned store across machines)
368
368
  dz consolidate [--sessions-dir <dir>] [--project <dir>] [--no-mirror]
369
369
  dz recall "<query>" [--limit <N>] [--semantic | --no-semantic] [--project <dir>] # hybrid lexical+vector when the vector tier is enabled
@@ -1125,6 +1125,30 @@ dz vector harmonize --apply # collapse (backup written first;
1125
1125
  dz teach --harmonize # same thing — documented alias
1126
1126
  ```
1127
1127
 
1128
+ ### One canonical brain store — sharing + fragmentation recovery
1129
+
1130
+ The self-learning loop is only compounding if every run reads and writes the **same** store. Two things make that hold:
1131
+
1132
+ - **One brain grows across runs.** The `feature-adr` workflow pins its Step-0 `dz recall` and Step-8 `dz teach` to `args.brain` (default = the workspace root), so every run reads and writes the *same* `<brain>/.dz` store and the pool count in `dz statusline` climbs monotonically. Because `dz teach --project <dir>` writes to `<dir>/.dz` (not the process cwd), the lesson lands in the brain even when a code agent has `cd`'d into a target repo. Override `args.brain` with a stable absolute path to keep one brain across several target checkouts.
1133
+ - **Share with colleagues (idempotent):**
1134
+ ```bash
1135
+ dz recall --all --json > patterns.json # export the WHOLE store (SHARING form)
1136
+ dz teach --from-json patterns.json --project <brain> # import on their machine (exact-text dedup)
1137
+ ```
1138
+ - **Recover an accidentally-fragmented store.** If a lesson was taught while cd'd into a stray repo (so it landed in `<stray>/.dz`), merge it back into the canonical brain — a JSON round-trip, no new tooling, dedup-by-exact-text so it is **idempotent** (re-running imports zero):
1139
+ ```bash
1140
+ cd <stray-repo> && dz recall --all --json > /tmp/stray.json # export the stray store
1141
+ dz teach --from-json /tmp/stray.json --project <brain> # merge into the canonical brain
1142
+ dz vector harmonize --apply --project <brain> # optional: collapse near-dup paraphrases
1143
+ ```
1144
+
1145
+ - **Route each stage to an optimal model — `args.models`.** The `feature-adr` workflow takes an optional per-stage map (`{router, requirements, research, adr, ideation, ddd, architecture, plan, code, qe, fleet}`); each value a **spec** — Claude `fable|opus|sonnet|haiku` or Codex `codex[:id[:reasoning]]` (ids incl. `gpt-5.5`, `gpt-5.6`) — backed by a proven default table. The **load-bearing default**: when `models.qe` is unset, QE auto-routes to the *other family than the coder* (a model that writes code must not also self-QE — cross-model review catches what self-review misses), falling back to a Claude reviewer if Codex is absent (never blocks). `args.models[stage]` wins over the legacy `planner`/`coder`/`qeReviewer`/`codexModel` knobs; omitting it is byte-identical to today; the result reports `modelsUsed`. Adding a new Codex id is a data-only allowlist edit (gpt-5.6-ready).
1146
+ ```js
1147
+ // Claude codes, Codex independently QEs (cross-model by construction):
1148
+ Workflow({ scriptPath: '.claude/workflows/feature-adr.js',
1149
+ args: { slug: 'add-oauth', description: '…', tier: 'L', models: { code: 'opus', qe: 'codex:gpt-5.6:high' } } })
1150
+ ```
1151
+
1128
1152
  **"Verify the whole thing is healthy."**
1129
1153
  ```bash
1130
1154
  dz doctor # node, skills, backend
package/dist/cli.js CHANGED
@@ -30,7 +30,7 @@ Usage:
30
30
  dz bundle [--preset <name> | --select id,id,...] [--out <dir>] [--skills-dir <dir>] [--force] (portable self-contained skill bundles for a generic/LangGraph consumer)
31
31
  dz publish [--filter <name>] [--bump-only] (dry-run by default; pass --yes/--confirm/--no-dry-run to go live)
32
32
  dz setup --target <name> [--preset <name>] [--select id,id,...] [--skills-dir <dir>] [--project <dir>] [--memory agentdb] [--no-memory] [--no-hooks] [--install-driver] [--force] [--enrich]
33
- dz teach "<pattern>" [--reward <0-1>] [--domain <name>] [--type rule|success-pattern|lesson-learned] [--no-mirror]
33
+ dz teach "<pattern>" [--reward <0-1>] [--domain <name>] [--type rule|success-pattern|lesson-learned] [--project <dir>] [--no-mirror] (--project pins the learned store to <dir>/.dz, not the cwd — pin to a canonical brain)
34
34
  dz teach --from-json <file> [--project <dir>] [--no-mirror] (bulk-import a 'dz recall --all --json' export — share a learned store across machines)
35
35
  dz consolidate [--sessions-dir <dir>] [--project <dir>] [--no-mirror] [--prune-noise]
36
36
  dz recall "<query>" [--limit <N>] [--semantic | --no-semantic] [--books [--book <slug>]] [--project <dir>] | dz recall --all [--json]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dzhechkov/harness-cli",
3
- "version": "0.3.191",
3
+ "version": "0.3.193",
4
4
  "description": "The dz CLI — install AI skills for Claude Code, Codex, OpenCode, Hermes, OpenClaude, GitHub Copilot. 35 commands, 13 presets, 6 platform targets.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -54,7 +54,7 @@
54
54
  "@dzhechkov/skills-reverse-engineering": "^0.1.0",
55
55
  "@dzhechkov/skills-presentation-storyteller": "^0.1.0",
56
56
  "@dzhechkov/skills-website-cloner": "^0.1.0",
57
- "@dzhechkov/harness-core": "0.3.88"
57
+ "@dzhechkov/harness-core": "0.3.90"
58
58
  },
59
59
  "devDependencies": {
60
60
  "@types/node": "^25.6.0",
package/src/cli.ts CHANGED
@@ -100,7 +100,7 @@ Usage:
100
100
  dz bundle [--preset <name> | --select id,id,...] [--out <dir>] [--skills-dir <dir>] [--force] (portable self-contained skill bundles for a generic/LangGraph consumer)
101
101
  dz publish [--filter <name>] [--bump-only] (dry-run by default; pass --yes/--confirm/--no-dry-run to go live)
102
102
  dz setup --target <name> [--preset <name>] [--select id,id,...] [--skills-dir <dir>] [--project <dir>] [--memory agentdb] [--no-memory] [--no-hooks] [--install-driver] [--force] [--enrich]
103
- dz teach "<pattern>" [--reward <0-1>] [--domain <name>] [--type rule|success-pattern|lesson-learned] [--no-mirror]
103
+ dz teach "<pattern>" [--reward <0-1>] [--domain <name>] [--type rule|success-pattern|lesson-learned] [--project <dir>] [--no-mirror] (--project pins the learned store to <dir>/.dz, not the cwd — pin to a canonical brain)
104
104
  dz teach --from-json <file> [--project <dir>] [--no-mirror] (bulk-import a 'dz recall --all --json' export — share a learned store across machines)
105
105
  dz consolidate [--sessions-dir <dir>] [--project <dir>] [--no-mirror] [--prune-noise]
106
106
  dz recall "<query>" [--limit <N>] [--semantic | --no-semantic] [--books [--book <slug>]] [--project <dir>] | dz recall --all [--json]