@dzhechkov/p-replicator 1.13.2 → 1.13.4
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 +56 -24
- package/bin/cli.js +0 -0
- package/package.json +11 -10
- package/sbom.json +103 -23
- package/scripts/check-pipeline-gaps.sh +0 -0
- package/src/utils.js +1 -0
- package/templates/.claude/commands/replicate.md +9 -1
- package/templates/.claude/hooks/check-dangling-refs.cjs +89 -0
- package/templates/.claude/hooks/check-docs-complete.cjs +7 -0
- package/templates/.claude/hooks/check-external-deps.cjs +18 -3
- package/templates/.claude/hooks/statusline.cjs +1 -1
- package/templates/.claude/rules/cost-of-detection-ladder.md +37 -4
- package/templates/.claude/rules/docker-ports.md +28 -0
- package/templates/.claude/rules/feature-lifecycle.md +21 -0
- package/templates/.claude/rules/replicate-pipeline.md +3 -3
- package/templates/.claude/skills/brutal-honesty-review/resources/assessment-rubrics.md +12 -2
- package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/security-patterns-library.md +45 -0
- package/tests/dz-availability.js +34 -0
- package/tests/e2e/packed-insights-writer.test.js +5 -1
- package/tests/npm-cli-resolver.js +366 -0
- package/tests/npm-resolver-cases.json +128 -0
- package/tests/snapshot/baseline.json +13 -12
- package/tests/unit/capture-source-path.test.js +73 -24
- package/tests/unit/check-dangling-refs.test.js +91 -0
- package/tests/unit/check-external-deps.test.js +26 -2
- package/tests/unit/detection-ladder-contract.test.js +20 -10
- package/tests/unit/guard-honest-input-meta.test.js +49 -0
- package/tests/unit/honest-failure-rules.test.js +23 -1
- package/tests/unit/insights-writer.test.js +5 -1
- package/tests/unit/negative-conclusion-gate.test.js +3 -3
- package/tests/unit/npm-cli-resolver.test.js +314 -0
- package/tests/unit/optional-doc-idiom.test.js +83 -0
- package/tests/unit/quote-provenance.test.js +4 -0
- package/tests/unit/traceability-negative-fixture.test.js +19 -5
- package/tests/unit/verdict-vocabulary.test.js +72 -0
- package/LICENSE +0 -21
package/.dz-manifest.json
CHANGED
|
@@ -109,7 +109,7 @@
|
|
|
109
109
|
},
|
|
110
110
|
{
|
|
111
111
|
"path": "package.json",
|
|
112
|
-
"sha256": "
|
|
112
|
+
"sha256": "085a7e742af097d9df173fee66eecba5cc2b4f5482b600b2de51f742cc38c8f4"
|
|
113
113
|
},
|
|
114
114
|
{
|
|
115
115
|
"path": "scripts/check-pipeline-gaps.sh",
|
|
@@ -149,7 +149,7 @@
|
|
|
149
149
|
},
|
|
150
150
|
{
|
|
151
151
|
"path": "src/utils.js",
|
|
152
|
-
"sha256": "
|
|
152
|
+
"sha256": "90d7b12ca01b7ee2cfee6aac68ca11431fa1a507ddfbac155c5d9802d9d91a1e"
|
|
153
153
|
},
|
|
154
154
|
{
|
|
155
155
|
"path": "templates/.claude/agents/doc-validator.md",
|
|
@@ -201,7 +201,7 @@
|
|
|
201
201
|
},
|
|
202
202
|
{
|
|
203
203
|
"path": "templates/.claude/commands/replicate.md",
|
|
204
|
-
"sha256": "
|
|
204
|
+
"sha256": "f176d8ec871459b5a8d2111b8527331f34340d6e169da8cc7792953e3e334774"
|
|
205
205
|
},
|
|
206
206
|
{
|
|
207
207
|
"path": "templates/.claude/commands/run.md",
|
|
@@ -231,9 +231,13 @@
|
|
|
231
231
|
"path": "templates/.claude/hooks/check-canon.cjs",
|
|
232
232
|
"sha256": "99e6bff9b0078eb2ec23f7df98b7ac06c894f9018eba4a8c358e8f92e5ec7b06"
|
|
233
233
|
},
|
|
234
|
+
{
|
|
235
|
+
"path": "templates/.claude/hooks/check-dangling-refs.cjs",
|
|
236
|
+
"sha256": "8f012876b1af110a1093319d36a2f84208a15780dbb8abb5a43eb4aeb8f76865"
|
|
237
|
+
},
|
|
234
238
|
{
|
|
235
239
|
"path": "templates/.claude/hooks/check-docs-complete.cjs",
|
|
236
|
-
"sha256": "
|
|
240
|
+
"sha256": "0f516df0882c9da53d166a1b4e30ff1fc37bd5a2027c7e5fbdab6cba116ca828"
|
|
237
241
|
},
|
|
238
242
|
{
|
|
239
243
|
"path": "templates/.claude/hooks/check-embed-contract.cjs",
|
|
@@ -241,7 +245,7 @@
|
|
|
241
245
|
},
|
|
242
246
|
{
|
|
243
247
|
"path": "templates/.claude/hooks/check-external-deps.cjs",
|
|
244
|
-
"sha256": "
|
|
248
|
+
"sha256": "d671353b2e73e0790206cf963ee85f1ff6b97d56d975b9eb3ad59a14d7239e2a"
|
|
245
249
|
},
|
|
246
250
|
{
|
|
247
251
|
"path": "templates/.claude/hooks/check-file-ownership.cjs",
|
|
@@ -305,7 +309,7 @@
|
|
|
305
309
|
},
|
|
306
310
|
{
|
|
307
311
|
"path": "templates/.claude/hooks/statusline.cjs",
|
|
308
|
-
"sha256": "
|
|
312
|
+
"sha256": "bac385da01dd9f1548d0db48a2acdada5e89a7822a7f0ecfb61cb74ff4cda138"
|
|
309
313
|
},
|
|
310
314
|
{
|
|
311
315
|
"path": "templates/.claude/hooks/write-insight.cjs",
|
|
@@ -313,11 +317,11 @@
|
|
|
313
317
|
},
|
|
314
318
|
{
|
|
315
319
|
"path": "templates/.claude/rules/cost-of-detection-ladder.md",
|
|
316
|
-
"sha256": "
|
|
320
|
+
"sha256": "d2e7da3d56c8d4c6d1aa58e793fa0d5eecd65a5c01be38dfa0dc434273306838"
|
|
317
321
|
},
|
|
318
322
|
{
|
|
319
323
|
"path": "templates/.claude/rules/docker-ports.md",
|
|
320
|
-
"sha256": "
|
|
324
|
+
"sha256": "a9e5bb9a797ea4ef4c0671cee2cbec95f2557f8b9e1d20b84bbcee7ce4c21162"
|
|
321
325
|
},
|
|
322
326
|
{
|
|
323
327
|
"path": "templates/.claude/rules/embeddable-widget.md",
|
|
@@ -325,7 +329,7 @@
|
|
|
325
329
|
},
|
|
326
330
|
{
|
|
327
331
|
"path": "templates/.claude/rules/feature-lifecycle.md",
|
|
328
|
-
"sha256": "
|
|
332
|
+
"sha256": "a7d0adf6bc63b942d3dec339b3ae68972c3dedc0b48a91d27653309c7da7f11f"
|
|
329
333
|
},
|
|
330
334
|
{
|
|
331
335
|
"path": "templates/.claude/rules/git-workflow.md",
|
|
@@ -353,7 +357,7 @@
|
|
|
353
357
|
},
|
|
354
358
|
{
|
|
355
359
|
"path": "templates/.claude/rules/replicate-pipeline.md",
|
|
356
|
-
"sha256": "
|
|
360
|
+
"sha256": "9c4bbaa9ac628ec5d4e44d3ace6eec0b5bd602b5dccc5d36f123d73be448f159"
|
|
357
361
|
},
|
|
358
362
|
{
|
|
359
363
|
"path": "templates/.claude/rules/skill-interface-protocol.md",
|
|
@@ -381,7 +385,7 @@
|
|
|
381
385
|
},
|
|
382
386
|
{
|
|
383
387
|
"path": "templates/.claude/skills/brutal-honesty-review/resources/assessment-rubrics.md",
|
|
384
|
-
"sha256": "
|
|
388
|
+
"sha256": "b64894e1ddf8b9da7f2f146c737d35215e7281e3d8be10891d4a9b8aa2bd6d07"
|
|
385
389
|
},
|
|
386
390
|
{
|
|
387
391
|
"path": "templates/.claude/skills/brutal-honesty-review/resources/review-template.md",
|
|
@@ -465,7 +469,7 @@
|
|
|
465
469
|
},
|
|
466
470
|
{
|
|
467
471
|
"path": "templates/.claude/skills/cc-toolkit-generator-enhanced/references/security-patterns-library.md",
|
|
468
|
-
"sha256": "
|
|
472
|
+
"sha256": "4a7fae9ea1870c30b71c923fd5d3626a8926c5e960209fad709f4b8e0534fc80"
|
|
469
473
|
},
|
|
470
474
|
{
|
|
471
475
|
"path": "templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/automation-commands.md",
|
|
@@ -815,6 +819,10 @@
|
|
|
815
819
|
"path": "templates/.claude/skills/sparc-prd-mini/templates/prd.md",
|
|
816
820
|
"sha256": "7b4497bc76bb421fae7a07ecb46af01e021412180a394a5487a3c3c42dc004b6"
|
|
817
821
|
},
|
|
822
|
+
{
|
|
823
|
+
"path": "tests/dz-availability.js",
|
|
824
|
+
"sha256": "22203df26f3a90f015730c4b667b07b35e40730cb0e310b4e8087cbfab31b3ce"
|
|
825
|
+
},
|
|
818
826
|
{
|
|
819
827
|
"path": "tests/e2e/feature-contour.test.js",
|
|
820
828
|
"sha256": "a6e7c00e86fae150b834234efe34c2837da63b6794117a1bffd5c0de13505fe1"
|
|
@@ -825,7 +833,7 @@
|
|
|
825
833
|
},
|
|
826
834
|
{
|
|
827
835
|
"path": "tests/e2e/packed-insights-writer.test.js",
|
|
828
|
-
"sha256": "
|
|
836
|
+
"sha256": "b84eb4d3b79544b8c0dad51dd043ce01dd94931246fc153283f9ab6d1c50e8cc"
|
|
829
837
|
},
|
|
830
838
|
{
|
|
831
839
|
"path": "tests/fixtures/feature-contour/docs/features/demo-gate/01_specification.md",
|
|
@@ -867,9 +875,17 @@
|
|
|
867
875
|
"path": "tests/fixtures/prep-traceability-fixture/docs/features/order-refund/02_pseudocode.md",
|
|
868
876
|
"sha256": "848b3afb83e2d4151c1774900b33983b824e88c03e651085c4a9a1952ba78e64"
|
|
869
877
|
},
|
|
878
|
+
{
|
|
879
|
+
"path": "tests/npm-cli-resolver.js",
|
|
880
|
+
"sha256": "272e8aab19d4b0dbe3fa2bf3c0d544afd1c811f6a04cc445d480233e11c63840"
|
|
881
|
+
},
|
|
882
|
+
{
|
|
883
|
+
"path": "tests/npm-resolver-cases.json",
|
|
884
|
+
"sha256": "df67c832c5bde9f550d88fda48ed27600f4654aa7c3fdaadc79adbbbe6af141b"
|
|
885
|
+
},
|
|
870
886
|
{
|
|
871
887
|
"path": "tests/snapshot/baseline.json",
|
|
872
|
-
"sha256": "
|
|
888
|
+
"sha256": "0c73149a79dc3b4c051f49500ea2f3fb2dc172df127636fe95ab217e8a6f5291"
|
|
873
889
|
},
|
|
874
890
|
{
|
|
875
891
|
"path": "tests/snapshot/templates.test.js",
|
|
@@ -901,12 +917,16 @@
|
|
|
901
917
|
},
|
|
902
918
|
{
|
|
903
919
|
"path": "tests/unit/capture-source-path.test.js",
|
|
904
|
-
"sha256": "
|
|
920
|
+
"sha256": "cce205634906882d7b8dc9c54dbbfc89abcafe59dd0ff5d0a9ef595e8e1c5356"
|
|
905
921
|
},
|
|
906
922
|
{
|
|
907
923
|
"path": "tests/unit/check-canon.test.js",
|
|
908
924
|
"sha256": "df1aad467e0ed38471dad55547c1af6115ec9daaa5c40e9142e4ce67fedcb1bf"
|
|
909
925
|
},
|
|
926
|
+
{
|
|
927
|
+
"path": "tests/unit/check-dangling-refs.test.js",
|
|
928
|
+
"sha256": "8571d325047e0624d273b2058ca55732360ede48e433750a86aa79b3aba9b273"
|
|
929
|
+
},
|
|
910
930
|
{
|
|
911
931
|
"path": "tests/unit/check-docs-complete.test.js",
|
|
912
932
|
"sha256": "2c6f16a61f0876f637ac492d5fb2af1ea35ad00161fd1468446ea0d08cd97f4b"
|
|
@@ -917,7 +937,7 @@
|
|
|
917
937
|
},
|
|
918
938
|
{
|
|
919
939
|
"path": "tests/unit/check-external-deps.test.js",
|
|
920
|
-
"sha256": "
|
|
940
|
+
"sha256": "e5177f2726a8a13c2c0a56d5bf010d0ee0160f2324cf7b2293c4d44c40fdc4aa"
|
|
921
941
|
},
|
|
922
942
|
{
|
|
923
943
|
"path": "tests/unit/check-file-ownership.test.js",
|
|
@@ -985,7 +1005,7 @@
|
|
|
985
1005
|
},
|
|
986
1006
|
{
|
|
987
1007
|
"path": "tests/unit/detection-ladder-contract.test.js",
|
|
988
|
-
"sha256": "
|
|
1008
|
+
"sha256": "0612c27c88051c717da0e37b7f525b75195a85cf7a88f0da9d65d7ebbc3501b6"
|
|
989
1009
|
},
|
|
990
1010
|
{
|
|
991
1011
|
"path": "tests/unit/detection-ladder-registry.test.js",
|
|
@@ -1029,11 +1049,11 @@
|
|
|
1029
1049
|
},
|
|
1030
1050
|
{
|
|
1031
1051
|
"path": "tests/unit/guard-honest-input-meta.test.js",
|
|
1032
|
-
"sha256": "
|
|
1052
|
+
"sha256": "5996879d9fdf6e194f40b32fff525bf9f257bbfb90719438e21850b15150ded1"
|
|
1033
1053
|
},
|
|
1034
1054
|
{
|
|
1035
1055
|
"path": "tests/unit/honest-failure-rules.test.js",
|
|
1036
|
-
"sha256": "
|
|
1056
|
+
"sha256": "f42d66af4e430e5915b7e8daec9bb2c9a5df9f43960863443ec0076d99f6ad67"
|
|
1037
1057
|
},
|
|
1038
1058
|
{
|
|
1039
1059
|
"path": "tests/unit/hooks-project-anchored.test.js",
|
|
@@ -1053,7 +1073,7 @@
|
|
|
1053
1073
|
},
|
|
1054
1074
|
{
|
|
1055
1075
|
"path": "tests/unit/insights-writer.test.js",
|
|
1056
|
-
"sha256": "
|
|
1076
|
+
"sha256": "e17cd3de5fd6173ebf262b5c5d354ee764343a02a7a22f9f2f16511b220d067c"
|
|
1057
1077
|
},
|
|
1058
1078
|
{
|
|
1059
1079
|
"path": "tests/unit/look-phase-contract.test.js",
|
|
@@ -1065,7 +1085,15 @@
|
|
|
1065
1085
|
},
|
|
1066
1086
|
{
|
|
1067
1087
|
"path": "tests/unit/negative-conclusion-gate.test.js",
|
|
1068
|
-
"sha256": "
|
|
1088
|
+
"sha256": "6c6a470d22d12ff46301c4ae61ba7a2563c4ff8a3a2d5b3a84c81c6b8c11b067"
|
|
1089
|
+
},
|
|
1090
|
+
{
|
|
1091
|
+
"path": "tests/unit/npm-cli-resolver.test.js",
|
|
1092
|
+
"sha256": "9c5ee626d9b92c69e9720b1fca032a14592c2767f903b064be1b7f1f78772b76"
|
|
1093
|
+
},
|
|
1094
|
+
{
|
|
1095
|
+
"path": "tests/unit/optional-doc-idiom.test.js",
|
|
1096
|
+
"sha256": "f25338f5928e9d1cba82cdc88506d46256f2b567d7524f159512cb8e06b21f06"
|
|
1069
1097
|
},
|
|
1070
1098
|
{
|
|
1071
1099
|
"path": "tests/unit/pipeline-file-ownership.test.js",
|
|
@@ -1073,7 +1101,7 @@
|
|
|
1073
1101
|
},
|
|
1074
1102
|
{
|
|
1075
1103
|
"path": "tests/unit/quote-provenance.test.js",
|
|
1076
|
-
"sha256": "
|
|
1104
|
+
"sha256": "a6e5416318e22107e728e8800716d4697ff4b8edf00f6fc16019754afe03bbb1"
|
|
1077
1105
|
},
|
|
1078
1106
|
{
|
|
1079
1107
|
"path": "tests/unit/roadmap-one-schema.test.js",
|
|
@@ -1117,7 +1145,7 @@
|
|
|
1117
1145
|
},
|
|
1118
1146
|
{
|
|
1119
1147
|
"path": "tests/unit/traceability-negative-fixture.test.js",
|
|
1120
|
-
"sha256": "
|
|
1148
|
+
"sha256": "f27e812e6ea45e3cc5b21a531e0b3e95517ad7419431ed4fa8dd27628d33faff"
|
|
1121
1149
|
},
|
|
1122
1150
|
{
|
|
1123
1151
|
"path": "tests/unit/utils.test.js",
|
|
@@ -1126,8 +1154,12 @@
|
|
|
1126
1154
|
{
|
|
1127
1155
|
"path": "tests/unit/validation-gate-teeth.test.js",
|
|
1128
1156
|
"sha256": "d4f42a26b67b2fa1dfa8db9984c301a7d7e91657e5e2cdabb1bab307c766138d"
|
|
1157
|
+
},
|
|
1158
|
+
{
|
|
1159
|
+
"path": "tests/unit/verdict-vocabulary.test.js",
|
|
1160
|
+
"sha256": "55982f29de66852d085b561195b495d348a649079f5799658de3b43b697d0532"
|
|
1129
1161
|
}
|
|
1130
1162
|
]
|
|
1131
1163
|
},
|
|
1132
|
-
"signature": "
|
|
1164
|
+
"signature": "J0VkQYAOLDLKzrfxrzONRp5DSlPGs2h9TP0G0lT+gGzTu5pTBl/R6lknXbQkWjX4c0Nz7cygEl22nBvuhHHMCw=="
|
|
1133
1165
|
}
|
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.13.
|
|
3
|
+
"version": "1.13.4",
|
|
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": {
|
|
@@ -19,6 +19,15 @@
|
|
|
19
19
|
".dz-manifest.json",
|
|
20
20
|
"sbom.json"
|
|
21
21
|
],
|
|
22
|
+
"scripts": {
|
|
23
|
+
"test": "node --test tests/unit/honest-failure-rules.test.js tests/unit/generator-swarm-contract.test.js tests/unit/check-swarm-receipts.test.js tests/unit/check-embed-contract.test.js tests/unit/check-model-cost.test.js tests/unit/check-canon.test.js tests/unit/check-file-ownership.test.js tests/unit/check-source-version.test.js tests/unit/check-handoff-manifest.test.js tests/unit/check-external-deps.test.js tests/unit/check-metric-source.test.js tests/unit/negative-conclusion-gate.test.js tests/unit/check-webhook-contract.test.js tests/unit/check-job-contract.test.js tests/unit/detection-ladder-contract.test.js tests/unit/detection-ladder-registry.test.js tests/unit/npm-cli-resolver.test.js 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/insights-dz-delegation.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/doctor-insight-flow.test.js tests/unit/adr-decision-coverage.test.js tests/unit/growth-requirements-bridge.test.js tests/unit/check-growth-trace.test.js tests/unit/check-look-trace.test.js tests/unit/check-look-origin.test.js tests/unit/quote-provenance.test.js tests/unit/guard-honest-input-meta.test.js tests/unit/look-phase-contract.test.js tests/unit/growth-gate-conditional.test.js tests/unit/module-copy-identity.test.js tests/unit/growth-axes-and-compliance.test.js tests/unit/skill-paths-prebaked.test.js tests/unit/check-docs-complete.test.js tests/unit/check-review-contract.test.js tests/unit/absence-is-not-emptiness.test.js tests/unit/guard-forms.test.js tests/unit/generated-guard-templates.test.js tests/unit/shipped-suite-context.test.js tests/unit/assess-scripts.test.js tests/unit/insights-docs-tell-the-truth.test.js tests/unit/insights-writer.test.js tests/unit/check-pipeline-gaps.test.js tests/unit/traceability-machine-ids.test.js tests/unit/traceability-completion-gate.test.js tests/unit/traceability-negative-fixture.test.js tests/e2e/lifecycle.test.js tests/e2e/feature-contour.test.js tests/e2e/packed-insights-writer.test.js tests/snapshot/templates.test.js tests/unit/optional-doc-idiom.test.js tests/unit/verdict-vocabulary.test.js tests/unit/check-dangling-refs.test.js test/mutation-registry-freshness.test.js",
|
|
24
|
+
"test:unit": "node --test tests/unit/honest-failure-rules.test.js tests/unit/generator-swarm-contract.test.js tests/unit/check-swarm-receipts.test.js tests/unit/check-embed-contract.test.js tests/unit/check-model-cost.test.js tests/unit/check-canon.test.js tests/unit/check-file-ownership.test.js tests/unit/check-source-version.test.js tests/unit/check-handoff-manifest.test.js tests/unit/check-external-deps.test.js tests/unit/check-metric-source.test.js tests/unit/negative-conclusion-gate.test.js tests/unit/check-webhook-contract.test.js tests/unit/check-job-contract.test.js tests/unit/detection-ladder-contract.test.js tests/unit/detection-ladder-registry.test.js tests/unit/npm-cli-resolver.test.js 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/insights-dz-delegation.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/doctor-insight-flow.test.js tests/unit/adr-decision-coverage.test.js tests/unit/growth-requirements-bridge.test.js tests/unit/check-growth-trace.test.js tests/unit/check-look-trace.test.js tests/unit/check-look-origin.test.js tests/unit/quote-provenance.test.js tests/unit/guard-honest-input-meta.test.js tests/unit/look-phase-contract.test.js tests/unit/growth-gate-conditional.test.js tests/unit/module-copy-identity.test.js tests/unit/growth-axes-and-compliance.test.js tests/unit/skill-paths-prebaked.test.js tests/unit/check-docs-complete.test.js tests/unit/check-review-contract.test.js tests/unit/absence-is-not-emptiness.test.js tests/unit/guard-forms.test.js tests/unit/generated-guard-templates.test.js tests/unit/shipped-suite-context.test.js tests/unit/assess-scripts.test.js tests/unit/insights-docs-tell-the-truth.test.js tests/unit/insights-writer.test.js tests/unit/check-pipeline-gaps.test.js tests/unit/traceability-machine-ids.test.js tests/unit/traceability-completion-gate.test.js tests/unit/traceability-negative-fixture.test.js tests/unit/optional-doc-idiom.test.js tests/unit/verdict-vocabulary.test.js tests/unit/check-dangling-refs.test.js",
|
|
25
|
+
"test:e2e": "node --test tests/e2e/lifecycle.test.js tests/e2e/packed-insights-writer.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
|
+
"test:browser": "node --test tests/unit/capture-source-path.test.js"
|
|
30
|
+
},
|
|
22
31
|
"keywords": [
|
|
23
32
|
"claude",
|
|
24
33
|
"claude-code",
|
|
@@ -71,13 +80,5 @@
|
|
|
71
80
|
},
|
|
72
81
|
"publishConfig": {
|
|
73
82
|
"access": "public"
|
|
74
|
-
},
|
|
75
|
-
"scripts": {
|
|
76
|
-
"test": "node --test tests/unit/honest-failure-rules.test.js tests/unit/generator-swarm-contract.test.js tests/unit/check-swarm-receipts.test.js tests/unit/check-embed-contract.test.js tests/unit/check-model-cost.test.js tests/unit/check-canon.test.js tests/unit/check-file-ownership.test.js tests/unit/check-source-version.test.js tests/unit/check-handoff-manifest.test.js tests/unit/check-external-deps.test.js tests/unit/check-metric-source.test.js tests/unit/negative-conclusion-gate.test.js tests/unit/check-webhook-contract.test.js tests/unit/check-job-contract.test.js tests/unit/detection-ladder-contract.test.js tests/unit/detection-ladder-registry.test.js 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/insights-dz-delegation.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/doctor-insight-flow.test.js tests/unit/adr-decision-coverage.test.js tests/unit/growth-requirements-bridge.test.js tests/unit/check-growth-trace.test.js tests/unit/check-look-trace.test.js tests/unit/check-look-origin.test.js tests/unit/quote-provenance.test.js tests/unit/guard-honest-input-meta.test.js tests/unit/look-phase-contract.test.js tests/unit/capture-source-path.test.js tests/unit/growth-gate-conditional.test.js tests/unit/module-copy-identity.test.js tests/unit/growth-axes-and-compliance.test.js tests/unit/skill-paths-prebaked.test.js tests/unit/check-docs-complete.test.js tests/unit/check-review-contract.test.js tests/unit/absence-is-not-emptiness.test.js tests/unit/guard-forms.test.js tests/unit/generated-guard-templates.test.js tests/unit/shipped-suite-context.test.js tests/unit/assess-scripts.test.js tests/unit/insights-docs-tell-the-truth.test.js tests/unit/insights-writer.test.js tests/unit/check-pipeline-gaps.test.js tests/unit/traceability-machine-ids.test.js tests/unit/traceability-completion-gate.test.js tests/unit/traceability-negative-fixture.test.js tests/e2e/lifecycle.test.js tests/e2e/feature-contour.test.js tests/e2e/packed-insights-writer.test.js tests/snapshot/templates.test.js",
|
|
77
|
-
"test:unit": "node --test tests/unit/honest-failure-rules.test.js tests/unit/generator-swarm-contract.test.js tests/unit/check-swarm-receipts.test.js tests/unit/check-embed-contract.test.js tests/unit/check-model-cost.test.js tests/unit/check-canon.test.js tests/unit/check-file-ownership.test.js tests/unit/check-source-version.test.js tests/unit/check-handoff-manifest.test.js tests/unit/check-external-deps.test.js tests/unit/check-metric-source.test.js tests/unit/negative-conclusion-gate.test.js tests/unit/check-webhook-contract.test.js tests/unit/check-job-contract.test.js tests/unit/detection-ladder-contract.test.js tests/unit/detection-ladder-registry.test.js 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/insights-dz-delegation.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/doctor-insight-flow.test.js tests/unit/adr-decision-coverage.test.js tests/unit/growth-requirements-bridge.test.js tests/unit/check-growth-trace.test.js tests/unit/check-look-trace.test.js tests/unit/check-look-origin.test.js tests/unit/quote-provenance.test.js tests/unit/guard-honest-input-meta.test.js tests/unit/look-phase-contract.test.js tests/unit/capture-source-path.test.js tests/unit/growth-gate-conditional.test.js tests/unit/module-copy-identity.test.js tests/unit/growth-axes-and-compliance.test.js tests/unit/skill-paths-prebaked.test.js tests/unit/check-docs-complete.test.js tests/unit/check-review-contract.test.js tests/unit/absence-is-not-emptiness.test.js tests/unit/guard-forms.test.js tests/unit/generated-guard-templates.test.js tests/unit/shipped-suite-context.test.js tests/unit/assess-scripts.test.js tests/unit/insights-docs-tell-the-truth.test.js tests/unit/insights-writer.test.js tests/unit/check-pipeline-gaps.test.js tests/unit/traceability-machine-ids.test.js tests/unit/traceability-completion-gate.test.js tests/unit/traceability-negative-fixture.test.js",
|
|
78
|
-
"test:e2e": "node --test tests/e2e/lifecycle.test.js tests/e2e/packed-insights-writer.test.js",
|
|
79
|
-
"test:snapshot": "node --test tests/snapshot/templates.test.js",
|
|
80
|
-
"test:doctor": "node bin/cli.js doctor",
|
|
81
|
-
"snapshot:baseline": "node tests/snapshot/update-baseline.js"
|
|
82
83
|
}
|
|
83
|
-
}
|
|
84
|
+
}
|
package/sbom.json
CHANGED
|
@@ -279,7 +279,7 @@
|
|
|
279
279
|
},
|
|
280
280
|
{
|
|
281
281
|
"name": "dz:canonical-json-sha256-v2",
|
|
282
|
-
"value": "
|
|
282
|
+
"value": "085a7e742af097d9df173fee66eecba5cc2b4f5482b600b2de51f742cc38c8f4"
|
|
283
283
|
}
|
|
284
284
|
]
|
|
285
285
|
},
|
|
@@ -379,7 +379,7 @@
|
|
|
379
379
|
"hashes": [
|
|
380
380
|
{
|
|
381
381
|
"alg": "SHA-256",
|
|
382
|
-
"content": "
|
|
382
|
+
"content": "90d7b12ca01b7ee2cfee6aac68ca11431fa1a507ddfbac155c5d9802d9d91a1e"
|
|
383
383
|
}
|
|
384
384
|
]
|
|
385
385
|
},
|
|
@@ -509,7 +509,7 @@
|
|
|
509
509
|
"hashes": [
|
|
510
510
|
{
|
|
511
511
|
"alg": "SHA-256",
|
|
512
|
-
"content": "
|
|
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": "
|
|
602
|
+
"content": "0f516df0882c9da53d166a1b4e30ff1fc37bd5a2027c7e5fbdab6cba116ca828"
|
|
593
603
|
}
|
|
594
604
|
]
|
|
595
605
|
},
|
|
@@ -609,7 +619,7 @@
|
|
|
609
619
|
"hashes": [
|
|
610
620
|
{
|
|
611
621
|
"alg": "SHA-256",
|
|
612
|
-
"content": "
|
|
622
|
+
"content": "d671353b2e73e0790206cf963ee85f1ff6b97d56d975b9eb3ad59a14d7239e2a"
|
|
613
623
|
}
|
|
614
624
|
]
|
|
615
625
|
},
|
|
@@ -769,7 +779,7 @@
|
|
|
769
779
|
"hashes": [
|
|
770
780
|
{
|
|
771
781
|
"alg": "SHA-256",
|
|
772
|
-
"content": "
|
|
782
|
+
"content": "bac385da01dd9f1548d0db48a2acdada5e89a7822a7f0ecfb61cb74ff4cda138"
|
|
773
783
|
}
|
|
774
784
|
]
|
|
775
785
|
},
|
|
@@ -789,7 +799,7 @@
|
|
|
789
799
|
"hashes": [
|
|
790
800
|
{
|
|
791
801
|
"alg": "SHA-256",
|
|
792
|
-
"content": "
|
|
802
|
+
"content": "d2e7da3d56c8d4c6d1aa58e793fa0d5eecd65a5c01be38dfa0dc434273306838"
|
|
793
803
|
}
|
|
794
804
|
]
|
|
795
805
|
},
|
|
@@ -799,7 +809,7 @@
|
|
|
799
809
|
"hashes": [
|
|
800
810
|
{
|
|
801
811
|
"alg": "SHA-256",
|
|
802
|
-
"content": "
|
|
812
|
+
"content": "a9e5bb9a797ea4ef4c0671cee2cbec95f2557f8b9e1d20b84bbcee7ce4c21162"
|
|
803
813
|
}
|
|
804
814
|
]
|
|
805
815
|
},
|
|
@@ -819,7 +829,7 @@
|
|
|
819
829
|
"hashes": [
|
|
820
830
|
{
|
|
821
831
|
"alg": "SHA-256",
|
|
822
|
-
"content": "
|
|
832
|
+
"content": "a7d0adf6bc63b942d3dec339b3ae68972c3dedc0b48a91d27653309c7da7f11f"
|
|
823
833
|
}
|
|
824
834
|
]
|
|
825
835
|
},
|
|
@@ -889,7 +899,7 @@
|
|
|
889
899
|
"hashes": [
|
|
890
900
|
{
|
|
891
901
|
"alg": "SHA-256",
|
|
892
|
-
"content": "
|
|
902
|
+
"content": "9c4bbaa9ac628ec5d4e44d3ace6eec0b5bd602b5dccc5d36f123d73be448f159"
|
|
893
903
|
}
|
|
894
904
|
]
|
|
895
905
|
},
|
|
@@ -959,7 +969,7 @@
|
|
|
959
969
|
"hashes": [
|
|
960
970
|
{
|
|
961
971
|
"alg": "SHA-256",
|
|
962
|
-
"content": "
|
|
972
|
+
"content": "b64894e1ddf8b9da7f2f146c737d35215e7281e3d8be10891d4a9b8aa2bd6d07"
|
|
963
973
|
}
|
|
964
974
|
]
|
|
965
975
|
},
|
|
@@ -1169,7 +1179,7 @@
|
|
|
1169
1179
|
"hashes": [
|
|
1170
1180
|
{
|
|
1171
1181
|
"alg": "SHA-256",
|
|
1172
|
-
"content": "
|
|
1182
|
+
"content": "4a7fae9ea1870c30b71c923fd5d3626a8926c5e960209fad709f4b8e0534fc80"
|
|
1173
1183
|
}
|
|
1174
1184
|
]
|
|
1175
1185
|
},
|
|
@@ -2043,6 +2053,16 @@
|
|
|
2043
2053
|
}
|
|
2044
2054
|
]
|
|
2045
2055
|
},
|
|
2056
|
+
{
|
|
2057
|
+
"type": "file",
|
|
2058
|
+
"name": "tests/dz-availability.js",
|
|
2059
|
+
"hashes": [
|
|
2060
|
+
{
|
|
2061
|
+
"alg": "SHA-256",
|
|
2062
|
+
"content": "22203df26f3a90f015730c4b667b07b35e40730cb0e310b4e8087cbfab31b3ce"
|
|
2063
|
+
}
|
|
2064
|
+
]
|
|
2065
|
+
},
|
|
2046
2066
|
{
|
|
2047
2067
|
"type": "file",
|
|
2048
2068
|
"name": "tests/e2e/feature-contour.test.js",
|
|
@@ -2069,7 +2089,7 @@
|
|
|
2069
2089
|
"hashes": [
|
|
2070
2090
|
{
|
|
2071
2091
|
"alg": "SHA-256",
|
|
2072
|
-
"content": "
|
|
2092
|
+
"content": "b84eb4d3b79544b8c0dad51dd043ce01dd94931246fc153283f9ab6d1c50e8cc"
|
|
2073
2093
|
}
|
|
2074
2094
|
]
|
|
2075
2095
|
},
|
|
@@ -2173,13 +2193,33 @@
|
|
|
2173
2193
|
}
|
|
2174
2194
|
]
|
|
2175
2195
|
},
|
|
2196
|
+
{
|
|
2197
|
+
"type": "file",
|
|
2198
|
+
"name": "tests/npm-cli-resolver.js",
|
|
2199
|
+
"hashes": [
|
|
2200
|
+
{
|
|
2201
|
+
"alg": "SHA-256",
|
|
2202
|
+
"content": "272e8aab19d4b0dbe3fa2bf3c0d544afd1c811f6a04cc445d480233e11c63840"
|
|
2203
|
+
}
|
|
2204
|
+
]
|
|
2205
|
+
},
|
|
2206
|
+
{
|
|
2207
|
+
"type": "file",
|
|
2208
|
+
"name": "tests/npm-resolver-cases.json",
|
|
2209
|
+
"hashes": [
|
|
2210
|
+
{
|
|
2211
|
+
"alg": "SHA-256",
|
|
2212
|
+
"content": "df67c832c5bde9f550d88fda48ed27600f4654aa7c3fdaadc79adbbbe6af141b"
|
|
2213
|
+
}
|
|
2214
|
+
]
|
|
2215
|
+
},
|
|
2176
2216
|
{
|
|
2177
2217
|
"type": "file",
|
|
2178
2218
|
"name": "tests/snapshot/baseline.json",
|
|
2179
2219
|
"hashes": [
|
|
2180
2220
|
{
|
|
2181
2221
|
"alg": "SHA-256",
|
|
2182
|
-
"content": "
|
|
2222
|
+
"content": "0c73149a79dc3b4c051f49500ea2f3fb2dc172df127636fe95ab217e8a6f5291"
|
|
2183
2223
|
}
|
|
2184
2224
|
]
|
|
2185
2225
|
},
|
|
@@ -2259,7 +2299,7 @@
|
|
|
2259
2299
|
"hashes": [
|
|
2260
2300
|
{
|
|
2261
2301
|
"alg": "SHA-256",
|
|
2262
|
-
"content": "
|
|
2302
|
+
"content": "cce205634906882d7b8dc9c54dbbfc89abcafe59dd0ff5d0a9ef595e8e1c5356"
|
|
2263
2303
|
}
|
|
2264
2304
|
]
|
|
2265
2305
|
},
|
|
@@ -2273,6 +2313,16 @@
|
|
|
2273
2313
|
}
|
|
2274
2314
|
]
|
|
2275
2315
|
},
|
|
2316
|
+
{
|
|
2317
|
+
"type": "file",
|
|
2318
|
+
"name": "tests/unit/check-dangling-refs.test.js",
|
|
2319
|
+
"hashes": [
|
|
2320
|
+
{
|
|
2321
|
+
"alg": "SHA-256",
|
|
2322
|
+
"content": "8571d325047e0624d273b2058ca55732360ede48e433750a86aa79b3aba9b273"
|
|
2323
|
+
}
|
|
2324
|
+
]
|
|
2325
|
+
},
|
|
2276
2326
|
{
|
|
2277
2327
|
"type": "file",
|
|
2278
2328
|
"name": "tests/unit/check-docs-complete.test.js",
|
|
@@ -2299,7 +2349,7 @@
|
|
|
2299
2349
|
"hashes": [
|
|
2300
2350
|
{
|
|
2301
2351
|
"alg": "SHA-256",
|
|
2302
|
-
"content": "
|
|
2352
|
+
"content": "e5177f2726a8a13c2c0a56d5bf010d0ee0160f2324cf7b2293c4d44c40fdc4aa"
|
|
2303
2353
|
}
|
|
2304
2354
|
]
|
|
2305
2355
|
},
|
|
@@ -2469,7 +2519,7 @@
|
|
|
2469
2519
|
"hashes": [
|
|
2470
2520
|
{
|
|
2471
2521
|
"alg": "SHA-256",
|
|
2472
|
-
"content": "
|
|
2522
|
+
"content": "0612c27c88051c717da0e37b7f525b75195a85cf7a88f0da9d65d7ebbc3501b6"
|
|
2473
2523
|
}
|
|
2474
2524
|
]
|
|
2475
2525
|
},
|
|
@@ -2579,7 +2629,7 @@
|
|
|
2579
2629
|
"hashes": [
|
|
2580
2630
|
{
|
|
2581
2631
|
"alg": "SHA-256",
|
|
2582
|
-
"content": "
|
|
2632
|
+
"content": "5996879d9fdf6e194f40b32fff525bf9f257bbfb90719438e21850b15150ded1"
|
|
2583
2633
|
}
|
|
2584
2634
|
]
|
|
2585
2635
|
},
|
|
@@ -2589,7 +2639,7 @@
|
|
|
2589
2639
|
"hashes": [
|
|
2590
2640
|
{
|
|
2591
2641
|
"alg": "SHA-256",
|
|
2592
|
-
"content": "
|
|
2642
|
+
"content": "f42d66af4e430e5915b7e8daec9bb2c9a5df9f43960863443ec0076d99f6ad67"
|
|
2593
2643
|
}
|
|
2594
2644
|
]
|
|
2595
2645
|
},
|
|
@@ -2639,7 +2689,7 @@
|
|
|
2639
2689
|
"hashes": [
|
|
2640
2690
|
{
|
|
2641
2691
|
"alg": "SHA-256",
|
|
2642
|
-
"content": "
|
|
2692
|
+
"content": "e17cd3de5fd6173ebf262b5c5d354ee764343a02a7a22f9f2f16511b220d067c"
|
|
2643
2693
|
}
|
|
2644
2694
|
]
|
|
2645
2695
|
},
|
|
@@ -2669,7 +2719,27 @@
|
|
|
2669
2719
|
"hashes": [
|
|
2670
2720
|
{
|
|
2671
2721
|
"alg": "SHA-256",
|
|
2672
|
-
"content": "
|
|
2722
|
+
"content": "6c6a470d22d12ff46301c4ae61ba7a2563c4ff8a3a2d5b3a84c81c6b8c11b067"
|
|
2723
|
+
}
|
|
2724
|
+
]
|
|
2725
|
+
},
|
|
2726
|
+
{
|
|
2727
|
+
"type": "file",
|
|
2728
|
+
"name": "tests/unit/npm-cli-resolver.test.js",
|
|
2729
|
+
"hashes": [
|
|
2730
|
+
{
|
|
2731
|
+
"alg": "SHA-256",
|
|
2732
|
+
"content": "9c5ee626d9b92c69e9720b1fca032a14592c2767f903b064be1b7f1f78772b76"
|
|
2733
|
+
}
|
|
2734
|
+
]
|
|
2735
|
+
},
|
|
2736
|
+
{
|
|
2737
|
+
"type": "file",
|
|
2738
|
+
"name": "tests/unit/optional-doc-idiom.test.js",
|
|
2739
|
+
"hashes": [
|
|
2740
|
+
{
|
|
2741
|
+
"alg": "SHA-256",
|
|
2742
|
+
"content": "f25338f5928e9d1cba82cdc88506d46256f2b567d7524f159512cb8e06b21f06"
|
|
2673
2743
|
}
|
|
2674
2744
|
]
|
|
2675
2745
|
},
|
|
@@ -2689,7 +2759,7 @@
|
|
|
2689
2759
|
"hashes": [
|
|
2690
2760
|
{
|
|
2691
2761
|
"alg": "SHA-256",
|
|
2692
|
-
"content": "
|
|
2762
|
+
"content": "a6e5416318e22107e728e8800716d4697ff4b8edf00f6fc16019754afe03bbb1"
|
|
2693
2763
|
}
|
|
2694
2764
|
]
|
|
2695
2765
|
},
|
|
@@ -2799,7 +2869,7 @@
|
|
|
2799
2869
|
"hashes": [
|
|
2800
2870
|
{
|
|
2801
2871
|
"alg": "SHA-256",
|
|
2802
|
-
"content": "
|
|
2872
|
+
"content": "f27e812e6ea45e3cc5b21a531e0b3e95517ad7419431ed4fa8dd27628d33faff"
|
|
2803
2873
|
}
|
|
2804
2874
|
]
|
|
2805
2875
|
},
|
|
@@ -2822,6 +2892,16 @@
|
|
|
2822
2892
|
"content": "d4f42a26b67b2fa1dfa8db9984c301a7d7e91657e5e2cdabb1bab307c766138d"
|
|
2823
2893
|
}
|
|
2824
2894
|
]
|
|
2895
|
+
},
|
|
2896
|
+
{
|
|
2897
|
+
"type": "file",
|
|
2898
|
+
"name": "tests/unit/verdict-vocabulary.test.js",
|
|
2899
|
+
"hashes": [
|
|
2900
|
+
{
|
|
2901
|
+
"alg": "SHA-256",
|
|
2902
|
+
"content": "55982f29de66852d085b561195b495d348a649079f5799658de3b43b697d0532"
|
|
2903
|
+
}
|
|
2904
|
+
]
|
|
2825
2905
|
}
|
|
2826
2906
|
]
|
|
2827
2907
|
}
|
|
File without changes
|
package/src/utils.js
CHANGED
|
@@ -354,6 +354,7 @@ const COMPONENTS = {
|
|
|
354
354
|
'write-insight': 'Validate and append one harvest insight to the project Markdown carrier',
|
|
355
355
|
'check-ports': 'Enforce docker-ports Правило №0 against a real compose (invoke deliberately; exits 0/1/2)',
|
|
356
356
|
'check-growth-trace': 'Did the M5 growth seed reach docs/Specification.md (invoke deliberately; exits 0/1/2)',
|
|
357
|
+
'check-dangling-refs': 'Does shipped prose reference a file that does not exist? (invoke deliberately; exits 0 within baseline, 1 above it, 2 when .claude is absent)',
|
|
357
358
|
'check-look-trace': 'Did the Phase-0.5 source-look seed reach docs/Specification.md (invoke deliberately; exits 0/1/2)',
|
|
358
359
|
'check-look-origin': 'Did a third-party-analysis HYPOTHESIS row reach Specification.md without dated live confirmation (invoke deliberately; exits 0/1/2)',
|
|
359
360
|
'check-review-contract': 'Does review-report.md answer every AC id, disclose the reviewer family and name the spec revision it judged (exits 0/1/2)',
|
|
@@ -343,7 +343,15 @@ Security Pattern: # If external integrations
|
|
|
343
343
|
server_side: "No key storage on backend"
|
|
344
344
|
```
|
|
345
345
|
|
|
346
|
-
**Mode:** MANUAL
|
|
346
|
+
**Mode:** MANUAL — checkpoint at each phase inside `sparc-prd-mini`.
|
|
347
|
+
|
|
348
|
+
> **Решение владельца 2026-09-03: MANUAL остаётся.** Ночью 2026-09-03 строка была изменена на AUTO
|
|
349
|
+
> как устранение противоречия: навык `sparc-prd-mini` объявляет AUTO своим режимом по умолчанию
|
|
350
|
+
> (`SKILL.md:35`), а эта команда навязывала MANUAL. Противоречие реально, но владелец разрешил его
|
|
351
|
+
> в другую сторону: остановки на фазах — не накладной расход, а точки, где он может отказаться от
|
|
352
|
+
> рамки до того, как она станет кодом. ИЗМЕРЕНО, чтобы цена решения была известна: остановок до
|
|
353
|
+
> первой строки кода тринадцать — пять в этом файле и восемь внутри навыка. Их сохраняют
|
|
354
|
+
> сознательно.
|
|
347
355
|
|
|
348
356
|
**Output location:** `docs/` directory (NOT `/output/` — write directly into the project)
|
|
349
357
|
|