eai-cli 0.0.0-bootstrap.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 (690) hide show
  1. package/LICENSE +183 -0
  2. package/NOTICE +4 -0
  3. package/README.md +14 -0
  4. package/dist/commands/agent.d.ts +3 -0
  5. package/dist/commands/agent.d.ts.map +1 -0
  6. package/dist/commands/agent.js +69 -0
  7. package/dist/commands/agent.js.map +1 -0
  8. package/dist/commands/blocks.d.ts +3 -0
  9. package/dist/commands/blocks.d.ts.map +1 -0
  10. package/dist/commands/blocks.js +249 -0
  11. package/dist/commands/blocks.js.map +1 -0
  12. package/dist/commands/chat.d.ts +6 -0
  13. package/dist/commands/chat.d.ts.map +1 -0
  14. package/dist/commands/chat.js +105 -0
  15. package/dist/commands/chat.js.map +1 -0
  16. package/dist/commands/deploy.d.ts +36 -0
  17. package/dist/commands/deploy.d.ts.map +1 -0
  18. package/dist/commands/deploy.js +712 -0
  19. package/dist/commands/deploy.js.map +1 -0
  20. package/dist/commands/dev.d.ts +15 -0
  21. package/dist/commands/dev.d.ts.map +1 -0
  22. package/dist/commands/dev.js +133 -0
  23. package/dist/commands/dev.js.map +1 -0
  24. package/dist/commands/docs.d.ts +6 -0
  25. package/dist/commands/docs.d.ts.map +1 -0
  26. package/dist/commands/docs.js +118 -0
  27. package/dist/commands/docs.js.map +1 -0
  28. package/dist/commands/env.d.ts +10 -0
  29. package/dist/commands/env.d.ts.map +1 -0
  30. package/dist/commands/env.js +200 -0
  31. package/dist/commands/env.js.map +1 -0
  32. package/dist/commands/errors.d.ts +3 -0
  33. package/dist/commands/errors.d.ts.map +1 -0
  34. package/dist/commands/errors.js +72 -0
  35. package/dist/commands/errors.js.map +1 -0
  36. package/dist/commands/gofer.d.ts +3 -0
  37. package/dist/commands/gofer.d.ts.map +1 -0
  38. package/dist/commands/gofer.js +134 -0
  39. package/dist/commands/gofer.js.map +1 -0
  40. package/dist/commands/init.d.ts +14 -0
  41. package/dist/commands/init.d.ts.map +1 -0
  42. package/dist/commands/init.js +1437 -0
  43. package/dist/commands/init.js.map +1 -0
  44. package/dist/commands/login.d.ts +7 -0
  45. package/dist/commands/login.d.ts.map +1 -0
  46. package/dist/commands/login.js +117 -0
  47. package/dist/commands/login.js.map +1 -0
  48. package/dist/commands/provision.d.ts +6 -0
  49. package/dist/commands/provision.d.ts.map +1 -0
  50. package/dist/commands/provision.js +855 -0
  51. package/dist/commands/provision.js.map +1 -0
  52. package/dist/commands/publicapi.d.ts +6 -0
  53. package/dist/commands/publicapi.d.ts.map +1 -0
  54. package/dist/commands/publicapi.js +184 -0
  55. package/dist/commands/publicapi.js.map +1 -0
  56. package/dist/commands/resources.d.ts +38 -0
  57. package/dist/commands/resources.d.ts.map +1 -0
  58. package/dist/commands/resources.js +1010 -0
  59. package/dist/commands/resources.js.map +1 -0
  60. package/dist/commands/runtime.d.ts +3 -0
  61. package/dist/commands/runtime.d.ts.map +1 -0
  62. package/dist/commands/runtime.js +78 -0
  63. package/dist/commands/runtime.js.map +1 -0
  64. package/dist/commands/template.d.ts +3 -0
  65. package/dist/commands/template.d.ts.map +1 -0
  66. package/dist/commands/template.js +365 -0
  67. package/dist/commands/template.js.map +1 -0
  68. package/dist/commands/tenant.d.ts +45 -0
  69. package/dist/commands/tenant.d.ts.map +1 -0
  70. package/dist/commands/tenant.js +1036 -0
  71. package/dist/commands/tenant.js.map +1 -0
  72. package/dist/commands/types.d.ts +130 -0
  73. package/dist/commands/types.d.ts.map +1 -0
  74. package/dist/commands/types.js +1636 -0
  75. package/dist/commands/types.js.map +1 -0
  76. package/dist/commands/update.d.ts +13 -0
  77. package/dist/commands/update.d.ts.map +1 -0
  78. package/dist/commands/update.js +163 -0
  79. package/dist/commands/update.js.map +1 -0
  80. package/dist/commands/user.d.ts +6 -0
  81. package/dist/commands/user.d.ts.map +1 -0
  82. package/dist/commands/user.js +359 -0
  83. package/dist/commands/user.js.map +1 -0
  84. package/dist/commands/verify.d.ts +40 -0
  85. package/dist/commands/verify.d.ts.map +1 -0
  86. package/dist/commands/verify.js +1442 -0
  87. package/dist/commands/verify.js.map +1 -0
  88. package/dist/commands/vertical.d.ts +24 -0
  89. package/dist/commands/vertical.d.ts.map +1 -0
  90. package/dist/commands/vertical.js +301 -0
  91. package/dist/commands/vertical.js.map +1 -0
  92. package/dist/commands/whoami.d.ts +6 -0
  93. package/dist/commands/whoami.d.ts.map +1 -0
  94. package/dist/commands/whoami.js +73 -0
  95. package/dist/commands/whoami.js.map +1 -0
  96. package/dist/commands/workflow.d.ts +6 -0
  97. package/dist/commands/workflow.d.ts.map +1 -0
  98. package/dist/commands/workflow.js +400 -0
  99. package/dist/commands/workflow.js.map +1 -0
  100. package/dist/index.d.ts +10 -0
  101. package/dist/index.d.ts.map +1 -0
  102. package/dist/index.js +272 -0
  103. package/dist/index.js.map +1 -0
  104. package/dist/lib/agent-guide.d.ts +24 -0
  105. package/dist/lib/agent-guide.d.ts.map +1 -0
  106. package/dist/lib/agent-guide.js +155 -0
  107. package/dist/lib/agent-guide.js.map +1 -0
  108. package/dist/lib/api.d.ts +338 -0
  109. package/dist/lib/api.d.ts.map +1 -0
  110. package/dist/lib/api.js +991 -0
  111. package/dist/lib/api.js.map +1 -0
  112. package/dist/lib/auth.d.ts +65 -0
  113. package/dist/lib/auth.d.ts.map +1 -0
  114. package/dist/lib/auth.js +592 -0
  115. package/dist/lib/auth.js.map +1 -0
  116. package/dist/lib/azure-cli.d.ts +6 -0
  117. package/dist/lib/azure-cli.d.ts.map +1 -0
  118. package/dist/lib/azure-cli.js +13 -0
  119. package/dist/lib/azure-cli.js.map +1 -0
  120. package/dist/lib/block-catalog-normalize.d.ts +47 -0
  121. package/dist/lib/block-catalog-normalize.d.ts.map +1 -0
  122. package/dist/lib/block-catalog-normalize.js +355 -0
  123. package/dist/lib/block-catalog-normalize.js.map +1 -0
  124. package/dist/lib/block-catalog-types.d.ts +111 -0
  125. package/dist/lib/block-catalog-types.d.ts.map +1 -0
  126. package/dist/lib/block-catalog-types.js +41 -0
  127. package/dist/lib/block-catalog-types.js.map +1 -0
  128. package/dist/lib/block-catalog-utils.d.ts +7 -0
  129. package/dist/lib/block-catalog-utils.d.ts.map +1 -0
  130. package/dist/lib/block-catalog-utils.js +47 -0
  131. package/dist/lib/block-catalog-utils.js.map +1 -0
  132. package/dist/lib/block-catalog-validation.d.ts +5 -0
  133. package/dist/lib/block-catalog-validation.d.ts.map +1 -0
  134. package/dist/lib/block-catalog-validation.js +112 -0
  135. package/dist/lib/block-catalog-validation.js.map +1 -0
  136. package/dist/lib/block-catalog.d.ts +3 -0
  137. package/dist/lib/block-catalog.d.ts.map +1 -0
  138. package/dist/lib/block-catalog.js +284 -0
  139. package/dist/lib/block-catalog.js.map +1 -0
  140. package/dist/lib/cloud-env.d.ts +25 -0
  141. package/dist/lib/cloud-env.d.ts.map +1 -0
  142. package/dist/lib/cloud-env.js +79 -0
  143. package/dist/lib/cloud-env.js.map +1 -0
  144. package/dist/lib/config.d.ts +116 -0
  145. package/dist/lib/config.d.ts.map +1 -0
  146. package/dist/lib/config.js +195 -0
  147. package/dist/lib/config.js.map +1 -0
  148. package/dist/lib/context.d.ts +43 -0
  149. package/dist/lib/context.d.ts.map +1 -0
  150. package/dist/lib/context.js +68 -0
  151. package/dist/lib/context.js.map +1 -0
  152. package/dist/lib/error-codes.d.ts +56 -0
  153. package/dist/lib/error-codes.d.ts.map +1 -0
  154. package/dist/lib/error-codes.js +211 -0
  155. package/dist/lib/error-codes.js.map +1 -0
  156. package/dist/lib/error-guidance/catalog.d.ts +648 -0
  157. package/dist/lib/error-guidance/catalog.d.ts.map +1 -0
  158. package/dist/lib/error-guidance/catalog.js +940 -0
  159. package/dist/lib/error-guidance/catalog.js.map +1 -0
  160. package/dist/lib/error-guidance/match.d.ts +3 -0
  161. package/dist/lib/error-guidance/match.d.ts.map +1 -0
  162. package/dist/lib/error-guidance/match.js +46 -0
  163. package/dist/lib/error-guidance/match.js.map +1 -0
  164. package/dist/lib/error-guidance/render.d.ts +5 -0
  165. package/dist/lib/error-guidance/render.d.ts.map +1 -0
  166. package/dist/lib/error-guidance/render.js +92 -0
  167. package/dist/lib/error-guidance/render.js.map +1 -0
  168. package/dist/lib/error-guidance/types.d.ts +76 -0
  169. package/dist/lib/error-guidance/types.d.ts.map +1 -0
  170. package/dist/lib/error-guidance/types.js +2 -0
  171. package/dist/lib/error-guidance/types.js.map +1 -0
  172. package/dist/lib/error-guidance/validate.d.ts +3 -0
  173. package/dist/lib/error-guidance/validate.d.ts.map +1 -0
  174. package/dist/lib/error-guidance/validate.js +59 -0
  175. package/dist/lib/error-guidance/validate.js.map +1 -0
  176. package/dist/lib/gofer-installer.d.ts +32 -0
  177. package/dist/lib/gofer-installer.d.ts.map +1 -0
  178. package/dist/lib/gofer-installer.js +589 -0
  179. package/dist/lib/gofer-installer.js.map +1 -0
  180. package/dist/lib/gofer-refresh.d.ts +46 -0
  181. package/dist/lib/gofer-refresh.d.ts.map +1 -0
  182. package/dist/lib/gofer-refresh.js +536 -0
  183. package/dist/lib/gofer-refresh.js.map +1 -0
  184. package/dist/lib/next-route-exports.d.ts +6 -0
  185. package/dist/lib/next-route-exports.d.ts.map +1 -0
  186. package/dist/lib/next-route-exports.js +127 -0
  187. package/dist/lib/next-route-exports.js.map +1 -0
  188. package/dist/lib/npm.d.ts +2 -0
  189. package/dist/lib/npm.d.ts.map +1 -0
  190. package/dist/lib/npm.js +4 -0
  191. package/dist/lib/npm.js.map +1 -0
  192. package/dist/lib/object-type-defaults.d.ts +4 -0
  193. package/dist/lib/object-type-defaults.d.ts.map +1 -0
  194. package/dist/lib/object-type-defaults.js +72 -0
  195. package/dist/lib/object-type-defaults.js.map +1 -0
  196. package/dist/lib/output.d.ts +35 -0
  197. package/dist/lib/output.d.ts.map +1 -0
  198. package/dist/lib/output.js +166 -0
  199. package/dist/lib/output.js.map +1 -0
  200. package/dist/lib/profile.d.ts +52 -0
  201. package/dist/lib/profile.d.ts.map +1 -0
  202. package/dist/lib/profile.js +116 -0
  203. package/dist/lib/profile.js.map +1 -0
  204. package/dist/lib/project-manifest.d.ts +42 -0
  205. package/dist/lib/project-manifest.d.ts.map +1 -0
  206. package/dist/lib/project-manifest.js +191 -0
  207. package/dist/lib/project-manifest.js.map +1 -0
  208. package/dist/lib/resourceapi-bundle.d.ts +33 -0
  209. package/dist/lib/resourceapi-bundle.d.ts.map +1 -0
  210. package/dist/lib/resourceapi-bundle.js +79 -0
  211. package/dist/lib/resourceapi-bundle.js.map +1 -0
  212. package/dist/lib/runtime-contract.d.ts +84 -0
  213. package/dist/lib/runtime-contract.d.ts.map +1 -0
  214. package/dist/lib/runtime-contract.js +318 -0
  215. package/dist/lib/runtime-contract.js.map +1 -0
  216. package/dist/lib/schema-builder.d.ts +28 -0
  217. package/dist/lib/schema-builder.d.ts.map +1 -0
  218. package/dist/lib/schema-builder.js +69 -0
  219. package/dist/lib/schema-builder.js.map +1 -0
  220. package/dist/lib/tenant-context.d.ts +127 -0
  221. package/dist/lib/tenant-context.d.ts.map +1 -0
  222. package/dist/lib/tenant-context.js +573 -0
  223. package/dist/lib/tenant-context.js.map +1 -0
  224. package/dist/lib/update-check.d.ts +52 -0
  225. package/dist/lib/update-check.d.ts.map +1 -0
  226. package/dist/lib/update-check.js +271 -0
  227. package/dist/lib/update-check.js.map +1 -0
  228. package/dist/lib/update-maintenance.d.ts +15 -0
  229. package/dist/lib/update-maintenance.d.ts.map +1 -0
  230. package/dist/lib/update-maintenance.js +187 -0
  231. package/dist/lib/update-maintenance.js.map +1 -0
  232. package/dist/lib/utils.d.ts +23 -0
  233. package/dist/lib/utils.d.ts.map +1 -0
  234. package/dist/lib/utils.js +48 -0
  235. package/dist/lib/utils.js.map +1 -0
  236. package/dist/lib/workflow-provisioning.d.ts +54 -0
  237. package/dist/lib/workflow-provisioning.d.ts.map +1 -0
  238. package/dist/lib/workflow-provisioning.js +281 -0
  239. package/dist/lib/workflow-provisioning.js.map +1 -0
  240. package/package.json +51 -0
  241. package/resources/gofer/.gofer-version +7 -0
  242. package/resources/gofer/agents-skills/0_gofer_start/SKILL.md +1287 -0
  243. package/resources/gofer/agents-skills/0a_problem_validation/SKILL.md +429 -0
  244. package/resources/gofer/agents-skills/10_gofer_cloud/SKILL.md +635 -0
  245. package/resources/gofer/agents-skills/1_gofer_research/SKILL.md +1159 -0
  246. package/resources/gofer/agents-skills/2_gofer_specify/SKILL.md +860 -0
  247. package/resources/gofer/agents-skills/3_gofer_plan/SKILL.md +886 -0
  248. package/resources/gofer/agents-skills/4_gofer_tasks/SKILL.md +748 -0
  249. package/resources/gofer/agents-skills/5_gofer_implement/SKILL.md +924 -0
  250. package/resources/gofer/agents-skills/6_gofer_validate/SKILL.md +2269 -0
  251. package/resources/gofer/agents-skills/7_gofer_save/SKILL.md +423 -0
  252. package/resources/gofer/agents-skills/7a_stakeholder_comms/SKILL.md +508 -0
  253. package/resources/gofer/agents-skills/8_gofer_branding/SKILL.md +315 -0
  254. package/resources/gofer/agents-skills/9_gofer_tests/SKILL.md +558 -0
  255. package/resources/gofer/agents-skills/gofer_bootstrap_workspace/SKILL.md +148 -0
  256. package/resources/gofer/agents-skills/gofer_check_workspace/SKILL.md +119 -0
  257. package/resources/gofer/agents-skills/gofer_constitution/SKILL.md +612 -0
  258. package/resources/gofer/agents-skills/gofer_diagnose/SKILL.md +114 -0
  259. package/resources/gofer/agents-skills/gofer_eai_first_run/SKILL.md +397 -0
  260. package/resources/gofer/agents-skills/gofer_hydrate/SKILL.md +561 -0
  261. package/resources/gofer/agents-skills/gofer_personality/SKILL.md +44 -0
  262. package/resources/gofer/agents-skills/gofer_plan/SKILL.md +40 -0
  263. package/resources/gofer/agents-skills/gofer_side/SKILL.md +45 -0
  264. package/resources/gofer/agents-skills/gofer_spec_summary/SKILL.md +112 -0
  265. package/resources/gofer/agents-skills/gofer_tdd/SKILL.md +112 -0
  266. package/resources/gofer/agents-skills/gofer_vocabulary/SKILL.md +112 -0
  267. package/resources/gofer/agents-skills/gofer_zoom_out/SKILL.md +112 -0
  268. package/resources/gofer/bash-scripts/check-context-health.sh +365 -0
  269. package/resources/gofer/bash-scripts/check-persona-pack.sh +81 -0
  270. package/resources/gofer/bash-scripts/check-prerequisites.sh +168 -0
  271. package/resources/gofer/bash-scripts/common.sh +192 -0
  272. package/resources/gofer/bash-scripts/create-new-feature.sh +260 -0
  273. package/resources/gofer/bash-scripts/install-optional-tools.sh +270 -0
  274. package/resources/gofer/bash-scripts/log-stage.sh +224 -0
  275. package/resources/gofer/bash-scripts/mark-task-complete.sh +74 -0
  276. package/resources/gofer/bash-scripts/pipeline-state.sh +306 -0
  277. package/resources/gofer/bash-scripts/read-failed-approaches.sh +114 -0
  278. package/resources/gofer/bash-scripts/read-session-memories.sh +96 -0
  279. package/resources/gofer/bash-scripts/save-checkpoint.sh +407 -0
  280. package/resources/gofer/bash-scripts/setup-plan.sh +62 -0
  281. package/resources/gofer/bash-scripts/sync-implementation-status.sh +47 -0
  282. package/resources/gofer/bash-scripts/update-agent-context.sh +772 -0
  283. package/resources/gofer/bash-scripts/validate-artifact.sh +335 -0
  284. package/resources/gofer/bash-scripts/verify-task.sh +384 -0
  285. package/resources/gofer/bash-scripts/write-failed-approach.sh +110 -0
  286. package/resources/gofer/bash-scripts/write-periodic-checkpoint.sh +128 -0
  287. package/resources/gofer/bash-scripts/write-session-memory.sh +118 -0
  288. package/resources/gofer/claude-agents/assumption-tracker.md +168 -0
  289. package/resources/gofer/claude-agents/business-metrics-analyzer.md +169 -0
  290. package/resources/gofer/claude-agents/business-problem-validator.md +168 -0
  291. package/resources/gofer/claude-agents/codebase-analyzer.md +124 -0
  292. package/resources/gofer/claude-agents/codebase-locator.md +95 -0
  293. package/resources/gofer/claude-agents/codebase-pattern-finder.md +180 -0
  294. package/resources/gofer/claude-agents/comms-writer.md +158 -0
  295. package/resources/gofer/claude-agents/engineer-review.md +169 -0
  296. package/resources/gofer/claude-agents/implement-bug-triangulator.md +94 -0
  297. package/resources/gofer/claude-agents/implement-code-review-council.md +89 -0
  298. package/resources/gofer/claude-agents/implement-doc-writer.md +89 -0
  299. package/resources/gofer/claude-agents/implement-error-hardener.md +84 -0
  300. package/resources/gofer/claude-agents/implement-performance-explorer.md +95 -0
  301. package/resources/gofer/claude-agents/implement-test-diversifier.md +82 -0
  302. package/resources/gofer/claude-agents/implement-variant-generator.md +80 -0
  303. package/resources/gofer/claude-agents/multi-perspective-judge.md +114 -0
  304. package/resources/gofer/claude-agents/plan-api-comparator.md +90 -0
  305. package/resources/gofer/claude-agents/plan-architecture-diverger.md +100 -0
  306. package/resources/gofer/claude-agents/plan-data-model-stress-tester.md +95 -0
  307. package/resources/gofer/claude-agents/plan-migration-path-finder.md +95 -0
  308. package/resources/gofer/claude-agents/plan-refactor-rewrite-advisor.md +97 -0
  309. package/resources/gofer/claude-agents/research-dependency-evaluator.md +106 -0
  310. package/resources/gofer/claude-agents/research-horizon-scanner.md +100 -0
  311. package/resources/gofer/claude-agents/research-market-scanner.md +137 -0
  312. package/resources/gofer/claude-agents/research-perspective-multiplier.md +102 -0
  313. package/resources/gofer/claude-agents/scope-creep-detector.md +152 -0
  314. package/resources/gofer/claude-agents/specify-ambiguity-detector.md +95 -0
  315. package/resources/gofer/claude-agents/specify-journey-stress-tester.md +92 -0
  316. package/resources/gofer/claude-agents/tasks-cross-cutting-scanner.md +91 -0
  317. package/resources/gofer/claude-agents/tasks-rollback-planner.md +89 -0
  318. package/resources/gofer/claude-agents/validate-security-red-team.md +102 -0
  319. package/resources/gofer/claude-agents/validation-correctness.md +103 -0
  320. package/resources/gofer/claude-agents/validation-integration.md +129 -0
  321. package/resources/gofer/claude-agents/validation-performance.md +120 -0
  322. package/resources/gofer/claude-agents/validation-security.md +115 -0
  323. package/resources/gofer/claude-agents/validation-standards.md +151 -0
  324. package/resources/gofer/claude-agents/validation-test-quality.md +146 -0
  325. package/resources/gofer/claude-agents/visual-bounded-context-writer.md +40 -0
  326. package/resources/gofer/claude-agents/visual-c4-writer.md +45 -0
  327. package/resources/gofer/claude-agents/visual-erd-writer.md +34 -0
  328. package/resources/gofer/claude-agents/visual-heatmap-writer.md +63 -0
  329. package/resources/gofer/claude-agents/visual-risk-writer.md +64 -0
  330. package/resources/gofer/claude-commands/0_gofer_start.md +1282 -0
  331. package/resources/gofer/claude-commands/0a_problem_validation.md +424 -0
  332. package/resources/gofer/claude-commands/10_gofer_cloud.md +630 -0
  333. package/resources/gofer/claude-commands/1_gofer_research.md +1154 -0
  334. package/resources/gofer/claude-commands/2_gofer_specify.md +855 -0
  335. package/resources/gofer/claude-commands/3_gofer_plan.md +881 -0
  336. package/resources/gofer/claude-commands/4_gofer_tasks.md +743 -0
  337. package/resources/gofer/claude-commands/5_gofer_implement.md +919 -0
  338. package/resources/gofer/claude-commands/6_gofer_validate.md +2264 -0
  339. package/resources/gofer/claude-commands/7_gofer_save.md +418 -0
  340. package/resources/gofer/claude-commands/7a_stakeholder_comms.md +503 -0
  341. package/resources/gofer/claude-commands/8_gofer_branding.md +310 -0
  342. package/resources/gofer/claude-commands/9_gofer_tests.md +553 -0
  343. package/resources/gofer/claude-commands/gofer_bootstrap_workspace.md +143 -0
  344. package/resources/gofer/claude-commands/gofer_check_workspace.md +114 -0
  345. package/resources/gofer/claude-commands/gofer_constitution.md +607 -0
  346. package/resources/gofer/claude-commands/gofer_diagnose.md +109 -0
  347. package/resources/gofer/claude-commands/gofer_eai_first_run.md +392 -0
  348. package/resources/gofer/claude-commands/gofer_hydrate.md +556 -0
  349. package/resources/gofer/claude-commands/gofer_personality.md +39 -0
  350. package/resources/gofer/claude-commands/gofer_plan.md +35 -0
  351. package/resources/gofer/claude-commands/gofer_side.md +40 -0
  352. package/resources/gofer/claude-commands/gofer_spec_summary.md +107 -0
  353. package/resources/gofer/claude-commands/gofer_tdd.md +107 -0
  354. package/resources/gofer/claude-commands/gofer_vocabulary.md +107 -0
  355. package/resources/gofer/claude-commands/gofer_zoom_out.md +107 -0
  356. package/resources/gofer/claude-skills/eai-gofer/SKILL.md +56 -0
  357. package/resources/gofer/commands/.gitkeep +0 -0
  358. package/resources/gofer/commands/0_gofer_start.md +1299 -0
  359. package/resources/gofer/commands/0a_problem_validation.md +405 -0
  360. package/resources/gofer/commands/10_gofer_cloud.md +611 -0
  361. package/resources/gofer/commands/1_gofer_research.md +1135 -0
  362. package/resources/gofer/commands/2_gofer_specify.md +836 -0
  363. package/resources/gofer/commands/3_gofer_plan.md +862 -0
  364. package/resources/gofer/commands/4_gofer_tasks.md +724 -0
  365. package/resources/gofer/commands/5_gofer_implement.md +900 -0
  366. package/resources/gofer/commands/6_gofer_validate.md +2245 -0
  367. package/resources/gofer/commands/7_gofer_save.md +399 -0
  368. package/resources/gofer/commands/7a_stakeholder_comms.md +484 -0
  369. package/resources/gofer/commands/8_gofer_branding.md +291 -0
  370. package/resources/gofer/commands/9_gofer_tests.md +534 -0
  371. package/resources/gofer/commands/gofer_bootstrap_workspace.md +159 -0
  372. package/resources/gofer/commands/gofer_check_workspace.md +130 -0
  373. package/resources/gofer/commands/gofer_constitution.md +588 -0
  374. package/resources/gofer/commands/gofer_diagnose.md +89 -0
  375. package/resources/gofer/commands/gofer_eai_first_run.md +392 -0
  376. package/resources/gofer/commands/gofer_hydrate.md +537 -0
  377. package/resources/gofer/commands/gofer_personality.md +61 -0
  378. package/resources/gofer/commands/gofer_plan.md +51 -0
  379. package/resources/gofer/commands/gofer_side.md +56 -0
  380. package/resources/gofer/commands/gofer_spec_summary.md +87 -0
  381. package/resources/gofer/commands/gofer_tdd.md +87 -0
  382. package/resources/gofer/commands/gofer_vocabulary.md +87 -0
  383. package/resources/gofer/commands/gofer_zoom_out.md +87 -0
  384. package/resources/gofer/copilot-instructions/gofer-cost.instructions.md +13 -0
  385. package/resources/gofer/copilot-instructions/language-server.instructions.md +49 -0
  386. package/resources/gofer/copilot-instructions/typescript.instructions.md +47 -0
  387. package/resources/gofer/copilot-instructions/vscode-extension.instructions.md +46 -0
  388. package/resources/gofer/copilot-prompts/0_gofer_start.prompt.md +1308 -0
  389. package/resources/gofer/copilot-prompts/0a_problem_validation.prompt.md +429 -0
  390. package/resources/gofer/copilot-prompts/10_gofer_cloud.prompt.md +644 -0
  391. package/resources/gofer/copilot-prompts/1_gofer_research.prompt.md +1177 -0
  392. package/resources/gofer/copilot-prompts/2_gofer_specify.prompt.md +878 -0
  393. package/resources/gofer/copilot-prompts/3_gofer_plan.prompt.md +904 -0
  394. package/resources/gofer/copilot-prompts/4_gofer_tasks.prompt.md +766 -0
  395. package/resources/gofer/copilot-prompts/5_gofer_implement.prompt.md +942 -0
  396. package/resources/gofer/copilot-prompts/6_gofer_validate.prompt.md +2277 -0
  397. package/resources/gofer/copilot-prompts/7_gofer_save.prompt.md +433 -0
  398. package/resources/gofer/copilot-prompts/7a_stakeholder_comms.prompt.md +516 -0
  399. package/resources/gofer/copilot-prompts/8_gofer_branding.prompt.md +323 -0
  400. package/resources/gofer/copilot-prompts/9_gofer_tests.prompt.md +566 -0
  401. package/resources/gofer/copilot-prompts/gofer_bootstrap_workspace.prompt.md +161 -0
  402. package/resources/gofer/copilot-prompts/gofer_check_workspace.prompt.md +132 -0
  403. package/resources/gofer/copilot-prompts/gofer_constitution.prompt.md +621 -0
  404. package/resources/gofer/copilot-prompts/gofer_diagnose.prompt.md +127 -0
  405. package/resources/gofer/copilot-prompts/gofer_eai_first_run.prompt.md +410 -0
  406. package/resources/gofer/copilot-prompts/gofer_hydrate.prompt.md +571 -0
  407. package/resources/gofer/copilot-prompts/gofer_personality.prompt.md +57 -0
  408. package/resources/gofer/copilot-prompts/gofer_plan.prompt.md +53 -0
  409. package/resources/gofer/copilot-prompts/gofer_side.prompt.md +58 -0
  410. package/resources/gofer/copilot-prompts/gofer_spec_summary.prompt.md +125 -0
  411. package/resources/gofer/copilot-prompts/gofer_tdd.prompt.md +125 -0
  412. package/resources/gofer/copilot-prompts/gofer_vocabulary.prompt.md +125 -0
  413. package/resources/gofer/copilot-prompts/gofer_zoom_out.prompt.md +125 -0
  414. package/resources/gofer/gemini/agents/assumption-tracker.md +171 -0
  415. package/resources/gofer/gemini/agents/business-metrics-analyzer.md +172 -0
  416. package/resources/gofer/gemini/agents/business-problem-validator.md +171 -0
  417. package/resources/gofer/gemini/agents/codebase-analyzer.md +127 -0
  418. package/resources/gofer/gemini/agents/codebase-locator.md +98 -0
  419. package/resources/gofer/gemini/agents/codebase-pattern-finder.md +183 -0
  420. package/resources/gofer/gemini/agents/comms-writer.md +161 -0
  421. package/resources/gofer/gemini/agents/engineer-review.md +172 -0
  422. package/resources/gofer/gemini/agents/implement-bug-triangulator.md +97 -0
  423. package/resources/gofer/gemini/agents/implement-code-review-council.md +92 -0
  424. package/resources/gofer/gemini/agents/implement-doc-writer.md +92 -0
  425. package/resources/gofer/gemini/agents/implement-error-hardener.md +87 -0
  426. package/resources/gofer/gemini/agents/implement-performance-explorer.md +98 -0
  427. package/resources/gofer/gemini/agents/implement-test-diversifier.md +85 -0
  428. package/resources/gofer/gemini/agents/implement-variant-generator.md +83 -0
  429. package/resources/gofer/gemini/agents/multi-perspective-judge.md +117 -0
  430. package/resources/gofer/gemini/agents/plan-api-comparator.md +93 -0
  431. package/resources/gofer/gemini/agents/plan-architecture-diverger.md +103 -0
  432. package/resources/gofer/gemini/agents/plan-data-model-stress-tester.md +98 -0
  433. package/resources/gofer/gemini/agents/plan-migration-path-finder.md +98 -0
  434. package/resources/gofer/gemini/agents/plan-refactor-rewrite-advisor.md +100 -0
  435. package/resources/gofer/gemini/agents/research-dependency-evaluator.md +109 -0
  436. package/resources/gofer/gemini/agents/research-horizon-scanner.md +103 -0
  437. package/resources/gofer/gemini/agents/research-market-scanner.md +140 -0
  438. package/resources/gofer/gemini/agents/research-perspective-multiplier.md +105 -0
  439. package/resources/gofer/gemini/agents/scope-creep-detector.md +155 -0
  440. package/resources/gofer/gemini/agents/specify-ambiguity-detector.md +98 -0
  441. package/resources/gofer/gemini/agents/specify-journey-stress-tester.md +95 -0
  442. package/resources/gofer/gemini/agents/tasks-cross-cutting-scanner.md +94 -0
  443. package/resources/gofer/gemini/agents/tasks-rollback-planner.md +92 -0
  444. package/resources/gofer/gemini/agents/validate-security-red-team.md +105 -0
  445. package/resources/gofer/gemini/agents/validation-correctness.md +106 -0
  446. package/resources/gofer/gemini/agents/validation-integration.md +132 -0
  447. package/resources/gofer/gemini/agents/validation-performance.md +123 -0
  448. package/resources/gofer/gemini/agents/validation-security.md +118 -0
  449. package/resources/gofer/gemini/agents/validation-standards.md +154 -0
  450. package/resources/gofer/gemini/agents/validation-test-quality.md +149 -0
  451. package/resources/gofer/gemini/agents/visual-bounded-context-writer.md +40 -0
  452. package/resources/gofer/gemini/agents/visual-c4-writer.md +44 -0
  453. package/resources/gofer/gemini/agents/visual-erd-writer.md +36 -0
  454. package/resources/gofer/gemini/agents/visual-heatmap-writer.md +63 -0
  455. package/resources/gofer/gemini/agents/visual-risk-writer.md +64 -0
  456. package/resources/gofer/gemini/commands/gofer/.gitkeep +0 -0
  457. package/resources/gofer/gemini/commands/gofer/0_gofer_start.md +1282 -0
  458. package/resources/gofer/gemini/commands/gofer/0_gofer_start.toml +2 -0
  459. package/resources/gofer/gemini/commands/gofer/0a_problem_validation.md +424 -0
  460. package/resources/gofer/gemini/commands/gofer/0a_problem_validation.toml +2 -0
  461. package/resources/gofer/gemini/commands/gofer/10_gofer_cloud.md +630 -0
  462. package/resources/gofer/gemini/commands/gofer/10_gofer_cloud.toml +2 -0
  463. package/resources/gofer/gemini/commands/gofer/1_gofer_research.md +1154 -0
  464. package/resources/gofer/gemini/commands/gofer/1_gofer_research.toml +2 -0
  465. package/resources/gofer/gemini/commands/gofer/2_gofer_specify.md +855 -0
  466. package/resources/gofer/gemini/commands/gofer/2_gofer_specify.toml +2 -0
  467. package/resources/gofer/gemini/commands/gofer/3_gofer_plan.md +881 -0
  468. package/resources/gofer/gemini/commands/gofer/3_gofer_plan.toml +2 -0
  469. package/resources/gofer/gemini/commands/gofer/4_gofer_tasks.md +743 -0
  470. package/resources/gofer/gemini/commands/gofer/4_gofer_tasks.toml +2 -0
  471. package/resources/gofer/gemini/commands/gofer/5_gofer_implement.md +919 -0
  472. package/resources/gofer/gemini/commands/gofer/5_gofer_implement.toml +2 -0
  473. package/resources/gofer/gemini/commands/gofer/6_gofer_validate.md +2264 -0
  474. package/resources/gofer/gemini/commands/gofer/6_gofer_validate.toml +2 -0
  475. package/resources/gofer/gemini/commands/gofer/7_gofer_save.md +418 -0
  476. package/resources/gofer/gemini/commands/gofer/7_gofer_save.toml +2 -0
  477. package/resources/gofer/gemini/commands/gofer/7a_stakeholder_comms.md +503 -0
  478. package/resources/gofer/gemini/commands/gofer/7a_stakeholder_comms.toml +2 -0
  479. package/resources/gofer/gemini/commands/gofer/8_gofer_branding.md +310 -0
  480. package/resources/gofer/gemini/commands/gofer/8_gofer_branding.toml +2 -0
  481. package/resources/gofer/gemini/commands/gofer/9_gofer_tests.md +553 -0
  482. package/resources/gofer/gemini/commands/gofer/9_gofer_tests.toml +2 -0
  483. package/resources/gofer/gemini/commands/gofer/gofer_bootstrap_workspace.md +143 -0
  484. package/resources/gofer/gemini/commands/gofer/gofer_bootstrap_workspace.toml +2 -0
  485. package/resources/gofer/gemini/commands/gofer/gofer_check_workspace.md +114 -0
  486. package/resources/gofer/gemini/commands/gofer/gofer_check_workspace.toml +2 -0
  487. package/resources/gofer/gemini/commands/gofer/gofer_constitution.md +607 -0
  488. package/resources/gofer/gemini/commands/gofer/gofer_constitution.toml +2 -0
  489. package/resources/gofer/gemini/commands/gofer/gofer_diagnose.md +109 -0
  490. package/resources/gofer/gemini/commands/gofer/gofer_diagnose.toml +2 -0
  491. package/resources/gofer/gemini/commands/gofer/gofer_eai_first_run.md +392 -0
  492. package/resources/gofer/gemini/commands/gofer/gofer_eai_first_run.toml +2 -0
  493. package/resources/gofer/gemini/commands/gofer/gofer_hydrate.md +556 -0
  494. package/resources/gofer/gemini/commands/gofer/gofer_hydrate.toml +2 -0
  495. package/resources/gofer/gemini/commands/gofer/gofer_personality.md +39 -0
  496. package/resources/gofer/gemini/commands/gofer/gofer_personality.toml +2 -0
  497. package/resources/gofer/gemini/commands/gofer/gofer_plan.md +35 -0
  498. package/resources/gofer/gemini/commands/gofer/gofer_plan.toml +2 -0
  499. package/resources/gofer/gemini/commands/gofer/gofer_side.md +40 -0
  500. package/resources/gofer/gemini/commands/gofer/gofer_side.toml +2 -0
  501. package/resources/gofer/gemini/commands/gofer/gofer_spec_summary.md +107 -0
  502. package/resources/gofer/gemini/commands/gofer/gofer_spec_summary.toml +2 -0
  503. package/resources/gofer/gemini/commands/gofer/gofer_tdd.md +107 -0
  504. package/resources/gofer/gemini/commands/gofer/gofer_tdd.toml +2 -0
  505. package/resources/gofer/gemini/commands/gofer/gofer_vocabulary.md +107 -0
  506. package/resources/gofer/gemini/commands/gofer/gofer_vocabulary.toml +2 -0
  507. package/resources/gofer/gemini/commands/gofer/gofer_zoom_out.md +107 -0
  508. package/resources/gofer/gemini/commands/gofer/gofer_zoom_out.toml +2 -0
  509. package/resources/gofer/gemini/commands/gofer/manifest.json +32 -0
  510. package/resources/gofer/gemini/extension.json +16 -0
  511. package/resources/gofer/github-agents/gofer-business.agent.md +20 -0
  512. package/resources/gofer/github-agents/gofer-implement.agent.md +15 -0
  513. package/resources/gofer/github-agents/gofer-plan.agent.md +15 -0
  514. package/resources/gofer/github-agents/gofer-research.agent.md +15 -0
  515. package/resources/gofer/github-agents/gofer-validate.agent.md +10 -0
  516. package/resources/gofer/github-skills/eai-gofer/SKILL.md +56 -0
  517. package/resources/gofer/hook-scripts/agent-stop.mjs +655 -0
  518. package/resources/gofer/hook-scripts/log-stage-launch-time.mjs +77 -0
  519. package/resources/gofer/hook-scripts/post-tool-use.mjs +333 -0
  520. package/resources/gofer/hook-scripts/queued-input.mjs +188 -0
  521. package/resources/gofer/hook-scripts/session-lifecycle.mjs +93 -0
  522. package/resources/gofer/hook-scripts/user-prompt-submit.mjs +228 -0
  523. package/resources/gofer/instruction-templates/base/agents-base.md +37 -0
  524. package/resources/gofer/instruction-templates/base/claude-base.md +7 -0
  525. package/resources/gofer/instruction-templates/base/copilot-base.md +26 -0
  526. package/resources/gofer/instruction-templates/gofer/gofer-claude.md +5 -0
  527. package/resources/gofer/instruction-templates/gofer/gofer-copilot.md +9 -0
  528. package/resources/gofer/instruction-templates/languages/generic.md +7 -0
  529. package/resources/gofer/instruction-templates/languages/go.md +8 -0
  530. package/resources/gofer/instruction-templates/languages/java.md +8 -0
  531. package/resources/gofer/instruction-templates/languages/python.md +9 -0
  532. package/resources/gofer/instruction-templates/languages/rust.md +9 -0
  533. package/resources/gofer/instruction-templates/languages/typescript.md +19 -0
  534. package/resources/gofer/instruction-templates/workflow/principles.md +52 -0
  535. package/resources/gofer/memory/constitution.md +391 -0
  536. package/resources/gofer/memory/context-profiles.yaml +74 -0
  537. package/resources/gofer/memory/decisions/000-use-adr-for-decisions.md +67 -0
  538. package/resources/gofer/memory/decisions/001-di-framework.md +190 -0
  539. package/resources/gofer/memory/decisions/002-module-extraction.md +305 -0
  540. package/resources/gofer/memory/decisions/003-error-handling.md +368 -0
  541. package/resources/gofer/memory/decisions/004-cache-eviction.md +436 -0
  542. package/resources/gofer/memory/decisions/005-constants-management.md +520 -0
  543. package/resources/gofer/memory/decisions/README.md +129 -0
  544. package/resources/gofer/memory/diagrams/di-container.mmd +321 -0
  545. package/resources/gofer/memory/diagrams/extension-activation.mmd +184 -0
  546. package/resources/gofer/memory/diagrams/module-dependencies.mmd +264 -0
  547. package/resources/gofer/memory/gofer-model-policy.yaml +97 -0
  548. package/resources/gofer/memory/lessons.md +46 -0
  549. package/resources/gofer/node-scripts/canonical-descriptions.mjs +86 -0
  550. package/resources/gofer/node-scripts/check-version-alignment.mjs +131 -0
  551. package/resources/gofer/node-scripts/codex-doctor.mjs +425 -0
  552. package/resources/gofer/node-scripts/generate-commands.mjs +1366 -0
  553. package/resources/gofer/node-scripts/generate-issues.js +563 -0
  554. package/resources/gofer/node-scripts/gofer-closed-loop-audit.mjs +893 -0
  555. package/resources/gofer/node-scripts/gofer-loop-audit.mjs +541 -0
  556. package/resources/gofer/node-scripts/gofer-performance-report.mjs +306 -0
  557. package/resources/gofer/node-scripts/gofer-workspace-bootstrap.mjs +56 -0
  558. package/resources/gofer/node-scripts/gofer-workspace-check.mjs +56 -0
  559. package/resources/gofer/node-scripts/lib/ai-leverage-tagger.mjs +103 -0
  560. package/resources/gofer/node-scripts/lib/assemble-stakeholder-pack.mjs +114 -0
  561. package/resources/gofer/node-scripts/lib/marp-deck.mjs +87 -0
  562. package/resources/gofer/node-scripts/lib/mermaid-tabular-fallback.mjs +264 -0
  563. package/resources/gofer/node-scripts/lib/render-visual.mjs +54 -0
  564. package/resources/gofer/node-scripts/lib/validate-aliases.mjs +85 -0
  565. package/resources/gofer/node-scripts/lib/visual-counts.mjs +44 -0
  566. package/resources/gofer/node-scripts/lib/visual-pass-pipeline.mjs +134 -0
  567. package/resources/gofer/node-scripts/mermaid-export.mjs +72 -0
  568. package/resources/gofer/node-scripts/package-agent-plugin.mjs +940 -0
  569. package/resources/gofer/node-scripts/parse-stage-command.mjs +211 -0
  570. package/resources/gofer/node-scripts/schemas/.gitkeep +0 -0
  571. package/resources/gofer/node-scripts/schemas/stage-command.schema.json +72 -0
  572. package/resources/gofer/node-scripts/sync-extension-resources.mjs +110 -0
  573. package/resources/gofer/node-scripts/workspace-bootstrap-lib.mjs +1166 -0
  574. package/resources/gofer/powershell-scripts/install-optional-tools.ps1 +214 -0
  575. package/resources/gofer/references/platform/README.md +17 -0
  576. package/resources/gofer/references/platform/deployment-repo.md +9 -0
  577. package/resources/gofer/references/platform/eai-app-template.md +45 -0
  578. package/resources/gofer/references/platform/eai-config-driven-ui.md +156 -0
  579. package/resources/gofer/references/platform/eai-error-catalog.yaml +197 -0
  580. package/resources/gofer/references/platform/eai-repo-contract.md +134 -0
  581. package/resources/gofer/references/platform/eai-service-patterns.md +56 -0
  582. package/resources/gofer/references/platform/eai.md +85 -0
  583. package/resources/gofer/references/platform/vertical-template.md +49 -0
  584. package/resources/gofer/specify-commands/.gitkeep +0 -0
  585. package/resources/gofer/specify-commands/0_gofer_start.md +1299 -0
  586. package/resources/gofer/specify-commands/0a_problem_validation.md +405 -0
  587. package/resources/gofer/specify-commands/10_gofer_cloud.md +611 -0
  588. package/resources/gofer/specify-commands/1_gofer_research.md +1135 -0
  589. package/resources/gofer/specify-commands/2_gofer_specify.md +836 -0
  590. package/resources/gofer/specify-commands/3_gofer_plan.md +862 -0
  591. package/resources/gofer/specify-commands/4_gofer_tasks.md +724 -0
  592. package/resources/gofer/specify-commands/5_gofer_implement.md +900 -0
  593. package/resources/gofer/specify-commands/6_gofer_validate.md +2245 -0
  594. package/resources/gofer/specify-commands/7_gofer_save.md +399 -0
  595. package/resources/gofer/specify-commands/7a_stakeholder_comms.md +484 -0
  596. package/resources/gofer/specify-commands/8_gofer_branding.md +291 -0
  597. package/resources/gofer/specify-commands/9_gofer_tests.md +534 -0
  598. package/resources/gofer/specify-commands/gofer_bootstrap_workspace.md +159 -0
  599. package/resources/gofer/specify-commands/gofer_check_workspace.md +130 -0
  600. package/resources/gofer/specify-commands/gofer_constitution.md +588 -0
  601. package/resources/gofer/specify-commands/gofer_diagnose.md +89 -0
  602. package/resources/gofer/specify-commands/gofer_eai_first_run.md +392 -0
  603. package/resources/gofer/specify-commands/gofer_hydrate.md +537 -0
  604. package/resources/gofer/specify-commands/gofer_personality.md +61 -0
  605. package/resources/gofer/specify-commands/gofer_plan.md +51 -0
  606. package/resources/gofer/specify-commands/gofer_side.md +56 -0
  607. package/resources/gofer/specify-commands/gofer_spec_summary.md +87 -0
  608. package/resources/gofer/specify-commands/gofer_tdd.md +87 -0
  609. package/resources/gofer/specify-commands/gofer_vocabulary.md +87 -0
  610. package/resources/gofer/specify-commands/gofer_zoom_out.md +87 -0
  611. package/resources/gofer/system-skills/0_gofer_start/SKILL.md +1287 -0
  612. package/resources/gofer/system-skills/0a_problem_validation/SKILL.md +429 -0
  613. package/resources/gofer/system-skills/10_gofer_cloud/SKILL.md +635 -0
  614. package/resources/gofer/system-skills/1_gofer_research/SKILL.md +1159 -0
  615. package/resources/gofer/system-skills/2_gofer_specify/SKILL.md +860 -0
  616. package/resources/gofer/system-skills/3_gofer_plan/SKILL.md +886 -0
  617. package/resources/gofer/system-skills/4_gofer_tasks/SKILL.md +748 -0
  618. package/resources/gofer/system-skills/5_gofer_implement/SKILL.md +924 -0
  619. package/resources/gofer/system-skills/6_gofer_validate/SKILL.md +2269 -0
  620. package/resources/gofer/system-skills/7_gofer_save/SKILL.md +423 -0
  621. package/resources/gofer/system-skills/7a_stakeholder_comms/SKILL.md +508 -0
  622. package/resources/gofer/system-skills/8_gofer_branding/SKILL.md +315 -0
  623. package/resources/gofer/system-skills/9_gofer_tests/SKILL.md +558 -0
  624. package/resources/gofer/system-skills/gofer_bootstrap_workspace/SKILL.md +148 -0
  625. package/resources/gofer/system-skills/gofer_check_workspace/SKILL.md +119 -0
  626. package/resources/gofer/system-skills/gofer_constitution/SKILL.md +612 -0
  627. package/resources/gofer/system-skills/gofer_diagnose/SKILL.md +114 -0
  628. package/resources/gofer/system-skills/gofer_eai_first_run/SKILL.md +397 -0
  629. package/resources/gofer/system-skills/gofer_hydrate/SKILL.md +561 -0
  630. package/resources/gofer/system-skills/gofer_personality/SKILL.md +44 -0
  631. package/resources/gofer/system-skills/gofer_plan/SKILL.md +40 -0
  632. package/resources/gofer/system-skills/gofer_side/SKILL.md +45 -0
  633. package/resources/gofer/system-skills/gofer_spec_summary/SKILL.md +112 -0
  634. package/resources/gofer/system-skills/gofer_tdd/SKILL.md +112 -0
  635. package/resources/gofer/system-skills/gofer_vocabulary/SKILL.md +112 -0
  636. package/resources/gofer/system-skills/gofer_zoom_out/SKILL.md +112 -0
  637. package/resources/gofer/templates/agent-file-template.md +28 -0
  638. package/resources/gofer/templates/assumptions-template.md +94 -0
  639. package/resources/gofer/templates/audit-history-template.md +35 -0
  640. package/resources/gofer/templates/brand/brand-profile-template.json +45 -0
  641. package/resources/gofer/templates/brand/document-style-template.md +50 -0
  642. package/resources/gofer/templates/brand/marp-theme-template.css +58 -0
  643. package/resources/gofer/templates/brownfield-analysis.md +44 -0
  644. package/resources/gofer/templates/business-metrics-template.md +120 -0
  645. package/resources/gofer/templates/business-owner-summary-template.md +83 -0
  646. package/resources/gofer/templates/checklist-template.md +40 -0
  647. package/resources/gofer/templates/ciso-security-summary-template.md +70 -0
  648. package/resources/gofer/templates/context-bundle-template.md +76 -0
  649. package/resources/gofer/templates/contract-pack-template.md +109 -0
  650. package/resources/gofer/templates/cto-architecture-summary-template.md +83 -0
  651. package/resources/gofer/templates/discovery-template.md +92 -0
  652. package/resources/gofer/templates/eai-preflight-template.md +144 -0
  653. package/resources/gofer/templates/goal-ledger-template.json +69 -0
  654. package/resources/gofer/templates/gofer-model-policy.yaml +97 -0
  655. package/resources/gofer/templates/issues-template.md +106 -0
  656. package/resources/gofer/templates/journey/base-journey.md +95 -0
  657. package/resources/gofer/templates/journey/industry-variants.yaml +277 -0
  658. package/resources/gofer/templates/loop-contract-template.json +68 -0
  659. package/resources/gofer/templates/plan-template.md +215 -0
  660. package/resources/gofer/templates/problem-brief-template.md +85 -0
  661. package/resources/gofer/templates/proposal-review-template.md +79 -0
  662. package/resources/gofer/templates/research-template.md +222 -0
  663. package/resources/gofer/templates/reuse-scan-template.md +43 -0
  664. package/resources/gofer/templates/sequence-diagrams/option-spectrum.yaml +178 -0
  665. package/resources/gofer/templates/service-fit-matrix-template.md +29 -0
  666. package/resources/gofer/templates/session-handoff-template.md +172 -0
  667. package/resources/gofer/templates/spec-summary-template.md +118 -0
  668. package/resources/gofer/templates/spec-template.md +196 -0
  669. package/resources/gofer/templates/stakeholder-comms-template.md +330 -0
  670. package/resources/gofer/templates/stakeholder-review-index-template.md +54 -0
  671. package/resources/gofer/templates/tasks-template.md +323 -0
  672. package/resources/gofer/templates/ui-approval-template.md +32 -0
  673. package/resources/gofer/templates/ui-preview-brief-template.md +65 -0
  674. package/resources/gofer/templates/ui-review-log-template.md +11 -0
  675. package/resources/gofer/templates/visuals/.gitkeep +0 -0
  676. package/resources/gofer/templates/visuals/bounded-context-map.md +19 -0
  677. package/resources/gofer/templates/visuals/bounded-context-template.md +47 -0
  678. package/resources/gofer/templates/visuals/c4-container-template.md +38 -0
  679. package/resources/gofer/templates/visuals/c4-container.md +20 -0
  680. package/resources/gofer/templates/visuals/c4-context-template.md +46 -0
  681. package/resources/gofer/templates/visuals/capability-heatmap-template.md +54 -0
  682. package/resources/gofer/templates/visuals/data-model-erd-template.md +41 -0
  683. package/resources/gofer/templates/visuals/erd.md +19 -0
  684. package/resources/gofer/templates/visuals/impact-canvas.md +40 -0
  685. package/resources/gofer/templates/visuals/risk-heatmap-template.md +51 -0
  686. package/resources/gofer/templates/visuals/roi-projection.md +17 -0
  687. package/resources/gofer/templates/visuals/value-stream-asis.md +16 -0
  688. package/resources/gofer/templates/visuals/value-stream-tobe.md +18 -0
  689. package/resources/gofer/templates/working-backwards-prfaq-template.md +165 -0
  690. package/resources/linked-sources.json +25 -0
