forgecraft-mcp 1.2.0 → 1.4.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 (185) hide show
  1. package/README.md +525 -525
  2. package/dist/artifacts/commit-hooks.d.ts +1 -1
  3. package/dist/artifacts/commit-hooks.d.ts.map +1 -1
  4. package/dist/artifacts/commit-hooks.js +2 -0
  5. package/dist/artifacts/commit-hooks.js.map +1 -1
  6. package/dist/cli/commands.d.ts +35 -1
  7. package/dist/cli/commands.d.ts.map +1 -1
  8. package/dist/cli/commands.js +109 -2
  9. package/dist/cli/commands.js.map +1 -1
  10. package/dist/cli/help.d.ts.map +1 -1
  11. package/dist/cli/help.js +51 -44
  12. package/dist/cli/help.js.map +1 -1
  13. package/dist/cli.d.ts.map +1 -1
  14. package/dist/cli.js +10 -1
  15. package/dist/cli.js.map +1 -1
  16. package/dist/registry/renderer-skeletons.js +92 -92
  17. package/dist/shared/gs-score-logger.js +6 -6
  18. package/dist/shared/result-utils.d.ts +27 -0
  19. package/dist/shared/result-utils.d.ts.map +1 -0
  20. package/dist/shared/result-utils.js +41 -0
  21. package/dist/shared/result-utils.js.map +1 -0
  22. package/dist/tools/add-module.js +123 -123
  23. package/dist/tools/advice-registry.js +18 -18
  24. package/dist/tools/check-cascade-report.js +64 -64
  25. package/dist/tools/close-cycle-helpers.d.ts +21 -2
  26. package/dist/tools/close-cycle-helpers.d.ts.map +1 -1
  27. package/dist/tools/close-cycle-helpers.js +66 -10
  28. package/dist/tools/close-cycle-helpers.js.map +1 -1
  29. package/dist/tools/close-cycle.d.ts +2 -2
  30. package/dist/tools/close-cycle.d.ts.map +1 -1
  31. package/dist/tools/close-cycle.js +1 -1
  32. package/dist/tools/close-cycle.js.map +1 -1
  33. package/dist/tools/configure-mcp.d.ts +3 -0
  34. package/dist/tools/configure-mcp.d.ts.map +1 -1
  35. package/dist/tools/configure-mcp.js +10 -0
  36. package/dist/tools/configure-mcp.js.map +1 -1
  37. package/dist/tools/consolidate-status.d.ts +81 -0
  38. package/dist/tools/consolidate-status.d.ts.map +1 -0
  39. package/dist/tools/consolidate-status.js +251 -0
  40. package/dist/tools/consolidate-status.js.map +1 -0
  41. package/dist/tools/forgecraft-dispatch.d.ts.map +1 -1
  42. package/dist/tools/forgecraft-dispatch.js +13 -0
  43. package/dist/tools/forgecraft-dispatch.js.map +1 -1
  44. package/dist/tools/forgecraft-router.d.ts +8 -0
  45. package/dist/tools/forgecraft-router.d.ts.map +1 -1
  46. package/dist/tools/forgecraft-router.js +21 -1
  47. package/dist/tools/forgecraft-router.js.map +1 -1
  48. package/dist/tools/forgecraft-schema-params.d.ts +13 -4
  49. package/dist/tools/forgecraft-schema-params.d.ts.map +1 -1
  50. package/dist/tools/forgecraft-schema-params.js +21 -0
  51. package/dist/tools/forgecraft-schema-params.js.map +1 -1
  52. package/dist/tools/forgecraft-schema.d.ts +14 -5
  53. package/dist/tools/forgecraft-schema.d.ts.map +1 -1
  54. package/dist/tools/forgecraft-schema.js +3 -0
  55. package/dist/tools/forgecraft-schema.js.map +1 -1
  56. package/dist/tools/gate-violations.d.ts +59 -0
  57. package/dist/tools/gate-violations.d.ts.map +1 -0
  58. package/dist/tools/gate-violations.js +152 -0
  59. package/dist/tools/gate-violations.js.map +1 -0
  60. package/dist/tools/generate-session-prompt.d.ts +3 -3
  61. package/dist/tools/generate-session-prompt.d.ts.map +1 -1
  62. package/dist/tools/generate-session-prompt.js +57 -15
  63. package/dist/tools/generate-session-prompt.js.map +1 -1
  64. package/dist/tools/refresh-output.js +14 -14
  65. package/dist/tools/roadmap-builder.d.ts.map +1 -1
  66. package/dist/tools/roadmap-builder.js +19 -9
  67. package/dist/tools/roadmap-builder.js.map +1 -1
  68. package/dist/tools/scaffold-spec-stubs.js +115 -115
  69. package/dist/tools/scaffold-templates.js +62 -62
  70. package/dist/tools/session-prompt-builders.d.ts.map +1 -1
  71. package/dist/tools/session-prompt-builders.js +34 -10
  72. package/dist/tools/session-prompt-builders.js.map +1 -1
  73. package/dist/tools/setup-artifact-writers.d.ts +30 -0
  74. package/dist/tools/setup-artifact-writers.d.ts.map +1 -1
  75. package/dist/tools/setup-artifact-writers.js +120 -8
  76. package/dist/tools/setup-artifact-writers.js.map +1 -1
  77. package/dist/tools/setup-phase1.d.ts +3 -0
  78. package/dist/tools/setup-phase1.d.ts.map +1 -1
  79. package/dist/tools/setup-phase1.js +79 -35
  80. package/dist/tools/setup-phase1.js.map +1 -1
  81. package/dist/tools/setup-phase2.d.ts +2 -0
  82. package/dist/tools/setup-phase2.d.ts.map +1 -1
  83. package/dist/tools/setup-phase2.js +10 -1
  84. package/dist/tools/setup-phase2.js.map +1 -1
  85. package/dist/tools/setup-project.d.ts +18 -0
  86. package/dist/tools/setup-project.d.ts.map +1 -1
  87. package/dist/tools/setup-project.js +77 -1
  88. package/dist/tools/setup-project.js.map +1 -1
  89. package/dist/tools/spec-parser-tags.d.ts +9 -0
  90. package/dist/tools/spec-parser-tags.d.ts.map +1 -1
  91. package/dist/tools/spec-parser-tags.js +92 -0
  92. package/dist/tools/spec-parser-tags.js.map +1 -1
  93. package/package.json +89 -86
  94. package/templates/analytics/instructions.yaml +37 -37
  95. package/templates/analytics/mcp-servers.yaml +11 -11
  96. package/templates/analytics/structure.yaml +25 -25
  97. package/templates/api/instructions.yaml +231 -231
  98. package/templates/api/mcp-servers.yaml +22 -13
  99. package/templates/api/nfr.yaml +23 -23
  100. package/templates/api/review.yaml +103 -103
  101. package/templates/api/structure.yaml +34 -34
  102. package/templates/api/verification.yaml +132 -132
  103. package/templates/cli/instructions.yaml +31 -31
  104. package/templates/cli/mcp-servers.yaml +11 -11
  105. package/templates/cli/review.yaml +53 -53
  106. package/templates/cli/structure.yaml +16 -16
  107. package/templates/data-lineage/instructions.yaml +28 -28
  108. package/templates/data-lineage/mcp-servers.yaml +22 -22
  109. package/templates/data-pipeline/instructions.yaml +84 -84
  110. package/templates/data-pipeline/mcp-servers.yaml +13 -13
  111. package/templates/data-pipeline/nfr.yaml +39 -39
  112. package/templates/data-pipeline/structure.yaml +23 -23
  113. package/templates/fintech/hooks.yaml +55 -55
  114. package/templates/fintech/instructions.yaml +112 -112
  115. package/templates/fintech/mcp-servers.yaml +13 -13
  116. package/templates/fintech/nfr.yaml +46 -46
  117. package/templates/fintech/playbook.yaml +210 -210
  118. package/templates/fintech/verification.yaml +239 -239
  119. package/templates/game/instructions.yaml +289 -289
  120. package/templates/game/mcp-servers.yaml +38 -38
  121. package/templates/game/nfr.yaml +64 -64
  122. package/templates/game/playbook.yaml +214 -214
  123. package/templates/game/review.yaml +97 -97
  124. package/templates/game/structure.yaml +67 -67
  125. package/templates/game/verification.yaml +174 -174
  126. package/templates/healthcare/instructions.yaml +42 -42
  127. package/templates/healthcare/mcp-servers.yaml +13 -13
  128. package/templates/healthcare/nfr.yaml +47 -47
  129. package/templates/hipaa/instructions.yaml +41 -41
  130. package/templates/hipaa/mcp-servers.yaml +13 -13
  131. package/templates/infra/instructions.yaml +104 -104
  132. package/templates/infra/mcp-servers.yaml +20 -20
  133. package/templates/infra/nfr.yaml +46 -46
  134. package/templates/infra/review.yaml +65 -65
  135. package/templates/infra/structure.yaml +25 -25
  136. package/templates/library/instructions.yaml +36 -36
  137. package/templates/library/mcp-servers.yaml +20 -20
  138. package/templates/library/review.yaml +56 -56
  139. package/templates/library/structure.yaml +19 -19
  140. package/templates/medallion-architecture/instructions.yaml +41 -41
  141. package/templates/medallion-architecture/mcp-servers.yaml +22 -22
  142. package/templates/ml/instructions.yaml +85 -85
  143. package/templates/ml/mcp-servers.yaml +11 -11
  144. package/templates/ml/nfr.yaml +39 -39
  145. package/templates/ml/structure.yaml +25 -25
  146. package/templates/ml/verification.yaml +156 -156
  147. package/templates/mobile/instructions.yaml +44 -44
  148. package/templates/mobile/mcp-servers.yaml +11 -11
  149. package/templates/mobile/nfr.yaml +49 -49
  150. package/templates/mobile/structure.yaml +27 -27
  151. package/templates/mobile/verification.yaml +121 -121
  152. package/templates/observability-xray/instructions.yaml +40 -40
  153. package/templates/observability-xray/mcp-servers.yaml +15 -15
  154. package/templates/realtime/instructions.yaml +42 -42
  155. package/templates/realtime/mcp-servers.yaml +13 -13
  156. package/templates/soc2/instructions.yaml +41 -41
  157. package/templates/soc2/mcp-servers.yaml +24 -24
  158. package/templates/social/instructions.yaml +43 -43
  159. package/templates/social/mcp-servers.yaml +24 -24
  160. package/templates/state-machine/instructions.yaml +42 -42
  161. package/templates/state-machine/mcp-servers.yaml +11 -11
  162. package/templates/tools-registry.yaml +164 -164
  163. package/templates/universal/hooks.yaml +723 -531
  164. package/templates/universal/instructions.yaml +1692 -1692
  165. package/templates/universal/mcp-servers.yaml +50 -50
  166. package/templates/universal/nfr.yaml +197 -197
  167. package/templates/universal/reference.yaml +326 -326
  168. package/templates/universal/review.yaml +204 -204
  169. package/templates/universal/skills.yaml +262 -262
  170. package/templates/universal/structure.yaml +67 -67
  171. package/templates/universal/verification.yaml +416 -416
  172. package/templates/web-react/hooks.yaml +44 -44
  173. package/templates/web-react/instructions.yaml +207 -207
  174. package/templates/web-react/mcp-servers.yaml +20 -20
  175. package/templates/web-react/nfr.yaml +27 -27
  176. package/templates/web-react/review.yaml +94 -94
  177. package/templates/web-react/structure.yaml +46 -46
  178. package/templates/web-react/verification.yaml +126 -126
  179. package/templates/web-static/instructions.yaml +115 -115
  180. package/templates/web-static/mcp-servers.yaml +20 -20
  181. package/templates/web3/instructions.yaml +44 -44
  182. package/templates/web3/mcp-servers.yaml +11 -11
  183. package/templates/web3/verification.yaml +159 -159
  184. package/templates/zero-trust/instructions.yaml +41 -41
  185. package/templates/zero-trust/mcp-servers.yaml +15 -15
