@dzhechkov/keysarium 1.5.28 β 1.5.29
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/bin/cli.js +0 -0
- package/package.json +2 -2
- package/templates/.claude/skills/feature-adr/SKILL.md +20 -0
- 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/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.29",
|
|
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
|
+
}
|
|
@@ -493,6 +493,12 @@ only the statusline:
|
|
|
493
493
|
π Learning: {recalled} patterns recalled for this feature, {stored} new stored this run
|
|
494
494
|
```
|
|
495
495
|
|
|
496
|
+
**Record the panel at the START of every step, not only at Steps 0/8/9.** The panel shows the last step
|
|
497
|
+
that reported; a pipeline that reports three times per run shows a stale step for most of its life. Emit
|
|
498
|
+
`dz statusline --fa-record --slug <slug> --step "<Step N Name>" --recalled <n> --stored <n>` as the first
|
|
499
|
+
action of each step. The recall/teach counts only change at Steps 0/8/9; the *step label* changes at every
|
|
500
|
+
one of them.
|
|
501
|
+
|
|
496
502
|
*Honesty note:* the panel is live only insofar as the pipeline records state β it reflects what the
|
|
497
503
|
pipeline actually did with the loop (recalls that ran, stores that landed), not an aspirational count.
|
|
498
504
|
|
|
@@ -583,6 +589,7 @@ npx @dzhechkov/skills-feature-adr init --with-learning --knowledge-extractor
|
|
|
583
589
|
<promise>[PROMISE_TAG]</promise>
|
|
584
590
|
Tier: {COMPLEXITY_TIER} | Active Steps: {ACTIVE_STEPS}
|
|
585
591
|
π Learning: {recalled} patterns recalled for this feature, {stored} new stored this run
|
|
592
|
+
π¦ Gates: challenge-panel β Β· claim-check β Β· discrimination not-run Β· amendments β Β· fleet β
|
|
586
593
|
|
|
587
594
|
[2-3 line summary]
|
|
588
595
|
Artifacts: [list] β
|
|
@@ -592,3 +599,16 @@ Artifacts: [list] β
|
|
|
592
599
|
β’ "[feedback]" β adjust
|
|
593
600
|
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
594
601
|
```
|
|
602
|
+
|
|
603
|
+
### The π¦ Gates line (mandatory, DERIVED β never asserted from memory)
|
|
604
|
+
|
|
605
|
+
Every checkpoint banner carries a `π¦ Gates:` line listing each gate relevant to the run so far. Symbols:
|
|
606
|
+
`β` ran and passed Β· `β` ran and failed Β· `not-run` pending Β· `β` N/A for this tier/slice (say why once).
|
|
607
|
+
Each value is **derived from machine-checkable state** β an artifact's existence, a command's JSON verdict, a
|
|
608
|
+
test result β never from what the orchestrator remembers doing. The line does not make a gate run; it makes
|
|
609
|
+
NOT running one loud: a skipped gate shows as `not-run` by construction instead of being silently forgotten
|
|
610
|
+
(cost-of-detection ladder: the banner is the one surface emitted at EVERY step boundary, so strapping the
|
|
611
|
+
checklist to it is the cheapest way to harden orchestrator judgment). Gate sources: challenge-panel β its
|
|
612
|
+
verdict exists; claim-check β its JSON counts (`high-findings` vs `clean`); discrimination β the
|
|
613
|
+
`dz discrimination-check` aggregate; amendments β every `AM-N` row carries its `β test` and it was checked;
|
|
614
|
+
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:
|