@dzhechkov/harness-cli 0.8.15 → 0.8.17

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/.dz-manifest.json CHANGED
@@ -9,7 +9,7 @@
9
9
  },
10
10
  {
11
11
  "path": "README.md",
12
- "sha256": "ce474e87118603123db01d0d6a15d922e874aa9eaa33229882d930dc7dde04d7"
12
+ "sha256": "0a9553b413db2cf2e1ac11fa7809974dbba743e457bc2898850e32536f70a000"
13
13
  },
14
14
  {
15
15
  "path": "dist/bin.d.ts",
@@ -33,31 +33,31 @@
33
33
  },
34
34
  {
35
35
  "path": "dist/boolean-flags.d.ts.map",
36
- "sha256": "a15e65e835e952abf9d93fba352c2c6f840ce37458e22b52e8be2b6bd87b99fd"
36
+ "sha256": "5d168189752313c0592f291f57187feab46445478bb3c6d1f6b9330de4205c83"
37
37
  },
38
38
  {
39
39
  "path": "dist/boolean-flags.js",
40
- "sha256": "a0168adf31a200eaf7891f99ba6609cb08b5a1960ef1aaeff678e976ebc1f458"
40
+ "sha256": "88ddbf29e0b97f22ad8c8cb65fae8202098627decf4f4d0bdbb24374be7e273c"
41
41
  },
42
42
  {
43
43
  "path": "dist/boolean-flags.js.map",
44
- "sha256": "879fce0bcbe4d86f4c45920fb55696d674e4b13753c34223570e1ce4cc4845ab"
44
+ "sha256": "5a772e4d7d6c1515d31645b689e2bd92d1c1c42625ea0f439981c2d5b0f8dd0d"
45
45
  },
46
46
  {
47
47
  "path": "dist/cli.d.ts",
48
- "sha256": "ed6343630400b6607e3b2eaadd9d57e694da5e0465a5136e802e6937175de190"
48
+ "sha256": "a4f6ad121c0e81336e517b10ba656af428cc07d9f41fdc00967d1cd0122be1ee"
49
49
  },
50
50
  {
51
51
  "path": "dist/cli.d.ts.map",
52
- "sha256": "15386e1db8287bd1345528d08ef719be9044d5eac621fce86ea6cb13d2866c45"
52
+ "sha256": "40ce13aec8fc6cb0beb1ed02f07bb22438f940d52ef59d02f6dc9352e67b8d79"
53
53
  },
54
54
  {
55
55
  "path": "dist/cli.js",
56
- "sha256": "d717bdd37c4e8d04d3364dbe37b7a878eadf8d38a25f6ababec98017208cc506"
56
+ "sha256": "b5b87557988b5ec5e58913f53068e35dd5a8f8aac6c62f409d13ab9d9b8202b7"
57
57
  },
58
58
  {
59
59
  "path": "dist/cli.js.map",
60
- "sha256": "649c6d2b02b478362d85882c5b01be755a2df4ccfe2f91474d5a418aae5f8b05"
60
+ "sha256": "4d0925b3047fc96233ddb1118b071a0a1eca35995a06f30cdfc8b2e613f1ec31"
61
61
  },
62
62
  {
63
63
  "path": "dist/command-inventory.d.ts",
@@ -129,15 +129,15 @@
129
129
  },
130
130
  {
131
131
  "path": "dist/known-flags.d.ts.map",
132
- "sha256": "30ee87b379eddb4da7f497c7b5f330e803e15d667d875a77f36eea9a374b8949"
132
+ "sha256": "703058c8bbf0307ab29f12f8355c8984508f38214c32ab85da790446f0cb9699"
133
133
  },
134
134
  {
135
135
  "path": "dist/known-flags.js",
136
- "sha256": "9d526ae74a6026c47e0fcbce5b5fd1e980fe1a5c9bd80a95d878f31b83c530cb"
136
+ "sha256": "6bae6e7f551b6024e3212655f4c5a8f9e426ae0858ff3e65f08d0539bb617028"
137
137
  },
138
138
  {
139
139
  "path": "dist/known-flags.js.map",
140
- "sha256": "23c7e0e140989a4aa1225b6b0027cffdc69e38a0ab2a1842c6b17e85e0685eb3"
140
+ "sha256": "9edabc481a2545ac56ddfdfba82623cd3ac1cf8a37551b5ff43930bf5f2ef48f"
141
141
  },
142
142
  {
143
143
  "path": "keys/README.md",
@@ -149,7 +149,7 @@
149
149
  },
150
150
  {
151
151
  "path": "package.json",
152
- "sha256": "18211ce5363b82fbaea0593609b687c3705a60dd559c80a96d198f19c3f82402"
152
+ "sha256": "1db45f8ab165516a8592bf9bb9dba68993f66e0f4a8b8e42b93c1cfa140a85f7"
153
153
  },
154
154
  {
155
155
  "path": "src/bin.ts",
@@ -157,11 +157,11 @@
157
157
  },
158
158
  {
159
159
  "path": "src/boolean-flags.ts",
160
- "sha256": "36af96b1f0d629d90edbceafa2ce94aee5d31b51cb9ce9dbb73163d3f6643121"
160
+ "sha256": "f8f029ad790f43d28fcc1e520c4f74ee39b3a9591d71619546165149a914b054"
161
161
  },
