@dzhechkov/p-replicator 1.13.1 → 1.13.3

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 (43) hide show
  1. package/.dz-manifest.json +93 -25
  2. package/README.md +19 -1
  3. package/package.json +5 -4
  4. package/sbom.json +194 -24
  5. package/scripts/check-pipeline-gaps.sh +510 -21
  6. package/src/utils.js +2 -0
  7. package/templates/.claude/commands/feature.md +43 -1
  8. package/templates/.claude/commands/replicate.md +9 -1
  9. package/templates/.claude/hooks/check-dangling-refs.cjs +89 -0
  10. package/templates/.claude/hooks/check-docs-complete.cjs +7 -0
  11. package/templates/.claude/hooks/check-review-contract.cjs +205 -0
  12. package/templates/.claude/hooks/statusline.cjs +1 -1
  13. package/templates/.claude/rules/cost-of-detection-ladder.md +37 -4
  14. package/templates/.claude/rules/docker-ports.md +28 -0
  15. package/templates/.claude/rules/feature-lifecycle.md +21 -0
  16. package/templates/.claude/rules/replicate-pipeline.md +5 -4
  17. package/templates/.claude/skills/brutal-honesty-review/resources/assessment-rubrics.md +12 -2
  18. package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/security-patterns-library.md +45 -0
  19. package/templates/.claude/skills/requirements-validator/SKILL.md +18 -5
  20. package/templates/.claude/skills/requirements-validator/references/feature-report-contracts.md +67 -0
  21. package/templates/.claude/skills/requirements-validator/references/scoring-system.md +15 -6
  22. package/tests/e2e/feature-contour.test.js +176 -0
  23. package/tests/fixtures/feature-contour/docs/features/demo-gate/01_specification.md +15 -0
  24. package/tests/fixtures/feature-contour/docs/features/demo-gate/02_pseudocode.md +19 -0
  25. package/tests/fixtures/feature-contour/docs/features/demo-gate/03_architecture.md +3 -0
  26. package/tests/fixtures/feature-contour/docs/features/demo-gate/04_refinement.md +3 -0
  27. package/tests/fixtures/feature-contour/docs/features/demo-gate/05_completion.md +7 -0
  28. package/tests/fixtures/feature-contour/docs/features/demo-gate/review-report.md +11 -0
  29. package/tests/fixtures/feature-contour/docs/features/demo-gate/validation-report.md +10 -0
  30. package/tests/fixtures/feature-contour/tests/demo.test.js +16 -0
  31. package/tests/snapshot/baseline.json +17 -14
  32. package/tests/unit/capture-source-path.test.js +73 -24
  33. package/tests/unit/check-dangling-refs.test.js +91 -0
  34. package/tests/unit/check-review-contract.test.js +181 -0
  35. package/tests/unit/guard-honest-input-meta.test.js +49 -0
  36. package/tests/unit/honest-failure-rules.test.js +40 -3
  37. package/tests/unit/negative-conclusion-gate.test.js +3 -3
  38. package/tests/unit/optional-doc-idiom.test.js +83 -0
  39. package/tests/unit/quote-provenance.test.js +4 -0
  40. package/tests/unit/sync-templates-guard.test.js +46 -3
  41. package/tests/unit/traceability-completion-gate.test.js +267 -0
  42. package/tests/unit/traceability-negative-fixture.test.js +19 -5
  43. package/tests/unit/verdict-vocabulary.test.js +72 -0
package/sbom.json CHANGED
@@ -55,7 +55,7 @@
55
55
  "hashes": [
56
56
  {
57
57
  "alg": "SHA-256",
58
- "content": "103d3f0520f79080445d07623b70195d7b34cae6d875eb60978aec254aca5c88"
58
+ "content": "a70fc43d33972f0472a3fdb6628f79b22c5a4cdd459b5d89bce06e240ca93bf1"
59
59
  }
60
60
  ]
61
61
  },
@@ -279,7 +279,7 @@
279
279
  },
