@dzhechkov/p-replicator 1.5.18 → 1.6.0
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 +126 -46
- package/CHANGELOG.md +135 -0
- package/MULTIPLATFORM_ROADMAP.md +1 -1
- package/README/eng/01_quickstart.md +2 -2
- package/README/eng/02_user_guide.md +1 -1
- package/README/eng/03_admin_guide.md +2 -2
- package/README/eng/05_architecture.md +6 -2
- package/README/eng/README.md +1 -1
- package/README/ru/01_quickstart.md +2 -2
- package/README/ru/02_user_guide.md +1 -1
- package/README/ru/03_admin_guide.md +2 -2
- package/README/ru/05_architecture.md +1 -1
- package/README/ru/README.md +1 -1
- package/README/ru/html/index.html +7 -7
- package/README.md +36 -15
- package/bin/cli.js +0 -0
- package/package.json +11 -10
- package/sbom.json +245 -45
- package/src/utils.js +2 -0
- package/templates/.claude/agents/doc-validator.md +2 -1
- package/templates/.claude/agents/product-discoverer.md +1 -1
- package/templates/.claude/commands/next.md +16 -0
- package/templates/.claude/commands/replicate.md +126 -8
- package/templates/.claude/commands/start.md +19 -1
- package/templates/.claude/hooks/autocommit-insights.cjs +95 -10
- package/templates/.claude/hooks/autocommit-plans.cjs +95 -10
- package/templates/.claude/hooks/autocommit-roadmap.cjs +96 -13
- package/templates/.claude/hooks/check-ports.cjs +232 -0
- package/templates/.claude/hooks/session-insights.cjs +13 -1
- package/templates/.claude/hooks/state-update.cjs +13 -1
- package/templates/.claude/hooks/statusline.cjs +145 -18
- package/templates/.claude/rules/docker-ports.md +123 -0
- package/templates/.claude/rules/replicate-pipeline.md +5 -2
- package/templates/.claude/settings.json +5 -5
- package/templates/.claude/skills/cc-toolkit-generator-enhanced/modules/01-detect-parse.md +57 -14
- package/templates/.claude/skills/cc-toolkit-generator-enhanced/modules/02-analyze-map.md +9 -7
- package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/enhanced-recommendations.md +6 -4
- package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/extended-mapping.md +2 -2
- package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/ddd-agents.md +2 -2
- package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/ddd-skills.md +1 -1
- package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/enhanced-claude-md.md +2 -2
- package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/feature-suggestions.md +11 -2
- package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/start-command.md +1 -1
- package/templates/.claude/skills/requirements-validator/SKILL.md +7 -0
- package/templates/.claude/skills/requirements-validator/references/scoring-system.md +28 -0
- package/templates/.claude/skills/sparc-prd-mini/SKILL.md +143 -1
- package/tests/e2e/lifecycle.test.js +21 -10
- package/tests/snapshot/baseline.json +29 -27
- package/tests/snapshot/update-baseline.js +2 -1
- package/tests/unit/adr-decision-coverage.test.js +137 -0
- package/tests/unit/adr-scanner-contract.test.js +108 -0
- package/tests/unit/autocommit-deletion.test.js +242 -0
- package/tests/unit/check-ports.test.js +184 -0
- package/tests/unit/db-port-rule.test.js +216 -0
- package/tests/unit/detect-parse-anchor.test.js +109 -0
- package/tests/unit/external-dependency-check.test.js +209 -0
- package/tests/unit/growth-module-b2b-gate.test.js +104 -0
- package/tests/unit/hooks-project-anchored.test.js +223 -0
- package/tests/unit/hooks-report-failures.test.js +207 -0
- package/tests/unit/pipeline-file-ownership.test.js +95 -0
- package/tests/unit/roadmap-one-schema.test.js +179 -0
- package/tests/unit/sparc-reconciliation.test.js +117 -0
- package/tests/unit/spec-pseudocode-traceability.test.js +146 -0
- package/tests/unit/statusline-honest-labels.test.js +178 -0
- package/tests/unit/statusline-two-roots.test.js +237 -0
- package/tests/unit/sync-templates-guard.test.js +209 -0
- package/tests/unit/utils.test.js +2 -2
- package/tests/unit/validation-gate-teeth.test.js +158 -0
- package/LICENSE +0 -21
|
@@ -502,7 +502,7 @@ npx @dzhechkov/p-replicator verify
|
|
|
502
502
|
```
|
|
503
503
|
|
|
504
504
|
Должен показать:
|
|
505
|
-
- ✅ Pre-shipped contract intact (10 skills + 11 commands + 4 agents +
|
|
505
|
+
- ✅ Pre-shipped contract intact (10 skills + 11 commands + 4 agents + 6 rules + settings.json)
|
|
506
506
|
- ✅ Post-/replicate hints — для Mode 2 многие будут отсутствовать (это нормально)
|
|
507
507
|
- 📊 Per-feature artifacts: `docs/features/<id>/01_specification.md`...`05_completion.md`,
|
|
508
508
|
`validation-report.md`, `review-report.md`
|
|
@@ -83,7 +83,7 @@ P-Replicator V1.5.0 ● user │ Sonnet 4.7
|
|
|
83
83
|
🚀 Pipeline /<cmd> ▓▓▓░░░░ 50% │ Phase: VALIDATE (2/4) │ Last: /replicate
|
|
84
84
|
🎯 Roadmap [●●●○○○○○] mvp 3/8 │ Done 5/12 │ ▶ auth-jwt │ Domain: banking
|
|
85
85
|
📊 SPARC ●11/11 │ 🟢 78/100 │ Plans ●3 │ ADRs ●2 │ Harvest 2026-05-05
|
|
86
|
-
🛠️ Toolkit Skills ●10/10 │ Cmds ●11/11 │ Agents ●4+3 │ Rules ●
|
|
86
|
+
🛠️ Toolkit Skills ●10/10 │ Cmds ●11/11 │ Agents ●4+3 │ Rules ●6+2 │ Hooks ●7/7
|
|
87
87
|
💡 Insights ●12 (2026-05-06) │ Tests 85/85 ✓ │ MCP ●1/1 │ Settings ✓ │ 🧬 Keysarium ✓
|
|
88
88
|
```
|
|
89
89
|
|
|
@@ -248,7 +248,7 @@ echo ".claude/.last-test.json" >> .gitignore
|
|
|
248
248
|
|
|
249
249
|
| Инструмент | Что проверяет | Когда |
|
|
250
250
|
|---|---|---|
|
|
251
|
-
| `npx @dzhechkov/p-replicator doctor` | Pre-shipped contract: 10 skills + 11 commands + 4 agents +
|
|
251
|
+
| `npx @dzhechkov/p-replicator doctor` | Pre-shipped contract: 10 skills + 11 commands + 4 agents + 6 rules + settings.json + 7 hooks + git on PATH | После init / при подозрении что что-то сломалось |
|
|
252
252
|
| `npx @dzhechkov/p-replicator verify` | Pre-shipped + post-/replicate hints (CLAUDE.md, planner.md, security.md, feature-roadmap.json, и т.д.) | После каждого `/replicate` для уверенности |
|
|
253
253
|
|
|
254
254
|
**`doctor` exit codes:**
|
|
@@ -73,7 +73,7 @@ function getItemRelativePath(comp, itemKey) {
|
|
|
73
73
|
|
|
74
74
|
**Дизайн-принцип:** zero shell dependency.
|
|
75
75
|
|
|
76
|
-
Все
|
|
76
|
+
Все 7 hook-скриптов написаны на pure Node, используют `execFileSync('git', [...])`
|
|
77
77
|
вместо shell-pipes. Это эквивалентно работает на:
|
|
78
78
|
- Windows cmd.exe (нет `2>/dev/null`, есть `2>nul` — не нужен ни тот ни другой)
|
|
79
79
|
- Bash / zsh / Git Bash на Windows
|
package/README/ru/README.md
CHANGED
|
@@ -6,7 +6,7 @@ toolkit для AI-assisted разработки в Claude Code (Vibe Coding).
|
|
|
6
6
|
## Что это
|
|
7
7
|
|
|
8
8
|
`p-replicator` устанавливает в проект готовый набор `.claude/`-инструментов:
|
|
9
|
-
**11 slash-команд**, **10 skills**, **4 агента**, **
|
|
9
|
+
**11 slash-команд**, **10 skills**, **4 агента**, **6 правил**, **7 hook-скриптов**
|
|
10
10
|
и `settings.json` с pre-configured хуками. Главная команда `/replicate`
|
|
11
11
|
проводит проект через 5-фазный pipeline (Discovery → Planning → Validation →
|
|
12
12
|
Toolkit Generation → Finalize), генерирует SPARC-документацию и project-specific
|
|
@@ -112,7 +112,7 @@
|
|
|
112
112
|
<h1 id="dokumentatsiya-dzhechkovp-replicator">Документация @dzhechkov/p-replicator</h1>
|
|
113
113
|
<p>Полный комплект документации к npm-пакету <code>@dzhechkov/p-replicator</code> — toolkit для AI-assisted разработки в Claude Code (Vibe Coding).</p>
|
|
114
114
|
<h2 id="index-chto-eto">Что это</h2>
|
|
115
|
-
<p><code>p-replicator</code> устанавливает в проект готовый набор <code>.claude/</code>-инструментов: <strong>11 slash-команд</strong>, <strong>10 skills</strong>, <strong>4 агента</strong>, <strong>
|
|
115
|
+
<p><code>p-replicator</code> устанавливает в проект готовый набор <code>.claude/</code>-инструментов: <strong>11 slash-команд</strong>, <strong>10 skills</strong>, <strong>4 агента</strong>, <strong>6 правил</strong>, <strong>7 hook-скриптов</strong> и <code>settings.json</code> с pre-configured хуками. Главная команда <code>/replicate</code> проводит проект через 5-фазный pipeline (Discovery → Planning → Validation → Toolkit Generation → Finalize), генерирует SPARC-документацию и project-specific артефакты.</p>
|
|
116
116
|
<h2 id="index-navigatsiya">Навигация</h2>
|
|
117
117
|
<div class="table-wrap"><table><thead><tr><th>Раздел</th><th>Описание</th></tr></thead><tbody><tr><td><a href="#quickstart">01_quickstart.md</a></td><td>Установка, первый запуск, проверка</td></tr><tr><td><a href="#user-guide">02_user_guide.md</a></td><td>Все команды и workflow с примерами</td></tr><tr><td><a href="#admin-guide">03_admin_guide.md</a></td><td>Настройка hooks, settings.json, statusline, insights</td></tr><tr><td><a href="#api-reference">04_api_reference.md</a></td><td>CLI-флаги, схемы манифеста, roadmap, state</td></tr><tr><td><a href="#architecture">05_architecture.md</a></td><td>Архитектура: pre-shipped vs generated, SSOT, hooks</td></tr><tr><td><a href="#troubleshooting">06_troubleshooting.md</a></td><td>Решение типичных проблем</td></tr><tr><td><a href="#changelog">07_changelog.md</a></td><td>История версий 1.3.x → 1.5.x</td></tr></tbody></table></div>
|
|
118
118
|
<h2 id="index-yazyki">Языки</h2>
|
|
@@ -186,7 +186,7 @@ mv docs/your-arch.md docs/Architecture.md
|
|
|
186
186
|
<p>После <code>/replicate</code> выполните:</p>
|
|
187
187
|
<pre data-lang="bash"><code class="language-bash">npx @dzhechkov/p-replicator verify</code></pre>
|
|
188
188
|
<p>Команда проверит:</p>
|
|
189
|
-
<ul><li><strong>Pre-shipped contract</strong> (must-have): 10 skills + 11 commands + 4 agents +
|
|
189
|
+
<ul><li><strong>Pre-shipped contract</strong> (must-have): 10 skills + 11 commands + 4 agents + 6 rules + settings.json</li><li><strong>Post-/replicate hints</strong> (advisory): CLAUDE.md, project-specific агенты, feature-roadmap.json, security-правила и т.д.</li></ul>
|
|
190
190
|
<p>Exit code <code>0</code> означает что pre-shipped контракт цел; warnings показывают что из project-specific артефактов ещё не создано.</p>
|
|
191
191
|
<p>Альтернатива (для общей health-проверки):</p>
|
|
192
192
|
<pre data-lang="bash"><code class="language-bash">npx @dzhechkov/p-replicator doctor</code></pre>
|
|
@@ -213,7 +213,7 @@ mv docs/your-arch.md docs/Architecture.md
|
|
|
213
213
|
│ ├── skills/ # 10 skills
|
|
214
214
|
│ ├── commands/ # 11 slash-команд
|
|
215
215
|
│ ├── agents/ # 4 pipeline-агента
|
|
216
|
-
│ ├── rules/ #
|
|
216
|
+
│ ├── rules/ # 6 правил
|
|
217
217
|
│ ├── hooks/ # 6 Node-скриптов
|
|
218
218
|
│ └── settings.json # hooks + statusline config
|
|
219
219
|
├── .p-replicator.json # манифест установки
|
|
@@ -429,7 +429,7 @@ claude
|
|
|
429
429
|
<p>После <code>/feature</code> (или <code>/run</code>) запустите:</p>
|
|
430
430
|
<pre data-lang="bash"><code class="language-bash">npx @dzhechkov/p-replicator verify</code></pre>
|
|
431
431
|
<p>Должен показать:</p>
|
|
432
|
-
<ul><li>✅ Pre-shipped contract intact (10 skills + 11 commands + 4 agents +
|
|
432
|
+
<ul><li>✅ Pre-shipped contract intact (10 skills + 11 commands + 4 agents + 6 rules + settings.json)</li><li>✅ Post-/replicate hints — для Mode 2 многие будут отсутствовать (это нормально)</li><li>📊 Per-feature artifacts: <code>docs/features/<id>/01_specification.md</code>...<code>05_completion.md</code>, <code>validation-report.md</code>, <code>review-report.md</code></li></ul>
|
|
433
433
|
<h4 id="user-guide-future-enhancement-m3-v-knownlimitations">Future enhancement (M3 в KNOWN_LIMITATIONS)</h4>
|
|
434
434
|
<p><code>docPaths</code> config в <code>.p-replicator.json</code> для нестандартных путей доков — в roadmap'е. Tier S effort, чисто config + spec-read изменения, без изменений CLI-кода.</p>
|
|
435
435
|
<hr>
|
|
@@ -551,7 +551,7 @@ Set DATABASE_URL_SHADOW env var explicitly to a separate database.
|
|
|
551
551
|
🚀 Pipeline /<cmd> ▓▓▓░░░░ 50% │ Phase: VALIDATE (2/4) │ Last: /replicate
|
|
552
552
|
🎯 Roadmap [●●●○○○○○] mvp 3/8 │ Done 5/12 │ ▶ auth-jwt │ Domain: banking
|
|
553
553
|
📊 SPARC ●11/11 │ 🟢 78/100 │ Plans ●3 │ ADRs ●2 │ Harvest 2026-05-05
|
|
554
|
-
🛠️ Toolkit Skills ●10/10 │ Cmds ●11/11 │ Agents ●4+3 │ Rules ●
|
|
554
|
+
🛠️ Toolkit Skills ●10/10 │ Cmds ●11/11 │ Agents ●4+3 │ Rules ●6+2 │ Hooks ●7/7
|
|
555
555
|
💡 Insights ●12 (2026-05-06) │ Tests 85/85 ✓ │ MCP ●1/1 │ Settings ✓ │ 🧬 Keysarium ✓</code></pre>
|
|
556
556
|
<p><strong>Источники (heuristic + state-file):</strong></p>
|
|
557
557
|
<div class="table-wrap"><table><thead><tr><th>Метрика</th><th>Откуда</th></tr></thead><tbody><tr><td>Pipeline command + phase + progress</td><td><code>.claude/.p-replicator-state.json</code> (state-file)</td></tr><tr><td>Roadmap progress</td><td><code>.claude/feature-roadmap.json</code></td></tr><tr><td>SPARC count</td><td><code>docs/{PRD,Architecture,...}.md</code> files</td></tr><tr><td>Validation score</td><td>regex extract from <code>docs/validation-report.md</code></td></tr><tr><td>Plans count</td><td><code>docs/plans/*.md</code></td></tr><tr><td>ADRs count</td><td><code>docs/ADR.md</code> <code>## ADR-...</code> headings, или <code>docs/adr/*.md</code>, или <code>docs/ddd/adr/*.md</code></td></tr><tr><td>Insights count + last date</td><td><code>## YYYY-MM-DD</code> headings в <code>.claude/insights/index.md</code></td></tr><tr><td>Toolkit counts</td><td>filesystem walk <code>.claude/{skills,commands,agents,rules,hooks}/</code></td></tr><tr><td>Settings status</td><td>deep-equals current vs <code>manifest.shippedDefaults</code> → <code>defaults</code>/<code>merged</code></td></tr><tr><td>MCP servers</td><td><code>.mcp.json</code></td></tr><tr><td>Domain</td><td>keyword grep <code>CLAUDE.md</code> (banking/retail/enterprise/healthcare)</td></tr><tr><td>Last harvest</td><td><code>TOOLKIT_HARVEST.md</code> mtime</td></tr><tr><td>Last test</td><td>optional <code>.claude/.last-test.json</code> cache</td></tr></tbody></table></div>
|
|
@@ -638,7 +638,7 @@ echo ".claude/.last-test.json" >> .gitignore</code></pre>
|
|
|
638
638
|
<p><strong>Auto-commit</strong> через <code>autocommit-roadmap.cjs</code> (Stop hook) при изменениях.</p>
|
|
639
639
|
<hr>
|
|
640
640
|
<h2 id="admin-guide-doctor-verify-dva-raznyh-instrumenta">Doctor + Verify — два разных инструмента</h2>
|
|
641
|
-
<div class="table-wrap"><table><thead><tr><th>Инструмент</th><th>Что проверяет</th><th>Когда</th></tr></thead><tbody><tr><td><code>npx @dzhechkov/p-replicator doctor</code></td><td>Pre-shipped contract: 10 skills + 11 commands + 4 agents +
|
|
641
|
+
<div class="table-wrap"><table><thead><tr><th>Инструмент</th><th>Что проверяет</th><th>Когда</th></tr></thead><tbody><tr><td><code>npx @dzhechkov/p-replicator doctor</code></td><td>Pre-shipped contract: 10 skills + 11 commands + 4 agents + 6 rules + settings.json + 7 hooks + git on PATH</td><td>После init / при подозрении что что-то сломалось</td></tr><tr><td><code>npx @dzhechkov/p-replicator verify</code></td><td>Pre-shipped + post-/replicate hints (CLAUDE.md, planner.md, security.md, feature-roadmap.json, и т.д.)</td><td>После каждого <code>/replicate</code> для уверенности</td></tr></tbody></table></div>
|
|
642
642
|
<p><strong><code>doctor</code> exit codes:</strong></p>
|
|
643
643
|
<ul><li><code>0</code> — всё в порядке</li><li><code>1</code> — что-то отсутствует из must-have (используйте <code>init --force</code> для repair)</li></ul>
|
|
644
644
|
<p><strong><code>verify</code> exit codes:</strong></p>
|
|
@@ -914,7 +914,7 @@ npx @dzhechkov/p-replicator@latest init --force --reset-settings</code></pre>
|
|
|
914
914
|
<hr>
|
|
915
915
|
<h2 id="architecture-cross-platform-hooks-v141">Cross-platform hooks (v1.4.1)</h2>
|
|
916
916
|
<p><strong>Дизайн-принцип:</strong> zero shell dependency.</p>
|
|
917
|
-
<p>Все
|
|
917
|
+
<p>Все 7 hook-скриптов написаны на pure Node, используют <code>execFileSync('git', [...])</code> вместо shell-pipes. Это эквивалентно работает на:</p>
|
|
918
918
|
<ul><li>Windows cmd.exe (нет <code>2>/dev/null</code>, есть <code>2>nul</code> — не нужен ни тот ни другой)</li><li>Bash / zsh / Git Bash на Windows</li><li>PowerShell</li></ul>
|
|
919
919
|
<p><strong>Pattern для autocommit-скрипта:</strong></p>
|
|
920
920
|
<pre data-lang="javascript"><code class="language-javascript">const fs = require('node:fs');
|
package/README.md
CHANGED
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
|
|
102
102
|
## 📖 What is p-replicator?
|
|
103
103
|
|
|
104
|
-
`@dzhechkov/p-replicator` installs a ready-made `.claude/` toolkit into any project: **11 slash commands**, **10 skills**, **4 agents**, **
|
|
104
|
+
`@dzhechkov/p-replicator` installs a ready-made `.claude/` toolkit into any project: **11 slash commands**, **10 skills**, **4 agents**, **6 rules**, **7 hook scripts**, and a `settings.json` with pre-configured hooks and a multi-line statusline dashboard.
|
|
105
105
|
|
|
106
106
|
The flagship `/replicate` command takes a project through a **5-phase pipeline**:
|
|
107
107
|
|
|
@@ -290,7 +290,7 @@ This creates:
|
|
|
290
290
|
| **Commands** | 11 | `/replicate`, `/harvest`, `/start`, `/plan`, `/feature`, `/go`, `/run`, `/next`, `/myinsights`, `/docs`, `/deploy` |
|
|
291
291
|
| **Agents** | 4 | `replicate-coordinator`, `product-discoverer`, `doc-validator`, `harvest-coordinator` |
|
|
292
292
|
| **Rules** | 5 | `replicate-pipeline`, `skill-interface-protocol`, `git-workflow`, `insights-capture`, `feature-lifecycle` |
|
|
293
|
-
| **Hooks** |
|
|
293
|
+
| **Hooks** | 7 | `session-insights`, `autocommit-{roadmap,insights,plans}`, `statusline`, `state-update`, `check-ports` (cross-platform Node) |
|
|
294
294
|
| **Settings** | 1 | `settings.json` with statusLine + SessionStart + Stop hooks pre-configured |
|
|
295
295
|
|
|
296
296
|
After running `/replicate`, the toolkit also generates **project-specific** artifacts:
|
|
@@ -316,7 +316,7 @@ npx @dzhechkov/p-replicator verify
|
|
|
316
316
|
|
|
317
317
|
The command checks:
|
|
318
318
|
|
|
319
|
-
- **Pre-shipped contract** (must-have): 10 skills + 11 commands + 4 agents +
|
|
319
|
+
- **Pre-shipped contract** (must-have): 10 skills + 11 commands + 4 agents + 6 rules + settings.json + 7 hooks
|
|
320
320
|
- **Post-/replicate hints** (advisory): CLAUDE.md, project-specific agents, feature-roadmap.json, security rules, etc.
|
|
321
321
|
|
|
322
322
|
**Exit codes:**
|
|
@@ -360,6 +360,14 @@ Generates 11 standardized documents in `docs/`:
|
|
|
360
360
|
| `C4_Diagrams.md` | Context / container / component |
|
|
361
361
|
| `ADR.md` | Architecture Decision Records |
|
|
362
362
|
|
|
363
|
+
> **ADR detection reads BOTH storage shapes.** `/replicate` writes every decision into one
|
|
364
|
+
> `docs/ADR.md`, while an idea2prd-manual project keeps a `docs/adr/*.md` directory. Since 1.5.19 the
|
|
365
|
+
> toolkit generator's scanner normalizes both into one decision list, so the ADR-driven parts of the
|
|
366
|
+
> generated toolkit (architect skill weighting, security boosts, tech-stack extraction, CLAUDE.md key
|
|
367
|
+
> decisions) work for `/replicate` projects too. Before 1.5.19 the scanner required a directory of
|
|
368
|
+
> more than five files, so for every `/replicate` project the flag was unreachable and those parts
|
|
369
|
+
> silently produced nothing.
|
|
370
|
+
|
|
363
371
|
Skill: `sparc-prd-mini` (internally chains explore + research + solve sub-phases).
|
|
364
372
|
|
|
365
373
|
### Phase 2 — Validation (5-agent swarm)
|
|
@@ -664,7 +672,7 @@ P-Replicator V1.5.x ● user │ Sonnet 4.7
|
|
|
664
672
|
🚀 Pipeline /<cmd> ▓▓▓░░░░ 50% │ Phase: VALIDATE (2/4) │ Last: /replicate
|
|
665
673
|
🎯 Roadmap [●●●○○○○○] mvp 3/8 │ Done 5/12 │ ▶ auth-jwt │ Domain: banking
|
|
666
674
|
📊 SPARC ●11/11 │ 🟢 78/100 │ Plans ●3 │ ADRs ●2 │ Harvest 2026-05-05
|
|
667
|
-
🛠️ Toolkit Skills ●10/10 │ Cmds ●11/11 │ Agents ●4+3 │ Rules ●
|
|
675
|
+
🛠️ Toolkit Skills ●10/10 │ Cmds ●11/11 │ Agents ●4+3 │ Rules ●6+2 │ Hooks ●7/7
|
|
668
676
|
💡 Insights ●12 (2026-05-06) │ Tests 85/85 ✓ │ MCP ●1/1 │ Settings ✓ │ 🧬 Keysarium ✓
|
|
669
677
|
```
|
|
670
678
|
|
|
@@ -734,7 +742,7 @@ All 4 autocommit scripts use `execFileSync('git', [...])` (no shell pipes, no `2
|
|
|
734
742
|
Updated via `state-update.cjs`:
|
|
735
743
|
|
|
736
744
|
```bash
|
|
737
|
-
node
|
|
745
|
+
node "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/state-update.cjs" \
|
|
738
746
|
--command /feature \
|
|
739
747
|
--phase VALIDATE \
|
|
740
748
|
--index 2 \
|
|
@@ -880,14 +888,14 @@ Default structure after `init`:
|
|
|
880
888
|
"_comment": "Default hooks + statusline shipped by @dzhechkov/p-replicator init.",
|
|
881
889
|
"statusLine": {
|
|
882
890
|
"type": "command",
|
|
883
|
-
"command": "node
|
|
891
|
+
"command": "node \"${CLAUDE_PROJECT_DIR}/.claude/hooks/statusline.cjs\""
|
|
884
892
|
},
|
|
885
893
|
"hooks": {
|
|
886
894
|
"SessionStart": [
|
|
887
895
|
{
|
|
888
896
|
"matcher": "*",
|
|
889
897
|
"hooks": [
|
|
890
|
-
{ "type": "command", "command": "node
|
|
898
|
+
{ "type": "command", "command": "node \"${CLAUDE_PROJECT_DIR}/.claude/hooks/session-insights.cjs\"", "timeout": 5 }
|
|
891
899
|
]
|
|
892
900
|
}
|
|
893
901
|
],
|
|
@@ -895,9 +903,9 @@ Default structure after `init`:
|
|
|
895
903
|
{
|
|
896
904
|
"matcher": "*",
|
|
897
905
|
"hooks": [
|
|
898
|
-
{ "type": "command", "command": "node
|
|
899
|
-
{ "type": "command", "command": "node
|
|
900
|
-
{ "type": "command", "command": "node
|
|
906
|
+
{ "type": "command", "command": "node \"${CLAUDE_PROJECT_DIR}/.claude/hooks/autocommit-roadmap.cjs\"", "timeout": 10 },
|
|
907
|
+
{ "type": "command", "command": "node \"${CLAUDE_PROJECT_DIR}/.claude/hooks/autocommit-insights.cjs\"", "timeout": 10 },
|
|
908
|
+
{ "type": "command", "command": "node \"${CLAUDE_PROJECT_DIR}/.claude/hooks/autocommit-plans.cjs\"", "timeout": 10 }
|
|
901
909
|
]
|
|
902
910
|
}
|
|
903
911
|
]
|
|
@@ -905,6 +913,19 @@ Default structure after `init`:
|
|
|
905
913
|
}
|
|
906
914
|
```
|
|
907
915
|
|
|
916
|
+
**Why `${CLAUDE_PROJECT_DIR}` and not a relative path:** a relative path resolves against the process
|
|
917
|
+
working directory, which drifts — one `cd` inside a tool call moves it for the rest of the session, and
|
|
918
|
+
the hook then dies with `MODULE_NOT_FOUND`. Because hooks are non-blocking, the session continues and
|
|
919
|
+
your roadmap silently stops being committed. Claude Code sets `CLAUDE_PROJECT_DIR` to the project root
|
|
920
|
+
and rewrites this exact braced form for PowerShell, so it works on every platform.
|
|
921
|
+
|
|
922
|
+
The hook scripts anchor their DATA the same way, and fall back to their own location
|
|
923
|
+
(`__dirname/../..`) when the variable is absent — so a hand-run works too. That fallback is why the
|
|
924
|
+
shell examples elsewhere in this README use `${CLAUDE_PROJECT_DIR:-.}`: in a plain terminal the
|
|
925
|
+
variable is unset, and `:-.` keeps the example working. Do **not** use the `:-.` form inside
|
|
926
|
+
`settings.json` — Claude Code's PowerShell rewrite matches only the bare `${CLAUDE_PROJECT_DIR}`
|
|
927
|
+
token, so `:-.` would leave a POSIX-only construct in a file that must work on every platform.
|
|
928
|
+
|
|
908
929
|
**Customization:** add new hooks or event types — preserved on `init --force` or `update` thanks to merge logic.
|
|
909
930
|
|
|
910
931
|
**Disable individual default hooks:** delete from `settings.json` after `init`. The deletion is preserved on next `update` (orphan detection only removes hooks **previously shipped** but absent in **new** template — your manual deletion is a user customization).
|
|
@@ -1012,13 +1033,13 @@ Checks:
|
|
|
1012
1033
|
3. Script runs directly:
|
|
1013
1034
|
|
|
1014
1035
|
```bash
|
|
1015
|
-
node
|
|
1036
|
+
node "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/statusline.cjs"
|
|
1016
1037
|
```
|
|
1017
1038
|
|
|
1018
1039
|
Should print 6 lines of ANSI output. If it errors:
|
|
1019
1040
|
|
|
1020
1041
|
```bash
|
|
1021
|
-
node
|
|
1042
|
+
node "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/statusline.cjs" 2>&1
|
|
1022
1043
|
```
|
|
1023
1044
|
|
|
1024
1045
|
Likely cause: corrupt JSON or missing `.p-replicator.json`.
|
|
@@ -1038,7 +1059,7 @@ git rev-parse --git-dir
|
|
|
1038
1059
|
Debug a specific hook:
|
|
1039
1060
|
|
|
1040
1061
|
```bash
|
|
1041
|
-
node
|
|
1062
|
+
node "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/autocommit-roadmap.cjs"
|
|
1042
1063
|
echo "Exit: $?"
|
|
1043
1064
|
git log -1 --format="%s"
|
|
1044
1065
|
```
|
|
@@ -1103,7 +1124,7 @@ Checks:
|
|
|
1103
1124
|
1. `.claude/insights/index.md` exists with entries?
|
|
1104
1125
|
2. Hook works:
|
|
1105
1126
|
```bash
|
|
1106
|
-
node
|
|
1127
|
+
node "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/session-insights.cjs" # should print recent insights
|
|
1107
1128
|
```
|
|
1108
1129
|
3. SessionStart hook configured in `settings.json`?
|
|
1109
1130
|
|
|
@@ -1112,7 +1133,7 @@ If all 3 OK but still nothing — Claude Code may cache. Restart `claude`.
|
|
|
1112
1133
|
### Statusline lags on every command
|
|
1113
1134
|
|
|
1114
1135
|
```bash
|
|
1115
|
-
time node
|
|
1136
|
+
time node "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/statusline.cjs" # how many seconds?
|
|
1116
1137
|
```
|
|
1117
1138
|
|
|
1118
1139
|
Should be < 100ms. If > 1s, check `docs/` size:
|
package/bin/cli.js
CHANGED
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dzhechkov/p-replicator",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"description": "P-Replicator — Claude Code toolkit for AI-assisted product development (Vibe Coding). Full /replicate pipeline, 10 modular skills (880K+ chars), /harvest knowledge extraction, swarm agents, quality gates, security patterns, cross-project learning.",
|
|
5
5
|
"main": "src/cli.js",
|
|
6
6
|
"bin": {
|
|
@@ -18,6 +18,15 @@
|
|
|
18
18
|
".dz-manifest.json",
|
|
19
19
|
"sbom.json"
|
|
20
20
|
],
|
|
21
|
+
"scripts": {
|
|
22
|
+
"prepublishOnly": "node ../../../scripts/prepublish-gate.mjs",
|
|
23
|
+
"test": "node --test tests/unit/utils.test.js tests/unit/adr-scanner-contract.test.js tests/unit/sparc-reconciliation.test.js tests/unit/pipeline-file-ownership.test.js tests/unit/validation-gate-teeth.test.js tests/unit/hooks-project-anchored.test.js tests/unit/statusline-two-roots.test.js tests/unit/external-dependency-check.test.js tests/unit/spec-pseudocode-traceability.test.js tests/unit/sync-templates-guard.test.js tests/unit/db-port-rule.test.js tests/unit/roadmap-one-schema.test.js tests/unit/hooks-report-failures.test.js tests/unit/growth-module-b2b-gate.test.js tests/unit/detect-parse-anchor.test.js tests/unit/statusline-honest-labels.test.js tests/unit/autocommit-deletion.test.js tests/unit/check-ports.test.js tests/unit/adr-decision-coverage.test.js tests/e2e/lifecycle.test.js tests/snapshot/templates.test.js",
|
|
24
|
+
"test:unit": "node --test tests/unit/utils.test.js tests/unit/adr-scanner-contract.test.js tests/unit/sparc-reconciliation.test.js tests/unit/pipeline-file-ownership.test.js tests/unit/validation-gate-teeth.test.js tests/unit/hooks-project-anchored.test.js tests/unit/statusline-two-roots.test.js tests/unit/external-dependency-check.test.js tests/unit/spec-pseudocode-traceability.test.js tests/unit/sync-templates-guard.test.js tests/unit/db-port-rule.test.js tests/unit/roadmap-one-schema.test.js tests/unit/hooks-report-failures.test.js tests/unit/growth-module-b2b-gate.test.js tests/unit/detect-parse-anchor.test.js tests/unit/statusline-honest-labels.test.js tests/unit/autocommit-deletion.test.js tests/unit/check-ports.test.js tests/unit/adr-decision-coverage.test.js",
|
|
25
|
+
"test:e2e": "node --test tests/e2e/lifecycle.test.js",
|
|
26
|
+
"test:snapshot": "node --test tests/snapshot/templates.test.js",
|
|
27
|
+
"test:doctor": "node bin/cli.js doctor",
|
|
28
|
+
"snapshot:baseline": "node tests/snapshot/update-baseline.js"
|
|
29
|
+
},
|
|
21
30
|
"keywords": [
|
|
22
31
|
"claude",
|
|
23
32
|
"claude-code",
|
|
@@ -70,13 +79,5 @@
|
|
|
70
79
|
},
|
|
71
80
|
"publishConfig": {
|
|
72
81
|
"access": "public"
|
|
73
|
-
},
|
|
74
|
-
"scripts": {
|
|
75
|
-
"test": "node --test tests/unit/utils.test.js tests/e2e/lifecycle.test.js tests/snapshot/templates.test.js",
|
|
76
|
-
"test:unit": "node --test tests/unit/utils.test.js",
|
|
77
|
-
"test:e2e": "node --test tests/e2e/lifecycle.test.js",
|
|
78
|
-
"test:snapshot": "node --test tests/snapshot/templates.test.js",
|
|
79
|
-
"test:doctor": "node bin/cli.js doctor",
|
|
80
|
-
"snapshot:baseline": "node tests/snapshot/update-baseline.js"
|
|
81
82
|
}
|
|
82
|
-
}
|
|
83
|
+
}
|