162
162
  {
163
163
  "path": "src/cli.ts",
164
- "sha256": "7f6d7dbd6216436ffc19888b167d05b77cf6407758d4805d793f8830da315260"
164
+ "sha256": "5ba834f5795e8d4208159aa6fbee738f38978ada811f49ba85f6798079970144"
165
165
  },
166
166
  {
167
167
  "path": "src/command-inventory.ts",
@@ -181,9 +181,9 @@
181
181
  },
182
182
  {
183
183
  "path": "src/known-flags.ts",
184
- "sha256": "a744b4f1ec364464ae63acbdba613eb7a389c14cf8f98c89b5d712877326966f"
184
+ "sha256": "f00496dde83db529d8dde54cf1a5a0048c4c08c49c085e035ad1c90d6a602b30"
185
185
  }
186
186
  ]
187
187
  },
188
- "signature": "QOlXcEGN7yGgepJKgYaeJDGUci1a64zn/AbYVSQkGEE/xOY9lEACQCx7A/DKPQlWrx2BvND/6XC7qJwX9p7+Aw=="
188
+ "signature": "pMVdgsF1bhazSOV4x1vzs+67DwlCf+cXrQ3qLIjnxgjL+cdMNtny7gop0jF1qpwXw5fQx8JBixMly8tZl49qDw=="
189
189
  }
package/README.md CHANGED
@@ -279,7 +279,7 @@ you know exactly which file is at fault, and you know whose defect it is.
279
279
 
280
280
  ## User Journey — from install to mastery
281
281
 
282
- All 87 commands (MEASURED — reproducer: `node --input-type=module -e "import('./dist/index.js').then(m=>console.log(m.DZ_COMMANDS.length))"` from this package; rendered help documents 88 unique top-level names — the 87 plus the built-in `help` — pinned NAME-FOR-NAME by `test/command-inventory-parity.test.ts`) mapped to a real workflow:
282
+ All 91 commands (MEASURED — reproducer: `node --input-type=module -e "import('./dist/index.js').then(m=>console.log(m.DZ_COMMANDS.length))"` from this package; rendered help documents 92 unique top-level names — the 91 plus the built-in `help` — pinned NAME-FOR-NAME by `test/command-inventory-parity.test.ts`) mapped to a real workflow:
283
283
 
284
284
  ```
285
285
  DISCOVER → INSTALL → USE → CREATE → MAINTAIN → SHARE
@@ -651,6 +651,7 @@ Three surfaces, three strictness levels — and promotion is EARNED, never autom
651
651
 
652
652
  ```bash
653
653
  dz teach "..." # → "⚠ quarantined: excluded from auto-inject, damped in recall"
654
+ dz teach "..." # the same normalized text reinforces the existing lesson instead of adding a duplicate; quarantine is preserved
654
655
  dz recall "topic" # ⚠q hits are VISIBLE but marked + rank-damped (never hidden)
655
656
  # the UserPromptSubmit auto-inject hook EXCLUDES ⚠q lessons entirely (logged, never silent)
656
657
 
@@ -1938,10 +1939,10 @@ runs a command that MEASURES the declared artifacts itself. It refuses a null re
1938
1939
  never recorded as done), an absent or partially-present artifact set, and a stage that declares nothing
1939
1940
  to witness — so a stage that did not happen can no longer be recorded, which the old mechanism allowed.
1940
1941
 
1941
- ## All Commands (87)
1942
+ ## All Commands (91)
1942
1943
 
