@dzhechkov/keysarium 1.5.28 β 1.5.30
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 +1 -0
- package/bin/cli.js +0 -0
- package/package.json +2 -2
- package/templates/.claude/skills/feature-adr/SKILL.md +24 -1
- package/templates/.claude/skills/feature-adr/modules/03.5-ideation-swarm.md +22 -1
- package/templates/.claude/skills/feature-adr/modules/06-implementation-plan.md +20 -0
- package/templates/.claude/skills/feature-adr/modules/07-code.md +18 -0
- package/templates/.claude/skills/feature-adr/modules/08-qe.md +24 -0
- package/templates/.claude/skills/feature-adr/modules/10-delivery-gate.md +63 -0
package/README.md
CHANGED
|
@@ -29,6 +29,7 @@ After installation, open Claude Code in your project directory and start using s
|
|
|
29
29
|
| Component | Count | Description |
|
|
30
30
|
|-----------|-------|-------------|
|
|
31
31
|
| **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` |
|
|
32
|
+
| | | *bundled `feature-adr` at pipeline v1.3.60: amendment-Confirmation discipline (AM-N β named falsifying test), derived `π¦ Gates` checkpoint line, opt-in Step-10 Delivery Gate (4-plane post-implementation review)* |
|
|
32
33
|
| **Commands** | 20 | `/casarium`, `/new-research`, `/parallel-research`, `/discovery`, `/explore-case`, `/research`, `/cjm-prototype`, `/solve`, `/architecture-phase`, `/presentation`, `/harvest`, `/brain-export`, `/brain-import`, `/bto-benchmark`, `/feature-adr`, `/init-platform`, `/learning-stats`, `/dream`, `/workers`, `/analyst-manual` |
|
|
33
34
|
| **Rules** | 14 | `research-quality`, `checkpoint-protocol`, `agent-swarm`, `domain-specific`, `anti-patterns`, `file-conventions`, `modular-reuse`, `feedback-loops`, `model-routing`, `trust-tiers`, `background-workers`, `dream-cycles`, `reward-learning`, `feature-adr-conventions` |
|
|
34
35
|
| **Shards** | 9 | Context shards for each phase: `phase-0-discovery`, `phase-1-explore`, `phase-2-research`, `phase-25-cjm`, `phase-3-solve`, `phase-4-architecture`, `phase-5-presentation`, `phase-ai-factory`, `feature-adr` |
|
package/bin/cli.js
CHANGED
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dzhechkov/keysarium",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.30",
|
|
4
4
|
"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)",
|
|
5
5
|
"main": "src/cli.js",
|
|
6
6
|
"bin": {
|
|
@@ -50,4 +50,4 @@
|
|
|
50
50
|
"publishConfig": {
|
|
51
51
|
"access": "public"
|
|
52
52
|
}
|
|
53
|
-
}
|
|
53
|
+
}
|
|
@@ -53,7 +53,8 @@ Trigger on:
|
|
|
53
53
|
β βββ 06-implementation-plan.md β Step 6: SPARC-GOAP planning (enhanced)
|
|
54
54
|
β βββ 07-code.md β Step 7: Code generation
|
|
55
55
|
β βββ 08-qe.md β Step 8: QE + brutal-honesty review (enhanced)
|
|
56
|
-
β
|
|
56
|
+
β βββ 09-fleet-qe.md β Step 9: Fleet QE assessment (NEW)
|
|
57
|
+
β βββ 10-delivery-gate.md β Step 10: Delivery Gate (opt-in, post-implementation)
|
|
57
58
|
βββ references/
|
|
58
59
|
β βββ complexity-matrix.md β S/M/L/XL criteria & step activation
|
|
59
60
|
β βββ adr-template.md β ADR document template
|
|
@@ -140,6 +141,7 @@ Step | S | M | L | XL | Model | Agentic QE Skill
|
|
|
140
141
|
7 Code | β | β | β | β | opus | β |
|
|
141
142
|
8 QE + Brutal Honesty | β | β | β | β | sonnet | brutal-honesty-review |
|
|
142
143
|
9 Fleet QE Assessment | - | - | β | β | sonnet | qe-req-val + risk-based + integration + regression + coverage |
|
|
144
|
+
10 Delivery Gate (OPT-IN) | o | o | o | o | cross-family of coder | 4 planes: regressions β security β code-quality β product-honesty (o = runs only when explicitly requested; absent β byte-identical) |
|
|
143
145
|
```
|
|
144
146
|
|
|
145
147
|
## DAG Dependencies
|
|
@@ -271,6 +273,7 @@ features/<feature-slug>/
|
|
|
271
273
|
| Step 7 | `<promise>FEATURE_ADR_IMPLEMENTED</promise>` |
|
|
272
274
|
| Step 8 | `<promise>FEATURE_ADR_VERIFIED</promise>` |
|
|
273
275
|
| Step 9 | `<promise>FEATURE_ADR_FLEET_VERIFIED</promise>` |
|
|
276
|
+
| Step 10 (opt-in) | `<promise>FEATURE_ADR_DELIVERY_GATED</promise>` |
|
|
274
277
|
|
|
275
278
|
## External Skills (loaded as needed)
|
|
276
279
|
|
|
@@ -493,6 +496,12 @@ only the statusline:
|
|
|
493
496
|
π Learning: {recalled} patterns recalled for this feature, {stored} new stored this run
|
|
494
497
|
```
|
|
495
498
|
|
|
499
|
+
**Record the panel at the START of every step, not only at Steps 0/8/9.** The panel shows the last step
|
|
500
|
+
that reported; a pipeline that reports three times per run shows a stale step for most of its life. Emit
|
|
501
|
+
`dz statusline --fa-record --slug <slug> --step "<Step N Name>" --recalled <n> --stored <n>` as the first
|
|
502
|
+
action of each step. The recall/teach counts only change at Steps 0/8/9; the *step label* changes at every
|
|
503
|
+
one of them.
|
|
504
|
+
|
|
496
505
|
*Honesty note:* the panel is live only insofar as the pipeline records state β it reflects what the
|
|
497
506
|
pipeline actually did with the loop (recalls that ran, stores that landed), not an aspirational count.
|
|
498
507
|
|
|
@@ -583,6 +592,7 @@ npx @dzhechkov/skills-feature-adr init --with-learning --knowledge-extractor
|
|
|
583
592
|
<promise>[PROMISE_TAG]</promise>
|
|
584
593
|
Tier: {COMPLEXITY_TIER} | Active Steps: {ACTIVE_STEPS}
|
|
585
594
|
π Learning: {recalled} patterns recalled for this feature, {stored} new stored this run
|
|
595
|
+
π¦ Gates: challenge-panel β Β· claim-check β Β· discrimination not-run Β· amendments β Β· fleet β Β· delivery n/a
|
|
586
596
|
|
|
587
597
|
[2-3 line summary]
|
|
588
598
|
Artifacts: [list] β
|
|
@@ -592,3 +602,16 @@ Artifacts: [list] β
|
|
|
592
602
|
β’ "[feedback]" β adjust
|
|
593
603
|
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
594
604
|
```
|
|
605
|
+
|
|
606
|
+
### The π¦ Gates line (mandatory, DERIVED β never asserted from memory)
|
|
607
|
+
|
|
608
|
+
Every checkpoint banner carries a `π¦ Gates:` line listing each gate relevant to the run so far. Symbols:
|
|
609
|
+
`β` ran and passed Β· `β` ran and failed Β· `not-run` pending Β· `β` N/A for this tier/slice (say why once).
|
|
610
|
+
Each value is **derived from machine-checkable state** β an artifact's existence, a command's JSON verdict, a
|
|
611
|
+
test result β never from what the orchestrator remembers doing. The line does not make a gate run; it makes
|
|
612
|
+
NOT running one loud: a skipped gate shows as `not-run` by construction instead of being silently forgotten
|
|
613
|
+
(cost-of-detection ladder: the banner is the one surface emitted at EVERY step boundary, so strapping the
|
|
614
|
+
checklist to it is the cheapest way to harden orchestrator judgment). Gate sources: challenge-panel β its
|
|
615
|
+
verdict exists; claim-check β its JSON counts (`high-findings` vs `clean`); discrimination β the
|
|
616
|
+
`dz discrimination-check` aggregate; amendments β every `AM-N` row carries its `β test` and it was checked;
|
|
617
|
+
fleet β the 09 artifact (L/XL only, else `β`).
|
|
@@ -119,7 +119,8 @@ After all agents complete, apply decision logic:
|
|
|
119
119
|
| Critical Risks | > 2 | 1-2 | 0 |
|
|
120
120
|
|
|
121
121
|
- **NO-GO**: BLOCK. Requirements/ADR need rework. Return to Step 1 or Step 3.
|
|
122
|
-
- **CONDITIONAL**: Proceed with warnings.
|
|
122
|
+
- **CONDITIONAL**: Proceed with warnings. Each condition becomes an **amendment row** in a `## Amendments`
|
|
123
|
+
section (see below) β not loose advisory prose.
|
|
123
124
|
- **GO**: Full confidence. Proceed to Step 6.
|
|
124
125
|
|
|
125
126
|
### 5. Synthesis Report
|
|
@@ -132,6 +133,26 @@ Generate consolidated `03.5_ideation_report.md` with:
|
|
|
132
133
|
5. Test ideas (categorized: unit / integration / E2E)
|
|
133
134
|
6. Conditional agent findings (if any)
|
|
134
135
|
7. Recommendations prioritized by risk Γ impact
|
|
136
|
+
8. `## Amendments` β on a CONDITIONAL verdict, every condition as a fixed-shape row (see below)
|
|
137
|
+
|
|
138
|
+
### Amendment Confirmation discipline (every amendment is a mini-ADR)
|
|
139
|
+
|
|
140
|
+
Amendments are where the sharpest design corrections land β and, historically, the least-tested part of a
|
|
141
|
+
run: they arrive as prose AFTER the ADR's Confirmation discipline already ran, so a coder can implement one
|
|
142
|
+
with no test proving it works. Therefore every amendment carries a one-line **Confirmation**, in a fixed,
|
|
143
|
+
machine-checkable shape:
|
|
144
|
+
|
|
145
|
+
```
|
|
146
|
+
AM-N (source): <change>. Confirmation: <property> β test `test_name` (fails if reverted).
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
- `source` names where it came from (qcsd | challenge-panel | user-steer).
|
|
150
|
+
- The named test must FAIL if the amendment were reverted/broken (non-vacuous β Step 8 verifies via
|
|
151
|
+
`dz discrimination-check`).
|
|
152
|
+
- For a **safeguard** amendment (a warning/guard/fallback): the test must prove the safeguard actually
|
|
153
|
+
**TRIGGERS on a real input** β not merely that its code path exists. A structurally-dead safeguard passes
|
|
154
|
+
an existence test and never fires in production.
|
|
155
|
+
- A cheap lint holds the shape: every `AM-N` line must contain a `β test ` token naming a test that exists.
|
|
135
156
|
|
|
136
157
|
## Output
|
|
137
158
|
|
|
@@ -149,6 +149,11 @@ Create `features/<slug>/06_implementation_plan.md` with:
|
|
|
149
149
|
- Parallel groups
|
|
150
150
|
- Checkpoint schedule
|
|
151
151
|
- Risk assessment (L/XL)
|
|
152
|
+
- `## Amendments` β every correction folded into this plan (a Step-3.5 CONDITIONAL condition, a
|
|
153
|
+
challenge-panel confirmed finding, a user checkpoint steer) as a fixed-shape row:
|
|
154
|
+
`AM-N (source): <change>. Confirmation: <property> β test `test_name` (fails if reverted).`
|
|
155
|
+
A safeguard amendment's named test must prove it TRIGGERS on a real input, not merely that its code
|
|
156
|
+
path exists. Step 8 verifies every named test exists and is non-vacuous (`dz discrimination-check`).
|
|
152
157
|
|
|
153
158
|
Set `{IMPL_PLAN}` variable.
|
|
154
159
|
|
|
@@ -169,6 +174,21 @@ Estimated {K} files to create/modify
|
|
|
169
174
|
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
170
175
|
```
|
|
171
176
|
|
|
177
|
+
## Challenge panel (adversarial plan-gate β before coding)
|
|
178
|
+
|
|
179
|
+
Before leaving the plan checkpoint for code (especially L/XL), offer the **`challenge-panel`** skill β a
|
|
180
|
+
FRESH adversary (never the plan author) tries to BREAK the plan across the fixed C1-C8 owner questions,
|
|
181
|
+
every P0/P1 is cross-validated, and the verdict is ADVISORY (never an auto-block):
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
dz challenge --plan features/<slug>/06_implementation_plan.md --author <planner-model>
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
Dispatch the panel on the CROSS-FAMILY model (`--author` prints which): plan by Claude β Codex adversary
|
|
188
|
+
(honest `codex exec`, never a stub); plan by Codex β fresh Claude. Drop any P0/P1 the cross-validator does
|
|
189
|
+
not confirm. A finding the owner accepts can be recorded in `architecture/degradations.md` so C1 stops
|
|
190
|
+
re-flagging it. In the ultracode workflow this Π²ΡΠ΅Π·ΠΊΠ° runs automatically and returns `challengeVerdict`.
|
|
191
|
+
|
|
172
192
|
## Quality Gates
|
|
173
193
|
|
|
174
194
|
- [ ] Every task has clear done criteria
|
|
@@ -31,6 +31,24 @@ Before writing any code:
|
|
|
31
31
|
- [ ] Identify import patterns and module structure
|
|
32
32
|
- [ ] Identify error handling patterns
|
|
33
33
|
- [ ] Identify test patterns
|
|
34
|
+
- [ ] Plan carries `## Amendments`? β implement every AM-N row AND its named Confirmation test (a
|
|
35
|
+
safeguard amendment needs a test proving it FIRES on a real input)
|
|
36
|
+
- [ ] Does the diff add I/O (DB/network/file) to a previously-pure path β especially
|
|
37
|
+
startup/lifespan/health? β name the NEGATIVE resource-down test, or justify N/A
|
|
38
|
+
|
|
39
|
+
### The I/O-on-pure-path rule (and the fixture-swap smell)
|
|
40
|
+
|
|
41
|
+
If a change introduces I/O into a path that was previously I/O-free β above all a startup, lifespan, or
|
|
42
|
+
health path β the happy-path test is NOT enough. Also write a **negative resource-down test**: a
|
|
43
|
+
broken/unbound resource handle (dead DB, missing table, exhausted pool) β the path degrades per its
|
|
44
|
+
declared contract β **fail-open** for an advisory feature, **explicit fail-fast** for a load-bearing one.
|
|
45
|
+
Without it, an outage of the resource takes down the whole path (including health checks) for the sake of
|
|
46
|
+
an advisory feature β and healthy test fixtures will hide it.
|
|
47
|
+
|
|
48
|
+
**Fixture-swap smell:** if making the new code pass required replacing a "broken" test fixture with a
|
|
49
|
+
healthy one β stop. The old fixture was probably a negative control proving the path was I/O-free. Keep
|
|
50
|
+
BOTH tests: the healthy one (new behavior) and the broken one (degradation contract). Never silently
|
|
51
|
+
delete the case that proved the old property.
|
|
34
52
|
|
|
35
53
|
### 2. Execute Tasks per Plan
|
|
36
54
|
|
|
@@ -158,6 +158,30 @@ Reject explainer-masquerading-as-ADR: if the document describes a problem space
|
|
|
158
158
|
|
|
159
159
|
The Confirmation-to-test link is load-bearing. If absent, grade no better than C and record a blocker gap; for architecture dependency/layering/interface rules, recommend an ArchUnit or ArchUnitTS fitness function.
|
|
160
160
|
|
|
161
|
+
### 3b. Amendment Gate (P2 β amendments inherit the Confirmation discipline)
|
|
162
|
+
|
|
163
|
+
Read the `## Amendments` sections of `03.5_ideation_report.md` and `06_implementation_plan.md` (skip
|
|
164
|
+
silently if absent). For EVERY `AM-N` row verify:
|
|
165
|
+
1. the row contains a `β test ` token naming a real test (the fixed shape);
|
|
166
|
+
2. the named test **exists** in the suite;
|
|
167
|
+
3. it is **non-vacuous** β include the amendment test files in the SAME
|
|
168
|
+
`dz discrimination-check --test <f1,f2,...> --base HEAD --json` run as the ADR property test. An
|
|
169
|
+
amendment test that stays green at pre-feature base proves nothing about its amendment;
|
|
170
|
+
4. a **safeguard** amendment's test proves the safeguard FIRES on a real input (a structurally-dead
|
|
171
|
+
safeguard passes an existence test and never fires in production).
|
|
172
|
+
|
|
173
|
+
A missing, unnamed, or vacuous amendment test is a HIGH gap. This closes the distance between "we caught
|
|
174
|
+
the design flaw" (challenge-panel/QCSD) and "we proved the fix works".
|
|
175
|
+
|
|
176
|
+
### 3c. I/O-on-pure-path + fixture-swap hunt (P5)
|
|
177
|
+
|
|
178
|
+
In the TEST diff, hunt for replacements of broken/unbound fixtures with healthy ones β the old fixture was
|
|
179
|
+
probably a **negative control** proving a path was I/O-free; each such swap requires a compensating
|
|
180
|
+
negative resource-down test. In the CODE diff, hunt for new I/O (DB/network/file) on previously-pure
|
|
181
|
+
paths β especially startup/lifespan/health: require a negative resource-down test (broken resource β the
|
|
182
|
+
path degrades per its declared contract: fail-open for advisory, explicit fail-fast for load-bearing).
|
|
183
|
+
Missing β HIGH gap.
|
|
184
|
+
|
|
161
185
|
### 4. Multi-Agent Review Panel (L/XL)
|
|
162
186
|
|
|
163
187
|
For L/XL features, spawn 3 parallel review agents using brutal-honesty modes:
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Step 10: Delivery Gate (opt-in) β review the feature as a PUBLISHED ENTITY
|
|
2
|
+
|
|
3
|
+
> **Opt-in.** This step runs only when explicitly requested (the user asks for a delivery gate, or the
|
|
4
|
+
> workflow form receives `args.deliveryGate: true` / `args.models.delivery`). Absent β the pipeline is
|
|
5
|
+
> byte-identical to a run without Step 10 β no agents, no artifact.
|
|
6
|
+
|
|
7
|
+
## Why a separate step (not more Step-8)
|
|
8
|
+
|
|
9
|
+
Step 8 reviews the code as the coder's counterpart β pre-hand-off, working-tree view. Step 10 reviews the
|
|
10
|
+
feature as a **published entity**: the landed diff, its docs and claims, its behavior as a consumer will
|
|
11
|
+
meet it. Its distinctive plane β **product honesty** β is absent from Step 8 entirely: fabricated
|
|
12
|
+
completeness (output presented as complete when a source was unavailable), a feature that does less than
|
|
13
|
+
its description, misleading user-facing text. Origin: a real incident where a 2-agent fresh-eyes pass said
|
|
14
|
+
SHIP and only the full multi-plane review found the fabricated-completeness and cap-violation defects.
|
|
15
|
+
|
|
16
|
+
## Protocol
|
|
17
|
+
|
|
18
|
+
### 1. Four orthogonal planes (parallel, cross-family of the coder)
|
|
19
|
+
|
|
20
|
+
Each plane reads `07_code_changes/change_manifest.md` + the actual changed files (+ `git diff` for anything
|
|
21
|
+
uncommitted), calibrating on `architecture/vision.md` / `architecture/degradations.md` **when present** (an
|
|
22
|
+
accepted degradation is NOT a finding) and staying generic when absent:
|
|
23
|
+
|
|
24
|
+
| Plane | Hunts |
|
|
25
|
+
|---|---|
|
|
26
|
+
| **Regressions** | broken consumers/contracts; NEW I/O on previously-pure startup/lifespan/health paths without a negative resource-down test; removed/weakened tests (fixture-swap); silent semantic changes to shared surfaces |
|
|
27
|
+
| **Security** | injection via interpolated paths/refs/commands; secrets in code/artifacts; path traversal/symlink escapes; fail-open where the contract says fail-closed |
|
|
28
|
+
| **Code quality** | god-object growth; parallel implementations vs the reuse map; structurally-dead safeguards; swallowed errors |
|
|
29
|
+
| **Product honesty + common sense** | claims not backed by behavior; fabricated completeness; docs/READMEs promising more than the code does; misleading degradation/limits text |
|
|
30
|
+
|
|
31
|
+
Findings shape: `{severity: BLOCKER|HIGH|MED|LOW, title, where (file:line), why}` β confirmed only.
|
|
32
|
+
|
|
33
|
+
### 2. Cross-validation (BLOCKER/HIGH, by index)
|
|
34
|
+
|
|
35
|
+
Every BLOCKER/HIGH is independently cross-validated by a second agent, matched **positionally by index β
|
|
36
|
+
never by title** (duplicate titles cross-contaminate). Default-to-FP when uncertain. A validator outage
|
|
37
|
+
surfaces the findings **UNVALIDATED** β never silently dropped, never silently confirmed.
|
|
38
|
+
|
|
39
|
+
### 3. Machine-checkable hand-off criterion
|
|
40
|
+
|
|
41
|
+
Write `features/<slug>/10_delivery_review.md`:
|
|
42
|
+
- **## Verdict** β `hand-off: ready | blocked` (ready β 0 BLOCKER and 0 unwaived HIGH, cross-validation complete)
|
|
43
|
+
- **## Findings** β table: severity | plane | title | where | why | crossValidated
|
|
44
|
+
- **## Hand-off criterion** β machine-checkable rows: `0 BLOCKER: PASS/FAIL(n)`, `0 unwaived HIGH: PASS/FAIL(n)`.
|
|
45
|
+
Projects with a merge-request flow add THEIR OWN rows here (`CI terminal: β¦`, `draftβready: β¦`) β these are
|
|
46
|
+
**document rows the owner fills**, never API calls made by the pipeline. No merge-request flow β the rows
|
|
47
|
+
stay `β`.
|
|
48
|
+
- **## Note** β ADVISORY: the owner decides; nothing auto-aborts.
|
|
49
|
+
|
|
50
|
+
### Hard rules
|
|
51
|
+
|
|
52
|
+
1. **Findings only.** Step 10 NEVER posts to a VCS host, tracker, or any external service. Publishing a
|
|
53
|
+
review anywhere is a separate, explicit user instruction.
|
|
54
|
+
2. **Advisory.** `hand-off: blocked` is a report, not an abort (a false gate kills trust).
|
|
55
|
+
3. **Cross-family.** The planes run on the other model family than the coder (the Step-8 rule) β a model
|
|
56
|
+
must not deliver-gate its own code.
|
|
57
|
+
4. **Cost control.** One gate per hand-off, not per commit. A stack of related changes gets one Step-10 pass
|
|
58
|
+
on the combined diff.
|
|
59
|
+
|
|
60
|
+
## Promise tag
|
|
61
|
+
|
|
62
|
+
`<promise>FEATURE_ADR_DELIVERY_GATED</promise>` β and the `π¦ Gates:` line gains `delivery ready|blocked`
|
|
63
|
+
(derived from the review doc's Verdict, `n/a` when the gate was not requested).
|