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,264 @@
1
+ ```mermaid
2
+ graph TB
3
+ subgraph "BEFORE: Monolithic Architecture (Technical Debt)"
4
+ Extension1["extension.ts<br/>1200 LOC<br/>❌ God Object"]
5
+ Migrator1["goferMigrator.ts<br/>2499 LOC<br/>❌ God Object"]
6
+
7
+ Extension1 --> Migrator1
8
+ Extension1 --> VSCode1[VSCode API]
9
+ Migrator1 --> VSCode1
10
+ Migrator1 --> FS1[File System]
11
+
12
+ style Extension1 fill:#ff6b6b,stroke:#c92a2a,stroke-width:3px
13
+ style Migrator1 fill:#ff6b6b,stroke:#c92a2a,stroke-width:3px
14
+ end
15
+
16
+ subgraph "AFTER: Modular Architecture (Refactored)"
17
+ subgraph "Core Infrastructure (Phase 1)"
18
+ Container["DI Container<br/>87 LOC"]
19
+ Logger["Logger Service<br/>147 LOC"]
20
+
21
+ Container -.->|registers| Logger
22
+ end
23
+
24
+ subgraph "Extension Services (Phase 3)"
25
+ Extension2["extension.ts<br/>~800 LOC<br/>✅ Orchestrator"]
26
+ Disposal["DisposalService<br/>~200 LOC"]
27
+ Events["EventHandlers<br/>~200 LOC"]
28
+ Init["InitializationService<br/>~300 LOC"]
29
+ Commands["CommandRegistry<br/>~250 LOC"]
30
+ State["StateManager<br/>~150 LOC"]
31
+ end
32
+
33
+ subgraph "Migration Services (Phase 4)"
34
+ Migrator2["goferMigrator.ts<br/>467 LOC<br/>✅ Facade"]
35
+ Version["VersionDetector<br/>247 LOC"]
36
+ Upgrade["UpgradeService<br/>437 LOC"]
37
+ Resource["ResourceSyncer<br/>496 LOC"]
38
+ Path["PathMigrator<br/>332 LOC"]
39
+ end
40
+
41
+ %% DI Container relationships
42
+ Container -.->|resolves| Disposal
43
+ Container -.->|resolves| Events
44
+ Container -.->|resolves| Init
45
+ Container -.->|resolves| Commands
46
+ Container -.->|resolves| State
47
+ Container -.->|resolves| Version
48
+ Container -.->|resolves| Upgrade
49
+ Container -.->|resolves| Resource
50
+ Container -.->|resolves| Path
51
+
52
+ %% Extension service dependencies
53
+ Extension2 --> Container
54
+ Extension2 --> Init
55
+ Extension2 --> State
56
+ Extension2 --> VSCode2[VSCode API]
57
+
58
+ Init --> Commands
59
+ Init --> Events
60
+ Disposal --> Logger
61
+ Events --> Logger
62
+ Init --> Logger
63
+ Commands --> Logger
64
+ State --> Logger
65
+
66
+ %% Migration service dependencies
67
+ Migrator2 --> Container
68
+ Migrator2 --> Version
69
+ Migrator2 --> Upgrade
70
+ Migrator2 --> Resource
71
+ Migrator2 --> Path
72
+
73
+ Upgrade --> Logger
74
+ Upgrade --> Version
75
+ Version --> Logger
76
+ Resource --> Logger
77
+ Resource --> FS2[File System]
78
+ Path --> Logger
79
+ Path --> FS2
80
+
81
+ %% External dependencies
82
+ Resource --> VSCode2
83
+ Path --> VSCode2
84
+
85
+ style Extension2 fill:#51cf66,stroke:#2f9e44,stroke-width:3px
86
+ style Migrator2 fill:#51cf66,stroke:#2f9e44,stroke-width:3px
87
+ style Logger fill:#339af0,stroke:#1864ab,stroke-width:2px
88
+ style Container fill:#339af0,stroke:#1864ab,stroke-width:2px
89
+ end
90
+ ```
91
+
92
+ # Module Dependencies Diagram
93
+
94
+ This diagram shows the architecture transformation from monolithic God objects
95
+ to modular services.
96
+
97
+ ## Metrics Comparison
98
+
99
+ | Metric | Before (Monolithic) | After (Modular) | Improvement |
100
+ | ------------------------ | ------------------- | --------------- | -------------- |
101
+ | **extension.ts LOC** | 1200 | ~800 | -33% (400 LOC) |
102
+ | **goferMigrator.ts LOC** | 2499 | 467 | -81% (2032 LOC) |
103
+ | **Total God object LOC** | 3699 | 1267 | -66% (2432 LOC) |
104
+ | **Service count** | 2 (monoliths) | 12 (focused) | +10 services |
105
+ | **Max service LOC** | 2499 | 496 | -80% |
106
+ | **Testable units** | 2 | 12 | 6x increase |
107
+
108
+ ## Architecture Principles
109
+
110
+ ### Before: Monolithic (Anti-Patterns)
111
+
112
+ ❌ **God Objects**: Single files with 1000+ LOC and 20+ responsibilities
113
+
114
+ - `extension.ts`: Initialization + Events + Commands + Disposal
115
+ - `goferMigrator.ts`: Detection + Orchestration + Resources + Paths
116
+
117
+ ❌ **High Coupling**: Direct instantiation with `new`, global state
118
+
119
+ ❌ **Low Cohesion**: Unrelated functions in same file
120
+
121
+ ❌ **Difficult Testing**: Too many mocks needed, can't test parts in isolation
122
+
123
+ ### After: Modular (Best Practices)
124
+
125
+ ✅ **Single Responsibility**: Each service has one focused purpose
126
+
127
+ - `VersionDetector`: Only format detection
128
+ - `UpgradeService`: Only orchestration
129
+ - `ResourceSyncer`: Only file operations
130
+ - `PathMigrator`: Only path migration
131
+
132
+ ✅ **Dependency Injection**: Container manages lifecycles, explicit dependencies
133
+
134
+ ✅ **Facade Pattern**: `extension.ts` and `goferMigrator.ts` become thin
135
+ orchestrators
136
+
137
+ ✅ **Testability**: Services tested independently with mocked dependencies
138
+
139
+ ## Service Responsibilities
140
+
141
+ ### Core Infrastructure (Phase 1)
142
+
143
+ | Service | Responsibility | LOC | Dependencies |
144
+ | --------- | ----------------------------- | --- | ------------ |
145
+ | Container | DI service registration | 87 | TSyringe |
146
+ | Logger | Structured logging | 147 | VSCode API |
147
+
148
+ ### Extension Services (Phase 3)
149
+
150
+ | Service | Responsibility | LOC | Dependencies |
151
+ | -------------- | ------------------------------- | ---- | -------------------- |
152
+ | extension.ts | Orchestrates activation | ~800 | All services |
153
+ | Disposal | Resource cleanup | ~200 | Logger |
154
+ | EventHandlers | Workspace event listeners | ~200 | Logger |
155
+ | Init | Workspace initialization | ~300 | Logger, Commands |
156
+ | CommandRegistry| Command registration | ~250 | Logger |
157
+ | StateManager | Global state management | ~150 | Logger |
158
+
159
+ ### Migration Services (Phase 4)
160
+
161
+ | Service | Responsibility | LOC | Dependencies |
162
+ | ---------------- | ------------------------------- | ---- | -------------------- |
163
+ | goferMigrator.ts | Facade for migration services | 467 | All migration svcs |
164
+ | VersionDetector | Format detection | 247 | Logger |
165
+ | UpgradeService | Upgrade orchestration | 437 | Logger, Version |
166
+ | ResourceSyncer | File/resource sync | 496 | Logger |
167
+ | PathMigrator | Path reference migration | 332 | Logger |
168
+
169
+ ## Dependency Layers
170
+
171
+ ### Layer 1: Foundation
172
+
173
+ - **Container**: Manages all service lifecycles
174
+ - **Logger**: Used by all services (zero dependencies)
175
+
176
+ ### Layer 2: Core Services
177
+
178
+ - **StateManager**: Maintains extension state (depends: Logger)
179
+ - **DisposalService**: Cleans up resources (depends: Logger)
180
+
181
+ ### Layer 3: Feature Services
182
+
183
+ - **Extension Services**: EventHandlers, InitializationService, CommandRegistry
184
+ (depend: Logger)
185
+ - **Migration Services**: VersionDetector, UpgradeService, ResourceSyncer,
186
+ PathMigrator (depend: Logger, VersionDetector)
187
+
188
+ ### Layer 4: Facades
189
+
190
+ - **extension.ts**: Orchestrates extension lifecycle
191
+ - **goferMigrator.ts**: Orchestrates migration operations
192
+
193
+ ## Benefits of Refactoring
194
+
195
+ ### Code Quality
196
+
197
+ - ✅ **Reduced complexity**: Max 496 LOC per file vs. 2499 LOC
198
+ - ✅ **Improved cohesion**: Services have single, clear purpose
199
+ - ✅ **Better naming**: Service names describe responsibility
200
+
201
+ ### Maintainability
202
+
203
+ - ✅ **Easier navigation**: Find code by service (e.g., "path migration" →
204
+ `PathMigrator.ts`)
205
+ - ✅ **Isolated changes**: Update one service without touching others
206
+ - ✅ **Reduced merge conflicts**: Team works on different services
207
+
208
+ ### Testing
209
+
210
+ - ✅ **Unit testable**: Mock dependencies via DI container
211
+ - ✅ **Integration testable**: Test service interactions
212
+ - ✅ **Faster tests**: Test one service at a time (not entire God object)
213
+
214
+ ### Development Velocity
215
+
216
+ - ✅ **Parallel development**: Different developers on different services
217
+ - ✅ **Faster onboarding**: Understand one 300 LOC service vs. 2500 LOC file
218
+ - ✅ **Easier reviews**: 200-500 LOC PRs vs. 1000+ LOC changes
219
+
220
+ ## Anti-Patterns Eliminated
221
+
222
+ ### Before
223
+
224
+ 1. **Blob/God Object**: 2499 LOC monolith
225
+ 2. **Lava Flow**: Unclear which code is used
226
+ 3. **Spaghetti Code**: Tangled control flow
227
+ 4. **Golden Hammer**: Everything in one file
228
+
229
+ ### After
230
+
231
+ 1. **Single Responsibility**: Each service focused
232
+ 2. **Dependency Injection**: Explicit dependencies
233
+ 3. **Facade Pattern**: Thin orchestrators
234
+ 4. **Service Layer**: Clean separation of concerns
235
+
236
+ ## Future Phases
237
+
238
+ ### Phase 2: Cache Services (Pending)
239
+
240
+ Will add:
241
+
242
+ - `SpecCache` (spec file caching)
243
+ - `MemoryCache` (memory indexing)
244
+
245
+ Both follow same pattern: <600 LOC, depend on Logger, registered in Container.
246
+
247
+ ### Future Extraction Opportunities
248
+
249
+ If any service grows >500 LOC:
250
+
251
+ - Extract sub-services using same pattern
252
+ - Maintain <600 LOC limit per file
253
+ - Apply facade pattern if needed
254
+
255
+ ## Related ADRs
256
+
257
+ - **ADR-001**: DI Framework (TSyringe)
258
+ - **ADR-002**: Module Extraction Strategy (Phased with Facades)
259
+ - **ADR-003**: Error Handling (Logger service)
260
+
261
+ ## Related Tasks
262
+
263
+ - **Phase 3**: T020-T025 (extension.ts refactoring)
264
+ - **Phase 4**: T026-T030 (goferMigrator.ts refactoring)
@@ -0,0 +1,97 @@
1
+ # Gofer model policy for this repository.
2
+ #
3
+ # This repo copy is user-owned. `gofer:bootstrap-workspace` and VS Code
4
+ # `gofer.initialize` create it when missing, but should not overwrite local
5
+ # edits. See `.specify/templates/gofer-model-policy.yaml` for the shipped
6
+ # default.
7
+ #
8
+ # Last verified against public provider docs: 2026-05-30.
9
+ version: 1
10
+ lastVerified: "2026-05-30"
11
+ profile: balanced
12
+
13
+ principles:
14
+ - Use the cheapest capable model first for repetitive scouting, extraction, and summarization.
15
+ - Use the default workhorse model for normal implementation, synthesis, and validation.
16
+ - Use the best available model for security, architecture, release-critical review, or repeated failure.
17
+ - Use provider prompt/context caching only for stable, non-secret prefixes.
18
+ - Compact or checkpoint after large research, planning, implementation, and validation bursts.
19
+
20
+ contextPolicy:
21
+ healthyBelowPercent: 40
22
+ summarizeAtPercent: 55
23
+ compactAtPercent: 70
24
+ checkpointAtPercent: 85
25
+ durableArtifact: .specify/specs/{feature}/context-bundle.md
26
+
27
+ surfaces:
28
+ claude:
29
+ simple:
30
+ model: claude-haiku-4-5
31
+ claudeCodeAlias: haiku
32
+ contextWindowTokens: 200000
33
+ useFor: scouting, extraction, summarization, low-risk helpers
34
+ medium:
35
+ model: claude-sonnet-4-6
36
+ claudeCodeAlias: sonnet
37
+ contextWindowTokens: 1000000
38
+ useFor: default implementation, synthesis, validation, everyday coding
39
+ hard:
40
+ model: claude-opus-4-8
41
+ claudeCodeAlias: opus
42
+ contextWindowTokens: 1000000
43
+ useFor: hardest bugs, security review, architecture arbitration, release-critical validation
44
+ codex:
45
+ simple:
46
+ model: gpt-5.4-mini
47
+ reasoningEffort: low
48
+ contextWindowTokens: 400000
49
+ useFor: simple coding, focused edits, routine test fixes
50
+ mechanical:
51
+ model: gpt-5.4-nano
52
+ reasoningEffort: low
53
+ contextWindowTokens: 400000
54
+ useFor: locate, classify, summarize, transform text
55
+ medium:
56
+ model: gpt-5.4
57
+ reasoningEffort: medium
58
+ contextWindowTokens: 1000000
59
+ useFor: default planning, implementation, research synthesis
60
+ hard:
61
+ model: gpt-5.3-codex
62
+ reasoningEffort: high
63
+ contextWindowTokens: 400000
64
+ useFor: agentic terminal coding, tool-heavy debugging, code review
65
+ arbiter:
66
+ model: gpt-5.5
67
+ reasoningEffort: high
68
+ contextWindowTokens: 1050000
69
+ useFor: broad frontier reasoning, complex architecture, final arbitration
70
+ gemini:
71
+ simple:
72
+ model: gemini-3.1-flash-lite
73
+ contextWindowTokens: 1000000
74
+ useFor: cheap large-context scans, summarization, extraction
75
+ medium:
76
+ model: gemini-3-flash-preview
77
+ contextWindowTokens: 1000000
78
+ useFor: default research and broad synthesis when cost matters
79
+ hard:
80
+ model: gemini-3.1-pro-preview
81
+ contextWindowTokens: 1000000
82
+ useFor: large-context architecture, cross-repo reasoning, high-risk research
83
+ highThroughputCoding:
84
+ model: gemini-3.5-flash
85
+ contextWindowTokens: 1000000
86
+ useFor: fast tool/coding workflows when account pricing makes it worthwhile
87
+ copilot:
88
+ simple:
89
+ model: Auto
90
+ useFor: default Copilot Chat, routine coding, completion, and quick fixes
91
+ medium:
92
+ model: Auto
93
+ useFor: normal Gofer stage prompts and workspace questions
94
+ hard:
95
+ model: "Best available in picker: GPT-5.3-Codex, GPT-5.5, Claude Opus, or Gemini Pro"
96
+ useFor: explicit hard review, security, architecture, or release gates
97
+ note: Copilot model availability depends on plan, organization policy, client, and feature surface.
@@ -0,0 +1,46 @@
1
+ # Gofer Lessons Learned
2
+
3
+ Cross-cutting lessons captured from incidents, corrections, and
4
+ post-implementation reviews. Review at session start; update after any
5
+ correction.
6
+
7
+ ---
8
+
9
+ ## 2026-04-25: Codex skill-budget hygiene
10
+
11
+ **Incident**: Codex CLI logged `Exceeded skills context budget of 2%` and
12
+ dropped descriptions of all installed skills. Investigation revealed 11
13
+ duplicate Gofer skill bundles (one per Anthropic-tenant) plus 5 system skills,
14
+ totaling ~30KB of skill descriptions across 181 SKILL.md files.
15
+
16
+ **Root cause**: Codex preloads ~2% of context for skill name+description text.
17
+ Over-budget triggers a global drop, not per-bundle eviction. Multiple tenanted
18
+ copies multiplied the description footprint.
19
+
20
+ **Fix**:
21
+
22
+ 1. Disabled 176 redundant `[[skills.config]] enabled = false` entries in
23
+ `~/.codex/config.toml` (backup: `.bak.2026-04-25`).
24
+ 2. Shipped `gofer codex doctor` (read-only) to detect this proactively.
25
+ 3. Source-of-truth generator enforces ≤140-char descriptions per stage and ≤2KB
26
+ cumulative budget.
27
+ 4. Flat non-tenanted layout: `.agents/skills/gofer/<stage>/SKILL.md` (one bundle
28
+ per stage, no per-tenant duplication).
29
+
30
+ **Lessons**:
31
+
32
+ - The official Codex disable knob is per-skill
33
+ `[[skills.config]] enabled = false`, NOT a budget percentage. The fictional
34
+ `skills_context_budget_percent` key DOES NOT EXIST.
35
+ - Codex discovers `.agents/skills/`, not `.claude/skills/`. They are separate
36
+ distribution paths.
37
+ - Read-only diagnostics (`gofer codex doctor`) are safer than auto-remediation:
38
+ never silently mutate user config.
39
+ - Description discipline matters: 16 stages × 128 bytes/desc = 2KB headroom; one
40
+ verbose description blows the entire budget for everyone.
41
+
42
+ **References**:
43
+
44
+ - Spec FR-006, FR-008, FR-009, FR-011 (negative)
45
+ - ADR-001 (Codex skill discovery path)
46
+ - `.specify/scripts/node/codex-doctor.mjs`
@@ -0,0 +1,86 @@
1
+ /**
2
+ * canonical-descriptions.mjs
3
+ * Canonical descriptions for all Gofer pipeline, utility, and helper commands
4
+ * that participate in the Codex skill-budget inventory.
5
+ * Each description must be ≤140 chars and the cumulative UTF-8 byte total
6
+ * must not exceed 2048 bytes (Codex skill-budget constraint).
7
+ */
8
+
9
+ export const CANONICAL_DESCRIPTIONS = {
10
+ '0_gofer_start':
11
+ 'Define the business problem Gofer should solve.',
12
+ '0a_problem_validation':
13
+ 'Validate the problem with 5 Whys and stakeholder mapping.',
14
+ '1_gofer_research':
15
+ 'Research the codebase, integrations, and technology landscape.',
16
+ '2_gofer_specify':
17
+ 'Generate a feature spec from research and approved review.',
18
+ '3_gofer_plan':
19
+ 'Create the technical plan, architecture, data model, and contracts.',
20
+ '4_gofer_tasks':
21
+ 'Break the plan into dependency-ordered, parallel tasks.',
22
+ '5_gofer_implement':
23
+ 'Execute tasks phase by phase with feedback and review.',
24
+ '6_gofer_validate':
25
+ 'Validate the work with scoring, blast-radius analysis, and review.',
26
+ '7_gofer_save':
27
+ 'Save session state for later resumption.',
28
+ '7a_stakeholder_comms':
29
+ 'Generate release notes, demos, and change briefs for stakeholders.',
30
+ '8_gofer_branding':
31
+ 'Brand Gofer templates and stakeholder documents.',
32
+ '9_gofer_tests':
33
+ 'Generate tests from four perspectives for a target component.',
34
+ '10_gofer_cloud':
35
+ 'Deploy and configure Gofer cloud integration.',
36
+ gofer_constitution:
37
+ 'Create or update the project constitution.',
38
+ gofer_hydrate:
39
+ 'Reverse-engineer a specification from existing code.',
40
+ 'gofer:check-workspace':
41
+ 'Check whether the repo scaffold is missing or stale.',
42
+ 'gofer:bootstrap-workspace':
43
+ 'Create or update the repo-owned Gofer scaffold.',
44
+ 'gofer:eai-first-run':
45
+ 'Check EAI CLI, login, tenant, template, and Gofer readiness.',
46
+ 'gofer:vocabulary':
47
+ 'Extract domain terms into a canonical glossary.',
48
+ 'gofer:diagnose':
49
+ 'Run a structured reproduce-minimize-instrument-fix loop.',
50
+ 'gofer:tdd':
51
+ 'Guide a red-green-refactor loop tied to acceptance criteria.',
52
+ 'gofer:spec-summary':
53
+ 'Generate a business summary of feature value and scope.',
54
+ 'gofer:zoom-out':
55
+ 'Show how the current feature fits broader system boundaries.',
56
+ };
57
+
58
+ /**
59
+ * Validates that all descriptions satisfy the Codex budget constraints:
60
+ * - Each description is ≤140 chars
61
+ * - Cumulative UTF-8 byte total ≤2048 bytes
62
+ *
63
+ * @throws {Error} if any constraint is violated
64
+ */
65
+ export function validateDescriptions() {
66
+ const entries = Object.entries(CANONICAL_DESCRIPTIONS);
67
+ let totalBytes = 0;
68
+
69
+ for (const [name, description] of entries) {
70
+ if (description.length > 140) {
71
+ throw new Error(
72
+ `Description for '${name}' exceeds 140 chars: ${description.length} chars`
73
+ );
74
+ }
75
+ const bytes = Buffer.byteLength(description, 'utf8');
76
+ totalBytes += bytes;
77
+ }
78
+
79
+ if (totalBytes > 2048) {
80
+ throw new Error(
81
+ `Cumulative UTF-8 byte total exceeds 2048 bytes: ${totalBytes} bytes`
82
+ );
83
+ }
84
+
85
+ return { count: entries.length, totalBytes };
86
+ }
@@ -0,0 +1,131 @@
1
+ #!/usr/bin/env node
2
+ import fs from 'node:fs';
3
+ import path from 'node:path';
4
+ import { fileURLToPath } from 'node:url';
5
+
6
+ const __filename = fileURLToPath(import.meta.url);
7
+ const __dirname = path.dirname(__filename);
8
+ const DEFAULT_ROOT = path.resolve(__dirname, '..', '..', '..');
9
+
10
+ function parseArgs(argv) {
11
+ const args = { root: DEFAULT_ROOT, json: false };
12
+ for (let index = 0; index < argv.length; index += 1) {
13
+ const arg = argv[index];
14
+ if (arg === '--root') {
15
+ args.root = path.resolve(argv[index + 1] ?? '');
16
+ index += 1;
17
+ } else if (arg === '--json') {
18
+ args.json = true;
19
+ } else if (arg === '--help' || arg === '-h') {
20
+ args.help = true;
21
+ }
22
+ }
23
+ return args;
24
+ }
25
+
26
+ function readJson(root, relativePath) {
27
+ const fullPath = path.join(root, relativePath);
28
+ const content = fs.readFileSync(fullPath, 'utf8');
29
+ return JSON.parse(content);
30
+ }
31
+
32
+ function readText(root, relativePath) {
33
+ return fs.readFileSync(path.join(root, relativePath), 'utf8').trim();
34
+ }
35
+
36
+ function collectVersions(root) {
37
+ const codexPluginManifest = readJson(root, '.codex-plugin/plugin.json');
38
+ const releaseAssetVersion =
39
+ /eai-gofer-agent-plugin-([^/]+)\.zip$/.exec(
40
+ codexPluginManifest.gofer?.releaseAsset ?? ''
41
+ )?.[1] ?? 'missing';
42
+
43
+ return [
44
+ {
45
+ name: 'root package',
46
+ path: 'package.json',
47
+ version: readJson(root, 'package.json').version,
48
+ },
49
+ {
50
+ name: 'root package lock',
51
+ path: 'package-lock.json',
52
+ version: readJson(root, 'package-lock.json').version,
53
+ },
54
+ {
55
+ name: 'extension package',
56
+ path: 'extension/package.json',
57
+ version: readJson(root, 'extension/package.json').version,
58
+ },
59
+ {
60
+ name: 'extension package lock',
61
+ path: 'extension/package-lock.json',
62
+ version: readJson(root, 'extension/package-lock.json').version,
63
+ },
64
+ {
65
+ name: 'Claude plugin manifest',
66
+ path: '.claude-plugin/plugin.json',
67
+ version: readJson(root, '.claude-plugin/plugin.json').version,
68
+ },
69
+ {
70
+ name: 'Codex plugin manifest',
71
+ path: '.codex-plugin/plugin.json',
72
+ version: codexPluginManifest.version,
73
+ },
74
+ {
75
+ name: 'Codex plugin release asset',
76
+ path: '.codex-plugin/plugin.json#gofer.releaseAsset',
77
+ version: releaseAssetVersion,
78
+ },
79
+ {
80
+ name: 'workspace version marker',
81
+ path: '.specify/.gofer-version',
82
+ version: readText(root, '.specify/.gofer-version'),
83
+ },
84
+ ];
85
+ }
86
+
87
+ function checkVersionAlignment(root) {
88
+ const entries = collectVersions(root);
89
+ const uniqueVersions = [...new Set(entries.map((entry) => entry.version))].sort();
90
+ const aligned = uniqueVersions.length === 1;
91
+ return {
92
+ aligned,
93
+ expectedVersion: aligned ? uniqueVersions[0] : undefined,
94
+ versions: entries,
95
+ mismatches: aligned ? [] : entries,
96
+ };
97
+ }
98
+
99
+ function formatMarkdown(result) {
100
+ const lines = ['# Gofer Version Alignment', ''];
101
+ lines.push(`Status: ${result.aligned ? 'PASS' : 'FAIL'}`);
102
+ if (result.expectedVersion) {
103
+ lines.push(`Version: ${result.expectedVersion}`);
104
+ }
105
+ lines.push('', '| Source | Path | Version |', '| --- | --- | --- |');
106
+ for (const entry of result.versions) {
107
+ lines.push(`| ${entry.name} | \`${entry.path}\` | \`${entry.version ?? 'missing'}\` |`);
108
+ }
109
+ return lines.join('\n');
110
+ }
111
+
112
+ if (__filename === path.resolve(process.argv[1] ?? '')) {
113
+ const args = parseArgs(process.argv.slice(2));
114
+ if (args.help) {
115
+ console.log(`Usage: node .specify/scripts/node/check-version-alignment.mjs [--root <path>] [--json]
116
+
117
+ Checks that root package, extension package, plugin manifests, and .gofer-version
118
+ all carry the same Gofer release version.`);
119
+ process.exit(0);
120
+ }
121
+
122
+ const result = checkVersionAlignment(args.root);
123
+ if (args.json) {
124
+ console.log(JSON.stringify(result, null, 2));
125
+ } else {
126
+ console.log(formatMarkdown(result));
127
+ }
128
+ process.exit(result.aligned ? 0 : 1);
129
+ }
130
+
131
+ export { checkVersionAlignment, collectVersions, formatMarkdown, parseArgs };