@@ -0,0 +1,558 @@
1
+ ---
2
+ name: 9_gofer_tests
3
+ description: "Generate comprehensive test suites from four testing perspectives for a target component."
4
+ ---
5
+
6
+ ## Workspace Preflight
7
+
8
+ Before doing stage/helper work:
9
+
10
+ 1. Resolve the repository root.
11
+ 2. Check the core Gofer sentinels:
12
+ - `.specify/.gofer-version`
13
+ - `.specify/commands/0_gofer_start.md`
14
+ - `.specify/templates/spec-template.md`
15
+ - `.specify/templates/loop-contract-template.json`
16
+ - `.specify/templates/working-backwards-prfaq-template.md`
17
+ - `.specify/templates/business-owner-summary-template.md`
18
+ - `.specify/templates/cto-architecture-summary-template.md`
19
+ - `.specify/templates/ciso-security-summary-template.md`
20
+ - `.specify/templates/stakeholder-review-index-template.md`
21
+ - `.specify/scripts/bash/create-new-feature.sh`
22
+ - `.specify/scripts/node/parse-stage-command.mjs`
23
+ - `.specify/scripts/node/gofer-loop-audit.mjs`
24
+ - `.specify/scripts/hooks/post-tool-use.mjs`
25
+ - `.specify/scripts/powershell/install-optional-tools.ps1`
26
+ - `.specify/templates/gofer-model-policy.yaml`
27
+ - `.specify/memory/gofer-model-policy.yaml`
28
+ - `.specify/specs/`
29
+ - `.specify/memory/`
30
+ 3. Check host-specific repo-owned files when relevant:
31
+ - Claude: `AGENTS.md`, `CLAUDE.md`, `.claude/settings.json`
32
+ - Codex: `AGENTS.md`
33
+ - Copilot: `.github/copilot-instructions.md`
34
+ - VS Code extension mirrors Claude/Copilot/Gemini resources itself and should still keep the core scaffold healthy
35
+ 4. If the repo already has the workspace checker script, prefer running:
36
+ - `node .specify/scripts/node/gofer-workspace-check.mjs --host codex --json`
37
+ 5. If the workspace is missing or stale, ask exactly:
38
+ - **"This repo is missing or stale for Gofer. Initialize/update it now?"**
39
+ 6. If the user says yes, run the Gofer workspace bootstrap helper and then resume this command from the top.
40
+ 7. If the user says no, stop and explain that Gofer stage/helper work depends on the repo-owned scaffold.
41
+
42
+ ---
43
+ description:
44
+ Define acceptance test cases using DSL approach before or during
45
+ implementation
46
+ ---
47
+
48
+ # Gofer Tests
49
+
50
+ ## EAI Platform Session Preflight
51
+
52
+ Before any Gofer stage/helper command does pipeline work:
53
+
54
+ 1. Treat durable delivery as EAI Platform delivery by default, with Azure second
55
+ and every other stack only by explicit exception.
56
+ 2. Run `eai whoami` and confirm the EAI CLI is installed, the user is logged in,
57
+ and an active tenant is visible.
58
+ 3. If `eai` is missing, `eai whoami` fails, the token is expired, or no active
59
+ tenant is available, stop and run `/gofer:eai-first-run` or ask the user to
60
+ approve login/setup before continuing.
61
+ 4. For EAI app delivery, do not continue into research, specification, planning,
62
+ tasks, implementation, or validation until
63
+ `.specify/specs/{feature}/eai-preflight.md` records login, tenant, template,
64
+ app-readiness, and next-action evidence.
65
+ 5. Do not write tokens, secrets, private tenant IDs, or local `.env` values into
66
+ Gofer artifacts; record only product-safe readiness status and evidence.
67
+
68
+ ## Token And Cost Policy
69
+ <!-- gofer:token-cost-policy:start -->
70
+
71
+ Before spawning agents, calling tools, or loading large files:
72
+
73
+ 1. Treat `.specify/memory/gofer-model-policy.yaml` as the repo-owned source of truth for simple, medium, hard, and arbiter model routing. If it is missing, run `/gofer:bootstrap-workspace` before continuing.
74
+ 2. Use the cheapest capable model first.
75
+ - Claude: Haiku for scouting/extraction; Sonnet for normal implementation, synthesis, validation, and security; Opus for high-risk arbitration or release-critical failures.
76
+ - Codex/OpenAI: GPT mini for simple coding; GPT nano only for locate/classify/summarize/mechanical work; GPT-5.3-Codex or flagship GPT for tool-heavy coding, architecture, and release-critical validation.
77
+ - Gemini: Flash-Lite for cheap large-context scan/summarize; Flash for default research synthesis; Pro for large-context architecture or high-risk arbitration.
78
+ - Copilot: prefer Auto for simple and default work; ask the user before choosing a paid/high-tier picker model for hard security, architecture, or release gates.
79
+ 3. Keep raw tool output out of the main conversation context. Save stable findings to `.specify/specs/{feature}/context-bundle.md`, then work from summaries.
80
+ 4. Use provider prompt/context caching only for stable, non-secret prefixes: Gofer scaffold, AGENTS/CLAUDE/Copilot instructions, constitution, repo map, stage contracts, and validation rubric.
81
+ 5. Before continuing after large research, planning, implementation, or validation bursts, checkpoint the durable artifacts and compact/clear/resume context when the host supports it.
82
+ 6. Escalate model tier only when a cheaper pass is low-confidence, contradictory, security-sensitive, or blocking release quality.
83
+ <!-- gofer:token-cost-policy:end -->
84
+
85
+ ## User Input
86
+
87
+ ```text
88
+ $ARGUMENTS
89
+ ```
90
+
91
+ You **MUST** consider the user input before proceeding (if not empty).
92
+
93
+ ---
94
+
95
+ ## When to Use This Command
96
+
97
+ - **Test-First Development**: Define tests before writing implementation
98
+ - **During Planning**: Add test definitions to plan.md
99
+ - **During Implementation**: Create test scaffolds alongside code
100
+ - **Before Validation**: Ensure comprehensive test coverage
101
+
102
+ ---
103
+
104
+ ## Core Principles (Agentic Testing Best Practices)
105
+
106
+ ### 1. Comment-First Approach
107
+
108
+ Always start by writing test cases as structured comments before any
109
+ implementation. This forces clear thinking about expected behavior.
110
+
111
+ ### 2. DSL at Every Layer
112
+
113
+ All test code - setup, actions, assertions - must be written as readable DSL
114
+ functions. No direct framework calls in test files.
115
+
116
+ ### 3. Implicit Given-When-Then
117
+
118
+ Structure tests with blank lines separating setup, action, and assertion phases.
119
+ Never use the words "Given", "When", or "Then" explicitly.
120
+
121
+ ### 4. Traceability to Requirements
122
+
123
+ Every test case must trace back to a user story or acceptance criterion from
124
+ spec.md.
125
+
126
+ ### 5. Follow Existing Patterns
127
+
128
+ Study and follow existing test patterns, DSL conventions, and naming standards
129
+ in the codebase.
130
+
131
+ ---
132
+
133
+ ## Step 1: Load Feature Context
134
+
135
+ ```bash
136
+ .specify/scripts/bash/check-prerequisites.sh --json
137
+ ```
138
+
139
+ Parse JSON for FEATURE_DIR, then load:
140
+
141
+ - `spec.md` - User stories and acceptance criteria
142
+ - `plan.md` - Technical architecture
143
+ - `tasks.md` - Implementation tasks (if exists)
144
+
145
+ ---
146
+
147
+ ## Step 2: Research Existing Test Patterns
148
+
149
+ **CRITICAL**: Before writing any test cases, spawn a research agent:
150
+
151
+ ```
152
+ Task: subagent_type="codebase-pattern-finder", model="haiku"
153
+ Prompt: "Find existing test files and patterns in this codebase.
154
+ Identify:
155
+ - Test file locations and naming conventions
156
+ - DSL function patterns and naming conventions
157
+ - Test organization patterns (describe blocks, test grouping)
158
+ - Existing DSL functions for setup, actions, and assertions
159
+ - Test framework being used (Jest, Vitest, Mocha, pytest, etc.)"
160
+ ```
161
+
162
+ ---
163
+
164
+ ## Step 3: Extract Test Requirements
165
+
166
+ ### 3.1 From User Stories
167
+
168
+ For each user story in spec.md, extract:
169
+
170
+ ```markdown
171
+ | User Story | Priority | Acceptance Criteria | Test Cases Needed |
172
+ | ---------- | -------- | ------------------------- | ----------------- |
173
+ | US1 | P1 | User can login with email | TC001, TC002 |
174
+ | US1 | P1 | Error on invalid creds | TC003, TC004 |
175
+ | US2 | P2 | Dashboard shows metrics | TC005, TC006 |
176
+ ```
177
+
178
+ ### 3.2 Coverage Requirements
179
+
180
+ Ensure tests cover:
181
+
182
+ 1. **Happy Paths** - Standard successful flows
183
+ 2. **Edge Cases** - Boundary conditions, unusual but valid inputs
184
+ 3. **Error Scenarios** - Invalid inputs, service failures, timeouts
185
+ 4. **Boundary Conditions** - Maximum/minimum values, empty states
186
+ 5. **Authorization** - Permission-based access scenarios
187
+
188
+ ---
189
+
190
+ ## Step 4: Define Test Cases
191
+
192
+ ### Test Case Structure
193
+
194
+ ```javascript
195
+ // [Test Case ID]: [Test Case Name]
196
+ // Traces to: [US-X AC-Y]
197
+ //
198
+ // setupFunction
199
+ // anotherSetupFunction
200
+ //
201
+ // actionThatTriggersLogic
202
+ //
203
+ // expectationFunction
204
+ // anotherExpectationFunction
205
+ ```
206
+
207
+ ### Structure Rules
208
+
209
+ - **First line**: Test case ID and name
210
+ - **Second line**: Traceability to user story/acceptance criterion
211
+ - **Blank line**: Before setup
212
+ - **Setup phase**: Functions that arrange test state (no blank lines between)
213
+ - **Blank line**: Separates setup from action
214
+ - **Action phase**: Function(s) that trigger the behavior under test
215
+ - **Blank line**: Separates action from assertions
216
+ - **Assertion phase**: Functions that verify expected outcomes
217
+
218
+ ---
219
+
220
+ ## Step 5: Naming Conventions
221
+
222
+ ### Setup Functions (Arrange)
223
+
224
+ Describe state being created:
225
+
226
+ - `userIsLoggedIn`, `cartHasThreeItems`, `databaseIsEmpty`
227
+ - `createUser`, `seedDatabase`, `mockExternalAPI`
228
+
229
+ ### Action Functions (Act)
230
+
231
+ Describe the event/action:
232
+
233
+ - `userClicksCheckout`, `orderIsSubmitted`, `apiReceivesRequest`
234
+ - `submitForm`, `sendRequest`, `processPayment`
235
+
236
+ ### Assertion Functions (Assert)
237
+
238
+ Start with `expect`:
239
+
240
+ - `expectOrderProcessed`, `expectUserRedirected`, `expectEmailSent`
241
+ - `expectNoEmailSent`, `expectOrderNotCreated` (negative cases)
242
+
243
+ ---
244
+
245
+ ## Step 6: Generate Test Document
246
+
247
+ Write to `{FEATURE_DIR}/test-cases.md`:
248
+
249
+ ````markdown
250
+ ---
251
+ feature: [Feature Name]
252
+ created: [ISO timestamp]
253
+ spec: spec.md
254
+ status: draft
255
+ coverage:
256
+ user_stories: [N]/[Total]
257
+ acceptance_criteria: [N]/[Total]
258
+ ---
259
+
260
+ # Test Cases: [Feature Name]
261
+
262
+ ## Test Coverage Matrix
263
+
264
+ | User Story | Acceptance Criterion | Test Case(s) | Status |
265
+ | ---------- | -------------------- | ------------ | ------- |
266
+ | US1 | AC1: User can login | TC001, TC002 | Defined |
267
+ | US1 | AC2: Error handling | TC003, TC004 | Defined |
268
+ | US2 | AC1: Dashboard | TC005 | Defined |
269
+
270
+ ## Test Case Definitions
271
+
272
+ ### Happy Path Tests
273
+
274
+ #### TC001: Successful Login with Valid Credentials
275
+
276
+ Traces to: US1-AC1
277
+
278
+ ```javascript
279
+ // TC001: Successful Login with Valid Credentials
280
+ // Traces to: US1-AC1
281
+ //
282
+ // userExists({ email: 'test@example.com', password: 'valid' })
283
+ //
284
+ // userSubmitsLogin({ email: 'test@example.com', password: 'valid' })
285
+ //
286
+ // expectUserLoggedIn()
287
+ // expectRedirectedToDashboard()
288
+ // expectSessionCreated()
289
+ ```
290
+
291
+ #### TC002: Login Remembers User Preference
292
+
293
+ Traces to: US1-AC1
294
+
295
+ ```javascript
296
+ // TC002: Login Remembers User Preference
297
+ // Traces to: US1-AC1
298
+ //
299
+ // userExists({ email: 'test@example.com' })
300
+ // rememberMeEnabled()
301
+ //
302
+ // userSubmitsLogin({ email: 'test@example.com', password: 'valid' })
303
+ //
304
+ // expectPersistentSessionCreated()
305
+ // expectCookieSet('remember_token')
306
+ ```
307
+
308
+ ### Edge Case Tests
309
+
310
+ #### TC003: Login with Maximum Length Password
311
+
312
+ Traces to: US1-AC1
313
+
314
+ ```javascript
315
+ // TC003: Login with Maximum Length Password
316
+ // Traces to: US1-AC1
317
+ //
318
+ // userExists({ password: 'a'.repeat(128) })
319
+ //
320
+ // userSubmitsLogin({ password: 'a'.repeat(128) })
321
+ //
322
+ // expectUserLoggedIn()
323
+ ```
324
+
325
+ ### Error Scenario Tests
326
+
327
+ #### TC004: Login with Invalid Credentials
328
+
329
+ Traces to: US1-AC2
330
+
331
+ ```javascript
332
+ // TC004: Login with Invalid Credentials
333
+ // Traces to: US1-AC2
334
+ //
335
+ // userExists({ email: 'test@example.com', password: 'correct' })
336
+ //
337
+ // userSubmitsLogin({ email: 'test@example.com', password: 'wrong' })
338
+ //
339
+ // expectUserNotLoggedIn()
340
+ // expectErrorMessage('Invalid credentials')
341
+ // expectNoSessionCreated()
342
+ ```
343
+
344
+ #### TC005: Login When Service Unavailable
345
+
346
+ Traces to: US1-AC2
347
+
348
+ ```javascript
349
+ // TC005: Login When Service Unavailable
350
+ // Traces to: US1-AC2
351
+ //
352
+ // authServiceIsDown()
353
+ //
354
+ // userSubmitsLogin({ email: 'test@example.com', password: 'valid' })
355
+ //
356
+ // expectErrorMessage('Service temporarily unavailable')
357
+ // expectRetryOption()
358
+ ```
359
+
360
+ ### Authorization Tests
361
+
362
+ #### TC006: Unauthorized Access Attempt
363
+
364
+ Traces to: US1-AC3
365
+
366
+ ```javascript
367
+ // TC006: Unauthorized Access Attempt
368
+ // Traces to: US1-AC3
369
+ //
370
+ // userIsNotAuthenticated()
371
+ //
372
+ // userNavigatesToProtectedRoute('/dashboard')
373
+ //
374
+ // expectRedirectedToLogin()
375
+ // expectOriginalUrlPreserved()
376
+ ```
377
+
378
+ ## DSL Functions Required
379
+
380
+ ### Setup Functions (To Create)
381
+
382
+ | Function | Purpose | Exists? |
383
+ | --------------------- | ---------------------------- | ------- |
384
+ | `userExists()` | Create test user in database | No |
385
+ | `authServiceIsDown()` | Mock auth service failure | No |
386
+ | `rememberMeEnabled()` | Set remember me preference | No |
387
+
388
+ ### Action Functions (To Create)
389
+
390
+ | Function | Purpose | Exists? |
391
+ | -------------------- | ------------------------------ | ------- |
392
+ | `userSubmitsLogin()` | Simulate login form submission | No |
393
+ | `userNavigatesTo()` | Navigate to URL | Yes |
394
+
395
+ ### Assertion Functions (To Create)
396
+
397
+ | Function | Purpose | Exists? |
398
+ | ---------------------- | -------------------------- | ------- |
399
+ | `expectUserLoggedIn()` | Verify user session exists | No |
400
+ | `expectErrorMessage()` | Verify error is displayed | Yes |
401
+ | `expectRedirectedTo()` | Verify redirect occurred | Yes |
402
+
403
+ ## Implementation Notes
404
+
405
+ ### Test File Location
406
+
407
+ Based on codebase patterns: `tests/integration/[feature]/`
408
+
409
+ ### Test Framework
410
+
411
+ Using: [Jest/Vitest/Mocha/pytest] (from research)
412
+
413
+ ### DSL Implementation Location
414
+
415
+ DSL functions should go in: `tests/helpers/` or `tests/dsl/`
416
+
417
+ ## Next Steps
418
+
419
+ 1. [ ] Create missing DSL functions
420
+ 2. [ ] Implement test scaffolds
421
+ 3. [ ] Run tests (expect failures)
422
+ 4. [ ] Implement feature code
423
+ 5. [ ] Verify tests pass
424
+ ````
425
+
426
+ ---
427
+
428
+ ## Step 7: Generate Test Scaffolds (Optional)
429
+
430
+ If user wants actual test files, generate scaffolds:
431
+
432
+ ```javascript
433
+ // tests/integration/[feature]/[feature].test.ts
434
+ import { describe, test, expect } from 'vitest';
435
+ import {
436
+ userExists,
437
+ userSubmitsLogin,
438
+ expectUserLoggedIn,
439
+ // ... other DSL functions
440
+ } from '../../helpers/auth-dsl';
441
+
442
+ describe('[Feature Name]', () => {
443
+ describe('US1: User Authentication', () => {
444
+ test('TC001: Successful Login with Valid Credentials', async () => {
445
+ // TC001: Successful Login with Valid Credentials
446
+ // Traces to: US1-AC1
447
+ //
448
+ // userExists({ email: 'test@example.com', password: 'valid' })
449
+ //
450
+ // userSubmitsLogin({ email: 'test@example.com', password: 'valid' })
451
+ //
452
+ // expectUserLoggedIn()
453
+ // expectRedirectedToDashboard()
454
+
455
+ await userExists({ email: 'test@example.com', password: 'valid' });
456
+
457
+ await userSubmitsLogin({ email: 'test@example.com', password: 'valid' });
458
+
459
+ await expectUserLoggedIn();
460
+ await expectRedirectedToDashboard();
461
+ });
462
+
463
+ // ... more tests
464
+ });
465
+ });
466
+ ```
467
+
468
+ ---
469
+
470
+ ## Step 8: Update Tasks.md
471
+
472
+ Add test implementation tasks to tasks.md:
473
+
474
+ ```markdown
475
+ ## Phase: Test Implementation
476
+
477
+ - [ ] T0XX [P] Create DSL helper functions in tests/helpers/
478
+ - [ ] T0XX [P] Implement test scaffolds for US1
479
+ - [ ] T0XX [P] Implement test scaffolds for US2
480
+ - [ ] T0XX Verify all tests fail initially (red phase)
481
+ ```
482
+
483
+ ---
484
+
485
+ ## Step 9: Report Completion
486
+
487
+ ```
488
+ ================================================================
489
+ TEST CASES DEFINED: [Feature Name]
490
+ ================================================================
491
+
492
+ Coverage:
493
+ - User Stories: [N]/[Total] covered
494
+ - Acceptance Criteria: [N]/[Total] covered
495
+ - Test Cases: [Total] defined
496
+
497
+ Test Types:
498
+ - Happy Path: [N] tests
499
+ - Edge Cases: [N] tests
500
+ - Error Scenarios: [N] tests
501
+ - Authorization: [N] tests
502
+
503
+ DSL Functions:
504
+ - Existing: [N] functions
505
+ - To Create: [N] functions
506
+
507
+ Output: {FEATURE_DIR}/test-cases.md
508
+
509
+ Next Steps:
510
+ 1. Review test cases with stakeholders
511
+ 2. Implement DSL functions
512
+ 3. Create test scaffolds
513
+ 4. Run tests (expect red)
514
+ 5. Implement feature (turn green)
515
+
516
+ ================================================================
517
+ ```
518
+
519
+ ---
520
+
521
+ ## Test-First Workflow Integration
522
+
523
+ ### Before Implementation
524
+
525
+ ```
526
+ /1_gofer_research → /2_gofer_specify → /3_gofer_plan
527
+
528
+ /9_gofer_tests ← Define tests here
529
+
530
+ /4_gofer_tasks → /5_gofer_implement
531
+ ```
532
+
533
+ ### During Implementation
534
+
535
+ After each task in `/5_gofer_implement`:
536
+
537
+ 1. Run relevant tests
538
+ 2. Verify behavior matches test expectations
539
+ 3. Mark test as passing in test-cases.md
540
+
541
+ ---
542
+
543
+ ## Observability Logging
544
+
545
+ ```bash
546
+ .specify/scripts/bash/log-stage.sh 9_tests --complete --tokens [N] --compactions [N]
547
+ ```
548
+
549
+ ---
550
+
551
+ ## Key Rules
552
+
553
+ - Every test must trace to a user story or acceptance criterion
554
+ - Follow existing test patterns in the codebase
555
+ - DSL functions must be readable as natural language
556
+ - Tests should be independent and isolated
557
+ - Include both positive and negative test cases
558
+ - Document which DSL functions need to be created
@@ -0,0 +1,148 @@
1
+ ---
2
+ name: gofer:bootstrap-workspace
3
+ description: "Create or update the repo-owned Gofer scaffold for the current workspace."
4
+ ---
5
+
6
+
7
+ # Gofer Workspace Bootstrap
8
+
9
+ ## Token And Cost Policy
10
+ <!-- gofer:token-cost-policy:start -->
11
+
12
+ Before spawning agents, calling tools, or loading large files:
13
+
14
+ 1. Treat `.specify/memory/gofer-model-policy.yaml` as the repo-owned source of truth for simple, medium, hard, and arbiter model routing. If it is missing, run `/gofer:bootstrap-workspace` before continuing.
15
+ 2. Use the cheapest capable model first.
16
+ - Claude: Haiku for scouting/extraction; Sonnet for normal implementation, synthesis, validation, and security; Opus for high-risk arbitration or release-critical failures.
17
+ - Codex/OpenAI: GPT mini for simple coding; GPT nano only for locate/classify/summarize/mechanical work; GPT-5.3-Codex or flagship GPT for tool-heavy coding, architecture, and release-critical validation.
18
+ - Gemini: Flash-Lite for cheap large-context scan/summarize; Flash for default research synthesis; Pro for large-context architecture or high-risk arbitration.
19
+ - Copilot: prefer Auto for simple and default work; ask the user before choosing a paid/high-tier picker model for hard security, architecture, or release gates.
20
+ 3. Keep raw tool output out of the main conversation context. Save stable findings to `.specify/specs/{feature}/context-bundle.md`, then work from summaries.
21
+ 4. Use provider prompt/context caching only for stable, non-secret prefixes: Gofer scaffold, AGENTS/CLAUDE/Copilot instructions, constitution, repo map, stage contracts, and validation rubric.
22
+ 5. Before continuing after large research, planning, implementation, or validation bursts, checkpoint the durable artifacts and compact/clear/resume context when the host supports it.
23
+ 6. Escalate model tier only when a cheaper pass is low-confidence, contradictory, security-sensitive, or blocking release quality.
24
+ <!-- gofer:token-cost-policy:end -->
25
+
26
+ ## Guardrails
27
+
28
+ - Preserve existing `.specify/specs/*` work.
29
+ - Preserve existing `.specify/memory/constitution.md` if present.
30
+ - Do **not** overwrite existing `AGENTS.md`, `CLAUDE.md`, or
31
+ `.github/copilot-instructions.md` by default. Create them only when missing.
32
+ - Do **not** add repo-local assistant mirrors (`.claude/commands`,
33
+ `.agents/skills`, `.github/prompts`, `.gemini/`, etc.) unless the user
34
+ explicitly asks for them.
35
+
36
+ ## Step 1: Resolve The Workspace Root
37
+
38
+ Use the current repository root. If you started inside a subdirectory, walk
39
+ upward to the nearest directory containing `.git`, `package.json`,
40
+ `pyproject.toml`, `go.mod`, `Cargo.toml`, or `.specify`.
41
+
42
+ ## Step 2: Select A Bootstrap Source
43
+
44
+ Use the first source that exists:
45
+
46
+ 1. `~/plugins/eai-gofer`
47
+ 2. `./plugins/eai-gofer` when you are working in the Gofer repo itself
48
+ 3. Download the latest public bundle zip and extract it to a temporary folder:
49
+
50
+ ```bash
51
+ curl -fsSL https://eai-tools.github.io/eai-gofer/releases/eai-gofer-agent-plugin-latest.zip \
52
+ -o /tmp/eai-gofer-agent-plugin-latest.zip
53
+ rm -rf /tmp/eai-gofer-bootstrap
54
+ mkdir -p /tmp/eai-gofer-bootstrap
55
+ unzip -q /tmp/eai-gofer-agent-plugin-latest.zip -d /tmp/eai-gofer-bootstrap
56
+ ```
57
+
58
+ When using the downloaded bundle, the source root is:
59
+
60
+ ```text
61
+ /tmp/eai-gofer-bootstrap/eai-gofer
62
+ ```
63
+
64
+ ## Step 3: Run The Portable Bootstrap Script
65
+
66
+ Prefer the scripted bootstrap from the selected source:
67
+
68
+ ```bash
69
+ node "$SOURCE_ROOT/.specify/scripts/node/gofer-workspace-bootstrap.mjs" \
70
+ --workspace "$WORKSPACE_ROOT" \
71
+ --host "$GOFER_HOST"
72
+ ```
73
+
74
+ Use the host value that matches the current client: `claude`, `codex`,
75
+ `copilot`, or `gemini`.
76
+
77
+ If the user explicitly asks for repo-local assistant mirrors as well, append:
78
+
79
+ ```bash
80
+ --include-mirrors
81
+ ```
82
+
83
+ The default bootstrap must create/update:
84
+
85
+ - `.specify/commands/`
86
+ - `.specify/templates/`
87
+ - `.specify/scripts/bash/`
88
+ - `.specify/scripts/node/`
89
+ - `.specify/scripts/hooks/`
90
+ - `.specify/scripts/powershell/`
91
+ - `.specify/specs/`
92
+ - `.specify/memory/`
93
+ - `.specify/memory/gofer-model-policy.yaml` when missing
94
+ - `.specify/.gofer-version`
95
+ - `.specify/README.md`
96
+ - Gofer runtime `.gitignore` entries
97
+
98
+ And host-specific repo-owned files:
99
+
100
+ - **Claude**: `AGENTS.md`, `CLAUDE.md`, `.claude/settings.json`
101
+ - **Codex**: `AGENTS.md`
102
+ - **Copilot**: `.github/copilot-instructions.md`
103
+ - **Gemini**: no extra required repo-owned file beyond the core scaffold
104
+
105
+ ## Step 4: Re-Run The Workspace Check
106
+
107
+ After bootstrap completes, run:
108
+
109
+ ```bash
110
+ node .specify/scripts/node/gofer-workspace-check.mjs --host "$GOFER_HOST" --json
111
+ ```
112
+
113
+ Report what changed and whether the workspace is now healthy.
114
+
115
+ If the workspace is still stale because the repo-local scripts are older than
116
+ the currently installed plugin bundle, explain that clearly and keep the
117
+ selected source bundle as the truth for the update.
118
+
119
+ ## Step 5: Continue EAI App First-Run Setup When Needed
120
+
121
+ If the user is building an EAI Platform app and Git, Node.js, npm, the EAI CLI,
122
+ login, tenant access, or EAI app template readiness is still missing, run
123
+ `/gofer:eai-first-run` next. Do not ask again when the workspace is healthy;
124
+ only ask when an install, browser login, tenant selection, or `eai init` action
125
+ is actually needed.
126
+
127
+ ## Step 6: Write The Workspace Bootstrap Report
128
+
129
+ Write the artifact only to `.specify/logs/workspace-bootstrap-report.md`.
130
+
131
+ If the target file already exists, replace it and prepend a regeneration note
132
+ such as `<!-- regenerated at [ISO timestamp] -->`.
133
+
134
+ Include the minimum provenance schema:
135
+
136
+ - `GeneratedAt`
137
+ - `SourceCommandId`
138
+ - `SourceInputs`
139
+ - `OverwriteNoticeWhenApplicable`
140
+
141
+ The generated workspace bootstrap report must contain these sections:
142
+
143
+ - `## Provenance`
144
+ - `## Workspace Root`
145
+ - `## Bootstrap Source`
146
+ - `## Host Policy`
147
+ - `## Changes Applied`
148
+ - `## Post-Check`