@skein-code/cli 0.3.16 → 0.3.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.
@@ -53,7 +53,9 @@
53
53
  generation. After the write succeeds, compare only newly added or at least
54
54
  1.5x-expanded functions before refreshing changed index paths. Exact
55
55
  normalized hashes identify Type-1/2 clones; winnowed 10-token shingles and
56
- Jaccard similarity identify warning-only Type-3 candidates. Type-4 semantic
56
+ Jaccard similarity identify Type-3 candidates. The repository-owned fixture
57
+ matrix calibrates threshold 0.55: unsuppressed Type-1/2 matches block the
58
+ existing completion gate, while Type-3 remains warning-only. Type-4 semantic
57
59
  equivalence is explicitly outside this deterministic contract.
58
60
  12. Run configured verification commands after changes. The completion gate accepts
59
61
  only current successful test, typecheck, lint, build, check, or `git diff
@@ -99,8 +101,8 @@ build, targeted upsert, and deletion. Audit receipts never retain source,
99
101
  normalized tokens, literal contents, prompts, or raw retrieval failures.
100
102
 
101
103
  Duplication findings are folded into the existing completion record rather than
102
- creating a parallel completion state. The enforcement is explicitly
103
- warning-only until fixture benchmarks establish the required precision. Active
104
+ creating a parallel completion state. Fixture benchmarks establish the required
105
+ precision for calibrated Type-1/2 blocking; Type-3 remains warning-only. Active
104
106
  matches receive stable, bounded ids; the optional `duplication_audit` read tool
105
107
  is exposed only while unsuppressed findings exist. Suppression is exact-match,
106
108
  reason-coded, and persisted as a content-free audit receipt. Repaired/deleted/
@@ -54,7 +54,7 @@ short-height case. The current full-suite count is recorded from the latest
54
54
 
55
55
  ## Recommended Order
56
56
 
57
- ### P0-D: Warning-only repository reuse and duplication audit
57
+ ### P0-D: Repository reuse and calibrated duplication enforcement
58
58
 
59
59
  Version `0.3.14` added the prompt ladder and pre-write `ReuseReceipt`. Version
60
60
  `0.3.15` added a post-write deterministic audit for ordinary TS/TSX/JS/JSX/MJS/
@@ -66,14 +66,16 @@ renames, moves, deletions, small functions, tests, fixtures, generated/vendor/
66
66
  dist/minified/declaration files, and failed writes stay quiet. Receipts expose
67
67
  at most eight path/symbol/similarity matches through session, TUI, JSON, and
68
68
  JSONL without storing source, normalized tokens, prompts, or raw index errors.
69
- Type-1/2 and Type-3 remain warning-only; unavailable evidence is `unresolved`,
70
- never a false pass. The next slice is completion-gate suppression UX and
71
- deterministic benchmark/threshold calibration. Type-4 semantic equivalence is
72
- not promised.
73
-
74
- Version `0.3.16` keeps the same warning-only enforcement while integrating
75
- duplication summaries into the single completion receipt and every output
76
- surface. Active matches receive stable 24-character ids. The read-only
69
+ Type-3 remains warning-only and unavailable evidence is `unresolved`, never a
70
+ false pass. The repository-owned `duplication-benchmark-v1` fixture matrix
71
+ calibrated threshold `0.55` at 100% recall, 100% precision, and 0% legitimate
72
+ boundary false-positive rate. Unsuppressed Type-1/2 matches now block the
73
+ existing completion record; Type-4 semantic equivalence is not promised.
74
+
75
+ Version `0.3.16` integrated duplication summaries into the single completion
76
+ receipt and every output surface while keeping all matches warning-only. Version
77
+ `0.3.17` keeps Type-3 warning-only but promotes calibrated Type-1/2 matches to
78
+ the completion gate. Active matches receive stable 24-character ids. The read-only
77
79
  `duplication_audit` tool is disclosed only when unsuppressed matches exist and
78
80
  can suppress one exact match with a reason code plus a bounded explanation;
79
81
  wildcard/global suppression, credentials, and code-block reasons are rejected.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skein-code/cli",
3
- "version": "0.3.16",
3
+ "version": "0.3.17",
4
4
  "description": "A context-first, model-agnostic coding agent with an auditable terminal workspace.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -16,6 +16,9 @@
16
16
  },
17
17
  "skein": {
18
18
  "releaseNotes": [
19
+ "Calibrated Type-1/2 duplication matches now block completion until reuse or exact audited suppression",
20
+ "Type-3 duplication remains warning-only and Type-4 semantic equivalence remains explicitly unsupported",
21
+ "Duplication benchmark fixtures report deterministic recall, precision, false-positive rate, and latency",
19
22
  "Duplication warnings now aggregate into the single completion receipt without changing verified status",
20
23
  "Exact match ids support bounded, reason-coded suppression with audit and credential/code-block safeguards",
21
24
  "Duplication audit tools are disclosed only when active warnings exist and repaired paths clear stale matches",
@@ -54,6 +57,7 @@
54
57
  "pretest:pty": "npm run build",
55
58
  "test:pty": "sh test/pty/run-visual.sh",
56
59
  "benchmark:context": "tsx scripts/benchmark-local-index.ts",
60
+ "benchmark:duplication": "tsx scripts/benchmark-duplication.ts",
57
61
  "verify:package": "node scripts/verify-package.mjs",
58
62
  "release:verify": "npm run check && npm run verify:package --",
59
63
  "typecheck": "tsc --noEmit",