1943
- *(87 MEASURED from the bounded command inventory below; rendered `dz --help` exposes 88 unique
1944
- top-level names — the 87 plus the built-in `help`, which prints USAGE before the dispatch switch and
1944
+ *(91 MEASURED from the bounded command inventory below; rendered `dz --help` exposes 92 unique
1945
+ top-level names — the 91 plus the built-in `help`, which prints USAGE before the dispatch switch and
1945
1946
  is therefore documented without being a command. Both numbers are COMPUTED, never typed: the name
1946
1947
  sets of this section, the root README, the docs site and `DZ_COMMANDS` are pinned to each other by
1947
1948
  `test/command-inventory-parity.test.ts`.)*
@@ -2006,7 +2007,11 @@ dz bto-optimize --split|--plan|--select|--scope-check|--diff [--json] # determ
2006
2007
  dz discrimination-check --test <f[,f]> [--base <ref>] [--name <filter>] [--runner <cmd>] [--timeout <ms>] [--json] # §42 test-discrimination gate for feature-adr Step-8: run the ADR's property test in an isolated git worktree at pre-feature base — it MUST go red without the fix. SEVEN verdicts, each gated on EXECUTION evidence: DISCRIMINATES · DISCRIMINATES_VIA_ERROR · NON_DISCRIMINATING (false green) · TEST_FILE_ABSENT · LOAD_ERROR_AT_BOTH_REVS · FAILS_AT_TIP · CANNOT_ISOLATE (+ typed reason). Advisory, never auto-aborts
2007
2008
  dz amendment-check --slug <slug> | --feature-dir <dir> | --all [--json] (every AM-N / AM-CP-N amendment row must resolve to a test found INSIDE the file the row names; the PLAN is authoritative when it carries rows, and an ideation amendment the plan drops is a failure; --all is a census that always exits 0; exit 0 pass/skip, 1 fail, 3 NOT-ESTABLISHED — ZERO parsed rows may skip only when the whole first paragraph or heading suffix is exactly "None"/"N/A"/"нет", optionally with a full stop; an optional CommonMark closing # sequence is heading furniture, qualified text is refused, and AM-like content beside the declaration is NOT-ESTABLISHED)
2008
2009
  dz contract-check --slug <s> [--json] (read-only retrospective feature contract gate: canonical AC-N + ADR Confirmation → CC-N; every item needs one artifact-anchored met|unmet|not-testable verdict; A/B with unmet is refused; exit 0 pass / 1 readable violation / 2 invalid invocation or unreadable/not-established artifacts)
2010
+ dz journal add --kind decision|verdict|run|error|block "<text>" [--ref <trace>] [--at <ISO>] [--quote <file>] [--commit-quote]; show [--day|--week] [--at <date>] [--kind <kind>] [--json] # UTC day files, witnessed append; quotes local by default
2009
2011
  dz feature-adr-record --kind ledger|training-pair --stage <s> [--slug <s>] [--row|--pair <json>] [--mark <n>] [--once] [--json] (the witnessed writer: payload as an ARGUMENT never as shell, refused before any write, timestamp stamped before serialising, append verified by re-reading the tail; exit 0 written|duplicate|skipped, 2 refused, 3 not-verified, never blocking)
2012
+ dz runs [--settle] [--stall-minutes N] [--json] [--project <dir>] (read the run registry: live / stalled / orphaned / inconclusive / finished)
2013
+ dz runs-record --event started|heartbeat|finished [--run-id <id>] [--kind <kind>] [--slug <slug>] [--pid <pid|host>] [--parent-run-id <id>] [--outcome <text>] [--project <dir>] [--json] (append one run event)
2014
+ dz runs-clean [--apply] [--retention-days N] [--project <dir>] [--json] (plan cleanup of old clean merged worktrees and dead/finished registry histories; apply explicitly)
2010
2015
  dz mutation-gate [--package <dir>] [--registry <file>] [--test-cmd "<cmd>"] [--only <id[,id]>] [--timeout <ms>] [--rebaseline per-entry|final] [--keep-scratch] [--json] # the mutation gate: for each NAMED protection in a declarative registry, copy the package to a scratch dir (shadow-repo layout, node_modules symlinked, git-initialized), verify the baseline is green, apply the entry's exact {find, replace} mutation, run the suite, REQUIRE red, restore — and require the red to be ATTRIBUTABLE to the protection: a mutated file that no longer parses is MUTATION_UNPARSEABLE, a failing count far above the entry's bound (maxFailing, default from observed) is OVER_FAILING, and a restored tree that does not reproduce green makes the entry INCONCLUSIVE (flaky suite). A mutation that does not apply, a green suite, or an inconclusive run is a FAILURE — never a skip. exit 0 all proven / 1 gate failed / 2 setup error
2011
2016
  dz delivery-check --slug <slug> [--context-only] [--findings <f.json>] [--strict] [--author <model>] [--json] # portable Step-10 Delivery Gate: the `manual` form that travels to every shell target — prints the 4-plane review brief (regressions ‖ security ‖ code-quality ‖ product-honesty) + artifact probes; --findings classifies a fed-back review into a fail-closed ready|blocked hand-off (only cross-validated BLOCKER/HIGH count) and writes features/<slug>/10_delivery_review.md; --strict exits 1 on blocked
2012
2017
  dz skills-verify [--dir <project>] [--expect a,b] [--static] [--strict] [--timeout <s>] [--json] # does .claude/skills/ actually REGISTER? --static = instant layout scan (CI-safe, no session): flags dirs that can never register; default also starts a real session and reads the authoritative system/init listing. exit 0 pass / 1 fail / 2 inconclusive — an unobservable registration is NEVER a pass
@@ -2063,7 +2068,7 @@ dz import-ecc [--local-path <dir>] [--select id,id,...] [--limit N] [--out
2063
2068
  ```
2064
2069
 
2065
2070
  Built-in, not a command: `dz help` prints this same USAGE and is handled before the dispatch switch,
2066
- so `dz --help` lists 88 names while the canonical inventory above holds 87 (ADR-001 of feature
2071
+ so `dz --help` lists 92 names while the canonical inventory above holds 91 (ADR-001 of feature
2067
2072
  `command-count-triad`).
2068
2073
 
2069
2074
  **Adding a command — the whole checklist, in order.** It replaces the seven-place folklore that used
@@ -2206,17 +2211,31 @@ echo "how do I handle replication lag?" | dz brain ground --budget 2000 # eage
2206
2211
 
2207
2212
  ### Live self-learning panel (`dz statusline`)
2208
2213
 
2214
+ The owner's combined panel keeps the mirror indicator silent on equal lesson counts. On divergence
2215
+ it shows `dz 🎓 N (mirror M ⚠)`. A mirror that EXISTS but cannot be read shows
2216
+ `dz 🎓 N (mirror unreadable ⚠)`; a project with NO mirror at all stays silent — there is nothing to
2217
+ compare, and lighting up there would make the indicator permanent noise.
2218
+ The mirror figure counts LESSONS only — backlog ideas and book units are excluded, so the indicator
2219
+ is comparable with the lexical count instead of lighting up permanently. It is read from
2220
+ `vectorLessonRows`, never from `vectorRows`: that field keeps counting the whole mirror because the
2221
+ store guard reads it as an integrity signal, and narrowing it would look like a store collapse.
2222
+ The JSON payload exposes these warnings as `patternMirror`; parity omits that field. Both surfaces
2223
+ carry the indicator — the combined panel helper and `dz statusline` itself.
2224
+
2209
2225
  `dz statusline` renders a compact Claude Code statusline that surfaces dz's learning at a glance:
2210
2226
 
2211
2227
  ```
2212
- 🎓 dz: 12 (9 актив · 3 карантин) · 🧠 3 sources
2228
+ 🎓 dz: 12 (9 active · 3 quarantined) (mirror 11 ⚠) · 🧠 3 sources (223/315/60)
2213
2229
  ```
2214
2230
 
2215
2231
  The parenthesized split is read only from the primary lexical store. A row is quarantined exactly
2216
2232
  when parsed metadata has `qStatus: "quarantined"`; historical fields do not count. The quarantine
2217
- fragment is omitted at zero, `⚠` appears at one third of the pool, and `⚠ тиры ΔN` reports a
2233
+ fragment is omitted at zero, `⚠` appears at one third of the pool, and `⚠ tiers ΔN` reports a
2218
2234
  quarantine-label difference greater than five rows from the vector mirror. `M sources` is how many
2219
- brain sources (book-KBs / grounding stores) are wired. Enable it once:
2235
+ brain sources (book-KBs / grounding stores) are wired, and the parenthesised list after it gives the
2236
+ KU volume of EACH source in brain order — four sources of 300 units and four of three read
2237
+ identically without it. The list is omitted (bare source count) when the volumes cannot be
2238
+ enumerated, rather than printing invented zeros. Panel text is English by owner request. Enable it once:
2220
2239
 
2221
2240
  ```bash
2222
2241
  dz statusline --install # wires it into .claude/settings.json → statusLine
@@ -2237,7 +2256,7 @@ every trace flush:
2237
2256
 
2238
2257
  ```bash
2239
2258
  # the /feature-adr pipeline — reports the learning loop it is actually running
2240
- dz statusline --fa-record --slug add-user-auth --step "Step 8 QE" --recalled 7 --stored 2 --mode full
2259
+ dz statusline --fa-record --slug add-user-auth --step "Step 8 QE" --run-id fa-20260907-1 --recalled 7 --stored 2 --mode full
2241
2260
 
2242
2261
  # a generated loop — same file, different producer, so it says so
2243
2262
  dz statusline --fa-record --slug my-loop --step build --kind loop
@@ -2292,6 +2311,13 @@ echo '{}' | dz statusline --project "$D"
2292
2311
  # → 📐 add-user-auth [M] 5/8 ⛔ K2 → Step 6 · 0м/— # a LEGITIMATE regression, recorded verbatim
2293
2312
  ```
2294
2313
 
2314
+ The staged workflow producer creates `features/<slug>/.fa-state/run-id` from shell time on the first
2315
+ phase record, overwrites it on a new invocation, and passes `--run-id "$(cat … || true)"` on every
2316
+ phase command. `cmdStatuslineFaRecord` trims and forwards a non-empty value to the core state writer,
2317
+ so a restart of the same slug can record its real early step while a backwards record carrying the
2318
+ same id remains absorbed. The read is deliberately fail-open: no readable file, an empty flag, or an
2319
+ omitted flag keeps the legacy behavior and never stops the pipeline.
2320
+
2295
2321
  ##### A refused write is LOUD, and never breaks your pipeline
2296
2322
 
2297
2323
  The slot transition runs inside the `fa-phase-slot` named lock (it is a read-modify-write: two
@@ -3054,6 +3080,14 @@ dz mcp-scan . --reconcile --fail-on-undergrant # CI: exit 1 if a skill declare
3054
3080
 
3055
3081
  ### dz publish — automated npm publish
3056
3082
 
3083
+ For a live publish, the CLI prints `published` only after npm answers with the exact new package
3084
+ version, followed by the receipt text `confirmed by registry after N probes`. A zero exit from
3085
+ `pnpm publish` alone is not success. The publisher tries up to 30 registry probes with 10-second
3086
+ pauses between misses; an unconfirmed version is an error and its local bump is restored.
3087
+ `--dry-run` and `--bump-only` do not probe for this receipt because neither performs a live publish.
3088
+ When the receipt never arrives, the CLI adds one line telling you what to check: `npm view <pkg>@<version>` —
3089
+ if the registry answers, the publish DID land and only the local bump was rolled back; re-apply it by hand.
3090
+
3057
3091
  ```bash
3058
3092
  dz publish --dry-run # preview what would publish
3059
3093
  dz publish --filter skills-devops # publish specific package
@@ -4340,7 +4374,7 @@ The learned store round-trips across machines in **two** formats, and de-duplica
4340
4374
 
4341
4375
  **`dz vector harmonize` — semantic merge.** `dz teach --from-json` only dedups by *exact* text, so paraphrases survive: *"use DataLoader to batch queries"* and *"batch DB round-trips with a dataloader"* are separate rows. Harmonize finds near-duplicate **clusters** by cosine similarity (θ default `0.92`, `--threshold`), keeps the **highest-reward** member of each (tie-break: longer/more-specific text, then newer `ts`), folds reinforcement signal into the keeper (`uses = Σ member uses + drops`, `avgReward` = honest mean of observed member rewards, `mergedFrom` = dropped ids), then removes the rest only on `--apply`. Dry-run previews and writes nothing; apply writes a restorable backup first. It **never** drops a unique pattern. With no vector engine it degrades to **exact-text dedup + an honest note** — never throws.
4342
4376
 
4343
- **Learning signal seam.** Ranking reinforcement is behind `memory.learning.backend`: default `native` (bounded uses/recency/reward signal), kill switch `off`, and reserved `ruvector-gnn` (accepted by config with an honest fallback to native; no RuVector dependency is installed). `memory.learning.onRecallHits:false` disables the default recall-hit auto-bump. `dz teach --reinforce "<id-or-text>"` records an explicit use; `dz teach --guard` is opt-in and only reinforces near-duplicates at θ ≥ `0.95`, while a different reward still writes a new record. `dz recall --all --stats` shows store size, domains, top uses, duplicate groups, and re-teach/reinforce trend counters.
4377
+ **Learning signal seam.** Ranking reinforcement is behind `memory.learning.backend`: default `native` (bounded uses/recency/reward signal), kill switch `off`, and reserved `ruvector-gnn` (accepted by config with an honest fallback to native; no RuVector dependency is installed). `memory.learning.onRecallHits:false` disables the default recall-hit auto-bump. On the ordinary path, teaching the same normalized exact text in the same domain reinforces the existing lesson instead of writing a duplicate; a quarantined lesson stays quarantined. `dz teach --reinforce "<id-or-text>"` records an explicit use; `dz teach --guard` is opt-in and only reinforces near-duplicates at θ ≥ `0.95`, while a different reward still writes a new record. `dz recall --all --stats` shows store size, domains, top uses, duplicate groups, and re-teach/reinforce trend counters.
4344
4378
 
4345
4379
  **Before → after** (one near-dup cluster):
4346
4380
 
@@ -4607,6 +4641,14 @@ repository-relative evidence paths declared by that report. It writes no feature
4607
4641
  usage ledger, or checkpoint. Slug traversal, absolute/traversing evidence, symlink escape, and QE
4608
4642
  self-citation are refused.
4609
4643
 
4644
+ When `features/<slug>/03_adr` is absent, the command reads
4645
+ `features/<slug>/00_complexity_assessment.md`. An unambiguous S tier establishes a requirements-only
4646
+ contract and adds the informational diagnostic `adr-not-required-for-tier` without changing the
4647
+ outcome. For M, L, or XL, the same missing directory remains NOT-ESTABLISHED with the distinct code
4648
+ `adr-directory-missing`; an unreadable or ambiguous tier keeps the fail-closed
4649
+ `adr-directory-unreadable` result. An existing but unreadable ADR directory is unchanged and remains
4650
+ an `adr-directory-unreadable` refusal.
4651
+
4610
4652
  The source vocabulary is exact: `## Acceptance criteria`, one-line `AC-N: ...`, `## Confirmation`,
4611
4653
  one-line `- Load-bearing property: ...`, and one-line `- Required automated check: ...`. The QE report
4612
4654
  keeps its holistic Grade and adds one `## Contract checklist` fenced JSON payload:
@@ -4650,14 +4692,30 @@ refusal as the honest answer.
4650
4692
 
4651
4693
  ## Status
4652
4694
 
4653
- `harness-core v0.8.12` · `harness-cli v0.8.12` — **staged, not published:** ONE definition of "a dz
4695
+ `harness-core v0.8.24` · `harness-cli v0.8.17` — **this release: the instruments stopped lying in
4696
+ four measured ways.** (1) A test run's exit code no longer conflates "a test failed" with "the runner
4697
+ choked": `classifyRunFailure` names `runner-infrastructure` with the closed reason
4698
+ `worker-rpc-timeout` when zero tests failed AND the runner's own worker-RPC pattern is present — an
4699
+ infrastructure outcome is NEVER green, it only stops being anonymous. (2) The Codex routing table is
4700
+ PER-STAGE, following the owner's 2026-09-08 note: router Terra, requirements Sol, research Terra,
4701
+ ADR and architecture Astra, plan Astra on L/XL and Sol otherwise, code Sol — and the plan cell reads
4702
+ the tier the ROUTER produced, not only an explicitly passed argument, which is what kept half the
4703
+ matrix dead. (3) The owner panel gains a mirror indicator (lexical lessons vs mirrored lessons,
4704
+ silent on parity, silent when there is no mirror at all, loud when a mirror EXISTS and cannot be
4705
+ read) and per-source KU volumes next to the brain count; panel text is English. (4) A mutation
4706
+ registry entry may DECLARE an uncoverable protection with a mandatory reason: gaps are counted on
4707
+ their own line with their own `⚠` marker and no longer fail the aggregate verdict — a lamp that is
4708
+ always on is read exactly like a lamp that is off. Six such gaps are declared for the orchestrator
4709
+ script, which lives outside every package and is guarded today only by source-text assertions.
4710
+
4711
+ **Previously (`v0.8.12`):** ONE definition of "a dz
4654
4712
  command" (ADR-001, feature `command-count-triad`). `src/command-inventory.ts` is the single pure
4655
4713
  parser every consumer derives from — the layer-1 parity test, `dz name-check`, and the new public
4656
4714
  exports (`commandInventory`, `declaredCommands`, `dispatchedCommands`, `documentedCommands`,
4657
4715
  `stripNonCode`, `validateExceptionList`, `INTERNAL_ENTRY_POINTS`, `PSEUDO_COMMANDS`) — instead of a
4658
4716
  fourth private regex and a fourth number. Four hidden commands (`mr-rakes`, `retro`,
4659
4717
  `feature-adr-setup`, `bto-optimize`) gained USAGE lines, so `--help` changed; `help` is a documented
4660
- pseudo-command, not a `case` label. **87 canonical commands, 88 names in rendered `--help`** (the 87
4718
+ pseudo-command, not a `case` label. **91 canonical commands, 92 names in rendered `--help`** (the 91
4661
4719
  plus the built-in `help`) — both COMPUTED from `cli.ts`, neither typed into a test. Three cross-family QE rounds closed
4662
4720
  six parser defects the naive version had: four that INVENTED a command (regex literals with a lone
4663
4721
  `}`, `case` labels in comments or templates, sub-verb labels from nested switches, ` dz <name>` lines
@@ -4671,7 +4729,7 @@ the Russian-catalogue stemming, the fixed `discrimination-check` / `mutation-gat
4671
4729
  `volume-shadow/v1` publish observations with structured human/JSON/audit parity. All four remain
4672
4730
  SOFT-only; incomplete evidence is unknown, and source-comment justification is out of scope.
4673
4731
 
4674
- `harness-core v0.8.10` · `skills-feature-adr v1.5.9` — **staged, not published:** the packaged
4732
+ `harness-core v0.8.10` · `skills-feature-adr v1.5.9` — **published 2026-09-09:** the packaged
4675
4733
  feature-adr workflow performs advisory top-3 micro-recall at the live Step 3 ADR choice and Step 6
4676
4734
  plan-route choice. Every failure is fail-open; versioned `.fa-state/decision-recall.jsonl` rows make
4677
4735
  receipt coverage and repeat-related outcomes derivable offline. The hypothesis is external `[SRC],
@@ -4864,3 +4922,66 @@ The `.claude-plugin/` directory contains `plugin.json` + `marketplace.json` comp
4864
4922
  - [OpenCode](https://github.com/sst/opencode) — 3rd target platform (160K+ stars)
4865
4923
  - [Hermes Agent](https://github.com/NousResearch/hermes-agent) — 4th target platform
4866
4924
  - [OpenClaude](https://github.com/gitlawb/openclaude) — 5th target platform (28K+ stars)
4925
+
4926
+ ### Shared Markdown masking in feature-adr gates
4927
+
4928
+ The standalone plan-completeness gate ships with `markdown-masker.mjs`, copied byte-for-byte from
4929
+ harness-core's `src/markdown-masker.ts`. It runs without a core build. Amendment checks, swarm briefs
4930
+ and K2 share the parser while retaining their existing unclosed-block and indentation policies.
4931
+ The four-space indented-code gap remains open for amendment checks and K2; swarm briefs retain their
4932
+ existing masking of indented code. Versions are unchanged in this staged change.
4933
+
4934
+
4935
+ ### Run registry
4936
+
4937
+ `dz runs --project <repo> [--json]` reads `.dz/runs/registry.jsonl`. The feature-adr workflow
4938
+ appends `started`, a `heartbeat` at each phase boundary, and `finished` through `dz runs-record`.
4939
+ Each invocation allocates its own run ID. Pass Workflow `args.runPid` for an explicit host PID,
4940
+ and `args.parentRunId` when nesting runs; otherwise the writer resolves the Claude ancestor PID
4941
+ and refuses if it cannot establish one. The courier checks the write response. Registry failures
4942
+ log `run registry: <event> UNVERIFIED — <reason>` and mark the registry outcome `unverified`;
4943
+ the workflow continues. Finalization runs on normal returns and exceptions; host termination
4944
+ can leave a started run without finished.
4945
+
4946
+ `live` requires a responding PID. `orphaned` requires a recorded finish or confirmed absent PID;
4947
+ missing parents, inaccessible PID probes and unreadable registries remain `inconclusive`, with
4948
+ a reason. A confirmed live PID with a heartbeat older than `--stall-minutes` (default 120)
4949
+ is `stalled`; a missing heartbeat remains `live`. Stalled parents remain alive for their children. Completed runs display
4950
+ `finished`; a child of a finished parent is `orphaned`. An unreadable registry exits 1.
4951
+ Before the first run, an absent registry reports `нет реестра: .dz/runs/registry.jsonl ещё не создан (ни одного прогона)`
4952
+ and exits 0 (`status: "missing"` in JSON).
4953
+
4954
+ The core exports `appendRunEvent`, `readRunRegistry`, `probePid`, `liveness`, `liveParents`, and
4955
+ `runRecordCommand`. Appends preserve event identity and bound diagnostic `reason` text below
4956
+ PIPE_BUF with `truncated: true`; oversized identity fields are refused.
4957
+
4958
+
4959
+ ### Run cleanup and settlement
4960
+
4961
+ `dz runs --settle` appends `finished` with outcome `died` only for confirmed absent PIDs.
4962
+ A second invocation reports `nothing to settle`. `inconclusive` is preserved. Use
4963
+ `dz runs --stall-minutes 150` to change the heartbeat threshold; `stalled` only changes the display.
4964
+
4965
+ ```bash
4966
+ dz runs-clean --project /path/to/repo # inspect the plan first
4967
+ dz runs-clean --project /path/to/repo --retention-days 7 --json
4968
+ # After reviewing the plan, explicitly apply:
4969
+ dz runs-clean --project /path/to/repo --retention-days 7 --apply
4970
+ ```
4971
+
4972
+ Only non-main worktrees merged into `main`, clean, and strictly older than the retention
4973
+ (default 2 days, measured from their latest commit) qualify. Detached worktrees use their HEAD's
4974
+ ancestry. Dirty worktrees stay, with the file count and first five paths printed. Unknown merge
4975
+ or commit-age facts stay; unreadable status refuses cleanup. Removal uses Git without force and
4976
+ is reported successful only after rereading the worktree list.
4977
+
4978
+ With `--apply`, whole finished or confirmed-dead run histories whose newest event exceeds retention
4979
+ move to `.dz/runs/registry.archive.jsonl`; live and inconclusive runs stay in `registry.jsonl`.
4980
+ CLI appends, settlement, and archive read/plan/rewrite share the named `run-registry-archive` lock
4981
+ under `.dz/runs`. Archive writes append before temp-file rename; a crash between those operations
4982
+ can duplicate archive events on retry. Direct API writers must coordinate with that same lock.
4983
+
4984
+ Core APIs: `settleDeadRuns` and `planRegistryArchive` are pure registry decisions;
4985
+ `planWorktreeCleanup` accepts injected `WorktreeFact` values and returns remove/keep decisions;
4986
+ `renderCleanupPlan` renders them. `worktreeRemovalsToApply` selects removals only when apply is true.
4987
+ No process is terminated and no branch is deleted.
@@ -1 +1 @@
1
- {"version":3,"file":"boolean-flags.d.ts","sourceRoot":"","sources":["../src/boolean-flags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,MAAM,CA6FhD,CAAC;AAEH,gGAAgG;AAChG,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAAc,CAAC;AAElE,iGAAiG;AACjG,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAGpE"}
1
+ {"version":3,"file":"boolean-flags.d.ts","sourceRoot":"","sources":["../src/boolean-flags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAiGhD,CAAC;AAEH,gGAAgG;AAChG,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAAc,CAAC;AAElE,iGAAiG;AACjG,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAGpE"}
@@ -35,7 +35,9 @@ export const BOOLEAN_CLI_FLAGS = new Set([
35
35
  'by-stage',
36
36
  'calibrate',
37
37
  'check',
38
+ 'commit-quote',
38
39
  'confirm',
40
+ 'day',
39
41
  'context-only',
40
42
  'deep',
41
43
  'diff',
@@ -98,6 +100,7 @@ export const BOOLEAN_CLI_FLAGS = new Set([
98
100
  'scope-check',
99
101
  'semantic',
100
102
  'send',
103
+ 'settle',
101
104
  'split',
102
105
  'stages-json',
103
106
  'static',
@@ -108,6 +111,7 @@ export const BOOLEAN_CLI_FLAGS = new Set([
108
111
  'usage',
109
112
  'validate',
110
113
  'weak',
114
+ 'week',
111
115
  'with-pairs',
112
116
  'with-references',
113
117
  'yes',
@@ -1 +1 @@
1
- {"version":3,"file":"boolean-flags.js","sourceRoot":"","sources":["../src/boolean-flags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAwB,IAAI,GAAG,CAAC;IAC5D,UAAU;IACV,UAAU;IACV,KAAK;IACL,kBAAkB;IAClB,mBAAmB;IACnB,sBAAsB;IACtB,KAAK;IACL,OAAO;IACP,WAAW;IACX,MAAM;IACN,OAAO;IACP,KAAK;IACL,WAAW;IACX,UAAU;IACV,WAAW;IACX,OAAO;IACP,SAAS;IACT,cAAc;IACd,MAAM;IACN,MAAM;IACN,MAAM;IACN,SAAS;IACT,MAAM;IACN,QAAQ;IACR,WAAW;IACX,oBAAoB;IACpB,UAAU;IACV,OAAO;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,QAAQ;IACR,WAAW;IACX,MAAM;IACN,eAAe;IACf,MAAM;IACN,SAAS;IACT,gBAAgB;IAChB,cAAc;IACd,MAAM;IACN,cAAc;IACd,QAAQ;IACR,SAAS;IACT,MAAM;IACN,cAAc;IACd,MAAM;IACN,OAAO;IACP,YAAY;IACZ,UAAU;IACV,UAAU;IACV,iBAAiB;IACjB,UAAU;IACV,WAAW;IACX,WAAW;IACX,eAAe;IACf,WAAW;IACX,aAAa;IACb,UAAU;IACV,WAAW;IACX,MAAM;IACN,UAAU;IACV,SAAS;IACT,YAAY;IACZ,aAAa;IACb,kBAAkB;IAClB,SAAS;IACT,WAAW;IACX,oBAAoB;IACpB,mBAAmB;IACnB,QAAQ;IACR,OAAO;IACP,cAAc;IACd,iBAAiB;IACjB,QAAQ;IACR,QAAQ;IACR,WAAW;IACX,aAAa;IACb,UAAU;IACV,MAAM;IACN,OAAO;IACP,aAAa;IACb,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,KAAK;IACL,OAAO;IACP,OAAO;IACP,UAAU;IACV,MAAM;IACN,YAAY;IACZ,iBAAiB;IACjB,KAAK;CACN,CAAC,CAAC;AAEH,gGAAgG;AAChG,MAAM,CAAC,MAAM,qBAAqB,GAAsB,CAAC,OAAO,CAAC,CAAC;AAElE,iGAAiG;AACjG,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,OAAe;IACzD,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,CAAC,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACtE,OAAO,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"boolean-flags.js","sourceRoot":"","sources":["../src/boolean-flags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAwB,IAAI,GAAG,CAAC;IAC5D,UAAU;IACV,UAAU;IACV,KAAK;IACL,kBAAkB;IAClB,mBAAmB;IACnB,sBAAsB;IACtB,KAAK;IACL,OAAO;IACP,WAAW;IACX,MAAM;IACN,OAAO;IACP,KAAK;IACL,WAAW;IACX,UAAU;IACV,WAAW;IACX,OAAO;IACP,cAAc;IACd,SAAS;IACT,KAAK;IACL,cAAc;IACd,MAAM;IACN,MAAM;IACN,MAAM;IACN,SAAS;IACT,MAAM;IACN,QAAQ;IACR,WAAW;IACX,oBAAoB;IACpB,UAAU;IACV,OAAO;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,QAAQ;IACR,WAAW;IACX,MAAM;IACN,eAAe;IACf,MAAM;IACN,SAAS;IACT,gBAAgB;IAChB,cAAc;IACd,MAAM;IACN,cAAc;IACd,QAAQ;IACR,SAAS;IACT,MAAM;IACN,cAAc;IACd,MAAM;IACN,OAAO;IACP,YAAY;IACZ,UAAU;IACV,UAAU;IACV,iBAAiB;IACjB,UAAU;IACV,WAAW;IACX,WAAW;IACX,eAAe;IACf,WAAW;IACX,aAAa;IACb,UAAU;IACV,WAAW;IACX,MAAM;IACN,UAAU;IACV,SAAS;IACT,YAAY;IACZ,aAAa;IACb,kBAAkB;IAClB,SAAS;IACT,WAAW;IACX,oBAAoB;IACpB,mBAAmB;IACnB,QAAQ;IACR,OAAO;IACP,cAAc;IACd,iBAAiB;IACjB,QAAQ;IACR,QAAQ;IACR,WAAW;IACX,aAAa;IACb,UAAU;IACV,MAAM;IACN,QAAQ;IACR,OAAO;IACP,aAAa;IACb,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,KAAK;IACL,OAAO;IACP,OAAO;IACP,UAAU;IACV,MAAM;IACN,MAAM;IACN,YAAY;IACZ,iBAAiB;IACjB,KAAK;CACN,CAAC,CAAC;AAEH,gGAAgG;AAChG,MAAM,CAAC,MAAM,qBAAqB,GAAsB,CAAC,OAAO,CAAC,CAAC;AAElE,iGAAiG;AACjG,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,OAAe;IACzD,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,CAAC,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACtE,OAAO,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC"}
package/dist/cli.d.ts CHANGED
@@ -4,6 +4,7 @@
4
4
  * @packageDocumentation
5
5
  */
6
6
  import { spawn, type ChildProcess } from 'node:child_process';
7
+ import { type JournalIo } from '@dzhechkov/harness-core';
7
8
  import { runSyncCodexHooks, type CodexHooksSyncReport, type BridgeFamily } from '@dzhechkov/harness-core';
8
9
  import type { RecallPatternsOptions, TeachGuardResult, IntegrationOutcome } from '@dzhechkov/harness-core';
9
10
  /** Literal command inventory, pinned against the main dispatch switch by a layer-1 test. */
@@ -67,6 +68,8 @@ export interface CliIo {
67
68
  readonly installRunner?: (command: string, cwd: string) => void;
68
69
  /** Fault seam for proving mutation-gate catches and retries thrown runner internals. */
69
70
  readonly mutationGateRunner?: MutationGateRunner;
71
+ /** Read-back fault seam; production uses the real filesystem. */
72
+ readonly journalIo?: JournalIo;
70
73
  }
71
74
  /** Injected subprocess runner used by `dz release` (see {@link CliIo.releaseRunner}). */
72
75
  export type ReleaseExecRunner = (cmd: string, opts: {
@@ -78,6 +81,7 @@ export type ReleaseExecRunner = (cmd: string, opts: {
78
81
  stderr: string;
79
82
  timedOut?: boolean;
80
83
  };
84
+ type Write = (line: string) => void;
81
85
  /**
82
86
  * Команда npm для установки пакета В ЦЕЛЕВОЙ КАТАЛОГ, а не куда решит npm.
83
87
  *
@@ -166,6 +170,12 @@ export declare function __wfKillGroupTestSeam(): {
166
170
  killAll: () => number[];
167
171
  size: () => number;
168
172
  };
173
+ /** Git effects are injected; the core owns eligibility and the explicit apply boundary. */
174
+ export declare function cmdRunsClean(options: Map<string, string>, flags: Set<string>, cwd: string, write: Write, exec?: (command: string, options: {
175
+ cwd: string;
176
+ encoding: 'utf8';
177
+ stdio: ['ignore', 'pipe', 'pipe'];
178
+ }) => string | Buffer): number;
169
179
  export interface ClaudeBridgeRun {
170
180
  stdout: string;
171
181
  stderr: string;
@@ -221,4 +231,5 @@ export declare function runChildBridge(bin: string, argv: string[], opts: {
221
231
  envExtra?: readonly string[];
222
232
  }): Promise<ClaudeBridgeRun>;
223
233
  export declare function runCli(argv: string[], io?: CliIo): Promise<number>;
234
+ export {};
224
235
  //# sourceMappingURL=cli.d.ts.map
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}