@enterpriseai/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 +714 -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 +96 -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
package/README.md ADDED
@@ -0,0 +1,714 @@
1
+ # eai — Enterprise AI Platform CLI
2
+
3
+ [![CI](https://github.com/eai-tools/eai/actions/workflows/ci.yml/badge.svg)](https://github.com/eai-tools/eai/actions/workflows/ci.yml)
4
+ [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/eai-tools/eai/badge)](https://securityscorecards.dev/viewer/?uri=github.com/eai-tools/eai)
5
+ [![Docs](https://github.com/eai-tools/eai/actions/workflows/docs.yml/badge.svg)](https://github.com/eai-tools/eai/actions/workflows/docs.yml)
6
+ [![License](https://img.shields.io/github/license/eai-tools/eai)](LICENSE)
7
+
8
+ Scaffold, seed, deploy, and manage applications on the EAI platform.
9
+
10
+ Every command wraps platform API calls — developers work with **resources, types, tenants, chat, and authorized PublicAPI V4 interfaces** using simple, intuitive commands.
11
+
12
+ ## Public Repository
13
+
14
+ This repository is the public source for the EnterpriseAI CLI. The README is the
15
+ fast path for developers who want to install the tool, understand what it does,
16
+ and find the maintained documentation.
17
+
18
+ | Surface | URL | Purpose |
19
+ |---------|-----|---------|
20
+ | Source | https://github.com/eai-tools/eai | CLI source, issues, pull requests, and release tags |
21
+ | Documentation | https://eai-tools.github.io/eai/ | Docusaurus documentation, scenarios, and command reference |
22
+ | npmjs packages | https://www.npmjs.com/package/eai-cli | Primary install/update channel for the `eai` command |
23
+ | Static npm registry fallback | https://eai-tools.github.io/eai/registry/ | GitHub Pages fallback for `@enterpriseai/cli` when npmjs is unavailable |
24
+ | Releases | https://github.com/eai-tools/eai/releases | Versioned GitHub releases and packaged tarballs |
25
+ | Security | [SECURITY.md](SECURITY.md) | Private vulnerability reporting and supported versions |
26
+ | Contributing | [CONTRIBUTING.md](CONTRIBUTING.md) | Public-safe contribution and release workflow |
27
+ | License | [Apache-2.0](LICENSE) | Open source license and patent grant |
28
+
29
+ Public-readiness rule for maintainers: everything committed here should be safe
30
+ for a public audience. Do not commit secrets, customer data, private tenant
31
+ details, local `.env` files, unpublished internal architecture notes, or
32
+ temporary build output.
33
+
34
+ Generated Gofer specs, memory files, logs, checkpoints, and local runtime state
35
+ are intentionally ignored. The committed `.specify` directory contains only the
36
+ reusable scripts and templates needed by `eai init` and `eai gofer refresh`.
37
+
38
+ ## Install
39
+
40
+ Recommended install:
41
+
42
+ ```bash
43
+ npm install -g eai-cli
44
+ ```
45
+
46
+ Canonical package:
47
+
48
+ ```bash
49
+ npm install -g @enterpriseai/cli
50
+ ```
51
+
52
+ Static registry fallback:
53
+
54
+ ```bash
55
+ npm install -g @enterpriseai/cli --@enterpriseai:registry=https://eai-tools.github.io/eai/registry/
56
+ ```
57
+
58
+ Persistent static fallback setup:
59
+
60
+ ```bash
61
+ npm config set @enterpriseai:registry https://eai-tools.github.io/eai/registry/ --location=user
62
+ npm install -g @enterpriseai/cli
63
+ ```
64
+
65
+ If you are validating the generated registry from a local checkout of this repo, install the tarball instead of the packument file:
66
+
67
+ ```bash
68
+ npm install -g ./docs-site/static/registry/-/@enterpriseai/cli-latest.tgz
69
+ ```
70
+
71
+ `docs-site/static/registry/@enterpriseai/cli` is the registry metadata file. It is not an installable package directory.
72
+
73
+ ## Quick Start
74
+
75
+ ```bash
76
+ # 1. Create a new app
77
+ eai init my-app
78
+ cd my-app
79
+ npm install
80
+
81
+ # 2. Authenticate
82
+ eai login
83
+
84
+ # 3. Choose the tenant to work with
85
+ eai tenant select
86
+
87
+ # 4. Create child tenants only when you need them
88
+ # `eai tenant create --parent <id>` now creates the tenant record,
89
+ # attempts first-admin bootstrap for the current login, and only marks
90
+ # the tenant usable after direct tenant-admin membership is confirmed.
91
+ # The child home region defaults to the parent region; pass
92
+ # `--home-region au|ca|eu` when the child must use another region.
93
+
94
+ # 5. Sync project environment if your app needs local config/secrets
95
+ eai env pull --include-secrets
96
+
97
+ # 6. Define your data model
98
+ # Edit src/eai.config/object-types.ts
99
+
100
+ # 7. Validate and seed
101
+ eai types validate
102
+ eai types seed
103
+
104
+ # 8. Start developing
105
+ eai dev
106
+ ```
107
+
108
+ `eai init` installs Gofer AI terminal assets by default. New app repos include
109
+ Claude commands and agents, Codex skills, Gemini commands, Copilot prompts and
110
+ CLI skills, and the `.specify` commands/scripts/templates/hooks required to run
111
+ the Gofer pipeline.
112
+ Use `eai init my-app --no-gofer` only when you need a bare scaffold.
113
+
114
+ By default, `eai init my-app` creates a new `./my-app` folder. If you already
115
+ created and entered a project folder, run `eai init`, enter the app name, and
116
+ answer yes when asked to use the current folder. For automation, pass
117
+ `--current-dir` with the kebab-case app name. Current-folder init preserves
118
+ unrelated existing files and Git metadata, and updates files that are part of
119
+ the generated scaffold.
120
+
121
+ ## Global Flags
122
+
123
+ All commands support these global flags:
124
+
125
+ | Flag | Description |
126
+ |------|-------------|
127
+ | `--profile <name>` | Use a locally configured private profile |
128
+ | `--simple` | Plain text output without colors or symbols (for screen readers) |
129
+ | `--no-color` | Disable colored output |
130
+ | `--color` | Force colored output (for testing) |
131
+ | `--describe` | Output JSON schema of command structure (for AI agents) |
132
+ | `--format <format>` | Output format: `text` (default), `json`, or `yaml` |
133
+
134
+ ## Commands
135
+
136
+ ### Scaffolding
137
+
138
+ | Command | Description |
139
+ |---------|-------------|
140
+ | `eai init [name]` | Interactive scaffold from the CLI-pinned public EAI application template with Gofer AI CLI assets |
141
+ | `eai dev` | Start local dev server with connectivity checks |
142
+
143
+ The bundled default template is pinned to the latest `eai-app-template` `main`
144
+ commit captured when this CLI release was cut. Use `--from` to override it with
145
+ a different repository or a local template path.
146
+
147
+ ### Authentication
148
+
149
+ | Command | Description |
150
+ |---------|-------------|
151
+ | `eai login` | Authenticate with Entra CIAM (browser-based PKCE flow with localhost callback) |
152
+ | `eai logout` | Clear stored tokens |
153
+ | `eai whoami` | Show auth status and project context |
154
+ | `eai provision entra` | Create or confirm the app's Entra app registration in the CIAM for the active platform environment |
155
+ | `eai provision entra --rotate-secret` | Rotate the existing app registration secret and write the new value to `.env.local` |
156
+ | `eai provision entra --deauthorize --force` | Remove tenant authorization, delete the app registration, and remove local Entra credentials |
157
+ | `eai user invite --email <email> --role <role>` | Invite or provision a user into the active tenant or an explicit tenant with a V4 member role |
158
+ | `eai user list` | List tenant members in the active tenant or an explicit tenant |
159
+ | `eai user roles` | List tenant role definitions available for user invitation |
160
+ | `eai user role set --email <email> --role <role>` | Assign a role by email through the V4 invite/add flow |
161
+ | `eai user provision-me` | Provision yourself to the active tenant or an explicit tenant |
162
+
163
+ Codespaces and other remote dev environments can keep the standard localhost
164
+ callback by forwarding a fixed callback port from the Codespace to your local
165
+ machine:
166
+
167
+ ```bash
168
+ # Local machine, keep this running in a separate terminal
169
+ gh codespace ports forward -c <codespace-name> 3476:3476
170
+
171
+ # Codespace terminal
172
+ eai login --callback-port 3476
173
+ ```
174
+
175
+ `eai login --callback-port <port>` still uses `http://localhost:<port>` for the
176
+ OAuth callback; it just pins the port instead of choosing a random one. That
177
+ keeps the public Entra app registration unchanged while allowing your local
178
+ machine to tunnel the callback into the Codespace.
179
+
180
+ ### Environment
181
+
182
+ | Command | Description |
183
+ |---------|-------------|
184
+ | `eai env pull` | Sync Azure App Config + Key Vault → `.env.local` |
185
+ | `eai env list` | Show current environment variables |
186
+ | `eai env push` | Push local overrides to cloud (admin) |
187
+
188
+ ### Object Types
189
+
190
+ | Command | Description |
191
+ |---------|-------------|
192
+ | `eai types validate` | Check types against platform schema rules |
193
+ | `eai types seed` | Push Object Types to platform and verify remote convergence |
194
+ | `eai types diff` | Compare local definitions with remote state |
195
+ | `eai types pull` | Download remote types to local TypeScript |
196
+
197
+ ### Resources
198
+
199
+ | Command | Description |
200
+ |---------|-------------|
201
+ | `eai resources list <type>` | List resources (paginated, supports `--tenant-id`) |
202
+ | `eai resources get <type> <id>` | Get a single resource (supports `--tenant-id`) |
203
+ | `eai resources create <type>` | Create with `--data` JSON or `--file` |
204
+ | `eai resources update <type> <id>` | Update (auto-fetches version) |
205
+ | `eai resources delete <type> <id>` | Delete (with confirmation) |
206
+ | `eai resources query` | Cross-type query with `--types`, `--where`, and optional `--tenant-id` |
207
+ | `eai resources schema` | Show published Object Types for tenant (supports `--tenant-id`) |
208
+
209
+ ### Tenants
210
+
211
+ | Command | Description |
212
+ |---------|-------------|
213
+ | `eai tenant list` | List active tenants where you are a `tenant-admin` |
214
+ | `eai tenant select [tenant]` | Choose the active tenant for platform operations |
215
+ | `eai tenant info <id>` | Show tenant details |
216
+ | `eai tenant create` | Create a new tenant and verify child usability truthfully |
217
+ | `eai tenant bootstrap-admin --parent <id> --child <id>` | Repair first child-tenant admin access when the parent admin should be able to administer an existing child |
218
+
219
+ ### AI & Documents
220
+
221
+ | Command | Description |
222
+ |---------|-------------|
223
+ | `eai chat send <message>` | Send a single chat message |
224
+ | `eai chat stream <message>` | Stream a conversation (SSE) |
225
+ | `eai workflow readiness [keys...]` | Check tenant access, plan metadata, and optional workflow readiness together |
226
+ | `eai workflow status <key>` | Check whether an AI runtime workflow key is bound for the active tenant |
227
+ | `eai workflow request <key>` | Request operator-assisted workflow binding when a workflow is not ready yet |
228
+ | `eai docs upload <file>` | Upload a document |
229
+ | `eai docs classify <file>` | Classify a document |
230
+ | `eai docs index <id>` | Index a document for RAG |
231
+
232
+ ### PublicAPI V4
233
+
234
+ | Command | Description |
235
+ |---------|-------------|
236
+ | `eai publicapi get <path>` | Call an authorized PublicAPI V4 GET route |
237
+ | `eai publicapi post <path>` | Call an authorized PublicAPI V4 POST route with optional `--data` or `--file` JSON |
238
+ | `eai publicapi patch <path>` | Call an authorized PublicAPI V4 PATCH route |
239
+ | `eai publicapi put <path>` | Call an authorized PublicAPI V4 PUT route |
240
+ | `eai publicapi delete <path>` | Call an authorized PublicAPI V4 DELETE route |
241
+
242
+ Use named commands first for normal workflows. `eai publicapi` is the advanced
243
+ V4-only surface for route families that do not yet have a polished command,
244
+ such as geo, realtime, platform administration, integrations, or DAISY-specific
245
+ diagnostics. It still uses your current login and tenant context, and PublicAPI
246
+ still enforces platform tenant authorization.
247
+
248
+ ### Deployment
249
+
250
+ | Command | Description |
251
+ |---------|-------------|
252
+ | `eai runtime validate` | Validate the provider-neutral EAI app runtime contract |
253
+ | `eai deploy env --provider <provider>` | Translate the runtime contract into provider env/secret requirements |
254
+ | `eai deploy setup` | Generate deploy-demo.yml + GitHub secrets |
255
+ | `eai deploy trigger` | Trigger deployment workflow |
256
+ | `eai deploy status` | Check deployment status |
257
+ | `eai deploy doctor --url <deployed-url>` | Black-box check health, Auth.js, runtime config, smoke tests, and BFF readiness |
258
+
259
+ The runtime contract lives in `eai.runtime.json`. It declares required
260
+ environment variable names, required secrets, health/runtime endpoints, Auth.js
261
+ callback path, tenant/workflow key patterns, optional app-only service identity,
262
+ and post-deploy smoke tests. It is host-neutral: Vercel, Docker, AWS, Azure,
263
+ Kubernetes, VM-style hosts, and internal demo environments should translate the
264
+ same contract into their provider-specific env and secret setup.
265
+
266
+ `eai deploy doctor` deliberately does more than `/health`. A deployment can have
267
+ `/health` returning 200 and still fail because Auth.js providers are missing,
268
+ the Entra callback URL is wrong, tenant/workflow config is empty, service
269
+ identity is absent for anonymous server-side platform calls, PublicAPI rejects
270
+ authorization, or the app runtime is throwing errors.
271
+
272
+ ### Diagnostics
273
+
274
+ | Command | Description |
275
+ |---------|-------------|
276
+ | `eai verify` | Run platform connectivity checks (supports read-only `--tenant-id`) |
277
+ | `eai verify calls` | Audit platform API contracts used by the CLI (supports read-only `--tenant-id`) |
278
+ | `eai doctor` | Comprehensive diagnostics with fix suggestions |
279
+ | `eai gofer refresh` | Safely refresh repo-local Gofer-managed assets with backups and conflict detection |
280
+ | `eai template check` | Preview app-template and UI drift without writing files |
281
+
282
+ ## Tenant Lifecycle Truth
283
+
284
+ `eai tenant create` now distinguishes these states:
285
+
286
+ - `created`: the tenant document exists
287
+ - `bootstrapped`: the CLI successfully called the constrained first-admin bootstrap flow for a child tenant
288
+ - `usable`: a refreshed membership check confirmed the current login now holds direct `tenant-admin` on that tenant
289
+
290
+ For child tenants, the CLI only auto-selects the new tenant when `usable` is true. If bootstrap is blocked or downstream membership confirmation has not landed yet, the command leaves the active tenant unchanged and reports that explicitly.
291
+
292
+ The first-admin bootstrap path is intentionally narrow:
293
+
294
+ - the caller must already be `tenant-admin` on the direct parent tenant
295
+ - the target must be an immediate child of that parent
296
+ - the child must not already have a tenant admin
297
+ - parent child allowance is enforced from `limits.tenants`
298
+
299
+ For existing child tenants that were created before the bootstrap completed, a parent tenant admin can run:
300
+
301
+ ```bash
302
+ eai tenant bootstrap-admin --parent <parent-tenant-id> --child <child-tenant-id>
303
+ ```
304
+
305
+ By default this bootstraps the current login. To repair another known parent member, pass `--user-oid <entra-user-oid>` and optionally `--user-email <email>`.
306
+
307
+ ## Tenant Member And Role Management
308
+
309
+ Use `eai user invite` for normal "add this person to a tenant" and "make this
310
+ person a tenant admin/member" requests. The command calls the V4 tenant member
311
+ invite/add flow and can assign these base roles:
312
+
313
+ - `tenant-viewer`
314
+ - `tenant-staff`
315
+ - `tenant-builder`
316
+ - `tenant-admin`
317
+
318
+ Common examples:
319
+
320
+ ```bash
321
+ eai user roles --tenant <tenant-id> --format json
322
+ eai user invite --email user@example.com --tenant <tenant-id> --role tenant-viewer
323
+ eai user invite --email admin@example.com --tenant <tenant-id> --role tenant-admin
324
+ eai user list --tenant <tenant-id> --search admin@example.com --format json
325
+ ```
326
+
327
+ If `eai user invite` fails with a 5xx or `EXTERNAL_SERVICE_ERROR`, do not guess
328
+ or edit the database directly. Run:
329
+
330
+ ```bash
331
+ eai errors explain user_invite_external_service_existing_member --format json
332
+ eai user list --tenant <tenant-id> --search <email> --format json
333
+ ```
334
+
335
+ If the person already exists as a direct tenant member and you approve the role
336
+ change, repair the role through EAI CLI and verify read-back:
337
+
338
+ ```bash
339
+ eai user role set --tenant <tenant-id> --member-id <member-id> --role tenant-admin --format json
340
+ eai user list --tenant <tenant-id> --search <email> --format json
341
+ ```
342
+
343
+ The affected app user may need to sign out and sign back in because Auth.js
344
+ session or JWT role data can be cached.
345
+
346
+ `eai tenant bootstrap-admin` is not a general "make this user an admin" command.
347
+ It is only for repairing first tenant-admin access on an existing immediate
348
+ child tenant when the caller is already tenant-admin on the direct parent.
349
+
350
+ ## Architecture
351
+
352
+ ```
353
+ Developer Terminal EAI Platform
354
+ ────────────────── ────────────
355
+ eai login ──────────────────────────→ Entra CIAM (browser PKCE + localhost callback)
356
+ eai tenant select ──────────────────→ Current-user memberships → active tenant context
357
+ eai env pull ───────────────────────→ Azure App Config + Key Vault
358
+ eai types seed ─────────────────────→ Platform API → Type Registry
359
+ eai resources list ─────────────────→ Platform API → Data Service
360
+ eai workflow status ────────────────→ Platform API → AI runtime readiness
361
+ eai chat stream ────────────────────→ Platform API → AI Service
362
+ eai docs classify ──────────────────→ Platform API → AI Service
363
+ eai runtime validate ────────────────→ eai.runtime.json → local contract evidence
364
+ eai deploy env ──────────────────────→ eai.runtime.json → provider env/secret checklist
365
+ eai deploy doctor ───────────────────→ deployed app URL → black-box runtime checks
366
+ eai deploy trigger ─────────────────→ GitHub Actions → deployment workflow
367
+ ```
368
+
369
+ The CLI authenticates via browser-based authorization code flow with PKCE, stores tokens locally in `~/.eai/`, persists the active working tenant from your tenant-admin memberships, and calls the platform API directly with a Bearer token. `.env.local` is still available for project runtime configuration, but tenant selection for CLI platform commands comes from `eai login` and `eai tenant select`.
370
+
371
+ Runtime workflow checks are intentionally public-safe. They tell you whether a workflow key is `available`, `operator_required`, `paid_upgrade_required`, `rate_limited`, `blocked`, `unsupported`, or not ready without exposing private platform topology. Use `eai workflow request <key>` when the platform reports `operator_required`.
372
+
373
+ ## Error Guidance
374
+
375
+ The CLI uses structured error guidance for consistent human and AI-agent recovery:
376
+
377
+ - **E001-E099**: Project errors (not in EAI project, config missing)
378
+ - **E100-E199**: Auth errors (not logged in, token expired)
379
+ - **E200-E299**: Platform errors (API unreachable, resource not found)
380
+ - **E300-E399**: Validation errors (invalid schema, missing field)
381
+
382
+ Error output explains why the error may have happened, what read-only diagnostics
383
+ to run first, what mutating `eai` commands can fix it, and when to stop retrying.
384
+
385
+ ```
386
+ ✗ Not logged in.
387
+
388
+ Why this might happen:
389
+ - The CLI does not have a usable local sign-in token.
390
+ - The token may have expired or been created for a different local profile.
391
+
392
+ Try next:
393
+ 1. eai whoami [read-only]
394
+ Show the current login and active tenant status.
395
+ 2. eai login [changes state]
396
+ Authenticate with the EAI identity flow.
397
+
398
+ Error code: E101
399
+ Reason: not_logged_in
400
+ ```
401
+
402
+ JSON output keeps the legacy `suggestion` field and adds structured guidance for
403
+ AI agents:
404
+
405
+ ```json
406
+ {
407
+ "error": {
408
+ "code": "E101",
409
+ "message": "Not logged in",
410
+ "suggestion": "Run `eai login` to authenticate with the platform",
411
+ "guidance": {
412
+ "reasonCode": "not_logged_in",
413
+ "why": ["The CLI does not have a usable local sign-in token."],
414
+ "diagnostics": [{ "command": "eai whoami", "mutates": false }],
415
+ "fixes": [{ "command": "eai login", "mutates": true }]
416
+ },
417
+ "exitCode": 1
418
+ }
419
+ }
420
+ ```
421
+
422
+ Use `eai errors explain <code-or-reason>` for the release-aligned explanation:
423
+
424
+ ```bash
425
+ eai errors explain E101
426
+ eai errors explain tenant_authorization_incomplete --format json
427
+ eai errors explain user_invite_external_service_existing_member --format json
428
+ ```
429
+
430
+ ## Machine-Readable Output
431
+
432
+ Most data-returning commands that advertise `--format <format>` support
433
+ `--format json` for automation. Check `eai --describe` or command help before
434
+ scripting a subcommand; status-only commands such as `eai whoami` and quick
435
+ `eai verify` are plain text today.
436
+
437
+ ```bash
438
+ # Get JSON output
439
+ eai resources list User --format json
440
+
441
+ # Parse with jq
442
+ eai tenant list --format json | jq '.tenants[] | .slug'
443
+
444
+ # Use in scripts
445
+ if eai verify calls --format json | jq -e '.summary.failed == 0' > /dev/null; then
446
+ echo "Platform contracts are healthy"
447
+ fi
448
+ ```
449
+
450
+ The `--describe` flag outputs the CLI command structure as JSON Schema, enabling AI agents and automation tools to discover capabilities at runtime:
451
+
452
+ ```bash
453
+ eai --describe # Describe all commands
454
+ eai types --describe # Describe types subcommands
455
+ ```
456
+
457
+ For AI agents that need to use `eai` without extra instructions, start with the
458
+ built-in operating guide:
459
+
460
+ ```bash
461
+ eai agent guide --format json
462
+ ```
463
+
464
+ The same guide is embedded in `eai --describe` as `agentGuide`. It tells agents
465
+ to prefer structured output, run read-only diagnostics before fixes, call
466
+ `eai errors explain <code-or-reason> --format json` after failures, use named
467
+ commands before raw `publicapi` calls, and stop when retry or escalation
468
+ conditions match.
469
+
470
+ To test whether a weak agent can discover that behavior without EAI-specific
471
+ prompt instructions, run the built-in discovery eval:
472
+
473
+ ```bash
474
+ npm run build
475
+ npm run eval:agent-discovery -- --json
476
+ ```
477
+
478
+ The default `regex-small` agent is intentionally limited: it starts from generic
479
+ help/describe output, parses visible error codes or reason codes, and only runs
480
+ commands it discovers from the CLI output. Use `--agent-command <cmd>` to plug
481
+ in a real model runner that accepts the eval JSON turn on stdin and returns a
482
+ JSON decision.
483
+
484
+ ## Gofer AI Terminal Assets
485
+
486
+ Every `eai init` project includes the repo-local Gofer assets needed by the AI
487
+ terminals used in this workspace:
488
+
489
+ | CLI | Installed surface | First command |
490
+ |-----|-------------------|---------------|
491
+ | Claude CLI | `.claude/commands`, `.claude/agents`, `.claude/settings.json` hooks | `/0_gofer_start` |
492
+ | Codex CLI | `.agents/skills/` with a legacy `.system/skills/` mirror | Ask Codex to use the relevant Gofer skill |
493
+ | Gemini CLI | `.gemini/commands/gofer`, `.gemini/extension.json` | `/gofer:1_gofer_research` |
494
+ | GitHub Copilot | `.github/prompts`, `.github/instructions`, `.github/skills` | Use the Gofer prompt or matching local skill |
495
+
496
+ The shared workflow artifacts live under `.specify/`: commands, scripts,
497
+ templates, hooks, memory, logs, and generated feature specs. Runtime state is
498
+ added to `.gitignore`; command definitions and templates are committed with the
499
+ app.
500
+
501
+ ### Updating an existing repo safely
502
+
503
+ `eai update` keeps the local EAI toolchain current. It checks the installed CLI
504
+ against npmjs first, falls back to the public static registry when needed, installs the newer CLI when available, then
505
+ refreshes safe Gofer-managed files in the current EAI project. It does **not**
506
+ blindly rewrite template files or UI components inside an existing app repo.
507
+
508
+ Use these commands for the full maintenance loop:
509
+
510
+ ```bash
511
+ # See whether a newer CLI release, Gofer refresh, or template review is available
512
+ eai update --check
513
+
514
+ # Same report through the broader doctor command
515
+ eai doctor --check-updates
516
+
517
+ # Preview safe Gofer-managed asset updates for the current repo
518
+ eai gofer refresh --check
519
+
520
+ # Apply safe Gofer-managed file updates, with backups and conflict detection
521
+ eai gofer refresh
522
+
523
+ # Preview app-template and UI component drift before copying changes manually
524
+ eai template check
525
+ ```
526
+
527
+ Important boundaries:
528
+
529
+ - `eai update --check` is read-only. `eai update` may write only
530
+ Gofer-managed files in an EAI project.
531
+ - `eai gofer refresh` prefers the latest public `eai-gofer` release at runtime,
532
+ so Gofer asset updates do not require a new `eai` CLI release. If the latest
533
+ release cannot be reached or prepared, it falls back to the bundled snapshot.
534
+ - `eai gofer refresh` manages the Gofer-owned surfaces copied by `eai init`
535
+ such as `.specify/`, `.claude/`, `.agents/skills/`, `.gemini/`, and
536
+ generated Copilot Gofer files.
537
+ - It writes or updates `.eai-manifest.json` so future refreshes can detect
538
+ local edits and avoid overwriting them accidentally.
539
+ - If a tracked managed file has local edits, refresh leaves it untouched unless
540
+ you explicitly pass `--force`, and even then it backs the file up first.
541
+ - `eai template check` previews file-level drift against the app-template
542
+ `main` snapshot pinned in the installed CLI release and highlights which
543
+ files are new versus which need manual review, including likely UI paths under
544
+ `src/app` and `src/components`.
545
+ - Template or UI component changes are **not** auto-merged into existing repos
546
+ yet. Copy additions first, then diff/review existing files that `eai template
547
+ check` marks for manual review.
548
+ - During normal interactive CLI use, if the CLI has already cached that a newer
549
+ release is available, it can ask whether to run `eai update` immediately.
550
+ That prompt is suppressed for CI, non-TTY, `--describe`, `--format json`, and
551
+ `--json` output.
552
+
553
+ ## Development
554
+
555
+ ```bash
556
+ git clone https://github.com/eai-tools/eai.git
557
+ cd eai
558
+ npm install
559
+ npm run build # Compile TypeScript
560
+ npm run dev # Watch mode
561
+ npm run typecheck # Type check without emitting
562
+ npm run lint # Run ESLint
563
+ ```
564
+
565
+ ## Documentation and GitHub Pages
566
+
567
+ The documentation site lives in `docs-site/` and renders the source content from
568
+ `.tech-docs/`, the scenario library, and the generated command/API reference.
569
+ GitHub Pages is the public deployment target for both the documentation site and
570
+ the static npm registry fallback used by the install flow.
571
+
572
+ The `Deploy Docs` workflow builds `docs-site/` on `main` when documentation,
573
+ release-doc, registry, or LLM-help assets change. It uploads `docs-site/build`
574
+ with the official GitHub Pages artifact action and deploys it to the
575
+ `github-pages` environment.
576
+
577
+ Pages serves these public artifacts:
578
+
579
+ - `/docs/` and `/scenarios/` — documentation and scenario library
580
+ - `/registry/` — static npm registry fallback metadata and tarballs
581
+ - `/llms.txt`, `/llms-full.txt`, and `/cli-help.txt` — release-facing AI/help
582
+ surfaces generated from the current CLI
583
+
584
+ ## Releasing
585
+
586
+ Releases are managed with `release.sh`. It validates the release candidate locally, bumps the version, refreshes the release-facing docs/help surfaces, regenerates the static registry fallback artifacts, pushes `main` plus the annotated tag, waits for GitHub Actions to publish the npmjs packages and create the GitHub release, waits for the docs deployment that updates the static registry fallback, and then verifies npmjs plus the public static registry expose the new version.
587
+
588
+ ```bash
589
+ ./release.sh <patch|minor|major> "Release message"
590
+ ```
591
+
592
+ Examples:
593
+
594
+ ```bash
595
+ ./release.sh patch "Fix auth token refresh bug"
596
+ ./release.sh minor "Add bulk resource import command"
597
+ ./release.sh major "New config format, breaking changes to types CLI"
598
+ ```
599
+
600
+ ### Release prerequisites
601
+
602
+ - Run from a clean `main` checkout
603
+ - `gh` must be installed and authenticated
604
+
605
+ ### What `release.sh` validates before tagging
606
+
607
+ The script runs `npm run release:check`, which covers the main `$6_gofer_validate` style release gates:
608
+
609
+ 1. Verifies you're on `main` with a clean working tree
610
+ 2. Pulls latest and installs dependencies (`npm ci`)
611
+ 3. Typecheck (`tsc --noEmit`)
612
+ 4. Lint (`eslint`)
613
+ 5. Build (`tsc`)
614
+ 6. Test (`vitest run`)
615
+ - Focused SRP CLI evidence also runs as `npm run test:eai-cli:ci` in
616
+ GitHub Actions check `ci/eai-cli-tests`
617
+ 7. Smoke tests — `eai --version`, `eai --help`, and the shipped command groups
618
+ 8. Docs site build
619
+ 9. Release-facing docs/help generation (`llms.txt`, `llms-full.txt`, `cli-help.txt`)
620
+ 10. Registry artifact generation (`npm pack` + `generate-registry.cjs`)
621
+ 11. The `eai-cli` npm alias package builds and installs the `eai` command
622
+ 12. Static-registry fallback metadata stays aligned with the documented install flow
623
+ 13. Full e2e smoke traceability stays aligned with `eai --describe`
624
+
625
+ ### Optional live full e2e smoke
626
+
627
+ `release:check` always validates the full command/CRUD traceability table in
628
+ [`.tech-docs/full-e2e-smoke-traceability.md`](.tech-docs/full-e2e-smoke-traceability.md).
629
+ The destructive live suite is opt-in because it creates a disposable app,
630
+ publishes Object Types, provisions storage, and CRUDs PostgreSQL, DocumentDB,
631
+ Blob-backed file, and Search-indexed resources in a dedicated test tenant.
632
+
633
+ Use a dedicated test user and tenant. Do not paste the password into a chat or
634
+ commit it to the repo; store it in your shell only for the run, or in GitHub
635
+ Actions secrets.
636
+
637
+ ```bash
638
+ export EAI_RELEASE_FULL_E2E_SMOKE=1
639
+ export EAI_E2E_TEST_PROFILE=test
640
+ export EAI_E2E_TEST_USERNAME='<dedicated-test-user-email>'
641
+ export EAI_E2E_PARENT_TENANT_ID='<dedicated-test-tenant-id>'
642
+
643
+ # Authenticate the profile before the run:
644
+ eai --profile "$EAI_E2E_TEST_PROFILE" login
645
+
646
+ # Or provide a secure bootstrap command that leaves whoami working:
647
+ export EAI_E2E_AUTH_COMMAND='<secure-auth-bootstrap-command>'
648
+
649
+ npm run smoke:eai-full:live
650
+ ```
651
+
652
+ If an external bootstrap command needs a password, pass it through an
653
+ environment secret such as `EAI_E2E_TEST_PASSWORD`. The smoke runner redacts
654
+ password-like values from failures and does not print or persist the password.
655
+
656
+ ### What happens after the local checks pass
657
+
658
+ 1. `release.sh` bumps the requested semver level
659
+ 2. It updates the visible `.tech-docs/` release metadata to the new version and release message
660
+ 3. It regenerates `docs-site/static/registry/`, `docs-site/static/llms.txt`, `docs-site/static/llms-full.txt`, and `docs-site/static/cli-help.txt`
661
+ 4. It commits the release, creates an annotated `vX.Y.Z` tag, and pushes `main --follow-tags`
662
+ 5. The tag-triggered GitHub Actions `Release` workflow verifies the committed release docs/help surfaces, publishes `@enterpriseai/cli` and `eai-cli` to npmjs with trusted publishing, then creates the GitHub release and attaches the packaged tarballs
663
+ 6. The `Deploy Docs` workflow publishes the matching static registry fallback and release-doc bundle to GitHub Pages
664
+ 7. `release.sh` waits for both workflows and verifies npmjs plus the canonical `@enterpriseai/cli` static fallback
665
+
666
+ If npmjs or the static registry fallback does not converge to the new version, the script exits non-zero so the release is treated as incomplete.
667
+
668
+ The EAI CLI is also part of SRP release evidence. Repo-local CLI behavior is
669
+ owned here through `ci/eai-cli-tests`; deployed read-only CLI schema, error,
670
+ auth, and preview canaries live in `enterpriseaigroup/eai-testing-dev` under the
671
+ `eai-cli` cross-service surface. Keep prod CLI canaries read-only; preview
672
+ lifecycle checks must stay explicit and cleanup-backed.
673
+
674
+ The release path publishes the repository exactly as committed. Bundled Gofer and linked-source refreshes happen separately via `npm run sync:gofer` / `npm run sync:linked-sources` and should be committed before you cut a release. At runtime, `eai gofer refresh` still checks the public latest `eai-gofer` release and falls back to that bundled snapshot when offline.
675
+
676
+ Before making or keeping the repository public, run a public-readiness check:
677
+
678
+ ```bash
679
+ npm run release:check
680
+ git grep -n -E "SECRET|TOKEN|PASSWORD|PRIVATE KEY|CLIENT_SECRET|API_KEY|connection string|AccountKey|Bearer "
681
+ ```
682
+
683
+ GitHub secret scanning and push protection should also be enabled for the
684
+ repository so accidental credential commits are blocked or alerted before they
685
+ become a public incident.
686
+
687
+ Helpful maintainer commands:
688
+
689
+ ```bash
690
+ npm run docs:release-assets
691
+ npm run docs:release-assets:check
692
+ ```
693
+
694
+ ### Release channel policy
695
+
696
+ - **npmjs is the primary release and update channel**
697
+ - Recommended install: `npm install -g eai-cli`
698
+ - Canonical package install: `npm install -g @enterpriseai/cli`
699
+ - Static fallback: `npm install -g @enterpriseai/cli --@enterpriseai:registry=https://eai-tools.github.io/eai/registry/`
700
+ - Persistent fallback setup: `npm config set @enterpriseai:registry https://eai-tools.github.io/eai/registry/ --location=user`
701
+ - Use `eai update` to update the installed CLI and refresh safe project assets
702
+
703
+ ## Documentation
704
+
705
+ Full documentation: https://eai-tools.github.io/eai/
706
+
707
+ 93 pages covering getting started, guides, concepts, command reference, 50 industry scenarios, and examples in 7 languages.
708
+
709
+ ## Roadmap
710
+
711
+ - [ ] `eai types define` — interactive Object Type builder
712
+ - [ ] `eai dev --offline` — local mock gateway for offline development
713
+ - [ ] `eai tunnel` — Cloudflare tunnel for webhook testing
714
+ - [x] npmjs install alias (`npm install -g eai-cli`) with static registry fallback