@garygentry/feature-forge 0.2.12 → 0.2.14

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 (393) hide show
  1. package/adapters/GENERATION-REPORT.md +1 -0
  2. package/adapters/claude/.feature-forge-bundle.json +1 -1
  3. package/adapters/claude/references/epic-manifest-schema.json +5 -0
  4. package/adapters/claude/references/forge-config-schema.json +5 -0
  5. package/adapters/claude/references/shared-conventions.md +12 -0
  6. package/adapters/claude/references/stacks/_generic.md +21 -0
  7. package/adapters/claude/references/stacks/go.md +19 -0
  8. package/adapters/claude/references/stacks/python.md +21 -0
  9. package/adapters/claude/references/stacks/rust.md +19 -0
  10. package/adapters/claude/references/stacks/typescript.md +23 -0
  11. package/adapters/claude/scripts/epic-manifest.py +284 -5
  12. package/adapters/claude/scripts/forge-bootstrap.py +1 -0
  13. package/adapters/claude/scripts/forge-init.sh +2 -0
  14. package/adapters/claude/scripts/forge-root.sh +55 -11
  15. package/adapters/claude/scripts/forge-session.py +38 -1
  16. package/adapters/claude/skills/forge/SKILL.md +9 -1
  17. package/adapters/claude/skills/forge/references/pipeline-state-schema.json +191 -0
  18. package/adapters/claude/skills/forge/references/process-overview.md +143 -0
  19. package/adapters/claude/skills/forge/references/shared-conventions.md +295 -0
  20. package/adapters/claude/skills/forge/references/stage-exit-protocol.md +258 -0
  21. package/adapters/claude/skills/forge-0-epic/references/epic-manifest-subcommands.md +11 -0
  22. package/adapters/claude/skills/forge-0-epic/references/pipeline-state-schema.json +191 -0
  23. package/adapters/claude/skills/forge-0-epic/references/portable-root.md +71 -0
  24. package/adapters/claude/skills/forge-0-epic/references/shared-conventions.md +295 -0
  25. package/adapters/claude/skills/forge-0-epic/references/stage-exit-protocol.md +258 -0
  26. package/adapters/claude/skills/forge-1-prd/SKILL.md +2 -0
  27. package/adapters/claude/skills/forge-1-prd/references/pipeline-state-schema.json +191 -0
  28. package/adapters/claude/skills/forge-1-prd/references/shared-conventions.md +295 -0
  29. package/adapters/claude/skills/forge-1-prd/references/stage-exit-protocol.md +258 -0
  30. package/adapters/claude/skills/forge-2-tech/SKILL.md +3 -1
  31. package/adapters/claude/skills/forge-2-tech/references/pipeline-state-schema.json +191 -0
  32. package/adapters/claude/skills/forge-2-tech/references/shared-conventions.md +295 -0
  33. package/adapters/claude/skills/forge-2-tech/references/stack-resolution.md +54 -0
  34. package/adapters/claude/skills/forge-2-tech/references/stacks/_generic.md +111 -0
  35. package/adapters/claude/skills/forge-2-tech/references/stacks/go.md +157 -0
  36. package/adapters/claude/skills/forge-2-tech/references/stacks/python.md +184 -0
  37. package/adapters/claude/skills/forge-2-tech/references/stacks/rust.md +170 -0
  38. package/adapters/claude/skills/forge-2-tech/references/stacks/typescript.md +134 -0
  39. package/adapters/claude/skills/forge-2-tech/references/stage-exit-protocol.md +258 -0
  40. package/adapters/claude/skills/forge-3-specs/SKILL.md +2 -0
  41. package/adapters/claude/skills/forge-3-specs/references/pipeline-state-schema.json +191 -0
  42. package/adapters/claude/skills/forge-3-specs/references/shared-conventions.md +295 -0
  43. package/adapters/claude/skills/forge-3-specs/references/stacks/_generic.md +111 -0
  44. package/adapters/claude/skills/forge-3-specs/references/stacks/go.md +157 -0
  45. package/adapters/claude/skills/forge-3-specs/references/stacks/python.md +184 -0
  46. package/adapters/claude/skills/forge-3-specs/references/stacks/rust.md +170 -0
  47. package/adapters/claude/skills/forge-3-specs/references/stacks/typescript.md +134 -0
  48. package/adapters/claude/skills/forge-3-specs/references/stage-exit-protocol.md +258 -0
  49. package/adapters/claude/skills/forge-4-backlog/SKILL.md +5 -0
  50. package/adapters/claude/skills/forge-4-backlog/references/forge-config-schema.json +236 -0
  51. package/adapters/claude/skills/forge-4-backlog/references/pipeline-state-schema.json +191 -0
  52. package/adapters/claude/skills/forge-4-backlog/references/shared-conventions.md +295 -0
  53. package/adapters/claude/skills/forge-4-backlog/references/stage-exit-protocol.md +258 -0
  54. package/adapters/claude/skills/forge-5-loop/SKILL.md +7 -9
  55. package/adapters/claude/skills/forge-5-loop/references/forge-config-schema.json +236 -0
  56. package/adapters/claude/skills/forge-5-loop/references/ralph-loop-contract.md +221 -0
  57. package/adapters/claude/skills/forge-5-loop/references/runner-contract.md +41 -0
  58. package/adapters/claude/skills/forge-5-loop/references/shared-conventions.md +295 -0
  59. package/adapters/claude/skills/forge-5-loop/references/stage-exit-protocol.md +258 -0
  60. package/adapters/claude/skills/forge-6-docs/SKILL.md +4 -1
  61. package/adapters/claude/skills/forge-6-docs/references/pipeline-state-schema.json +191 -0
  62. package/adapters/claude/skills/forge-6-docs/references/shared-conventions.md +295 -0
  63. package/adapters/claude/skills/forge-fix/references/shared-conventions.md +295 -0
  64. package/adapters/claude/skills/forge-fix/references/stage-exit-protocol.md +258 -0
  65. package/adapters/claude/skills/forge-guide/references/forge-config-schema.json +236 -0
  66. package/adapters/claude/skills/forge-guide/references/process-overview.md +143 -0
  67. package/adapters/claude/skills/forge-guide/references/ralph-loop-contract.md +221 -0
  68. package/adapters/claude/skills/forge-guide/references/shared-conventions.md +295 -0
  69. package/adapters/claude/skills/forge-guide/references/stack-resolution.md +54 -0
  70. package/adapters/claude/skills/forge-guide/references/stacks/_generic.md +111 -0
  71. package/adapters/claude/skills/forge-guide/references/stacks/go.md +157 -0
  72. package/adapters/claude/skills/forge-guide/references/stacks/python.md +184 -0
  73. package/adapters/claude/skills/forge-guide/references/stacks/rust.md +170 -0
  74. package/adapters/claude/skills/forge-guide/references/stacks/typescript.md +134 -0
  75. package/adapters/claude/skills/forge-init/SKILL.md +1 -0
  76. package/adapters/claude/skills/forge-verify/SKILL.md +5 -4
  77. package/adapters/claude/skills/forge-verify/references/pipeline-state-schema.json +191 -0
  78. package/adapters/claude/skills/forge-verify/references/shared-conventions.md +295 -0
  79. package/adapters/claude/skills/forge-verify/references/verification-checklists.md +88 -2
  80. package/adapters/codex/.feature-forge-bundle.json +1 -1
  81. package/adapters/codex/references/epic-manifest-schema.json +5 -0
  82. package/adapters/codex/references/forge-config-schema.json +5 -0
  83. package/adapters/codex/references/shared-conventions.md +12 -0
  84. package/adapters/codex/references/stacks/_generic.md +21 -0
  85. package/adapters/codex/references/stacks/go.md +19 -0
  86. package/adapters/codex/references/stacks/python.md +21 -0
  87. package/adapters/codex/references/stacks/rust.md +19 -0
  88. package/adapters/codex/references/stacks/typescript.md +23 -0
  89. package/adapters/codex/scripts/epic-manifest.py +284 -5
  90. package/adapters/codex/scripts/forge-bootstrap.py +1 -0
  91. package/adapters/codex/scripts/forge-init.sh +2 -0
  92. package/adapters/codex/scripts/forge-root.sh +55 -11
  93. package/adapters/codex/scripts/forge-session.py +38 -1
  94. package/adapters/codex/skills/forge/SKILL.md +9 -1
  95. package/adapters/codex/skills/forge/references/pipeline-state-schema.json +191 -0
  96. package/adapters/codex/skills/forge/references/process-overview.md +143 -0
  97. package/adapters/codex/skills/forge/references/shared-conventions.md +295 -0
  98. package/adapters/codex/skills/forge/references/stage-exit-protocol.md +258 -0
  99. package/adapters/codex/skills/forge-0-epic/references/epic-manifest-subcommands.md +11 -0
  100. package/adapters/codex/skills/forge-0-epic/references/pipeline-state-schema.json +191 -0
  101. package/adapters/codex/skills/forge-0-epic/references/portable-root.md +71 -0
  102. package/adapters/codex/skills/forge-0-epic/references/shared-conventions.md +295 -0
  103. package/adapters/codex/skills/forge-0-epic/references/stage-exit-protocol.md +258 -0
  104. package/adapters/codex/skills/forge-1-prd/SKILL.md +2 -0
  105. package/adapters/codex/skills/forge-1-prd/references/pipeline-state-schema.json +191 -0
  106. package/adapters/codex/skills/forge-1-prd/references/shared-conventions.md +295 -0
  107. package/adapters/codex/skills/forge-1-prd/references/stage-exit-protocol.md +258 -0
  108. package/adapters/codex/skills/forge-2-tech/SKILL.md +3 -1
  109. package/adapters/codex/skills/forge-2-tech/references/pipeline-state-schema.json +191 -0
  110. package/adapters/codex/skills/forge-2-tech/references/shared-conventions.md +295 -0
  111. package/adapters/codex/skills/forge-2-tech/references/stack-resolution.md +54 -0
  112. package/adapters/codex/skills/forge-2-tech/references/stacks/_generic.md +111 -0
  113. package/adapters/codex/skills/forge-2-tech/references/stacks/go.md +157 -0
  114. package/adapters/codex/skills/forge-2-tech/references/stacks/python.md +184 -0
  115. package/adapters/codex/skills/forge-2-tech/references/stacks/rust.md +170 -0
  116. package/adapters/codex/skills/forge-2-tech/references/stacks/typescript.md +134 -0
  117. package/adapters/codex/skills/forge-2-tech/references/stage-exit-protocol.md +258 -0
  118. package/adapters/codex/skills/forge-3-specs/SKILL.md +2 -0
  119. package/adapters/codex/skills/forge-3-specs/references/pipeline-state-schema.json +191 -0
  120. package/adapters/codex/skills/forge-3-specs/references/shared-conventions.md +295 -0
  121. package/adapters/codex/skills/forge-3-specs/references/stacks/_generic.md +111 -0
  122. package/adapters/codex/skills/forge-3-specs/references/stacks/go.md +157 -0
  123. package/adapters/codex/skills/forge-3-specs/references/stacks/python.md +184 -0
  124. package/adapters/codex/skills/forge-3-specs/references/stacks/rust.md +170 -0
  125. package/adapters/codex/skills/forge-3-specs/references/stacks/typescript.md +134 -0
  126. package/adapters/codex/skills/forge-3-specs/references/stage-exit-protocol.md +258 -0
  127. package/adapters/codex/skills/forge-4-backlog/SKILL.md +5 -0
  128. package/adapters/codex/skills/forge-4-backlog/references/forge-config-schema.json +236 -0
  129. package/adapters/codex/skills/forge-4-backlog/references/pipeline-state-schema.json +191 -0
  130. package/adapters/codex/skills/forge-4-backlog/references/shared-conventions.md +295 -0
  131. package/adapters/codex/skills/forge-4-backlog/references/stage-exit-protocol.md +258 -0
  132. package/adapters/codex/skills/forge-5-loop/SKILL.md +7 -9
  133. package/adapters/codex/skills/forge-5-loop/references/forge-config-schema.json +236 -0
  134. package/adapters/codex/skills/forge-5-loop/references/ralph-loop-contract.md +221 -0
  135. package/adapters/codex/skills/forge-5-loop/references/runner-contract.md +41 -0
  136. package/adapters/codex/skills/forge-5-loop/references/shared-conventions.md +295 -0
  137. package/adapters/codex/skills/forge-5-loop/references/stage-exit-protocol.md +258 -0
  138. package/adapters/codex/skills/forge-6-docs/SKILL.md +4 -1
  139. package/adapters/codex/skills/forge-6-docs/references/pipeline-state-schema.json +191 -0
  140. package/adapters/codex/skills/forge-6-docs/references/shared-conventions.md +295 -0
  141. package/adapters/codex/skills/forge-fix/references/shared-conventions.md +295 -0
  142. package/adapters/codex/skills/forge-fix/references/stage-exit-protocol.md +258 -0
  143. package/adapters/codex/skills/forge-guide/references/forge-config-schema.json +236 -0
  144. package/adapters/codex/skills/forge-guide/references/process-overview.md +143 -0
  145. package/adapters/codex/skills/forge-guide/references/ralph-loop-contract.md +221 -0
  146. package/adapters/codex/skills/forge-guide/references/shared-conventions.md +295 -0
  147. package/adapters/codex/skills/forge-guide/references/stack-resolution.md +54 -0
  148. package/adapters/codex/skills/forge-guide/references/stacks/_generic.md +111 -0
  149. package/adapters/codex/skills/forge-guide/references/stacks/go.md +157 -0
  150. package/adapters/codex/skills/forge-guide/references/stacks/python.md +184 -0
  151. package/adapters/codex/skills/forge-guide/references/stacks/rust.md +170 -0
  152. package/adapters/codex/skills/forge-guide/references/stacks/typescript.md +134 -0
  153. package/adapters/codex/skills/forge-init/SKILL.md +1 -0
  154. package/adapters/codex/skills/forge-verify/SKILL.md +5 -4
  155. package/adapters/codex/skills/forge-verify/references/pipeline-state-schema.json +191 -0
  156. package/adapters/codex/skills/forge-verify/references/shared-conventions.md +295 -0
  157. package/adapters/codex/skills/forge-verify/references/verification-checklists.md +88 -2
  158. package/adapters/copilot/.feature-forge-bundle.json +1 -1
  159. package/adapters/copilot/references/epic-manifest-schema.json +5 -0
  160. package/adapters/copilot/references/forge-config-schema.json +5 -0
  161. package/adapters/copilot/references/shared-conventions.md +12 -0
  162. package/adapters/copilot/references/stacks/_generic.md +21 -0
  163. package/adapters/copilot/references/stacks/go.md +19 -0
  164. package/adapters/copilot/references/stacks/python.md +21 -0
  165. package/adapters/copilot/references/stacks/rust.md +19 -0
  166. package/adapters/copilot/references/stacks/typescript.md +23 -0
  167. package/adapters/copilot/scripts/epic-manifest.py +284 -5
  168. package/adapters/copilot/scripts/forge-bootstrap.py +1 -0
  169. package/adapters/copilot/scripts/forge-init.sh +2 -0
  170. package/adapters/copilot/scripts/forge-root.sh +55 -11
  171. package/adapters/copilot/scripts/forge-session.py +38 -1
  172. package/adapters/copilot/skills/forge/forge.md +9 -1
  173. package/adapters/copilot/skills/forge/references/pipeline-state-schema.json +191 -0
  174. package/adapters/copilot/skills/forge/references/process-overview.md +143 -0
  175. package/adapters/copilot/skills/forge/references/shared-conventions.md +295 -0
  176. package/adapters/copilot/skills/forge/references/stage-exit-protocol.md +258 -0
  177. package/adapters/copilot/skills/forge-0-epic/references/epic-manifest-subcommands.md +11 -0
  178. package/adapters/copilot/skills/forge-0-epic/references/pipeline-state-schema.json +191 -0
  179. package/adapters/copilot/skills/forge-0-epic/references/portable-root.md +71 -0
  180. package/adapters/copilot/skills/forge-0-epic/references/shared-conventions.md +295 -0
  181. package/adapters/copilot/skills/forge-0-epic/references/stage-exit-protocol.md +258 -0
  182. package/adapters/copilot/skills/forge-1-prd/forge-1-prd.md +2 -0
  183. package/adapters/copilot/skills/forge-1-prd/references/pipeline-state-schema.json +191 -0
  184. package/adapters/copilot/skills/forge-1-prd/references/shared-conventions.md +295 -0
  185. package/adapters/copilot/skills/forge-1-prd/references/stage-exit-protocol.md +258 -0
  186. package/adapters/copilot/skills/forge-2-tech/forge-2-tech.md +3 -1
  187. package/adapters/copilot/skills/forge-2-tech/references/pipeline-state-schema.json +191 -0
  188. package/adapters/copilot/skills/forge-2-tech/references/shared-conventions.md +295 -0
  189. package/adapters/copilot/skills/forge-2-tech/references/stack-resolution.md +54 -0
  190. package/adapters/copilot/skills/forge-2-tech/references/stacks/_generic.md +111 -0
  191. package/adapters/copilot/skills/forge-2-tech/references/stacks/go.md +157 -0
  192. package/adapters/copilot/skills/forge-2-tech/references/stacks/python.md +184 -0
  193. package/adapters/copilot/skills/forge-2-tech/references/stacks/rust.md +170 -0
  194. package/adapters/copilot/skills/forge-2-tech/references/stacks/typescript.md +134 -0
  195. package/adapters/copilot/skills/forge-2-tech/references/stage-exit-protocol.md +258 -0
  196. package/adapters/copilot/skills/forge-3-specs/forge-3-specs.md +2 -0
  197. package/adapters/copilot/skills/forge-3-specs/references/pipeline-state-schema.json +191 -0
  198. package/adapters/copilot/skills/forge-3-specs/references/shared-conventions.md +295 -0
  199. package/adapters/copilot/skills/forge-3-specs/references/stacks/_generic.md +111 -0
  200. package/adapters/copilot/skills/forge-3-specs/references/stacks/go.md +157 -0
  201. package/adapters/copilot/skills/forge-3-specs/references/stacks/python.md +184 -0
  202. package/adapters/copilot/skills/forge-3-specs/references/stacks/rust.md +170 -0
  203. package/adapters/copilot/skills/forge-3-specs/references/stacks/typescript.md +134 -0
  204. package/adapters/copilot/skills/forge-3-specs/references/stage-exit-protocol.md +258 -0
  205. package/adapters/copilot/skills/forge-4-backlog/forge-4-backlog.md +5 -0
  206. package/adapters/copilot/skills/forge-4-backlog/references/forge-config-schema.json +236 -0
  207. package/adapters/copilot/skills/forge-4-backlog/references/pipeline-state-schema.json +191 -0
  208. package/adapters/copilot/skills/forge-4-backlog/references/shared-conventions.md +295 -0
  209. package/adapters/copilot/skills/forge-4-backlog/references/stage-exit-protocol.md +258 -0
  210. package/adapters/copilot/skills/forge-5-loop/forge-5-loop.md +7 -9
  211. package/adapters/copilot/skills/forge-5-loop/references/forge-config-schema.json +236 -0
  212. package/adapters/copilot/skills/forge-5-loop/references/ralph-loop-contract.md +221 -0
  213. package/adapters/copilot/skills/forge-5-loop/references/runner-contract.md +41 -0
  214. package/adapters/copilot/skills/forge-5-loop/references/shared-conventions.md +295 -0
  215. package/adapters/copilot/skills/forge-5-loop/references/stage-exit-protocol.md +258 -0
  216. package/adapters/copilot/skills/forge-6-docs/forge-6-docs.md +4 -1
  217. package/adapters/copilot/skills/forge-6-docs/references/pipeline-state-schema.json +191 -0
  218. package/adapters/copilot/skills/forge-6-docs/references/shared-conventions.md +295 -0
  219. package/adapters/copilot/skills/forge-fix/references/shared-conventions.md +295 -0
  220. package/adapters/copilot/skills/forge-fix/references/stage-exit-protocol.md +258 -0
  221. package/adapters/copilot/skills/forge-guide/references/forge-config-schema.json +236 -0
  222. package/adapters/copilot/skills/forge-guide/references/process-overview.md +143 -0
  223. package/adapters/copilot/skills/forge-guide/references/ralph-loop-contract.md +221 -0
  224. package/adapters/copilot/skills/forge-guide/references/shared-conventions.md +295 -0
  225. package/adapters/copilot/skills/forge-guide/references/stack-resolution.md +54 -0
  226. package/adapters/copilot/skills/forge-guide/references/stacks/_generic.md +111 -0
  227. package/adapters/copilot/skills/forge-guide/references/stacks/go.md +157 -0
  228. package/adapters/copilot/skills/forge-guide/references/stacks/python.md +184 -0
  229. package/adapters/copilot/skills/forge-guide/references/stacks/rust.md +170 -0
  230. package/adapters/copilot/skills/forge-guide/references/stacks/typescript.md +134 -0
  231. package/adapters/copilot/skills/forge-init/forge-init.md +1 -0
  232. package/adapters/copilot/skills/forge-verify/forge-verify.md +5 -4
  233. package/adapters/copilot/skills/forge-verify/references/pipeline-state-schema.json +191 -0
  234. package/adapters/copilot/skills/forge-verify/references/shared-conventions.md +295 -0
  235. package/adapters/copilot/skills/forge-verify/references/verification-checklists.md +88 -2
  236. package/adapters/cursor/.feature-forge-bundle.json +1 -1
  237. package/adapters/cursor/references/epic-manifest-schema.json +5 -0
  238. package/adapters/cursor/references/forge-config-schema.json +5 -0
  239. package/adapters/cursor/references/shared-conventions.md +12 -0
  240. package/adapters/cursor/references/stacks/_generic.md +21 -0
  241. package/adapters/cursor/references/stacks/go.md +19 -0
  242. package/adapters/cursor/references/stacks/python.md +21 -0
  243. package/adapters/cursor/references/stacks/rust.md +19 -0
  244. package/adapters/cursor/references/stacks/typescript.md +23 -0
  245. package/adapters/cursor/scripts/epic-manifest.py +284 -5
  246. package/adapters/cursor/scripts/forge-bootstrap.py +1 -0
  247. package/adapters/cursor/scripts/forge-init.sh +2 -0
  248. package/adapters/cursor/scripts/forge-root.sh +55 -11
  249. package/adapters/cursor/scripts/forge-session.py +38 -1
  250. package/adapters/cursor/skills/forge/forge.mdc +9 -1
  251. package/adapters/cursor/skills/forge/references/pipeline-state-schema.json +191 -0
  252. package/adapters/cursor/skills/forge/references/process-overview.md +143 -0
  253. package/adapters/cursor/skills/forge/references/shared-conventions.md +295 -0
  254. package/adapters/cursor/skills/forge/references/stage-exit-protocol.md +258 -0
  255. package/adapters/cursor/skills/forge-0-epic/references/epic-manifest-subcommands.md +11 -0
  256. package/adapters/cursor/skills/forge-0-epic/references/pipeline-state-schema.json +191 -0
  257. package/adapters/cursor/skills/forge-0-epic/references/portable-root.md +71 -0
  258. package/adapters/cursor/skills/forge-0-epic/references/shared-conventions.md +295 -0
  259. package/adapters/cursor/skills/forge-0-epic/references/stage-exit-protocol.md +258 -0
  260. package/adapters/cursor/skills/forge-1-prd/forge-1-prd.mdc +2 -0
  261. package/adapters/cursor/skills/forge-1-prd/references/pipeline-state-schema.json +191 -0
  262. package/adapters/cursor/skills/forge-1-prd/references/shared-conventions.md +295 -0
  263. package/adapters/cursor/skills/forge-1-prd/references/stage-exit-protocol.md +258 -0
  264. package/adapters/cursor/skills/forge-2-tech/forge-2-tech.mdc +3 -1
  265. package/adapters/cursor/skills/forge-2-tech/references/pipeline-state-schema.json +191 -0
  266. package/adapters/cursor/skills/forge-2-tech/references/shared-conventions.md +295 -0
  267. package/adapters/cursor/skills/forge-2-tech/references/stack-resolution.md +54 -0
  268. package/adapters/cursor/skills/forge-2-tech/references/stacks/_generic.md +111 -0
  269. package/adapters/cursor/skills/forge-2-tech/references/stacks/go.md +157 -0
  270. package/adapters/cursor/skills/forge-2-tech/references/stacks/python.md +184 -0
  271. package/adapters/cursor/skills/forge-2-tech/references/stacks/rust.md +170 -0
  272. package/adapters/cursor/skills/forge-2-tech/references/stacks/typescript.md +134 -0
  273. package/adapters/cursor/skills/forge-2-tech/references/stage-exit-protocol.md +258 -0
  274. package/adapters/cursor/skills/forge-3-specs/forge-3-specs.mdc +2 -0
  275. package/adapters/cursor/skills/forge-3-specs/references/pipeline-state-schema.json +191 -0
  276. package/adapters/cursor/skills/forge-3-specs/references/shared-conventions.md +295 -0
  277. package/adapters/cursor/skills/forge-3-specs/references/stacks/_generic.md +111 -0
  278. package/adapters/cursor/skills/forge-3-specs/references/stacks/go.md +157 -0
  279. package/adapters/cursor/skills/forge-3-specs/references/stacks/python.md +184 -0
  280. package/adapters/cursor/skills/forge-3-specs/references/stacks/rust.md +170 -0
  281. package/adapters/cursor/skills/forge-3-specs/references/stacks/typescript.md +134 -0
  282. package/adapters/cursor/skills/forge-3-specs/references/stage-exit-protocol.md +258 -0
  283. package/adapters/cursor/skills/forge-4-backlog/forge-4-backlog.mdc +5 -0
  284. package/adapters/cursor/skills/forge-4-backlog/references/forge-config-schema.json +236 -0
  285. package/adapters/cursor/skills/forge-4-backlog/references/pipeline-state-schema.json +191 -0
  286. package/adapters/cursor/skills/forge-4-backlog/references/shared-conventions.md +295 -0
  287. package/adapters/cursor/skills/forge-4-backlog/references/stage-exit-protocol.md +258 -0
  288. package/adapters/cursor/skills/forge-5-loop/forge-5-loop.mdc +7 -9
  289. package/adapters/cursor/skills/forge-5-loop/references/forge-config-schema.json +236 -0
  290. package/adapters/cursor/skills/forge-5-loop/references/ralph-loop-contract.md +221 -0
  291. package/adapters/cursor/skills/forge-5-loop/references/runner-contract.md +41 -0
  292. package/adapters/cursor/skills/forge-5-loop/references/shared-conventions.md +295 -0
  293. package/adapters/cursor/skills/forge-5-loop/references/stage-exit-protocol.md +258 -0
  294. package/adapters/cursor/skills/forge-6-docs/forge-6-docs.mdc +4 -1
  295. package/adapters/cursor/skills/forge-6-docs/references/pipeline-state-schema.json +191 -0
  296. package/adapters/cursor/skills/forge-6-docs/references/shared-conventions.md +295 -0
  297. package/adapters/cursor/skills/forge-fix/references/shared-conventions.md +295 -0
  298. package/adapters/cursor/skills/forge-fix/references/stage-exit-protocol.md +258 -0
  299. package/adapters/cursor/skills/forge-guide/references/forge-config-schema.json +236 -0
  300. package/adapters/cursor/skills/forge-guide/references/process-overview.md +143 -0
  301. package/adapters/cursor/skills/forge-guide/references/ralph-loop-contract.md +221 -0
  302. package/adapters/cursor/skills/forge-guide/references/shared-conventions.md +295 -0
  303. package/adapters/cursor/skills/forge-guide/references/stack-resolution.md +54 -0
  304. package/adapters/cursor/skills/forge-guide/references/stacks/_generic.md +111 -0
  305. package/adapters/cursor/skills/forge-guide/references/stacks/go.md +157 -0
  306. package/adapters/cursor/skills/forge-guide/references/stacks/python.md +184 -0
  307. package/adapters/cursor/skills/forge-guide/references/stacks/rust.md +170 -0
  308. package/adapters/cursor/skills/forge-guide/references/stacks/typescript.md +134 -0
  309. package/adapters/cursor/skills/forge-init/forge-init.mdc +1 -0
  310. package/adapters/cursor/skills/forge-verify/forge-verify.mdc +5 -4
  311. package/adapters/cursor/skills/forge-verify/references/pipeline-state-schema.json +191 -0
  312. package/adapters/cursor/skills/forge-verify/references/shared-conventions.md +295 -0
  313. package/adapters/cursor/skills/forge-verify/references/verification-checklists.md +88 -2
  314. package/adapters/gemini/.feature-forge-bundle.json +1 -1
  315. package/adapters/gemini/gemini-extension.json +1 -1
  316. package/adapters/gemini/references/epic-manifest-schema.json +5 -0
  317. package/adapters/gemini/references/forge-config-schema.json +5 -0
  318. package/adapters/gemini/references/shared-conventions.md +12 -0
  319. package/adapters/gemini/references/stacks/_generic.md +21 -0
  320. package/adapters/gemini/references/stacks/go.md +19 -0
  321. package/adapters/gemini/references/stacks/python.md +21 -0
  322. package/adapters/gemini/references/stacks/rust.md +19 -0
  323. package/adapters/gemini/references/stacks/typescript.md +23 -0
  324. package/adapters/gemini/scripts/epic-manifest.py +284 -5
  325. package/adapters/gemini/scripts/forge-bootstrap.py +1 -0
  326. package/adapters/gemini/scripts/forge-init.sh +2 -0
  327. package/adapters/gemini/scripts/forge-root.sh +55 -11
  328. package/adapters/gemini/scripts/forge-session.py +38 -1
  329. package/adapters/gemini/skills/forge/forge.md +9 -1
  330. package/adapters/gemini/skills/forge/references/pipeline-state-schema.json +191 -0
  331. package/adapters/gemini/skills/forge/references/process-overview.md +143 -0
  332. package/adapters/gemini/skills/forge/references/shared-conventions.md +295 -0
  333. package/adapters/gemini/skills/forge/references/stage-exit-protocol.md +258 -0
  334. package/adapters/gemini/skills/forge-0-epic/references/epic-manifest-subcommands.md +11 -0
  335. package/adapters/gemini/skills/forge-0-epic/references/pipeline-state-schema.json +191 -0
  336. package/adapters/gemini/skills/forge-0-epic/references/portable-root.md +71 -0
  337. package/adapters/gemini/skills/forge-0-epic/references/shared-conventions.md +295 -0
  338. package/adapters/gemini/skills/forge-0-epic/references/stage-exit-protocol.md +258 -0
  339. package/adapters/gemini/skills/forge-1-prd/forge-1-prd.md +2 -0
  340. package/adapters/gemini/skills/forge-1-prd/references/pipeline-state-schema.json +191 -0
  341. package/adapters/gemini/skills/forge-1-prd/references/shared-conventions.md +295 -0
  342. package/adapters/gemini/skills/forge-1-prd/references/stage-exit-protocol.md +258 -0
  343. package/adapters/gemini/skills/forge-2-tech/forge-2-tech.md +3 -1
  344. package/adapters/gemini/skills/forge-2-tech/references/pipeline-state-schema.json +191 -0
  345. package/adapters/gemini/skills/forge-2-tech/references/shared-conventions.md +295 -0
  346. package/adapters/gemini/skills/forge-2-tech/references/stack-resolution.md +54 -0
  347. package/adapters/gemini/skills/forge-2-tech/references/stacks/_generic.md +111 -0
  348. package/adapters/gemini/skills/forge-2-tech/references/stacks/go.md +157 -0
  349. package/adapters/gemini/skills/forge-2-tech/references/stacks/python.md +184 -0
  350. package/adapters/gemini/skills/forge-2-tech/references/stacks/rust.md +170 -0
  351. package/adapters/gemini/skills/forge-2-tech/references/stacks/typescript.md +134 -0
  352. package/adapters/gemini/skills/forge-2-tech/references/stage-exit-protocol.md +258 -0
  353. package/adapters/gemini/skills/forge-3-specs/forge-3-specs.md +2 -0
  354. package/adapters/gemini/skills/forge-3-specs/references/pipeline-state-schema.json +191 -0
  355. package/adapters/gemini/skills/forge-3-specs/references/shared-conventions.md +295 -0
  356. package/adapters/gemini/skills/forge-3-specs/references/stacks/_generic.md +111 -0
  357. package/adapters/gemini/skills/forge-3-specs/references/stacks/go.md +157 -0
  358. package/adapters/gemini/skills/forge-3-specs/references/stacks/python.md +184 -0
  359. package/adapters/gemini/skills/forge-3-specs/references/stacks/rust.md +170 -0
  360. package/adapters/gemini/skills/forge-3-specs/references/stacks/typescript.md +134 -0
  361. package/adapters/gemini/skills/forge-3-specs/references/stage-exit-protocol.md +258 -0
  362. package/adapters/gemini/skills/forge-4-backlog/forge-4-backlog.md +5 -0
  363. package/adapters/gemini/skills/forge-4-backlog/references/forge-config-schema.json +236 -0
  364. package/adapters/gemini/skills/forge-4-backlog/references/pipeline-state-schema.json +191 -0
  365. package/adapters/gemini/skills/forge-4-backlog/references/shared-conventions.md +295 -0
  366. package/adapters/gemini/skills/forge-4-backlog/references/stage-exit-protocol.md +258 -0
  367. package/adapters/gemini/skills/forge-5-loop/forge-5-loop.md +7 -9
  368. package/adapters/gemini/skills/forge-5-loop/references/forge-config-schema.json +236 -0
  369. package/adapters/gemini/skills/forge-5-loop/references/ralph-loop-contract.md +221 -0
  370. package/adapters/gemini/skills/forge-5-loop/references/runner-contract.md +41 -0
  371. package/adapters/gemini/skills/forge-5-loop/references/shared-conventions.md +295 -0
  372. package/adapters/gemini/skills/forge-5-loop/references/stage-exit-protocol.md +258 -0
  373. package/adapters/gemini/skills/forge-6-docs/forge-6-docs.md +4 -1
  374. package/adapters/gemini/skills/forge-6-docs/references/pipeline-state-schema.json +191 -0
  375. package/adapters/gemini/skills/forge-6-docs/references/shared-conventions.md +295 -0
  376. package/adapters/gemini/skills/forge-fix/references/shared-conventions.md +295 -0
  377. package/adapters/gemini/skills/forge-fix/references/stage-exit-protocol.md +258 -0
  378. package/adapters/gemini/skills/forge-guide/references/forge-config-schema.json +236 -0
  379. package/adapters/gemini/skills/forge-guide/references/process-overview.md +143 -0
  380. package/adapters/gemini/skills/forge-guide/references/ralph-loop-contract.md +221 -0
  381. package/adapters/gemini/skills/forge-guide/references/shared-conventions.md +295 -0
  382. package/adapters/gemini/skills/forge-guide/references/stack-resolution.md +54 -0
  383. package/adapters/gemini/skills/forge-guide/references/stacks/_generic.md +111 -0
  384. package/adapters/gemini/skills/forge-guide/references/stacks/go.md +157 -0
  385. package/adapters/gemini/skills/forge-guide/references/stacks/python.md +184 -0
  386. package/adapters/gemini/skills/forge-guide/references/stacks/rust.md +170 -0
  387. package/adapters/gemini/skills/forge-guide/references/stacks/typescript.md +134 -0
  388. package/adapters/gemini/skills/forge-init/forge-init.md +1 -0
  389. package/adapters/gemini/skills/forge-verify/forge-verify.md +5 -4
  390. package/adapters/gemini/skills/forge-verify/references/pipeline-state-schema.json +191 -0
  391. package/adapters/gemini/skills/forge-verify/references/shared-conventions.md +295 -0
  392. package/adapters/gemini/skills/forge-verify/references/verification-checklists.md +88 -2
  393. package/package.json +1 -1
