@dzhechkov/skills-feature-adr 1.3.14 → 1.3.18

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 CHANGED
@@ -422,9 +422,15 @@ Hooks and events only **collect** raw data — distilling it into reusable patte
422
422
  `aqe learning consolidate` periodically (e.g. weekly, or after a heavy QE run);
423
423
  `aqe learning stats` shows the experience backlog.
424
424
  - **C (dz harness)** — run `dz consolidate` to harvest session learnings into the lexical store
425
- (mirrored to the agentdb vector store if present); inspect the result with `dz recall`. The
426
- SessionEnd hook automates this **only on clean session ends** — crashed or killed sessions are
427
- missed.
425
+ (mirrored to the agentdb vector store if present); inspect the result with `dz recall`.
426
+ Consolidation now runs automatically on **PreCompact**Claude Code fires this before every
427
+ context compaction (both auto-compaction and manual `/compact`), so long or heavily-compacted
428
+ sessions consolidate at each compaction boundary rather than only at a clean end. It is
429
+ **throttled** (a `.dz/.last-consolidate` marker enforces a minimum of ~15 min between auto-runs)
430
+ so rapid compactions don't reload the embedding model repeatedly. **SessionEnd** remains as a
431
+ secondary trigger for clean exits, and you can still run `dz consolidate` manually anytime.
432
+ PreCompact is the primary reliable trigger — earlier the SessionEnd-only hook missed long,
433
+ compacted, or crashed sessions, which left consolidation effectively manual.
428
434
 
429
435
  **Degradation symptom:** patterns stop improving while raw logs keep growing. If recall/injection
430
436
  quality plateaus, you're collecting but not distilling — consolidate.
package/bin/cli.js CHANGED
File without changes
@@ -216,7 +216,13 @@ reusable patterns is a separate consolidation step:
216
216
  returns zero useful patterns. Run `aqe learning consolidate` periodically (weekly, or after a
217
217
  heavy QE run); `aqe learning stats` shows the backlog.
218
218
  - **C** — run `dz consolidate` (harvests session learnings into the lexical store, mirrored to the
219
- vector store if present); inspect with `dz recall`. The SessionEnd hook covers **clean exits only**.
219
+ vector store if present); inspect with `dz recall`. Consolidation now runs automatically on
220
+ **PreCompact** (Claude Code fires this before every context compaction — auto and manual
221
+ `/compact`), so long/compacted sessions consolidate at each compaction boundary, not only at a
222
+ clean end. It's **throttled** via a `.dz/.last-consolidate` marker (~15 min min between auto-runs).
223
+ SessionEnd remains a secondary trigger for clean exits; manual `dz consolidate` works anytime.
224
+ PreCompact is the primary reliable trigger (SessionEnd alone missed long/compacted/crashed
225
+ sessions).
220
226
 
221
227
  **Degradation symptom:** patterns stop improving while raw logs keep growing → you're collecting,
222
228
  not distilling. Consolidate.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dzhechkov/skills-feature-adr",
3
- "version": "1.3.14",
3
+ "version": "1.3.18",
4
4
  "description": "Adaptive Feature Development skill pack for Claude Code — 11-step pipeline with Complexity Router (S/M/L/XL), ADR-driven architecture, 15 agentic-qe skills, multi-agent fleet QE. Supports --full-qe, --full-qe-extended, --with-learning, and --knowledge-extractor modes.",
5
5
  "bin": {
6
6
  "skills-feature-adr": "./bin/cli.js"
@@ -13,9 +13,6 @@
13
13
  "CHANGELOG.md",
14
14
  "docs/"
15
15
  ],
16
- "scripts": {
17
- "prepack": "node -e \"const fs=require('fs');const bad=['.claude','.skills-feature-adr.json'].filter(p=>fs.existsSync(p));if(bad.length){console.error('prepack guard: stray init artifacts in package dir: '+bad.join(', ')+' — remove before packing');process.exit(1)}\""
18
- },
19
16
  "keywords": [
20
17
  "claude",
21
18
  "claude-code",
@@ -60,5 +57,6 @@
60
57
  },
