@enterpriseai/cli 3.19.0 → 3.19.1

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 (362) hide show
  1. package/package.json +1 -1
  2. package/resources/gofer/.gofer-version +4 -357
  3. package/resources/gofer/agents-skills/eai/SKILL.md +365 -0
  4. package/resources/gofer/agents-skills/eai-update/SKILL.md +56 -0
  5. package/resources/gofer/agents-skills/gofer-documentation/SKILL.md +93 -0
  6. package/resources/gofer/bash-scripts/create-new-feature.sh +3 -1
  7. package/resources/gofer/bash-scripts/sync-implementation-status.sh +4 -3
  8. package/resources/gofer/bash-scripts/update-agent-context.sh +7 -8
  9. package/resources/gofer/bash-scripts/validate-artifact.sh +10 -6
  10. package/resources/gofer/bash-scripts/verify-object-type-routing-workspace.sh +184 -0
  11. package/resources/gofer/claude-commands/eai-update.md +46 -0
  12. package/resources/gofer/claude-commands/eai.md +355 -0
  13. package/resources/gofer/claude-skills/eai/SKILL.md +365 -0
  14. package/resources/gofer/claude-skills/eai-update/SKILL.md +56 -0
  15. package/resources/gofer/claude-skills/gofer-documentation/SKILL.md +93 -0
  16. package/resources/gofer/commands/0_gofer_start.md +440 -99
  17. package/resources/gofer/commands/0a_problem_validation.md +187 -27
  18. package/resources/gofer/commands/10_gofer_cloud.md +183 -23
  19. package/resources/gofer/commands/1_gofer_research.md +239 -30
  20. package/resources/gofer/commands/2_gofer_specify.md +239 -35
  21. package/resources/gofer/commands/3_gofer_plan.md +259 -43
  22. package/resources/gofer/commands/4_gofer_tasks.md +401 -81
  23. package/resources/gofer/commands/5_gofer_implement.md +375 -84
  24. package/resources/gofer/commands/6_gofer_validate.md +284 -53
  25. package/resources/gofer/commands/7_gofer_save.md +187 -26
  26. package/resources/gofer/commands/7a_stakeholder_comms.md +183 -23
  27. package/resources/gofer/commands/8_gofer_branding.md +183 -23
  28. package/resources/gofer/commands/9_gofer_tests.md +212 -23
  29. package/resources/gofer/commands/gofer_bootstrap_workspace.md +121 -8
  30. package/resources/gofer/commands/gofer_check_workspace.md +123 -8
  31. package/resources/gofer/commands/gofer_constitution.md +183 -23
  32. package/resources/gofer/commands/gofer_diagnose.md +183 -23
  33. package/resources/gofer/commands/gofer_eai_first_run.md +254 -25
  34. package/resources/gofer/commands/gofer_hydrate.md +183 -23
  35. package/resources/gofer/commands/gofer_personality.md +117 -6
  36. package/resources/gofer/commands/gofer_plan.md +117 -6
  37. package/resources/gofer/commands/gofer_side.md +117 -6
  38. package/resources/gofer/commands/gofer_spec_summary.md +183 -23
  39. package/resources/gofer/commands/gofer_tdd.md +183 -23
  40. package/resources/gofer/commands/gofer_vocabulary.md +185 -25
  41. package/resources/gofer/commands/gofer_zoom_out.md +183 -23
  42. package/resources/gofer/config/typesafe-learning-review.json +16 -0
  43. package/resources/gofer/config/typesafe-semantic-review.json +9 -0
  44. package/resources/gofer/copilot-instructions/gofer-cost.instructions.md +15 -6
  45. package/resources/gofer/copilot-instructions/typescript.instructions.md +1 -1
  46. package/resources/gofer/copilot-prompts/eai-update.prompt.md +58 -0
  47. package/resources/gofer/copilot-prompts/eai.prompt.md +367 -0
  48. package/resources/gofer/gemini/commands/gofer/eai-update.md +22 -0
  49. package/resources/gofer/gemini/commands/gofer/eai-update.toml +2 -0
  50. package/resources/gofer/gemini/commands/gofer/eai.md +357 -0
  51. package/resources/gofer/gemini/commands/gofer/eai.toml +2 -0
  52. package/resources/gofer/gemini/commands/gofer/manifest.json +3 -27
  53. package/resources/gofer/gemini/extension.json +4 -4
  54. package/resources/gofer/github-agents/eai.agent.md +83 -0
  55. package/resources/gofer/github-agents/gofer-business.agent.md +73 -4
  56. package/resources/gofer/github-agents/gofer-implement.agent.md +71 -2
  57. package/resources/gofer/github-agents/gofer-plan.agent.md +72 -2
  58. package/resources/gofer/github-agents/gofer-research.agent.md +72 -2
  59. package/resources/gofer/github-agents/gofer-validate.agent.md +72 -2
  60. package/resources/gofer/github-skills/eai/SKILL.md +365 -0
  61. package/resources/gofer/github-skills/eai-update/SKILL.md +56 -0
  62. package/resources/gofer/github-skills/gofer-documentation/SKILL.md +93 -0
  63. package/resources/gofer/grok-skills/eai/SKILL.md +267 -14
  64. package/resources/gofer/grok-skills/eai-update/SKILL.md +56 -0
  65. package/resources/gofer/hook-scripts/user-prompt-submit.mjs +58 -13
  66. package/resources/gofer/instruction-templates/base/agents-base.md +8 -4
  67. package/resources/gofer/instruction-templates/gofer/gofer-claude.md +7 -5
  68. package/resources/gofer/instruction-templates/gofer/gofer-copilot.md +10 -8
  69. package/resources/gofer/memory/constitution.md +9 -7
  70. package/resources/gofer/memory/gofer-model-policy.yaml +23 -1
  71. package/resources/gofer/memory/lessons.md +0 -31
  72. package/resources/gofer/node-scripts/canonical-descriptions.mjs +1 -1
  73. package/resources/gofer/node-scripts/check-version-alignment.mjs +4 -7
  74. package/resources/gofer/node-scripts/delivery-lineage-corpus.mjs +156 -0
  75. package/resources/gofer/node-scripts/generate-commands.mjs +1073 -265
  76. package/resources/gofer/node-scripts/gofer-acceptance-check.mjs +143 -0
  77. package/resources/gofer/node-scripts/gofer-agent-catalog.mjs +271 -0
  78. package/resources/gofer/node-scripts/gofer-benchmark-executor.mjs +123 -0
  79. package/resources/gofer/node-scripts/gofer-benchmark-sign.mjs +62 -0
  80. package/resources/gofer/node-scripts/gofer-benchmark-signer.mjs +89 -0
  81. package/resources/gofer/node-scripts/gofer-benchmark.mjs +76 -0
  82. package/resources/gofer/node-scripts/gofer-blocker-control.mjs +274 -0
  83. package/resources/gofer/node-scripts/gofer-claude-adapter.mjs +154 -0
  84. package/resources/gofer/node-scripts/gofer-closed-loop-audit.mjs +19 -2
  85. package/resources/gofer/node-scripts/gofer-delivery-check.mjs +121 -0
  86. package/resources/gofer/node-scripts/gofer-encrypted-key.mjs +58 -0
  87. package/resources/gofer/node-scripts/gofer-execution-metrics.mjs +477 -0
  88. package/resources/gofer/node-scripts/gofer-execution-recovery.mjs +334 -0
  89. package/resources/gofer/node-scripts/gofer-grok-adapter.mjs +184 -0
  90. package/resources/gofer/node-scripts/gofer-heldout-corpus.mjs +73 -0
  91. package/resources/gofer/node-scripts/gofer-heldout-snapshot.mjs +286 -0
  92. package/resources/gofer/node-scripts/gofer-heldout-verifier.mjs +211 -0
  93. package/resources/gofer/node-scripts/gofer-host-capability.mjs +335 -0
  94. package/resources/gofer/node-scripts/gofer-independent-reviewer.mjs +130 -0
  95. package/resources/gofer/node-scripts/gofer-live-routing.mjs +109 -0
  96. package/resources/gofer/node-scripts/gofer-local-capability-issuer.mjs +71 -0
  97. package/resources/gofer/node-scripts/gofer-local-isolation.mjs +175 -0
  98. package/resources/gofer/node-scripts/gofer-local-settings-cleanup.mjs +388 -0
  99. package/resources/gofer/node-scripts/gofer-loop-audit.mjs +54 -3
  100. package/resources/gofer/node-scripts/gofer-native-adapter.mjs +567 -0
  101. package/resources/gofer/node-scripts/gofer-native-benchmark-dispatch.mjs +145 -0
  102. package/resources/gofer/node-scripts/gofer-native-runtime.mjs +169 -0
  103. package/resources/gofer/node-scripts/gofer-pre-edit-check.mjs +204 -0
  104. package/resources/gofer/node-scripts/gofer-priority-check.mjs +214 -0
  105. package/resources/gofer/node-scripts/gofer-response-check.mjs +56 -0
  106. package/resources/gofer/node-scripts/gofer-reviewed-learning.mjs +1232 -0
  107. package/resources/gofer/node-scripts/gofer-run-verified-task.mjs +330 -0
  108. package/resources/gofer/node-scripts/gofer-runtime-ledger.mjs +289 -0
  109. package/resources/gofer/node-scripts/gofer-semantic-drift.mjs +584 -0
  110. package/resources/gofer/node-scripts/gofer-surface-update.mjs +1178 -0
  111. package/resources/gofer/node-scripts/gofer-trust-bootstrap.mjs +77 -0
  112. package/resources/gofer/node-scripts/gofer-trusted-benchmark.mjs +102 -0
  113. package/resources/gofer/node-scripts/gofer-trusted-evaluator.mjs +274 -0
  114. package/resources/gofer/node-scripts/gofer-tty-prompt.mjs +34 -0
  115. package/resources/gofer/node-scripts/gofer-typesafe-credentials.mjs +435 -0
  116. package/resources/gofer/node-scripts/gofer-ui-preview.mjs +1212 -0
  117. package/resources/gofer/node-scripts/gofer-verified-execution.mjs +484 -0
  118. package/resources/gofer/node-scripts/gofer-verifier-key-ceremony.mjs +101 -0
  119. package/resources/gofer/node-scripts/gofer-worktree-layout.mjs +32 -0
  120. package/resources/gofer/node-scripts/object-type-routing-phase-bundle.mjs +360 -0
  121. package/resources/gofer/node-scripts/package-agent-plugin.mjs +574 -82
  122. package/resources/gofer/node-scripts/parse-stage-command.mjs +1 -1
  123. package/resources/gofer/node-scripts/render-delivery-lineage.mjs +178 -0
  124. package/resources/gofer/node-scripts/sync-extension-resources.mjs +78 -2
  125. package/resources/gofer/node-scripts/validate-object-type-identifiers.mjs +767 -0
  126. package/resources/gofer/node-scripts/validate-object-type-routing-workspace.mjs +1325 -0
  127. package/resources/gofer/node-scripts/validate-v4-resource-contract.d.mts +44 -0
  128. package/resources/gofer/node-scripts/validate-v4-resource-contract.mjs +957 -0
  129. package/resources/gofer/node-scripts/workspace-bootstrap-lib.mjs +685 -116
  130. package/resources/gofer/references/agent-catalog.json +126 -0
  131. package/resources/gofer/references/blocker-mediation.md +156 -0
  132. package/resources/gofer/references/business-updates-and-goal-checks.md +109 -0
  133. package/resources/gofer/references/delivery-lineage.md +48 -0
  134. package/resources/gofer/references/mvp-capability-validation.md +102 -0
  135. package/resources/gofer/references/platform/README.md +1 -1
  136. package/resources/gofer/references/platform/eai-app-template.md +15 -13
  137. package/resources/gofer/references/platform/eai-auth-access.md +104 -0
  138. package/resources/gofer/references/platform/eai-config-driven-ui.md +5 -5
  139. package/resources/gofer/references/platform/eai-error-catalog.yaml +77 -19
  140. package/resources/gofer/references/platform/eai-repo-contract.md +61 -23
  141. package/resources/gofer/references/platform/eai-service-patterns.md +102 -105
  142. package/resources/gofer/references/platform/eai.md +44 -8
  143. package/resources/gofer/references/platform/vertical-template.md +10 -9
  144. package/resources/gofer/references/priority-outcome-protection.md +152 -0
  145. package/resources/gofer/references/verified-agent-execution.md +179 -0
  146. package/resources/gofer/schemas/gofer-learning-trace-v1.json +70 -0
  147. package/resources/gofer/specify-commands/0_gofer_start.md +440 -99
  148. package/resources/gofer/specify-commands/0a_problem_validation.md +187 -27
  149. package/resources/gofer/specify-commands/10_gofer_cloud.md +183 -23
  150. package/resources/gofer/specify-commands/1_gofer_research.md +239 -30
  151. package/resources/gofer/specify-commands/2_gofer_specify.md +239 -35
  152. package/resources/gofer/specify-commands/3_gofer_plan.md +259 -43
  153. package/resources/gofer/specify-commands/4_gofer_tasks.md +401 -81
  154. package/resources/gofer/specify-commands/5_gofer_implement.md +375 -84
  155. package/resources/gofer/specify-commands/6_gofer_validate.md +284 -53
  156. package/resources/gofer/specify-commands/7_gofer_save.md +187 -26
  157. package/resources/gofer/specify-commands/7a_stakeholder_comms.md +183 -23
  158. package/resources/gofer/specify-commands/8_gofer_branding.md +183 -23
  159. package/resources/gofer/specify-commands/9_gofer_tests.md +212 -23
  160. package/resources/gofer/specify-commands/gofer_bootstrap_workspace.md +121 -8
  161. package/resources/gofer/specify-commands/gofer_check_workspace.md +123 -8
  162. package/resources/gofer/specify-commands/gofer_constitution.md +183 -23
  163. package/resources/gofer/specify-commands/gofer_diagnose.md +183 -23
  164. package/resources/gofer/specify-commands/gofer_eai_first_run.md +254 -25
  165. package/resources/gofer/specify-commands/gofer_hydrate.md +183 -23
  166. package/resources/gofer/specify-commands/gofer_personality.md +117 -6
  167. package/resources/gofer/specify-commands/gofer_plan.md +117 -6
  168. package/resources/gofer/specify-commands/gofer_side.md +117 -6
  169. package/resources/gofer/specify-commands/gofer_spec_summary.md +183 -23
  170. package/resources/gofer/specify-commands/gofer_tdd.md +183 -23
  171. package/resources/gofer/specify-commands/gofer_vocabulary.md +185 -25
  172. package/resources/gofer/specify-commands/gofer_zoom_out.md +183 -23
  173. package/resources/gofer/specify-config/object-type-routing.json +24 -0
  174. package/resources/gofer/specify-config/typesafe-learning-review.json +16 -0
  175. package/resources/gofer/specify-config/typesafe-semantic-review.json +9 -0
  176. package/resources/gofer/system-skills/eai/SKILL.md +365 -0
  177. package/resources/gofer/system-skills/eai-update/SKILL.md +56 -0
  178. package/resources/gofer/system-skills/gofer-documentation/SKILL.md +93 -0
  179. package/resources/gofer/templates/build-map-template.md +64 -0
  180. package/resources/gofer/templates/business-scenarios-template.json +14 -0
  181. package/resources/gofer/templates/ciso-security-summary-template.md +3 -3
  182. package/resources/gofer/templates/context-bundle-template.md +4 -3
  183. package/resources/gofer/templates/contract-pack-template.md +8 -8
  184. package/resources/gofer/templates/cto-architecture-summary-template.md +3 -3
  185. package/resources/gofer/templates/delivery-lineage-template.json +8 -0
  186. package/resources/gofer/templates/eai-preflight-template.md +109 -68
  187. package/resources/gofer/templates/goal-ledger-template.json +1 -1
  188. package/resources/gofer/templates/gofer-model-policy.yaml +28 -6
  189. package/resources/gofer/templates/loop-contract-template.json +3 -1
  190. package/resources/gofer/templates/plan-template.md +8 -7
  191. package/resources/gofer/templates/priority-plan-template.json +29 -0
  192. package/resources/gofer/templates/proposal-review-template.md +6 -3
  193. package/resources/gofer/templates/release-capability-ledger-template.md +24 -0
  194. package/resources/gofer/templates/research-template.md +7 -6
  195. package/resources/gofer/templates/spec-summary-template.md +1 -1
  196. package/resources/gofer/templates/spec-template.md +45 -6
  197. package/resources/gofer/templates/tasks-template.md +12 -3
  198. package/resources/gofer/templates/ui-preview-brief-template.md +55 -5
  199. package/resources/gofer/templates/ui-review-log-template.md +21 -3
  200. package/resources/gofer/templates/ui-show-and-tell-template.md +46 -0
  201. package/resources/gofer/templates/visuals/capability-heatmap-template.md +2 -2
  202. package/resources/gofer/templates/working-backwards-prfaq-template.md +9 -8
  203. package/resources/linked-sources.json +2 -2
  204. package/resources/gofer/agents-skills/0_gofer_start/SKILL.md +0 -1287
  205. package/resources/gofer/agents-skills/0a_problem_validation/SKILL.md +0 -429
  206. package/resources/gofer/agents-skills/10_gofer_cloud/SKILL.md +0 -635
  207. package/resources/gofer/agents-skills/1_gofer_research/SKILL.md +0 -1159
  208. package/resources/gofer/agents-skills/2_gofer_specify/SKILL.md +0 -860
  209. package/resources/gofer/agents-skills/3_gofer_plan/SKILL.md +0 -899
  210. package/resources/gofer/agents-skills/4_gofer_tasks/SKILL.md +0 -760
  211. package/resources/gofer/agents-skills/5_gofer_implement/SKILL.md +0 -944
  212. package/resources/gofer/agents-skills/6_gofer_validate/SKILL.md +0 -2302
  213. package/resources/gofer/agents-skills/7_gofer_save/SKILL.md +0 -423
  214. package/resources/gofer/agents-skills/7a_stakeholder_comms/SKILL.md +0 -508
  215. package/resources/gofer/agents-skills/8_gofer_branding/SKILL.md +0 -315
  216. package/resources/gofer/agents-skills/9_gofer_tests/SKILL.md +0 -558
  217. package/resources/gofer/agents-skills/gofer_bootstrap_workspace/SKILL.md +0 -148
  218. package/resources/gofer/agents-skills/gofer_check_workspace/SKILL.md +0 -119
  219. package/resources/gofer/agents-skills/gofer_constitution/SKILL.md +0 -612
  220. package/resources/gofer/agents-skills/gofer_diagnose/SKILL.md +0 -114
  221. package/resources/gofer/agents-skills/gofer_eai_first_run/SKILL.md +0 -397
  222. package/resources/gofer/agents-skills/gofer_hydrate/SKILL.md +0 -561
  223. package/resources/gofer/agents-skills/gofer_personality/SKILL.md +0 -44
  224. package/resources/gofer/agents-skills/gofer_plan/SKILL.md +0 -40
  225. package/resources/gofer/agents-skills/gofer_side/SKILL.md +0 -45
  226. package/resources/gofer/agents-skills/gofer_spec_summary/SKILL.md +0 -112
  227. package/resources/gofer/agents-skills/gofer_tdd/SKILL.md +0 -112
  228. package/resources/gofer/agents-skills/gofer_vocabulary/SKILL.md +0 -112
  229. package/resources/gofer/agents-skills/gofer_zoom_out/SKILL.md +0 -112
  230. package/resources/gofer/claude-commands/0_gofer_start.md +0 -1282
  231. package/resources/gofer/claude-commands/0a_problem_validation.md +0 -424
  232. package/resources/gofer/claude-commands/10_gofer_cloud.md +0 -630
  233. package/resources/gofer/claude-commands/1_gofer_research.md +0 -1154
  234. package/resources/gofer/claude-commands/2_gofer_specify.md +0 -855
  235. package/resources/gofer/claude-commands/3_gofer_plan.md +0 -894
  236. package/resources/gofer/claude-commands/4_gofer_tasks.md +0 -755
  237. package/resources/gofer/claude-commands/5_gofer_implement.md +0 -939
  238. package/resources/gofer/claude-commands/6_gofer_validate.md +0 -2297
  239. package/resources/gofer/claude-commands/7_gofer_save.md +0 -418
  240. package/resources/gofer/claude-commands/7a_stakeholder_comms.md +0 -503
  241. package/resources/gofer/claude-commands/8_gofer_branding.md +0 -310
  242. package/resources/gofer/claude-commands/9_gofer_tests.md +0 -553
  243. package/resources/gofer/claude-commands/gofer_bootstrap_workspace.md +0 -143
  244. package/resources/gofer/claude-commands/gofer_check_workspace.md +0 -114
  245. package/resources/gofer/claude-commands/gofer_constitution.md +0 -607
  246. package/resources/gofer/claude-commands/gofer_diagnose.md +0 -109
  247. package/resources/gofer/claude-commands/gofer_eai_first_run.md +0 -392
  248. package/resources/gofer/claude-commands/gofer_hydrate.md +0 -556
  249. package/resources/gofer/claude-commands/gofer_personality.md +0 -39
  250. package/resources/gofer/claude-commands/gofer_plan.md +0 -35
  251. package/resources/gofer/claude-commands/gofer_side.md +0 -40
  252. package/resources/gofer/claude-commands/gofer_spec_summary.md +0 -107
  253. package/resources/gofer/claude-commands/gofer_tdd.md +0 -107
  254. package/resources/gofer/claude-commands/gofer_vocabulary.md +0 -107
  255. package/resources/gofer/claude-commands/gofer_zoom_out.md +0 -107
  256. package/resources/gofer/claude-skills/eai-gofer/SKILL.md +0 -56
  257. package/resources/gofer/copilot-prompts/0_gofer_start.prompt.md +0 -1308
  258. package/resources/gofer/copilot-prompts/0a_problem_validation.prompt.md +0 -429
  259. package/resources/gofer/copilot-prompts/10_gofer_cloud.prompt.md +0 -644
  260. package/resources/gofer/copilot-prompts/1_gofer_research.prompt.md +0 -1177
  261. package/resources/gofer/copilot-prompts/2_gofer_specify.prompt.md +0 -878
  262. package/resources/gofer/copilot-prompts/3_gofer_plan.prompt.md +0 -917
  263. package/resources/gofer/copilot-prompts/4_gofer_tasks.prompt.md +0 -778
  264. package/resources/gofer/copilot-prompts/5_gofer_implement.prompt.md +0 -962
  265. package/resources/gofer/copilot-prompts/6_gofer_validate.prompt.md +0 -2310
  266. package/resources/gofer/copilot-prompts/7_gofer_save.prompt.md +0 -433
  267. package/resources/gofer/copilot-prompts/7a_stakeholder_comms.prompt.md +0 -516
  268. package/resources/gofer/copilot-prompts/8_gofer_branding.prompt.md +0 -323
  269. package/resources/gofer/copilot-prompts/9_gofer_tests.prompt.md +0 -566
  270. package/resources/gofer/copilot-prompts/gofer_bootstrap_workspace.prompt.md +0 -161
  271. package/resources/gofer/copilot-prompts/gofer_check_workspace.prompt.md +0 -132
  272. package/resources/gofer/copilot-prompts/gofer_constitution.prompt.md +0 -621
  273. package/resources/gofer/copilot-prompts/gofer_diagnose.prompt.md +0 -127
  274. package/resources/gofer/copilot-prompts/gofer_eai_first_run.prompt.md +0 -410
  275. package/resources/gofer/copilot-prompts/gofer_hydrate.prompt.md +0 -571
  276. package/resources/gofer/copilot-prompts/gofer_personality.prompt.md +0 -57
  277. package/resources/gofer/copilot-prompts/gofer_plan.prompt.md +0 -53
  278. package/resources/gofer/copilot-prompts/gofer_side.prompt.md +0 -58
  279. package/resources/gofer/copilot-prompts/gofer_spec_summary.prompt.md +0 -125
  280. package/resources/gofer/copilot-prompts/gofer_tdd.prompt.md +0 -125
  281. package/resources/gofer/copilot-prompts/gofer_vocabulary.prompt.md +0 -125
  282. package/resources/gofer/copilot-prompts/gofer_zoom_out.prompt.md +0 -125
  283. package/resources/gofer/gemini/commands/gofer/0_gofer_start.md +0 -1282
  284. package/resources/gofer/gemini/commands/gofer/0_gofer_start.toml +0 -2
  285. package/resources/gofer/gemini/commands/gofer/0a_problem_validation.md +0 -424
  286. package/resources/gofer/gemini/commands/gofer/0a_problem_validation.toml +0 -2
  287. package/resources/gofer/gemini/commands/gofer/10_gofer_cloud.md +0 -630
  288. package/resources/gofer/gemini/commands/gofer/10_gofer_cloud.toml +0 -2
  289. package/resources/gofer/gemini/commands/gofer/1_gofer_research.md +0 -1154
  290. package/resources/gofer/gemini/commands/gofer/1_gofer_research.toml +0 -2
  291. package/resources/gofer/gemini/commands/gofer/2_gofer_specify.md +0 -855
  292. package/resources/gofer/gemini/commands/gofer/2_gofer_specify.toml +0 -2
  293. package/resources/gofer/gemini/commands/gofer/3_gofer_plan.md +0 -894
  294. package/resources/gofer/gemini/commands/gofer/3_gofer_plan.toml +0 -2
  295. package/resources/gofer/gemini/commands/gofer/4_gofer_tasks.md +0 -755
  296. package/resources/gofer/gemini/commands/gofer/4_gofer_tasks.toml +0 -2
  297. package/resources/gofer/gemini/commands/gofer/5_gofer_implement.md +0 -939
  298. package/resources/gofer/gemini/commands/gofer/5_gofer_implement.toml +0 -2
  299. package/resources/gofer/gemini/commands/gofer/6_gofer_validate.md +0 -2297
  300. package/resources/gofer/gemini/commands/gofer/6_gofer_validate.toml +0 -2
  301. package/resources/gofer/gemini/commands/gofer/7_gofer_save.md +0 -418
  302. package/resources/gofer/gemini/commands/gofer/7_gofer_save.toml +0 -2
  303. package/resources/gofer/gemini/commands/gofer/7a_stakeholder_comms.md +0 -503
  304. package/resources/gofer/gemini/commands/gofer/7a_stakeholder_comms.toml +0 -2
  305. package/resources/gofer/gemini/commands/gofer/8_gofer_branding.md +0 -310
  306. package/resources/gofer/gemini/commands/gofer/8_gofer_branding.toml +0 -2
  307. package/resources/gofer/gemini/commands/gofer/9_gofer_tests.md +0 -553
  308. package/resources/gofer/gemini/commands/gofer/9_gofer_tests.toml +0 -2
  309. package/resources/gofer/gemini/commands/gofer/gofer_bootstrap_workspace.md +0 -143
  310. package/resources/gofer/gemini/commands/gofer/gofer_bootstrap_workspace.toml +0 -2
  311. package/resources/gofer/gemini/commands/gofer/gofer_check_workspace.md +0 -114
  312. package/resources/gofer/gemini/commands/gofer/gofer_check_workspace.toml +0 -2
  313. package/resources/gofer/gemini/commands/gofer/gofer_constitution.md +0 -607
  314. package/resources/gofer/gemini/commands/gofer/gofer_constitution.toml +0 -2
  315. package/resources/gofer/gemini/commands/gofer/gofer_diagnose.md +0 -109
  316. package/resources/gofer/gemini/commands/gofer/gofer_diagnose.toml +0 -2
  317. package/resources/gofer/gemini/commands/gofer/gofer_eai_first_run.md +0 -392
  318. package/resources/gofer/gemini/commands/gofer/gofer_eai_first_run.toml +0 -2
  319. package/resources/gofer/gemini/commands/gofer/gofer_hydrate.md +0 -556
  320. package/resources/gofer/gemini/commands/gofer/gofer_hydrate.toml +0 -2
  321. package/resources/gofer/gemini/commands/gofer/gofer_personality.md +0 -39
  322. package/resources/gofer/gemini/commands/gofer/gofer_personality.toml +0 -2
  323. package/resources/gofer/gemini/commands/gofer/gofer_plan.md +0 -35
  324. package/resources/gofer/gemini/commands/gofer/gofer_plan.toml +0 -2
  325. package/resources/gofer/gemini/commands/gofer/gofer_side.md +0 -40
  326. package/resources/gofer/gemini/commands/gofer/gofer_side.toml +0 -2
  327. package/resources/gofer/gemini/commands/gofer/gofer_spec_summary.md +0 -107
  328. package/resources/gofer/gemini/commands/gofer/gofer_spec_summary.toml +0 -2
  329. package/resources/gofer/gemini/commands/gofer/gofer_tdd.md +0 -107
  330. package/resources/gofer/gemini/commands/gofer/gofer_tdd.toml +0 -2
  331. package/resources/gofer/gemini/commands/gofer/gofer_vocabulary.md +0 -107
  332. package/resources/gofer/gemini/commands/gofer/gofer_vocabulary.toml +0 -2
  333. package/resources/gofer/gemini/commands/gofer/gofer_zoom_out.md +0 -107
  334. package/resources/gofer/gemini/commands/gofer/gofer_zoom_out.toml +0 -2
  335. package/resources/gofer/github-skills/eai-gofer/SKILL.md +0 -56
  336. package/resources/gofer/system-skills/0_gofer_start/SKILL.md +0 -1287
  337. package/resources/gofer/system-skills/0a_problem_validation/SKILL.md +0 -429
  338. package/resources/gofer/system-skills/10_gofer_cloud/SKILL.md +0 -635
  339. package/resources/gofer/system-skills/1_gofer_research/SKILL.md +0 -1159
  340. package/resources/gofer/system-skills/2_gofer_specify/SKILL.md +0 -860
  341. package/resources/gofer/system-skills/3_gofer_plan/SKILL.md +0 -899
  342. package/resources/gofer/system-skills/4_gofer_tasks/SKILL.md +0 -760
  343. package/resources/gofer/system-skills/5_gofer_implement/SKILL.md +0 -944
  344. package/resources/gofer/system-skills/6_gofer_validate/SKILL.md +0 -2302
  345. package/resources/gofer/system-skills/7_gofer_save/SKILL.md +0 -423
  346. package/resources/gofer/system-skills/7a_stakeholder_comms/SKILL.md +0 -508
  347. package/resources/gofer/system-skills/8_gofer_branding/SKILL.md +0 -315
  348. package/resources/gofer/system-skills/9_gofer_tests/SKILL.md +0 -558
  349. package/resources/gofer/system-skills/gofer_bootstrap_workspace/SKILL.md +0 -148
  350. package/resources/gofer/system-skills/gofer_check_workspace/SKILL.md +0 -119
  351. package/resources/gofer/system-skills/gofer_constitution/SKILL.md +0 -612
  352. package/resources/gofer/system-skills/gofer_diagnose/SKILL.md +0 -114
  353. package/resources/gofer/system-skills/gofer_eai_first_run/SKILL.md +0 -397
  354. package/resources/gofer/system-skills/gofer_hydrate/SKILL.md +0 -561
  355. package/resources/gofer/system-skills/gofer_personality/SKILL.md +0 -44
  356. package/resources/gofer/system-skills/gofer_plan/SKILL.md +0 -40
  357. package/resources/gofer/system-skills/gofer_side/SKILL.md +0 -45
  358. package/resources/gofer/system-skills/gofer_spec_summary/SKILL.md +0 -112
  359. package/resources/gofer/system-skills/gofer_tdd/SKILL.md +0 -112
  360. package/resources/gofer/system-skills/gofer_vocabulary/SKILL.md +0 -112
  361. package/resources/gofer/system-skills/gofer_zoom_out/SKILL.md +0 -112
  362. package/resources/gofer/templates/ui-approval-template.md +0 -32
