@dzhechkov/keysarium 1.7.10 → 1.7.11
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": "
|
|
12
|
+
"sha256": "a81456ef7ae79788d7859aab9a2238c541bb61a41b9d289a27ae6992119538db"
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
15
|
"path": "README.ru.md",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
},
|
|
22
22
|
{
|
|
23
23
|
"path": "package.json",
|
|
24
|
-
"sha256": "
|
|
24
|
+
"sha256": "844c32f67fc8ed8099a388aa53f597a100371c6a693d4b99730a5808593a4843"
|
|
25
25
|
},
|
|
26
26
|
{
|
|
27
27
|
"path": "src/cli.js",
|
|
@@ -389,7 +389,7 @@
|
|
|
389
389
|
},
|
|
390
390
|
{
|
|
391
391
|
"path": "templates/.claude/skills/feature-adr/modules/07-code.md",
|
|
392
|
-
"sha256": "
|
|
392
|
+
"sha256": "d5c03890b2b3a34277c73a14d3d7c97741dec1d6c382e87ee4cc6a5a52d938d7"
|
|
393
393
|
},
|
|
394
394
|
{
|
|
395
395
|
"path": "templates/.claude/skills/feature-adr/modules/08-qe.md",
|
|
@@ -487,6 +487,10 @@
|
|
|
487
487
|
"path": "templates/.claude/skills/feature-adr/scripts/build-coder-context.mjs",
|
|
488
488
|
"sha256": "19c3991bfb5e88205c9ff6d4d44037c136a190581bab199d3928196e4616fe15"
|
|
489
489
|
},
|
|
490
|
+
{
|
|
491
|
+
"path": "templates/.claude/skills/feature-adr/scripts/check-code-targets.mjs",
|
|
492
|
+
"sha256": "bfbad12b54508d5d4c71de640c5e19b3d19317f660e2986d02338ef502f8007e"
|
|
493
|
+
},
|
|
490
494
|
{
|
|
491
495
|
"path": "templates/.claude/skills/feature-adr/scripts/check-plan-completeness.mjs",
|
|
492
496
|
"sha256": "8b93949ce4f671d932c5389050db3a3e2750efcbed69681d69f392ccf4d2a168"
|
|
@@ -1001,5 +1005,5 @@
|
|
|
1001
1005
|
}
|
|
1002
1006
|
]
|
|
1003
1007
|
},
|
|
1004
|
-
"signature": "
|
|
1008
|
+
"signature": "p0J0fnCC54JAc14pg5UuIgUGtG8u7YLxPlBS6YEXl4qUf5yCqWGZ4g6Bs2Tz8XSfIg1uHkBkAAczkeGaKeBeBw=="
|
|
1005
1009
|
}
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @dzhechkov/keysarium
|
|
2
2
|
|
|
3
|
-
Current package version: `1.7.
|
|
3
|
+
Current package version: `1.7.11`. <!-- dz:version -->
|
|
4
4
|
|
|
5
5
|
Site: https://aicoding.space · Source: https://github.com/djd1m/dz-harness/tree/main/packages/@dzhechkov/keysarium
|
|
6
6
|
|
|
@@ -70,6 +70,11 @@ After installation, open Claude Code in your project directory and start using s
|
|
|
70
70
|
|
|
71
71
|
## What You Get
|
|
72
72
|
|
|
73
|
+
MEASURED package inventory from `npm pack --dry-run --json` in this package directory.
|
|
74
|
+
Skills are `templates/.claude/skills/*/SKILL.md`; commands are Markdown files in
|
|
75
|
+
`templates/.claude/commands/`. Rules, shards and agent templates are beneath `templates/.claude/`; the library is
|
|
76
|
+
`templates/lib/` and optional documentation is `templates/docs/`. Counts describe bundled files,
|
|
77
|
+
not execution results.
|
|
73
78
|
| Component | Count | Description |
|
|
74
79
|
|-----------|-------|-------------|
|
|
75
80
|
| **Skills** | 12 | `explore`, `frontend-design`, `goap-research-ed25519`, `presentation-storyteller`, `problem-solver-enhanced`, `reverse-engineering-unicorn`, `knowledge-extractor`, `ai-factory-mapper`, `analyst-manual-full`, `edu-site-generator`, `transcript-site-generator`, `feature-adr` |
|
|
@@ -84,9 +89,10 @@ After installation, open Claude Code in your project directory and start using s
|
|
|
84
89
|
Everything is installed into your project's `.claude/` directory and works natively with Claude Code.
|
|
85
90
|
|
|
86
91
|
> Counts above are MEASURED from the shipped `templates/` tree — reproducer:
|
|
87
|
-
> `npx @dzhechkov/keysarium init --dry-run`
|
|
88
|
-
>
|
|
89
|
-
>
|
|
92
|
+
> `npx @dzhechkov/keysarium init --dry-run --with-docs` prints these component counts, including
|
|
93
|
+
> optional documentation. On an installed project, `npx @dzhechkov/keysarium list` reports recursive
|
|
94
|
+
> file totals; its skills row counts skill assets, not skill directories, so its units differ from
|
|
95
|
+
> this table. Compare matching units when checking an installed project.
|
|
90
96
|
|
|
91
97
|
---
|
|
92
98
|
|
|
@@ -245,7 +251,9 @@ The toolkit automatically detects the domain from the case description and appli
|
|
|
245
251
|
- Visual palette: Blue / Navy / Silver
|
|
246
252
|
|
|
247
253
|
### Retail / E-commerce
|
|
248
|
-
-
|
|
254
|
+
- ESTIMATED example design target: response latency below 200 ms for real-time recommendations.
|
|
255
|
+
This is a planning constraint for a retail case, not measured Keysarium performance; validate it
|
|
256
|
+
against the proposed system and its workload.
|
|
249
257
|
- A/B testing as primary validation method
|
|
250
258
|
- Personalization vs. privacy balance (GDPR / FZ-152)
|
|
251
259
|
- Seasonality and cold-start handling
|
|
@@ -530,3 +538,15 @@ Before fallback, host prepare retains independently written pending receipt find
|
|
|
530
538
|
After a reviewed artifact is renamed or removed, convergence keeps its previously host-bound condition scope in the measured manifest; an absent old path has a null digest. Current discovered paths remain measured. Both prepare and evaluate validate the retained snapshot and reject unbound or unsafe scope paths. The original condition and originating reviewer verification remain required; a rename alone does not close a finding.
|
|
531
539
|
|
|
532
540
|
QE also measures the exact `.dz/guard.json` policy configuration when it is in the current Git index or selected review base. This includes newly staged and intent-to-add files; base-tracked deletions retain a null digest. Both declared targets and discovered changes use this rule. Untracked files absent from that base do not qualify through older history. Other `.dz/` runtime files remain excluded, and existing path, symlink, freshness and reviewer-ownership checks still apply.
|
|
541
|
+
|
|
542
|
+
### Pre-code target admission
|
|
543
|
+
|
|
544
|
+
Step 7 now runs the installed read-only `scripts/check-code-targets.mjs` before literal context,
|
|
545
|
+
code-cache lookup or any coder route, on every entry including auto/force resume. It reuses the
|
|
546
|
+
colocated review manifest authority: strict targets, circular exclusions, discovered source changes,
|
|
547
|
+
path/Git safety and the exact `.dz/guard.json` index-or-selected-base exception are unchanged.
|
|
548
|
+
Missing planned files remain admissible. Workflow requires admitted JSON plus the actual producer's
|
|
549
|
+
terminal `RC_EXIT:0` witness; failure refuses coding/cache access. Admission preserves review state
|
|
550
|
+
and existing `.fa-state/base-ref` (HEAD only when absent); actual coder initialization never resets
|
|
551
|
+
an existing base. Plain uses the same executable helper and mandatory instructions, without an
|
|
552
|
+
automatic dispatcher. Admission observes current bytes; final QE remains the freshness check.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dzhechkov/keysarium",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.11",
|
|
4
4
|
"scripts": {},
|
|
5
5
|
"description": "AI Case Research Toolkit for Claude Code — full 7-phase pipeline with feature-adr, dream cycles, background workers, multi-platform support, reward learning, and Cloud.ru AI Factory mapping (--ai-factory flag)",
|
|
6
6
|
"main": "src/cli.js",
|
package/sbom.json
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"hashes": [
|
|
26
26
|
{
|
|
27
27
|
"alg": "SHA-256",
|
|
28
|
-
"content": "
|
|
28
|
+
"content": "a81456ef7ae79788d7859aab9a2238c541bb61a41b9d289a27ae6992119538db"
|
|
29
29
|
}
|
|
30
30
|
]
|
|
31
31
|
},
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
},
|
|
60
60
|
{
|
|
61
61
|
"name": "dz:canonical-json-sha256-v2",
|
|
62
|
-
"value": "
|
|
62
|
+
"value": "844c32f67fc8ed8099a388aa53f597a100371c6a693d4b99730a5808593a4843"
|
|
63
63
|
}
|
|
64
64
|
]
|
|
65
65
|
},
|
|
@@ -979,7 +979,7 @@
|
|
|
979
979
|
"hashes": [
|
|
980
980
|
{
|
|
981
981
|
"alg": "SHA-256",
|
|
982
|
-
"content": "
|
|
982
|
+
"content": "d5c03890b2b3a34277c73a14d3d7c97741dec1d6c382e87ee4cc6a5a52d938d7"
|
|
983
983
|
}
|
|
984
984
|
]
|
|
985
985
|
},
|
|
@@ -1223,6 +1223,16 @@
|
|
|
1223
1223
|
}
|
|
1224
1224
|
]
|
|
1225
1225
|
},
|
|
1226
|
+
{
|
|
1227
|
+
"type": "file",
|
|
1228
|
+
"name": "templates/.claude/skills/feature-adr/scripts/check-code-targets.mjs",
|
|
1229
|
+
"hashes": [
|
|
1230
|
+
{
|
|
1231
|
+
"alg": "SHA-256",
|
|
1232
|
+
"content": "bfbad12b54508d5d4c71de640c5e19b3d19317f660e2986d02338ef502f8007e"
|
|
1233
|
+
}
|
|
1234
|
+
]
|
|
1235
|
+
},
|
|
1226
1236
|
{
|
|
1227
1237
|
"type": "file",
|
|
1228
1238
|
"name": "templates/.claude/skills/feature-adr/scripts/check-plan-completeness.mjs",
|
|
@@ -26,6 +26,40 @@ opus (complex code generation)
|
|
|
26
26
|
|
|
27
27
|
### 1. Pre-Implementation Checklist
|
|
28
28
|
|
|
29
|
+
### Current target admission (before any coding)
|
|
30
|
+
|
|
31
|
+
After prerequisite gates complete, and on **every** Step-7 entry (including auto/force resume),
|
|
32
|
+
run the installed `scripts/check-code-targets.mjs` beside this module **before** context assembly,
|
|
33
|
+
code-cache lookup, delegation or in-session edits. Set `TARGET_HELPER` to that installation's
|
|
34
|
+
absolute helper path, `EXECUTION_PROJECT` to the absolute execution repository root, and
|
|
35
|
+
`FEATURE_DIR` to its absolute `features/<slug>` directory:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
node "$TARGET_HELPER" --repo "$EXECUTION_PROJECT" --feature "$FEATURE_DIR"
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Require the actual command exit 0 and exactly one `fa-code-targets-1` JSON document with
|
|
42
|
+
`status: "admitted"`, a SHA-256 `manifestDigest` and empty `reasons`. Any missing/broken helper,
|
|
43
|
+
command failure, refused/unavailable status or malformed/contradictory output stops coding and
|
|
44
|
+
cache access; repair the named cause first. Do not substitute a narrated success or saved admission.
|
|
45
|
+
For a host relay, the shell must capture the producer's exit immediately and append one terminal
|
|
46
|
+
`RC_EXIT:<integer>` line; Workflow requires both admitted JSON and observed `RC_EXIT:0` and refuses
|
|
47
|
+
missing/duplicate/conflicting witnesses. Keep stderr separate from the bounded relay.
|
|
48
|
+
|
|
49
|
+
The helper only calls the colocated review checker's `measureManifest(repo, feature, 'qe')`.
|
|
50
|
+
Its strict `- ` target grammar, circular-root exclusions, discovered changed/untracked paths,
|
|
51
|
+
filesystem/Git safety and exact `.dz/guard.json` index-or-selected-base authority remain unchanged.
|
|
52
|
+
K2 remains an additional legacy Markdown-friendly check; admission does not normalize its bullets
|
|
53
|
+
or backticks. Planned missing files/deletions can have null digests. The admission digest records
|
|
54
|
+
this observation, not QE approval or a replacement cache key. Admission never prepares/evaluates
|
|
55
|
+
review lineage or writes source, receipts or `.fa-state`.
|
|
56
|
+
|
|
57
|
+
The selected baseline is existing `.fa-state/base-ref`, otherwise HEAD. Before actual coding,
|
|
58
|
+
initialize HEAD only if that base file is absent; preserve an existing original selection through
|
|
59
|
+
retries/re-entry. Refuse a failed initialization before edits. Admission does not initialize it.
|
|
60
|
+
This is executable Plain guidance with mandatory orchestration, not an automatic Plain dispatcher.
|
|
61
|
+
An unrelated process can change source after admission; ordinary final QE still checks freshness.
|
|
62
|
+
|
|
29
63
|
### Current literal context (plain and delegated coding)
|
|
30
64
|
|
|
31
65
|
Before coding or delegating, run the installed helper beside this module. Set `CONTEXT_HELPER` to
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// Read-only current source admission. This is neither a QE receipt nor a cache key.
|
|
3
|
+
import { createHash } from 'node:crypto'
|
|
4
|
+
import { realpathSync } from 'node:fs'
|
|
5
|
+
import { resolve } from 'node:path'
|
|
6
|
+
import { measureManifest } from './check-review-convergence.mjs'
|
|
7
|
+
|
|
8
|
+
const schema = 'fa-code-targets-1'
|
|
9
|
+
let result
|
|
10
|
+
try {
|
|
11
|
+
const args = process.argv.slice(2)
|
|
12
|
+
if (args.length !== 4 || args[0] !== '--repo' || !args[1] || args[2] !== '--feature' || !args[3]) throw Error('invalid-arguments: expected --repo <project> --feature <feature>')
|
|
13
|
+
// Match the checker: real execution root, feature resolved from that root, then
|
|
14
|
+
// its own inside-repo/path/Git checks. Do not reinterpret feature from cwd.
|
|
15
|
+
const repo = realpathSync(args[1])
|
|
16
|
+
const feature = resolve(repo, args[3])
|
|
17
|
+
const manifest = measureManifest(repo, feature, 'qe')
|
|
18
|
+
result = { schema, status: 'admitted', manifestDigest: createHash('sha256').update(JSON.stringify(manifest)).digest('hex'), reasons: [] }
|
|
19
|
+
} catch (error) {
|
|
20
|
+
// execFileSync errors include raw subprocess output in message. Keep that out
|
|
21
|
+
// of the wire; ordinary checker diagnostics are bounded and carry no contents.
|
|
22
|
+
const reason = error && (error.stdout !== undefined || error.stderr !== undefined)
|
|
23
|
+
? 'git-evidence-unavailable: exit=' + String(error.status ?? error.code ?? 'unknown')
|
|
24
|
+
: String(error?.message || 'measurement-unavailable').slice(0, 4096)
|
|
25
|
+
result = { schema, status: 'refused', manifestDigest: null, reasons: [reason] }
|
|
26
|
+
}
|
|
27
|
+
process.stdout.write(JSON.stringify(result) + '\n')
|
|
28
|
+
process.exitCode = result.status === 'admitted' ? 0 : 1
|