@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
package/.dz-manifest.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"files": [
|
|
6
6
|
{
|
|
7
7
|
"path": "CHANGELOG.md",
|
|
8
|
-
"sha256": "
|
|
8
|
+
"sha256": "837815d5116c5e117c1249a414b7ae81927969d74a3b44685e8dc8a8dd3a6d8e"
|
|
9
9
|
},
|
|
10
10
|
{
|
|
11
11
|
"path": "KNOWN_LIMITATIONS.md",
|
|
@@ -17,23 +17,23 @@
|
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
19
|
"path": "MULTIPLATFORM_ROADMAP.md",
|
|
20
|
-
"sha256": "
|
|
20
|
+
"sha256": "a6fed19895b2c93a1be5f3416f021b2d5165449ff6dadd9bf6d96ba8c0491192"
|
|
21
21
|
},
|
|
22
22
|
{
|
|
23
23
|
"path": "README.md",
|
|
24
|
-
"sha256": "
|
|
24
|
+
"sha256": "6b863dbfd298c1788097d53a87425030a341684f67bbb5a81a90c192c0c90d22"
|
|
25
25
|
},
|
|
26
26
|
{
|
|
27
27
|
"path": "README/eng/01_quickstart.md",
|
|
28
|
-
"sha256": "
|
|
28
|
+
"sha256": "8fe8dc32ddb603bfae2c71c8bafed51dd4d291a3f32942c06a049cab25dbf490"
|
|
29
29
|
},
|
|
30
30
|
{
|
|
31
31
|
"path": "README/eng/02_user_guide.md",
|
|
32
|
-
"sha256": "
|
|
32
|
+
"sha256": "307cf6c2a9bd6ebee678e47c0a13c15fdaaebcfdc9a17a0a08fe7892ed1afee0"
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
35
|
"path": "README/eng/03_admin_guide.md",
|
|
36
|
-
"sha256": "
|
|
36
|
+
"sha256": "e4c5c190383570dd0f9853ec18221d0ccd24a85a4a42575e819c7b283fc42077"
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
39
|
"path": "README/eng/04_api_reference.md",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
},
|
|
42
42
|
{
|
|
43
43
|
"path": "README/eng/05_architecture.md",
|
|
44
|
-
"sha256": "
|
|
44
|
+
"sha256": "6cd5056f9e315bd910187925f0085910fa6905490559a58cb3c604d7bd63ebc4"
|
|
45
45
|
},
|
|
46
46
|
{
|
|
47
47
|
"path": "README/eng/06_troubleshooting.md",
|
|
@@ -53,19 +53,19 @@
|
|
|
53
53
|
},
|
|
54
54
|
{
|
|
55
55
|
"path": "README/eng/README.md",
|
|
56
|
-
"sha256": "
|
|
56
|
+
"sha256": "19cddc3b70de2f8ae440d7dfcd5268cf195df32e35a0b17f861f727df76cc3ca"
|
|
57
57
|
},
|
|
58
58
|
{
|
|
59
59
|
"path": "README/ru/01_quickstart.md",
|
|
60
|
-
"sha256": "
|
|
60
|
+
"sha256": "3d5b2a8dd9c9f7c0f35ae7b280ed22d865086a07a5f07866ce496549d4623e9b"
|
|
61
61
|
},
|
|
62
62
|
{
|
|
63
63
|
"path": "README/ru/02_user_guide.md",
|
|
64
|
-
"sha256": "
|
|
64
|
+
"sha256": "20b8f60be4755fcdacfb845b8bfc9f12cc26bd999fefb5f98ab6dd0a2948f1c7"
|
|
65
65
|
},
|
|
66
66
|
{
|
|
67
67
|
"path": "README/ru/03_admin_guide.md",
|
|
68
|
-
"sha256": "
|
|
68
|
+
"sha256": "c7923e865819d4d544f64066a4ef9ab729266dc2e11eeaed5e736f0357fcd2e8"
|
|
69
69
|
},
|
|
70
70
|
{
|
|
71
71
|
"path": "README/ru/04_api_reference.md",
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
},
|
|
74
74
|
{
|
|
75
75
|
"path": "README/ru/05_architecture.md",
|
|
76
|
-
"sha256": "
|
|
76
|
+
"sha256": "f11803686a9b0d1cfe526d36d5ad3fe7e527b73bdf5bbcd2bb9e8207abbd9a94"
|
|
77
77
|
},
|
|
78
78
|
{
|
|
79
79
|
"path": "README/ru/06_troubleshooting.md",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
},
|
|
86
86
|
{
|
|
87
87
|
"path": "README/ru/README.md",
|
|
88
|
-
"sha256": "
|
|
88
|
+
"sha256": "b98cda9099c19497ddcdc1b58d17d62a75ef73cf6c6e64beac723b0e0363b661"
|
|
89
89
|
},
|
|
90
90
|
{
|
|
91
91
|
"path": "README/ru/html/build.js",
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
},
|
|
94
94
|
{
|
|
95
95
|
"path": "README/ru/html/index.html",
|
|
96
|
-
"sha256": "
|
|
96
|
+
"sha256": "31baddce9668e9802bc042c8a0df326061c1db7662f64df6861f7ed419890b88"
|
|
97
97
|
},
|
|
98
98
|
{
|
|
99
99
|
"path": "README/ru/html/script.js",
|
|
@@ -109,7 +109,7 @@
|
|
|
109
109
|
},
|
|
110
110
|
{
|
|
111
111
|
"path": "package.json",
|
|
112
|
-
"sha256": "
|
|
112
|
+
"sha256": "8ae12d621050c3a4f992bc853b4ec961af5fbf32bf9c3fee639a182b546992de"
|
|
113
113
|
},
|
|
114
114
|
{
|
|
115
115
|
"path": "src/cli.js",
|
|
@@ -141,11 +141,11 @@
|
|
|
141
141
|
},
|
|
142
142
|
{
|
|
143
143
|
"path": "src/utils.js",
|
|
144
|
-
"sha256": "
|
|
144
|
+
"sha256": "ec9d1695f4b0ef2ce0b3ee6908e90900ebac0941a32ea48df673f6cd20fc1387"
|
|
145
145
|
},
|
|
146
146
|
{
|
|
147
147
|
"path": "templates/.claude/agents/doc-validator.md",
|
|
148
|
-
"sha256": "
|
|
148
|
+
"sha256": "e57950758cd4764b2cb54b3f1905567e9dbc1ed20ac6ecd30998614894689f4f"
|
|
149
149
|
},
|
|
150
150
|
{
|
|
151
151
|
"path": "templates/.claude/agents/harvest-coordinator.md",
|
|
@@ -153,7 +153,7 @@
|
|
|
153
153
|
},
|
|
154
154
|
{
|
|
155
155
|
"path": "templates/.claude/agents/product-discoverer.md",
|
|
156
|
-
"sha256": "
|
|
156
|
+
"sha256": "f74683fe91b4357d6fb4024ed47b4d5a129ea6375ca6b223dee97176d74acf1c"
|
|
157
157
|
},
|
|
158
158
|
{
|
|
159
159
|
"path": "templates/.claude/agents/replicate-coordinator.md",
|
|
@@ -185,7 +185,7 @@
|
|
|
185
185
|
},
|
|
186
186
|
{
|
|
187
187
|
"path": "templates/.claude/commands/next.md",
|
|
188
|
-
"sha256": "
|
|
188
|
+
"sha256": "1e4984306c3aa80dfc8734dc1c975dfe5fdf2cf6396ddd759e4c7635646107b8"
|
|
189
189
|
},
|
|
190
190
|
{
|
|
191
191
|
"path": "templates/.claude/commands/plan.md",
|
|
@@ -193,7 +193,7 @@
|
|
|
193
193
|
},
|
|
194
194
|
{
|
|
195
195
|
"path": "templates/.claude/commands/replicate.md",
|
|
196
|
-
"sha256": "
|
|
196
|
+
"sha256": "13f5e2ebe109f33b63cbcd75e3cf1b94224ab066aba1b0cb10cf34f668144a8a"
|
|
197
197
|
},
|
|
198
198
|
{
|
|
199
199
|
"path": "templates/.claude/commands/run.md",
|
|
@@ -201,31 +201,39 @@
|
|
|
201
201
|
},
|
|
202
202
|
{
|
|
203
203
|
"path": "templates/.claude/commands/start.md",
|
|
204
|
-
"sha256": "
|
|
204
|
+
"sha256": "4aaebc10ca8d607d4b2b43883d82392e9788c2f183878a49fc0d1ed54d07ee95"
|
|
205
205
|
},
|
|
206
206
|
{
|
|
207
207
|
"path": "templates/.claude/hooks/autocommit-insights.cjs",
|
|
208
|
-
"sha256": "
|
|
208
|
+
"sha256": "5e7cef87b24d457f25315d79fe15f0dfaf94d9269495d638817f0faee2593c6f"
|
|
209
209
|
},
|
|
210
210
|
{
|
|
211
211
|
"path": "templates/.claude/hooks/autocommit-plans.cjs",
|
|
212
|
-
"sha256": "
|
|
212
|
+
"sha256": "9bb404b7f4fda5de03e6c2f16bf8939a79ec1944538767b04bcccc6cf50cc03d"
|
|
213
213
|
},
|
|
214
214
|
{
|
|
215
215
|
"path": "templates/.claude/hooks/autocommit-roadmap.cjs",
|
|
216
|
-
"sha256": "
|
|
216
|
+
"sha256": "f4dcc9ffd9a3aed91dd56e011e699fcf8af903cc81594e4ab1ef61e5432a36ad"
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
"path": "templates/.claude/hooks/check-ports.cjs",
|
|
220
|
+
"sha256": "e5f2d2bd8899df27c2dfedf76128467becae1868210eb8525a1bad2869a8c78f"
|
|
217
221
|
},
|
|
218
222
|
{
|
|
219
223
|
"path": "templates/.claude/hooks/session-insights.cjs",
|
|
220
|
-
"sha256": "
|
|
224
|
+
"sha256": "46f8357e3886a6d54db1ab4af969b9b8643ae5937ba59038a5651ffbcfd0d30e"
|
|
221
225
|
},
|
|
222
226
|
{
|
|
223
227
|
"path": "templates/.claude/hooks/state-update.cjs",
|
|
224
|
-
"sha256": "
|
|
228
|
+
"sha256": "47146a76b768ac2273abe8f2f017856a0e28b45afaf90048148da417dd19604e"
|
|
225
229
|
},
|
|
226
230
|
{
|
|
227
231
|
"path": "templates/.claude/hooks/statusline.cjs",
|
|
228
|
-
"sha256": "
|
|
232
|
+
"sha256": "1eca683baf67a17874dc5db6dfe38eb11944f550c66f46330bce0f794732245f"
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
"path": "templates/.claude/rules/docker-ports.md",
|
|
236
|
+
"sha256": "bef41c25c875479341f68783c2d64572800d4710f55401e55519245f03d22efb"
|
|
229
237
|
},
|
|
230
238
|
{
|
|
231
239
|
"path": "templates/.claude/rules/feature-lifecycle.md",
|
|
@@ -241,7 +249,7 @@
|
|
|
241
249
|
},
|
|
242
250
|
{
|
|
243
251
|
"path": "templates/.claude/rules/replicate-pipeline.md",
|
|
244
|
-
"sha256": "
|
|
252
|
+
"sha256": "b65e802d32a1e50bdfcd0cfc79c78e9234eac48a94f0cd1f5647cf4fea6c0162"
|
|
245
253
|
},
|
|
246
254
|
{
|
|
247
255
|
"path": "templates/.claude/rules/skill-interface-protocol.md",
|
|
@@ -249,7 +257,7 @@
|
|
|
249
257
|
},
|
|
250
258
|
{
|
|
251
259
|
"path": "templates/.claude/settings.json",
|
|
252
|
-
"sha256": "
|
|
260
|
+
"sha256": "b1df6cf834ccfa227f3318a70862115c17838ab31253e9d8d89381b7763e61fd"
|
|
253
261
|
},
|
|
254
262
|
{
|
|
255
263
|
"path": "templates/.claude/skills/brutal-honesty-review/README.md",
|
|
@@ -293,11 +301,11 @@
|
|
|
293
301
|
},
|
|
294
302
|
{
|
|
295
303
|
"path": "templates/.claude/skills/cc-toolkit-generator-enhanced/modules/01-detect-parse.md",
|
|
296
|
-
"sha256": "
|
|
304
|
+
"sha256": "85c72f6daa5af88b4a7ff520a387f47a7c92b81cb1f0757550c8b58100a97be6"
|
|
297
305
|
},
|
|
298
306
|
{
|
|
299
307
|
"path": "templates/.claude/skills/cc-toolkit-generator-enhanced/modules/02-analyze-map.md",
|
|
300
|
-
"sha256": "
|
|
308
|
+
"sha256": "5939f3fe6ae542fabb8e665dc373a20410d8de917362fcb3ecac504286f41836"
|
|
301
309
|
},
|
|
302
310
|
{
|
|
303
311
|
"path": "templates/.claude/skills/cc-toolkit-generator-enhanced/modules/03-generate-p0.md",
|
|
@@ -337,11 +345,11 @@
|
|
|
337
345
|
},
|
|
338
346
|
{
|
|
339
347
|
"path": "templates/.claude/skills/cc-toolkit-generator-enhanced/references/enhanced-recommendations.md",
|
|
340
|
-
"sha256": "
|
|
348
|
+
"sha256": "657e35db0cb77d3a9d1a4d01215a9b8d50441dd863593bee3a84f62aad8b00bc"
|
|
341
349
|
},
|
|
342
350
|
{
|
|
343
351
|
"path": "templates/.claude/skills/cc-toolkit-generator-enhanced/references/extended-mapping.md",
|
|
344
|
-
"sha256": "
|
|
352
|
+
"sha256": "5e87c91956eabc70b4a1084b47b2c9a20ede18bb245735812ead956eafabf3af"
|
|
345
353
|
},
|
|
346
354
|
{
|
|
347
355
|
"path": "templates/.claude/skills/cc-toolkit-generator-enhanced/references/maturity-integration.md",
|
|
@@ -357,7 +365,7 @@
|
|
|
357
365
|
},
|
|
358
366
|
{
|
|
359
367
|
"path": "templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/ddd-agents.md",
|
|
360
|
-
"sha256": "
|
|
368
|
+
"sha256": "c91f81da197a072b57378fd0018eea26c35d909a558bdca6f070eb60153c97b3"
|
|
361
369
|
},
|
|
362
370
|
{
|
|
363
371
|
"path": "templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/ddd-hooks-commands.md",
|
|
@@ -365,11 +373,11 @@
|
|
|
365
373
|
},
|
|
366
374
|
{
|
|
367
375
|
"path": "templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/ddd-skills.md",
|
|
368
|
-
"sha256": "
|
|
376
|
+
"sha256": "2f1019d5da7d695983aee79186a47fcefccbfa24db48219c04f9bb9feb757d3a"
|
|
369
377
|
},
|
|
370
378
|
{
|
|
371
379
|
"path": "templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/enhanced-claude-md.md",
|
|
372
|
-
"sha256": "
|
|
380
|
+
"sha256": "db6898b7202b84965cbff9195a6ce780cadd6aeb64adae3fbfd951443a6bc43d"
|
|
373
381
|
},
|
|
374
382
|
{
|
|
375
383
|
"path": "templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/feature-lifecycle-ent.md",
|
|
@@ -381,7 +389,7 @@
|
|
|
381
389
|
},
|
|
382
390
|
{
|
|
383
391
|
"path": "templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/feature-suggestions.md",
|
|
384
|
-
"sha256": "
|
|
392
|
+
"sha256": "3b1c20d2394e180720447416767fbfae99168cf9ca846bf64907f6fe5cd906da"
|
|
385
393
|
},
|
|
386
394
|
{
|
|
387
395
|
"path": "templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/insights-system.md",
|
|
@@ -393,7 +401,7 @@
|
|
|
393
401
|
},
|
|
394
402
|
{
|
|
395
403
|
"path": "templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/start-command.md",
|
|
396
|
-
"sha256": "
|
|
404
|
+
"sha256": "e037a7e73e65e5216f95f27a255009c4c2b95f0f2d6b7c575d70813efac34438"
|
|
397
405
|
},
|
|
398
406
|
{
|
|
399
407
|
"path": "templates/.claude/skills/explore/SKILL.md",
|
|
@@ -589,7 +597,7 @@
|
|
|
589
597
|
},
|
|
590
598
|
{
|
|
591
599
|
"path": "templates/.claude/skills/requirements-validator/SKILL.md",
|
|
592
|
-
"sha256": "
|
|
600
|
+
"sha256": "e50c5269ad181966a81c14ef596946cea67cbf4b8f8f648c90fd66ecad948933"
|
|
593
601
|
},
|
|
594
602
|
{
|
|
595
603
|
"path": "templates/.claude/skills/requirements-validator/assets/templates/bdd-feature-template.feature",
|
|
@@ -605,7 +613,7 @@
|
|
|
605
613
|
},
|
|
606
614
|
{
|
|
607
615
|
"path": "templates/.claude/skills/requirements-validator/references/scoring-system.md",
|
|
608
|
-
"sha256": "
|
|
616
|
+
"sha256": "49afe072f31f5b4f9a33f6b59487244f494b0f5587b6cc10c797c4de59510114"
|
|
609
617
|
},
|
|
610
618
|
{
|
|
611
619
|
"path": "templates/.claude/skills/requirements-validator/references/smart-criteria.md",
|
|
@@ -665,7 +673,7 @@
|
|
|
665
673
|
},
|
|
666
674
|
{
|
|
667
675
|
"path": "templates/.claude/skills/sparc-prd-mini/SKILL.md",
|
|
668
|
-
"sha256": "
|
|
676
|
+
"sha256": "50e829635b828b444487e4b04219518a595dbd4b94f91b66fb03ddf4a7b21712"
|
|
669
677
|
},
|
|
670
678
|
{
|
|
671
679
|
"path": "templates/.claude/skills/sparc-prd-mini/references/sparc-methodology.md",
|
|
@@ -681,11 +689,11 @@
|
|
|
681
689
|
},
|
|
682
690
|
{
|
|
683
691
|
"path": "tests/e2e/lifecycle.test.js",
|
|
684
|
-
"sha256": "
|
|
692
|
+
"sha256": "fd4af066e9e20c7c0f711337f3afdfd2f8e13ec8c845f8784befeb0785270e14"
|
|
685
693
|
},
|
|
686
694
|
{
|
|
687
695
|
"path": "tests/snapshot/baseline.json",
|
|
688
|
-
"sha256": "
|
|
696
|
+
"sha256": "cb6c08b5c5fb7ea837fb6c054d1094f8c4878a88ac866ec67a3862f8c7fb2a07"
|
|
689
697
|
},
|
|
690
698
|
{
|
|
691
699
|
"path": "tests/snapshot/templates.test.js",
|
|
@@ -693,13 +701,85 @@
|
|
|
693
701
|
},
|
|
694
702
|
{
|
|
695
703
|
"path": "tests/snapshot/update-baseline.js",
|
|
696
|
-
"sha256": "
|
|
704
|
+
"sha256": "1f50d0c2ec86f1c865ee6ed8c59725e57c397d487b7a24baf051dc5d4b294459"
|
|
705
|
+
},
|
|
706
|
+
{
|
|
707
|
+
"path": "tests/unit/adr-decision-coverage.test.js",
|
|
708
|
+
"sha256": "34f9bf0700b4c45fb905f606567f2a6d3ba152f8f1db29f479963667b298ede4"
|
|
709
|
+
},
|
|
710
|
+
{
|
|
711
|
+
"path": "tests/unit/adr-scanner-contract.test.js",
|
|
712
|
+
"sha256": "08c8b7d862ae0ddcd72116462458b71d3fe29b09cbaf08fa6a824e22ad6985c8"
|
|
713
|
+
},
|
|
714
|
+
{
|
|
715
|
+
"path": "tests/unit/autocommit-deletion.test.js",
|
|
716
|
+
"sha256": "87ebe50e164cfa3aeda3d4f04e6b6aa98ab8af44711cbeb94252d770c07ad8ad"
|
|
717
|
+
},
|
|
718
|
+
{
|
|
719
|
+
"path": "tests/unit/check-ports.test.js",
|
|
720
|
+
"sha256": "72d9eeaa8c47d83fba867722f4b8efc8d079e2d9649e1a20abff46571c2f6f15"
|
|
721
|
+
},
|
|
722
|
+
{
|
|
723
|
+
"path": "tests/unit/db-port-rule.test.js",
|
|
724
|
+
"sha256": "a97c913ccba8da16f7b8ef3094cac4ba8b499df2d644b3094c58945306d98c09"
|
|
725
|
+
},
|
|
726
|
+
{
|
|
727
|
+
"path": "tests/unit/detect-parse-anchor.test.js",
|
|
728
|
+
"sha256": "ecfa57bfcb34e12081009d0bdf4be83a6eab7a8b7a6a0dc27c1cb02ae5561be0"
|
|
729
|
+
},
|
|
730
|
+
{
|
|
731
|
+
"path": "tests/unit/external-dependency-check.test.js",
|
|
732
|
+
"sha256": "d85109f8e86648d61fc17d0128e9d4881950a70641c246e667d7e54ffc1f0273"
|
|
733
|
+
},
|
|
734
|
+
{
|
|
735
|
+
"path": "tests/unit/growth-module-b2b-gate.test.js",
|
|
736
|
+
"sha256": "7bb5b39a637becbea9813744a5d649b19c6bd8a9b18045c971bcfd842852ea84"
|
|
737
|
+
},
|
|
738
|
+
{
|
|
739
|
+
"path": "tests/unit/hooks-project-anchored.test.js",
|
|
740
|
+
"sha256": "2fa5b44982d72701d7a8486ac24ee3a91c6fa6123ef7303a0e065bf1e60987d7"
|
|
741
|
+
},
|
|
742
|
+
{
|
|
743
|
+
"path": "tests/unit/hooks-report-failures.test.js",
|
|
744
|
+
"sha256": "35d3fca74c22e1bc88b6fbb25f172b66a21561a947e2b6e90a366d5a854376b8"
|
|
745
|
+
},
|
|
746
|
+
{
|
|
747
|
+
"path": "tests/unit/pipeline-file-ownership.test.js",
|
|
748
|
+
"sha256": "dd5b6e2ddb3078fb5ccafed6c55a6079bbd20d73fd5c2dacbb988263ceeda806"
|
|
749
|
+
},
|
|
750
|
+
{
|
|
751
|
+
"path": "tests/unit/roadmap-one-schema.test.js",
|
|
752
|
+
"sha256": "3e7ac9dbc9796a791fc95c43b4346c6da2455f3c0ace45bbc440502c5957d3dc"
|
|
753
|
+
},
|
|
754
|
+
{
|
|
755
|
+
"path": "tests/unit/sparc-reconciliation.test.js",
|
|
756
|
+
"sha256": "4020c623cb351d42b3b184d23194d48cf04e4a3ce8d95ff96c4261ade75632c9"
|
|
757
|
+
},
|
|
758
|
+
{
|
|
759
|
+
"path": "tests/unit/spec-pseudocode-traceability.test.js",
|
|
760
|
+
"sha256": "fc01a561458f35e789a6d22ce3def23f3553493ba9f06493666306c603fa3c8c"
|
|
761
|
+
},
|
|
762
|
+
{
|
|
763
|
+
"path": "tests/unit/statusline-honest-labels.test.js",
|
|
764
|
+
"sha256": "3188892491df4133566c20fc336b8d5ceedac7e14c7053088be2e3bee3e10594"
|
|
765
|
+
},
|
|
766
|
+
{
|
|
767
|
+
"path": "tests/unit/statusline-two-roots.test.js",
|
|
768
|
+
"sha256": "73eb6c542058b3969e97ac0fb7f363e5b2d396bd5328b4cb186fba102aa3fd01"
|
|
769
|
+
},
|
|
770
|
+
{
|
|
771
|
+
"path": "tests/unit/sync-templates-guard.test.js",
|
|
772
|
+
"sha256": "75e8e0d0d2dfc16f14c586d399b5c9c075cc3a0494c558fe39d8528516185cfe"
|
|
697
773
|
},
|
|
698
774
|
{
|
|
699
775
|
"path": "tests/unit/utils.test.js",
|
|
700
|
-
"sha256": "
|
|
776
|
+
"sha256": "2ccc68f9a91d188d56ebad77c4a64653cc5ff7aec093a739eb707774a37e1732"
|
|
777
|
+
},
|
|
778
|
+
{
|
|
779
|
+
"path": "tests/unit/validation-gate-teeth.test.js",
|
|
780
|
+
"sha256": "d4f42a26b67b2fa1dfa8db9984c301a7d7e91657e5e2cdabb1bab307c766138d"
|
|
701
781
|
}
|
|
702
782
|
]
|
|
703
783
|
},
|
|
704
|
-
"signature": "
|
|
784
|
+
"signature": "2lO/3LnJ6PCrXJW8Hm4PO2SRG0YNFAU8vsA+FjHBfXgNYU91TalTT7tFpIo2uG8wx9qpZWDYfWjGNsiQhvqiBQ=="
|
|
705
785
|
}
|
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,141 @@ All notable changes to `@dzhechkov/p-replicator` are documented here.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.6.0] - 2026-08-27
|
|
9
|
+
|
|
10
|
+
**Seventeen features** across two days, from the field-report sweep (PR-003, PR-005+010, PR-008,
|
|
11
|
+
PR-009+004, PR-010, PR-011, PR-012, PR-013, PR-007 G5) plus a latent publish hazard, a silent-failure
|
|
12
|
+
class, a growth-module gate and three regressions found in passing. Every one went through the full
|
|
13
|
+
design→plan→code→cross-family-QE pipeline; artifacts live in `features/<slug>/` in the source repo.
|
|
14
|
+
|
|
15
|
+
**MINOR, not patch — the pre-shipped contract changed twice.** Rules went 5 → 6 (`docker-ports`) and
|
|
16
|
+
hooks 6 → 7 (`check-ports`). After `update`, `doctor` and `verify` expect the new counts.
|
|
17
|
+
|
|
18
|
+
### Added — a check that can fail, for the rule that could not
|
|
19
|
+
|
|
20
|
+
`.claude/hooks/check-ports.cjs` enforces «Правило №0» against a real `docker compose config`, in Node
|
|
21
|
+
so it runs where the package promises to run. **Three exit codes: 0 clean, 1 violation, 2 THE CHECK
|
|
22
|
+
DID NOT RUN** — no compose, no docker, an unparseable config. A check that answers "clean" when it
|
|
23
|
+
could not look turns an unknown into a reassurance.
|
|
24
|
+
|
|
25
|
+
It is a rewrite, not a transcription: the bash original never looked at `network_mode: host`, which
|
|
26
|
+
the rule forbids. It is not registered as an event hook — invoke it deliberately:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
node .claude/hooks/check-ports.cjs .
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Added — a recorded decision cannot be quietly left unbuilt
|
|
33
|
+
|
|
34
|
+
Phase 2 closes with a decision-coverage step: every `ADR-<nnn>` in `docs/ADR.md` must be named
|
|
35
|
+
downstream, and every downstream reference must match a real decision. Both directions, both able to
|
|
36
|
+
say `none`. It establishes that a decision is NAMED, not that it was implemented, and says so.
|
|
37
|
+
|
|
38
|
+
### Changed — deleting an artifact is now recorded
|
|
39
|
+
|
|
40
|
+
The three autocommit hooks treated a deleted roadmap as "nothing to do". A deletion is now committed
|
|
41
|
+
with its own `auto-remove` subject, classified from what git actually staged — so deleting one file
|
|
42
|
+
inside a surviving directory counts too. A project that never had the artifact stays silent.
|
|
43
|
+
|
|
44
|
+
### Fixed — the status line stops saying untrue things
|
|
45
|
+
|
|
46
|
+
The progress bar was built from done/total and captioned `mvp`; it now carries the caption it draws.
|
|
47
|
+
And the domain guess had no word boundaries, so "healthchecks" made a project medical and "slack"
|
|
48
|
+
made it enterprise. Boundaries are Unicode lookarounds, not `\b` — `\b` does not work around
|
|
49
|
+
Cyrillic at all.
|
|
50
|
+
|
|
51
|
+
### Fixed — the project scanner could not recognise its own output
|
|
52
|
+
|
|
53
|
+
Seven probes resolved from one parameter and disagreed about what it was; the two that decide whether
|
|
54
|
+
a project is SPARC-shaped looked exactly where the pipeline does not write.
|
|
55
|
+
|
|
56
|
+
### Fixed — the growth module was gated off for the type it handles itself
|
|
57
|
+
|
|
58
|
+
Two callers disabled it for B2B while the module branches on type internally. The condition is now
|
|
59
|
+
about applicability, not product type.
|
|
60
|
+
|
|
61
|
+
**The version number and the decision to publish were the owner's**; both were given on 2026-08-27.
|
|
62
|
+
npm's latest before this release was 1.5.18; 1.5.19 was staged and never published.
|
|
63
|
+
|
|
64
|
+
### Fixed — the shipped hooks did not work from a subdirectory, and never committed anything
|
|
65
|
+
|
|
66
|
+
- `settings.json` pinned all five commands to `${CLAUDE_PROJECT_DIR}` (braced, quoted — the form
|
|
67
|
+
Claude Code rewrites for PowerShell). Relative paths resolve against the process cwd, which drifts
|
|
68
|
+
the moment any tool call runs `cd`, so every `Stop` hook died with `MODULE_NOT_FOUND` — silently,
|
|
69
|
+
because hooks are non-blocking.
|
|
70
|
+
- All six hooks now anchor their DATA at an absolute `CLAUDE_PROJECT_DIR`, falling back to their own
|
|
71
|
+
`__dirname`. Fixing only `settings.json` would have made them run and silently do nothing.
|
|
72
|
+
- The three autocommit hooks passed `-m` AFTER `--`, so git parsed the commit message as a pathspec
|
|
73
|
+
and the commit failed from every directory, always. They had never committed anything.
|
|
74
|
+
|
|
75
|
+
### Fixed — the status line told half the truth from every directory
|
|
76
|
+
|
|
77
|
+
Toolkit counts now resolve from the project root regardless of cwd, and the roadmap is a survey of
|
|
78
|
+
`projects/*` rather than a guess — sub-project figures are labelled as theirs and never merged into
|
|
79
|
+
the root's own counters. The survey is bounded (24 entries, 512 KB per file) because it renders on
|
|
80
|
+
every prompt.
|
|
81
|
+
|
|
82
|
+
### Added — the pipeline can now refuse to build on unvalidated input
|
|
83
|
+
|
|
84
|
+
- A blocking FLOOR on the requirements gate: `Testable = 0` or `Completeness = 0` blocks whatever the
|
|
85
|
+
total says. A story with no acceptance criteria totalled 72/100 and read as "fix minor issues".
|
|
86
|
+
- Phase 3 has a checkable precondition — the validation report must exist and its FIRST
|
|
87
|
+
`**Verdict:**` line must be green or yellow — replacing an unenforceable "never skip validation".
|
|
88
|
+
- An External Dependencies inventory in `Architecture.md` plus a sixth Phase-2 lens: every external
|
|
89
|
+
capability a requirement rests on carries evidence (a citation WITH a verbatim quote) and one of
|
|
90
|
+
three verdicts. An unconfirmed capability stops the requirements that rest on it, not the run.
|
|
91
|
+
- Scenario↔algorithm traceability: scenario IDs in Phase 3, `REALISES:` in Phase 4 algorithms, and a
|
|
92
|
+
coverage reconciliation that runs BOTH ways. It establishes that a claim exists — not that the
|
|
93
|
+
algorithm performs the check, and it says so in the template.
|
|
94
|
+
|
|
95
|
+
### Added — `.claude/rules/docker-ports.md` (6th pre-shipped rule)
|
|
96
|
+
|
|
97
|
+
"Правило №0": storage has no host publication except a loopback bind. Every forbidden form is named
|
|
98
|
+
— `0.0.0.0`, `[::]`, a single explicit public address, and `network_mode: host`, which needs no
|
|
99
|
+
`ports:` entry at all. The rule states that the package does NOT check your compose file, so nobody
|
|
100
|
+
infers a guarantee from its presence.
|
|
101
|
+
|
|
102
|
+
**This changes the pre-shipped contract from 5 rules to 6.** `doctor`, `verify`, the status line and
|
|
103
|
+
the READMEs move together, and a test now holds every count site to `COMPONENTS.rules.items`.
|
|
104
|
+
|
|
105
|
+
### Fixed — one schema for `feature-roadmap.json`
|
|
106
|
+
|
|
107
|
+
It was documented twice, incompatibly, both copies claiming to be canonical. `commands/next.md` is
|
|
108
|
+
now the schema; the other document points at it. The status line marks a roadmap whose `priority`
|
|
109
|
+
values are off-schema instead of rendering a confident `mvp 0/0`.
|
|
110
|
+
|
|
111
|
+
### Fixed — `/start` no longer discards what `/replicate` wrote
|
|
112
|
+
|
|
113
|
+
Both wrote `docker-compose.yml`, `.gitignore` and `README.md`, and `/replicate` recommends running
|
|
114
|
+
`/start` afterwards — so the collision was the normal path. Both sides now guard: if the file exists,
|
|
115
|
+
make the minimal targeted edit, inspect the diff, and name every changed hunk.
|
|
116
|
+
|
|
117
|
+
### Security — `scripts/sync-templates.js` fails closed
|
|
118
|
+
|
|
119
|
+
It copied a discovered repo root's `.claude/` over `templates/` — the npm tarball — and inside a
|
|
120
|
+
monorepo the walk-up finds the MONOREPO. It was safe only because nothing called it, while a test
|
|
121
|
+
helper and an architecture doc both invited the call. It now refuses unless the root carries a
|
|
122
|
+
regular `.p-replicator-sync-source` file with an exact declaration.
|
|
123
|
+
|
|
124
|
+
### Changed — a hook that cannot commit no longer says nothing
|
|
125
|
+
|
|
126
|
+
A real git failure now prints ONE line to **stdout** naming the hook, the artifact and git's own
|
|
127
|
+
reason, and still exits 0. The ordinary "nothing to commit" path stays silent.
|
|
128
|
+
|
|
129
|
+
The stream matters and was wrong at first: MEASURED in the Claude Code binary, a hook exiting 0 has
|
|
130
|
+
its **stderr discarded** (*"Exit code 0 - stdout/stderr not shown"*) while stdout can be surfaced
|
|
131
|
+
(*"Exit code 0 - stdout shown in transcript mode (ctrl+o)"*). "Visible" here means transcript mode
|
|
132
|
+
and the debug log — not an interruption: a `Stop` hook cannot put a line in front of you without
|
|
133
|
+
blocking your session, and blocking is worse.
|
|
134
|
+
|
|
135
|
+
Still open, and it is the owner's call: whether a DELETED target should be auto-committed.
|
|
136
|
+
|
|
137
|
+
### Tests
|
|
138
|
+
|
|
139
|
+
**116 → 235** (MEASURED — reproducer `npm test` in this package; 116 before the first of these
|
|
140
|
+
features, 235 after the last). Every feature's guard is proven by mutation: apply it, watch a
|
|
141
|
+
specific assertion go red, restore, watch it pass.
|
|
142
|
+
|
|
8
143
|
## [1.5.14] - 2026-07-28
|
|
9
144
|
|
|
10
145
|
### Fixed — Documentation & packaging (package-verification findings)
|
package/MULTIPLATFORM_ROADMAP.md
CHANGED
|
@@ -112,7 +112,7 @@ Beyond Level 2 — adapt logic for platform-specific capabilities:
|
|
|
112
112
|
| `/myinsights`, `/docs`, `/harvest`, `/start`, `/deploy` | ✅ universal | path-translate | **Yes** |
|
|
113
113
|
| 10 skills (sparc-prd-mini, etc.) | ⚠️ Claude-specific composition | inline-compile into commands | **Compromise** — sacrifice runtime-loading |
|
|
114
114
|
| 4 pre-shipped agents | ⚠️ Claude Task-tool specific | translate to platform sub-agents | **Yes if platform supports** |
|
|
115
|
-
|
|
|
115
|
+
| 6 rules | ✅ universal markdown | path-translate | **Yes** |
|
|
116
116
|
| Hooks (SessionStart insights, Stop autocommit) | ❌ Claude-only | bake into commands as instructions | **Compromise** — degraded UX |
|
|
117
117
|
| Statusline dashboard | ❌ Claude-only | optional `progress.md` file? | **Skip** — Claude-exclusive feature |
|
|
118
118
|
| `verify` CLI command | ✅ universal | works as-is | **Yes** (already works) |
|
|
@@ -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 +
|
|
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/ #
|
|
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 +
|
|
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 ●
|
|
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 +
|
|
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
|
|
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` —
|
|
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).
|
package/README/eng/README.md
CHANGED
|
@@ -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**, **
|
|
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 +
|
|
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/ #
|
|
228
|
+
│ ├── rules/ # 6 правил
|
|
229
229
|
│ ├── hooks/ # 6 Node-скриптов
|
|
230
230
|
│ └── settings.json # hooks + statusline config
|
|
231
231
|
├── .p-replicator.json # манифест установки
|