280
280
  {
281
281
  "name": "dz:canonical-json-sha256-v2",
282
- "value": "2bacb5f426c3873d186bf142e95cb72d81a098c35f091a54b80d3d86e97fc1fb"
282
+ "value": "09d9074650a09fe7715324b47211685755777381c8219cdecb0bfbc4d562bd0f"
283
283
  }
284
284
  ]
285
285
  },
@@ -289,7 +289,7 @@
289
289
  "hashes": [
290
290
  {
291
291
  "alg": "SHA-256",
292
- "content": "349dbc45876cd5765ae48ff2224ab7f96d5df01a0d86361866b7740ed3cf4de0"
292
+ "content": "06e3dae22c533a81732b9870ae42d6b80b6e8419b3c90e11e1910e2a46888be8"
293
293
  }
294
294
  ]
295
295
  },
@@ -379,7 +379,7 @@
379
379
  "hashes": [
380
380
  {
381
381
  "alg": "SHA-256",
382
- "content": "2ab6ff0a3e15f9a9d5787077628e19936c3c9735b1549b1233ec4a331c2fd3f7"
382
+ "content": "90d7b12ca01b7ee2cfee6aac68ca11431fa1a507ddfbac155c5d9802d9d91a1e"
383
383
  }
384
384
  ]
385
385
  },
@@ -449,7 +449,7 @@
449
449
  "hashes": [
450
450
  {
451
451
  "alg": "SHA-256",
452
- "content": "b2bb83fce09f823a36c943f397d63ff9d9406da1dadc055c4f187f8ff964d1ce"
452
+ "content": "6908fa6c8ba770f829378a021d5f7e9a9bc79a15bdd67b278d8c6a765968b291"
453
453
  }
454
454
  ]
455
455
  },
@@ -509,7 +509,7 @@
509
509
  "hashes": [
510
510
  {
511
511
  "alg": "SHA-256",
512
- "content": "165d7b3c0606be6817893b53cbfc5ca55c7b81cbe35cbdd0dccf8679d702e81a"
512
+ "content": "f176d8ec871459b5a8d2111b8527331f34340d6e169da8cc7792953e3e334774"
513
513
  }
514
514
  ]
515
515
  },
@@ -583,13 +583,23 @@
583
583
  }
584
584
  ]
585
585
  },
586
+ {
587
+ "type": "file",
588
+ "name": "templates/.claude/hooks/check-dangling-refs.cjs",
589
+ "hashes": [
590
+ {
591
+ "alg": "SHA-256",
592
+ "content": "8f012876b1af110a1093319d36a2f84208a15780dbb8abb5a43eb4aeb8f76865"
593
+ }
594
+ ]
595
+ },
586
596
  {
587
597
  "type": "file",
588
598
  "name": "templates/.claude/hooks/check-docs-complete.cjs",
589
599
  "hashes": [
590
600
  {
591
601
  "alg": "SHA-256",
592
- "content": "27c05c2adcedc806e395b30b455243193a4fbd0968ce96e415679e1f78db951a"
602
+ "content": "0f516df0882c9da53d166a1b4e30ff1fc37bd5a2027c7e5fbdab6cba116ca828"
593
603
  }
594
604
  ]
595
605
  },
@@ -703,6 +713,16 @@
703
713
  }
704
714
  ]
705
715
  },
716
+ {
717
+ "type": "file",
718
+ "name": "templates/.claude/hooks/check-review-contract.cjs",
719
+ "hashes": [
720
+ {
721
+ "alg": "SHA-256",
722
+ "content": "44e32ea31a4a71ceb6eccb0956006519de270eab787a79ab4884978bc04385ab"
723
+ }
724
+ ]
725
+ },
706
726
  {
707
727
  "type": "file",
708
728
  "name": "templates/.claude/hooks/check-source-version.cjs",
@@ -759,7 +779,7 @@
759
779
  "hashes": [
760
780
  {
761
781
  "alg": "SHA-256",
762
- "content": "6e30ccdcdbe3c36896b85821f8986077a0e4065fdff3b103d669fac7ad44670e"
782
+ "content": "bac385da01dd9f1548d0db48a2acdada5e89a7822a7f0ecfb61cb74ff4cda138"
763
783
  }
764
784
  ]
765
785
  },
