forgecraft-mcp 1.4.0 → 1.7.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 (418) hide show
  1. package/LICENSE +67 -0
  2. package/README.md +527 -525
  3. package/dist/analyzers/anchors/anchor-loader.d.ts +47 -0
  4. package/dist/analyzers/anchors/anchor-loader.d.ts.map +1 -0
  5. package/dist/analyzers/anchors/anchor-loader.js +113 -0
  6. package/dist/analyzers/anchors/anchor-loader.js.map +1 -0
  7. package/dist/analyzers/anti-pattern.d.ts.map +1 -1
  8. package/dist/analyzers/anti-pattern.js +38 -26
  9. package/dist/analyzers/anti-pattern.js.map +1 -1
  10. package/dist/analyzers/completeness-helpers.d.ts +5 -0
  11. package/dist/analyzers/completeness-helpers.d.ts.map +1 -1
  12. package/dist/analyzers/completeness-helpers.js +17 -0
  13. package/dist/analyzers/completeness-helpers.js.map +1 -1
  14. package/dist/analyzers/completeness.d.ts.map +1 -1
  15. package/dist/analyzers/completeness.js +4 -4
  16. package/dist/analyzers/completeness.js.map +1 -1
  17. package/dist/analyzers/gs-scorer.d.ts +3 -1
  18. package/dist/analyzers/gs-scorer.d.ts.map +1 -1
  19. package/dist/analyzers/gs-scorer.js +5 -2
  20. package/dist/analyzers/gs-scorer.js.map +1 -1
  21. package/dist/analyzers/package-json.d.ts.map +1 -1
  22. package/dist/analyzers/package-json.js +194 -34
  23. package/dist/analyzers/package-json.js.map +1 -1
  24. package/dist/analyzers/scorers/composable-scorer.d.ts +4 -2
  25. package/dist/analyzers/scorers/composable-scorer.d.ts.map +1 -1
  26. package/dist/analyzers/scorers/composable-scorer.js +50 -2
  27. package/dist/analyzers/scorers/composable-scorer.js.map +1 -1
  28. package/dist/analyzers/scorers/executable-scorer.d.ts +3 -2
  29. package/dist/analyzers/scorers/executable-scorer.d.ts.map +1 -1
  30. package/dist/analyzers/scorers/executable-scorer.js +64 -4
  31. package/dist/analyzers/scorers/executable-scorer.js.map +1 -1
  32. package/dist/analyzers/scorers/scorer-utils.d.ts +5 -3
  33. package/dist/analyzers/scorers/scorer-utils.d.ts.map +1 -1
  34. package/dist/analyzers/scorers/scorer-utils.js +34 -9
  35. package/dist/analyzers/scorers/scorer-utils.js.map +1 -1
  36. package/dist/analyzers/scorers/self-describing-scorer.d.ts +7 -4
  37. package/dist/analyzers/scorers/self-describing-scorer.d.ts.map +1 -1
  38. package/dist/analyzers/scorers/self-describing-scorer.js +17 -18
  39. package/dist/analyzers/scorers/self-describing-scorer.js.map +1 -1
  40. package/dist/cli/help.js +51 -51
  41. package/dist/disciplines/catalog.d.ts +16 -0
  42. package/dist/disciplines/catalog.d.ts.map +1 -0
  43. package/dist/disciplines/catalog.js +196 -0
  44. package/dist/disciplines/catalog.js.map +1 -0
  45. package/dist/disciplines/runner.d.ts +13 -0
  46. package/dist/disciplines/runner.d.ts.map +1 -0
  47. package/dist/disciplines/runner.js +35 -0
  48. package/dist/disciplines/runner.js.map +1 -0
  49. package/dist/registry/composer.d.ts.map +1 -1
  50. package/dist/registry/composer.js +9 -4
  51. package/dist/registry/composer.js.map +1 -1
  52. package/dist/registry/loader-tag.d.ts.map +1 -1
  53. package/dist/registry/loader-tag.js +1 -0
  54. package/dist/registry/loader-tag.js.map +1 -1
  55. package/dist/registry/remote-gates.js +1 -1
  56. package/dist/registry/remote-gates.js.map +1 -1
  57. package/dist/registry/renderer-skeletons.js +92 -92
  58. package/dist/registry/sentinel-renderer.js +299 -20
  59. package/dist/registry/sentinel-renderer.js.map +1 -1
  60. package/dist/sentinel/detect.d.ts +41 -0
  61. package/dist/sentinel/detect.d.ts.map +1 -0
  62. package/dist/sentinel/detect.js +122 -0
  63. package/dist/sentinel/detect.js.map +1 -0
  64. package/dist/sentinel/write.d.ts +54 -0
  65. package/dist/sentinel/write.d.ts.map +1 -0
  66. package/dist/sentinel/write.js +75 -0
  67. package/dist/sentinel/write.js.map +1 -0
  68. package/dist/shared/cnt-health.d.ts +16 -0
  69. package/dist/shared/cnt-health.d.ts.map +1 -1
  70. package/dist/shared/cnt-health.js +55 -8
  71. package/dist/shared/cnt-health.js.map +1 -1
  72. package/dist/shared/config.d.ts +14 -0
  73. package/dist/shared/config.d.ts.map +1 -1
  74. package/dist/shared/config.js +45 -0
  75. package/dist/shared/config.js.map +1 -1
  76. package/dist/shared/gs-score-logger.js +6 -6
  77. package/dist/shared/hook-installer.d.ts +58 -0
  78. package/dist/shared/hook-installer.d.ts.map +1 -0
  79. package/dist/shared/hook-installer.js +316 -0
  80. package/dist/shared/hook-installer.js.map +1 -0
  81. package/dist/shared/project-gates-helpers.d.ts +9 -0
  82. package/dist/shared/project-gates-helpers.d.ts.map +1 -1
  83. package/dist/shared/project-gates-helpers.js +35 -0
  84. package/dist/shared/project-gates-helpers.js.map +1 -1
  85. package/dist/shared/types/config.d.ts +7 -1
  86. package/dist/shared/types/config.d.ts.map +1 -1
  87. package/dist/shared/types/gates.d.ts +34 -0
  88. package/dist/shared/types/gates.d.ts.map +1 -1
  89. package/dist/shared/types/project.d.ts +68 -2
  90. package/dist/shared/types/project.d.ts.map +1 -1
  91. package/dist/shared/types/project.js +1 -0
  92. package/dist/shared/types/project.js.map +1 -1
  93. package/dist/shared/types/templates.d.ts +8 -1
  94. package/dist/shared/types/templates.d.ts.map +1 -1
  95. package/dist/shared/types/verify.d.ts +51 -1
  96. package/dist/shared/types/verify.d.ts.map +1 -1
  97. package/dist/shared/types/verify.js +37 -1
  98. package/dist/shared/types/verify.js.map +1 -1
  99. package/dist/tools/add-hook.d.ts.map +1 -1
  100. package/dist/tools/add-hook.js +8 -1
  101. package/dist/tools/add-hook.js.map +1 -1
  102. package/dist/tools/add-module.js +123 -123
  103. package/dist/tools/advice-registry.d.ts.map +1 -1
  104. package/dist/tools/advice-registry.js +108 -18
  105. package/dist/tools/advice-registry.js.map +1 -1
  106. package/dist/tools/advise-session-advisor.d.ts +16 -0
  107. package/dist/tools/advise-session-advisor.d.ts.map +1 -0
  108. package/dist/tools/advise-session-advisor.js +89 -0
  109. package/dist/tools/advise-session-advisor.js.map +1 -0
  110. package/dist/tools/advise-session-signals.d.ts +21 -0
  111. package/dist/tools/advise-session-signals.d.ts.map +1 -0
  112. package/dist/tools/advise-session-signals.js +113 -0
  113. package/dist/tools/advise-session-signals.js.map +1 -0
  114. package/dist/tools/advise-session.d.ts +22 -0
  115. package/dist/tools/advise-session.d.ts.map +1 -0
  116. package/dist/tools/advise-session.js +31 -0
  117. package/dist/tools/advise-session.js.map +1 -0
  118. package/dist/tools/analyze-harness.d.ts +18 -0
  119. package/dist/tools/analyze-harness.d.ts.map +1 -0
  120. package/dist/tools/analyze-harness.js +298 -0
  121. package/dist/tools/analyze-harness.js.map +1 -0
  122. package/dist/tools/audit.d.ts.map +1 -1
  123. package/dist/tools/audit.js +19 -0
  124. package/dist/tools/audit.js.map +1 -1
  125. package/dist/tools/change-request.d.ts +53 -0
  126. package/dist/tools/change-request.d.ts.map +1 -0
  127. package/dist/tools/change-request.js +395 -0
  128. package/dist/tools/change-request.js.map +1 -0
  129. package/dist/tools/check-cascade-contracts.d.ts +13 -0
  130. package/dist/tools/check-cascade-contracts.d.ts.map +1 -1
  131. package/dist/tools/check-cascade-contracts.js +73 -2
  132. package/dist/tools/check-cascade-contracts.js.map +1 -1
  133. package/dist/tools/check-cascade-report.js +64 -64
  134. package/dist/tools/check-cascade-steps.d.ts +3 -0
  135. package/dist/tools/check-cascade-steps.d.ts.map +1 -1
  136. package/dist/tools/check-cascade-steps.js +104 -15
  137. package/dist/tools/check-cascade-steps.js.map +1 -1
  138. package/dist/tools/check-cascade.d.ts +4 -3
  139. package/dist/tools/check-cascade.d.ts.map +1 -1
  140. package/dist/tools/check-cascade.js +30 -12
  141. package/dist/tools/check-cascade.js.map +1 -1
  142. package/dist/tools/check-derivation-chain.d.ts +37 -0
  143. package/dist/tools/check-derivation-chain.d.ts.map +1 -0
  144. package/dist/tools/check-derivation-chain.js +418 -0
  145. package/dist/tools/check-derivation-chain.js.map +1 -0
  146. package/dist/tools/check-spec-consistency.d.ts +25 -0
  147. package/dist/tools/check-spec-consistency.d.ts.map +1 -0
  148. package/dist/tools/check-spec-consistency.js +339 -0
  149. package/dist/tools/check-spec-consistency.js.map +1 -0
  150. package/dist/tools/check-t4.d.ts +54 -0
  151. package/dist/tools/check-t4.d.ts.map +1 -0
  152. package/dist/tools/check-t4.js +305 -0
  153. package/dist/tools/check-t4.js.map +1 -0
  154. package/dist/tools/close-cycle.d.ts +11 -0
  155. package/dist/tools/close-cycle.d.ts.map +1 -1
  156. package/dist/tools/close-cycle.js +364 -4
  157. package/dist/tools/close-cycle.js.map +1 -1
  158. package/dist/tools/cnt-add-routing.d.ts +31 -0
  159. package/dist/tools/cnt-add-routing.d.ts.map +1 -0
  160. package/dist/tools/cnt-add-routing.js +99 -0
  161. package/dist/tools/cnt-add-routing.js.map +1 -0
  162. package/dist/tools/configure-mcp.d.ts.map +1 -1
  163. package/dist/tools/configure-mcp.js +52 -2
  164. package/dist/tools/configure-mcp.js.map +1 -1
  165. package/dist/tools/consolidate-status.d.ts +31 -0
  166. package/dist/tools/consolidate-status.d.ts.map +1 -1
  167. package/dist/tools/consolidate-status.js +105 -0
  168. package/dist/tools/consolidate-status.js.map +1 -1
  169. package/dist/tools/executable-gates.d.ts +52 -0
  170. package/dist/tools/executable-gates.d.ts.map +1 -0
  171. package/dist/tools/executable-gates.js +333 -0
  172. package/dist/tools/executable-gates.js.map +1 -0
  173. package/dist/tools/extract-adrs-from-spec.d.ts +33 -0
  174. package/dist/tools/extract-adrs-from-spec.d.ts.map +1 -0
  175. package/dist/tools/extract-adrs-from-spec.js +410 -0
  176. package/dist/tools/extract-adrs-from-spec.js.map +1 -0
  177. package/dist/tools/extract-adrs-history.d.ts +47 -0
  178. package/dist/tools/extract-adrs-history.d.ts.map +1 -0
  179. package/dist/tools/extract-adrs-history.js +265 -0
  180. package/dist/tools/extract-adrs-history.js.map +1 -0
  181. package/dist/tools/forgecraft-dispatch-extended.d.ts.map +1 -1
  182. package/dist/tools/forgecraft-dispatch-extended.js +137 -0
  183. package/dist/tools/forgecraft-dispatch-extended.js.map +1 -1
  184. package/dist/tools/forgecraft-dispatch.d.ts.map +1 -1
  185. package/dist/tools/forgecraft-dispatch.js +16 -0
  186. package/dist/tools/forgecraft-dispatch.js.map +1 -1
  187. package/dist/tools/forgecraft-schema-params.d.ts +174 -2
  188. package/dist/tools/forgecraft-schema-params.d.ts.map +1 -1
  189. package/dist/tools/forgecraft-schema-params.js +197 -0
  190. package/dist/tools/forgecraft-schema-params.js.map +1 -1
  191. package/dist/tools/forgecraft-schema.d.ts +179 -7
  192. package/dist/tools/forgecraft-schema.d.ts.map +1 -1
  193. package/dist/tools/forgecraft-schema.js +37 -0
  194. package/dist/tools/forgecraft-schema.js.map +1 -1
  195. package/dist/tools/generate-adr.js +6 -6
  196. package/dist/tools/generate-adr.js.map +1 -1
  197. package/dist/tools/generate-decision.d.ts +77 -0
  198. package/dist/tools/generate-decision.d.ts.map +1 -0
  199. package/dist/tools/generate-decision.js +162 -0
  200. package/dist/tools/generate-decision.js.map +1 -0
  201. package/dist/tools/generate-env-probe.d.ts +49 -0
  202. package/dist/tools/generate-env-probe.d.ts.map +1 -0
  203. package/dist/tools/generate-env-probe.js +365 -0
  204. package/dist/tools/generate-env-probe.js.map +1 -0
  205. package/dist/tools/generate-harness.d.ts +53 -0
  206. package/dist/tools/generate-harness.d.ts.map +1 -0
  207. package/dist/tools/generate-harness.js +395 -0
  208. package/dist/tools/generate-harness.js.map +1 -0
  209. package/dist/tools/generate-roadmap.d.ts +1 -1
  210. package/dist/tools/generate-roadmap.d.ts.map +1 -1
  211. package/dist/tools/generate-roadmap.js +38 -4
  212. package/dist/tools/generate-roadmap.js.map +1 -1
  213. package/dist/tools/generate-session-prompt.d.ts +3 -3
  214. package/dist/tools/generate-session-prompt.d.ts.map +1 -1
  215. package/dist/tools/generate-session-prompt.js +9 -1
  216. package/dist/tools/generate-session-prompt.js.map +1 -1
  217. package/dist/tools/generate-slo-probe.d.ts +53 -0
  218. package/dist/tools/generate-slo-probe.d.ts.map +1 -0
  219. package/dist/tools/generate-slo-probe.js +366 -0
  220. package/dist/tools/generate-slo-probe.js.map +1 -0
  221. package/dist/tools/layer-status-gates.d.ts +24 -0
  222. package/dist/tools/layer-status-gates.d.ts.map +1 -0
  223. package/dist/tools/layer-status-gates.js +151 -0
  224. package/dist/tools/layer-status-gates.js.map +1 -0
  225. package/dist/tools/layer-status.d.ts +126 -0
  226. package/dist/tools/layer-status.d.ts.map +1 -0
  227. package/dist/tools/layer-status.js +647 -0
  228. package/dist/tools/layer-status.js.map +1 -0
  229. package/dist/tools/list.d.ts.map +1 -1
  230. package/dist/tools/list.js +9 -5
  231. package/dist/tools/list.js.map +1 -1
  232. package/dist/tools/postcondition-coverage.d.ts +57 -0
  233. package/dist/tools/postcondition-coverage.d.ts.map +1 -0
  234. package/dist/tools/postcondition-coverage.js +256 -0
  235. package/dist/tools/postcondition-coverage.js.map +1 -0
  236. package/dist/tools/probe-runners.d.ts +21 -0
  237. package/dist/tools/probe-runners.d.ts.map +1 -0
  238. package/dist/tools/probe-runners.js +246 -0
  239. package/dist/tools/probe-runners.js.map +1 -0
  240. package/dist/tools/probe-templates.d.ts +27 -0
  241. package/dist/tools/probe-templates.d.ts.map +1 -0
  242. package/dist/tools/probe-templates.js +279 -0
  243. package/dist/tools/probe-templates.js.map +1 -0
  244. package/dist/tools/propose-session.d.ts +28 -0
  245. package/dist/tools/propose-session.d.ts.map +1 -0
  246. package/dist/tools/propose-session.js +333 -0
  247. package/dist/tools/propose-session.js.map +1 -0
  248. package/dist/tools/refresh-output.js +14 -14
  249. package/dist/tools/review-stubs.d.ts +29 -0
  250. package/dist/tools/review-stubs.d.ts.map +1 -0
  251. package/dist/tools/review-stubs.js +173 -0
  252. package/dist/tools/review-stubs.js.map +1 -0
  253. package/dist/tools/roadmap-builder.d.ts +49 -1
  254. package/dist/tools/roadmap-builder.d.ts.map +1 -1
  255. package/dist/tools/roadmap-builder.js +210 -5
  256. package/dist/tools/roadmap-builder.js.map +1 -1
  257. package/dist/tools/run-env-probe.d.ts +57 -0
  258. package/dist/tools/run-env-probe.d.ts.map +1 -0
  259. package/dist/tools/run-env-probe.js +270 -0
  260. package/dist/tools/run-env-probe.js.map +1 -0
  261. package/dist/tools/run-harness.d.ts +52 -0
  262. package/dist/tools/run-harness.d.ts.map +1 -0
  263. package/dist/tools/run-harness.js +279 -0
  264. package/dist/tools/run-harness.js.map +1 -0
  265. package/dist/tools/run-slo-probe.d.ts +50 -0
  266. package/dist/tools/run-slo-probe.d.ts.map +1 -0
  267. package/dist/tools/run-slo-probe.js +281 -0
  268. package/dist/tools/run-slo-probe.js.map +1 -0
  269. package/dist/tools/scaffold-spec-stubs.js +115 -115
  270. package/dist/tools/scaffold-templates.js +62 -62
  271. package/dist/tools/scaffold-writer.d.ts.map +1 -1
  272. package/dist/tools/scaffold-writer.js +9 -0
  273. package/dist/tools/scaffold-writer.js.map +1 -1
  274. package/dist/tools/score-rubric.d.ts +19 -0
  275. package/dist/tools/score-rubric.d.ts.map +1 -0
  276. package/dist/tools/score-rubric.js +411 -0
  277. package/dist/tools/score-rubric.js.map +1 -0
  278. package/dist/tools/session-prompt-builders.d.ts +20 -0
  279. package/dist/tools/session-prompt-builders.d.ts.map +1 -1
  280. package/dist/tools/session-prompt-builders.js +78 -5
  281. package/dist/tools/session-prompt-builders.js.map +1 -1
  282. package/dist/tools/session-prompt-sections.d.ts +4 -2
  283. package/dist/tools/session-prompt-sections.d.ts.map +1 -1
  284. package/dist/tools/session-prompt-sections.js +22 -10
  285. package/dist/tools/session-prompt-sections.js.map +1 -1
  286. package/dist/tools/setup-artifact-writers.d.ts +69 -4
  287. package/dist/tools/setup-artifact-writers.d.ts.map +1 -1
  288. package/dist/tools/setup-artifact-writers.js +681 -5
  289. package/dist/tools/setup-artifact-writers.js.map +1 -1
  290. package/dist/tools/setup-cnt-builders.d.ts.map +1 -1
  291. package/dist/tools/setup-cnt-builders.js +162 -34
  292. package/dist/tools/setup-cnt-builders.js.map +1 -1
  293. package/dist/tools/setup-monitoring.d.ts +41 -0
  294. package/dist/tools/setup-monitoring.d.ts.map +1 -0
  295. package/dist/tools/setup-monitoring.js +364 -0
  296. package/dist/tools/setup-monitoring.js.map +1 -0
  297. package/dist/tools/setup-phase1.d.ts.map +1 -1
  298. package/dist/tools/setup-phase1.js +14 -1
  299. package/dist/tools/setup-phase1.js.map +1 -1
  300. package/dist/tools/setup-phase2.d.ts +14 -0
  301. package/dist/tools/setup-phase2.d.ts.map +1 -1
  302. package/dist/tools/setup-phase2.js +130 -3
  303. package/dist/tools/setup-phase2.js.map +1 -1
  304. package/dist/tools/setup-project.d.ts +8 -0
  305. package/dist/tools/setup-project.d.ts.map +1 -1
  306. package/dist/tools/setup-project.js +52 -2
  307. package/dist/tools/setup-project.js.map +1 -1
  308. package/dist/tools/spec-parser-tags.d.ts.map +1 -1
  309. package/dist/tools/spec-parser-tags.js +1 -0
  310. package/dist/tools/spec-parser-tags.js.map +1 -1
  311. package/dist/tools/verify-formatter.d.ts.map +1 -1
  312. package/dist/tools/verify-formatter.js +15 -1
  313. package/dist/tools/verify-formatter.js.map +1 -1
  314. package/dist/tools/verify.d.ts.map +1 -1
  315. package/dist/tools/verify.js +3 -0
  316. package/dist/tools/verify.js.map +1 -1
  317. package/package.json +98 -89
  318. package/templates/analytics/instructions.yaml +37 -37
  319. package/templates/analytics/mcp-servers.yaml +11 -11
  320. package/templates/analytics/structure.yaml +25 -25
  321. package/templates/api/harness/uc-template.hurl +20 -0
  322. package/templates/api/instructions.yaml +231 -231
  323. package/templates/api/mcp-servers.yaml +22 -22
  324. package/templates/api/nfr.yaml +23 -23
  325. package/templates/api/review.yaml +103 -103
  326. package/templates/api/structure.yaml +34 -34
  327. package/templates/api/verification.yaml +132 -132
  328. package/templates/cli/instructions.yaml +31 -31
  329. package/templates/cli/mcp-servers.yaml +11 -11
  330. package/templates/cli/review.yaml +53 -53
  331. package/templates/cli/structure.yaml +16 -16
  332. package/templates/data-lineage/instructions.yaml +28 -28
  333. package/templates/data-lineage/mcp-servers.yaml +22 -22
  334. package/templates/data-pipeline/instructions.yaml +84 -84
  335. package/templates/data-pipeline/mcp-servers.yaml +13 -13
  336. package/templates/data-pipeline/nfr.yaml +39 -39
  337. package/templates/data-pipeline/structure.yaml +23 -23
  338. package/templates/docs-manifest.yaml +227 -0
  339. package/templates/fintech/hooks.yaml +55 -55
  340. package/templates/fintech/instructions.yaml +112 -112
  341. package/templates/fintech/mcp-servers.yaml +13 -13
  342. package/templates/fintech/nfr.yaml +46 -46
  343. package/templates/fintech/playbook.yaml +210 -210
  344. package/templates/fintech/verification.yaml +239 -239
  345. package/templates/game/harness/uc-template.sim.ts +29 -0
  346. package/templates/game/instructions.yaml +289 -289
  347. package/templates/game/mcp-servers.yaml +38 -38
  348. package/templates/game/nfr.yaml +64 -64
  349. package/templates/game/playbook.yaml +214 -214
  350. package/templates/game/review.yaml +97 -97
  351. package/templates/game/structure.yaml +67 -67
  352. package/templates/game/verification.yaml +174 -174
  353. package/templates/healthcare/instructions.yaml +42 -42
  354. package/templates/healthcare/mcp-servers.yaml +13 -13
  355. package/templates/healthcare/nfr.yaml +47 -47
  356. package/templates/hipaa/instructions.yaml +41 -41
  357. package/templates/hipaa/mcp-servers.yaml +13 -13
  358. package/templates/infra/instructions.yaml +104 -104
  359. package/templates/infra/mcp-servers.yaml +20 -20
  360. package/templates/infra/nfr.yaml +46 -46
  361. package/templates/infra/review.yaml +65 -65
  362. package/templates/infra/structure.yaml +25 -25
  363. package/templates/library/instructions.yaml +36 -36
  364. package/templates/library/mcp-servers.yaml +20 -20
  365. package/templates/library/review.yaml +56 -56
  366. package/templates/library/structure.yaml +19 -19
  367. package/templates/medallion-architecture/instructions.yaml +41 -41
  368. package/templates/medallion-architecture/mcp-servers.yaml +22 -22
  369. package/templates/ml/instructions.yaml +85 -85
  370. package/templates/ml/mcp-servers.yaml +11 -11
  371. package/templates/ml/nfr.yaml +39 -39
  372. package/templates/ml/structure.yaml +25 -25
  373. package/templates/ml/verification.yaml +156 -156
  374. package/templates/mobile/instructions.yaml +44 -44
  375. package/templates/mobile/mcp-servers.yaml +11 -11
  376. package/templates/mobile/nfr.yaml +49 -49
  377. package/templates/mobile/structure.yaml +27 -27
  378. package/templates/mobile/verification.yaml +121 -121
  379. package/templates/observability-xray/instructions.yaml +40 -40
  380. package/templates/observability-xray/mcp-servers.yaml +15 -15
  381. package/templates/realtime/instructions.yaml +42 -42
  382. package/templates/realtime/mcp-servers.yaml +13 -13
  383. package/templates/soc2/instructions.yaml +41 -41
  384. package/templates/soc2/mcp-servers.yaml +24 -24
  385. package/templates/social/instructions.yaml +43 -43
  386. package/templates/social/mcp-servers.yaml +24 -24
  387. package/templates/state-machine/instructions.yaml +42 -42
  388. package/templates/state-machine/mcp-servers.yaml +11 -11
  389. package/templates/tools-registry.yaml +164 -164
  390. package/templates/universal/claude-md-blocks/layer-navigation.md +20 -0
  391. package/templates/universal/claude-md-blocks/nfr-contracts.md +22 -0
  392. package/templates/universal/hooks.yaml +879 -723
  393. package/templates/universal/instructions.yaml +1692 -1692
  394. package/templates/universal/mcp-servers.yaml +50 -50
  395. package/templates/universal/nfr.yaml +197 -197
  396. package/templates/universal/reference.yaml +326 -326
  397. package/templates/universal/review.yaml +204 -204
  398. package/templates/universal/skills.yaml +262 -262
  399. package/templates/universal/structure.yaml +67 -67
  400. package/templates/universal/verification.yaml +416 -416
  401. package/templates/web-next/hooks.yaml +114 -0
  402. package/templates/web-next/instructions.yaml +106 -0
  403. package/templates/web-react/harness/uc-template.spec.ts +35 -0
  404. package/templates/web-react/hooks.yaml +156 -44
  405. package/templates/web-react/instructions.yaml +296 -207
  406. package/templates/web-react/mcp-servers.yaml +20 -20
  407. package/templates/web-react/nfr.yaml +27 -27
  408. package/templates/web-react/review.yaml +94 -94
  409. package/templates/web-react/structure.yaml +46 -46
  410. package/templates/web-react/verification.yaml +126 -126
  411. package/templates/web-static/hooks.yaml +85 -0
  412. package/templates/web-static/instructions.yaml +204 -115
  413. package/templates/web-static/mcp-servers.yaml +20 -20
  414. package/templates/web3/instructions.yaml +44 -44
  415. package/templates/web3/mcp-servers.yaml +11 -11
  416. package/templates/web3/verification.yaml +159 -159
  417. package/templates/zero-trust/instructions.yaml +41 -41
  418. package/templates/zero-trust/mcp-servers.yaml +15 -15
