@enterpriseai/cli 3.19.0 → 3.19.2

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 (364) hide show
  1. package/package.json +3 -3
  2. package/resources/deploy/eai-app-template/producer-pin.json +5 -5
  3. package/resources/deploy/eai-app-template/tests/source-unknown-deployment-evidence.test.mjs +2141 -1
  4. package/resources/gofer/.gofer-version +4 -357
  5. package/resources/gofer/agents-skills/eai/SKILL.md +365 -0
  6. package/resources/gofer/agents-skills/eai-update/SKILL.md +56 -0
  7. package/resources/gofer/agents-skills/gofer-documentation/SKILL.md +93 -0
  8. package/resources/gofer/bash-scripts/create-new-feature.sh +3 -1
  9. package/resources/gofer/bash-scripts/sync-implementation-status.sh +4 -3
  10. package/resources/gofer/bash-scripts/update-agent-context.sh +7 -8
  11. package/resources/gofer/bash-scripts/validate-artifact.sh +10 -6
  12. package/resources/gofer/bash-scripts/verify-object-type-routing-workspace.sh +184 -0
  13. package/resources/gofer/claude-commands/eai-update.md +46 -0
  14. package/resources/gofer/claude-commands/eai.md +355 -0
  15. package/resources/gofer/claude-skills/eai/SKILL.md +365 -0
  16. package/resources/gofer/claude-skills/eai-update/SKILL.md +56 -0
  17. package/resources/gofer/claude-skills/gofer-documentation/SKILL.md +93 -0
  18. package/resources/gofer/commands/0_gofer_start.md +440 -99
  19. package/resources/gofer/commands/0a_problem_validation.md +187 -27
  20. package/resources/gofer/commands/10_gofer_cloud.md +183 -23
  21. package/resources/gofer/commands/1_gofer_research.md +239 -30
  22. package/resources/gofer/commands/2_gofer_specify.md +239 -35
  23. package/resources/gofer/commands/3_gofer_plan.md +259 -43
  24. package/resources/gofer/commands/4_gofer_tasks.md +401 -81
  25. package/resources/gofer/commands/5_gofer_implement.md +375 -84
  26. package/resources/gofer/commands/6_gofer_validate.md +284 -53
  27. package/resources/gofer/commands/7_gofer_save.md +187 -26
  28. package/resources/gofer/commands/7a_stakeholder_comms.md +183 -23
  29. package/resources/gofer/commands/8_gofer_branding.md +183 -23
  30. package/resources/gofer/commands/9_gofer_tests.md +212 -23
  31. package/resources/gofer/commands/gofer_bootstrap_workspace.md +121 -8
  32. package/resources/gofer/commands/gofer_check_workspace.md +123 -8
  33. package/resources/gofer/commands/gofer_constitution.md +183 -23
  34. package/resources/gofer/commands/gofer_diagnose.md +183 -23
  35. package/resources/gofer/commands/gofer_eai_first_run.md +254 -25
  36. package/resources/gofer/commands/gofer_hydrate.md +183 -23
  37. package/resources/gofer/commands/gofer_personality.md +117 -6
  38. package/resources/gofer/commands/gofer_plan.md +117 -6
  39. package/resources/gofer/commands/gofer_side.md +117 -6
  40. package/resources/gofer/commands/gofer_spec_summary.md +183 -23
  41. package/resources/gofer/commands/gofer_tdd.md +183 -23
  42. package/resources/gofer/commands/gofer_vocabulary.md +185 -25
  43. package/resources/gofer/commands/gofer_zoom_out.md +183 -23
  44. package/resources/gofer/config/typesafe-learning-review.json +16 -0
  45. package/resources/gofer/config/typesafe-semantic-review.json +9 -0
  46. package/resources/gofer/copilot-instructions/gofer-cost.instructions.md +15 -6
  47. package/resources/gofer/copilot-instructions/typescript.instructions.md +1 -1
  48. package/resources/gofer/copilot-prompts/eai-update.prompt.md +58 -0
  49. package/resources/gofer/copilot-prompts/eai.prompt.md +367 -0
  50. package/resources/gofer/gemini/commands/gofer/eai-update.md +22 -0
  51. package/resources/gofer/gemini/commands/gofer/eai-update.toml +2 -0
  52. package/resources/gofer/gemini/commands/gofer/eai.md +357 -0
  53. package/resources/gofer/gemini/commands/gofer/eai.toml +2 -0
  54. package/resources/gofer/gemini/commands/gofer/manifest.json +3 -27
  55. package/resources/gofer/gemini/extension.json +4 -4
  56. package/resources/gofer/github-agents/eai.agent.md +83 -0
  57. package/resources/gofer/github-agents/gofer-business.agent.md +73 -4
  58. package/resources/gofer/github-agents/gofer-implement.agent.md +71 -2
  59. package/resources/gofer/github-agents/gofer-plan.agent.md +72 -2
  60. package/resources/gofer/github-agents/gofer-research.agent.md +72 -2
  61. package/resources/gofer/github-agents/gofer-validate.agent.md +72 -2
  62. package/resources/gofer/github-skills/eai/SKILL.md +365 -0
  63. package/resources/gofer/github-skills/eai-update/SKILL.md +56 -0
  64. package/resources/gofer/github-skills/gofer-documentation/SKILL.md +93 -0
  65. package/resources/gofer/grok-skills/eai/SKILL.md +267 -14
  66. package/resources/gofer/grok-skills/eai-update/SKILL.md +56 -0
  67. package/resources/gofer/hook-scripts/user-prompt-submit.mjs +58 -13
  68. package/resources/gofer/instruction-templates/base/agents-base.md +8 -4
  69. package/resources/gofer/instruction-templates/gofer/gofer-claude.md +7 -5
  70. package/resources/gofer/instruction-templates/gofer/gofer-copilot.md +10 -8
  71. package/resources/gofer/memory/constitution.md +9 -7
  72. package/resources/gofer/memory/gofer-model-policy.yaml +23 -1
  73. package/resources/gofer/memory/lessons.md +0 -31
  74. package/resources/gofer/node-scripts/canonical-descriptions.mjs +1 -1
  75. package/resources/gofer/node-scripts/check-version-alignment.mjs +4 -7
  76. package/resources/gofer/node-scripts/delivery-lineage-corpus.mjs +156 -0
  77. package/resources/gofer/node-scripts/generate-commands.mjs +1073 -265
  78. package/resources/gofer/node-scripts/gofer-acceptance-check.mjs +143 -0
  79. package/resources/gofer/node-scripts/gofer-agent-catalog.mjs +271 -0
  80. package/resources/gofer/node-scripts/gofer-benchmark-executor.mjs +123 -0
  81. package/resources/gofer/node-scripts/gofer-benchmark-sign.mjs +62 -0
  82. package/resources/gofer/node-scripts/gofer-benchmark-signer.mjs +89 -0
  83. package/resources/gofer/node-scripts/gofer-benchmark.mjs +76 -0
  84. package/resources/gofer/node-scripts/gofer-blocker-control.mjs +274 -0
  85. package/resources/gofer/node-scripts/gofer-claude-adapter.mjs +154 -0
  86. package/resources/gofer/node-scripts/gofer-closed-loop-audit.mjs +19 -2
  87. package/resources/gofer/node-scripts/gofer-delivery-check.mjs +121 -0
  88. package/resources/gofer/node-scripts/gofer-encrypted-key.mjs +58 -0
  89. package/resources/gofer/node-scripts/gofer-execution-metrics.mjs +477 -0
  90. package/resources/gofer/node-scripts/gofer-execution-recovery.mjs +334 -0
  91. package/resources/gofer/node-scripts/gofer-grok-adapter.mjs +184 -0
  92. package/resources/gofer/node-scripts/gofer-heldout-corpus.mjs +73 -0
  93. package/resources/gofer/node-scripts/gofer-heldout-snapshot.mjs +286 -0
  94. package/resources/gofer/node-scripts/gofer-heldout-verifier.mjs +211 -0
  95. package/resources/gofer/node-scripts/gofer-host-capability.mjs +335 -0
  96. package/resources/gofer/node-scripts/gofer-independent-reviewer.mjs +130 -0
  97. package/resources/gofer/node-scripts/gofer-live-routing.mjs +109 -0
  98. package/resources/gofer/node-scripts/gofer-local-capability-issuer.mjs +71 -0
  99. package/resources/gofer/node-scripts/gofer-local-isolation.mjs +175 -0
  100. package/resources/gofer/node-scripts/gofer-local-settings-cleanup.mjs +388 -0
  101. package/resources/gofer/node-scripts/gofer-loop-audit.mjs +54 -3
  102. package/resources/gofer/node-scripts/gofer-native-adapter.mjs +567 -0
  103. package/resources/gofer/node-scripts/gofer-native-benchmark-dispatch.mjs +145 -0
  104. package/resources/gofer/node-scripts/gofer-native-runtime.mjs +169 -0
  105. package/resources/gofer/node-scripts/gofer-pre-edit-check.mjs +204 -0
  106. package/resources/gofer/node-scripts/gofer-priority-check.mjs +214 -0
  107. package/resources/gofer/node-scripts/gofer-response-check.mjs +56 -0
  108. package/resources/gofer/node-scripts/gofer-reviewed-learning.mjs +1232 -0
  109. package/resources/gofer/node-scripts/gofer-run-verified-task.mjs +330 -0
  110. package/resources/gofer/node-scripts/gofer-runtime-ledger.mjs +289 -0
  111. package/resources/gofer/node-scripts/gofer-semantic-drift.mjs +584 -0
  112. package/resources/gofer/node-scripts/gofer-surface-update.mjs +1178 -0
  113. package/resources/gofer/node-scripts/gofer-trust-bootstrap.mjs +77 -0
  114. package/resources/gofer/node-scripts/gofer-trusted-benchmark.mjs +102 -0
  115. package/resources/gofer/node-scripts/gofer-trusted-evaluator.mjs +274 -0
  116. package/resources/gofer/node-scripts/gofer-tty-prompt.mjs +34 -0
  117. package/resources/gofer/node-scripts/gofer-typesafe-credentials.mjs +435 -0
  118. package/resources/gofer/node-scripts/gofer-ui-preview.mjs +1212 -0
  119. package/resources/gofer/node-scripts/gofer-verified-execution.mjs +484 -0
  120. package/resources/gofer/node-scripts/gofer-verifier-key-ceremony.mjs +101 -0
  121. package/resources/gofer/node-scripts/gofer-worktree-layout.mjs +32 -0
  122. package/resources/gofer/node-scripts/object-type-routing-phase-bundle.mjs +360 -0
  123. package/resources/gofer/node-scripts/package-agent-plugin.mjs +574 -82
  124. package/resources/gofer/node-scripts/parse-stage-command.mjs +1 -1
  125. package/resources/gofer/node-scripts/render-delivery-lineage.mjs +178 -0
  126. package/resources/gofer/node-scripts/sync-extension-resources.mjs +78 -2
  127. package/resources/gofer/node-scripts/validate-object-type-identifiers.mjs +767 -0
  128. package/resources/gofer/node-scripts/validate-object-type-routing-workspace.mjs +1325 -0
  129. package/resources/gofer/node-scripts/validate-v4-resource-contract.d.mts +44 -0
  130. package/resources/gofer/node-scripts/validate-v4-resource-contract.mjs +957 -0
  131. package/resources/gofer/node-scripts/workspace-bootstrap-lib.mjs +685 -116
  132. package/resources/gofer/references/agent-catalog.json +126 -0
  133. package/resources/gofer/references/blocker-mediation.md +156 -0
  134. package/resources/gofer/references/business-updates-and-goal-checks.md +109 -0
  135. package/resources/gofer/references/delivery-lineage.md +48 -0
  136. package/resources/gofer/references/mvp-capability-validation.md +102 -0
  137. package/resources/gofer/references/platform/README.md +1 -1
  138. package/resources/gofer/references/platform/eai-app-template.md +15 -13
  139. package/resources/gofer/references/platform/eai-auth-access.md +104 -0
  140. package/resources/gofer/references/platform/eai-config-driven-ui.md +5 -5
  141. package/resources/gofer/references/platform/eai-error-catalog.yaml +77 -19
  142. package/resources/gofer/references/platform/eai-repo-contract.md +61 -23
  143. package/resources/gofer/references/platform/eai-service-patterns.md +102 -105
  144. package/resources/gofer/references/platform/eai.md +44 -8
  145. package/resources/gofer/references/platform/vertical-template.md +10 -9
  146. package/resources/gofer/references/priority-outcome-protection.md +152 -0
  147. package/resources/gofer/references/verified-agent-execution.md +179 -0
  148. package/resources/gofer/schemas/gofer-learning-trace-v1.json +70 -0
  149. package/resources/gofer/specify-commands/0_gofer_start.md +440 -99
  150. package/resources/gofer/specify-commands/0a_problem_validation.md +187 -27
  151. package/resources/gofer/specify-commands/10_gofer_cloud.md +183 -23
  152. package/resources/gofer/specify-commands/1_gofer_research.md +239 -30
  153. package/resources/gofer/specify-commands/2_gofer_specify.md +239 -35
  154. package/resources/gofer/specify-commands/3_gofer_plan.md +259 -43
  155. package/resources/gofer/specify-commands/4_gofer_tasks.md +401 -81
  156. package/resources/gofer/specify-commands/5_gofer_implement.md +375 -84
  157. package/resources/gofer/specify-commands/6_gofer_validate.md +284 -53
  158. package/resources/gofer/specify-commands/7_gofer_save.md +187 -26
  159. package/resources/gofer/specify-commands/7a_stakeholder_comms.md +183 -23
  160. package/resources/gofer/specify-commands/8_gofer_branding.md +183 -23
  161. package/resources/gofer/specify-commands/9_gofer_tests.md +212 -23
  162. package/resources/gofer/specify-commands/gofer_bootstrap_workspace.md +121 -8
  163. package/resources/gofer/specify-commands/gofer_check_workspace.md +123 -8
  164. package/resources/gofer/specify-commands/gofer_constitution.md +183 -23
  165. package/resources/gofer/specify-commands/gofer_diagnose.md +183 -23
  166. package/resources/gofer/specify-commands/gofer_eai_first_run.md +254 -25
  167. package/resources/gofer/specify-commands/gofer_hydrate.md +183 -23
  168. package/resources/gofer/specify-commands/gofer_personality.md +117 -6
  169. package/resources/gofer/specify-commands/gofer_plan.md +117 -6
  170. package/resources/gofer/specify-commands/gofer_side.md +117 -6
  171. package/resources/gofer/specify-commands/gofer_spec_summary.md +183 -23
  172. package/resources/gofer/specify-commands/gofer_tdd.md +183 -23
  173. package/resources/gofer/specify-commands/gofer_vocabulary.md +185 -25
  174. package/resources/gofer/specify-commands/gofer_zoom_out.md +183 -23
  175. package/resources/gofer/specify-config/object-type-routing.json +24 -0
  176. package/resources/gofer/specify-config/typesafe-learning-review.json +16 -0
  177. package/resources/gofer/specify-config/typesafe-semantic-review.json +9 -0
  178. package/resources/gofer/system-skills/eai/SKILL.md +365 -0
  179. package/resources/gofer/system-skills/eai-update/SKILL.md +56 -0
  180. package/resources/gofer/system-skills/gofer-documentation/SKILL.md +93 -0
  181. package/resources/gofer/templates/build-map-template.md +64 -0
  182. package/resources/gofer/templates/business-scenarios-template.json +14 -0
  183. package/resources/gofer/templates/ciso-security-summary-template.md +3 -3
  184. package/resources/gofer/templates/context-bundle-template.md +4 -3
  185. package/resources/gofer/templates/contract-pack-template.md +8 -8
  186. package/resources/gofer/templates/cto-architecture-summary-template.md +3 -3
  187. package/resources/gofer/templates/delivery-lineage-template.json +8 -0
  188. package/resources/gofer/templates/eai-preflight-template.md +109 -68
  189. package/resources/gofer/templates/goal-ledger-template.json +1 -1
  190. package/resources/gofer/templates/gofer-model-policy.yaml +28 -6
  191. package/resources/gofer/templates/loop-contract-template.json +3 -1
  192. package/resources/gofer/templates/plan-template.md +8 -7
  193. package/resources/gofer/templates/priority-plan-template.json +29 -0
  194. package/resources/gofer/templates/proposal-review-template.md +6 -3
  195. package/resources/gofer/templates/release-capability-ledger-template.md +24 -0
  196. package/resources/gofer/templates/research-template.md +7 -6
  197. package/resources/gofer/templates/spec-summary-template.md +1 -1
  198. package/resources/gofer/templates/spec-template.md +45 -6
  199. package/resources/gofer/templates/tasks-template.md +12 -3
  200. package/resources/gofer/templates/ui-preview-brief-template.md +55 -5
  201. package/resources/gofer/templates/ui-review-log-template.md +21 -3
  202. package/resources/gofer/templates/ui-show-and-tell-template.md +46 -0
  203. package/resources/gofer/templates/visuals/capability-heatmap-template.md +2 -2
  204. package/resources/gofer/templates/working-backwards-prfaq-template.md +9 -8
  205. package/resources/linked-sources.json +4 -4
  206. package/resources/gofer/agents-skills/0_gofer_start/SKILL.md +0 -1287
  207. package/resources/gofer/agents-skills/0a_problem_validation/SKILL.md +0 -429
  208. package/resources/gofer/agents-skills/10_gofer_cloud/SKILL.md +0 -635
  209. package/resources/gofer/agents-skills/1_gofer_research/SKILL.md +0 -1159
  210. package/resources/gofer/agents-skills/2_gofer_specify/SKILL.md +0 -860
  211. package/resources/gofer/agents-skills/3_gofer_plan/SKILL.md +0 -899
  212. package/resources/gofer/agents-skills/4_gofer_tasks/SKILL.md +0 -760
  213. package/resources/gofer/agents-skills/5_gofer_implement/SKILL.md +0 -944
  214. package/resources/gofer/agents-skills/6_gofer_validate/SKILL.md +0 -2302
  215. package/resources/gofer/agents-skills/7_gofer_save/SKILL.md +0 -423
  216. package/resources/gofer/agents-skills/7a_stakeholder_comms/SKILL.md +0 -508
  217. package/resources/gofer/agents-skills/8_gofer_branding/SKILL.md +0 -315
  218. package/resources/gofer/agents-skills/9_gofer_tests/SKILL.md +0 -558
  219. package/resources/gofer/agents-skills/gofer_bootstrap_workspace/SKILL.md +0 -148
  220. package/resources/gofer/agents-skills/gofer_check_workspace/SKILL.md +0 -119
  221. package/resources/gofer/agents-skills/gofer_constitution/SKILL.md +0 -612
  222. package/resources/gofer/agents-skills/gofer_diagnose/SKILL.md +0 -114
  223. package/resources/gofer/agents-skills/gofer_eai_first_run/SKILL.md +0 -397
  224. package/resources/gofer/agents-skills/gofer_hydrate/SKILL.md +0 -561
  225. package/resources/gofer/agents-skills/gofer_personality/SKILL.md +0 -44
  226. package/resources/gofer/agents-skills/gofer_plan/SKILL.md +0 -40
  227. package/resources/gofer/agents-skills/gofer_side/SKILL.md +0 -45
  228. package/resources/gofer/agents-skills/gofer_spec_summary/SKILL.md +0 -112
  229. package/resources/gofer/agents-skills/gofer_tdd/SKILL.md +0 -112
  230. package/resources/gofer/agents-skills/gofer_vocabulary/SKILL.md +0 -112
  231. package/resources/gofer/agents-skills/gofer_zoom_out/SKILL.md +0 -112
  232. package/resources/gofer/claude-commands/0_gofer_start.md +0 -1282
  233. package/resources/gofer/claude-commands/0a_problem_validation.md +0 -424
  234. package/resources/gofer/claude-commands/10_gofer_cloud.md +0 -630
  235. package/resources/gofer/claude-commands/1_gofer_research.md +0 -1154
  236. package/resources/gofer/claude-commands/2_gofer_specify.md +0 -855
  237. package/resources/gofer/claude-commands/3_gofer_plan.md +0 -894
  238. package/resources/gofer/claude-commands/4_gofer_tasks.md +0 -755
  239. package/resources/gofer/claude-commands/5_gofer_implement.md +0 -939
  240. package/resources/gofer/claude-commands/6_gofer_validate.md +0 -2297
  241. package/resources/gofer/claude-commands/7_gofer_save.md +0 -418
  242. package/resources/gofer/claude-commands/7a_stakeholder_comms.md +0 -503
  243. package/resources/gofer/claude-commands/8_gofer_branding.md +0 -310
  244. package/resources/gofer/claude-commands/9_gofer_tests.md +0 -553
  245. package/resources/gofer/claude-commands/gofer_bootstrap_workspace.md +0 -143
  246. package/resources/gofer/claude-commands/gofer_check_workspace.md +0 -114
  247. package/resources/gofer/claude-commands/gofer_constitution.md +0 -607
  248. package/resources/gofer/claude-commands/gofer_diagnose.md +0 -109
  249. package/resources/gofer/claude-commands/gofer_eai_first_run.md +0 -392
  250. package/resources/gofer/claude-commands/gofer_hydrate.md +0 -556
  251. package/resources/gofer/claude-commands/gofer_personality.md +0 -39
  252. package/resources/gofer/claude-commands/gofer_plan.md +0 -35
  253. package/resources/gofer/claude-commands/gofer_side.md +0 -40
  254. package/resources/gofer/claude-commands/gofer_spec_summary.md +0 -107
  255. package/resources/gofer/claude-commands/gofer_tdd.md +0 -107
  256. package/resources/gofer/claude-commands/gofer_vocabulary.md +0 -107
  257. package/resources/gofer/claude-commands/gofer_zoom_out.md +0 -107
  258. package/resources/gofer/claude-skills/eai-gofer/SKILL.md +0 -56
  259. package/resources/gofer/copilot-prompts/0_gofer_start.prompt.md +0 -1308
  260. package/resources/gofer/copilot-prompts/0a_problem_validation.prompt.md +0 -429
  261. package/resources/gofer/copilot-prompts/10_gofer_cloud.prompt.md +0 -644
  262. package/resources/gofer/copilot-prompts/1_gofer_research.prompt.md +0 -1177
  263. package/resources/gofer/copilot-prompts/2_gofer_specify.prompt.md +0 -878
  264. package/resources/gofer/copilot-prompts/3_gofer_plan.prompt.md +0 -917
  265. package/resources/gofer/copilot-prompts/4_gofer_tasks.prompt.md +0 -778
  266. package/resources/gofer/copilot-prompts/5_gofer_implement.prompt.md +0 -962
  267. package/resources/gofer/copilot-prompts/6_gofer_validate.prompt.md +0 -2310
  268. package/resources/gofer/copilot-prompts/7_gofer_save.prompt.md +0 -433
  269. package/resources/gofer/copilot-prompts/7a_stakeholder_comms.prompt.md +0 -516
  270. package/resources/gofer/copilot-prompts/8_gofer_branding.prompt.md +0 -323
  271. package/resources/gofer/copilot-prompts/9_gofer_tests.prompt.md +0 -566
  272. package/resources/gofer/copilot-prompts/gofer_bootstrap_workspace.prompt.md +0 -161
  273. package/resources/gofer/copilot-prompts/gofer_check_workspace.prompt.md +0 -132
  274. package/resources/gofer/copilot-prompts/gofer_constitution.prompt.md +0 -621
  275. package/resources/gofer/copilot-prompts/gofer_diagnose.prompt.md +0 -127
  276. package/resources/gofer/copilot-prompts/gofer_eai_first_run.prompt.md +0 -410
  277. package/resources/gofer/copilot-prompts/gofer_hydrate.prompt.md +0 -571
  278. package/resources/gofer/copilot-prompts/gofer_personality.prompt.md +0 -57
  279. package/resources/gofer/copilot-prompts/gofer_plan.prompt.md +0 -53
  280. package/resources/gofer/copilot-prompts/gofer_side.prompt.md +0 -58
  281. package/resources/gofer/copilot-prompts/gofer_spec_summary.prompt.md +0 -125
  282. package/resources/gofer/copilot-prompts/gofer_tdd.prompt.md +0 -125
  283. package/resources/gofer/copilot-prompts/gofer_vocabulary.prompt.md +0 -125
  284. package/resources/gofer/copilot-prompts/gofer_zoom_out.prompt.md +0 -125
  285. package/resources/gofer/gemini/commands/gofer/0_gofer_start.md +0 -1282
  286. package/resources/gofer/gemini/commands/gofer/0_gofer_start.toml +0 -2
  287. package/resources/gofer/gemini/commands/gofer/0a_problem_validation.md +0 -424
  288. package/resources/gofer/gemini/commands/gofer/0a_problem_validation.toml +0 -2
  289. package/resources/gofer/gemini/commands/gofer/10_gofer_cloud.md +0 -630
  290. package/resources/gofer/gemini/commands/gofer/10_gofer_cloud.toml +0 -2
  291. package/resources/gofer/gemini/commands/gofer/1_gofer_research.md +0 -1154
  292. package/resources/gofer/gemini/commands/gofer/1_gofer_research.toml +0 -2
  293. package/resources/gofer/gemini/commands/gofer/2_gofer_specify.md +0 -855
  294. package/resources/gofer/gemini/commands/gofer/2_gofer_specify.toml +0 -2
  295. package/resources/gofer/gemini/commands/gofer/3_gofer_plan.md +0 -894
  296. package/resources/gofer/gemini/commands/gofer/3_gofer_plan.toml +0 -2
  297. package/resources/gofer/gemini/commands/gofer/4_gofer_tasks.md +0 -755
  298. package/resources/gofer/gemini/commands/gofer/4_gofer_tasks.toml +0 -2
  299. package/resources/gofer/gemini/commands/gofer/5_gofer_implement.md +0 -939
  300. package/resources/gofer/gemini/commands/gofer/5_gofer_implement.toml +0 -2
  301. package/resources/gofer/gemini/commands/gofer/6_gofer_validate.md +0 -2297
  302. package/resources/gofer/gemini/commands/gofer/6_gofer_validate.toml +0 -2
  303. package/resources/gofer/gemini/commands/gofer/7_gofer_save.md +0 -418
  304. package/resources/gofer/gemini/commands/gofer/7_gofer_save.toml +0 -2
  305. package/resources/gofer/gemini/commands/gofer/7a_stakeholder_comms.md +0 -503
  306. package/resources/gofer/gemini/commands/gofer/7a_stakeholder_comms.toml +0 -2
  307. package/resources/gofer/gemini/commands/gofer/8_gofer_branding.md +0 -310
  308. package/resources/gofer/gemini/commands/gofer/8_gofer_branding.toml +0 -2
  309. package/resources/gofer/gemini/commands/gofer/9_gofer_tests.md +0 -553
  310. package/resources/gofer/gemini/commands/gofer/9_gofer_tests.toml +0 -2
  311. package/resources/gofer/gemini/commands/gofer/gofer_bootstrap_workspace.md +0 -143
  312. package/resources/gofer/gemini/commands/gofer/gofer_bootstrap_workspace.toml +0 -2
  313. package/resources/gofer/gemini/commands/gofer/gofer_check_workspace.md +0 -114
  314. package/resources/gofer/gemini/commands/gofer/gofer_check_workspace.toml +0 -2
  315. package/resources/gofer/gemini/commands/gofer/gofer_constitution.md +0 -607
  316. package/resources/gofer/gemini/commands/gofer/gofer_constitution.toml +0 -2
  317. package/resources/gofer/gemini/commands/gofer/gofer_diagnose.md +0 -109
  318. package/resources/gofer/gemini/commands/gofer/gofer_diagnose.toml +0 -2
  319. package/resources/gofer/gemini/commands/gofer/gofer_eai_first_run.md +0 -392
  320. package/resources/gofer/gemini/commands/gofer/gofer_eai_first_run.toml +0 -2
  321. package/resources/gofer/gemini/commands/gofer/gofer_hydrate.md +0 -556
  322. package/resources/gofer/gemini/commands/gofer/gofer_hydrate.toml +0 -2
  323. package/resources/gofer/gemini/commands/gofer/gofer_personality.md +0 -39
  324. package/resources/gofer/gemini/commands/gofer/gofer_personality.toml +0 -2
  325. package/resources/gofer/gemini/commands/gofer/gofer_plan.md +0 -35
  326. package/resources/gofer/gemini/commands/gofer/gofer_plan.toml +0 -2
  327. package/resources/gofer/gemini/commands/gofer/gofer_side.md +0 -40
  328. package/resources/gofer/gemini/commands/gofer/gofer_side.toml +0 -2
  329. package/resources/gofer/gemini/commands/gofer/gofer_spec_summary.md +0 -107
  330. package/resources/gofer/gemini/commands/gofer/gofer_spec_summary.toml +0 -2
  331. package/resources/gofer/gemini/commands/gofer/gofer_tdd.md +0 -107
  332. package/resources/gofer/gemini/commands/gofer/gofer_tdd.toml +0 -2
  333. package/resources/gofer/gemini/commands/gofer/gofer_vocabulary.md +0 -107
  334. package/resources/gofer/gemini/commands/gofer/gofer_vocabulary.toml +0 -2
  335. package/resources/gofer/gemini/commands/gofer/gofer_zoom_out.md +0 -107
  336. package/resources/gofer/gemini/commands/gofer/gofer_zoom_out.toml +0 -2
  337. package/resources/gofer/github-skills/eai-gofer/SKILL.md +0 -56
  338. package/resources/gofer/system-skills/0_gofer_start/SKILL.md +0 -1287
  339. package/resources/gofer/system-skills/0a_problem_validation/SKILL.md +0 -429
  340. package/resources/gofer/system-skills/10_gofer_cloud/SKILL.md +0 -635
  341. package/resources/gofer/system-skills/1_gofer_research/SKILL.md +0 -1159
  342. package/resources/gofer/system-skills/2_gofer_specify/SKILL.md +0 -860
  343. package/resources/gofer/system-skills/3_gofer_plan/SKILL.md +0 -899
  344. package/resources/gofer/system-skills/4_gofer_tasks/SKILL.md +0 -760
  345. package/resources/gofer/system-skills/5_gofer_implement/SKILL.md +0 -944
  346. package/resources/gofer/system-skills/6_gofer_validate/SKILL.md +0 -2302
  347. package/resources/gofer/system-skills/7_gofer_save/SKILL.md +0 -423
  348. package/resources/gofer/system-skills/7a_stakeholder_comms/SKILL.md +0 -508
  349. package/resources/gofer/system-skills/8_gofer_branding/SKILL.md +0 -315
  350. package/resources/gofer/system-skills/9_gofer_tests/SKILL.md +0 -558
  351. package/resources/gofer/system-skills/gofer_bootstrap_workspace/SKILL.md +0 -148
  352. package/resources/gofer/system-skills/gofer_check_workspace/SKILL.md +0 -119
  353. package/resources/gofer/system-skills/gofer_constitution/SKILL.md +0 -612
  354. package/resources/gofer/system-skills/gofer_diagnose/SKILL.md +0 -114
  355. package/resources/gofer/system-skills/gofer_eai_first_run/SKILL.md +0 -397
  356. package/resources/gofer/system-skills/gofer_hydrate/SKILL.md +0 -561
  357. package/resources/gofer/system-skills/gofer_personality/SKILL.md +0 -44
  358. package/resources/gofer/system-skills/gofer_plan/SKILL.md +0 -40
  359. package/resources/gofer/system-skills/gofer_side/SKILL.md +0 -45
  360. package/resources/gofer/system-skills/gofer_spec_summary/SKILL.md +0 -112
  361. package/resources/gofer/system-skills/gofer_tdd/SKILL.md +0 -112
  362. package/resources/gofer/system-skills/gofer_vocabulary/SKILL.md +0 -112
  363. package/resources/gofer/system-skills/gofer_zoom_out/SKILL.md +0 -112
  364. 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
  });