@dzhechkov/harness-cli 0.8.6 → 0.8.9
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 +25 -25
- package/README.md +106 -9
- package/dist/boolean-flags.d.ts.map +1 -1
- package/dist/boolean-flags.js +1 -0
- package/dist/boolean-flags.js.map +1 -1
- package/dist/cli.d.ts +17 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +1062 -98
- package/dist/cli.js.map +1 -1
- package/dist/core-compat.d.ts +1 -1
- package/dist/core-compat.js +4 -4
- package/dist/core-compat.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/known-flags.d.ts.map +1 -1
- package/dist/known-flags.js +10 -0
- package/dist/known-flags.js.map +1 -1
- package/package.json +8 -8
- package/sbom.json +24 -24
- package/src/boolean-flags.ts +1 -0
- package/src/cli.ts +1113 -100
- package/src/core-compat.ts +4 -4
- package/src/index.ts +1 -1
- package/src/known-flags.ts +10 -0
package/.dz-manifest.json
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
},
|
|
10
10
|
{
|
|
11
11
|
"path": "README.md",
|
|
12
|
-
"sha256": "
|
|
12
|
+
"sha256": "2498732f43f16f1ba0f974d0deeabf628ceb9a1d4b294df01d32dd2138d04933"
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
15
|
"path": "dist/bin.d.ts",
|
|
@@ -33,35 +33,35 @@
|
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
35
|
"path": "dist/boolean-flags.d.ts.map",
|
|
36
|
-
"sha256": "
|
|
36
|
+
"sha256": "454794ad9738157ca422201aaedf99704a2c525e32d48ee2dac533d498bf1271"
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
39
|
"path": "dist/boolean-flags.js",
|
|
40
|
-
"sha256": "
|
|
40
|
+
"sha256": "cd2cfc484dd9d0bcb1063be0f55e12dbd6b49e2642568bd7ad2a5f045b83be5b"
|
|
41
41
|
},
|
|
42
42
|
{
|
|
43
43
|
"path": "dist/boolean-flags.js.map",
|
|
44
|
-
"sha256": "
|
|
44
|
+
"sha256": "ce07c1e9270067794d744c59cdacd083e22ff3a2e38f10b7b41e3397b3ad2ff5"
|
|
45
45
|
},
|
|
46
46
|
{
|
|
47
47
|
"path": "dist/cli.d.ts",
|
|
48
|
-
"sha256": "
|
|
48
|
+
"sha256": "cbdb7b8512c91f1c17dbfa85856d67e2d368f7f8c090b712935767781318f8fe"
|
|
49
49
|
},
|
|
50
50
|
{
|
|
51
51
|
"path": "dist/cli.d.ts.map",
|
|
52
|
-
"sha256": "
|
|
52
|
+
"sha256": "4d543e2a0c57bf76e016842064244005a60f5723b05cc56d038646b7fa8ffddd"
|
|
53
53
|
},
|
|
54
54
|
{
|
|
55
55
|
"path": "dist/cli.js",
|
|
56
|
-
"sha256": "
|
|
56
|
+
"sha256": "6cd8fb4f769c0877aaa556bf1948367855e0f7a704eae8726a864b8bf7c966c0"
|
|
57
57
|
},
|
|
58
58
|
{
|
|
59
59
|
"path": "dist/cli.js.map",
|
|
60
|
-
"sha256": "
|
|
60
|
+
"sha256": "113f073970be1fec877a3174d3fe781d022d06d87cae001d7cd505d9d0a56c38"
|
|
61
61
|
},
|
|
62
62
|
{
|
|
63
63
|
"path": "dist/core-compat.d.ts",
|
|
64
|
-
"sha256": "
|
|
64
|
+
"sha256": "a1e1b7a74e846be02a2a7384e25a695f85e8315360eea7cc3a8e0a3e2e330eeb"
|
|
65
65
|
},
|
|
66
66
|
{
|
|
67
67
|
"path": "dist/core-compat.d.ts.map",
|
|
@@ -69,27 +69,27 @@
|
|
|
69
69
|
},
|
|
70
70
|
{
|
|
71
71
|
"path": "dist/core-compat.js",
|
|
72
|
-
"sha256": "
|
|
72
|
+
"sha256": "6eefe1328f2586bed953d61c0d9a06ad4684b1a2e978abfdf3d91b937d2f72e0"
|
|
73
73
|
},
|
|
74
74
|
{
|
|
75
75
|
"path": "dist/core-compat.js.map",
|
|
76
|
-
"sha256": "
|
|
76
|
+
"sha256": "cb7436935411b3804741d475fb231ae7d66cece98d3934fa09f25161aa535ea7"
|
|
77
77
|
},
|
|
78
78
|
{
|
|
79
79
|
"path": "dist/index.d.ts",
|
|
80
|
-
"sha256": "
|
|
80
|
+
"sha256": "7f2301a59931e768865a58b7681882dc3b6d9b19b4d6ba2d6836e153c15c39f0"
|
|
81
81
|
},
|
|
82
82
|
{
|
|
83
83
|
"path": "dist/index.d.ts.map",
|
|
84
|
-
"sha256": "
|
|
84
|
+
"sha256": "f90807882ce10b96cb22af34d9a612a87f8e3869c338ebed666f9f7677bb651c"
|
|
85
85
|
},
|
|
86
86
|
{
|
|
87
87
|
"path": "dist/index.js",
|
|
88
|
-
"sha256": "
|
|
88
|
+
"sha256": "d492db6c67df4c7d78cdf50bcfb55da9609e2891178d5fdd1fa91ef973d81a62"
|
|
89
89
|
},
|
|
90
90
|
{
|
|
91
91
|
"path": "dist/index.js.map",
|
|
92
|
-
"sha256": "
|
|
92
|
+
"sha256": "6a5a693bc1035cc67ea572e609d4e2fb05580c9268821e25ba8d278e61635033"
|
|
93
93
|
},
|
|
94
94
|
{
|
|
95
95
|
"path": "dist/install-spec.d.ts",
|
|
@@ -113,15 +113,15 @@
|
|
|
113
113
|
},
|
|
114
114
|
{
|
|
115
115
|
"path": "dist/known-flags.d.ts.map",
|
|
116
|
-
"sha256": "
|
|
116
|
+
"sha256": "bcc70b16fc530e09a764852e6d57f4858161244555b0d270fca8335b0a800a49"
|
|
117
117
|
},
|
|
118
118
|
{
|
|
119
119
|
"path": "dist/known-flags.js",
|
|
120
|
-
"sha256": "
|
|
120
|
+
"sha256": "dc11bc77b47cd80ca6f0efb0f4d991ddc6060fe59bd30824178cc9c8add6bcaf"
|
|
121
121
|
},
|
|
122
122
|
{
|
|
123
123
|
"path": "dist/known-flags.js.map",
|
|
124
|
-
"sha256": "
|
|
124
|
+
"sha256": "1b5a6a740581a5ba0aa26533648ffa603411ac0ba5d9c243bd5005593e7ce11c"
|
|
125
125
|
},
|
|
126
126
|
{
|
|
127
127
|
"path": "keys/README.md",
|
|
@@ -133,7 +133,7 @@
|
|
|
133
133
|
},
|
|
134
134
|
{
|
|
135
135
|
"path": "package.json",
|
|
136
|
-
"sha256": "
|
|
136
|
+
"sha256": "5480e62c310e52e3578c1e693460289caf9acb1c3f7948357c06fdec905112f1"
|
|
137
137
|
},
|
|
138
138
|
{
|
|
139
139
|
"path": "src/bin.ts",
|
|
@@ -141,19 +141,19 @@
|
|
|
141
141
|
},
|
|
142
142
|
{
|
|
143
143
|
"path": "src/boolean-flags.ts",
|
|
144
|
-
"sha256": "
|
|
144
|
+
"sha256": "8d9fe5f91b143cbecafacf69489f284ab312f277b8f84da0558ee572e4203b41"
|
|
145
145
|
},
|
|
146
146
|
{
|
|
147
147
|
"path": "src/cli.ts",
|
|
148
|
-
"sha256": "
|
|
148
|
+
"sha256": "00ba927eb54a3a4ae074a9d68acd96f0526b189b4944f583d830b8705ccab4b4"
|
|
149
149
|
},
|
|
150
150
|
{
|
|
151
151
|
"path": "src/core-compat.ts",
|
|
152
|
-
"sha256": "
|
|
152
|
+
"sha256": "31e681ab5795f875c675691a46bb2d2553c43d4638682d572dfc77343e081d49"
|
|
153
153
|
},
|
|
154
154
|
{
|
|
155
155
|
"path": "src/index.ts",
|
|
156
|
-
"sha256": "
|
|
156
|
+
"sha256": "ece9dc7be312c38212e72440493221dc816ea109d1ba8842d2ed3410445b65a1"
|
|
157
157
|
},
|
|
158
158
|
{
|
|
159
159
|
"path": "src/install-spec.ts",
|
|
@@ -161,9 +161,9 @@
|
|
|
161
161
|
},
|
|
162
162
|
{
|
|
163
163
|
"path": "src/known-flags.ts",
|
|
164
|
-
"sha256": "
|
|
164
|
+
"sha256": "6365829621a8f3b50381310f4c62ae5a5c4c1625587acf2b73d3f3486ecfc791"
|
|
165
165
|
}
|
|
166
166
|
]
|
|
167
167
|
},
|
|
168
|
-
"signature": "
|
|
168
|
+
"signature": "Dr0iwgi5ddZLuWVUPMyadfnbZPn2EwN/dZcBBa49B+InX2Vx4C61bwG8kbAeE/xS3JLaCaQTXZjMclDLbST8Bw=="
|
|
169
169
|
}
|
package/README.md
CHANGED
|
@@ -36,6 +36,19 @@ The **`dz`** CLI — the main entry point to the DZ Harness Hub. Install AI skil
|
|
|
36
36
|
npm install -g @dzhechkov/harness-cli
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
+
## MCP and hook companion configuration
|
|
40
|
+
|
|
41
|
+
A skill can request companion configuration through a bounded adjacent `INTEGRATIONS.json`. The
|
|
42
|
+
first integration-aware init prints its aggregate digest; only
|
|
43
|
+
`--allow-integrations <that-digest>` can authorize the exact content. The live registration probe is
|
|
44
|
+
non-executing: it uses target-owned list/get surfaces, never the manifest command or URL.
|
|
45
|
+
|
|
46
|
+
The measured support matrix currently admits Claude Code `2.1.235` project MCP only. Every other
|
|
47
|
+
target/component pair is a named refusal, except that the existing Codex hook writer can map to
|
|
48
|
+
emitted when its live veto probe reports `ready: true`. Claude `Pending approval` is registration
|
|
49
|
+
with `ready: false`. Use `--no-integrations` for explicit skills-only installation; `--no-verify`
|
|
50
|
+
does not authorize emission.
|
|
51
|
+
|
|
39
52
|
> **Note:** If you get `EUNSUPPORTEDPROTOCOL workspace:*`, you're inside a pnpm/yarn workspace. Run the install from `/tmp` or `~` instead.
|
|
40
53
|
|
|
41
54
|
### Updating an already-installed `dz`
|
|
@@ -660,14 +673,25 @@ $ dz compounding
|
|
|
660
673
|
INSTRUMENTATION: last apply-leg record … — live
|
|
661
674
|
EVIDENCE CHAIN .dz/recall-usage.jsonl: verified · 3 chained · 133 pre-chain (uncovered)
|
|
662
675
|
EVIDENCE CHAIN .dz/guard-audit.jsonl: verified · 3 chained · 82 pre-chain (uncovered)
|
|
676
|
+
LESSON → RULE FUNNEL (calendar month, observed traffic only):
|
|
677
|
+
2026-08 · eligible/attempted/accepted/executions NOT MEASURED (promotion-history-not-recorded)
|
|
663
678
|
```
|
|
664
679
|
|
|
665
|
-
|
|
680
|
+
Four honesty rules are load-bearing:
|
|
666
681
|
- **a gate without enough data says INSUFFICIENT DATA** — never a verdict (the apply-leg log turned
|
|
667
682
|
out to have been silently dead for 19 days; "no data" is a finding, not a pass);
|
|
668
683
|
- **readiness is not a result** — the replay section says `ready`, never `promote`;
|
|
669
684
|
- **improvement is judged by RATE** (violations per audit), so a quiet afternoon cannot masquerade
|
|
670
|
-
as progress
|
|
685
|
+
as progress;
|
|
686
|
+
- **zero promotions is not itself a finding** — the funnel names a stopped stage only when its
|
|
687
|
+
predecessor is non-empty and it stays empty for three consecutive measured UTC months. A missing,
|
|
688
|
+
malformed, unreadable, unobserved, or anchorless source prints `NOT MEASURED (<reason>)`, never 0.
|
|
689
|
+
|
|
690
|
+
The funnel is prospective: ordinary non-dry `dz guard promote` runs append bounded candidate/status
|
|
691
|
+
observations to the existing `.dz/promotion-state.json`; `--dry-run` still writes nothing. Guard
|
|
692
|
+
firings join by the opaque digest of the exact effective template+params carried in the audit row, never by a
|
|
693
|
+
display rule id alone. Text and `--json` render the same counts/status/findings model and issue no
|
|
694
|
+
overall learning-health verdict.
|
|
671
695
|
|
|
672
696
|
The prompt queries that make replay possible stay on your machine: `.dz/recall-usage.jsonl` is
|
|
673
697
|
git-ignored, entries are truncated at 200 chars and flagged when truncated (a prefix is not a prompt,
|
|
@@ -1840,16 +1864,18 @@ runs a command that MEASURES the declared artifacts itself. It refuses a null re
|
|
|
1840
1864
|
never recorded as done), an absent or partially-present artifact set, and a stage that declares nothing
|
|
1841
1865
|
to witness — so a stage that did not happen can no longer be recorded, which the old mechanism allowed.
|
|
1842
1866
|
|
|
1843
|
-
## All Commands (
|
|
1867
|
+
## All Commands (84)
|
|
1844
1868
|
|
|
1845
|
-
*(
|
|
1869
|
+
*(84 MEASURED from the bounded command inventory below; rendered `dz --help` exposes 81 unique
|
|
1870
|
+
top-level names, pinned by `test/command-count.test.ts`.)*
|
|
1846
1871
|
|
|
1847
1872
|
```
|
|
1848
1873
|
dz setup --target <name> [--preset <name>] [--select id,id,...] [--skills-dir <dir>] [--memory agentdb] [--no-memory] [--no-hooks] [--install-driver] [--force]
|
|
1849
|
-
dz init --target <name> [--preset <name>] [--select id,id,...] [--force]
|
|
1874
|
+
dz init --target <name> [--preset <name>] [--select id,id,...] [--allow-integrations <sha256:...>] [--no-integrations] [--no-verify] [--force]
|
|
1875
|
+
dz integrations-verify --target <name> --component <mcp|hooks> [--project <dir>] [--json]
|
|
1850
1876
|
dz install <npm-pkg> [--target <name>] [--project <dir>] [--force]
|
|
1851
1877
|
dz bundle [--preset <name> | --select id,...] [--out <dir>] [--skills-dir <dir>] [--force]
|
|
1852
|
-
dz teach "<pattern>" [--reward <0-1>] [--domain <name>] [--type rule|success-pattern|lesson-learned] [--project <dir>] [--to project|global] [--no-mirror] [--guard] # --project pins the learned store to <dir>/.dz
|
|
1878
|
+
dz teach "<pattern>" [--class-form "<template with :slot>"] [--reward <0-1>] [--domain <name>] [--type rule|success-pattern|lesson-learned] [--project <dir>] [--to project|global] [--no-mirror] [--guard] # --class-form is optional and never blocks the specific write; --project pins the learned store to <dir>/.dz; --to picks WHICH store (global = ~/.dz, shared across projects). Every write prints the path AND what chose it.
|
|
1853
1879
|
dz teach --reinforce "<dzId-or-exact-text>" [--project <dir>] # bump an existing learned pattern instead of writing a near-duplicate
|
|
1854
1880
|
dz teach --from-json <file> [--project <dir>] [--no-mirror] [--harmonize] # bulk-import a `dz recall --all --json` export; prints a harmonize dry-run advisory
|
|
1855
1881
|
dz consolidate [--sessions-dir <dir>] [--project <dir>] [--no-mirror]
|
|
@@ -1905,7 +1931,7 @@ dz feature-adr-record --kind ledger|training-pair --stage <s> [--slug <s>] [--r
|
|
|
1905
1931
|
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
|
|
1906
1932
|
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
|
|
1907
1933
|
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
|
|
1908
|
-
dz compounding [--project <dir>] [--json] # honest learning-loop payoff report: pool
|
|
1934
|
+
dz compounding [--project <dir>] [--json] # honest learning-loop payoff report: pool/replay/guard instrumentation plus the monthly eligible→attempted→accepted→executions funnel. A missing source is NOT MEASURED; only a non-empty→empty named edge across three consecutive measured months is a funnel finding; text/JSON carry the same facts and no learning-health verdict
|
|
1909
1935
|
dz deadwood [--weeks <n>] [--json] # advisory zero-usage report for commands and guard-rule firings; safety-net exclusions carry written reasons, skills without an invocation signal are never candidates, and shallow history says INSUFFICIENT_DATA. Human deprecation review only — never deletes or modifies harness surface
|
|
1910
1936
|
dz epoch-replay --mock [--n <N>] [--effect <-1..1>] [--tie-rate <0..1>] [--seed <N>] [--slice <name>] [--margin <0..0.5>] [--json] # $0 synthetic run through the REAL verdict math; labelled SYNTHETIC, same seed = byte-identical
|
|
1911
1937
|
dz epoch-replay --emit [--project <dir>] [--limit <N>] [--seed <N>] [--margin <0..0.5>] [--out <file>] [--json] # cold-vs-warm work order: replayable instances + PRE-REGISTERED blind A/B assignment + the PRE-REGISTERED non-superiority margin + a sha256 integrity digest + emittedAt/corpus fingerprint (raw prompts — defaults into the git-ignored .dz/epoch-replay/)
|
|
@@ -1927,7 +1953,7 @@ dz backlog <sub> add "<idea>" | list | show <id> | goals [--validate] | roul
|
|
|
1927
1953
|
dz sign --init --out <path> | --pack <dir> --key <path> # --init: generate the Ed25519 keypair (private OUTSIDE the repo, prints the public key for keys/dz.pub); else sign a pack's manifest + CycloneDX SBOM
|
|
1928
1954
|
dz sbom --pack <dir> [--out <file>] # emit the CycloneDX 1.5 SBOM for a pack standalone (file-level bill of materials); print to stdout or write to a file
|
|
1929
1955
|
dz guard check --op <publish|teach|consolidate|reindex> [--text <s>] [--json] [--force <reason>] # declarative constraint layer before self-mutating ops: HARD violation → block (exit 1), SOFT → warn; zero-config defaults, .dz/guard.json to customise; dz guard --init | dz guard log (append-only audit). dz publish runs it automatically (--no-guard "<reason>" = logged escape hatch)
|
|
1930
|
-
dz guard promote [--dry-run | --apply] [--window-days <N>] [--periods <N>] [--json] # lesson → guard-rule promotion: ranks lessons by firings × cost, SHADOW-replays each candidate over real commits, and proposes a rule only after TWO consecutive wins AND two window-lengths of REAL elapsed time since first observation
|
|
1956
|
+
dz guard promote [--dry-run | --apply] [--window-days <N>] [--periods <N>] [--json] # lesson → guard-rule promotion: ranks lessons by firings × cost, SHADOW-replays each candidate over real commits, and proposes a rule only after TWO consecutive wins AND two window-lengths of REAL elapsed time since first observation. Non-dry runs add bounded prospective funnel evidence to .dz/promotion-state.json without feeding the verdict; --dry-run remains write-free. --apply installs SOFT rules only; promotions/refusals remain under features/guard-promotion/promotions/
|
|
1931
1957
|
dz feature-adr-setup --guards [--loc-cap <n>] [--apply] # P3: scaffold DETERMINISTIC guard tests into the project — guards.config.json + a zero-dependency check.mjs runner (LOC cap, secret scan, frozen-file sha256 pins, waivers-with-reasons); wire `node architecture/guards/check.mjs` into CI
|
|
1932
1958
|
dz publish [--filter <name>] [--bump-only] [--claim-check <off|warn|error>] (dry-run by default; pass --yes/--confirm to go live; claim-check gate defaults to warn — surfaces README claim findings, never blocks)
|
|
1933
1959
|
dz parity [--target <name>] [--json] # honest feature×target map COMPUTED from the capability model — full / manual (via which form) / absent, per target
|
|
@@ -1956,6 +1982,29 @@ dz import-ecc [--local-path <dir>] [--select id,id,...] [--limit N] [--out
|
|
|
1956
1982
|
dz help
|
|
1957
1983
|
```
|
|
1958
1984
|
|
|
1985
|
+
### Optional class form for a taught lesson
|
|
1986
|
+
|
|
1987
|
+
`dz teach` can store the observed lesson and an explicitly proposed class template in the same
|
|
1988
|
+
invocation. The class half is optional: omission, a blank value, or syntactic rejection leaves the
|
|
1989
|
+
specific write successful and unchanged.
|
|
1990
|
+
|
|
1991
|
+
```bash
|
|
1992
|
+
dz teach "Use Jira labels for release gates" --class-form "Use :field labels for release gates"
|
|
1993
|
+
dz recall "Use GitHub labels for release gates"
|
|
1994
|
+
# ... specific: Use Jira labels for release gates · class: Use :field labels for release gates [match: class]
|
|
1995
|
+
```
|
|
1996
|
+
|
|
1997
|
+
Use the class form when a future reader needs the *why* across structure, interfaces, or
|
|
1998
|
+
maintainability. Skip it when scope, risk, time, and cost are low, or standards, policy, or existing
|
|
1999
|
+
documentation already cover the choice. `dz` checks only that the `:slot` template syntactically
|
|
2000
|
+
covers the specific text; it does not certify that the broader rule is true.
|
|
2001
|
+
|
|
2002
|
+
The store keeps two linked, role-labelled rows (`lessonForm` + `lessonPairId`), while ranked recall
|
|
2003
|
+
returns one logical lesson with separate `pattern`/`classForm` fields and
|
|
2004
|
+
`matchedForm: specific|class|both`. The vector mirror remains specific-text-only in this tranche;
|
|
2005
|
+
class attribution comes from the durable lexical path, so a vector score is never mislabeled as a
|
|
2006
|
+
class match.
|
|
2007
|
+
|
|
1959
2008
|
**Closeness, not a rank surrogate (feature `recall-true-closeness`).** Each hit now carries `sim=` —
|
|
1960
2009
|
the semantic leg's real cosine — with `▲` above the measured relevance floor for the query's language
|
|
1961
2010
|
and `▽` below it (ru 0.38 / en 0.31, calibrated 2026-07-09 on a 32-probe labeled set). A lexical-only
|
|
@@ -2092,10 +2141,20 @@ dz statusline --fa-record --slug my-loop --step build --kind loop
|
|
|
2092
2141
|
```
|
|
2093
2142
|
|
|
2094
2143
|
```
|
|
2095
|
-
📐 feature-adr Step
|
|
2144
|
+
📐 feature-adr Step 7 Code · ⏱ ~25–47м (p25–p75 по n=5 ранам M; окно 2026-08-24–2026-08-29) · 🎓 224 pool · ↑7 used · +2 new · ↻0 reinforced · 🎓 dz: 224 patterns · 🧠 3 sources
|
|
2145
|
+
📐 feature-adr Step 8 QE · ETA: недостаточно истории (n=2 L; окно 2026-08-28–2026-08-29) · 🎓 224 pool · ↑7 used · +2 new · ↻0 reinforced · 🎓 dz: 224 patterns · 🧠 3 sources
|
|
2096
2146
|
🔁 loop build · 🎓 dz: 224 patterns · 🧠 3 sources
|
|
2097
2147
|
```
|
|
2098
2148
|
|
|
2149
|
+
For a live `/feature-adr` run, the panel derives remaining-stage timing from timestamped
|
|
2150
|
+
`features/*/.fa-state/checkpoints.jsonl` runs of the **same tier**. Every estimate prints its
|
|
2151
|
+
evidence basis: distinct-run `n`, tier, and date window. A Codex-shaped `code` leg always renders
|
|
2152
|
+
as p25–p75 rather than a false-precision point. The floor is three runs for **each** remaining
|
|
2153
|
+
`(tier, stage)` bucket; one thin bucket makes the whole result `ETA: недостаточно истории` instead
|
|
2154
|
+
of silently shortening the sum. Missing/unreadable checkpoints omit ETA, never `~0м`, and never
|
|
2155
|
+
take down the rest of the statusline. `dz statusline --json` includes the typed `eta` verdict for
|
|
2156
|
+
custom tooling whenever the live run has enough checkpoint identity to evaluate it.
|
|
2157
|
+
|
|
2099
2158
|
`--kind <feature-adr|loop>` names the PRODUCER and defaults to `feature-adr`; an unrecognised value
|
|
2100
2159
|
exits 1 rather than silently weakening panel arbitration. It is load-bearing in two places:
|
|
2101
2160
|
|
|
@@ -3545,6 +3604,19 @@ operator field, and never blocks publication; composition drift warns with the e
|
|
|
3545
3604
|
`dz plugin --version <published>`. A repository with no complete `.claude-plugin/` showcase is out of
|
|
3546
3605
|
scope: the rule records an informational skip reason and emits no violation.
|
|
3547
3606
|
|
|
3607
|
+
Four publish-only `volume-shadow/v1` observations meter the always-loaded corpus without becoming a
|
|
3608
|
+
release gate: configured template context, largest-file share, feature-artifact/unified-diff-byte
|
|
3609
|
+
ratio, and the tier/lifecycle artifact set. Rules and commands are reported separately from
|
|
3610
|
+
conditional full-skill bodies, and their sum is labelled a configured/invokable envelope rather
|
|
3611
|
+
than measured per-session cost. Human output uses `[observe]` or `[note]`; JSON and the chained audit
|
|
3612
|
+
retain the same operands, units, dated reference starting points, and method identifiers.
|
|
3613
|
+
|
|
3614
|
+
All four rules are SOFT-only, including when `.dz/guard.json` requests HARD. An incomplete or capped
|
|
3615
|
+
scan, escaping/non-regular input, ambiguous attribution, or zero denominator is a visible typed
|
|
3616
|
+
`unknown`, never a clean zero and never a blocker. Source comments and comment density are not
|
|
3617
|
+
collected or classified. The observations therefore do not recommend shortening justification;
|
|
3618
|
+
they only report volume inside their closed artifact scope.
|
|
3619
|
+
|
|
3548
3620
|
**`review-round` (HARD, publish)** — a package that bumps its version AND changes source must bring a
|
|
3549
3621
|
GRADED `features/*/08_qe_report.md` in the same change. The gate had eleven rules and not one asked
|
|
3550
3622
|
whether anyone but the author had read the code; the cost is on the record (health-advisor slice H:
|
|
@@ -3718,6 +3790,12 @@ and a `--dry-run`-only workflow never promotes, because the run that would start
|
|
|
3718
3790
|
the one that writes nothing. (The `wait` reason spells both out.) This is a guard against accidental
|
|
3719
3791
|
self-gaming, not a cryptographic one — the state file is local and editable.
|
|
3720
3792
|
|
|
3793
|
+
Every non-dry run also records a bounded, prospective observation in that same state file for
|
|
3794
|
+
`dz compounding`: candidate eligibility, an opaque digest of the exact effective template+params when one
|
|
3795
|
+
exists, and the route's authoritative candidate verdict. It stores no lesson/rule body, does not
|
|
3796
|
+
feed the promotion decision, and deduplicates an identical run. Legacy state remains readable, but
|
|
3797
|
+
months before this observation history existed are `NOT MEASURED`; they are never reconstructed.
|
|
3798
|
+
|
|
3721
3799
|
**It refuses out loud.** Rule code is never synthesised from lesson text — a lesson that fits no
|
|
3722
3800
|
template is listed as not-promotable *with the reason*, and the refusals are recorded in
|
|
3723
3801
|
`features/guard-promotion/promotions/` alongside the promotions. A candidate already covered by an
|
|
@@ -4318,6 +4396,25 @@ refusal as the honest answer.
|
|
|
4318
4396
|
|
|
4319
4397
|
## Status
|
|
4320
4398
|
|
|
4399
|
+
`harness-core v0.8.10` · `harness-cli v0.8.9` — **staged, not published:** adds bounded
|
|
4400
|
+
`volume-shadow/v1` publish observations with structured human/JSON/audit parity. All four remain
|
|
4401
|
+
SOFT-only; incomplete evidence is unknown, and source-comment justification is out of scope.
|
|
4402
|
+
|
|
4403
|
+
`harness-core v0.8.9` · `skills-feature-adr v1.5.9` — **staged, not published:** the packaged
|
|
4404
|
+
feature-adr workflow performs advisory top-3 micro-recall at the live Step 3 ADR choice and Step 6
|
|
4405
|
+
plan-route choice. Every failure is fail-open; versioned `.fa-state/decision-recall.jsonl` rows make
|
|
4406
|
+
receipt coverage and repeat-related outcomes derivable offline. The hypothesis is external `[SRC],
|
|
4407
|
+
n=1`, books were silent on retrieval timing, and no runtime threshold gates a stage.
|
|
4408
|
+
|
|
4409
|
+
`v0.8.8` — **staged, not published.** `dz init` now reports exactly one MCP and one hook outcome,
|
|
4410
|
+
adds `integrations-verify`, content-bound authorization, explicit skills-only opt-out, and named
|
|
4411
|
+
partial-failure exits; only receipt-proven live registration may be called emitted.
|
|
4412
|
+
|
|
4413
|
+
`v0.8.7` — **honest ETA in the live 📐 feature-adr statusline.** The panel scans timestamped
|
|
4414
|
+
same-tier checkpoint history only while a fresh run is visible, prints p25–p75 for the code leg,
|
|
4415
|
+
and carries `n`, tier, and date window inline. Any remaining stage below n=3 says
|
|
4416
|
+
`ETA: недостаточно истории`; absent/unreadable checkpoints fail open without `~0м`.
|
|
4417
|
+
|
|
4321
4418
|
`v0.8.5` — **`dz restart-advisor`, the 83rd inventory command (80 documented top-level
|
|
4322
4419
|
help names).** It returns an explicit `restart-advisor/1` recommendation from confined QE-history
|
|
4323
4420
|
reads, never restarts or mutates the live pipeline, and reports not-established evidence with exit 2.
|
|
@@ -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,
|
|
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,CA0FhD,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"}
|
package/dist/boolean-flags.js
CHANGED
|
@@ -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,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,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,cAAc;IACd,iBAAiB;IACjB,QAAQ;IACR,QAAQ;IACR,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,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,cAAc;IACd,iBAAiB;IACjB,QAAQ;IACR,QAAQ;IACR,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"}
|
package/dist/cli.d.ts
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { spawn, type ChildProcess } from 'node:child_process';
|
|
7
7
|
import { runSyncCodexHooks, type CodexHooksSyncReport, type BridgeFamily } from '@dzhechkov/harness-core';
|
|
8
|
+
import type { RecallPatternsOptions, TeachGuardResult, IntegrationOutcome } from '@dzhechkov/harness-core';
|
|
8
9
|
/** Literal command inventory, pinned against the main dispatch switch by a layer-1 test. */
|
|
9
10
|
export declare const DZ_COMMANDS: readonly string[];
|
|
10
11
|
/** Output sink + working directory — injectable so the CLI is testable. */
|
|
@@ -29,6 +30,18 @@ export interface CliIo {
|
|
|
29
30
|
* command that needs it (`brain ground`), and never when stdin is a TTY (nothing piped).
|
|
30
31
|
*/
|
|
31
32
|
readonly stdin?: string;
|
|
33
|
+
/** Human-terminal rendering seam; production defaults to stdout TTY detection. */
|
|
34
|
+
readonly interactive?: boolean;
|
|
35
|
+
/** Fault seam proving that class-form recall degrades to specific recall with a stderr receipt. */
|
|
36
|
+
readonly classMatcher?: RecallPatternsOptions['classMatcher'];
|
|
37
|
+
/** Guard decision seam; production always uses the real vector-backed teach guard. */
|
|
38
|
+
readonly teachGuardRunner?: (projectRoot: string, text: string, opts: {
|
|
39
|
+
readonly reward?: number;
|
|
40
|
+
}) => Promise<TeachGuardResult>;
|
|
41
|
+
/** Reinforcement flush seam paired with `teachGuardRunner`; production uses the configured backend. */
|
|
42
|
+
readonly teachReinforceRunner?: (projectRoot: string, dzId: string, reward: number) => Promise<{
|
|
43
|
+
readonly flushed: number;
|
|
44
|
+
}>;
|
|
32
45
|
/**
|
|
33
46
|
* Test seam for `dz release`: overrides subprocess execution for gate steps and the
|
|
34
47
|
* gh/git side channels (production leaves it unset → real `execSync`, stdio piped).
|
|
@@ -86,6 +99,10 @@ export interface CodexHooksSummary {
|
|
|
86
99
|
readonly stdout: readonly string[];
|
|
87
100
|
readonly stderr: readonly string[];
|
|
88
101
|
}
|
|
102
|
+
/** Map the retained Codex hook writer's one live verdict into the common integration contract. */
|
|
103
|
+
export declare function normalizeCodexHookOutcome(base: IntegrationOutcome, delivery: CodexHooksSummary & {
|
|
104
|
+
readonly report: CodexHooksSyncReport;
|
|
105
|
+
}, noVerify?: boolean): IntegrationOutcome;
|
|
89
106
|
/**
|
|
90
107
|
* What the user is told about a sync report — the ONE place the success word can be printed.
|
|
91
108
|
*
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,EAAoC,KAAK,EAAa,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAM3G,OAAO,
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|