@@ -1 +1 @@
1
- {"version":3,"file":"setup-project.js","sourceRoot":"","sources":["../../src/tools/setup-project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup-project.js","sourceRoot":"","sources":["../../src/tools/setup-project.ts"],"names":[],"mappings":"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"}
@@ -39,6 +39,15 @@ export declare const DEPLOYMENT_TAGS: Set<string>;
39
39
  * @returns Array of detected ambiguity items
40
40
  */
41
41
  export declare function detectSpecAmbiguities(text: string, inferredTags: string[]): AmbiguityItem[];
42
+ /**
43
+ * Detect when a spec conflates a generative tool with a specific named creative
44
+ * output that the tool would produce. Returns an AmbiguityItem when both signals
45
+ * are present, or null when the spec is clearly about just one of them.
46
+ *
47
+ * @param text - Full spec text
48
+ * @returns AmbiguityItem or null
49
+ */
50
+ export declare function detectToolSampleConflation(text: string): AmbiguityItem | null;
42
51
  /**
43
52
  * Keywords that imply sensitive data handling.
44
53
  */
@@ -1 +1 @@
1
- {"version":3,"file":"spec-parser-tags.d.ts","sourceRoot":"","sources":["../../src/tools/spec-parser-tags.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,iGAAiG;IACjG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,8EAA8E;IAC9E,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B,2EAA2E;IAC3E,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC;QACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;KAC9B,CAAC,CAAC;CACJ;AAID,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B,CA4EA,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CASxD;AAID,uHAAuH;AACvH,eAAO,MAAM,cAAc,QAA2B,CAAC;AAEvD,eAAO,MAAM,eAAe,aAO1B,CAAC;AAEH;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EAAE,GACrB,aAAa,EAAE,CAoCjB;AAID;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EA4BpD,CAAC;AAEF,sCAAsC;AACtC,eAAO,MAAM,cAAc,EAAE,SAAS,MAAM,EAM3C,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,EACvE,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAgBT"}
1
+ {"version":3,"file":"spec-parser-tags.d.ts","sourceRoot":"","sources":["../../src/tools/spec-parser-tags.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,iGAAiG;IACjG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,8EAA8E;IAC9E,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B,2EAA2E;IAC3E,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC;QACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;KAC9B,CAAC,CAAC;CACJ;AAID,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B,CA4EA,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CASxD;AAID,uHAAuH;AACvH,eAAO,MAAM,cAAc,QAA2B,CAAC;AAEvD,eAAO,MAAM,eAAe,aAO1B,CAAC;AAEH;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EAAE,GACrB,aAAa,EAAE,CAyCjB;AAwCD;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAkD7E;AAID;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EA4BpD,CAAC;AAEF,sCAAsC;AACtC,eAAO,MAAM,cAAc,EAAE,SAAS,MAAM,EAM3C,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,EACvE,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAiBT"}
@@ -143,8 +143,100 @@ export function detectSpecAmbiguities(text, inferredTags) {
143
143
  ],
144
144
  });
145
145
  }
