@garygentry/feature-forge 0.3.1 → 0.3.2

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 (314) hide show
  1. package/adapters/claude/.feature-forge-bundle.json +1 -1
  2. package/adapters/claude/references/epic-manifest-schema.json +6 -1
  3. package/adapters/claude/references/forge-config-schema.json +1 -1
  4. package/adapters/claude/references/pipeline-state-schema.json +4 -2
  5. package/adapters/claude/references/shared-conventions.md +63 -0
  6. package/adapters/claude/references/stage-exit-protocol.md +344 -140
  7. package/adapters/claude/scripts/epic-manifest.py +413 -87
  8. package/adapters/claude/scripts/forge-bootstrap.py +57 -5
  9. package/adapters/claude/scripts/forge-session.py +3136 -139
  10. package/adapters/claude/scripts/validate-traceability.py +86 -5
  11. package/adapters/claude/skills/forge/SKILL.md +7 -6
  12. package/adapters/claude/skills/forge/references/pipeline-state-schema.json +4 -2
  13. package/adapters/claude/skills/forge/references/shared-conventions.md +63 -0
  14. package/adapters/claude/skills/forge/references/stage-exit-protocol.md +344 -140
  15. package/adapters/claude/skills/forge-0-epic/SKILL.md +7 -2
  16. package/adapters/claude/skills/forge-0-epic/references/edit-mode.md +24 -24
  17. package/adapters/claude/skills/forge-0-epic/references/pipeline-state-schema.json +4 -2
  18. package/adapters/claude/skills/forge-0-epic/references/shared-conventions.md +63 -0
  19. package/adapters/claude/skills/forge-0-epic/references/stage-exit-protocol.md +344 -140
  20. package/adapters/claude/skills/forge-1-prd/SKILL.md +14 -3
  21. package/adapters/claude/skills/forge-1-prd/references/shared-conventions.md +63 -0
  22. package/adapters/claude/skills/forge-1-prd/references/stage-exit-protocol.md +344 -140
  23. package/adapters/claude/skills/forge-2-tech/SKILL.md +13 -3
  24. package/adapters/claude/skills/forge-2-tech/references/shared-conventions.md +63 -0
  25. package/adapters/claude/skills/forge-2-tech/references/stage-exit-protocol.md +344 -140
  26. package/adapters/claude/skills/forge-3-specs/SKILL.md +4 -2
  27. package/adapters/claude/skills/forge-3-specs/references/shared-conventions.md +63 -0
  28. package/adapters/claude/skills/forge-3-specs/references/spec-archetypes.md +9 -0
  29. package/adapters/claude/skills/forge-3-specs/references/stage-exit-protocol.md +344 -140
  30. package/adapters/claude/skills/forge-4-backlog/SKILL.md +16 -3
  31. package/adapters/claude/skills/forge-4-backlog/references/shared-conventions.md +63 -0
  32. package/adapters/claude/skills/forge-4-backlog/references/stage-exit-protocol.md +344 -140
  33. package/adapters/claude/skills/forge-5-loop/SKILL.md +40 -42
  34. package/adapters/claude/skills/forge-5-loop/references/result-reporting.md +70 -31
  35. package/adapters/claude/skills/forge-5-loop/references/runner-contract.md +4 -2
  36. package/adapters/claude/skills/forge-5-loop/references/shared-conventions.md +63 -0
  37. package/adapters/claude/skills/forge-5-loop/references/stage-exit-protocol.md +344 -140
  38. package/adapters/claude/skills/forge-6-docs/SKILL.md +48 -4
  39. package/adapters/claude/skills/forge-6-docs/references/shared-conventions.md +63 -0
  40. package/adapters/claude/skills/forge-6-docs/references/stage-exit-protocol.md +472 -0
  41. package/adapters/claude/skills/forge-fix/SKILL.md +85 -33
  42. package/adapters/claude/skills/forge-fix/references/shared-conventions.md +63 -0
  43. package/adapters/claude/skills/forge-fix/references/stage-exit-protocol.md +344 -140
  44. package/adapters/claude/skills/forge-guide/references/forge-config-schema.json +1 -1
  45. package/adapters/claude/skills/forge-guide/references/shared-conventions.md +63 -0
  46. package/adapters/claude/skills/forge-verify/SKILL.md +73 -41
  47. package/adapters/claude/skills/forge-verify/references/findings-template.md +39 -49
  48. package/adapters/claude/skills/forge-verify/references/shared-conventions.md +63 -0
  49. package/adapters/claude/skills/forge-verify/references/stage-exit-protocol.md +472 -0
  50. package/adapters/claude/skills/forge-verify/references/verification-checklists/epic.md +4 -3
  51. package/adapters/claude/skills/forge-verify/references/verification-checklists/specs.md +2 -0
  52. package/adapters/codex/.feature-forge-bundle.json +1 -1
  53. package/adapters/codex/references/epic-manifest-schema.json +6 -1
  54. package/adapters/codex/references/forge-config-schema.json +1 -1
  55. package/adapters/codex/references/pipeline-state-schema.json +4 -2
  56. package/adapters/codex/references/shared-conventions.md +63 -0
  57. package/adapters/codex/references/stage-exit-protocol.md +344 -140
  58. package/adapters/codex/scripts/epic-manifest.py +413 -87
  59. package/adapters/codex/scripts/forge-bootstrap.py +57 -5
  60. package/adapters/codex/scripts/forge-session.py +3136 -139
  61. package/adapters/codex/scripts/validate-traceability.py +86 -5
  62. package/adapters/codex/skills/forge/SKILL.md +7 -6
  63. package/adapters/codex/skills/forge/references/pipeline-state-schema.json +4 -2
  64. package/adapters/codex/skills/forge/references/shared-conventions.md +63 -0
  65. package/adapters/codex/skills/forge/references/stage-exit-protocol.md +344 -140
  66. package/adapters/codex/skills/forge-0-epic/SKILL.md +7 -2
  67. package/adapters/codex/skills/forge-0-epic/references/edit-mode.md +24 -24
  68. package/adapters/codex/skills/forge-0-epic/references/pipeline-state-schema.json +4 -2
  69. package/adapters/codex/skills/forge-0-epic/references/shared-conventions.md +63 -0
  70. package/adapters/codex/skills/forge-0-epic/references/stage-exit-protocol.md +344 -140
  71. package/adapters/codex/skills/forge-1-prd/SKILL.md +14 -3
  72. package/adapters/codex/skills/forge-1-prd/references/shared-conventions.md +63 -0
  73. package/adapters/codex/skills/forge-1-prd/references/stage-exit-protocol.md +344 -140
  74. package/adapters/codex/skills/forge-2-tech/SKILL.md +13 -3
  75. package/adapters/codex/skills/forge-2-tech/references/shared-conventions.md +63 -0
  76. package/adapters/codex/skills/forge-2-tech/references/stage-exit-protocol.md +344 -140
  77. package/adapters/codex/skills/forge-3-specs/SKILL.md +4 -2
  78. package/adapters/codex/skills/forge-3-specs/references/shared-conventions.md +63 -0
  79. package/adapters/codex/skills/forge-3-specs/references/spec-archetypes.md +9 -0
  80. package/adapters/codex/skills/forge-3-specs/references/stage-exit-protocol.md +344 -140
  81. package/adapters/codex/skills/forge-4-backlog/SKILL.md +16 -3
  82. package/adapters/codex/skills/forge-4-backlog/references/shared-conventions.md +63 -0
  83. package/adapters/codex/skills/forge-4-backlog/references/stage-exit-protocol.md +344 -140
  84. package/adapters/codex/skills/forge-5-loop/SKILL.md +40 -42
  85. package/adapters/codex/skills/forge-5-loop/references/result-reporting.md +70 -31
  86. package/adapters/codex/skills/forge-5-loop/references/runner-contract.md +4 -2
  87. package/adapters/codex/skills/forge-5-loop/references/shared-conventions.md +63 -0
  88. package/adapters/codex/skills/forge-5-loop/references/stage-exit-protocol.md +344 -140
  89. package/adapters/codex/skills/forge-6-docs/SKILL.md +48 -4
  90. package/adapters/codex/skills/forge-6-docs/references/shared-conventions.md +63 -0
  91. package/adapters/codex/skills/forge-6-docs/references/stage-exit-protocol.md +472 -0
  92. package/adapters/codex/skills/forge-fix/SKILL.md +84 -32
  93. package/adapters/codex/skills/forge-fix/references/shared-conventions.md +63 -0
  94. package/adapters/codex/skills/forge-fix/references/stage-exit-protocol.md +344 -140
  95. package/adapters/codex/skills/forge-guide/references/forge-config-schema.json +1 -1
  96. package/adapters/codex/skills/forge-guide/references/shared-conventions.md +63 -0
  97. package/adapters/codex/skills/forge-verify/SKILL.md +72 -40
  98. package/adapters/codex/skills/forge-verify/references/findings-template.md +39 -49
  99. package/adapters/codex/skills/forge-verify/references/shared-conventions.md +63 -0
  100. package/adapters/codex/skills/forge-verify/references/stage-exit-protocol.md +472 -0
  101. package/adapters/codex/skills/forge-verify/references/verification-checklists/epic.md +4 -3
  102. package/adapters/codex/skills/forge-verify/references/verification-checklists/specs.md +2 -0
  103. package/adapters/copilot/.feature-forge-bundle.json +1 -1
  104. package/adapters/copilot/references/epic-manifest-schema.json +6 -1
  105. package/adapters/copilot/references/forge-config-schema.json +1 -1
  106. package/adapters/copilot/references/pipeline-state-schema.json +4 -2
  107. package/adapters/copilot/references/shared-conventions.md +63 -0
  108. package/adapters/copilot/references/stage-exit-protocol.md +344 -140
  109. package/adapters/copilot/scripts/epic-manifest.py +413 -87
  110. package/adapters/copilot/scripts/forge-bootstrap.py +57 -5
  111. package/adapters/copilot/scripts/forge-session.py +3136 -139
  112. package/adapters/copilot/scripts/validate-traceability.py +86 -5
  113. package/adapters/copilot/skills/forge/forge.md +7 -6
  114. package/adapters/copilot/skills/forge/references/pipeline-state-schema.json +4 -2
  115. package/adapters/copilot/skills/forge/references/shared-conventions.md +63 -0
  116. package/adapters/copilot/skills/forge/references/stage-exit-protocol.md +344 -140
  117. package/adapters/copilot/skills/forge-0-epic/forge-0-epic.md +7 -2
  118. package/adapters/copilot/skills/forge-0-epic/references/edit-mode.md +24 -24
  119. package/adapters/copilot/skills/forge-0-epic/references/pipeline-state-schema.json +4 -2
  120. package/adapters/copilot/skills/forge-0-epic/references/shared-conventions.md +63 -0
  121. package/adapters/copilot/skills/forge-0-epic/references/stage-exit-protocol.md +344 -140
  122. package/adapters/copilot/skills/forge-1-prd/forge-1-prd.md +14 -3
  123. package/adapters/copilot/skills/forge-1-prd/references/shared-conventions.md +63 -0
  124. package/adapters/copilot/skills/forge-1-prd/references/stage-exit-protocol.md +344 -140
  125. package/adapters/copilot/skills/forge-2-tech/forge-2-tech.md +13 -3
  126. package/adapters/copilot/skills/forge-2-tech/references/shared-conventions.md +63 -0
  127. package/adapters/copilot/skills/forge-2-tech/references/stage-exit-protocol.md +344 -140
  128. package/adapters/copilot/skills/forge-3-specs/forge-3-specs.md +4 -2
  129. package/adapters/copilot/skills/forge-3-specs/references/shared-conventions.md +63 -0
  130. package/adapters/copilot/skills/forge-3-specs/references/spec-archetypes.md +9 -0
  131. package/adapters/copilot/skills/forge-3-specs/references/stage-exit-protocol.md +344 -140
  132. package/adapters/copilot/skills/forge-4-backlog/forge-4-backlog.md +16 -3
  133. package/adapters/copilot/skills/forge-4-backlog/references/shared-conventions.md +63 -0
  134. package/adapters/copilot/skills/forge-4-backlog/references/stage-exit-protocol.md +344 -140
  135. package/adapters/copilot/skills/forge-5-loop/forge-5-loop.md +40 -42
  136. package/adapters/copilot/skills/forge-5-loop/references/result-reporting.md +70 -31
  137. package/adapters/copilot/skills/forge-5-loop/references/runner-contract.md +4 -2
  138. package/adapters/copilot/skills/forge-5-loop/references/shared-conventions.md +63 -0
  139. package/adapters/copilot/skills/forge-5-loop/references/stage-exit-protocol.md +344 -140
  140. package/adapters/copilot/skills/forge-6-docs/forge-6-docs.md +48 -4
  141. package/adapters/copilot/skills/forge-6-docs/references/shared-conventions.md +63 -0
  142. package/adapters/copilot/skills/forge-6-docs/references/stage-exit-protocol.md +472 -0
  143. package/adapters/copilot/skills/forge-fix/forge-fix.md +84 -32
  144. package/adapters/copilot/skills/forge-fix/references/shared-conventions.md +63 -0
  145. package/adapters/copilot/skills/forge-fix/references/stage-exit-protocol.md +344 -140
  146. package/adapters/copilot/skills/forge-guide/references/forge-config-schema.json +1 -1
  147. package/adapters/copilot/skills/forge-guide/references/shared-conventions.md +63 -0
  148. package/adapters/copilot/skills/forge-verify/forge-verify.md +72 -40
  149. package/adapters/copilot/skills/forge-verify/references/findings-template.md +39 -49
  150. package/adapters/copilot/skills/forge-verify/references/shared-conventions.md +63 -0
  151. package/adapters/copilot/skills/forge-verify/references/stage-exit-protocol.md +472 -0
  152. package/adapters/copilot/skills/forge-verify/references/verification-checklists/epic.md +4 -3
  153. package/adapters/copilot/skills/forge-verify/references/verification-checklists/specs.md +2 -0
  154. package/adapters/cursor/.feature-forge-bundle.json +1 -1
  155. package/adapters/cursor/references/epic-manifest-schema.json +6 -1
  156. package/adapters/cursor/references/forge-config-schema.json +1 -1
  157. package/adapters/cursor/references/pipeline-state-schema.json +4 -2
  158. package/adapters/cursor/references/shared-conventions.md +63 -0
  159. package/adapters/cursor/references/stage-exit-protocol.md +344 -140
  160. package/adapters/cursor/scripts/epic-manifest.py +413 -87
  161. package/adapters/cursor/scripts/forge-bootstrap.py +57 -5
  162. package/adapters/cursor/scripts/forge-session.py +3136 -139
  163. package/adapters/cursor/scripts/validate-traceability.py +86 -5
  164. package/adapters/cursor/skills/forge/forge.mdc +7 -6
  165. package/adapters/cursor/skills/forge/references/pipeline-state-schema.json +4 -2
  166. package/adapters/cursor/skills/forge/references/shared-conventions.md +63 -0
  167. package/adapters/cursor/skills/forge/references/stage-exit-protocol.md +344 -140
  168. package/adapters/cursor/skills/forge-0-epic/forge-0-epic.mdc +7 -2
  169. package/adapters/cursor/skills/forge-0-epic/references/edit-mode.md +24 -24
  170. package/adapters/cursor/skills/forge-0-epic/references/pipeline-state-schema.json +4 -2
  171. package/adapters/cursor/skills/forge-0-epic/references/shared-conventions.md +63 -0
  172. package/adapters/cursor/skills/forge-0-epic/references/stage-exit-protocol.md +344 -140
  173. package/adapters/cursor/skills/forge-1-prd/forge-1-prd.mdc +14 -3
  174. package/adapters/cursor/skills/forge-1-prd/references/shared-conventions.md +63 -0
  175. package/adapters/cursor/skills/forge-1-prd/references/stage-exit-protocol.md +344 -140
  176. package/adapters/cursor/skills/forge-2-tech/forge-2-tech.mdc +13 -3
  177. package/adapters/cursor/skills/forge-2-tech/references/shared-conventions.md +63 -0
  178. package/adapters/cursor/skills/forge-2-tech/references/stage-exit-protocol.md +344 -140
  179. package/adapters/cursor/skills/forge-3-specs/forge-3-specs.mdc +4 -2
  180. package/adapters/cursor/skills/forge-3-specs/references/shared-conventions.md +63 -0
  181. package/adapters/cursor/skills/forge-3-specs/references/spec-archetypes.md +9 -0
  182. package/adapters/cursor/skills/forge-3-specs/references/stage-exit-protocol.md +344 -140
  183. package/adapters/cursor/skills/forge-4-backlog/forge-4-backlog.mdc +16 -3
  184. package/adapters/cursor/skills/forge-4-backlog/references/shared-conventions.md +63 -0
  185. package/adapters/cursor/skills/forge-4-backlog/references/stage-exit-protocol.md +344 -140
  186. package/adapters/cursor/skills/forge-5-loop/forge-5-loop.mdc +40 -42
  187. package/adapters/cursor/skills/forge-5-loop/references/result-reporting.md +70 -31
  188. package/adapters/cursor/skills/forge-5-loop/references/runner-contract.md +4 -2
  189. package/adapters/cursor/skills/forge-5-loop/references/shared-conventions.md +63 -0
  190. package/adapters/cursor/skills/forge-5-loop/references/stage-exit-protocol.md +344 -140
  191. package/adapters/cursor/skills/forge-6-docs/forge-6-docs.mdc +48 -4
  192. package/adapters/cursor/skills/forge-6-docs/references/shared-conventions.md +63 -0
  193. package/adapters/cursor/skills/forge-6-docs/references/stage-exit-protocol.md +472 -0
  194. package/adapters/cursor/skills/forge-fix/forge-fix.mdc +84 -32
  195. package/adapters/cursor/skills/forge-fix/references/shared-conventions.md +63 -0
  196. package/adapters/cursor/skills/forge-fix/references/stage-exit-protocol.md +344 -140
  197. package/adapters/cursor/skills/forge-guide/references/forge-config-schema.json +1 -1
  198. package/adapters/cursor/skills/forge-guide/references/shared-conventions.md +63 -0
  199. package/adapters/cursor/skills/forge-verify/forge-verify.mdc +72 -40
  200. package/adapters/cursor/skills/forge-verify/references/findings-template.md +39 -49
  201. package/adapters/cursor/skills/forge-verify/references/shared-conventions.md +63 -0
  202. package/adapters/cursor/skills/forge-verify/references/stage-exit-protocol.md +472 -0
  203. package/adapters/cursor/skills/forge-verify/references/verification-checklists/epic.md +4 -3
  204. package/adapters/cursor/skills/forge-verify/references/verification-checklists/specs.md +2 -0
  205. package/adapters/gemini/.feature-forge-bundle.json +1 -1
  206. package/adapters/gemini/gemini-extension.json +1 -1
  207. package/adapters/gemini/references/epic-manifest-schema.json +6 -1
  208. package/adapters/gemini/references/forge-config-schema.json +1 -1
  209. package/adapters/gemini/references/pipeline-state-schema.json +4 -2
  210. package/adapters/gemini/references/shared-conventions.md +63 -0
  211. package/adapters/gemini/references/stage-exit-protocol.md +344 -140
  212. package/adapters/gemini/scripts/epic-manifest.py +413 -87
  213. package/adapters/gemini/scripts/forge-bootstrap.py +57 -5
  214. package/adapters/gemini/scripts/forge-session.py +3136 -139
  215. package/adapters/gemini/scripts/validate-traceability.py +86 -5
  216. package/adapters/gemini/skills/forge/forge.md +7 -6
  217. package/adapters/gemini/skills/forge/references/pipeline-state-schema.json +4 -2
  218. package/adapters/gemini/skills/forge/references/shared-conventions.md +63 -0
  219. package/adapters/gemini/skills/forge/references/stage-exit-protocol.md +344 -140
  220. package/adapters/gemini/skills/forge-0-epic/forge-0-epic.md +7 -2
  221. package/adapters/gemini/skills/forge-0-epic/references/edit-mode.md +24 -24
  222. package/adapters/gemini/skills/forge-0-epic/references/pipeline-state-schema.json +4 -2
  223. package/adapters/gemini/skills/forge-0-epic/references/shared-conventions.md +63 -0
  224. package/adapters/gemini/skills/forge-0-epic/references/stage-exit-protocol.md +344 -140
  225. package/adapters/gemini/skills/forge-1-prd/forge-1-prd.md +14 -3
  226. package/adapters/gemini/skills/forge-1-prd/references/shared-conventions.md +63 -0
  227. package/adapters/gemini/skills/forge-1-prd/references/stage-exit-protocol.md +344 -140
  228. package/adapters/gemini/skills/forge-2-tech/forge-2-tech.md +13 -3
  229. package/adapters/gemini/skills/forge-2-tech/references/shared-conventions.md +63 -0
  230. package/adapters/gemini/skills/forge-2-tech/references/stage-exit-protocol.md +344 -140
  231. package/adapters/gemini/skills/forge-3-specs/forge-3-specs.md +4 -2
  232. package/adapters/gemini/skills/forge-3-specs/references/shared-conventions.md +63 -0
  233. package/adapters/gemini/skills/forge-3-specs/references/spec-archetypes.md +9 -0
  234. package/adapters/gemini/skills/forge-3-specs/references/stage-exit-protocol.md +344 -140
  235. package/adapters/gemini/skills/forge-4-backlog/forge-4-backlog.md +16 -3
  236. package/adapters/gemini/skills/forge-4-backlog/references/shared-conventions.md +63 -0
  237. package/adapters/gemini/skills/forge-4-backlog/references/stage-exit-protocol.md +344 -140
  238. package/adapters/gemini/skills/forge-5-loop/forge-5-loop.md +40 -42
  239. package/adapters/gemini/skills/forge-5-loop/references/result-reporting.md +70 -31
  240. package/adapters/gemini/skills/forge-5-loop/references/runner-contract.md +4 -2
  241. package/adapters/gemini/skills/forge-5-loop/references/shared-conventions.md +63 -0
  242. package/adapters/gemini/skills/forge-5-loop/references/stage-exit-protocol.md +344 -140
  243. package/adapters/gemini/skills/forge-6-docs/forge-6-docs.md +48 -4
  244. package/adapters/gemini/skills/forge-6-docs/references/shared-conventions.md +63 -0
  245. package/adapters/gemini/skills/forge-6-docs/references/stage-exit-protocol.md +472 -0
  246. package/adapters/gemini/skills/forge-fix/forge-fix.md +84 -32
  247. package/adapters/gemini/skills/forge-fix/references/shared-conventions.md +63 -0
  248. package/adapters/gemini/skills/forge-fix/references/stage-exit-protocol.md +344 -140
  249. package/adapters/gemini/skills/forge-guide/references/forge-config-schema.json +1 -1
  250. package/adapters/gemini/skills/forge-guide/references/shared-conventions.md +63 -0
  251. package/adapters/gemini/skills/forge-verify/forge-verify.md +72 -40
  252. package/adapters/gemini/skills/forge-verify/references/findings-template.md +39 -49
  253. package/adapters/gemini/skills/forge-verify/references/shared-conventions.md +63 -0
  254. package/adapters/gemini/skills/forge-verify/references/stage-exit-protocol.md +472 -0
  255. package/adapters/gemini/skills/forge-verify/references/verification-checklists/epic.md +4 -3
  256. package/adapters/gemini/skills/forge-verify/references/verification-checklists/specs.md +2 -0
  257. package/adapters/pi/.feature-forge-bundle.json +1 -1
  258. package/adapters/pi/references/epic-manifest-schema.json +6 -1
  259. package/adapters/pi/references/forge-config-schema.json +1 -1
  260. package/adapters/pi/references/pipeline-state-schema.json +4 -2
  261. package/adapters/pi/references/shared-conventions.md +63 -0
  262. package/adapters/pi/references/stage-exit-protocol.md +344 -140
  263. package/adapters/pi/scripts/epic-manifest.py +413 -87
  264. package/adapters/pi/scripts/forge-bootstrap.py +57 -5
  265. package/adapters/pi/scripts/forge-session.py +3136 -139
  266. package/adapters/pi/scripts/validate-traceability.py +86 -5
  267. package/adapters/pi/skills/forge/SKILL.md +7 -6
  268. package/adapters/pi/skills/forge/references/pipeline-state-schema.json +4 -2
  269. package/adapters/pi/skills/forge/references/shared-conventions.md +63 -0
  270. package/adapters/pi/skills/forge/references/stage-exit-protocol.md +344 -140
  271. package/adapters/pi/skills/forge-0-epic/SKILL.md +7 -2
  272. package/adapters/pi/skills/forge-0-epic/references/edit-mode.md +24 -24
  273. package/adapters/pi/skills/forge-0-epic/references/pipeline-state-schema.json +4 -2
  274. package/adapters/pi/skills/forge-0-epic/references/shared-conventions.md +63 -0
  275. package/adapters/pi/skills/forge-0-epic/references/stage-exit-protocol.md +344 -140
  276. package/adapters/pi/skills/forge-1-prd/SKILL.md +14 -3
  277. package/adapters/pi/skills/forge-1-prd/references/shared-conventions.md +63 -0
  278. package/adapters/pi/skills/forge-1-prd/references/stage-exit-protocol.md +344 -140
  279. package/adapters/pi/skills/forge-2-tech/SKILL.md +13 -3
  280. package/adapters/pi/skills/forge-2-tech/references/shared-conventions.md +63 -0
  281. package/adapters/pi/skills/forge-2-tech/references/stage-exit-protocol.md +344 -140
  282. package/adapters/pi/skills/forge-3-specs/SKILL.md +4 -2
  283. package/adapters/pi/skills/forge-3-specs/references/shared-conventions.md +63 -0
  284. package/adapters/pi/skills/forge-3-specs/references/spec-archetypes.md +9 -0
  285. package/adapters/pi/skills/forge-3-specs/references/stage-exit-protocol.md +344 -140
  286. package/adapters/pi/skills/forge-4-backlog/SKILL.md +16 -3
  287. package/adapters/pi/skills/forge-4-backlog/references/shared-conventions.md +63 -0
  288. package/adapters/pi/skills/forge-4-backlog/references/stage-exit-protocol.md +344 -140
  289. package/adapters/pi/skills/forge-5-loop/SKILL.md +40 -42
  290. package/adapters/pi/skills/forge-5-loop/references/result-reporting.md +70 -31
  291. package/adapters/pi/skills/forge-5-loop/references/runner-contract.md +4 -2
  292. package/adapters/pi/skills/forge-5-loop/references/shared-conventions.md +63 -0
  293. package/adapters/pi/skills/forge-5-loop/references/stage-exit-protocol.md +344 -140
  294. package/adapters/pi/skills/forge-6-docs/SKILL.md +48 -4
  295. package/adapters/pi/skills/forge-6-docs/references/shared-conventions.md +63 -0
  296. package/adapters/pi/skills/forge-6-docs/references/stage-exit-protocol.md +472 -0
  297. package/adapters/pi/skills/forge-fix/SKILL.md +84 -32
  298. package/adapters/pi/skills/forge-fix/references/shared-conventions.md +63 -0
  299. package/adapters/pi/skills/forge-fix/references/stage-exit-protocol.md +344 -140
  300. package/adapters/pi/skills/forge-guide/references/forge-config-schema.json +1 -1
  301. package/adapters/pi/skills/forge-guide/references/shared-conventions.md +63 -0
  302. package/adapters/pi/skills/forge-verify/SKILL.md +72 -40
  303. package/adapters/pi/skills/forge-verify/references/findings-template.md +39 -49
  304. package/adapters/pi/skills/forge-verify/references/shared-conventions.md +63 -0
  305. package/adapters/pi/skills/forge-verify/references/stage-exit-protocol.md +472 -0
  306. package/adapters/pi/skills/forge-verify/references/verification-checklists/epic.md +4 -3
  307. package/adapters/pi/skills/forge-verify/references/verification-checklists/specs.md +2 -0
  308. package/package.json +1 -1
  309. package/adapters/claude/skills/forge-verify/references/pipeline-state-schema.json +0 -191
  310. package/adapters/codex/skills/forge-verify/references/pipeline-state-schema.json +0 -191
  311. package/adapters/copilot/skills/forge-verify/references/pipeline-state-schema.json +0 -191
  312. package/adapters/cursor/skills/forge-verify/references/pipeline-state-schema.json +0 -191
  313. package/adapters/gemini/skills/forge-verify/references/pipeline-state-schema.json +0 -191
  314. package/adapters/pi/skills/forge-verify/references/pipeline-state-schema.json +0 -191