@@ -138,7 +138,7 @@ function validateFrontmatter(fm, filePath) {
138
138
 
139
139
  const validSurfaces = new Set([
140
140
  'claude', 'claude-mirror', 'copilot', 'vscode', 'codex',
141
- 'gemini', 'github-prompts', 'agents-skills', 'system-skills',
141
+ 'gemini', 'github-prompts', 'agents-skills', 'system-skills', 'grok-skills',
142
142
  ]);
143
143
  for (const s of fm.surfaces) {
144
144
  if (!validSurfaces.has(s)) {
@@ -0,0 +1,178 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { promises as fs } from 'node:fs';
4
+ import path from 'node:path';
5
+ import { fileURLToPath } from 'node:url';
6
+ import { augmentCustomerLineageCorpus } from './delivery-lineage-corpus.mjs';
7
+
8
+ const SCHEMA_VERSION = 'eai.delivery_lineage.v1';
9
+ const STAGES = ['intent', 'requirements', 'architecture', 'delivery', 'validation', 'outcome'];
10
+ const STATUSES = ['current', 'suspect', 'anchor-lost', 'broken', 'superseded'];
11
+ const EDGE_STATUS_STYLES = {
12
+ current: 'stroke:#1565c0,stroke-width:2px',
13
+ suspect: 'stroke:#f59e0b,stroke-width:3px',
14
+ 'anchor-lost': 'stroke:#e53935,stroke-width:3px',
15
+ broken: 'stroke:#c62828,stroke-width:3px',
16
+ superseded: 'stroke:#8b949e,stroke-width:2px,stroke-dasharray:7 5',
17
+ };
18
+ const FORBIDDEN_INTERNAL_TERMS = [
19
+ 'AdminAPI',
20
+ 'ResourceAPI',
21
+ 'Configurator',
22
+ 'Authz',
23
+ 'AzureAPI',
24
+ 'AICore',
25
+ 'GeoService',
26
+ 'Infra2025',
27
+ 'eai-testing-dev',
28
+ 'tech-docs',
29
+ ];
30
+
31
+ function parseArgs(argv) {
32
+ const args = { input: '', output: '' };
33
+ for (let index = 0; index < argv.length; index += 1) {
34
+ if (argv[index] === '--input' && argv[index + 1]) args.input = argv[++index];
35
+ else if (argv[index] === '--output' && argv[index + 1]) args.output = argv[++index];
36
+ else if (argv[index] === '--help' || argv[index] === '-h') args.help = true;
37
+ }
38
+ return args;
39
+ }
40
+
41
+ function usage() {
42
+ return 'Usage: node render-delivery-lineage.mjs --input <delivery-lineage.json> [--output <delivery-lineage.md>]';
43
+ }
44
+
45
+ function cleanLabel(value) {
46
+ return String(value ?? '')
47
+ .replace(/[<>]/g, '')
48
+ .replace(/"/g, "'")
49
+ .replace(/[\r\n]+/g, ' ')
50
+ .trim();
51
+ }
52
+
53
+ function titleCase(value) {
54
+ return value
55
+ .split('-')
56
+ .map((part) => part.charAt(0).toUpperCase() + part.slice(1))
57
+ .join(' ');
58
+ }
59
+
60
+ export function validateCustomerLineage(lineage) {
61
+ const errors = [];
62
+ if (lineage?.schemaVersion !== SCHEMA_VERSION) errors.push(`schemaVersion must be ${SCHEMA_VERSION}`);
63
+ if (lineage?.plane !== 'customer') errors.push('plane must be customer');
64
+ if (!String(lineage?.featureId ?? '').trim()) errors.push('featureId is required');
65
+ if (!Array.isArray(lineage?.nodes)) errors.push('nodes must be an array');
66
+ if (!Array.isArray(lineage?.edges)) errors.push('edges must be an array');
67
+ if (errors.length > 0) return errors;
68
+
69
+ const nodeIds = new Set();
70
+ for (const node of lineage.nodes) {
71
+ if (!node?.id || nodeIds.has(node.id)) errors.push(`node id is missing or duplicated: ${node?.id ?? '<empty>'}`);
72
+ nodeIds.add(node?.id);
73
+ if (!STAGES.includes(node?.stage)) errors.push(`node ${node?.id} has an invalid stage`);
74
+ if (!STATUSES.includes(node?.status)) errors.push(`node ${node?.id} has an invalid status`);
75
+ if (!['customer', 'public-contract'].includes(node?.visibility)) {
76
+ errors.push(`node ${node?.id} crosses the customer trust boundary`);
77
+ }
78
+ }
79
+ const edgeIds = new Set();
80
+ for (const edge of lineage.edges) {
81
+ if (!edge?.id || edgeIds.has(edge.id)) errors.push(`edge id is missing or duplicated: ${edge?.id ?? '<empty>'}`);
82
+ edgeIds.add(edge?.id);
83
+ if (!nodeIds.has(edge?.source) || !nodeIds.has(edge?.target)) errors.push(`edge ${edge?.id} references a missing node`);
84
+ if (!STATUSES.includes(edge?.status)) errors.push(`edge ${edge?.id} has an invalid status`);
85
+ if (!['customer', 'public-contract'].includes(edge?.visibility)) {
86
+ errors.push(`edge ${edge?.id} crosses the customer trust boundary`);
87
+ }
88
+ }
89
+
90
+ const serialized = JSON.stringify(lineage).toLowerCase();
91
+ for (const term of FORBIDDEN_INTERNAL_TERMS) {
92
+ if (serialized.includes(term.toLowerCase())) errors.push(`customer lineage contains forbidden internal term: ${term}`);
93
+ }
94
+ return errors;
95
+ }
96
+
97
+ export function renderCustomerLineageMarkdown(lineage, inputName = 'delivery-lineage.json') {
98
+ const errors = validateCustomerLineage(lineage);
99
+ if (errors.length > 0) throw new Error(`Cannot render customer lineage:\n- ${errors.join('\n- ')}`);
100
+
101
+ const nodeNames = new Map(lineage.nodes.map((node, index) => [node.id, `n${index}`]));
102
+ const finalDecision = lineage.nodes.reduce((selected, node) => {
103
+ if (node.kind !== 'decision' || node.decisionOutcome !== 'selected' || node.status !== 'current') return selected;
104
+ if (!selected || STAGES.indexOf(node.stage) >= STAGES.indexOf(selected.stage)) return node;
105
+ return selected;
106
+ }, undefined);
107
+ const lines = [
108
+ '---',
109
+ `feature: ${JSON.stringify(lineage.featureId)}`,
110
+ `source: ${JSON.stringify(path.basename(inputName))}`,
111
+ `schema: ${SCHEMA_VERSION}`,
112
+ 'plane: customer',
113
+ '---',
114
+ '',
115
+ `# Delivery Lineage: ${cleanLabel(lineage.featureId)}`,
116
+ '',
117
+ '> Customer-safe graph. EAI dependencies stop at published PublicAPI capabilities.',
118
+ '',
119
+ '```mermaid',
120
+ 'flowchart LR',
121
+ ];
122
+
123
+ for (const stage of STAGES) {
124
+ const stageNodes = lineage.nodes.filter((node) => node.stage === stage);
125
+ if (stageNodes.length === 0) continue;
126
+ lines.push(` subgraph stage_${stage}["${titleCase(stage)}"]`, ' direction TB');
127
+ for (const node of stageNodes) {
128
+ const className = node.id === finalDecision?.id ? 'final_selected' : node.decisionOutcome === 'rejected' ? 'rejected_decision' : node.status.replace('-', '_');
129
+ const outcomeLabel = node.id === finalDecision?.id ? '<br/>FINAL SELECTED DECISION' : '';
130
+ lines.push(` ${nodeNames.get(node.id)}["${cleanLabel(node.label)}<br/>${titleCase(node.kind)}${outcomeLabel}"]:::${className}`);
131
+ }
132
+ lines.push(' end');
133
+ }
134
+
135
+ const edgeStyles = [];
136
+ for (const [index, edge] of lineage.edges.entries()) {
137
+ const statusLabel = edge.status === 'current' ? '' : ` · ${titleCase(edge.status)}`;
138
+ lines.push(` ${nodeNames.get(edge.source)} -->|"${titleCase(cleanLabel(edge.relation))}${statusLabel}"| ${nodeNames.get(edge.target)}`);
139
+ if (EDGE_STATUS_STYLES[edge.status]) {
140
+ edgeStyles.push(` linkStyle ${index} ${EDGE_STATUS_STYLES[edge.status]}`);
141
+ }
142
+ }
143
+ lines.push(...edgeStyles);
144
+ lines.push(
145
+ ' classDef current fill:#e8f5e9,stroke:#2e7d32,color:#102a13',
146
+ ' classDef suspect fill:#fff4ce,stroke:#f59e0b,color:#3d2800',
147
+ ' classDef anchor_lost fill:#ffebee,stroke:#e53935,color:#3f1010',
148
+ ' classDef broken fill:#ffcdd2,stroke:#c62828,color:#3f1010',
149
+ ' classDef superseded fill:#eceff1,stroke:#8b949e,color:#30363d',
150
+ ' classDef final_selected fill:#e3f2fd,stroke:#1565c0,stroke-width:4px,color:#0d2440',
151
+ ' classDef rejected_decision fill:#eceff1,stroke:#8b949e,stroke-dasharray:5 4,color:#30363d',
152
+ '```',
153
+ '',
154
+ `Generated from \`${path.basename(inputName)}\`. Open **Gofer: Show Delivery Lineage** for the interactive viewer.`,
155
+ ''
156
+ );
157
+ return lines.join('\n');
158
+ }
159
+
160
+ export async function main(argv = process.argv.slice(2)) {
161
+ const args = parseArgs(argv);
162
+ if (args.help) {
163
+ console.log(usage());
164
+ return;
165
+ }
166
+ if (!args.input) throw new Error(usage());
167
+ const inputPath = path.resolve(args.input);
168
+ const outputPath = path.resolve(args.output || path.join(path.dirname(inputPath), 'delivery-lineage.md'));
169
+ const lineage = await augmentCustomerLineageCorpus(
170
+ JSON.parse(await fs.readFile(inputPath, 'utf8')),
171
+ inputPath
172
+ );
173
+ await fs.writeFile(outputPath, renderCustomerLineageMarkdown(lineage, inputPath), 'utf8');
174
+ console.log(outputPath);
175
+ }
176
+
177
+ const isDirectRun = process.argv[1] && path.resolve(process.argv[1]) === fileURLToPath(import.meta.url);
178
+ if (isDirectRun) main().catch((error) => { console.error(error instanceof Error ? error.message : String(error)); process.exitCode = 1; });
@@ -18,8 +18,12 @@ const SYNC_PAIRS = [
18
18
  ['.github/instructions', 'extension/resources/copilot-instructions'],
19
19
  ['.github/skills', 'extension/resources/github-skills'],
20
20
  ['.gemini', 'extension/resources/gemini'],
21
+ ['.grok/skills', 'extension/resources/grok-skills'],
21
22
  ['.specify/commands', 'extension/resources/specify-commands'],
23
+ ['.specify/config', 'extension/resources/specify-config'],
24
+ ['.specify/contracts', 'extension/resources/contracts'],
22
25
  ['.specify/references', 'extension/resources/references'],
26
+ ['.specify/schemas', 'extension/resources/schemas'],
23
27
  ['.specify/scripts/bash', 'extension/resources/bash-scripts'],
24
28
  ['.specify/scripts/powershell', 'extension/resources/powershell-scripts'],
25
29
  ['.specify/scripts/node', 'extension/resources/node-scripts'],
@@ -43,6 +47,49 @@ export async function pathExists(targetPath) {
43
47
  }
44
48
  }
45
49
 
50
+ async function filesMatch(sourcePath, targetPath) {
51
+ try {
52
+ const [source, target] = await Promise.all([fs.readFile(sourcePath), fs.readFile(targetPath)]);
53
+ if (source.equals(target)) return true;
54
+ if (path.basename(sourcePath) === 'object-type-routing-v1.json') return false;
55
+ if (path.extname(sourcePath) !== '.json') return false;
56
+ return JSON.stringify(JSON.parse(source.toString('utf8'))) === JSON.stringify(JSON.parse(target.toString('utf8')));
57
+ } catch (error) {
58
+ if (isNodeErrorWithCode(error) && error.code === 'ENOENT') return false;
59
+ throw error;
60
+ }
61
+ }
62
+
63
+ async function findSyncDrift(sourcePath, targetPath, relativePath = '') {
64
+ const drift = [];
65
+ const sourceExists = await pathExists(sourcePath);
66
+ const targetExists = await pathExists(targetPath);
67
+ if (!sourceExists || !targetExists) {
68
+ drift.push(relativePath || '.');
69
+ return drift;
70
+ }
71
+ const [sourceEntries, targetEntries] = await Promise.all([
72
+ fs.readdir(sourcePath, { withFileTypes: true }),
73
+ fs.readdir(targetPath, { withFileTypes: true }),
74
+ ]);
75
+ const names = new Set([...sourceEntries, ...targetEntries].map((entry) => entry.name));
76
+ for (const name of [...names].sort()) {
77
+ const sourceEntry = sourceEntries.find((entry) => entry.name === name);
78
+ const targetEntry = targetEntries.find((entry) => entry.name === name);
79
+ const nestedRelativePath = path.join(relativePath, name);
80
+ if (!sourceEntry || !targetEntry || sourceEntry.isDirectory() !== targetEntry.isDirectory()) {
81
+ drift.push(nestedRelativePath);
82
+ } else if (sourceEntry.isDirectory()) {
83
+ drift.push(
84
+ ...(await findSyncDrift(path.join(sourcePath, name), path.join(targetPath, name), nestedRelativePath))
85
+ );
86
+ } else if (!(await filesMatch(path.join(sourcePath, name), path.join(targetPath, name)))) {
87
+ drift.push(nestedRelativePath);
88
+ }
89
+ }
90
+ return drift;
91
+ }
92
+
46
93
  async function copyFileWithMode(sourcePath, targetPath) {
47
94
  await fs.mkdir(path.dirname(targetPath), { recursive: true });
48
95
  await fs.copyFile(sourcePath, targetPath);
@@ -85,7 +132,32 @@ async function syncDirectory(sourcePath, targetPath) {
85
132
  }
86
133
  }
87
134
 
88
- export async function main() {
135
+ export async function check() {
136
+ const drift = [];
137
+ const codexFragmentPath = path.join(REPO_ROOT, '.specify', 'outputs', 'codex-config-fragment.toml');
138
+ const codexConfigPath = path.join(REPO_ROOT, 'codex-config.toml');
139
+ if (!(await filesMatch(codexFragmentPath, codexConfigPath))) drift.push('codex-config.toml');
140
+
141
+ for (const [sourceRelativePath, targetRelativePath] of SYNC_PAIRS) {
142
+ const differences = await findSyncDrift(
143
+ path.join(REPO_ROOT, sourceRelativePath),
144
+ path.join(REPO_ROOT, targetRelativePath)
145
+ );
146
+ drift.push(...differences.map((difference) => `${targetRelativePath}/${difference}`));
147
+ }
148
+ return drift.sort();
149
+ }
150
+
151
+ export async function main({ checkOnly = false } = {}) {
152
+ if (checkOnly) {
153
+ const drift = await check();
154
+ if (drift.length > 0) {
155
+ console.error(`extension/resources/ is out of sync:\n${drift.map((item) => `- ${item}`).join('\n')}`);
156
+ return false;
157
+ }
158
+ console.log('✓ extension/resources/ is in sync with canonical sources');
159
+ return true;
160
+ }
89
161
  const codexFragmentPath = path.join(REPO_ROOT, '.specify', 'outputs', 'codex-config-fragment.toml');
90
162
  const codexConfigPath = path.join(REPO_ROOT, 'codex-config.toml');
91
163
  await copyFileWithMode(codexFragmentPath, codexConfigPath);
@@ -100,10 +172,14 @@ export async function main() {
100
172
  }
101
173
 
102
174
  console.log('✓ extension/resources/ is in sync with canonical sources');
175
+ return true;
103
176
  }
104
177
 
105
178
  if (IS_DIRECT_RUN) {
106
- main().catch((error) => {
179
+ const checkOnly = process.argv.slice(2).includes('--check');
180
+ main({ checkOnly }).then((valid) => {
181
+ if (!valid) process.exitCode = 1;
182
+ }).catch((error) => {
107
183
  console.error(error instanceof Error ? error.message : String(error));
108
184
  process.exit(1);
109
185
  });