@@ -779,7 +799,7 @@
779
799
  "hashes": [
780
800
  {
781
801
  "alg": "SHA-256",
782
- "content": "f15309ee8f1494478ff7678380dbe8fc8eecd154be36d57c9090cd17126a07da"
802
+ "content": "d2e7da3d56c8d4c6d1aa58e793fa0d5eecd65a5c01be38dfa0dc434273306838"
783
803
  }
784
804
  ]
785
805
  },
@@ -789,7 +809,7 @@
789
809
  "hashes": [
790
810
  {
791
811
  "alg": "SHA-256",
792
- "content": "59eb430f29dd762e8b76ad6d1177fe8b5b250de007856c743387cb88ee157942"
812
+ "content": "a9e5bb9a797ea4ef4c0671cee2cbec95f2557f8b9e1d20b84bbcee7ce4c21162"
793
813
  }
794
814
  ]
795
815
  },
@@ -809,7 +829,7 @@
809
829
  "hashes": [
810
830
  {
811
831
  "alg": "SHA-256",
812
- "content": "4e926f84f244feb6824114a0624733738669c93e0508693fa2afa4e9a35c2aa3"
832
+ "content": "a7d0adf6bc63b942d3dec339b3ae68972c3dedc0b48a91d27653309c7da7f11f"
813
833
  }
814
834
  ]
815
835
  },
@@ -879,7 +899,7 @@
879
899
  "hashes": [
880
900
  {
881
901
  "alg": "SHA-256",
882
- "content": "879ca7b6ca9039c7b94f6b9df2eadca9ec5fd0f97da5f468d5ee723f3d47f438"
902
+ "content": "9c4bbaa9ac628ec5d4e44d3ace6eec0b5bd602b5dccc5d36f123d73be448f159"
883
903
  }
884
904
  ]
885
905
  },
@@ -949,7 +969,7 @@
949
969
  "hashes": [
950
970
  {
951
971
  "alg": "SHA-256",
952
- "content": "dac09c91c765e2211799cc230738fb72a966f47511edb872306a906e49640cbe"
972
+ "content": "b64894e1ddf8b9da7f2f146c737d35215e7281e3d8be10891d4a9b8aa2bd6d07"
953
973
  }
954
974
  ]
955
975
  },
@@ -1159,7 +1179,7 @@
1159
1179
  "hashes": [
1160
1180
  {
1161
1181
  "alg": "SHA-256",
1162
- "content": "5f1d650c426cbd2c9536b385306605ea62a5a520ee4566d23ca7254409c672a5"
1182
+ "content": "4a7fae9ea1870c30b71c923fd5d3626a8926c5e960209fad709f4b8e0534fc80"
1163
1183
  }
1164
1184
  ]
1165
1185
  },
@@ -1799,7 +1819,7 @@
1799
1819
  "hashes": [
1800
1820
  {
1801
1821
  "alg": "SHA-256",
1802
- "content": "d2b8e71f4053c642f455a0f245ae18471ab25b7a21e0658f0fe410912a47bf8b"
1822
+ "content": "b4b394adf08feee552f39c83331398f119e0d4abf21e683fe4706da438b4a426"
1803
1823
  }
1804
1824
  ]
1805
1825
  },
@@ -1823,6 +1843,16 @@
1823
1843
  }
1824
1844
  ]
1825
1845
  },
