@skein-code/cli 0.3.15 → 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.
- package/README.md +6 -4
- package/dist/cli.js +406 -144
- package/dist/cli.js.map +1 -1
- package/docs/ARCHITECTURE.md +13 -1
- package/docs/NEXT_STEPS.md +21 -9
- package/package.json +8 -1
package/docs/ARCHITECTURE.md
CHANGED
|
@@ -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
|
|
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
|
|
@@ -98,6 +100,16 @@ exact hash, and winnowed hashes. The generation cache is cleared on load, full
|
|
|
98
100
|
build, targeted upsert, and deletion. Audit receipts never retain source,
|
|
99
101
|
normalized tokens, literal contents, prompts, or raw retrieval failures.
|
|
100
102
|
|
|
103
|
+
Duplication findings are folded into the existing completion record rather than
|
|
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
|
|
106
|
+
matches receive stable, bounded ids; the optional `duplication_audit` read tool
|
|
107
|
+
is exposed only while unsuppressed findings exist. Suppression is exact-match,
|
|
108
|
+
reason-coded, and persisted as a content-free audit receipt. Repaired/deleted/
|
|
109
|
+
small functions produce a `clear` receipt for paths that previously carried an
|
|
110
|
+
active finding, so the summary cannot retain stale warnings. Legacy receipts
|
|
111
|
+
without ids remain readable and are never suppressible.
|
|
112
|
+
|
|
101
113
|
### Prompt layers
|
|
102
114
|
|
|
103
115
|
The runner keeps the cacheable system prefix separate from mutable task state:
|
package/docs/NEXT_STEPS.md
CHANGED
|
@@ -9,7 +9,7 @@ one of the milestones below.
|
|
|
9
9
|
|
|
10
10
|
- Product name: `Skein`; primary executable: `skein`.
|
|
11
11
|
- Compatibility executables: `mosaic` and `mosaic-code`.
|
|
12
|
-
- Current repository version: `0.3.
|
|
12
|
+
- Current repository version: `0.3.16`.
|
|
13
13
|
- Runtime requirement: Node.js `>=22.16.0` (the runtime uses unflagged
|
|
14
14
|
`node:sqlite` with FTS5, and current CLI/build dependencies require this
|
|
15
15
|
Node 22 baseline).
|
|
@@ -41,8 +41,8 @@ npm audit --omit=dev
|
|
|
41
41
|
npm run release:verify -- --output-dir artifacts/package
|
|
42
42
|
```
|
|
43
43
|
|
|
44
|
-
The latest verified package is `skein-code-cli-0.3.
|
|
45
|
-
its SHA-256 to `artifacts/package/skein-code-cli-0.3.
|
|
44
|
+
The latest verified package is `skein-code-cli-0.3.16.tgz`. The verifier writes
|
|
45
|
+
its SHA-256 to `artifacts/package/skein-code-cli-0.3.16.tgz.sha256`, and CI
|
|
46
46
|
retains the checksum beside the package metadata. The checksum is deliberately
|
|
47
47
|
not copied into this packaged document because doing so would change the
|
|
48
48
|
archive it describes.
|
|
@@ -54,10 +54,10 @@ short-height case. The current full-suite count is recorded from the latest
|
|
|
54
54
|
|
|
55
55
|
## Recommended Order
|
|
56
56
|
|
|
57
|
-
### P0-D:
|
|
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
|
-
`0.3.15`
|
|
60
|
+
`0.3.15` added a post-write deterministic audit for ordinary TS/TSX/JS/JSX/MJS/
|
|
61
61
|
CJS functions. The audit captures a content-free baseline before mutation,
|
|
62
62
|
normalizes identifiers plus literals, uses exact hashes and 10-token
|
|
63
63
|
shingle/winnowing Jaccard matching, and runs before changed-path index refresh.
|
|
@@ -66,10 +66,22 @@ 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-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
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
|
|
79
|
+
`duplication_audit` tool is disclosed only when unsuppressed matches exist and
|
|
80
|
+
can suppress one exact match with a reason code plus a bounded explanation;
|
|
81
|
+
wildcard/global suppression, credentials, and code-block reasons are rejected.
|
|
82
|
+
Suppression is an audit event, never a verification bypass. A repaired,
|
|
83
|
+
deleted, or below-threshold function emits a clear receipt so old warnings do
|
|
84
|
+
not persist. Older `0.3.15` receipts without match ids remain readable.
|
|
73
85
|
|
|
74
86
|
### P0: Continuous Integration And Release Reproducibility
|
|
75
87
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skein-code/cli",
|
|
3
|
-
"version": "0.3.
|
|
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,12 @@
|
|
|
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",
|
|
22
|
+
"Duplication warnings now aggregate into the single completion receipt without changing verified status",
|
|
23
|
+
"Exact match ids support bounded, reason-coded suppression with audit and credential/code-block safeguards",
|
|
24
|
+
"Duplication audit tools are disclosed only when active warnings exist and repaired paths clear stale matches",
|
|
19
25
|
"Warning-only TS/JS duplication audit compares new functions with the pre-write index generation",
|
|
20
26
|
"Deterministic Type-1/2 and Type-3 receipts retain only hashes, locations, scores, and bounded counts",
|
|
21
27
|
"Ordinary edits, renames, moves, deletions, small functions, tests, generated paths, and failed writes stay quiet",
|
|
@@ -51,6 +57,7 @@
|
|
|
51
57
|
"pretest:pty": "npm run build",
|
|
52
58
|
"test:pty": "sh test/pty/run-visual.sh",
|
|
53
59
|
"benchmark:context": "tsx scripts/benchmark-local-index.ts",
|
|
60
|
+
"benchmark:duplication": "tsx scripts/benchmark-duplication.ts",
|
|
54
61
|
"verify:package": "node scripts/verify-package.mjs",
|
|
55
62
|
"release:verify": "npm run check && npm run verify:package --",
|
|
56
63
|
"typecheck": "tsc --noEmit",
|