@dzhechkov/skills-feature-adr 1.3.7 β 1.3.8
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 +2 -2
- package/docs/team-onboarding.md +248 -0
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@ the [Keysarium](https://www.npmjs.com/package/@dzhechkov/keysarium) ecosystem.
|
|
|
14
14
|
> onboarding doc for free, every decision captured as an ADR, and machine-checked back against the
|
|
15
15
|
> code by the QE phase. See **[Spec-Driven Development](#spec-driven-development-sdd)** below.
|
|
16
16
|
>
|
|
17
|
-
> π **Onboarding a team? Start here:** [**Feature ADR β Team Onboarding**](https://
|
|
17
|
+
> π **Onboarding a team? Start here:** [**Feature ADR β Team Onboarding**](https://unpkg.com/@dzhechkov/skills-feature-adr/docs/team-onboarding.md) β a single read-top-to-bottom playbook (install β first feature β SDD mechanics β model routing incl. Fable β self-learning layers β team PR workflow β FAQ). It also ships **inside this package** at `node_modules/@dzhechkov/skills-feature-adr/docs/team-onboarding.md`, so every install has it locally.
|
|
18
18
|
|
|
19
19
|
---
|
|
20
20
|
|
|
@@ -461,7 +461,7 @@ npx @dzhechkov/skills-feature-adr init # Feature development
|
|
|
461
461
|
|
|
462
462
|
## Links
|
|
463
463
|
|
|
464
|
-
- **Team Onboarding playbook:** [
|
|
464
|
+
- **Team Onboarding playbook (public):** [unpkg.com/@dzhechkov/skills-feature-adr/docs/team-onboarding.md](https://unpkg.com/@dzhechkov/skills-feature-adr/docs/team-onboarding.md) β also shipped in the package at `docs/team-onboarding.md`
|
|
465
465
|
- **GitHub:** [https://github.com/dzhechko/product-keysarium-2026](https://github.com/dzhechko/product-keysarium-2026)
|
|
466
466
|
- **Issues:** [https://github.com/dzhechko/product-keysarium-2026/issues](https://github.com/dzhechko/product-keysarium-2026/issues)
|
|
467
467
|
- **npm:** [https://www.npmjs.com/package/@dzhechkov/skills-feature-adr](https://www.npmjs.com/package/@dzhechkov/skills-feature-adr)
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
# Feature ADR β Team Onboarding
|
|
2
|
+
|
|
3
|
+
**A Spec-Driven Development pipeline for AI coding agents (Claude Code, Codex, β¦).**
|
|
4
|
+
|
|
5
|
+
This is the practical guide for a dev team adopting `@dzhechkov/skills-feature-adr`. It gets you
|
|
6
|
+
from zero to your first spec-driven feature, then explains the mechanics, the model routing, the
|
|
7
|
+
self-learning options, and the team conventions.
|
|
8
|
+
|
|
9
|
+
- π¦ npm: <https://www.npmjs.com/package/@dzhechkov/skills-feature-adr> (current: **1.3.6**)
|
|
10
|
+
- π Full reference README: same npm page (this doc is the *team playbook*, not a reference dump)
|
|
11
|
+
- π§ Deep design: `packages/@dzhechkov/skills-meta/feature-adr/SKILL.md` + its `references/`
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## TL;DR β what & why
|
|
16
|
+
|
|
17
|
+
An AI agent, left alone, jumps straight to code. Feature ADR forces the opposite: **spec first,
|
|
18
|
+
code last.** Each phase emits a durable, human-approved specification artifact (`00_β¦`β`08_β¦`), and
|
|
19
|
+
code is *generated from the frozen spec* β then verified back against it.
|
|
20
|
+
|
|
21
|
+
**Why your team should care:**
|
|
22
|
+
- The `features/<slug>/` folder **is the spec** β reviewable in a PR like code.
|
|
23
|
+
- Every design decision is captured as an **ADR** (with alternatives + trade-offs).
|
|
24
|
+
- Architecture diagrams + requirements become **living documentation** for free.
|
|
25
|
+
- The QE phase traces code **back to the requirements** (nothing ships uncovered).
|
|
26
|
+
- It's **right-sized**: a 3-file change doesn't get the full ceremony (Complexity Router).
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 1. Install (5 minutes)
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# In your project root:
|
|
34
|
+
npx @dzhechkov/skills-feature-adr init --with-learning
|
|
35
|
+
|
|
36
|
+
# Then open Claude Code in the project and use /feature-adr
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
- `--with-learning` turns on reward learning (learns from your checkpoint feedback; plain JSON,
|
|
40
|
+
**no database needed**). Skip it if you don't want learning, or if you already run
|
|
41
|
+
`@dzhechkov/keysarium` (which bundles it β the installer auto-detects and skips to avoid dupes).
|
|
42
|
+
- Optional deeper QE (`--full-qe` / `--full-qe-extended`) needs the external `agentic-qe`:
|
|
43
|
+
```bash
|
|
44
|
+
npm install -g agentic-qe && cd your-project && aqe init --auto
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Verify: `npx @dzhechkov/skills-feature-adr doctor`.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## 2. Your first feature (a worked run)
|
|
52
|
+
|
|
53
|
+
In Claude Code:
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
/feature-adr Add user authentication with OAuth2 and JWT
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
What happens:
|
|
60
|
+
|
|
61
|
+
1. **Step 0 β Complexity Router** classifies the feature **S / M / L / XL** and picks which phases
|
|
62
|
+
run. It stops at a checkpoint and shows you the tier + token/time estimate.
|
|
63
|
+
2. You approve (`ΠΎΠΊ`) or steer (`ΡΠ³Π»ΡΠ±ΠΈ X`, or free-text feedback). The agent proceeds **one phase
|
|
64
|
+
at a time**, stopping after each for your approval.
|
|
65
|
+
3. Each phase writes its spec artifact into `features/add-user-auth/` (see Β§4).
|
|
66
|
+
4. Code lands in **Step 7** β after requirements, ADRs, architecture, and a plan are all approved.
|
|
67
|
+
5. **Step 8 (QE)** traces the code back to the requirements and closes a **zero-gap** check.
|
|
68
|
+
|
|
69
|
+
You stay in control the whole way β the agent never runs a large feature unattended.
|
|
70
|
+
|
|
71
|
+
**Resuming:** the `features/<slug>/` folder is the source of truth. `/feature-adr ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈ β¦`
|
|
72
|
+
picks up from the first unfinished phase.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## 3. How it works β Spec-Driven Development
|
|
77
|
+
|
|
78
|
+
Three ideas make this "spec-driven" and not "write a doc then wing it":
|
|
79
|
+
|
|
80
|
+
**a) The artifacts are one layered spec**, built top-down (intent β verified code):
|
|
81
|
+
|
|
82
|
+
| Artifact | Spec layer |
|
|
83
|
+
|----------|-----------|
|
|
84
|
+
| `00_complexity_assessment.md` | Scope β how big, which phases run |
|
|
85
|
+
| `01_requirements.md` | Behavioral β what must be true when done (SMART, testable) |
|
|
86
|
+
| `02_research.md` | Prior-art β patterns/analogues that constrain design |
|
|
87
|
+
| `03_adr/00N-*.md` | Decision β which option & why (β₯2 alternatives + trade-offs) |
|
|
88
|
+
| `03.5_ideation_report.md` | Quality-risk β HTSM/SFDIPOT risks + GO / CONDITIONAL / NO-GO |
|
|
89
|
+
| `04_domain_model.md` | Domain β entities, aggregates, invariants (DDD) |
|
|
90
|
+
| `05_architecture.md` + `diagrams/` | Structural β C4 + sequence diagrams |
|
|
91
|
+
| `06_implementation_plan.md` | Task β SPARC-GOAP milestones the code must follow |
|
|
92
|
+
| `07_code_changes/` | The implementation (+ `change_manifest.md`) |
|
|
93
|
+
| `08_qe_report.md` / `09_fleet_qe_assessment.md` | Conformance β code vs spec, traceability, gaps |
|
|
94
|
+
|
|
95
|
+
**b) The spec is a typed contract carried forward.** Each phase's output is consumed by the next as
|
|
96
|
+
input, so a later phase can't contradict an earlier decision:
|
|
97
|
+
`{REQUIREMENTS} β {ADR_DECISIONS} β {ARCHITECTURE} β {IMPL_PLAN} β {CODE_CHANGES} β {QE_RESULTS}`.
|
|
98
|
+
(e.g. "architecture without an ADR" and "code without a plan" are blocked anti-patterns.)
|
|
99
|
+
|
|
100
|
+
**c) Every layer is gated** β a machine-checkable **promise tag** must be emitted before the next
|
|
101
|
+
phase starts, and a **human checkpoint** lets you approve/steer. You co-author and freeze the spec
|
|
102
|
+
one layer at a time.
|
|
103
|
+
|
|
104
|
+
**The loop closes:** `qe-requirements-validation` builds a traceability matrix and a gap-detection
|
|
105
|
+
loop must close with **zero remaining gaps** β a requirement with no code, or code with no
|
|
106
|
+
requirement, is caught by a gate, not in production.
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## 4. Output structure (the deliverable)
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
features/<feature-slug>/
|
|
114
|
+
βββ 00_complexity_assessment.md β Always
|
|
115
|
+
βββ 01_requirements.md β Always
|
|
116
|
+
βββ 02_research.md β L/XL only
|
|
117
|
+
βββ 03_adr/001-<decision>.md β M+ only
|
|
118
|
+
βββ 03.5_ideation_report.md β M+ only
|
|
119
|
+
βββ 04_domain_model.md β L/XL only
|
|
120
|
+
βββ 05_architecture.md β M+ only
|
|
121
|
+
βββ 06_implementation_plan.md β Always
|
|
122
|
+
βββ 07_code_changes/change_manifest.md β Always (actual code lands in the repo)
|
|
123
|
+
βββ 08_qe_report.md β Always
|
|
124
|
+
βββ 09_fleet_qe_assessment.md β L/XL only
|
|
125
|
+
βββ diagrams/*.mermaid β M+ only
|
|
126
|
+
βββ README.md β Always (auto-generated summary)
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## 5. Complexity tiers (right-sized ceremony)
|
|
132
|
+
|
|
133
|
+
| Tier | Scope | Active steps | Budget |
|
|
134
|
+
|------|-------|--------------|--------|
|
|
135
|
+
| **S** | 1β3 files, 1 domain | 0β1β6β7β8 (no ADR/DDD/architecture) | ~15 min |
|
|
136
|
+
| **M** | 4β10 files | 0β1β3β5β6β7β8 | ~45 min |
|
|
137
|
+
| **L** | 11β30 files | Full pipeline with parallelism | ~2 h |
|
|
138
|
+
| **XL** | 30+ files, cross-cutting | Full DAG + multi-agent swarm | ~4 h+ |
|
|
139
|
+
|
|
140
|
+
The router scores 6 dimensions 1β4 (files, domain breadth, integration points, risk/reversibility,
|
|
141
|
+
novelty, stakeholders). You can override the tier at Checkpoint 0.
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## 6. Pipeline steps + model routing (incl. Fable)
|
|
146
|
+
|
|
147
|
+
| Step | Name | Tiers | Default model | Fable? |
|
|
148
|
+
|------|------|-------|---------------|:------:|
|
|
149
|
+
| 0 | Complexity Router | All | haiku | β
|
|
|
150
|
+
| 1 | Requirements | All | sonnet | β
|
|
|
151
|
+
| 2 | Research | L/XL | sonnet | β
|
|
|
152
|
+
| 3 | ADR + Shift-Left | M+ | opus | β οΈ |
|
|
153
|
+
| 3.5 | QCSD Ideation Swarm | M+ | sonnet | β
|
|
|
154
|
+
| 4 | DDD | L/XL | opus | β οΈ |
|
|
155
|
+
| 5 | Architecture | M+ | opus | β οΈ |
|
|
156
|
+
| 6 | SPARC-GOAP Plan | All | sonnet | β
|
|
|
157
|
+
| 7 | Code | All | opus | β οΈ |
|
|
158
|
+
| 8 | QE + Brutal Honesty | All | sonnet | β
|
|
|
159
|
+
| 9 | Fleet QE | L/XL | sonnet | β οΈ |
|
|
160
|
+
|
|
161
|
+
**Routing rule:** phase difficulty β model tier (fast for classification, mid for drafting/QE, top
|
|
162
|
+
for load-bearing judgment). Models are **overridable defaults**.
|
|
163
|
+
|
|
164
|
+
- **β
Fable-friendly** β draft/classify/synthesis phases that are checkpoint-gated and cheap to
|
|
165
|
+
redo (0, 1, 2, 3.5, 6, 8). Low risk to try Fable here for speed/cost.
|
|
166
|
+
- **β οΈ Validate first** β load-bearing reasoning where a wrong call cascades (3 ADR, 4 DDD,
|
|
167
|
+
5 Architecture, 7 Code, 9 Fleet QE). Keep the default unless you've A/B-validated Fable.
|
|
168
|
+
|
|
169
|
+
> **Decide with data, not vibes:** with `--with-learning` on, run 2β3 features with Fable on the β
|
|
170
|
+
> steps and compare reward patterns / rework counts vs your `sonnet` baseline. This table is a
|
|
171
|
+
> starting heuristic, not a benchmark β tune per project.
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## 7. QE modes cheat-sheet
|
|
176
|
+
|
|
177
|
+
| Mode | Flag | What you get | Requires |
|
|
178
|
+
|------|------|--------------|----------|
|
|
179
|
+
| Reference | *(none)* | 9 core QE skills, condensed | nothing (works out of the box) |
|
|
180
|
+
| Direct | `--full-qe` | full agentic-qe protocols for the 9 core | `agentic-qe` installed |
|
|
181
|
+
| Direct Extended | `--full-qe-extended` | + 6 skills (chaos, security, performance, mutation, TDD, prod-swarm) + up to 3 extra Fleet-QE agents | `agentic-qe` installed |
|
|
182
|
+
|
|
183
|
+
**When:** S/M β Reference. L β Reference or `--full-qe`. XL β `--full-qe`. XL + security/regulatory
|
|
184
|
+
(banking, Π€Π-152) β `--full-qe-extended`.
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## 8. Self-learning layers (and whether they conflict)
|
|
189
|
+
|
|
190
|
+
`--full-qe-extended` does **not** turn on learning β QE depth and learning are orthogonal. There are
|
|
191
|
+
**three independent learning systems**; they do **not conflict** (isolated by storage / signal /
|
|
192
|
+
consumer):
|
|
193
|
+
|
|
194
|
+
| Layer | Turn on with | Learns from | Storage | Needs a DB? |
|
|
195
|
+
|-------|--------------|-------------|---------|-------------|
|
|
196
|
+
| **A β feature-adr reward** | `--with-learning` (or via keysarium) | your checkpoint responses (ΠΎΠΊ=1.0 / minor=0.7 / rework=0.3 / restart=0.0) | `.keysarium/memory/*.json` | **No** β JSON files |
|
|
197
|
+
| **B β agentic-qe** | comes with `agentic-qe`, via `aqe init` | QE task experiences (ReasoningBank + dream scheduler) | `.agentic-qe/memory.db` + `patterns.rvf` | self-contained |
|
|
198
|
+
| **C β dz harness** | `dz setup` / `dz teach` / `dz consolidate` / `dz recall` | your dz sessions | `.dz/` (+ optional `.dz/agentdb.db`) | **Optional** (vector tier only) |
|
|
199
|
+
|
|
200
|
+
**No conflict, but one rule:**
|
|
201
|
+
- Different files, signals, readers β no contention, no clobbering. All three at once is fine.
|
|
202
|
+
- Keysarium present β installer skips `--with-learning` (auto-dedup).
|
|
203
|
+
- **β οΈ One DB file per writer.** Layer C writes SQLite natively (better-sqlite3/WAL); agentic-qe can
|
|
204
|
+
write via sql.js (whole-file overwrite). Pointing **both at the same `.db`** risks corruption.
|
|
205
|
+
Defaults use different files, so you're safe out of the box β never hand-repoint one system's
|
|
206
|
+
`AGENTDB_PATH` at the other's DB.
|
|
207
|
+
|
|
208
|
+
**Do you need agentdb?** For A and B β **no** (each has its own store). Only layer C's *vector* tier
|
|
209
|
+
uses agentdb, and even there it's optional (lexical recall works without it).
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## 9. Team workflow conventions
|
|
214
|
+
|
|
215
|
+
- **Two PRs per non-trivial feature:**
|
|
216
|
+
1. **Design PR** β merges `features/<slug>/` (requirements, ADRs, architecture, plan). Reviewed
|
|
217
|
+
and approved *before* any code. This is the spec-review gate.
|
|
218
|
+
2. **Implementation PR** β the actual code (Step 7 output) + the QE report as acceptance evidence.
|
|
219
|
+
- **ADRs are the decision log.** Require β₯2 alternatives + trade-offs (the pipeline enforces this).
|
|
220
|
+
- **The QE report (`08_β¦`) is your acceptance evidence** β attach/link it in the impl PR.
|
|
221
|
+
- **Artifacts live in `features/<slug>/`** (kebab-case, Latin, β€40 chars, no dates/ticket numbers in
|
|
222
|
+
the slug β put those inside the files).
|
|
223
|
+
- Treat the ADRs + architecture diagrams as **living docs** β they onboard the next engineer.
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
## 10. FAQ / troubleshooting
|
|
228
|
+
|
|
229
|
+
- **"It jumped to a wrong complexity tier."** Override at Checkpoint 0 (`ΡΡΠΎ XL, Π½Π΅ M`). The tier is
|
|
230
|
+
fixed for the run β restart if scope changes drastically mid-pipeline.
|
|
231
|
+
- **"`--full-qe` did nothing extra."** `agentic-qe` isn't installed β it silently falls back to
|
|
232
|
+
Reference mode with a warning. Install it (`npm i -g agentic-qe && aqe init --auto`).
|
|
233
|
+
- **"Do I have to use all 9 steps?"** No β the Complexity Router picks the active subset per tier.
|
|
234
|
+
- **"Where's the learning stored / how do I reset it?"** Layer A: delete `.keysarium/memory/`.
|
|
235
|
+
B: `.agentic-qe/`. C: `.dz/`. They're independent.
|
|
236
|
+
- **"Can I change which model a step uses?"** Yes β the `Model` column is a default. See Β§6.
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## Links
|
|
241
|
+
|
|
242
|
+
- **npm:** <https://www.npmjs.com/package/@dzhechkov/skills-feature-adr>
|
|
243
|
+
- **SDD section:** <https://www.npmjs.com/package/@dzhechkov/skills-feature-adr#spec-driven-development-sdd>
|
|
244
|
+
- **Self-Learning Layers:** <https://www.npmjs.com/package/@dzhechkov/skills-feature-adr#self-learning-layers>
|
|
245
|
+
- **Keysarium ecosystem:** <https://www.npmjs.com/package/@dzhechkov/keysarium>
|
|
246
|
+
|
|
247
|
+
*Shipped inside `@dzhechkov/skills-feature-adr` (`docs/team-onboarding.md`); source of truth mirrored at `docs/feature-adr-team-onboarding.md` in the monorepo. Facts are faithful to the feature-adr
|
|
248
|
+
`SKILL.md` (variable/tag names verbatim); the model/Fable table is a heuristic, not a benchmark.*
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dzhechkov/skills-feature-adr",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.8",
|
|
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
|
"main": "src/cli.js",
|
|
6
6
|
"bin": {
|
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
"bin/",
|
|
11
11
|
"src/",
|
|
12
12
|
"templates/",
|
|
13
|
-
"LICENSE"
|
|
13
|
+
"LICENSE",
|
|
14
|
+
"docs/"
|
|
14
15
|
],
|
|
15
16
|
"keywords": [
|
|
16
17
|
"claude",
|