1846
+ {
1847
+ "type": "file",
1848
+ "name": "templates/.claude/skills/requirements-validator/references/feature-report-contracts.md",
1849
+ "hashes": [
1850
+ {
1851
+ "alg": "SHA-256",
1852
+ "content": "df263cbce17fb5d9dec6514561c66f6283b3f19e2fc85056f0531bac615be0f1"
1853
+ }
1854
+ ]
1855
+ },
1826
1856
  {
1827
1857
  "type": "file",
1828
1858
  "name": "templates/.claude/skills/requirements-validator/references/invest-criteria.md",
@@ -1839,7 +1869,7 @@
1839
1869
  "hashes": [
1840
1870
  {
1841
1871
  "alg": "SHA-256",
1842
- "content": "49afe072f31f5b4f9a33f6b59487244f494b0f5587b6cc10c797c4de59510114"
1872
+ "content": "72104b74f07e0610f67f00b246b5225a530203bff225bacf7bf384bc6fd21cdf"
1843
1873
  }
1844
1874
  ]
1845
1875
  },
@@ -2023,6 +2053,16 @@
2023
2053
  }
2024
2054
  ]
2025
2055
  },
2056
+ {
2057
+ "type": "file",
2058
+ "name": "tests/e2e/feature-contour.test.js",
2059
+ "hashes": [
2060
+ {
2061
+ "alg": "SHA-256",
2062
+ "content": "a6e7c00e86fae150b834234efe34c2837da63b6794117a1bffd5c0de13505fe1"
2063
+ }
2064
+ ]
2065
+ },
2026
2066
  {
2027
2067
  "type": "file",
2028
2068
  "name": "tests/e2e/lifecycle.test.js",
@@ -2043,6 +2083,86 @@
2043
2083
  }
2044
2084
  ]
2045
2085
  },
2086
+ {
2087
+ "type": "file",
2088
+ "name": "tests/fixtures/feature-contour/docs/features/demo-gate/01_specification.md",
2089
+ "hashes": [
2090
+ {
2091
+ "alg": "SHA-256",
2092
+ "content": "264708a769ad0d07d715420d82278461c5f1b831dd365eaaf6be051db18d47e8"
2093
+ }
2094
+ ]
2095
+ },
2096
+ {
2097
+ "type": "file",
2098
+ "name": "tests/fixtures/feature-contour/docs/features/demo-gate/02_pseudocode.md",
2099
+ "hashes": [
2100
+ {
2101
+ "alg": "SHA-256",
2102
+ "content": "c8e58b32bdc9df32ad95f4eca2fb8625fe8e39194ad01fbd2a1b4abee6e6d7d4"
2103
+ }
2104
+ ]
2105
+ },
2106
+ {
2107
+ "type": "file",
2108
+ "name": "tests/fixtures/feature-contour/docs/features/demo-gate/03_architecture.md",
2109
+ "hashes": [
2110
+ {
2111
+ "alg": "SHA-256",
2112
+ "content": "7bebb1ac66f026a0c95afd986b17af60155be99e17d874f260106515b229bd14"
2113
+ }
2114
+ ]
2115
+ },
2116
+ {
2117
+ "type": "file",
2118
+ "name": "tests/fixtures/feature-contour/docs/features/demo-gate/04_refinement.md",
2119
+ "hashes": [
2120
+ {
2121
+ "alg": "SHA-256",
2122
+ "content": "b7f285a4070bfb8dd47c14be11149412c3df4663b99762a2fc05be24f2fa1b1e"
2123
+ }
2124
+ ]
2125
+ },
2126
+ {
2127
+ "type": "file",
2128
+ "name": "tests/fixtures/feature-contour/docs/features/demo-gate/05_completion.md",
2129
+ "hashes": [
2130
+ {
2131
+ "alg": "SHA-256",
2132
+ "content": "62eeec7cd3101fa0159c03bd17d5100a86d8ba29a1189cdc06f8b190c01c1dd8"
2133
+ }
2134
+ ]
2135
+ },
2136
+ {
2137
+ "type": "file",
2138
+ "name": "tests/fixtures/feature-contour/docs/features/demo-gate/review-report.md",
2139
+ "hashes": [
2140
+ {
2141
+ "alg": "SHA-256",
2142
+ "content": "12f8fa21aedeb2f73bdd8ff16f0c28e053693ec11815616181c085a31058436c"
2143
+ }
2144
+ ]
2145
+ },
2146
+ {
2147
+ "type": "file",
2148
+ "name": "tests/fixtures/feature-contour/docs/features/demo-gate/validation-report.md",
2149
+ "hashes": [
2150
+ {
2151
+ "alg": "SHA-256",
2152
+ "content": "4e1244a874996b522d07b9f23478bbe2416ed34f7b8cedbae460ada07dfd448f"
2153
+ }
2154
+ ]
2155
+ },
2156
+ {
2157
+ "type": "file",
2158
+ "name": "tests/fixtures/feature-contour/tests/demo.test.js",
2159
+ "hashes": [
2160
+ {
2161
+ "alg": "SHA-256",
2162
+ "content": "812a837075839d3b86367149a60f6e859d7623775788e10adaef53e5b249b20d"
2163
+ }
2164
+ ]
2165
+ },
2046
2166
  {
2047
2167
  "type": "file",
2048
2168
  "name": "tests/fixtures/prep-traceability-fixture/docs/features/order-refund/01_specification.md",
@@ -2069,7 +2189,7 @@
2069
2189
  "hashes": [
2070
2190
  {
2071
2191
  "alg": "SHA-256",
2072
- "content": "5eac599ea36b23f93b4f12de64da7ff1daff2df148032cc6fbf146ef8c0f7429"
2192
+ "content": "31801798e099c5e43e60de29c3487a586fe6b906b2135ea1060861567d36fdfb"
2073
2193
  }
2074
2194
  ]
2075
2195
  },