@@ -146,7 +146,7 @@ Pipeline state is written by the `state-*` verbs — see the Pipeline State Prot
146
146
  1. Record completion by running `state-complete` (below) with `--version`, `--artifact backlog.json`, and `--based-on forge-1-prd=<current version> --based-on forge-2-tech=<current version> --based-on forge-3-specs=<current version>`. It sets `status: "complete"`, `completedAt`, the version and `basedOnVersions`, and applies the downstream staleness cascade deterministically, so no downstream status is set by hand.
147
147
  2. **Offer a note — don't force one.** As a statement (not a blocking question), let the user know they can jot anything worth preserving across sessions and you'll store it in the `notes` field. If they volunteer something, store it; otherwise proceed.
148
148
  3. If `gitCommitAfterStage` is true, follow the Git Commit Protocol: stage files, attempt commit (marking `stages.forge-4-backlog.status` `complete` with `commitHash: null` in that commit), then record the artifact-commit hash via the protocol's two-commit follow-up (never `--amend`) only on success. If commit fails, leave status as `in-progress`.
149
- 4. If verification was available but the user chose to skip it, record `stages.forge-verify-backlog.status` as `"skipped"` in pipeline state.
149
+ 4. If verification was available but the user chose to skip it, persist that skip through `state-verify` using the fence below — never by hand. The choice to proceed unverified is durable state owned by the scripted writer.
150
150
  5. **Close with the Stage Exit Protocol** (single-sourced in `references/stage-exit-protocol.md`; do not improvise a "Next steps" list). Lead with the item count ("Backlog complete with {N} items."), then:
151
151
 
152
152
  The `state-complete` call for item 1 — and the `state-note` call only when the user volunteered a note in item 2 — with the portable plugin-root prelude. Add `--epic "{epic}"` to each call when this feature is an epic member — required, per the Pipeline State Protocol in `references/shared-conventions.md`:
@@ -163,15 +163,28 @@ python3 "$R/scripts/forge-session.py" state-note \
163
163
  --feature "{feature}" --note "<what the user volunteered>" --specs-dir "{specsDir}"
164
164
  ```
165
165
 
166
+ The `state-verify` call for item 4 — **only** when verification was available and the user explicitly chose to skip it. A verifier that could not be dispatched is not a skip, so do not run this on an unavailable-tool path. Add `--epic "{epic}"` when this feature is an epic member — required, per the Pipeline State Protocol in `references/shared-conventions.md`:
167
+
168
+ ```bash
169
+ R="$(bash -c 'for d in "${FEATURE_FORGE_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')"
170
+ [ -n "$R" ] || { echo "feature-forge: cannot locate plugin root" >&2; exit 1; }
171
+ python3 "$R/scripts/forge-session.py" state-verify \
172
+ --feature "{feature}" --stage forge-4-backlog --status skipped --specs-dir "{specsDir}"
173
+ ```
174
+
175
+ If that verb exits 2, surface its plain `Error:` line verbatim and stop — the skip is not persisted, so the exit below would route on state that does not exist on disk.
176
+
177
+ **Determine `--verify-capability` before running the exit** (full rule: `references/stage-exit-protocol.md`; summary: **Verify Capability** in `references/shared-conventions.md`). Pass `interactive` only when a question mechanism equivalent to the host's question mechanism is available **and** a clean-room `forge-verifier` may be dispatched; otherwise pass `manual`. Dispatch capability means **permitted** dispatch, not a listed tool — the test is "may I dispatch `forge-verifier` right now", not "is a dispatch tool in my tool surface". A session that bars *unsolicited* dispatch while offering a question mechanism is therefore **`interactive`, not `manual`**: the gate's affirmative choice is the user request that authorizes the dispatch. Such a bar is never grounds to skip verification, and never grounds to fence the production successor while verification is unresolved — on the `runInStageVerify: true` path the emitted `verifyGate` stays `none`, so reuse the Standard Verify Gate block for consent with **choice 2 omitted**, leaving exactly two choices: *Verify now* (recommended) and *Skip for now*. The clean-room `forge-verifier` is **dispatched on the affirmative choice**, never merely printed for the user to run later; *Skip for now* is persisted as an explicit `skipped` before any advancing block. Add `--epic "{epic}"` to the call below when this feature is an epic member.
178
+
166
179
  **Close this stage with the Scripted Stage Exit** (contract: `references/stage-exit-protocol.md`; do not improvise a "Next steps" list). Run:
167
180
 
168
181
  ```bash
169
182
  R="$(bash -c 'for d in "${FEATURE_FORGE_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')"
170
183
  [ -n "$R" ] || { echo "feature-forge: cannot locate plugin root" >&2; exit 1; }
171
- python3 "$R/scripts/forge-session.py" stage-exit --feature "{feature}" --stage forge-4-backlog --specs-dir "{specsDir}" --host generic
184
+ python3 "$R/scripts/forge-session.py" stage-exit --feature "{feature}" --stage forge-4-backlog --specs-dir "{specsDir}" --host generic --verify-capability "{verify-capability}"
172
185
  ```
173
186
 
174
- Obey the DIRECTIVES it prints, in order, per the directive contract: `runInStageVerify: true` → dispatch the in-stage clean-room verify now (honoring `autoFixEligible`); `verifyGate: "standard"` → present the Standard Verify Gate; `verifyGate: "manual-print"` → print the `verifyCommand` for the user; non-empty `invalidAutoVerifyKeys` → print a one-line warning. Then **print the NEXT-STEPS block verbatim as your absolute last output — nothing after its sentinel line.**
187
+ Obey the DIRECTIVES it prints, in the consumption order this protocol fixes: surface `invalidAutoVerifyKeys` and every `warnings` entry first; `runInStageVerify: true` → run the in-stage clean-room verify chain now (honoring `autoFixEligible`, and asking through the Standard Verify Gate first when you may not dispatch unsolicited); `verifyGate: "standard"` → present the Standard Verify Gate; `verifyGate: "manual-print"` → print the `verifyCommand` for the user and do **not** dispatch inline. Then, and only when `terminalOwnedBy` is `"self"`, **print the NEXT-STEPS block verbatim as your absolute last output — nothing after its sentinel line.** A `terminalOwnedBy: "outer"` payload carries `nextSteps: null`: return your structured result to the caller and print no terminal block at all.
175
188
 
176
189
  ## Gotchas
177
190
 
@@ -191,6 +191,44 @@ Pipeline state is written by the `state-*` verbs of `scripts/forge-session.py`
191
191
 
192
192
  If a `state-*` verb exits 2, surface the plain `Error:` line from stderr verbatim, do **not** proceed to the next step of the surrounding protocol, and do **not** hand-author the JSON as a workaround. The stage remains resumable because the entry stamp is already on disk — re-run the verb once the cause is fixed.
193
193
 
194
+ **The eight `state-*` verbs.** `state-enter` (Stage-Entry Guard), `state-artifact` (incremental artifact tracking), `state-complete` (Git Commit Protocol), `state-branch` (Branch Setup and Branch Reconciliation), `state-note` (the Immediate Downstream Note below, and the optional completion note at stage closure), `state-decision` (deferred decisions), `state-ecr` (epic change requests), and `state-verify` (one `forge-verify-*` verification transition — below). The `--epic` member requirement and the exit-2 failure protocol above apply to **every** one of them, `state-verify` included; no verify entry is ever hand-authored.
195
+
196
+ ### `state-verify` — verification results and provenance
197
+
198
+ `state-verify` writes exactly one `stages.forge-verify-{token}` entry — the verification result for the production stage named by `--stage` — plus the top-level `updatedAt`, and nothing else. `--stage` takes the **served production stage** (`forge-0-epic` through `forge-5-loop`; `forge-6-docs` has no verification token and is rejected). Add `--epic "{epic}"` when the feature is an epic member — required, per the member rule above. Result mode passes `--status` (`auto-verify-pending`, `passed`, `findings-reported`, `findings-applied`, or `skipped`) with whatever `--findings-file`, `--findings-count`, and `--verified-stage-version` that status requires; contradictory metadata is refused before any write. `passed` may additionally carry `--findings-file` + `--findings-count` together for an **advisory-only** report (`inconsistency`/`improvement` findings only, per forge-verify's severity floor) — the stage resolves without a fix round and the report stays attached:
199
+
200
+ **`auto-verify-pending` is not a skill-facing status.** It is written by `stage-exit`'s scheduling boundary, which records the debt automatically when auto-verify is effective for a stage. The value is accepted on this CLI so the entry stays inspectable and repairable, not so a skill can hand-schedule verification: no skill body and no reference passes it, and none should. Every other status in the list is the recorded *result* of a verification that ran (or was explicitly skipped); this one records that one was *owed*.
201
+
202
+ ```bash
203
+ 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')"
204
+ [ -n "$R" ] || { echo "feature-forge: cannot locate plugin root" >&2; exit 1; }
205
+ python3 "$R/scripts/forge-session.py" state-verify \
206
+ --feature "{feature}" --stage "{served-production-stage}" --status "<status>" \
207
+ --specs-dir "{specsDir}"
208
+ ```
209
+
210
+ Provenance follows the same two-commit sequence as `state-complete`: the result transition above writes `commitHash: null`, Commit 1 records the findings document and the state, and a second `state-verify` call records the full 40-hex hash of Commit 1 and touches nothing else (never `--amend`; an abbreviated hash is refused rather than expanded). Add `--epic "{epic}"` for an epic member — required, per the member rule above:
211
+
212
+ ```bash
213
+ 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')"
214
+ [ -n "$R" ] || { echo "feature-forge: cannot locate plugin root" >&2; exit 1; }
215
+ python3 "$R/scripts/forge-session.py" state-verify \
216
+ --feature "{feature}" --stage "{served-production-stage}" \
217
+ --commit-hash "$(git rev-parse HEAD)" --specs-dir "{specsDir}"
218
+ ```
219
+
220
+ Epic-scoped verification is the single exception to the member rule: with `--stage forge-0-epic`, `--feature` names the **epic** and `--epic` must be absent or exactly equal to it. That call writes `{specsDir}/{epic}/.epic-state.json` and never a member's `.pipeline-state.json`, and its freshness version is the epic manifest's `revision`, never a member's stage version:
221
+
222
+ ```bash
223
+ 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')"
224
+ [ -n "$R" ] || { echo "feature-forge: cannot locate plugin root" >&2; exit 1; }
225
+ python3 "$R/scripts/forge-session.py" state-verify \
226
+ --feature "{epic}" --stage forge-0-epic --status "<status>" \
227
+ --specs-dir "{specsDir}"
228
+ ```
229
+
230
+ On exit 2 the verification result is **not** recorded: surface the `Error:` line verbatim, name the feature (and epic), and do not claim the verification was persisted or advance past it.
231
+
194
232
  ### Staleness Detection (Read-Time)
195
233
 
196
234
  When loading upstream artifacts as prerequisites, check `basedOnVersions` in the pipeline state for this stage. If any upstream stage's current version is newer than the version recorded in `basedOnVersions`, warn the user before proceeding:
@@ -199,6 +237,31 @@ When loading upstream artifacts as prerequisites, check `basedOnVersions` in the
199
237
 
200
238
  Frame the choice with its cost: re-running re-derives this stage from the current upstream (safest, but discards any hand-edits to this stage's artifacts); proceeding stale is faster but risks baking outdated assumptions into everything downstream. Recommend re-running unless the user knows the upstream change doesn't affect this stage.
201
239
 
240
+ ## Immediate Downstream Note (Parking Lot)
241
+
242
+ When an interview raises a concern that belongs to a *later stage of this same feature*, acknowledge it and persist it **immediately, at the moment it is raised** — not at stage closure — by running `state-note` with a concise one-line statement of the concern. Add `--epic "{epic}"` when this feature is an epic member — required, per the Pipeline State Protocol above; omitting it for a member is an error and must never be allowed to fall back to a same-named flat feature.
243
+
244
+ ```bash
245
+ 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')"
246
+ [ -n "$R" ] || { echo "feature-forge: cannot locate plugin root" >&2; exit 1; }
247
+ python3 "$R/scripts/forge-session.py" state-note \
248
+ --feature "{feature}" --note "<concise downstream concern>" \
249
+ --specs-dir "{specsDir}"
250
+ ```
251
+
252
+ `state-note` **overwrites** the single top-level `notes` string — it does not append. To preserve an earlier note, read the current `notes` value out of the feature's `.pipeline-state.json` first and pass one combined concise string in a single `--note`; never edit or round-trip the JSON by hand. This interview-time call is separate from the optional completion note offered at stage closure and must not be deferred until then — a session that ends before closure would otherwise lose the concern entirely.
253
+
254
+ On `UsageError`/exit 2, surface the `Error:` line verbatim together with the named feature (and epic) and the recovery instruction, and **stop claiming the concern was recorded** — it was not. Epic *decomposition* changes are not notes: they go through `state-ecr` into `epicChangeRequests`, never into `notes`.
255
+
256
+ ## Verify Capability
257
+
258
+ Skills that close a stage pass `--verify-capability interactive|manual` to `stage-exit`. The full determination rule, the Standard Verify Gate, and the recovery path live in `references/stage-exit-protocol.md`; the two facts that are most often gotten wrong:
259
+
260
+ - **Dispatch capability is *permitted* dispatch, not a listed tool.** The question is "**may I dispatch `forge-verifier` right now**", not "is a subagent-dispatch tool in my tool surface". A session can carry a standing host instruction against dispatching subagents unless the user asked; such instructions are injected by the harness, sit outside this project's control, and outrank skill prose. Classify on permission, up front.
261
+ - **A consent requirement is `interactive`, not `manual`.** When dispatch is barred only *unless the user asked* and a question mechanism is available, pass `interactive`: the gate's own affirmative choice supplies the missing user request. Pass `manual` only when there is **no** question mechanism **and** **no** permitted dispatch.
262
+
263
+ A bar on unsolicited dispatch is never grounds to skip verification, and never grounds to fence the production successor while verification is unresolved. On the `runInStageVerify: true` path the emitted `verifyGate` stays `none`: reuse the Standard Verify Gate block for consent with **choice 2 omitted** (auto-verify is already effective, so "enable auto-verify going forward" is a no-op), leaving exactly two choices: *Verify now* (recommended) and *Skip for now*. The clean-room `forge-verifier` is **dispatched on the affirmative choice**, never merely printed for the user to run later; *Skip for now* is persisted as an explicit `skipped` before any advancing block.
264
+
202
265
  ## Branch Setup
203
266
 
204
267
  Invoke this block at the **very start** of a pipeline entry point — `forge-1-prd` (standalone feature) and `forge-0-epic` (epic) — **before** any directory resolution or interview, so the rest of the run lands on the intended branch. `{label}` is the feature name (forge-1-prd) or epic name (forge-0-epic); `{scope}` is `feature` or `epic` correspondingly.