@dzhechkov/p-replicator 1.5.17 → 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.
Files changed (85) hide show
  1. package/.dz-manifest.json +173 -65
  2. package/CHANGELOG.md +135 -0
  3. package/MULTIPLATFORM_ROADMAP.md +1 -1
  4. package/README/eng/01_quickstart.md +2 -2
  5. package/README/eng/02_user_guide.md +1 -1
  6. package/README/eng/03_admin_guide.md +2 -2
  7. package/README/eng/05_architecture.md +6 -2
  8. package/README/eng/README.md +1 -1
  9. package/README/ru/01_quickstart.md +2 -2
  10. package/README/ru/02_user_guide.md +1 -1
  11. package/README/ru/03_admin_guide.md +2 -2
  12. package/README/ru/05_architecture.md +1 -1
  13. package/README/ru/README.md +1 -1
  14. package/README/ru/html/index.html +7 -7
  15. package/README.md +41 -18
  16. package/bin/cli.js +0 -0
  17. package/package.json +11 -10
  18. package/sbom.json +347 -77
  19. package/src/utils.js +2 -0
  20. package/templates/.claude/agents/doc-validator.md +2 -1
  21. package/templates/.claude/agents/product-discoverer.md +1 -1
  22. package/templates/.claude/commands/next.md +16 -0
  23. package/templates/.claude/commands/replicate.md +126 -8
  24. package/templates/.claude/commands/start.md +19 -1
  25. package/templates/.claude/hooks/autocommit-insights.cjs +95 -10
  26. package/templates/.claude/hooks/autocommit-plans.cjs +95 -10
  27. package/templates/.claude/hooks/autocommit-roadmap.cjs +96 -13
  28. package/templates/.claude/hooks/check-ports.cjs +232 -0
  29. package/templates/.claude/hooks/session-insights.cjs +13 -1
  30. package/templates/.claude/hooks/state-update.cjs +13 -1
  31. package/templates/.claude/hooks/statusline.cjs +145 -18
  32. package/templates/.claude/rules/docker-ports.md +123 -0
  33. package/templates/.claude/rules/replicate-pipeline.md +5 -2
  34. package/templates/.claude/settings.json +5 -5
  35. package/templates/.claude/skills/cc-toolkit-generator-enhanced/modules/01-detect-parse.md +57 -14
  36. package/templates/.claude/skills/cc-toolkit-generator-enhanced/modules/02-analyze-map.md +9 -7
  37. package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/enhanced-recommendations.md +6 -4
  38. package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/extended-mapping.md +2 -2
  39. package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/ddd-agents.md +2 -2
  40. package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/ddd-skills.md +1 -1
  41. package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/enhanced-claude-md.md +2 -2
  42. package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/feature-suggestions.md +11 -2
  43. package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/start-command.md +1 -1
  44. package/templates/.claude/skills/goap-research-ed25519/SKILL.md +340 -47
  45. package/templates/.claude/skills/goap-research-ed25519/scripts/check_report_evidence.py +359 -3
  46. package/templates/.claude/skills/goap-research-ed25519/scripts/ed25519_verifier.py +386 -13
  47. package/templates/.claude/skills/goap-research-ed25519/scripts/fixture_legacy_v2_fact.json +23 -0
  48. package/templates/.claude/skills/goap-research-ed25519/scripts/fixtures_field_cases.json +133 -0
  49. package/templates/.claude/skills/goap-research-ed25519/scripts/goap_planner.py +314 -44
  50. package/templates/.claude/skills/goap-research-ed25519/scripts/learning_bridge.py +890 -303
  51. package/templates/.claude/skills/goap-research-ed25519/scripts/population_match.py +591 -0
  52. package/templates/.claude/skills/goap-research-ed25519/scripts/risk_statement.py +289 -0
  53. package/templates/.claude/skills/goap-research-ed25519/scripts/test_ed25519_verifier.py +57 -2
  54. package/templates/.claude/skills/goap-research-ed25519/scripts/test_evidence_provenance.py +969 -344
  55. package/templates/.claude/skills/goap-research-ed25519/scripts/test_goap_planner.py +420 -0
  56. package/templates/.claude/skills/goap-research-ed25519/scripts/test_population_match.py +544 -0
  57. package/templates/.claude/skills/goap-research-ed25519/scripts/test_risk_absolute.py +239 -0
  58. package/templates/.claude/skills/goap-research-ed25519/scripts/test_signature_v3.py +554 -0
  59. package/templates/.claude/skills/goap-research-ed25519/scripts/test_suite_completeness.py +90 -0
  60. package/templates/.claude/skills/requirements-validator/SKILL.md +7 -0
  61. package/templates/.claude/skills/requirements-validator/references/scoring-system.md +28 -0
  62. package/templates/.claude/skills/sparc-prd-mini/SKILL.md +143 -1
  63. package/tests/e2e/lifecycle.test.js +21 -10
  64. package/tests/snapshot/baseline.json +51 -34
  65. package/tests/snapshot/update-baseline.js +2 -1
  66. package/tests/unit/adr-decision-coverage.test.js +137 -0
  67. package/tests/unit/adr-scanner-contract.test.js +108 -0
  68. package/tests/unit/autocommit-deletion.test.js +242 -0
  69. package/tests/unit/check-ports.test.js +184 -0
  70. package/tests/unit/db-port-rule.test.js +216 -0
  71. package/tests/unit/detect-parse-anchor.test.js +109 -0
  72. package/tests/unit/external-dependency-check.test.js +209 -0
  73. package/tests/unit/growth-module-b2b-gate.test.js +104 -0
  74. package/tests/unit/hooks-project-anchored.test.js +223 -0
  75. package/tests/unit/hooks-report-failures.test.js +207 -0
  76. package/tests/unit/pipeline-file-ownership.test.js +95 -0
  77. package/tests/unit/roadmap-one-schema.test.js +179 -0
  78. package/tests/unit/sparc-reconciliation.test.js +117 -0
  79. package/tests/unit/spec-pseudocode-traceability.test.js +146 -0
  80. package/tests/unit/statusline-honest-labels.test.js +178 -0
  81. package/tests/unit/statusline-two-roots.test.js +237 -0
  82. package/tests/unit/sync-templates-guard.test.js +209 -0
  83. package/tests/unit/utils.test.js +2 -2
  84. package/tests/unit/validation-gate-teeth.test.js +158 -0
  85. package/LICENSE +0 -21