@@ -2149,7 +2269,7 @@
2149
2269
  "hashes": [
2150
2270
  {
2151
2271
  "alg": "SHA-256",
2152
- "content": "771ee1bb495fe4a60b2fa58cc8009e52610c38145059532d3e158581fdb66d93"
2272
+ "content": "cce205634906882d7b8dc9c54dbbfc89abcafe59dd0ff5d0a9ef595e8e1c5356"
2153
2273
  }
2154
2274
  ]
2155
2275
  },
@@ -2163,6 +2283,16 @@
2163
2283
  }
2164
2284
  ]
2165
2285
  },
2286
+ {
2287
+ "type": "file",
2288
+ "name": "tests/unit/check-dangling-refs.test.js",
2289
+ "hashes": [
2290
+ {
2291
+ "alg": "SHA-256",
2292
+ "content": "8571d325047e0624d273b2058ca55732360ede48e433750a86aa79b3aba9b273"
2293
+ }
2294
+ ]
2295
+ },
2166
2296
  {
2167
2297
  "type": "file",
2168
2298
  "name": "tests/unit/check-docs-complete.test.js",
@@ -2293,6 +2423,16 @@
2293
2423
  }
2294
2424
  ]
2295
2425
  },
2426
+ {
2427
+ "type": "file",
2428
+ "name": "tests/unit/check-review-contract.test.js",
2429
+ "hashes": [
2430
+ {
2431
+ "alg": "SHA-256",
2432
+ "content": "75d59bc1b45abc2e1b5723560d79533e0a767e75fc50024c8a13f34540a55e59"
2433
+ }
2434
+ ]
2435
+ },
2296
2436
  {
2297
2437
  "type": "file",
2298
2438
  "name": "tests/unit/check-source-version.test.js",
@@ -2459,7 +2599,7 @@
2459
2599
  "hashes": [
2460
2600
  {
2461
2601
  "alg": "SHA-256",
2462
- "content": "b8e6513e09e774b83b2f05ac42d35c4849ef81b58e600e442dd22cf1071d02f3"
2602
+ "content": "5996879d9fdf6e194f40b32fff525bf9f257bbfb90719438e21850b15150ded1"
2463
2603
  }
2464
2604
  ]
2465
2605
  },