61
58
  "publishConfig": {
62
59
  "access": "public"
63
- }
64
- }
60
+ },
61
+ "scripts": {}
62
+ }
@@ -350,10 +350,14 @@ over agentic-qe's MCP pattern memory (`namespace: "learning"`, `fleet_init` firs
350
350
 
351
351
  - **Step 0** — `memory_query("patterns/feature-adr/*")` **plus** `dz recall --json` over the durable
352
352
  dz store → merged top-3 set `{LEARNED_PATTERNS}`; Step 1 folds them into the requirements brief as advisory lessons.
353
+ After the recall, record live state:
354
+ `dz statusline --fa-record --slug <feature-slug> --step "Step 0" --recalled <count of patterns loaded> --stored 0 --mode <reference|direct|direct-extended>`.
353
355
  - **Step 8** — recalls `patterns/feature-adr/qe/*` to prime the review checklist; after the gap loop
354
356
  closes, stores a `qe-outcome` record in aqe **and** the same lesson via `dz teach` (durable).
357
+ After the store: `dz statusline --fa-record --slug <slug> --step "Step 8 QE" --recalled <recalled so far> --stored <stored so far>`.
355
358
  - **Step 9** — recalls `patterns/feature-adr/fleet/*` to prime agent focus; after the fleet verdict,
356
359
  stores a `fleet-qe-finding` in aqe **and** the same lesson via `dz teach`.
360
+ After the store: `dz statusline --fa-record --slug <slug> --step "Step 9 Fleet" --recalled <recalled so far> --stored <stored so far>` with updated counts.
357
361
 
358
362
  **Two stores by design:** the aqe kv store is *ephemeral across MCP-server restarts* (janitor/TTL —
359
363
  observed live), so it serves fast in-session semantic recall; the dz lexical store
@@ -362,6 +366,20 @@ non-blocking — an error or empty result never stalls the pipeline. This layer
362
366
  **distinct from the Keysarium reward layer** installed by `--with-learning`: it uses agentic-qe MCP
363
367
  memory + the dz store, is gated on Direct modes only, and never touches `.keysarium/memory/`.
364
368
 
369
+ **Live learning panel (`dz statusline`).** The pipeline **drives** the panel: at each pattern-memory-loop
370
+ step above it records its live state via `dz statusline --fa-record …`, so `dz statusline` can surface
371
+ per-run learning (which feature, which step, how many patterns recalled vs. newly stored). Each of the
372
+ Step 0 / Step 8 / Step 9 call-outs above emits one `--fa-record`; the counts accumulate across the run.
373
+ Every checkpoint banner **also** prints a human-visible line so the state shows in the conversation, not
374
+ only the statusline:
375
+
376
+ ```
377
+ 🎓 Learning: {recalled} patterns recalled for this feature, {stored} new stored this run
378
+ ```
379
+
380
+ *Honesty note:* the panel is live only insofar as the pipeline records state — it reflects what the
381
+ pipeline actually did with the loop (recalls that ran, stores that landed), not an aspirational count.
382
+
365
383
  ### What changes with `--full-qe`
366
384
 
367
385
  Full agentic-qe protocols for the same 9 core skills. No new agents, just deeper methodology.
@@ -448,6 +466,7 @@ npx @dzhechkov/skills-feature-adr init --with-learning --knowledge-extractor
448
466
  ⏸️ STEP N: [Step Name] Complete
449
467
  <promise>[PROMISE_TAG]</promise>
450
468
  Tier: {COMPLEXITY_TIER} | Active Steps: {ACTIVE_STEPS}
469
+ 🎓 Learning: {recalled} patterns recalled for this feature, {stored} new stored this run
451
470
 
452
471
  [2-3 line summary]
453
472
  Artifacts: [list] ✅