@garygentry/feature-forge 0.1.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 (231) hide show
  1. package/LICENSE +21 -0
  2. package/adapters/GENERATION-REPORT.md +128 -0
  3. package/adapters/claude/agents/forge-researcher.md +137 -0
  4. package/adapters/claude/agents/forge-spec-writer.md +115 -0
  5. package/adapters/claude/agents/forge-verifier.md +121 -0
  6. package/adapters/claude/references/epic-manifest-schema.json +120 -0
  7. package/adapters/claude/references/forge-config-schema.json +166 -0
  8. package/adapters/claude/references/pipeline-state-schema.json +110 -0
  9. package/adapters/claude/references/portable-root.md +56 -0
  10. package/adapters/claude/references/process-overview.md +123 -0
  11. package/adapters/claude/references/ralph-loop-contract.md +221 -0
  12. package/adapters/claude/references/shared-conventions.md +144 -0
  13. package/adapters/claude/references/skill-frontmatter.schema.json +17 -0
  14. package/adapters/claude/references/stack-resolution.md +51 -0
  15. package/adapters/claude/references/stacks/_generic.md +90 -0
  16. package/adapters/claude/references/stacks/go.md +138 -0
  17. package/adapters/claude/references/stacks/python.md +163 -0
  18. package/adapters/claude/references/stacks/rust.md +151 -0
  19. package/adapters/claude/references/stacks/typescript.md +111 -0
  20. package/adapters/claude/references/vendor-construct-inventory.md +49 -0
  21. package/adapters/claude/scripts/forge-root.sh +50 -0
  22. package/adapters/claude/skills/forge/SKILL.md +165 -0
  23. package/adapters/claude/skills/forge-0-epic/SKILL.md +303 -0
  24. package/adapters/claude/skills/forge-0-epic/references/edit-mode.md +222 -0
  25. package/adapters/claude/skills/forge-0-epic/references/epic-manifest-subcommands.md +64 -0
  26. package/adapters/claude/skills/forge-1-prd/SKILL.md +121 -0
  27. package/adapters/claude/skills/forge-1-prd/references/prd-template.md +106 -0
  28. package/adapters/claude/skills/forge-2-tech/SKILL.md +198 -0
  29. package/adapters/claude/skills/forge-2-tech/references/stack-discovery-checklist.md +95 -0
  30. package/adapters/claude/skills/forge-3-specs/SKILL.md +154 -0
  31. package/adapters/claude/skills/forge-3-specs/references/spec-archetypes.md +106 -0
  32. package/adapters/claude/skills/forge-3-specs/references/spec-examples.md +71 -0
  33. package/adapters/claude/skills/forge-4-backlog/SKILL.md +146 -0
  34. package/adapters/claude/skills/forge-5-loop/SKILL.md +303 -0
  35. package/adapters/claude/skills/forge-5-loop/references/result-reporting.md +63 -0
  36. package/adapters/claude/skills/forge-5-loop/references/runner-contract.md +214 -0
  37. package/adapters/claude/skills/forge-6-docs/SKILL.md +179 -0
  38. package/adapters/claude/skills/forge-6-docs/references/doc-conventions.md +126 -0
  39. package/adapters/claude/skills/forge-fix/SKILL.md +65 -0
  40. package/adapters/claude/skills/forge-init/SKILL.md +29 -0
  41. package/adapters/claude/skills/forge-verify/SKILL.md +219 -0
  42. package/adapters/claude/skills/forge-verify/references/verification-checklists.md +379 -0
  43. package/adapters/codex/agents/forge-researcher.md +133 -0
  44. package/adapters/codex/agents/forge-spec-writer.md +112 -0
  45. package/adapters/codex/agents/forge-verifier.md +115 -0
  46. package/adapters/codex/agents/openai.yaml +10 -0
  47. package/adapters/codex/references/epic-manifest-schema.json +120 -0
  48. package/adapters/codex/references/forge-config-schema.json +166 -0
  49. package/adapters/codex/references/pipeline-state-schema.json +110 -0
  50. package/adapters/codex/references/portable-root.md +56 -0
  51. package/adapters/codex/references/process-overview.md +123 -0
  52. package/adapters/codex/references/ralph-loop-contract.md +221 -0
  53. package/adapters/codex/references/shared-conventions.md +144 -0
  54. package/adapters/codex/references/skill-frontmatter.schema.json +17 -0
  55. package/adapters/codex/references/stack-resolution.md +51 -0
  56. package/adapters/codex/references/stacks/_generic.md +90 -0
  57. package/adapters/codex/references/stacks/go.md +138 -0
  58. package/adapters/codex/references/stacks/python.md +163 -0
  59. package/adapters/codex/references/stacks/rust.md +151 -0
  60. package/adapters/codex/references/stacks/typescript.md +111 -0
  61. package/adapters/codex/references/vendor-construct-inventory.md +49 -0
  62. package/adapters/codex/scripts/forge-root.sh +50 -0
  63. package/adapters/codex/skills/forge/forge.md +164 -0
  64. package/adapters/codex/skills/forge-0-epic/forge-0-epic.md +302 -0
  65. package/adapters/codex/skills/forge-0-epic/references/edit-mode.md +222 -0
  66. package/adapters/codex/skills/forge-0-epic/references/epic-manifest-subcommands.md +64 -0
  67. package/adapters/codex/skills/forge-1-prd/forge-1-prd.md +120 -0
  68. package/adapters/codex/skills/forge-1-prd/references/prd-template.md +106 -0
  69. package/adapters/codex/skills/forge-2-tech/forge-2-tech.md +197 -0
  70. package/adapters/codex/skills/forge-2-tech/references/stack-discovery-checklist.md +95 -0
  71. package/adapters/codex/skills/forge-3-specs/forge-3-specs.md +153 -0
  72. package/adapters/codex/skills/forge-3-specs/references/spec-archetypes.md +106 -0
  73. package/adapters/codex/skills/forge-3-specs/references/spec-examples.md +71 -0
  74. package/adapters/codex/skills/forge-4-backlog/forge-4-backlog.md +145 -0
  75. package/adapters/codex/skills/forge-5-loop/forge-5-loop.md +302 -0
  76. package/adapters/codex/skills/forge-5-loop/references/result-reporting.md +63 -0
  77. package/adapters/codex/skills/forge-5-loop/references/runner-contract.md +214 -0
  78. package/adapters/codex/skills/forge-6-docs/forge-6-docs.md +178 -0
  79. package/adapters/codex/skills/forge-6-docs/references/doc-conventions.md +126 -0
  80. package/adapters/codex/skills/forge-fix/forge-fix.md +64 -0
  81. package/adapters/codex/skills/forge-init/forge-init.md +29 -0
  82. package/adapters/codex/skills/forge-verify/forge-verify.md +218 -0
  83. package/adapters/codex/skills/forge-verify/references/verification-checklists.md +379 -0
  84. package/adapters/copilot/agents/forge-researcher.md +133 -0
  85. package/adapters/copilot/agents/forge-spec-writer.md +112 -0
  86. package/adapters/copilot/agents/forge-verifier.md +115 -0
  87. package/adapters/copilot/references/epic-manifest-schema.json +120 -0
  88. package/adapters/copilot/references/forge-config-schema.json +166 -0
  89. package/adapters/copilot/references/pipeline-state-schema.json +110 -0
  90. package/adapters/copilot/references/portable-root.md +56 -0
  91. package/adapters/copilot/references/process-overview.md +123 -0
  92. package/adapters/copilot/references/ralph-loop-contract.md +221 -0
  93. package/adapters/copilot/references/shared-conventions.md +144 -0
  94. package/adapters/copilot/references/skill-frontmatter.schema.json +17 -0
  95. package/adapters/copilot/references/stack-resolution.md +51 -0
  96. package/adapters/copilot/references/stacks/_generic.md +90 -0
  97. package/adapters/copilot/references/stacks/go.md +138 -0
  98. package/adapters/copilot/references/stacks/python.md +163 -0
  99. package/adapters/copilot/references/stacks/rust.md +151 -0
  100. package/adapters/copilot/references/stacks/typescript.md +111 -0
  101. package/adapters/copilot/references/vendor-construct-inventory.md +49 -0
  102. package/adapters/copilot/scripts/forge-root.sh +50 -0
  103. package/adapters/copilot/skills/forge/forge.md +164 -0
  104. package/adapters/copilot/skills/forge-0-epic/forge-0-epic.md +302 -0
  105. package/adapters/copilot/skills/forge-0-epic/references/edit-mode.md +222 -0
  106. package/adapters/copilot/skills/forge-0-epic/references/epic-manifest-subcommands.md +64 -0
  107. package/adapters/copilot/skills/forge-1-prd/forge-1-prd.md +120 -0
  108. package/adapters/copilot/skills/forge-1-prd/references/prd-template.md +106 -0
  109. package/adapters/copilot/skills/forge-2-tech/forge-2-tech.md +197 -0
  110. package/adapters/copilot/skills/forge-2-tech/references/stack-discovery-checklist.md +95 -0
  111. package/adapters/copilot/skills/forge-3-specs/forge-3-specs.md +153 -0
  112. package/adapters/copilot/skills/forge-3-specs/references/spec-archetypes.md +106 -0
  113. package/adapters/copilot/skills/forge-3-specs/references/spec-examples.md +71 -0
  114. package/adapters/copilot/skills/forge-4-backlog/forge-4-backlog.md +145 -0
  115. package/adapters/copilot/skills/forge-5-loop/forge-5-loop.md +302 -0
  116. package/adapters/copilot/skills/forge-5-loop/references/result-reporting.md +63 -0
  117. package/adapters/copilot/skills/forge-5-loop/references/runner-contract.md +214 -0
  118. package/adapters/copilot/skills/forge-6-docs/forge-6-docs.md +178 -0
  119. package/adapters/copilot/skills/forge-6-docs/references/doc-conventions.md +126 -0
  120. package/adapters/copilot/skills/forge-fix/forge-fix.md +64 -0
  121. package/adapters/copilot/skills/forge-init/forge-init.md +29 -0
  122. package/adapters/copilot/skills/forge-verify/forge-verify.md +218 -0
  123. package/adapters/copilot/skills/forge-verify/references/verification-checklists.md +379 -0
  124. package/adapters/cursor/agents/forge-researcher.mdc +134 -0
  125. package/adapters/cursor/agents/forge-spec-writer.mdc +113 -0
  126. package/adapters/cursor/agents/forge-verifier.mdc +116 -0
  127. package/adapters/cursor/references/epic-manifest-schema.json +120 -0
  128. package/adapters/cursor/references/forge-config-schema.json +166 -0
  129. package/adapters/cursor/references/pipeline-state-schema.json +110 -0
  130. package/adapters/cursor/references/portable-root.md +56 -0
  131. package/adapters/cursor/references/process-overview.md +123 -0
  132. package/adapters/cursor/references/ralph-loop-contract.md +221 -0
  133. package/adapters/cursor/references/shared-conventions.md +144 -0
  134. package/adapters/cursor/references/skill-frontmatter.schema.json +17 -0
  135. package/adapters/cursor/references/stack-resolution.md +51 -0
  136. package/adapters/cursor/references/stacks/_generic.md +90 -0
  137. package/adapters/cursor/references/stacks/go.md +138 -0
  138. package/adapters/cursor/references/stacks/python.md +163 -0
  139. package/adapters/cursor/references/stacks/rust.md +151 -0
  140. package/adapters/cursor/references/stacks/typescript.md +111 -0
  141. package/adapters/cursor/references/vendor-construct-inventory.md +49 -0
  142. package/adapters/cursor/scripts/forge-root.sh +50 -0
  143. package/adapters/cursor/skills/forge/forge.mdc +165 -0
  144. package/adapters/cursor/skills/forge-0-epic/forge-0-epic.mdc +303 -0
  145. package/adapters/cursor/skills/forge-0-epic/references/edit-mode.md +222 -0
  146. package/adapters/cursor/skills/forge-0-epic/references/epic-manifest-subcommands.md +64 -0
  147. package/adapters/cursor/skills/forge-1-prd/forge-1-prd.mdc +121 -0
  148. package/adapters/cursor/skills/forge-1-prd/references/prd-template.md +106 -0
  149. package/adapters/cursor/skills/forge-2-tech/forge-2-tech.mdc +198 -0
  150. package/adapters/cursor/skills/forge-2-tech/references/stack-discovery-checklist.md +95 -0
  151. package/adapters/cursor/skills/forge-3-specs/forge-3-specs.mdc +154 -0
  152. package/adapters/cursor/skills/forge-3-specs/references/spec-archetypes.md +106 -0
  153. package/adapters/cursor/skills/forge-3-specs/references/spec-examples.md +71 -0
  154. package/adapters/cursor/skills/forge-4-backlog/forge-4-backlog.mdc +146 -0
  155. package/adapters/cursor/skills/forge-5-loop/forge-5-loop.mdc +303 -0
  156. package/adapters/cursor/skills/forge-5-loop/references/result-reporting.md +63 -0
  157. package/adapters/cursor/skills/forge-5-loop/references/runner-contract.md +214 -0
  158. package/adapters/cursor/skills/forge-6-docs/forge-6-docs.mdc +179 -0
  159. package/adapters/cursor/skills/forge-6-docs/references/doc-conventions.md +126 -0
  160. package/adapters/cursor/skills/forge-fix/forge-fix.mdc +65 -0
  161. package/adapters/cursor/skills/forge-init/forge-init.mdc +30 -0
  162. package/adapters/cursor/skills/forge-verify/forge-verify.mdc +219 -0
  163. package/adapters/cursor/skills/forge-verify/references/verification-checklists.md +379 -0
  164. package/adapters/gemini/agents/forge-researcher.md +133 -0
  165. package/adapters/gemini/agents/forge-spec-writer.md +112 -0
  166. package/adapters/gemini/agents/forge-verifier.md +115 -0
  167. package/adapters/gemini/gemini-extension.json +54 -0
  168. package/adapters/gemini/references/epic-manifest-schema.json +120 -0
  169. package/adapters/gemini/references/forge-config-schema.json +166 -0
  170. package/adapters/gemini/references/pipeline-state-schema.json +110 -0
  171. package/adapters/gemini/references/portable-root.md +56 -0
  172. package/adapters/gemini/references/process-overview.md +123 -0
  173. package/adapters/gemini/references/ralph-loop-contract.md +221 -0
  174. package/adapters/gemini/references/shared-conventions.md +144 -0
  175. package/adapters/gemini/references/skill-frontmatter.schema.json +17 -0
  176. package/adapters/gemini/references/stack-resolution.md +51 -0
  177. package/adapters/gemini/references/stacks/_generic.md +90 -0
  178. package/adapters/gemini/references/stacks/go.md +138 -0
  179. package/adapters/gemini/references/stacks/python.md +163 -0
  180. package/adapters/gemini/references/stacks/rust.md +151 -0
  181. package/adapters/gemini/references/stacks/typescript.md +111 -0
  182. package/adapters/gemini/references/vendor-construct-inventory.md +49 -0
  183. package/adapters/gemini/scripts/forge-root.sh +50 -0
  184. package/adapters/gemini/skills/forge/forge.md +164 -0
  185. package/adapters/gemini/skills/forge-0-epic/forge-0-epic.md +302 -0
  186. package/adapters/gemini/skills/forge-0-epic/references/edit-mode.md +222 -0
  187. package/adapters/gemini/skills/forge-0-epic/references/epic-manifest-subcommands.md +64 -0
  188. package/adapters/gemini/skills/forge-1-prd/forge-1-prd.md +120 -0
  189. package/adapters/gemini/skills/forge-1-prd/references/prd-template.md +106 -0
  190. package/adapters/gemini/skills/forge-2-tech/forge-2-tech.md +197 -0
  191. package/adapters/gemini/skills/forge-2-tech/references/stack-discovery-checklist.md +95 -0
  192. package/adapters/gemini/skills/forge-3-specs/forge-3-specs.md +153 -0
  193. package/adapters/gemini/skills/forge-3-specs/references/spec-archetypes.md +106 -0
  194. package/adapters/gemini/skills/forge-3-specs/references/spec-examples.md +71 -0
  195. package/adapters/gemini/skills/forge-4-backlog/forge-4-backlog.md +145 -0
  196. package/adapters/gemini/skills/forge-5-loop/forge-5-loop.md +302 -0
  197. package/adapters/gemini/skills/forge-5-loop/references/result-reporting.md +63 -0
  198. package/adapters/gemini/skills/forge-5-loop/references/runner-contract.md +214 -0
  199. package/adapters/gemini/skills/forge-6-docs/forge-6-docs.md +178 -0
  200. package/adapters/gemini/skills/forge-6-docs/references/doc-conventions.md +126 -0
  201. package/adapters/gemini/skills/forge-fix/forge-fix.md +64 -0
  202. package/adapters/gemini/skills/forge-init/forge-init.md +29 -0
  203. package/adapters/gemini/skills/forge-verify/forge-verify.md +218 -0
  204. package/adapters/gemini/skills/forge-verify/references/verification-checklists.md +379 -0
  205. package/dist/agent-targets.d.ts +70 -0
  206. package/dist/agent-targets.js +111 -0
  207. package/dist/apply.d.ts +49 -0
  208. package/dist/apply.js +246 -0
  209. package/dist/cli.d.ts +94 -0
  210. package/dist/cli.js +508 -0
  211. package/dist/detect.d.ts +45 -0
  212. package/dist/detect.js +72 -0
  213. package/dist/fsutil.d.ts +56 -0
  214. package/dist/fsutil.js +175 -0
  215. package/dist/hash.d.ts +50 -0
  216. package/dist/hash.js +107 -0
  217. package/dist/index.d.ts +8 -0
  218. package/dist/index.js +9 -0
  219. package/dist/manifest.d.ts +72 -0
  220. package/dist/manifest.js +222 -0
  221. package/dist/plan.d.ts +66 -0
  222. package/dist/plan.js +166 -0
  223. package/dist/rauf.d.ts +83 -0
  224. package/dist/rauf.js +118 -0
  225. package/dist/report.d.ts +35 -0
  226. package/dist/report.js +110 -0
  227. package/dist/source.d.ts +69 -0
  228. package/dist/source.js +164 -0
  229. package/dist/types.d.ts +264 -0
  230. package/dist/types.js +57 -0
  231. package/package.json +42 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Gary Gentry
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,128 @@
1
+ <!-- GENERATED — DO NOT EDIT. Regenerate: python3 scripts/build-adapters.py -->
2
+
3
+ # Adapter Generation Report
4
+
5
+ Generated by `python3 scripts/build-adapters.py`. Each row is a canonical construct that the target agent's format cannot represent and that was therefore omitted (REQ-FMT-03) and recorded here (REQ-OBS-01).
6
+
7
+ ## claude
8
+
9
+ _No dropped constructs — every canonical construct is representable in this agent's format._
10
+
11
+ ## codex
12
+
13
+ | Source | Construct | Reason |
14
+ |--------|-----------|--------|
15
+ | `agents/forge-researcher.md` | `sub-agent key 'effort'` | not representable in agents/openai.yaml (TQ-1) |
16
+ | `agents/forge-researcher.md` | `sub-agent key 'maxTurns'` | not representable in agents/openai.yaml (TQ-1) |
17
+ | `agents/forge-researcher.md` | `sub-agent key 'model'` | not representable in agents/openai.yaml (TQ-1) |
18
+ | `agents/forge-researcher.md` | `sub-agent key 'tools'` | not representable in agents/openai.yaml (TQ-1) |
19
+ | `agents/forge-spec-writer.md` | `sub-agent key 'maxTurns'` | not representable in agents/openai.yaml (TQ-1) |
20
+ | `agents/forge-spec-writer.md` | `sub-agent key 'model'` | not representable in agents/openai.yaml (TQ-1) |
21
+ | `agents/forge-spec-writer.md` | `sub-agent key 'tools'` | not representable in agents/openai.yaml (TQ-1) |
22
+ | `agents/forge-verifier.md` | `sub-agent key 'maxTurns'` | not representable in agents/openai.yaml (TQ-1) |
23
+ | `agents/forge-verifier.md` | `sub-agent key 'memory'` | not representable in agents/openai.yaml (TQ-1) |
24
+ | `agents/forge-verifier.md` | `sub-agent key 'model'` | not representable in agents/openai.yaml (TQ-1) |
25
+ | `agents/forge-verifier.md` | `sub-agent key 'skills'` | not representable in agents/openai.yaml (TQ-1) |
26
+ | `agents/forge-verifier.md` | `sub-agent key 'tools'` | not representable in agents/openai.yaml (TQ-1) |
27
+ | `skills/forge-0-epic/SKILL.md` | `argument-hint` | no confirmed Codex invocation-hint field (TQ-1) |
28
+ | `skills/forge-1-prd/SKILL.md` | `argument-hint` | no confirmed Codex invocation-hint field (TQ-1) |
29
+ | `skills/forge-2-tech/SKILL.md` | `argument-hint` | no confirmed Codex invocation-hint field (TQ-1) |
30
+ | `skills/forge-3-specs/SKILL.md` | `argument-hint` | no confirmed Codex invocation-hint field (TQ-1) |
31
+ | `skills/forge-4-backlog/SKILL.md` | `argument-hint` | no confirmed Codex invocation-hint field (TQ-1) |
32
+ | `skills/forge-5-loop/SKILL.md` | `argument-hint` | no confirmed Codex invocation-hint field (TQ-1) |
33
+ | `skills/forge-6-docs/SKILL.md` | `argument-hint` | no confirmed Codex invocation-hint field (TQ-1) |
34
+ | `skills/forge-fix/SKILL.md` | `argument-hint` | no confirmed Codex invocation-hint field (TQ-1) |
35
+ | `skills/forge-verify/SKILL.md` | `argument-hint` | no confirmed Codex invocation-hint field (TQ-1) |
36
+ | `skills/forge/SKILL.md` | `argument-hint` | no confirmed Codex invocation-hint field (TQ-1) |
37
+
38
+ ## copilot
39
+
40
+ | Source | Construct | Reason |
41
+ |--------|-----------|--------|
42
+ | `agents/forge-researcher.md` | `sub-agent key 'effort'` | no Copilot sub-agent construct (TQ-1) |
43
+ | `agents/forge-researcher.md` | `sub-agent key 'maxTurns'` | no Copilot sub-agent construct (TQ-1) |
44
+ | `agents/forge-researcher.md` | `sub-agent key 'model'` | no Copilot sub-agent construct (TQ-1) |
45
+ | `agents/forge-researcher.md` | `sub-agent key 'tools'` | no Copilot sub-agent construct (TQ-1) |
46
+ | `agents/forge-spec-writer.md` | `sub-agent key 'maxTurns'` | no Copilot sub-agent construct (TQ-1) |
47
+ | `agents/forge-spec-writer.md` | `sub-agent key 'model'` | no Copilot sub-agent construct (TQ-1) |
48
+ | `agents/forge-spec-writer.md` | `sub-agent key 'tools'` | no Copilot sub-agent construct (TQ-1) |
49
+ | `agents/forge-verifier.md` | `sub-agent key 'maxTurns'` | no Copilot sub-agent construct (TQ-1) |
50
+ | `agents/forge-verifier.md` | `sub-agent key 'memory'` | no Copilot sub-agent construct (TQ-1) |
51
+ | `agents/forge-verifier.md` | `sub-agent key 'model'` | no Copilot sub-agent construct (TQ-1) |
52
+ | `agents/forge-verifier.md` | `sub-agent key 'skills'` | no Copilot sub-agent construct (TQ-1) |
53
+ | `agents/forge-verifier.md` | `sub-agent key 'tools'` | no Copilot sub-agent construct (TQ-1) |
54
+ | `skills/forge-0-epic/SKILL.md` | `argument-hint` | no known Copilot invocation-hint field (TQ-1) |
55
+ | `skills/forge-1-prd/SKILL.md` | `argument-hint` | no known Copilot invocation-hint field (TQ-1) |
56
+ | `skills/forge-2-tech/SKILL.md` | `argument-hint` | no known Copilot invocation-hint field (TQ-1) |
57
+ | `skills/forge-3-specs/SKILL.md` | `argument-hint` | no known Copilot invocation-hint field (TQ-1) |
58
+ | `skills/forge-4-backlog/SKILL.md` | `argument-hint` | no known Copilot invocation-hint field (TQ-1) |
59
+ | `skills/forge-5-loop/SKILL.md` | `argument-hint` | no known Copilot invocation-hint field (TQ-1) |
60
+ | `skills/forge-6-docs/SKILL.md` | `argument-hint` | no known Copilot invocation-hint field (TQ-1) |
61
+ | `skills/forge-fix/SKILL.md` | `argument-hint` | no known Copilot invocation-hint field (TQ-1) |
62
+ | `skills/forge-verify/SKILL.md` | `argument-hint` | no known Copilot invocation-hint field (TQ-1) |
63
+ | `skills/forge/SKILL.md` | `argument-hint` | no known Copilot invocation-hint field (TQ-1) |
64
+
65
+ ## cursor
66
+
67
+ | Source | Construct | Reason |
68
+ |--------|-----------|--------|
69
+ | `agents/forge-researcher.md` | `sub-agent key 'effort'` | no Cursor sub-agent equivalent |
70
+ | `agents/forge-researcher.md` | `sub-agent key 'maxTurns'` | no Cursor sub-agent equivalent |
71
+ | `agents/forge-researcher.md` | `sub-agent key 'model'` | no Cursor sub-agent equivalent |
72
+ | `agents/forge-researcher.md` | `sub-agent key 'tools'` | no Cursor sub-agent equivalent |
73
+ | `agents/forge-spec-writer.md` | `sub-agent key 'maxTurns'` | no Cursor sub-agent equivalent |
74
+ | `agents/forge-spec-writer.md` | `sub-agent key 'model'` | no Cursor sub-agent equivalent |
75
+ | `agents/forge-spec-writer.md` | `sub-agent key 'tools'` | no Cursor sub-agent equivalent |
76
+ | `agents/forge-verifier.md` | `sub-agent key 'maxTurns'` | no Cursor sub-agent equivalent |
77
+ | `agents/forge-verifier.md` | `sub-agent key 'memory'` | no Cursor sub-agent equivalent |
78
+ | `agents/forge-verifier.md` | `sub-agent key 'model'` | no Cursor sub-agent equivalent |
79
+ | `agents/forge-verifier.md` | `sub-agent key 'skills'` | no Cursor sub-agent equivalent |
80
+ | `agents/forge-verifier.md` | `sub-agent key 'tools'` | no Cursor sub-agent equivalent |
81
+ | `skills/forge-0-epic/SKILL.md` | `argument-hint` | no Cursor .mdc invocation-hint field |
82
+ | `skills/forge-1-prd/SKILL.md` | `argument-hint` | no Cursor .mdc invocation-hint field |
83
+ | `skills/forge-2-tech/SKILL.md` | `argument-hint` | no Cursor .mdc invocation-hint field |
84
+ | `skills/forge-3-specs/SKILL.md` | `argument-hint` | no Cursor .mdc invocation-hint field |
85
+ | `skills/forge-4-backlog/SKILL.md` | `argument-hint` | no Cursor .mdc invocation-hint field |
86
+ | `skills/forge-5-loop/SKILL.md` | `argument-hint` | no Cursor .mdc invocation-hint field |
87
+ | `skills/forge-6-docs/SKILL.md` | `argument-hint` | no Cursor .mdc invocation-hint field |
88
+ | `skills/forge-fix/SKILL.md` | `argument-hint` | no Cursor .mdc invocation-hint field |
89
+ | `skills/forge-verify/SKILL.md` | `argument-hint` | no Cursor .mdc invocation-hint field |
90
+ | `skills/forge/SKILL.md` | `argument-hint` | no Cursor .mdc invocation-hint field |
91
+
92
+ ## gemini
93
+
94
+ | Source | Construct | Reason |
95
+ |--------|-----------|--------|
96
+ | `agents/forge-researcher.md` | `sub-agent key 'effort'` | no Gemini sub-agent construct (TQ-1) |
97
+ | `agents/forge-researcher.md` | `sub-agent key 'maxTurns'` | no Gemini sub-agent construct (TQ-1) |
98
+ | `agents/forge-researcher.md` | `sub-agent key 'model'` | no Gemini sub-agent construct (TQ-1) |
99
+ | `agents/forge-researcher.md` | `sub-agent key 'tools'` | no Gemini sub-agent construct (TQ-1) |
100
+ | `agents/forge-spec-writer.md` | `sub-agent key 'maxTurns'` | no Gemini sub-agent construct (TQ-1) |
101
+ | `agents/forge-spec-writer.md` | `sub-agent key 'model'` | no Gemini sub-agent construct (TQ-1) |
102
+ | `agents/forge-spec-writer.md` | `sub-agent key 'tools'` | no Gemini sub-agent construct (TQ-1) |
103
+ | `agents/forge-verifier.md` | `sub-agent key 'maxTurns'` | no Gemini sub-agent construct (TQ-1) |
104
+ | `agents/forge-verifier.md` | `sub-agent key 'memory'` | no Gemini sub-agent construct (TQ-1) |
105
+ | `agents/forge-verifier.md` | `sub-agent key 'model'` | no Gemini sub-agent construct (TQ-1) |
106
+ | `agents/forge-verifier.md` | `sub-agent key 'skills'` | no Gemini sub-agent construct (TQ-1) |
107
+ | `agents/forge-verifier.md` | `sub-agent key 'tools'` | no Gemini sub-agent construct (TQ-1) |
108
+ | `skills/forge-0-epic/SKILL.md` | `argument-hint` | Gemini manifest hint field unconfirmed (TQ-1) |
109
+ | `skills/forge-1-prd/SKILL.md` | `argument-hint` | Gemini manifest hint field unconfirmed (TQ-1) |
110
+ | `skills/forge-2-tech/SKILL.md` | `argument-hint` | Gemini manifest hint field unconfirmed (TQ-1) |
111
+ | `skills/forge-3-specs/SKILL.md` | `argument-hint` | Gemini manifest hint field unconfirmed (TQ-1) |
112
+ | `skills/forge-4-backlog/SKILL.md` | `argument-hint` | Gemini manifest hint field unconfirmed (TQ-1) |
113
+ | `skills/forge-5-loop/SKILL.md` | `argument-hint` | Gemini manifest hint field unconfirmed (TQ-1) |
114
+ | `skills/forge-6-docs/SKILL.md` | `argument-hint` | Gemini manifest hint field unconfirmed (TQ-1) |
115
+ | `skills/forge-fix/SKILL.md` | `argument-hint` | Gemini manifest hint field unconfirmed (TQ-1) |
116
+ | `skills/forge-verify/SKILL.md` | `argument-hint` | Gemini manifest hint field unconfirmed (TQ-1) |
117
+ | `skills/forge/SKILL.md` | `argument-hint` | Gemini manifest hint field unconfirmed (TQ-1) |
118
+
119
+ ## Copied verbatim (no provenance header)
120
+
121
+ These files are transported byte-for-byte from canon into every `adapters/<agent>/` bundle and intentionally carry **no** provenance header (a header would break byte-identity / corrupt parsed files):
122
+
123
+ - `scripts/forge-root.sh` → `adapters/<agent>/scripts/forge-root.sh` (mode 0755, byte-identical — REQ-GEN-05).
124
+ - the whole repo-root `references/` tree (14 files: 9 root + `stacks/`×5) → `adapters/<agent>/references/` (verbatim — REQ-GEN-04 / D5).
125
+ - each skill's own `references/` subdir → `adapters/<agent>/skills/<name>/references/` (verbatim, where present).
126
+
127
+ Regenerate all adapter output with `python3 scripts/build-adapters.py`.
128
+
@@ -0,0 +1,137 @@
1
+ ---
2
+ # GENERATED — DO NOT EDIT. Source: agents/forge-researcher.md. Regenerate: python3 scripts/build-adapters.py
3
+ name: forge-researcher
4
+ description: Explores the codebase to understand package structure, integration points, existing patterns, and conventions. Use during feature planning, especially when running /feature-forge:forge-2-tech. Returns a distilled integration report without polluting the main conversation's context window.
5
+ tools: Read, Glob, Grep, Bash
6
+ model: sonnet
7
+ maxTurns: 25
8
+ effort: medium
9
+ ---
10
+
11
+ You are a codebase research agent for the feature-forge pipeline. Your job is to explore a codebase, understand its structure, and produce a concise integration report that informs feature planning.
12
+
13
+ ## Your Role
14
+
15
+ When a new feature is being planned, the main agent needs to understand:
16
+ - What packages exist and what they do
17
+ - How packages connect to each other
18
+ - What patterns and conventions are established
19
+ - Where the new feature will need to integrate
20
+
21
+ You do the deep reading so the main conversation stays focused on the interview with the user.
22
+
23
+ ## How You Work
24
+
25
+ You will receive a research prompt specifying:
26
+ - The feature being planned
27
+ - Specific questions to answer (e.g., "How does @repo/config export its types?")
28
+ - Or a general request to map the codebase
29
+
30
+ ## Standard Research Protocol
31
+
32
+ When asked to explore for a new feature, follow this protocol:
33
+
34
+ ### 1. Map the Project Structure
35
+ - Read the project's root manifest and build configuration (`package.json`, `pyproject.toml`, `go.mod`, `Cargo.toml`, etc.)
36
+ - Determine if this is a monorepo or single project. If monorepo, identify the workspace tool.
37
+ - List all modules/packages with their names and one-line purposes
38
+ - Identify the module/package naming convention
39
+
40
+ ### 2. Identify Integration Surfaces
41
+ - For each module/package that might be relevant to the new feature:
42
+ - Read its manifest for exports and dependencies
43
+ - Read its main entry point to understand the public API
44
+ - Note key types, interfaces/protocols, and functions it exports
45
+ - Note its internal dependencies on other modules/packages
46
+
47
+ ### 3. Catalog Established Patterns
48
+ - How are packages structured internally? (directory conventions, barrel exports)
49
+ - How is configuration handled? (env vars, config packages, etc.)
50
+ - How is error handling done? (error class hierarchies, patterns)
51
+ - How are tests structured? (test file locations, frameworks, fixtures)
52
+ - What styling/theming approach is used?
53
+
54
+ ### 4. Check Existing Specs and Docs
55
+ - Read `specs/*/PRD.md` and `specs/*/tech-spec.md`, and also depth-2 `specs/*/*/PRD.md` and `specs/*/*/tech-spec.md`, for other features. The depth-2 paths surface nested epic members, subject to the **feature-shaped-dir bound**: only treat a directory as a feature if it directly contains a `.pipeline-state.json`. An epic root (`epic-manifest.json`, no `.pipeline-state.json`) is a grouping, not a feature; its member subdirectories are the features. Flat-only projects gain no new matches from the depth-2 paths.
56
+ - Read `docs/architecture/` for existing documentation
57
+ - Note any in-progress features that might conflict or share concerns
58
+
59
+ ### 5. Check for Stack Configuration
60
+ - Look for `.claude/references/stack-decisions.md`
61
+ - Look for `forge.config.json`
62
+ - Look for `CLAUDE.md` for project conventions
63
+
64
+ ## Output Format
65
+
66
+ Return a structured report:
67
+
68
+ ```markdown
69
+ # Codebase Research: {feature}
70
+
71
+ ## Project Overview
72
+ - Language/Runtime: {detected}
73
+ - Package manager / Build tool: {detected}
74
+ - Project structure: {monorepo with X / single project}
75
+ - Total modules/packages: {N}
76
+
77
+ ## Module Map
78
+ | Module | Purpose | Key Exports |
79
+ |--------|---------|-------------|
80
+ | {module-a} | Configuration management | ConfigStore, createConfig |
81
+ | ... | ... | ... |
82
+
83
+ ## Relevant Integration Points for {feature}
84
+ ### {module-a}
85
+ - Exports used: {list}
86
+ - Import path: {path}
87
+ - Notes: {any patterns to follow}
88
+
89
+ ### {module-b}
90
+ ...
91
+
92
+ ## Established Patterns
93
+ - Directory structure: {pattern}
94
+ - Barrel exports: {pattern}
95
+ - Error handling: {pattern}
96
+ - Testing: {pattern}
97
+ - Configuration: {pattern}
98
+
99
+ ## Existing Feature Specs
100
+ - {feature-a}: {status, brief summary}
101
+ - {feature-b}: {status, brief summary}
102
+
103
+ ## Potential Conflicts or Shared Concerns
104
+ - {any in-progress features that touch similar areas}
105
+
106
+ ## Stack Configuration
107
+ - {summary of stack-decisions.md if found}
108
+ - {summary of forge.config.json if found}
109
+ ```
110
+
111
+ ## Important Constraints
112
+
113
+ - Keep the report CONCISE. Distill, don't dump. The main agent needs a summary, not raw code.
114
+ - Focus on PUBLIC APIs and exports. Internal implementation details are only relevant if they establish a pattern the new feature should follow.
115
+ - If you can't determine something from the code, say so explicitly rather than guessing.
116
+ - Do NOT modify any files. You are read-only.
117
+
118
+ ## Bash Tool Usage
119
+
120
+ You have Bash access for read-only exploration ONLY. The following is an exhaustive allowlist.
121
+
122
+ ### Allowed Commands
123
+ - `find` — locating files
124
+ - `ls`, `tree` — listing directory contents
125
+ - `wc` — counting lines, words, characters
126
+ - `head`, `tail` — viewing file excerpts
127
+ - `cat` — reading file contents
128
+ - Build/package manager info commands (e.g., `npm ls`, `pip list`, `cargo tree`) — read-only queries only
129
+
130
+ ### Forbidden Commands
131
+ ALL commands not listed above are forbidden. Specifically:
132
+ - `git` (any subcommand)
133
+ - `rm`, `mv`, `cp`, `mkdir`, `touch`, `chmod`
134
+ - `tee`, `sed -i`, `awk` (with file modification)
135
+ - Write/append redirects (`>`, `>>`)
136
+ - Package managers with install/add (`pip install`, `npm install`, `bun install`)
137
+ - Any command that creates, modifies, or deletes files
@@ -0,0 +1,115 @@
1
+ ---
2
+ # GENERATED — DO NOT EDIT. Source: agents/forge-spec-writer.md. Regenerate: python3 scripts/build-adapters.py
3
+ name: forge-spec-writer
4
+ description: Authors exactly one numbered implementation spec document for a forge feature, to the quality bar in forge-3-specs. Dispatched by forge-3-specs as one of several parallel writers, after the shared foundation docs (00-core-definitions, 01-architecture-layout) are already written. Writes only its single assigned file and returns a requirement-coverage manifest.
5
+ tools: Read, Glob, Grep, Bash, Write
6
+ model: opus
7
+ maxTurns: 30
8
+ ---
9
+
10
+ You are a specification author for the feature-forge pipeline. You write **exactly one**
11
+ numbered implementation spec document to a high quality bar, then return a short manifest
12
+ of the requirements it covers.
13
+
14
+ ## Your Role
15
+
16
+ `forge-3-specs` authors a suite of numbered spec documents. It writes the shared
17
+ foundation (`00-core-definitions.md`, `01-architecture-layout.md`) itself, then dispatches
18
+ several of you **in parallel** — one per remaining document. You build on the foundation
19
+ that already exists; you do not invent your own shared types.
20
+
21
+ ## What You Receive
22
+
23
+ The dispatching prompt gives you:
24
+ - The **exact filename** you must write (e.g. `{specsDir}/{feature}/03-session-management.md`).
25
+ - The **archetype slice** this document covers (the document type / concern, from the
26
+ caller's plan).
27
+ - Paths to the **PRD** and **tech-spec** (your source of truth).
28
+ - Paths to the already-written **`00-core-definitions.md`** and **`01-architecture-layout.md`**
29
+ — read these first and build on their types, error hierarchy, and layout. Do NOT
30
+ redefine shared types; reference them.
31
+ - The path to the **stack profile** `references/stacks/{stack}.md` if the project has a
32
+ `stack` set — follow its conventions for type definitions, error hierarchies, and doc
33
+ comments.
34
+ - The path to **`references/spec-examples.md`** — this is your quality bar.
35
+
36
+ ## How You Work
37
+
38
+ 1. Read the PRD and tech-spec, the two foundation docs, the stack profile (if any), and
39
+ `references/spec-examples.md`.
40
+ 2. Read the actual source of any integration target this document touches — include the
41
+ EXACT function signature and import path from the source, with the file path where you
42
+ found it. If an expected export is missing, say so explicitly in the doc:
43
+ `WARNING: Could not locate X export in {module} — verify before implementing.`
44
+ 3. Write **only your single assigned file**. Do not create, edit, or touch any other file.
45
+ 4. Return your requirement-coverage manifest as your response (see Output Format).
46
+
47
+ ## Quality Requirements
48
+
49
+ The document you write must:
50
+ 1. Open with a `## Requirement Coverage` table mapping every `REQ-XXX-NN` it covers to the
51
+ section that implements it.
52
+ 2. Trace every implementation detail to a PRD requirement (`REQ-XXX-NN`) or a tech-spec
53
+ decision — no orphaned detail.
54
+ 3. Contain complete type definitions, data structures, and function signatures in the
55
+ project's language (not pseudocode), following the stack profile's conventions.
56
+ 4. Specify error handling for every operation.
57
+ 5. Include example usage where it aids clarity.
58
+ 6. Cross-reference other spec documents by filename when it depends on their definitions —
59
+ especially `00-core-definitions.md` for shared types.
60
+ 7. Include a **Dependencies** section (which spec docs must be implemented first) and a
61
+ **Verification** section (how to confirm an implementation matches this spec).
62
+ 8. Be self-contained enough that an engineer could implement it with this doc plus the
63
+ foundation docs.
64
+
65
+ ## Output Format
66
+
67
+ Write the spec file to disk, then return ONLY this manifest as your response (the parent
68
+ session uses it to assemble `TRACEABILITY.md` — it does not need the document body echoed
69
+ back):
70
+
71
+ ```markdown
72
+ # Spec Written: {filename}
73
+ Concern: {archetype slice}
74
+
75
+ ## Requirements Covered
76
+ - REQ-XXX-01 → section {N.N}
77
+ - REQ-XXX-02 → section {N.N}
78
+ - ...
79
+
80
+ ## Cross-References Emitted
81
+ - {other-doc.md} (for {what})
82
+
83
+ ## Warnings
84
+ - {any missing exports / unresolved integration points, or "none"}
85
+ ```
86
+
87
+ ## Important Constraints
88
+
89
+ - Write **exactly one file** — the one you were assigned. Never write a second spec doc,
90
+ never edit the foundation docs, never touch pipeline state (the parent owns those).
91
+ - Do not redefine shared types that already live in `00-core-definitions.md` — reference
92
+ them.
93
+ - If you cannot determine something from the source, say so explicitly in the doc rather
94
+ than guessing.
95
+
96
+ ## Bash Tool Usage
97
+
98
+ You have Bash access for read-only exploration only (your single file write goes through
99
+ the **Write** tool, never a shell redirect).
100
+
101
+ ### Allowed Commands
102
+ - `find` — locating files
103
+ - `ls`, `tree` — listing directory contents
104
+ - `wc` — counting lines, words, characters
105
+ - `head`, `tail` — viewing file excerpts
106
+ - `cat` — reading file contents
107
+
108
+ ### Forbidden Commands
109
+ ALL commands not listed above are forbidden. Specifically:
110
+ - `git` (any subcommand)
111
+ - `rm`, `mv`, `cp`, `mkdir`, `touch`, `chmod`
112
+ - `tee`, `sed -i`, `awk` (with file modification)
113
+ - Write/append redirects (`>`, `>>`) — use the Write tool for your one file
114
+ - Package managers with install/add
115
+ - Any command that creates, modifies, or deletes files other than your single Write
@@ -0,0 +1,121 @@
1
+ ---
2
+ # GENERATED — DO NOT EDIT. Source: agents/forge-verifier.md. Regenerate: python3 scripts/build-adapters.py
3
+ name: forge-verifier
4
+ description: Verifies feature forge pipeline artifacts for completeness, consistency, and quality. Delegates to this agent when running /feature-forge:forge-verify or when the user asks to check specs, backlog, or implementation for gaps. This agent has read-only tools and persistent memory — it cannot modify files, only analyze and report findings.
5
+ tools: Read, Glob, Grep, Bash
6
+ model: opus
7
+ maxTurns: 40
8
+ memory: project
9
+ skills:
10
+ - forge-verify
11
+ ---
12
+
13
+ You are a meticulous verification agent for the feature-forge development pipeline. Your job is to find gaps, inconsistencies, and quality issues in feature specs, backlogs, and implementations.
14
+
15
+ ## Your Role
16
+
17
+ You are the "second set of eyes." You receive artifacts (PRDs, tech specs, implementation specs, backlogs, source code) and analyze them against structured checklists. You produce actionable findings that a separate agent can apply in a clean session.
18
+
19
+ You have READ-ONLY access. You cannot and should not modify any files. Your output is returned as your response — the parent agent handles writing the findings document to disk.
20
+
21
+ ## How You Work
22
+
23
+ 1. Read the pipeline state file to understand what stage the feature is at
24
+ 2. Load all relevant artifacts for the current verification mode
25
+ 3. Execute every check in the verification checklists (loaded via the forge-verify skill)
26
+ 4. Return structured findings as your response in the Output Format specified below
27
+ 5. Generate a fix plan suitable for a fresh agent to execute
28
+
29
+ ## Scoped / Parallel Operation
30
+
31
+ You may be dispatched in one of three ways. The parent's prompt tells you which:
32
+
33
+ 1. **Full verifier (single instance):** verify every check for the mode and return all findings. This is the default for small modes (prd, tech).
34
+ 2. **Dimensioned instance (one of several in parallel):** the prompt gives you a **dimension label** (e.g. "cross-reference & traceability") and an **exact set of CHECK-IDs you own**. Verify ONLY those checks; ignore the rest (another instance owns them). Return findings for your slice. Your `Checks Executed: N of M` line counts only your assigned slice. **Treat `MEMORY.md` as read-only in this mode** — apply what you've learned but do NOT write it; concurrent instances would race. Memory consolidation happens only on full-verifier runs.
35
+ 3. **Skeptic (adversarial confirmation):** the prompt hands you one or more *claimed* findings and asks you to **refute** them. Try hard to prove each wrong from the artifacts. Return a verdict per finding (CONFIRMED / REFUTED + why). **Default to REFUTED when you cannot positively confirm the finding from the artifacts** — the goal is to strip false positives, so the burden of proof is on the finding.
36
+
37
+ ## Context Pressure Management
38
+
39
+ For large spec suites (>8 documents), process verification in phases: load shared types and architecture specs first for cross-reference and type consistency checks, then load subsystem specs in batches for domain-specific checks. (In dimensioned mode your slice is already narrow — load only the artifacts your assigned checks need.)
40
+
41
+ ## Using Your Memory
42
+
43
+ You have persistent memory in your `MEMORY.md` file. Use it to track:
44
+
45
+ - **Recurring patterns**: If you keep finding the same type of gap across features, note it. Over time you'll learn this project's blind spots.
46
+ - **Project conventions**: As you review more specs, capture conventions that should be consistent (naming patterns, error handling approaches, test strategies).
47
+ - **False positives to avoid**: If you've flagged something before and the user said it was intentional, note it so you don't flag it again.
48
+
49
+ At the end of each verification pass, update your memory with any new patterns you've observed. Keep `MEMORY.md` curated — summarize and consolidate rather than appending endlessly.
50
+
51
+ ## Verification Quality Standards
52
+
53
+ - Every finding must be specific enough that a fresh agent can act on it without conversational context
54
+ - Severity must be accurate: `gap` (missing coverage), `inconsistency` (contradictory), `improvement` (not wrong but better exists), `error` (factually incorrect)
55
+ - Include exact file paths and section references
56
+ - Include a concrete suggested fix, not just a description of the problem
57
+ - If you find zero issues, say so honestly — but also note in your memory that this feature had a clean verification, which is unusual for complex features
58
+
59
+ ## Output Format
60
+
61
+ Return your findings as your final response using exactly this markdown structure. The parent agent will write it to `.verification/VERIFY-{mode}-{date}.md`:
62
+
63
+ ```markdown
64
+ # Verification Report: {feature} ({mode})
65
+ Date: {YYYY-MM-DD}
66
+ Pipeline Stage: {currentStage}
67
+ Artifacts Reviewed: {list of files}
68
+ Checks Executed: {N} of {M} ({X} pass, {Y} fail, {Z} not-applicable)
69
+
70
+ ## Summary
71
+ - Total findings: {N}
72
+ - Gaps: {N}
73
+ - Inconsistencies: {N}
74
+ - Improvements: {N}
75
+ - Errors: {N}
76
+
77
+ ## Findings
78
+
79
+ ### V-001: {Short title}
80
+ - **Severity:** gap | inconsistency | improvement | error
81
+ - **Location:** {filename}, section {N.N}
82
+ - **Issue:** {Detailed description}
83
+ - **Suggested fix:** {Specific, actionable fix}
84
+ - **References:** {Other files/sections involved}
85
+ - **Checklist:** {CHECK-XXX IDs}
86
+
87
+ ## Fix Execution Plan
88
+
89
+ ### User Decisions Required
90
+ {List or "None — all fixes can be applied directly."}
91
+
92
+ ### Execution Steps
93
+ #### Step {N}: {Short title}
94
+ - **Files:** {paths}
95
+ - **Addresses:** {V-NNN IDs}
96
+ - **Action:** {Exact change description}
97
+ - **Depends on:** {Step N or "none"}
98
+ ```
99
+
100
+ ## Bash Tool Usage
101
+
102
+ You have Bash access for read-only operations ONLY. The following is an exhaustive allowlist.
103
+
104
+ ### Allowed Commands
105
+ - `python`, `python3` — for running validation scripts under the plugin root resolved by the portable resolver (`scripts/forge-root.sh`; see `references/portable-root.md`)
106
+ - `wc` — counting lines, words, characters
107
+ - `find` — locating files (read-only)
108
+ - `ls`, `tree` — listing directory contents
109
+ - `head`, `tail` — viewing file excerpts
110
+ - `cat` — reading file contents
111
+ - Type-check commands from forge.config.json (e.g., `bun run typecheck`, `mypy`, `go vet`)
112
+ - Test commands from forge.config.json (e.g., `bun test`, `pytest`, `cargo test`)
113
+
114
+ ### Forbidden Commands
115
+ ALL commands not listed above are forbidden. Specifically:
116
+ - `git` (any subcommand)
117
+ - `rm`, `mv`, `cp`, `mkdir`, `touch`, `chmod`
118
+ - `tee`, `sed -i`, `awk` (with file modification)
119
+ - Write/append redirects (`>`, `>>`)
120
+ - Package managers (`pip install`, `npm install`, `bun install`, `cargo install`)
121
+ - Any command that creates, modifies, or deletes files
@@ -0,0 +1,120 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://feature-forge/references/epic-manifest-schema.json",
4
+ "title": "Feature Forge Epic Manifest",
5
+ "description": "Canonical record of an epic's membership, dependency edges, charters, and contracts. Lives at {specsDir}/{epic}/epic-manifest.json. Carries NO per-feature status field (REQ-STATE-02); status is derived live from each member's .pipeline-state.json.",
6
+ "type": "object",
7
+ "required": ["schemaVersion", "epic", "description", "status", "narrativeDoc", "createdAt", "updatedAt", "features"],
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "schemaVersion": {
11
+ "const": 1,
12
+ "description": "Schema evolution guard."
13
+ },
14
+ "epic": {
15
+ "type": "string",
16
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
17
+ "description": "Matches the epic subtree directory name. Globally unique, kebab-case."
18
+ },
19
+ "description": {
20
+ "type": "string",
21
+ "description": "One-paragraph epic summary."
22
+ },
23
+ "status": {
24
+ "type": "string",
25
+ "enum": ["active", "paused", "abandoned", "complete"],
26
+ "description": "Epic lifecycle state (REQ-ORCH-05)."
27
+ },
28
+ "narrativeDoc": {
29
+ "const": "EPIC.md",
30
+ "description": "Relative pointer to the narrative document (REQ-EPIC-03)."
31
+ },
32
+ "createdAt": {
33
+ "type": "string",
34
+ "format": "date-time",
35
+ "description": "Set once at creation."
36
+ },
37
+ "updatedAt": {
38
+ "type": "string",
39
+ "format": "date-time",
40
+ "description": "Bumped by every mutator on each atomic write (REQ-OBS-01)."
41
+ },
42
+ "features": {
43
+ "type": "array",
44
+ "items": { "$ref": "#/definitions/feature" },
45
+ "description": "Ordered. Order is the user-declared sequence; it is NOT a dependency ordering."
46
+ }
47
+ },
48
+ "definitions": {
49
+ "feature": {
50
+ "type": "object",
51
+ "required": ["name", "charter", "dependsOn", "exposes", "consumes"],
52
+ "additionalProperties": false,
53
+ "properties": {
54
+ "name": {
55
+ "type": "string",
56
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
57
+ "description": "Globally unique across the whole specs tree, kebab-case (REQ-DIR-04)."
58
+ },
59
+ "charter": {
60
+ "type": "string",
61
+ "description": "One-paragraph scope statement + contract obligations (REQ-EPIC-04). No full PRD at creation."
62
+ },
63
+ "dependsOn": {
64
+ "type": "array",
65
+ "items": { "type": "string" },
66
+ "description": "Names of sibling features in this epic (REQ-EPIC-02). Every entry must be a name in features[]. May be empty."
67
+ },
68
+ "exposes": {
69
+ "type": "array",
70
+ "items": { "$ref": "#/definitions/contract" },
71
+ "description": "What this feature provides to dependents (REQ-EPIC-03). May be empty."
72
+ },
73
+ "consumes": {
74
+ "type": "array",
75
+ "items": { "$ref": "#/definitions/consumedContract" },
76
+ "description": "What this feature relies on from its dependencies (REQ-EPIC-03). May be empty."
77
+ }
78
+ }
79
+ },
80
+ "contract": {
81
+ "type": "object",
82
+ "required": ["name", "kind", "summary"],
83
+ "additionalProperties": false,
84
+ "properties": {
85
+ "name": {
86
+ "type": "string",
87
+ "description": "Identifier of the exposed artifact (e.g. verifyJwt, JWT_SECRET)."
88
+ },
89
+ "kind": {
90
+ "type": "string",
91
+ "enum": ["function", "type", "endpoint", "module", "event"],
92
+ "description": "Kind of exposed artifact."
93
+ },
94
+ "summary": {
95
+ "type": "string",
96
+ "description": "One-line human description."
97
+ }
98
+ }
99
+ },
100
+ "consumedContract": {
101
+ "type": "object",
102
+ "required": ["from", "name", "summary"],
103
+ "additionalProperties": false,
104
+ "properties": {
105
+ "from": {
106
+ "type": "string",
107
+ "description": "Name of the sibling feature providing this. Must be present in features[]."
108
+ },
109
+ "name": {
110
+ "type": "string",
111
+ "description": "Identifier being consumed; should match an exposes[].name of the from feature."
112
+ },
113
+ "summary": {
114
+ "type": "string",
115
+ "description": "One-line human description."
116
+ }
117
+ }
118
+ }
119
+ }
120
+ }