@@ -162,7 +162,7 @@ npx @dzhechkov/p-replicator verify
162
162
 
163
163
  The command checks:
164
164
 
165
- - **Pre-shipped contract** (must-have): 10 skills + 11 commands + 4 agents + 5 rules + settings.json
165
+ - **Pre-shipped contract** (must-have): 10 skills + 11 commands + 4 agents + 6 rules + settings.json
166
166
  - **Post-/replicate hints** (advisory): CLAUDE.md, project-specific agents,
167
167
  feature-roadmap.json, security rules, etc.
168
168
 
@@ -225,7 +225,7 @@ your-project/
225
225
  │ ├── skills/ # 10 skills
226
226
  │ ├── commands/ # 11 slash commands
227
227
  │ ├── agents/ # 4 pipeline agents
228
- │ ├── rules/ # 5 rules
228
+ │ ├── rules/ # 6 rules
229
229
  │ ├── hooks/ # 6 Node scripts
230
230
  │ └── settings.json # hooks + statusline config
231
231
  ├── .p-replicator.json # install manifest
@@ -501,7 +501,7 @@ npx @dzhechkov/p-replicator verify
501
501
  ```
502
502
 
503
503
  Should report:
504
- - ✅ Pre-shipped contract intact (10 skills + 11 commands + 4 agents + 5 rules + settings.json)
504
+ - ✅ Pre-shipped contract intact (10 skills + 11 commands + 4 agents + 6 rules + settings.json)
505
505
  - ✅ Post-/replicate hints — many will be absent in Mode 2 (this is normal)
506
506
  - 📊 Per-feature artifacts: `docs/features/<id>/01_specification.md`...`05_completion.md`,
507
507
  `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 ●5+2 │ Hooks ●6/6
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
 