@@ -153,6 +153,60 @@ Detailed checklists for each verification mode. Execute EVERY check — do not s
153
153
  - [ ] **CHECK-B24**: There are items for tests (or testing is included in each feature item's acceptance criteria)
154
154
  - [ ] **CHECK-B25**: No large items that try to do too many things (should be broken down)
155
155
 
156
+ ### Generated-Artifact Freshness
157
+ - [ ] **CHECK-B26**: **Generated-artifact freshness vs. `testCommand` `--check` gates** (#145). When a
158
+ project's configured `testCommand` (forge.config.json) gates on **staleness of generated artifacts**
159
+ — sub-commands of the shape `<generator> --check` / `--verify` / `:check` that fail if a checked-in
160
+ generated file is out of date with its source — every backlog item that regenerates *one* gated
161
+ artifact must regenerate (and commit) **all** the sibling artifacts those same `--check` gates
162
+ depend on, or the item will pass locally yet red-gate on the stale-generated check. Verify
163
+ heuristically:
164
+ 1. **Enumerate the gates.** String-scan `testCommand` for `--check`-style freshness sub-commands and
165
+ collect the generator/artifact each one guards (e.g. `build-benchmarks --check` guards
166
+ `partner-program-benchmarks`). If the command shape is unrecognized (no parseable `--check`
167
+ tokens), this check is **advisory / not-applicable** — never a hard fail.
168
+ 2. **A gate with no regenerator.** If a `--check` gate guards an artifact that **no** backlog item
169
+ regenerates, and some item edits that artifact's *source*, flag a `gap`: the source change will
170
+ trip the freshness gate with nothing scheduled to refresh the output.
171
+ 3. **Partial regeneration.** If an item regenerates a proper subset of the artifacts gated by the
172
+ `--check` set it touches (e.g. runs `build-partner-programs` + `build-analysis` but the gate also
173
+ covers `build-benchmarks`), flag an `inconsistency` naming the missing generator(s) and
174
+ recommending they be added to that item's execute + commit sequence. Same posture as the authoring
175
+ guidance in `forge-4-backlog` / rauf `author-backlog`: enumerate the whole `--check`-gated set, not
176
+ just the artifact the item is "about".
177
+
178
+ ### Artifact Lifecycle Consistency
179
+ - [ ] **CHECK-B27**: **No test item forcing a lifecycle transition another item forbids** (#150).
180
+ *Advisory heuristic — keyword/artifact-name based; **not-applicable** when no lifecycle vocabulary is
181
+ present, **never** a hard fail.* A **lifecycle state** (draft / published / released / approved /
182
+ reviewed / signed-off / gated) is a downstream-project concept forge does not itself track — but a
183
+ backlog can still encode a **contradiction** about one named artifact: item A pins artifact `X` as
184
+ *draft* / *unpublished* / *unreviewed* while item B asserts (in its acceptance criteria or a test it
185
+ adds) that `X` is *published* / *released* / *approved*, with **no** publishing/review item for `X`
186
+ anywhere in B's dependency closure. That leaves a **test/e2e item as the only thing forcing the
187
+ transition** — and since the autonomous loop can neither publish a package nor stand in for a human
188
+ reviewer, asked to make such a test green it **fabricates** the publication or sign-off (a provenance
189
+ defect a `--review` pass has caught in the wild). Verify heuristically:
190
+ 1. **Find lifecycle assertions.** Scan item titles/descriptions/`acceptanceCriteria` for a named
191
+ artifact paired with a lifecycle-state keyword — earlier states (`draft` / `unpublished` /
192
+ `pending review` / `unreleased`) vs later states (`published` / `released` / `approved` / `live` /
193
+ `signed-off` / `gated`). If **no** item carries such vocabulary, this check is **not-applicable**.
194
+ 2. **Pair by artifact name.** Group assertions that reference the **same named artifact**. A pair
195
+ where one item requires the *earlier* state and another asserts the *later* state is a candidate.
196
+ 3. **Check the dependency closure.** If the later-state item has **no** publish / review / human-gated
197
+ item for that artifact in its transitive `dependsOn`, flag an `inconsistency`: name the artifact,
198
+ both items, and recommend either (a) adding a `dependsOn` on an explicit human-gated publish/review
199
+ item that legitimately produces the state, or (b) re-asserting the state via a dev-build / fixture
200
+ path — never letting a test item be the sole driver of the transition (mirrors the authoring
201
+ guidance in `forge-4-backlog` / rauf `author-backlog`). **Report, do not repair.**
202
+
203
+ > **Anti-pattern (visible even where the heuristic can't fire):** a test/e2e item whose pass condition
204
+ > is "artifact `X` is published / approved / reviewed" while the backlog contains no human-gated
205
+ > publish or review item producing that state. The autonomous loop cannot publish or sign off on
206
+ > behalf of a human; asked to make such a test green it will **fabricate** the published/reviewed
207
+ > provenance. Any item asserting a human-gated lifecycle state must trace — via `dependsOn` — to the
208
+ > item that legitimately produces it, or assert the state through a dev-build / fixture path instead.
209
+
156
210
  ## Implementation Mode Checklist
157
211
 
158
212
  ### Spec Compliance
@@ -185,11 +239,22 @@ Detailed checklists for each verification mode. Execute EVERY check — do not s
185
239
  - [ ] **CHECK-I19**: Exported functions/classes have documentation comments (JSDoc, docstrings, godoc, etc.)
186
240
  - [ ] **CHECK-I20**: Configuration options are documented
187
241
 
242
+ ### Runnability
243
+
244
+ > **When these fire:** only at impl-verify **completion** (impl mode runs post-loop), never mid-loop — an early skeleton that only compiles is not punished. **Both degrade gracefully:** a feature with no runnable surface (a pure library with no bootstrap contract) or no configured `smokeCommand` yields an **advisory not-applicable** finding, never a hard fail — the same way a null `{typeCheckCommand}` is handled. These exist because `CHECK-I01..I20` are all static reads + typecheck/lint + "tests exist"; nothing here asserts the assembled application actually **runs**. A bootstrap that is exported and unit-tested (each test calls it manually) but never wired into a runtime entrypoint passes every other check yet serves no real request (#121).
245
+
246
+ - [ ] **CHECK-I21**: **End-to-end smoke passes.** If `smokeCommand` from forge.config.json is set, execute it — it boots the wired entrypoint and drives one happy-path request end-to-end; **pass iff exit 0**. A non-zero exit is an `error` finding (the assembled app does not run — quote the command's failing output). If `smokeCommand` is `null`, this is **advisory**: emit a `not-applicable` finding recommending the user configure a `smokeCommand` so "clean" means "it runs" (never fabricate or guess a command — run only the user-configured one, exactly as `CHECK-I11` runs only a configured `{typeCheckCommand}`).
247
+ - **Prefer the dev runtime the developer actually uses (#149).** Recommend the configured `smokeCommand` boot the app in its **development** mode — the dev server / watch loop / HMR runtime — not only a clean production build. The failure modes that a static typecheck and a prod smoke both miss live in the dev runtime: **module-graph-identity** bugs (a "singleton" duplicated across a re-evaluated module graph, so the initialized instance and the one the request path reads are different objects) and **watch-loop** bugs (an init that fires once but never re-fires on hot reload, or fires on every reload and leaks). A prod build evaluates the graph once and hides both. When the project is served in dev during development, the `smokeCommand` should exercise that same runtime.
248
+ - **For a fix, re-verify in the mode the bug manifested.** When impl-verify runs after a **fix** (not a greenfield build), re-run the smoke in the **same runtime mode where the original bug appeared** — a bug reproduced in dev/watch mode is not proven fixed by a green prod-mode smoke, and vice versa. Note the mode in the finding so "smoke passed" is unambiguous about *which* runtime was exercised.
249
+ - [ ] **CHECK-I22**: **Runtime-required bootstrap has a non-test caller.** Every exported bootstrap / `init*` / singleton-populator the specs mark as **required for runtime** must have ≥1 **non-test** call site on a runtime path — an entrypoint such as `main` / `instrumentation` / a route / a layout / a worker, NOT only test files. Statically grep for each such symbol's references (use the stack profile `references/stacks/{stack}.md` **Runtime Entrypoints & Bootstrap-Wiring Sites** list for what counts as a runtime entrypoint in this language). A symbol that is exported and covered by tests but referenced **only** from test files is a `gap` — the #121 walking-skeleton (bootstrap wired to nothing). Degrades naturally: a feature whose specs mark no bootstrap symbol as runtime-required is `not-applicable`. Weaker than `CHECK-I21` (it proves a call site exists, not that the boot succeeds), so it complements rather than replaces the smoke.
250
+ - [ ] **CHECK-I23**: **Heavy bootstrap wired into a universal startup entry — recommend lazy init** (#149). *Advisory heuristic — a `gap`/`improvement` at most, **never** a hard fail.* When a runtime-required `init`/bootstrap/singleton-populator is wired into a **framework bootstrap entry that runs on every startup** (a Next.js `instrumentation.ts`, an app-server preload/`register` hook, a global setup module) **and** that init pulls in a **large server-only import graph** (DB clients, ORMs, queue/background workers, telemetry exporters, the whole service layer), recommend moving to **lazy initialization at the entry that already loads that graph** — the first route / handler / worker that needs it — rather than eager wiring at the universal entry. Eager wiring drags the heavy graph into every cold start, and in dev into every module re-evaluation (the watch-loop cost `CHECK-I21` also targets). **Detect statically:** from the stack profile's **Runtime Entrypoints & Bootstrap-Wiring Sites** list, identify this stack's universal bootstrap entries; grep those files for imports of the feature's runtime-required bootstrap symbols (`CHECK-I22`) and for the server-only heavy-import markers the profile names. A match → an `improvement`/`gap` finding naming the entry, the heavy graph it pulls, and the lazier call site to move initialization to. Degrades to `not-applicable` when the stack has no universal bootstrap entry, when no heavy init is wired there, or when the profile lists no bootstrap-wiring sites — **report, do not repair.**
251
+
188
252
  ## Epic Mode Checklist
189
253
 
190
254
  Run `epic-manifest.py validate "{epic}" --specs-dir "{specsDir}" --json` once; map its
191
- findings to E01/E02/E03/E08. Then perform the judgment checks E04–E07 by reading the
192
- manifest, EPIC.md, and completed members' specs.
255
+ findings to E01/E02/E03/E08. Then perform the judgment checks E04–E07, E09, and E10 by
256
+ reading the manifest, EPIC.md, completed members' specs, and (for E10) sibling members'
257
+ committed tests.
193
258
 
194
259
  ```bash
195
260
  R="$(bash -c 'for d in "${CLAUDE_PLUGIN_ROOT:-}" "$HOME"/.claude/skills/feature-forge "$HOME"/.claude/plugins/cache/*/feature-forge/* "$HOME"/.claude/plugins/*/feature-forge "$HOME"/.agents/skills/feature-forge ./.agents/skills/feature-forge; do [ -x "$d/scripts/forge-root.sh" ] && exec "$d/scripts/forge-root.sh"; done')"
@@ -235,6 +300,27 @@ python3 "$R/scripts/epic-manifest.py" validate "{epic}" --specs-dir "{specsDir}"
235
300
  `.blockingEpicChangeRequests`); the per-request `kind`/`target`/`rationale` detail is read
236
301
  from the member `.pipeline-state.json` already loaded in Step 2. This is the pre-emptive
237
302
  surface for the divergence class CHECK-E06/E07 otherwise catch only after the fact.
303
+ - [ ] **CHECK-E10**: **cross-member shared-state test coupling** (#144). A member that writes or
304
+ migrates a file a *sibling's* committed tests already pin will break the sibling's suite the
305
+ moment it runs — blocking every one of its own commits from a green test gate — yet nothing in
306
+ E04–E09 catches it (contracts cover code symbols, not shared data files). Detect it heuristically,
307
+ per member `M`:
308
+ 1. **Collect `M`'s mutated paths.** Take `M`'s `mutatesShared[]` from the manifest if present
309
+ (the authored precision hint). If absent or empty, fall back to grepping `M`'s specs
310
+ (change-maps / "files this writes") and backlog item `execute` steps for project-root-relative
311
+ paths it creates, writes, or migrates (data corpora, generated fixtures, migration outputs —
312
+ not `M`'s own source modules or its own tests).
313
+ 2. **Grep sibling tests for reads of those paths.** For every *other* member `S` that is already
314
+ **`complete`** (derived status — its regression suite is live and gating), grep `S`'s committed
315
+ **test** files/globs for a read/import/load of any path in step 1. Use the stack profile
316
+ (`references/stacks/{stack}.md`) for what a test glob looks like in this language.
317
+ 3. **Emit the finding.** A hit → a non-fatal `inconsistency` finding: name `M`, the shared path,
318
+ the sibling `S` and the specific test, and **recommend a reconciliation backlog item** on `M`
319
+ (regenerate/re-pin `S`'s fixture, or update `S`'s test to the new shape) scheduled *before*
320
+ `M`'s first mutating item — so the coupling is planned, not discovered mid-loop on a red gate.
321
+ **Report, do not repair** (same posture as CHECK-E07/E09). Degrades to a clean no-op when no
322
+ member declares or greps a shared write, or when no completed sibling reads it — never a
323
+ spurious hard-fail.
238
324
 
239
325
  ## Findings Document Template (Step 4)
240
326
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@garygentry/feature-forge",
3
- "version": "0.2.12",
3
+ "version": "0.2.14",
4
4
  "description": "Cross-agent installer for the feature-forge skill suite — installs the canonical forge pipeline into Claude, Codex, Copilot, Cursor, or Gemini.",
5
5
  "license": "MIT",
6
6
  "type": "module",