@@ -1,164 +1,164 @@
1
- # Tools Registry — Recommended tools by process + language/tag
2
- # Gates reference process IDs. This registry says what tool to use for each process
3
- # given the project's tech stack. Language-agnostic gates + stack-specific tool recommendations.
4
- # This is a RECOMMENDATION, not a requirement. Teams choose their own tools.
5
- version: "1"
6
-
7
- processes:
8
- - id: mutation-testing
9
- description: "Verify test quality by injecting synthetic bugs and checking that tests catch them"
10
- gsProperty: verifiable
11
- phase: pre-release
12
- recommended:
13
- - stack: ["TYPESCRIPT", "JAVASCRIPT"]
14
- tool: stryker
15
- package: "@stryker-mutator/core"
16
- config: stryker.config.json
17
- install: "npm install --save-dev @stryker-mutator/core @stryker-mutator/vitest-runner"
18
- run: "npx stryker run"
19
- threshold: "MSI ≥ 80% on changed files"
20
- - stack: ["PYTHON"]
21
- tool: mutmut
22
- package: mutmut
23
- config: "setup.cfg [mutmut] section"
24
- install: "pip install mutmut"
25
- run: "mutmut run && mutmut results"
26
- threshold: "MSI ≥ 80% on changed files"
27
- - stack: ["JAVA", "KOTLIN"]
28
- tool: pitest
29
- package: "org.pitest:pitest-maven"
30
- config: pom.xml
31
- install: "Add pitest-maven plugin"
32
- run: "mvn test-compile org.pitest:pitest-maven:mutationCoverage"
33
- threshold: "mutation coverage ≥ 80%"
34
- - stack: ["RUST"]
35
- tool: cargo-mutants
36
- package: cargo-mutants
37
- install: "cargo install cargo-mutants"
38
- run: "cargo mutants"
39
- threshold: "All mutants caught or documented as equivalent"
40
- - stack: ["GO"]
41
- tool: gremlins
42
- package: gremlins
43
- install: "go install github.com/go-gremlins/gremlins/cmd/gremlins@latest"
44
- run: "gremlins unleash"
45
- threshold: "MSI ≥ 80%"
46
-
47
- - id: dast-scanning
48
- description: "Dynamic application security testing against a running service"
49
- gsProperty: defended
50
- phase: pre-release
51
- owasp_asvs_level: 2
52
- recommended:
53
- - stack: ["API", "WEB-REACT", "UNIVERSAL"]
54
- tool: owasp-zap
55
- package: "owasp/zap2docker-stable (Docker)"
56
- install: "docker pull owasp/zap2docker-stable"
57
- run: "docker run -t owasp/zap2docker-stable zap-api-scan.py -t <openapi-url> -f openapi"
58
- threshold: "Zero HIGH findings; all MEDIUM triaged"
59
- - stack: ["API"]
60
- tool: nuclei
61
- package: nuclei
62
- install: "go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest"
63
- run: "nuclei -u <target-url> -severity high,critical"
64
- threshold: "Zero HIGH/CRITICAL findings"
65
-
66
- - id: static-analysis
67
- description: "OWASP ASVS Level 1 static security checks run at commit time"
68
- gsProperty: defended
69
- phase: development
70
- owasp_asvs_level: 1
71
- recommended:
72
- - stack: ["TYPESCRIPT", "JAVASCRIPT"]
73
- tool: semgrep
74
- install: "pip install semgrep"
75
- run: "semgrep --config=p/owasp-top-ten ."
76
- threshold: "Zero HIGH findings"
77
- - stack: ["PYTHON"]
78
- tool: bandit
79
- install: "pip install bandit"
80
- run: "bandit -r src/ -ll"
81
- threshold: "Zero HIGH/CRITICAL findings"
82
- - stack: ["JAVA"]
83
- tool: spotbugs
84
- install: "Add spotbugs-maven-plugin"
85
- run: "mvn spotbugs:check"
86
- threshold: "Zero HIGH findings"
87
- - stack: ["GO"]
88
- tool: gosec
89
- install: "go install github.com/securecodewarrior/gosec/v2/cmd/gosec@latest"
90
- run: "gosec ./..."
91
- threshold: "Zero HIGH findings"
92
-
93
- - id: load-testing
94
- description: "Verify system behavior under stated load parameters"
95
- gsProperty: verifiable
96
- phase: pre-release
97
- recommended:
98
- - stack: ["UNIVERSAL"]
99
- tool: k6
100
- install: "brew install k6 / choco install k6 / apt install k6"
101
- run: "k6 run load-test.js"
102
- threshold: "p95 ≤ SLA; error rate < 1%"
103
- - stack: ["PYTHON"]
104
- tool: locust
105
- install: "pip install locust"
106
- run: "locust -f locustfile.py --headless -u <users> -r <spawn-rate>"
107
- threshold: "p95 ≤ SLA; error rate < 1%"
108
- - stack: ["API"]
109
- tool: artillery
110
- install: "npm install -g artillery"
111
- run: "artillery run load-test.yml"
112
- threshold: "p95 ≤ SLA; error rate < 1%"
113
-
114
- - id: dependency-audit
115
- description: "Check direct and transitive dependencies for known CVEs"
116
- gsProperty: defended
117
- phase: development
118
- owasp_asvs_level: 1
119
- recommended:
120
- - stack: ["TYPESCRIPT", "JAVASCRIPT"]
121
- tool: npm-audit
122
- run: "npm audit --audit-level=high"
123
- threshold: "Zero HIGH/CRITICAL"
124
- - stack: ["PYTHON"]
125
- tool: pip-audit
126
- install: "pip install pip-audit"
127
- run: "pip-audit --fail-on-severity high"
128
- threshold: "Zero HIGH/CRITICAL"
129
- - stack: ["RUST"]
130
- tool: cargo-audit
131
- install: "cargo install cargo-audit"
132
- run: "cargo audit"
133
- threshold: "Zero HIGH/CRITICAL"
134
- - stack: ["GO"]
135
- tool: govulncheck
136
- install: "go install golang.org/x/vuln/cmd/govulncheck@latest"
137
- run: "govulncheck ./..."
138
- threshold: "Zero directly-imported vulnerabilities"
139
- - stack: ["JAVA"]
140
- tool: owasp-dependency-check
141
- install: "Add dependency-check-maven plugin"
142
- run: "mvn dependency-check:check -DfailBuildOnCVSS=7"
143
- threshold: "Zero CVSS ≥ 7"
144
-
145
- - id: smoke-testing
146
- description: "Fast verification that critical paths work in a live environment"
147
- gsProperty: executable
148
- phase: deployment
149
- recommended:
150
- - stack: ["API"]
151
- tool: hurl
152
- install: "curl -LO https://github.com/Orange-OpenSource/hurl/releases/latest"
153
- run: "hurl tests/smoke/*.hurl --test"
154
- threshold: "All requests return expected status codes in < 60s total"
155
- - stack: ["API"]
156
- tool: newman
157
- install: "npm install -g newman"
158
- run: "newman run tests/smoke/collection.json"
159
- threshold: "Zero failed requests in < 60s total"
160
- - stack: ["WEB-REACT", "WEB-STATIC"]
161
- tool: playwright
162
- install: "npm install -D @playwright/test && npx playwright install"
163
- run: "npx playwright test tests/smoke/"
164
- threshold: "All smoke scenarios pass in < 60s"
1
+ # Tools Registry — Recommended tools by process + language/tag
2
+ # Gates reference process IDs. This registry says what tool to use for each process
3
+ # given the project's tech stack. Language-agnostic gates + stack-specific tool recommendations.
4
+ # This is a RECOMMENDATION, not a requirement. Teams choose their own tools.
5
+ version: "1"
6
+
7
+ processes:
8
+ - id: mutation-testing
9
+ description: "Verify test quality by injecting synthetic bugs and checking that tests catch them"
10
+ gsProperty: verifiable
11
+ phase: pre-release
12
+ recommended:
13
+ - stack: ["TYPESCRIPT", "JAVASCRIPT"]
14
+ tool: stryker
15
+ package: "@stryker-mutator/core"
16
+ config: stryker.config.json
17
+ install: "npm install --save-dev @stryker-mutator/core @stryker-mutator/vitest-runner"
18
+ run: "npx stryker run"
19
+ threshold: "MSI ≥ 80% on changed files"
20
+ - stack: ["PYTHON"]
21
+ tool: mutmut
22
+ package: mutmut
23
+ config: "setup.cfg [mutmut] section"
24
+ install: "pip install mutmut"
25
+ run: "mutmut run && mutmut results"
26
+ threshold: "MSI ≥ 80% on changed files"
27
+ - stack: ["JAVA", "KOTLIN"]
28
+ tool: pitest
29
+ package: "org.pitest:pitest-maven"
30
+ config: pom.xml
31
+ install: "Add pitest-maven plugin"
32
+ run: "mvn test-compile org.pitest:pitest-maven:mutationCoverage"
33
+ threshold: "mutation coverage ≥ 80%"
34
+ - stack: ["RUST"]
35
+ tool: cargo-mutants
36
+ package: cargo-mutants
37
+ install: "cargo install cargo-mutants"
38
+ run: "cargo mutants"
39
+ threshold: "All mutants caught or documented as equivalent"
40
+ - stack: ["GO"]
41
+ tool: gremlins
42
+ package: gremlins
43
+ install: "go install github.com/go-gremlins/gremlins/cmd/gremlins@latest"
44
+ run: "gremlins unleash"
45
+ threshold: "MSI ≥ 80%"
46
+
47
+ - id: dast-scanning
48
+ description: "Dynamic application security testing against a running service"
49
+ gsProperty: defended
50
+ phase: pre-release
51
+ owasp_asvs_level: 2
52
+ recommended:
53
+ - stack: ["API", "WEB-REACT", "UNIVERSAL"]
54
+ tool: owasp-zap
55
+ package: "owasp/zap2docker-stable (Docker)"
56
+ install: "docker pull owasp/zap2docker-stable"
57
+ run: "docker run -t owasp/zap2docker-stable zap-api-scan.py -t <openapi-url> -f openapi"
58
+ threshold: "Zero HIGH findings; all MEDIUM triaged"
59
+ - stack: ["API"]
60
+ tool: nuclei
61
+ package: nuclei
62
+ install: "go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest"
63
+ run: "nuclei -u <target-url> -severity high,critical"
64
+ threshold: "Zero HIGH/CRITICAL findings"
65
+
66
+ - id: static-analysis
67
+ description: "OWASP ASVS Level 1 static security checks run at commit time"
68
+ gsProperty: defended
69
+ phase: development
70
+ owasp_asvs_level: 1
71
+ recommended:
72
+ - stack: ["TYPESCRIPT", "JAVASCRIPT"]
73
+ tool: semgrep
74
+ install: "pip install semgrep"
75
+ run: "semgrep --config=p/owasp-top-ten ."
76
+ threshold: "Zero HIGH findings"
77
+ - stack: ["PYTHON"]
78
+ tool: bandit
79
+ install: "pip install bandit"
80
+ run: "bandit -r src/ -ll"
81
+ threshold: "Zero HIGH/CRITICAL findings"
82
+ - stack: ["JAVA"]
83
+ tool: spotbugs
84
+ install: "Add spotbugs-maven-plugin"
85
+ run: "mvn spotbugs:check"
86
+ threshold: "Zero HIGH findings"
87
+ - stack: ["GO"]
88
+ tool: gosec
89
+ install: "go install github.com/securecodewarrior/gosec/v2/cmd/gosec@latest"
90
+ run: "gosec ./..."
91
+ threshold: "Zero HIGH findings"
92
+
93
+ - id: load-testing
94
+ description: "Verify system behavior under stated load parameters"
95
+ gsProperty: verifiable
96
+ phase: pre-release
97
+ recommended:
98
+ - stack: ["UNIVERSAL"]
99
+ tool: k6
100
+ install: "brew install k6 / choco install k6 / apt install k6"
101
+ run: "k6 run load-test.js"
102
+ threshold: "p95 ≤ SLA; error rate < 1%"
103
+ - stack: ["PYTHON"]
104
+ tool: locust
105
+ install: "pip install locust"
106
+ run: "locust -f locustfile.py --headless -u <users> -r <spawn-rate>"
107
+ threshold: "p95 ≤ SLA; error rate < 1%"
108
+ - stack: ["API"]
109
+ tool: artillery
110
+ install: "npm install -g artillery"
111
+ run: "artillery run load-test.yml"
112
+ threshold: "p95 ≤ SLA; error rate < 1%"
113
+
114
+ - id: dependency-audit
115
+ description: "Check direct and transitive dependencies for known CVEs"
116
+ gsProperty: defended
117
+ phase: development
118
+ owasp_asvs_level: 1
119
+ recommended:
120
+ - stack: ["TYPESCRIPT", "JAVASCRIPT"]
121
+ tool: npm-audit
122
+ run: "npm audit --audit-level=high"
123
+ threshold: "Zero HIGH/CRITICAL"
124
+ - stack: ["PYTHON"]
125
+ tool: pip-audit
126
+ install: "pip install pip-audit"
127
+ run: "pip-audit --fail-on-severity high"
128
+ threshold: "Zero HIGH/CRITICAL"
129
+ - stack: ["RUST"]
130
+ tool: cargo-audit
131
+ install: "cargo install cargo-audit"
132
+ run: "cargo audit"
133
+ threshold: "Zero HIGH/CRITICAL"
134
+ - stack: ["GO"]
135
+ tool: govulncheck
136
+ install: "go install golang.org/x/vuln/cmd/govulncheck@latest"
137
+ run: "govulncheck ./..."
138
+ threshold: "Zero directly-imported vulnerabilities"
139
+ - stack: ["JAVA"]
140
+ tool: owasp-dependency-check
141
+ install: "Add dependency-check-maven plugin"
142
+ run: "mvn dependency-check:check -DfailBuildOnCVSS=7"
143
+ threshold: "Zero CVSS ≥ 7"
144
+
145
+ - id: smoke-testing
146
+ description: "Fast verification that critical paths work in a live environment"
147
+ gsProperty: executable
148
+ phase: deployment
149
+ recommended:
150
+ - stack: ["API"]
151
+ tool: hurl
152
+ install: "curl -LO https://github.com/Orange-OpenSource/hurl/releases/latest"
153
+ run: "hurl tests/smoke/*.hurl --test"
154
+ threshold: "All requests return expected status codes in < 60s total"
155
+ - stack: ["API"]
156
+ tool: newman
157
+ install: "npm install -g newman"
158
+ run: "newman run tests/smoke/collection.json"
159
+ threshold: "Zero failed requests in < 60s total"
160
+ - stack: ["WEB-REACT", "WEB-STATIC"]
161
+ tool: playwright
162
+ install: "npm install -D @playwright/test && npx playwright install"
163
+ run: "npx playwright test tests/smoke/"
164
+ threshold: "All smoke scenarios pass in < 60s"
@@ -0,0 +1,20 @@
1
+ ## Layer Navigation Protocol
2
+
3
+ ForgeCraft tracks automation depth across four active layers. Before beginning
4
+ implementation work, call `layer_status` to understand the current state.
5
+
6
+ | Layer | What it means | How to advance |
7
+ |---|---|---|
8
+ | **L1 Blueprint** | Use case documented + implementation + tests | Write formal UC, implement, add tests |
9
+ | **L2 Harness** | Use case has executable probe in `.forgecraft/harness/` | Create `uc-NNN.yaml` with probe definitions |
10
+ | **L3 Environment** | All infra state derivable from spec | Add CI, Dockerfile, env schema to spec |
11
+ | **L4 Monitoring** | Runtime drift evaluated against spec | Add health probes, drift detection config |
12
+
13
+ **Layer completion is a spec gap, not a todo list.** A missing L2 probe is not
14
+ something to schedule — it is an incomplete grammar. The gate fires until the probe exists.
15
+
16
+ **L2 probe types available**: `mcp_call`, `playwright`, `api_call`, `db_query`,
17
+ `file_system`, `headless_sim`
18
+
19
+ **To add a probe**: create `.forgecraft/harness/uc-NNN.yaml` following the format
20
+ in any existing probe file. One probe is enough to move a UC from ❌ to ✅.
@@ -0,0 +1,22 @@
1
+ ## Non-Functional Requirement Contracts
2
+
3
+ Declare SLA and throughput obligations as measurable assertions.
4
+ Aspirations ("should be fast") are not contracts. Each row is machine-checkable.
5
+
6
+ <!-- Fill in actual values before pre-release. -->
7
+
8
+ | Operation | P99 Latency | Max Latency | Throughput | Notes |
9
+ |---|---|---|---|---|
10
+ | [Primary read] | ≤ __ms | ≤ __ms | __ RPS | |
11
+ | [Primary write] | ≤ __ms | ≤ __ms | __ RPS | |
12
+ | [Background job] | — | ≤ __s | — | Async |
13
+
14
+ ## Availability
15
+ - Uptime SLA: __% (e.g., 99.9%)
16
+ - Max planned downtime per month: __ minutes
17
+
18
+ ## Correctness Constraints
19
+ - [List idempotency, determinism, or monotonicity requirements]
20
+
21
+ **Verification**: Load tests in `tests/harness/` must assert these bounds.
22
+ Gate: `nfr-contracts-required` fires until this file has measurable values.