@@ -245,7 +245,7 @@ from PRD MVP scope, or by hand).
245
245
 
246
246
  | Tool | Checks | When |
247
247
  |---|---|---|
248
- | `npx @dzhechkov/p-replicator doctor` | Pre-shipped contract: 10 skills + 11 commands + 4 agents + 5 rules + settings.json + 6 hooks + git on PATH | After init / when something seems broken |
248
+ | `npx @dzhechkov/p-replicator doctor` | Pre-shipped contract: 10 skills + 11 commands + 4 agents + 6 rules + settings.json + 7 hooks + git on PATH | After init / when something seems broken |
249
249
  | `npx @dzhechkov/p-replicator verify` | Pre-shipped + post-/replicate hints (CLAUDE.md, planner.md, security.md, feature-roadmap.json, etc.) | After every `/replicate` to confirm |
250
250
 
251
251
  **`doctor` exit codes:**
@@ -73,7 +73,7 @@ function getItemRelativePath(comp, itemKey) {
73
73
 
74
74
  **Design principle:** zero shell dependency.
75
75
 
76
- All 6 hook scripts are pure Node, using `execFileSync('git', [...])`
76
+ All 7 hook scripts are pure Node, using `execFileSync('git', [...])`
77
77
  instead of shell pipes. This works equivalently on:
78
78
  - Windows cmd.exe (no `2>/dev/null`, no `2>nul` — neither needed)
79
79
  - Bash / zsh / Git Bash on Windows
@@ -111,7 +111,11 @@ try {
111
111
 
112
112
  ## Sync-templates: MERGE mode (v1.4.1)
113
113
 
114
- **File:** `scripts/sync-templates.js` — runs as `prepublishOnly` hook.
114
+ **File:** `scripts/sync-templates.js` — **not** a `prepublishOnly` hook, and not part of publishing.
115
+ `prepublishOnly` runs the publish gate (`scripts/prepublish-gate.mjs`); this script is opt-in only and
116
+ refuses to run unless the root it finds carries a `.p-replicator-sync-source` marker. The section
117
+ below records how its MERGE mode works, for whoever opts in — it does not describe anything that
118
+ happens during a normal publish.
115
119
 
116
120
  **Goal:** copy `.claude/` from source repo into `templates/.claude/` (which
117
121
  ends up in the npm tarball).
@@ -6,7 +6,7 @@ product development in Claude Code (Vibe Coding).
6
6
  ## What it is
7
7
 
8
8
  `p-replicator` installs a ready-made `.claude/` toolkit into any project:
9
- **11 slash commands**, **10 skills**, **4 agents**, **5 rules**, **6 hook
9
+ **11 slash commands**, **10 skills**, **4 agents**, **6 rules**, **7 hook
10
10
  scripts**, and a `settings.json` with pre-configured hooks. The flagship
11
11
  `/replicate` command takes a project through a 5-phase pipeline (Discovery →
12
12
  Planning → Validation → Toolkit Generation → Finalize), generating SPARC
@@ -162,7 +162,7 @@ npx @dzhechkov/p-replicator verify
162
162
 
163
163
  Команда проверит:
164
164
 
165
- - **Pre-shipped contract** (must-have): 10 skills + 11 commands + 4 agents + 5 rules + settings.json
165
+ - **Pre-shipped contract** (must-have): 10 skills + 11 commands + 4 agents + 6 rules + settings.json
166
166
  - **Post-/replicate hints** (advisory): CLAUDE.md, project-specific агенты,
167
167
  feature-roadmap.json, security-правила и т.д.
168
168
 
@@ -225,7 +225,7 @@ npx @dzhechkov/p-replicator doctor
225
225
  │ ├── skills/ # 10 skills
226
226
  │ ├── commands/ # 11 slash-команд
227
227
  │ ├── agents/ # 4 pipeline-агента
228
- │ ├── rules/ # 5 правил
228
+ │ ├── rules/ # 6 правил
229
229
  │ ├── hooks/ # 6 Node-скриптов
230
230
  │ └── settings.json # hooks + statusline config
231
231
  ├── .p-replicator.json # манифест установки
@@ -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 + 5 rules + settings.json)
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 ●5+2 │ Hooks ●6/6
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 + 5 rules + settings.json + 6 hooks + git on PATH | После init / при подозрении что что-то сломалось |
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
- Все 6 hook-скриптов написаны на pure Node, используют `execFileSync('git', [...])`
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
@@ -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 агента**, **5 правил**, **6 hook-скриптов**
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>5 правил</strong>, <strong>6 hook-скриптов</strong> и <code>settings.json</code> с pre-configured хуками. Главная команда <code>/replicate</code> проводит проект через 5-фазный pipeline (Discovery → Planning → Validation → Toolkit Generation → Finalize), генерирует SPARC-документацию и project-specific артефакты.</p>
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 + 5 rules + settings.json</li><li><strong>Post-/replicate hints</strong> (advisory): CLAUDE.md, project-specific агенты, feature-roadmap.json, security-правила и т.д.</li></ul>
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/ # 5 правил
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 + 5 rules + settings.json)</li><li>✅ Post-/replicate hints — для Mode 2 многие будут отсутствовать (это нормально)</li><li>📊 Per-feature artifacts: <code>docs/features/&lt;id&gt;/01_specification.md</code>...<code>05_completion.md</code>, <code>validation-report.md</code>, <code>review-report.md</code></li></ul>
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/&lt;id&gt;/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 /&lt;cmd&gt; ▓▓▓░░░░ 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 ●5+2 │ Hooks ●6/6
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" &gt;&gt; .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 + 5 rules + settings.json + 6 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>
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>Все 6 hook-скриптов написаны на pure Node, используют <code>execFileSync('git', [...])</code> вместо shell-pipes. Это эквивалентно работает на:</p>
917
+ <p>Все 7 hook-скриптов написаны на pure Node, используют <code>execFileSync('git', [...])</code> вместо shell-pipes. Это эквивалентно работает на:</p>
918
918
  <ul><li>Windows cmd.exe (нет <code>2&gt;/dev/null</code>, есть <code>2&gt;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
@@ -30,9 +30,11 @@
30
30
  > [`@dzhechkov/harness-cli`](https://www.npmjs.com/package/@dzhechkov/harness-cli) is on PATH, the
31
31
  > bundled research skill recalls prior METHOD lessons at the start of an investigation and records new
32
32
  > ones at four named moments. Without it the skill behaves exactly as before and says so once — it is
33
- > detected, never required. A guard refuses to record anything shaped like personal data: a method
34
- > lesson is written in lower case, carries no digits, and holds no identifier. See
35
- > `skills/goap-research-ed25519/SKILL.md`.
33
+ > detected, never required. Lessons go to a SEPARATE store (`<project>/.health-brain/.dz`) and never
34
+ > to the shared one; recall reads both, so engineering lessons transfer in and medical ones do not
35
+ > leave. A format check refuses identifier shapes (email, phone, record numbers) — it does NOT judge
36
+ > whether a lesson describes a method or a person, and says so: that judgement is the agent's, per
37
+ > the teach protocol. See `skills/goap-research-ed25519/SKILL.md`.
36
38
 
37
39
  ## 📚 Documentation in your language
38
40
 
@@ -99,7 +101,7 @@
99
101
 
100
102
  ## 📖 What is p-replicator?
101
103
 
102
- `@dzhechkov/p-replicator` installs a ready-made `.claude/` toolkit into any project: **11 slash commands**, **10 skills**, **4 agents**, **5 rules**, **6 hook scripts**, and a `settings.json` with pre-configured hooks and a multi-line statusline dashboard.
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.
103
105
 
104
106
  The flagship `/replicate` command takes a project through a **5-phase pipeline**:
105
107
 
@@ -288,7 +290,7 @@ This creates:
288
290
  | **Commands** | 11 | `/replicate`, `/harvest`, `/start`, `/plan`, `/feature`, `/go`, `/run`, `/next`, `/myinsights`, `/docs`, `/deploy` |
289
291
  | **Agents** | 4 | `replicate-coordinator`, `product-discoverer`, `doc-validator`, `harvest-coordinator` |
290
292
  | **Rules** | 5 | `replicate-pipeline`, `skill-interface-protocol`, `git-workflow`, `insights-capture`, `feature-lifecycle` |
291
- | **Hooks** | 6 | `session-insights`, `autocommit-{roadmap,insights,plans}`, `statusline`, `state-update` (cross-platform Node) |
293
+ | **Hooks** | 7 | `session-insights`, `autocommit-{roadmap,insights,plans}`, `statusline`, `state-update`, `check-ports` (cross-platform Node) |
292
294
  | **Settings** | 1 | `settings.json` with statusLine + SessionStart + Stop hooks pre-configured |
293
295
 
294
296
  After running `/replicate`, the toolkit also generates **project-specific** artifacts:
@@ -314,7 +316,7 @@ npx @dzhechkov/p-replicator verify
314
316
 
315
317
  The command checks:
316
318
 
317
- - **Pre-shipped contract** (must-have): 10 skills + 11 commands + 4 agents + 5 rules + settings.json + 6 hooks
319
+ - **Pre-shipped contract** (must-have): 10 skills + 11 commands + 4 agents + 6 rules + settings.json + 7 hooks
318
320
  - **Post-/replicate hints** (advisory): CLAUDE.md, project-specific agents, feature-roadmap.json, security rules, etc.
319
321
 
320
322
  **Exit codes:**
@@ -358,6 +360,14 @@ Generates 11 standardized documents in `docs/`:
358
360
  | `C4_Diagrams.md` | Context / container / component |
359
361
  | `ADR.md` | Architecture Decision Records |
360
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
+
361
371
  Skill: `sparc-prd-mini` (internally chains explore + research + solve sub-phases).
362
372
 
363
373
  ### Phase 2 — Validation (5-agent swarm)
@@ -662,7 +672,7 @@ P-Replicator V1.5.x ● user │ Sonnet 4.7
662
672
  🚀 Pipeline /<cmd> ▓▓▓░░░░ 50% │ Phase: VALIDATE (2/4) │ Last: /replicate
663
673
  🎯 Roadmap [●●●○○○○○] mvp 3/8 │ Done 5/12 │ ▶ auth-jwt │ Domain: banking
664
674
  📊 SPARC ●11/11 │ 🟢 78/100 │ Plans ●3 │ ADRs ●2 │ Harvest 2026-05-05
665
- 🛠️ Toolkit Skills ●10/10 │ Cmds ●11/11 │ Agents ●4+3 │ Rules ●5+2 │ Hooks ●6/6
675
+ 🛠️ Toolkit Skills ●10/10 │ Cmds ●11/11 │ Agents ●4+3 │ Rules ●6+2 │ Hooks ●7/7
666
676
  💡 Insights ●12 (2026-05-06) │ Tests 85/85 ✓ │ MCP ●1/1 │ Settings ✓ │ 🧬 Keysarium ✓
667
677
  ```
668
678
 
@@ -732,7 +742,7 @@ All 4 autocommit scripts use `execFileSync('git', [...])` (no shell pipes, no `2
732
742
  Updated via `state-update.cjs`:
733
743
 
734
744
  ```bash
735
- node .claude/hooks/state-update.cjs \
745
+ node "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/state-update.cjs" \
736
746
  --command /feature \
737
747
  --phase VALIDATE \
738
748
  --index 2 \
@@ -878,14 +888,14 @@ Default structure after `init`:
878
888
  "_comment": "Default hooks + statusline shipped by @dzhechkov/p-replicator init.",
879
889
  "statusLine": {
880
890
  "type": "command",
881
- "command": "node .claude/hooks/statusline.cjs"
891
+ "command": "node \"${CLAUDE_PROJECT_DIR}/.claude/hooks/statusline.cjs\""
882
892
  },
883
893
  "hooks": {
884
894
  "SessionStart": [
885
895
  {
886
896
  "matcher": "*",
887
897
  "hooks": [
888
- { "type": "command", "command": "node .claude/hooks/session-insights.cjs", "timeout": 5 }
898
+ { "type": "command", "command": "node \"${CLAUDE_PROJECT_DIR}/.claude/hooks/session-insights.cjs\"", "timeout": 5 }
889
899
  ]
890
900
  }
891
901
  ],
@@ -893,9 +903,9 @@ Default structure after `init`:
893
903
  {
894
904
  "matcher": "*",
895
905
  "hooks": [
896
- { "type": "command", "command": "node .claude/hooks/autocommit-roadmap.cjs", "timeout": 10 },
897
- { "type": "command", "command": "node .claude/hooks/autocommit-insights.cjs", "timeout": 10 },
898
- { "type": "command", "command": "node .claude/hooks/autocommit-plans.cjs", "timeout": 10 }
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 }
899
909
  ]
900
910
  }
901
911
  ]
@@ -903,6 +913,19 @@ Default structure after `init`:
903
913
  }
904
914
  ```
905
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
+
906
929
  **Customization:** add new hooks or event types — preserved on `init --force` or `update` thanks to merge logic.
907
930
 
908
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).
@@ -1010,13 +1033,13 @@ Checks:
1010
1033
  3. Script runs directly:
1011
1034
 
1012
1035
  ```bash
1013
- node .claude/hooks/statusline.cjs
1036
+ node "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/statusline.cjs"
1014
1037
  ```
1015
1038
 
1016
1039
  Should print 6 lines of ANSI output. If it errors:
1017
1040
 
1018
1041
  ```bash
1019
- node .claude/hooks/statusline.cjs 2>&1
1042
+ node "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/statusline.cjs" 2>&1
1020
1043
  ```
1021
1044
 
1022
1045
  Likely cause: corrupt JSON or missing `.p-replicator.json`.
@@ -1036,7 +1059,7 @@ git rev-parse --git-dir
1036
1059
  Debug a specific hook:
1037
1060
 
1038
1061
  ```bash
1039
- node .claude/hooks/autocommit-roadmap.cjs
1062
+ node "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/autocommit-roadmap.cjs"
1040
1063
  echo "Exit: $?"
1041
1064
  git log -1 --format="%s"
1042
1065
  ```
@@ -1101,7 +1124,7 @@ Checks:
1101
1124
  1. `.claude/insights/index.md` exists with entries?
1102
1125
  2. Hook works:
1103
1126
  ```bash
1104
- node .claude/hooks/session-insights.cjs # should print recent insights
1127
+ node "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/session-insights.cjs" # should print recent insights
1105
1128
  ```
1106
1129
  3. SessionStart hook configured in `settings.json`?
1107
1130
 
@@ -1110,7 +1133,7 @@ If all 3 OK but still nothing — Claude Code may cache. Restart `claude`.
1110
1133
  ### Statusline lags on every command
1111
1134
 
1112
1135
  ```bash
1113
- time node .claude/hooks/statusline.cjs # how many seconds?
1136
+ time node "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/statusline.cjs" # how many seconds?
1114
1137
  ```
1115
1138
 
1116
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.5.17",
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
+ }