146
+ const conflation = detectToolSampleConflation(text);
147
+ if (conflation) {
148
+ ambiguities.push(conflation);
149
+ }
146
150
  return ambiguities;
147
151
  }
152
+ // ── Tool vs. sample-output conflation detection ───────────────────────
153
+ /**
154
+ * Signals that the spec describes a generative AI / creative tool being built.
155
+ * Looks for AI system capability descriptions, not just incidental AI mentions.
156
+ */
157
+ const GENERATIVE_TOOL_PATTERNS = [
158
+ // Named AI creative roles
159
+ /\b(AI|automated?|autonomous?|intelligent)\s+(ghostwriter|composer|artist|writer|storyteller|narrator|creator|generator|designer|director|musician|author|painter|illustrator)\b/i,
160
+ // Generative AI technology being built
161
+ /\b(build|create|develop|make)\s+(an?\s+)?(AI|ML|LLM|generative|diffusion)\s+\w+\s+(that|to|for)\s+(generates?|creates?|writes?|produces?|composes?|renders?)\b/i,
162
+ // Capability described: "generates novels", "writes stories", "composes music"
163
+ /\b(generates?|creates?|produces?|writes?|composes?|renders?)\s+(novels?|books?|stories?|music|songs?|artworks?|images?|paintings?|games?|levels?|scripts?|content|narratives?|poems?|lyrics?)\b/i,
164
+ // Stable diffusion / text-to-X pattern
165
+ /\b(stable diffusion|diffusion model|text[\s-]to[\s-](image|video|music|speech|art|story|game)|LLM|language model|GPT|fine[\s-]tun)\b/i,
166
+ // "AI-powered [creative thing]"
167
+ /\bAI[\s-]powered\s+(writing|story|music|art|game|content|creative)\b/i,
168
+ ];
169
+ /**
170
+ * Signals that the spec describes a specific named creative output —
171
+ * something the tool would produce rather than the tool itself.
172
+ */
173
+ const NAMED_CREATIVE_OUTPUT_PATTERNS = [
174
+ // Quoted title-case multi-word title: "The Chronicles of Something"
175
+ /["']([A-Z][a-z]+([ '-][A-Za-z]+){1,6})["']/,
176
+ // Named character/protagonist/villain
177
+ /\b(character|protagonist|hero|villain|antagonist|player character|main character)\s+(named?|called?)\s+["']?[A-Z][a-z]+/i,
178
+ // Specific world or setting with proper noun
179
+ /\b(set in|takes place in|world of|the world named?|realm of|universe of)\s+["']?[A-Z][a-zA-Z\s]{2,25}["']?/i,
180
+ // "the first [novel/game/song/...] will be" — explicit sample language
181
+ /\bthe\s+(first|initial|sample|demo|example|pilot|showcase)\s+(novel|book|game|song|album|artwork?|story|level|episode|chapter|track|piece|composition)\b/i,
182
+ // Structural creative content markers: "Chapter 1:", "Act 1 —"
183
+ /\b(chapter|act|scene|episode|part)\s+\d+\s*[:\-—]/i,
184
+ // Specific plot/story beat language
185
+ /\b(plot|storyline|narrative arc|character arc|backstory|lore|world[\s-]build)\b.{0,80}\b(specific|detailed|complete|full)\b/i,
186
+ ];
187
+ /**
188
+ * Detect when a spec conflates a generative tool with a specific named creative
189
+ * output that the tool would produce. Returns an AmbiguityItem when both signals
190
+ * are present, or null when the spec is clearly about just one of them.
191
+ *
192
+ * @param text - Full spec text
193
+ * @returns AmbiguityItem or null
194
+ */
195
+ export function detectToolSampleConflation(text) {
196
+ const toolSignals = [];
197
+ for (const pattern of GENERATIVE_TOOL_PATTERNS) {
198
+ const match = text.match(pattern);
199
+ if (match) {
200
+ toolSignals.push(match[0].trim().replace(/\s+/g, " ").slice(0, 60));
201
+ }
202
+ }
203
+ if (toolSignals.length === 0)
204
+ return null;
205
+ const contentSignals = [];
206
+ for (const pattern of NAMED_CREATIVE_OUTPUT_PATTERNS) {
207
+ const match = text.match(pattern);
208
+ if (match) {
209
+ contentSignals.push(match[0].trim().replace(/\s+/g, " ").slice(0, 60));
210
+ }
211
+ }
212
+ if (contentSignals.length === 0)
213
+ return null;
214
+ return {
215
+ field: "tool_vs_sample_output",
216
+ signals: [
217
+ `Generative tool described: "${toolSignals[0]}"`,
218
+ `Specific creative output described: "${contentSignals[0]}"`,
219
+ ],
220
+ interpretations: [
221
+ {
222
+ label: "tool_and_sample",
223
+ description: "Build the core tool; treat the named creative work as the first real deliverable",
224
+ consequence: "PRD focuses on the generative system. A docs/sample-outcome.md is created " +
225
+ "with the specific creative work details as the first acceptance test.",
226
+ },
227
+ {
228
+ label: "tool_only",
229
+ description: "Build the core tool only; the named creative work is illustrative, not a deliverable",
230
+ consequence: "Named creative content is treated as usage examples only. No sample-outcome artifact is created.",
231
+ },
232
+ {
233
+ label: "content_only",
234
+ description: "The goal is to produce the specific named creative work; the tool is a means, not the end",
235
+ consequence: "PRD focuses on delivering the creative work itself. Tool requirements are implementation details.",
236
+ },
237
+ ],
238
+ };
239
+ }
148
240
  // ── Sensitive data detection ──────────────────────────────────────────
149
241
  /**
150
242
  * Keywords that imply sensitive data handling.
@@ -1 +1 @@
1
- {"version":3,"file":"spec-parser-tags.js","sourceRoot":"","sources":["../../src/tools/spec-parser-tags.ts"],"names":[],"mappings":"AAAA;;GAEG;AAqBH,yEAAyE;AAEzE,MAAM,CAAC,MAAM,eAAe,GAGvB;IACH;QACE,GAAG,EAAE,KAAK;QACV,QAAQ,EAAE;YACR,KAAK;YACL,UAAU;YACV,MAAM;YACN,SAAS;YACT,MAAM;YACN,SAAS;YACT,SAAS;YACT,QAAQ;YACR,YAAY;SACb;KACF;IACD;QACE,4FAA4F;QAC5F,GAAG,EAAE,KAAK;QACV,QAAQ,EAAE;YACR,WAAW;YACX,OAAO;YACP,MAAM;YACN,MAAM;YACN,QAAQ;YACR,WAAW;YACX,cAAc;SACf;KACF;IACD;QACE,qGAAqG;QACrG,GAAG,EAAE,SAAS;QACd,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,iBAAiB,CAAC;KACpD;IACD;QACE,oGAAoG;QACpG,GAAG,EAAE,MAAM;QACX,QAAQ,EAAE;YACR,iBAAiB;YACjB,YAAY;YACZ,UAAU;YACV,QAAQ;YACR,OAAO;YACP,MAAM;YACN,SAAS;YACT,SAAS;YACT,UAAU;YACV,SAAS;SACV;KACF;IACD;QACE,GAAG,EAAE,SAAS;QACd,QAAQ,EAAE;YACR,SAAS;YACT,SAAS;YACT,QAAQ;YACR,WAAW;YACX,aAAa;YACb,QAAQ;YACR,SAAS;YACT,QAAQ;YACR,QAAQ;YACR,SAAS;SACV;KACF;IACD;QACE,GAAG,EAAE,QAAQ;QACb,QAAQ,EAAE;YACR,QAAQ;YACR,KAAK;YACL,SAAS;YACT,cAAc;YACd,SAAS;YACT,WAAW;YACX,aAAa;SACd;KACF;CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,MAAM,IAAI,GAAa,CAAC,WAAW,CAAC,CAAC;IACrC,KAAK,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,eAAe,EAAE,CAAC;QAChD,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,yEAAyE;AAEzE,uHAAuH;AACvH,MAAM,CAAC,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAEvD,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IACrC,KAAK;IACL,KAAK;IACL,SAAS;IACT,QAAQ;IACR,WAAW;IACX,YAAY;CACb,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAY,EACZ,YAAsB;IAEtB,MAAM,WAAW,GAAoB,EAAE,CAAC;IAExC,MAAM,gBAAgB,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,mBAAmB,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7E,IAAI,gBAAgB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACzC,WAAW,CAAC,IAAI,CAAC;YACf,KAAK,EAAE,mBAAmB;YAC1B,OAAO,EAAE;gBACP,kBAAkB,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,oBAAoB,qCAAqC;aAC1F;YACD,eAAe,EAAE;gBACf;oBACE,KAAK,EAAE,GAAG;oBACV,WAAW,EAAE,8BAA8B;oBAC3C,WAAW,EAAE,iDAAiD;iBAC/D;gBACD;oBACE,KAAK,EAAE,GAAG;oBACV,WAAW,EAAE,6BAA6B;oBAC1C,WAAW,EACT,2EAA2E;iBAC9E;gBACD;oBACE,KAAK,EAAE,GAAG;oBACV,WAAW,EAAE,yCAAyC;oBACtD,WAAW,EACT,uEAAuE;iBAC1E;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,yEAAyE;AAEzE;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAsB;IACxD,SAAS;IACT,MAAM;IACN,KAAK;IACL,OAAO;IACP,gBAAgB;IAChB,cAAc;IACd,SAAS;IACT,gBAAgB;IAChB,aAAa;IACb,SAAS;IACT,SAAS;IACT,SAAS;IACT,MAAM;IACN,eAAe;IACf,aAAa;IACb,cAAc;IACd,eAAe;IACf,KAAK;IACL,MAAM;IACN,aAAa;IACb,iBAAiB;IACjB,eAAe;IACf,iBAAiB;IACjB,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,cAAc;CACf,CAAC;AAEF,sCAAsC;AACtC,MAAM,CAAC,MAAM,cAAc,GAAsB;IAC/C,SAAS;IACT,YAAY;IACZ,OAAO;IACP,MAAM;IACN,QAAQ;CACT,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,WAAuE,EACvE,IAAc;IAEd,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,cAAoC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAErF,MAAM,QAAQ,GAAG;QACf,WAAW,CAAC,OAAO;QACnB,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;QAC3B,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;KACjC;SACE,IAAI,CAAC,GAAG,CAAC;SACT,WAAW,EAAE,CAAC;IAEjB,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;QAC9C,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,MAAM,cAAc,KAAK,CAAC,CAAC;QACtD,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"spec-parser-tags.js","sourceRoot":"","sources":["../../src/tools/spec-parser-tags.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,86 +1,89 @@
1
- {
2
- "name": "forgecraft-mcp",
3
- "version": "1.2.0",
4
- "mcpName": "io.github.jghiringhelli/forgecraft",
5
- "description": "CLI + MCP sentinel for engineering standards — SOLID, testing, architecture, CI/CD — auto-tailored to your stack. Minimal MCP footprint (~200 tokens) via CLI-first design.",
6
- "type": "module",
7
- "main": "dist/index.js",
8
- "bin": {
9
- "forgecraft-mcp": "dist/index.js"
10
- },
11
- "scripts": {
12
- "build": "tsc",
13
- "dev": "tsc --watch",
14
- "start": "node dist/index.js",
15
- "serve": "node dist/http-server.js",
16
- "test": "vitest run",
17
- "test:watch": "vitest",
18
- "test:coverage": "vitest run --coverage",
19
- "test:mutation": "stryker run",
20
- "test:mutation:ci": "stryker run --reporters progress,clear-text",
21
- "test:mutation:sentinel": "stryker run stryker.sentinel.json",
22
- "lint": "eslint src/",
23
- "clean": "rimraf dist",
24
- "prepare": "node -e \"if(require('fs').existsSync('.git')&&require('fs').existsSync('scripts/setup-hooks.sh')){require('child_process').execSync('bash scripts/setup-hooks.sh',{stdio:'inherit'})}\"",
25
- "prepublishOnly": "npm run clean && npm run build",
26
- "export:taxonomy": "npx ts-node --esm scripts/export-taxonomy.ts"
27
- },
28
- "keywords": [
29
- "mcp",
30
- "mcp-server",
31
- "model-context-protocol",
32
- "claude",
33
- "claude-code",
34
- "github-copilot",
35
- "copilot",
36
- "cursor",
37
- "windsurf",
38
- "ai-coding",
39
- "scaffolding",
40
- "project-setup",
41
- "developer-tools",
42
- "code-quality",
43
- "engineering-standards",
44
- "solid-principles",
45
- "testing",
46
- "architecture",
47
- "claude-md"
48
- ],
49
- "author": "JC",
50
- "license": "MIT",
51
- "repository": {
52
- "type": "git",
53
- "url": "git+https://github.com/jghiringhelli/forgecraft-mcp.git"
54
- },
55
- "homepage": "https://forgecraft.tools",
56
- "bugs": {
57
- "url": "https://github.com/jghiringhelli/forgecraft-mcp/issues"
58
- },
59
- "engines": {
60
- "node": ">=18.0.0"
61
- },
62
- "files": [
63
- "dist/",
64
- "templates/",
65
- "README.md"
66
- ],
67
- "dependencies": {
68
- "@modelcontextprotocol/sdk": "^1.12.1",
69
- "js-yaml": "^4.1.0",
70
- "zod": "^3.24.2"
71
- },
72
- "devDependencies": {
73
- "@stryker-mutator/core": "^9.6.0",
74
- "@stryker-mutator/vitest-runner": "^9.6.0",
75
- "@types/express": "^5.0.6",
76
- "@types/js-yaml": "^4.0.9",
77
- "@types/node": "^22.13.4",
78
- "@types/supertest": "^7.2.0",
79
- "@vitest/coverage-v8": "^3.2.4",
80
- "express": "^5.2.1",
81
- "rimraf": "^6.0.1",
82
- "supertest": "^7.2.2",
83
- "typescript": "^5.7.3",
84
- "vitest": "^3.0.5"
85
- }
86
- }
1
+ {
2
+ "name": "forgecraft-mcp",
3
+ "version": "1.4.0",
4
+ "mcpName": "io.github.jghiringhelli/forgecraft",
5
+ "description": "CLI + MCP sentinel for engineering standards — SOLID, testing, architecture, CI/CD — auto-tailored to your stack. Minimal MCP footprint (~200 tokens) via CLI-first design.",
6
+ "type": "module",
7
+ "main": "dist/index.js",
8
+ "bin": {
9
+ "forgecraft-mcp": "dist/index.js"
10
+ },
11
+ "scripts": {
12
+ "build": "tsc",
13
+ "dev": "tsc --watch",
14
+ "start": "node dist/index.js",
15
+ "serve": "node dist/http-server.js",
16
+ "test": "vitest run",
17
+ "test:watch": "vitest",
18
+ "test:coverage": "vitest run --coverage",
19
+ "test:mutation": "stryker run",
20
+ "test:mutation:ci": "stryker run --reporters progress,clear-text",
21
+ "test:mutation:sentinel": "stryker run stryker.sentinel.json",
22
+ "lint": "eslint src/",
23
+ "clean": "rimraf dist",
24
+ "prepare": "node -e \"if(require('fs').existsSync('.git')&&require('fs').existsSync('scripts/setup-hooks.sh')){require('child_process').execSync('bash scripts/setup-hooks.sh',{stdio:'inherit'})}\"",
25
+ "prepublishOnly": "npm run clean && npm run build",
26
+ "export:taxonomy": "npx ts-node --esm scripts/export-taxonomy.ts"
27
+ },
28
+ "keywords": [
29
+ "mcp",
30
+ "mcp-server",
31
+ "model-context-protocol",
32
+ "claude",
33
+ "claude-code",
34
+ "github-copilot",
35
+ "copilot",
36
+ "cursor",
37
+ "windsurf",
38
+ "ai-coding",
39
+ "scaffolding",
40
+ "project-setup",
41
+ "developer-tools",
42
+ "code-quality",
43
+ "engineering-standards",
44
+ "solid-principles",
45
+ "testing",
46
+ "architecture",
47
+ "claude-md"
48
+ ],
49
+ "author": "JC",
50
+ "license": "MIT",
51
+ "repository": {
52
+ "type": "git",
53
+ "url": "git+https://github.com/jghiringhelli/forgecraft-mcp.git"
54
+ },
55
+ "homepage": "https://forgecraft.tools",
56
+ "bugs": {
57
+ "url": "https://github.com/jghiringhelli/forgecraft-mcp/issues"
58
+ },
59
+ "engines": {
60
+ "node": ">=18.0.0"
61
+ },
62
+ "files": [
63
+ "dist/",
64
+ "templates/",
65
+ "README.md"
66
+ ],
67
+ "dependencies": {
68
+ "@modelcontextprotocol/sdk": "^1.12.1",
69
+ "js-yaml": "^4.1.0",
70
+ "zod": "^3.24.2"
71
+ },
72
+ "devDependencies": {
73
+ "@stryker-mutator/core": "^9.6.0",
74
+ "@stryker-mutator/vitest-runner": "^9.6.0",
75
+ "@types/express": "^5.0.6",
76
+ "@types/js-yaml": "^4.0.9",
77
+ "@types/node": "^22.13.4",
78
+ "@types/supertest": "^7.2.0",
79
+ "@typescript-eslint/eslint-plugin": "^8.58.0",
80
+ "@typescript-eslint/parser": "^8.58.0",
81
+ "@vitest/coverage-v8": "^3.2.4",
82
+ "eslint": "^10.1.0",
83
+ "express": "^5.2.1",
84
+ "rimraf": "^6.0.1",
85
+ "supertest": "^7.2.2",
86
+ "typescript": "^5.7.3",
87
+ "vitest": "^3.0.5"
88
+ }
89
+ }
@@ -1,37 +1,37 @@
1
- tag: ANALYTICS
2
- section: instructions
3
- blocks:
4
- - id: analytics-architecture
5
- tier: recommended
6
- title: "Analytics & Data Warehouse Standards"
7
- content: |
8
- ## Analytics & Data Warehouse Standards
9
-
10
- ### Architecture — Separation of Concerns
11
- Operational database and analytical database are SEPARATE systems. Never run analytical
12
- queries against your production OLTP database.
13
-
14
- ### Event Collection — Instrument Everything
15
- - Every significant user action and system event emits a structured event.
16
- - Events are immutable, append-only, timestamped, and include context.
17
- - Event schema versioned — schema registry or embedded version field.
18
- - Events flow through a pipeline: collect → validate → enrich → store → aggregate.
19
- - NO direct writes to analytical store from application code.
20
-
21
- ### Aggregation Layers
22
- Raw events are for debugging and backfilling. Everything else reads from aggregations.
23
-
24
- | Layer | Granularity | Refresh | Use Case |
25
- |-------|------------|---------|----------|
26
- | Real-time | Per-event or 1-min | Streaming | Live dashboards, alerts |
27
- | Hourly | 1-hour buckets | Scheduled | Operational dashboards |
28
- | Daily | 1-day buckets | Nightly | Business reports, KPIs |
29
- | Weekly/Monthly | Week/month | Scheduled | Executive reporting |
30
-
31
- ### Reporting
32
- - Dashboards read ONLY from aggregated views.
33
- - Three tiers: Operational (real-time), Tactical (daily), Strategic (weekly/monthly).
34
-
35
- ### Signals & Prediction
36
- - Signals are pre-computed and stored, not computed on-demand.
37
- - Every signal has: value, confidence, computed_at, TTL/expiry.
1
+ tag: ANALYTICS
2
+ section: instructions
3
+ blocks:
4
+ - id: analytics-architecture
5
+ tier: recommended
6
+ title: "Analytics & Data Warehouse Standards"
7
+ content: |
8
+ ## Analytics & Data Warehouse Standards
9
+
10
+ ### Architecture — Separation of Concerns
11
+ Operational database and analytical database are SEPARATE systems. Never run analytical
12
+ queries against your production OLTP database.
13
+
14
+ ### Event Collection — Instrument Everything
15
+ - Every significant user action and system event emits a structured event.
16
+ - Events are immutable, append-only, timestamped, and include context.
17
+ - Event schema versioned — schema registry or embedded version field.
18
+ - Events flow through a pipeline: collect → validate → enrich → store → aggregate.
19
+ - NO direct writes to analytical store from application code.
20
+
21
+ ### Aggregation Layers
22
+ Raw events are for debugging and backfilling. Everything else reads from aggregations.
23
+
24
+ | Layer | Granularity | Refresh | Use Case |
25
+ |-------|------------|---------|----------|
26
+ | Real-time | Per-event or 1-min | Streaming | Live dashboards, alerts |
27
+ | Hourly | 1-hour buckets | Scheduled | Operational dashboards |
28
+ | Daily | 1-day buckets | Nightly | Business reports, KPIs |
29
+ | Weekly/Monthly | Week/month | Scheduled | Executive reporting |
30
+
31
+ ### Reporting
32
+ - Dashboards read ONLY from aggregated views.
33
+ - Three tiers: Operational (real-time), Tactical (daily), Strategic (weekly/monthly).
34
+
35
+ ### Signals & Prediction
36
+ - Signals are pre-computed and stored, not computed on-demand.
37
+ - Every signal has: value, confidence, computed_at, TTL/expiry.
@@ -1,11 +1,11 @@
1
- tag: ANALYTICS
2
- section: mcp-servers
3
- servers:
4
- - name: chrome-devtools
5
- description: "Chrome DevTools integration for debugging, profiling, and network inspection"
6
- command: npx
7
- args: ["-y", "@anthropic/chrome-devtools-mcp@latest"]
8
- tags: [WEB-REACT, WEB-STATIC, ANALYTICS]
9
- category: devtools
10
- tier: recommended
11
- url: "https://github.com/anthropics/anthropic-quickstarts/tree/main/chrome-devtools-mcp"
1
+ tag: ANALYTICS
2
+ section: mcp-servers
3
+ servers:
4
+ - name: chrome-devtools
5
+ description: "Chrome DevTools integration for debugging, profiling, and network inspection"
6
+ command: npx
7
+ args: ["-y", "@anthropic/chrome-devtools-mcp@latest"]
8
+ tags: [WEB-REACT, WEB-STATIC, ANALYTICS]
9
+ category: devtools
10
+ tier: recommended
11
+ url: "https://github.com/anthropics/anthropic-quickstarts/tree/main/chrome-devtools-mcp"
@@ -1,25 +1,25 @@
1
- tag: ANALYTICS
2
- section: structure
3
- language: typescript
4
- entries:
5
- - path: src/analytics/events
6
- type: directory
7
- description: "Event type definitions, emitter, validator"
8
- - path: src/analytics/events/schema.ts
9
- type: file
10
- description: "Typed, versioned event definitions"
11
- - path: src/analytics/events/emitter.ts
12
- type: file
13
- description: "Event emission interface"
14
- - path: src/analytics/pipeline
15
- type: directory
16
- description: "Event collection, processing, dead-letter"
17
- - path: src/analytics/aggregations
18
- type: directory
19
- description: "Aggregation definitions and scheduling"
20
- - path: src/analytics/signals
21
- type: directory
22
- description: "Pre-computed signal service"
23
- - path: src/analytics/dashboards
24
- type: directory
25
- description: "Dashboard config as code"
1
+ tag: ANALYTICS
2
+ section: structure
3
+ language: typescript
4
+ entries:
5
+ - path: src/analytics/events
6
+ type: directory
7
+ description: "Event type definitions, emitter, validator"
8
+ - path: src/analytics/events/schema.ts
9
+ type: file
10
+ description: "Typed, versioned event definitions"
11
+ - path: src/analytics/events/emitter.ts
12
+ type: file
13
+ description: "Event emission interface"
14
+ - path: src/analytics/pipeline
15
+ type: directory
16
+ description: "Event collection, processing, dead-letter"
17
+ - path: src/analytics/aggregations
18
+ type: directory
19
+ description: "Aggregation definitions and scheduling"
20
+ - path: src/analytics/signals
21
+ type: directory
22
+ description: "Pre-computed signal service"
23
+ - path: src/analytics/dashboards
24
+ type: directory
25
+ description: "Dashboard config as code"