@@ -2469,7 +2609,7 @@
2469
2609
  "hashes": [
2470
2610
  {
2471
2611
  "alg": "SHA-256",
2472
- "content": "b8674f0ce01c888b9a0fa5da0ad707c171412c9ac8fc4dcd55d2d5a5ea989438"
2612
+ "content": "f42d66af4e430e5915b7e8daec9bb2c9a5df9f43960863443ec0076d99f6ad67"
2473
2613
  }
2474
2614
  ]
2475
2615
  },
@@ -2549,7 +2689,17 @@
2549
2689
  "hashes": [
2550
2690
  {
2551
2691
  "alg": "SHA-256",
2552
- "content": "7ffbcfdf638941511dc78c048d5056812e63af203cdf7c9bc757a22540cca14e"
2692
+ "content": "6c6a470d22d12ff46301c4ae61ba7a2563c4ff8a3a2d5b3a84c81c6b8c11b067"
2693
+ }
2694
+ ]
2695
+ },
2696
+ {
2697
+ "type": "file",
2698
+ "name": "tests/unit/optional-doc-idiom.test.js",
2699
+ "hashes": [
2700
+ {
2701
+ "alg": "SHA-256",
2702
+ "content": "f25338f5928e9d1cba82cdc88506d46256f2b567d7524f159512cb8e06b21f06"
2553
2703
  }
2554
2704
  ]
2555
2705
  },
@@ -2569,7 +2719,7 @@
2569
2719
  "hashes": [
2570
2720
  {
2571
2721
  "alg": "SHA-256",
2572
- "content": "e9f50ec67b8dde73d609c1df6bbeafa7eaf23f3ae62785362b57d09e3b7e6c70"
2722
+ "content": "a6e5416318e22107e728e8800716d4697ff4b8edf00f6fc16019754afe03bbb1"
2573
2723
  }
2574
2724
  ]
2575
2725
  },
@@ -2649,7 +2799,17 @@
2649
2799
  "hashes": [
2650
2800
  {
2651
2801
  "alg": "SHA-256",
2652
- "content": "e4fc7687dcf37d17bf2a059d3248c8c00526c104f6a0f6e104fa9ca6e00039ae"
2802
+ "content": "a601c25a1b1e697140d76216bcdabb80c86528f7bc81654581dd0c4dc43188d8"
2803
+ }
2804
+ ]
2805
+ },
2806
+ {
2807
+ "type": "file",
2808
+ "name": "tests/unit/traceability-completion-gate.test.js",
2809
+ "hashes": [
2810
+ {
2811
+ "alg": "SHA-256",
2812
+ "content": "082c141de9995c1d8bc51857b598d33e4a3f4947c325671283d3c6c70d224397"
2653
2813
  }
2654
2814
  ]
2655
2815
  },
@@ -2669,7 +2829,7 @@
2669
2829
  "hashes": [
2670
2830
  {
2671
2831
  "alg": "SHA-256",
2672
- "content": "abc54e0e00138ecc6d75e0cbc496cbd888cd97b1ed567b7d23557f0674b5c161"
2832
+ "content": "f27e812e6ea45e3cc5b21a531e0b3e95517ad7419431ed4fa8dd27628d33faff"
2673
2833
  }
2674
2834
  ]
2675
2835
  },
@@ -2692,6 +2852,16 @@
2692
2852
  "content": "d4f42a26b67b2fa1dfa8db9984c301a7d7e91657e5e2cdabb1bab307c766138d"
2693
2853
  }
2694
2854
  ]
2855
+ },
2856
+ {
2857
+ "type": "file",
2858
+ "name": "tests/unit/verdict-vocabulary.test.js",
2859
+ "hashes": [
2860
+ {
2861
+ "alg": "SHA-256",
2862
+ "content": "55982f29de66852d085b561195b495d348a649079f5799658de3b43b697d0532"
2863
+ }
2864
+ ]
2695
2865
  }
2696
2866
  ]
2697
2867
  }