@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
@@ -135,7 +135,7 @@ Gofer consists of three coordinated components:
135
135
  - Manages UI (tree views, commands, progress panels)
136
136
  - Launches Language Server as child process
137
137
  - Auto-creates provider-neutral `.vscode/mcp.json` for VS Code/Copilot, Claude
138
- Code, Codex, Gemini, and compatible agent apps
138
+ Code, Codex, Google Antigravity, Grok Build, and compatible agent apps
139
139
 
140
140
  **Language Server** (`/language-server/`):
141
141
 
@@ -333,10 +333,11 @@ and MUST NOT be conflated.
333
333
  canonical Gofer stages MUST be ≤2048 bytes (≤2KB). Codex preloads ~2% of
334
334
  context for skill name+description text; over-budget triggers a global drop of
335
335
  ALL skill descriptions, not per-bundle eviction (NFR-004, SC-006).
336
- - **Per-CLI parity**: Numbered stages, utilities, and helper commands are
337
- emitted to Claude, Codex, Gemini, Copilot, VS Code, GitHub prompts, agent
338
- skills, and system skills unless their frontmatter explicitly says otherwise
339
- (FR-007, SC-012).
336
+ - **Per-host parity**: Numbered stages, utilities, and helper commands are
337
+ emitted for Claude, Codex, Copilot, Google Antigravity, Grok Build, and VS
338
+ Code through their configured command, prompt, agent-skill, and system-skill
339
+ formats unless frontmatter explicitly says otherwise. The `.gemini/` emitter
340
+ remains legacy file-format compatibility only (FR-007, SC-012).
340
341
  - **Flat tree**: Codex skill files emit at depth ≤2 from `.agents/skills/`; no
341
342
  `<tenant>/<stage>/` nesting (FR-008).
342
343
  - **No fictional config keys**: The official Codex disable knob is per-skill
@@ -370,8 +371,9 @@ configured CLI surfaces:
370
371
  - `extension/resources/claude-prompts/` (Claude-mirror, VSCode)
371
372
  - `extension/resources/copilot-prompts/` (Copilot)
372
373
  - `.github/prompts/` (GitHub Prompts)
373
- - `.agents/skills/gofer/` (Codex)
374
- - `.gemini/commands/gofer/` (Gemini)
374
+ - `.agents/skills/gofer/` (Codex and Google Antigravity)
375
+ - `.grok/skills/` (Grok Build)
376
+ - `.gemini/commands/gofer/` (legacy Gemini file-format compatibility)
375
377
  - `.system/skills/` (system)
376
378
 
377
379
  ### Anti-drift Guard
@@ -67,7 +67,7 @@ surfaces:
67
67
  reasoningEffort: high
68
68
  contextWindowTokens: 1050000
69
69
  useFor: broad frontier reasoning, complex architecture, final arbitration
70
- gemini:
70
+ antigravity:
71
71
  simple:
72
72
  model: gemini-3.1-flash-lite
73
73
  contextWindowTokens: 1000000
@@ -95,3 +95,25 @@ surfaces:
95
95
  model: "Best available in picker: GPT-5.3-Codex, GPT-5.5, Claude Opus, or Gemini Pro"
96
96
  useFor: explicit hard review, security, architecture, or release gates
97
97
  note: Copilot model availability depends on plan, organization policy, client, and feature surface.
98
+ grok:
99
+ simple:
100
+ model: Provider default
101
+ useFor: quick Grok Build questions, summaries, and low-risk edits
102
+ medium:
103
+ model: Provider default
104
+ useFor: normal Gofer stage prompts and implementation work
105
+ hard:
106
+ model: Best available in picker
107
+ useFor: explicit hard review, architecture, security, and release validation
108
+ note: Grok model availability depends on account, client, and provider policy.
109
+ vscode:
110
+ simple:
111
+ model: Auto
112
+ useFor: quick editor questions, completion, and low-risk fixes
113
+ medium:
114
+ model: Auto
115
+ useFor: normal Gofer stage prompts in the VS Code host
116
+ hard:
117
+ model: Best available in picker
118
+ useFor: explicit hard review, architecture, security, and release validation
119
+ note: VS Code model availability depends on installed extensions and organization policy.
@@ -6,37 +6,6 @@ correction.
6
6
 
7
7
  ---
8
8
 
9
- ## 2026-08-12: Trace the actual client before assigning ownership
10
-
11
- **Incident**: A production workspace-member invitation failed from an EAI CLI
12
- command, but the first explanation treated the request as though it originated
13
- in Admin Portal.
14
-
15
- **Root cause**: The downstream PublicAPI, AdminAPI, AzureAPI, and Microsoft
16
- Graph path was identified correctly, but the initiating client and its request
17
- payload were not established first. The CLI's email-based `user role set`
18
- command sent only email and role, even though its lower-level API client already
19
- supported complete invitation details.
20
-
21
- **Fix**: Added optional first name, last name, message, and redirect URI flags to
22
- the email-based role-assignment command and retained the existing short form.
23
-
24
- **Lessons**:
25
-
26
- - Establish the initiating surface from the exact command, request ID, and
27
- request payload before attributing a failure to a UI or service.
28
- - A client-side workaround is useful proof of a missing downstream default; it
29
- does not remove the need to fix the service contract.
30
- - Keep existing-user role assignment simple while allowing new-user invitations
31
- to supply every field the identity provider requires.
32
-
33
- **References**:
34
-
35
- - `.specify/specs/v4-member-invite-e2e-crud/diagnose-report.md`
36
- - `tests/integration/user.test.ts`
37
-
38
- ---
39
-
40
9
  ## 2026-04-25: Codex skill-budget hygiene
41
10
 
42
11
  **Incident**: Codex CLI logged `Exceeded skills context budget of 2%` and
@@ -42,7 +42,7 @@ export const CANONICAL_DESCRIPTIONS = {
42
42
  'gofer:bootstrap-workspace':
43
43
  'Create or update the repo-owned Gofer scaffold.',
44
44
  'gofer:eai-first-run':
45
- 'Check EAI CLI, login, workspace, template, and Gofer readiness.',
45
+ 'Check EAI CLI, login, tenant, template, and Gofer readiness.',
46
46
  'gofer:vocabulary':
47
47
  'Extract domain terms into a canonical glossary.',
48
48
  'gofer:diagnose':
@@ -35,10 +35,7 @@ function readText(root, relativePath) {
35
35
 
36
36
  function collectVersions(root) {
37
37
  const codexPluginManifest = readJson(root, '.codex-plugin/plugin.json');
38
- const releaseAssetVersion =
39
- /eai-gofer-agent-plugin-([^/]+)\.zip$/.exec(
40
- codexPluginManifest.gofer?.releaseAsset ?? ''
41
- )?.[1] ?? 'missing';
38
+ const codexMarketplace = readJson(root, '.agents/plugins/marketplace.json');
42
39
 
43
40
  return [
44
41
  {
@@ -72,9 +69,9 @@ function collectVersions(root) {
72
69
  version: codexPluginManifest.version,
73
70
  },
74
71
  {
75
- name: 'Codex plugin release asset',
76
- path: '.codex-plugin/plugin.json#gofer.releaseAsset',
77
- version: releaseAssetVersion,
72
+ name: 'Codex plugin marketplace',
73
+ path: '.agents/plugins/marketplace.json',
74
+ version: codexMarketplace.plugins?.[0]?.version ?? 'missing',
78
75
  },
79
76
  {
80
77
  name: 'workspace version marker',
@@ -0,0 +1,156 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { promises as fs } from 'node:fs';
3
+ import path from 'node:path';
4
+
5
+ const FORBIDDEN = ['AdminAPI', 'ResourceAPI', 'Configurator', 'Authz', 'AzureAPI', 'AICore', 'GeoService', 'Infra2025', 'eai-testing-dev', 'tech-docs'];
6
+ const PHASES = {
7
+ P1: { name: 'Research', stage: 'intent', kind: 'artifact', preferred: ['research.md', 'discovery.md', 'problem-brief.md'] },
8
+ P2: { name: 'Specify', stage: 'requirements', kind: 'requirement', preferred: ['spec.md', 'spec-summary.md', 'assumptions.md'] },
9
+ P3: { name: 'Plan', stage: 'architecture', kind: 'architecture', preferred: ['plan.md', 'data-model.md', 'quickstart.md'] },
10
+ P4: { name: 'Tasks', stage: 'delivery', kind: 'work-order', preferred: ['tasks.md', 'traceability.md', 'issues.md'] },
11
+ P5: { name: 'Implement', stage: 'delivery', kind: 'artifact', preferred: ['implementation-status.md', 'tdd-session.md', 'audit-history.md'] },
12
+ P6: { name: 'Validate', stage: 'validation', kind: 'test', preferred: ['validation.md', 'validation-report.md', 'engineering-review-report.md'] },
13
+ Feature: { name: 'Artifact', stage: 'requirements', kind: 'documentation-file', preferred: [] },
14
+ };
15
+
16
+ const NAMES = {
17
+ P1: new Set(['research', 'discovery', 'problem-brief', 'working-backwards-prfaq', 'business-analysis', 'market-analysis', 'proposal-review', 'context-bundle', 'reuse-scan', 'build-map', 'eai-preflight', 'ui-preview-brief', 'execution-profile']),
18
+ P2: new Set(['spec', 'spec-summary', 'glossary', 'assumptions', 'contract-pack', 'business-owner-summary']),
19
+ P3: new Set(['plan', 'data-model', 'quickstart', 'cto-architecture-summary', 'service-fit-matrix', 'ui-review-log', 'ui-show-and-tell']),
20
+ P4: new Set(['tasks', 'traceability', 'issues', 'workflow-dag', 'loop-contract']),
21
+ P5: new Set(['implementation-status', 'implementation-skill-evidence', 'tdd-session', 'diagnose-report', 'doc-consistency-scan', 'audit-history', 'session-checkpoint']),
22
+ P6: new Set(['validation', 'validation-report', 'engineering-review-report', 'blast-radius-report', 'remediation-report', 'goal-rebaseline-report', 'loop-audit-report']),
23
+ };
24
+
25
+ function stem(relativePath) {
26
+ return path.posix.basename(relativePath, path.posix.extname(relativePath)).toLowerCase();
27
+ }
28
+
29
+ function phaseFor(relativePath) {
30
+ const name = stem(relativePath);
31
+ if (NAMES.P1.has(name)) return 'P1';
32
+ if (NAMES.P2.has(name) || relativePath.startsWith('checklists/')) return 'P2';
33
+ if (NAMES.P3.has(name) || relativePath.startsWith('contracts/') || relativePath.startsWith('visuals/') || relativePath.startsWith('sequence-diagrams/')) return 'P3';
34
+ if (NAMES.P4.has(name)) return 'P4';
35
+ if (NAMES.P5.has(name)) return 'P5';
36
+ if (NAMES.P6.has(name)) return 'P6';
37
+ return 'Feature';
38
+ }
39
+
40
+ function titleFor(relativePath, content) {
41
+ const frontmatter = content.match(/^---\s*[\r\n]+[\s\S]*?^title:\s*["']?([^\r\n"']+)/m)?.[1];
42
+ const heading = content.match(/^#\s+(.+)$/m)?.[1];
43
+ return (frontmatter ?? heading ?? stem(relativePath).replace(/[-_]+/g, ' ')).trim().slice(0, 120);
44
+ }
45
+
46
+ function outcomeFor(heading) {
47
+ if (/\b(rejected|declined|not selected)\b/i.test(heading)) return 'rejected';
48
+ if (/\bsuperseded\b/i.test(heading)) return 'superseded';
49
+ if (/\b(selected approach|approved direction|chosen option|recommendation|final decision|architecture decision)\b/i.test(heading)) return 'selected';
50
+ return undefined;
51
+ }
52
+
53
+ function summaryFor(value) {
54
+ const summary = value.replace(/```[\s\S]*?```/g, ' ').replace(/\[([^\]]+)\]\([^)]+\)/g, '$1').replace(/^[\s]*[-+*]\s+/gm, '').replace(/[#>*_`|]/g, ' ').replace(/\s+/g, ' ').trim();
55
+ return summary ? summary.slice(0, 320) : undefined;
56
+ }
57
+
58
+ function decisionsFor(content) {
59
+ const headings = [...content.matchAll(/^#{1,6}\s+(.+)$/gm)];
60
+ const decisions = [];
61
+ for (let index = 0; index < headings.length; index += 1) {
62
+ const match = headings[index];
63
+ const heading = match[1].trim();
64
+ if (!/\b(decision|decisions|selected approach|approved direction|chosen option|recommendation|rejected alternative|declined option|superseded decision)\b/i.test(heading)) continue;
65
+ const bodyStart = (match.index ?? 0) + match[0].length;
66
+ const bodyEnd = headings[index + 1]?.index ?? content.length;
67
+ decisions.push({ heading, decisionOutcome: outcomeFor(heading), summary: summaryFor(content.slice(bodyStart, bodyEnd)) });
68
+ }
69
+ return decisions.slice(0, 30);
70
+ }
71
+
72
+ function id(prefix, value) {
73
+ return `${prefix}:${createHash('sha256').update(value).digest('hex').slice(0, 16)}`;
74
+ }
75
+
76
+ async function listArtifacts(folder, prefix = '') {
77
+ const entries = await fs.readdir(folder, { withFileTypes: true });
78
+ const artifacts = [];
79
+ for (const entry of entries) {
80
+ const relativePath = prefix ? `${prefix}/${entry.name}` : entry.name;
81
+ const absolutePath = path.join(folder, entry.name);
82
+ if (entry.isDirectory()) artifacts.push(...(await listArtifacts(absolutePath, relativePath)));
83
+ else if (/\.(md|json)$/i.test(entry.name) && !/^delivery-lineage\.(md|json)$/i.test(entry.name)) {
84
+ const content = await fs.readFile(absolutePath, 'utf8');
85
+ const leaked = FORBIDDEN.find((term) => content.toLowerCase().includes(term.toLowerCase()));
86
+ if (leaked) throw new Error(`Customer feature artifact ${relativePath} contains forbidden internal term ${leaked}.`);
87
+ artifacts.push({ relativePath, content });
88
+ }
89
+ }
90
+ return artifacts;
91
+ }
92
+
93
+ function sortArtifacts(code, left, right) {
94
+ const preferred = PHASES[code].preferred;
95
+ const leftRank = preferred.indexOf(left.relativePath);
96
+ const rightRank = preferred.indexOf(right.relativePath);
97
+ if (leftRank >= 0 || rightRank >= 0) {
98
+ if (leftRank < 0) return 1;
99
+ if (rightRank < 0) return -1;
100
+ return leftRank - rightRank;
101
+ }
102
+ return left.relativePath.localeCompare(right.relativePath);
103
+ }
104
+
105
+ /** Enriches CLI/plugin Mermaid output with the complete customer-safe P1-P6 corpus. */
106
+ export async function augmentCustomerLineageCorpus(lineage, inputPath) {
107
+ const marker = `${path.sep}.specify${path.sep}`;
108
+ const markerIndex = inputPath.indexOf(marker);
109
+ if (markerIndex < 0) return lineage;
110
+ const repositoryRoot = inputPath.slice(0, markerIndex);
111
+ const repository = path.basename(repositoryRoot);
112
+ const featureFolder = path.dirname(inputPath);
113
+ const featureRoot = path.relative(repositoryRoot, featureFolder).split(path.sep).join('/');
114
+ const nodes = lineage.nodes.map((node) => ({ ...node }));
115
+ const edges = lineage.edges.map((edge) => ({ ...edge }));
116
+ const nodeBySource = new Map(nodes.filter((node) => node.source?.repository === repository).map((node) => [node.source.path, node.id]));
117
+ const edgeIds = new Set(edges.map((edge) => edge.id));
118
+ const groups = new Map();
119
+ const addEdge = (edge) => {
120
+ if (!edgeIds.has(edge.id)) {
121
+ edgeIds.add(edge.id);
122
+ edges.push(edge);
123
+ }
124
+ };
125
+
126
+ for (const artifact of await listArtifacts(featureFolder)) {
127
+ const code = phaseFor(artifact.relativePath);
128
+ const phase = PHASES[code];
129
+ const sourcePath = `${featureRoot}/${artifact.relativePath}`;
130
+ let nodeId = nodeBySource.get(sourcePath);
131
+ if (!nodeId) {
132
+ nodeId = id('corpus', sourcePath);
133
+ nodes.push({ id: nodeId, kind: phase.kind, label: `${code} ${phase.name} · ${titleFor(artifact.relativePath, artifact.content)}`, stage: phase.stage, visibility: 'customer', status: 'current', source: { repository, path: sourcePath } });
134
+ nodeBySource.set(sourcePath, nodeId);
135
+ }
136
+ const items = groups.get(code) ?? [];
137
+ items.push({ nodeId, relativePath: artifact.relativePath });
138
+ groups.set(code, items);
139
+ for (const decision of decisionsFor(artifact.content)) {
140
+ const decisionId = id('decision', `${sourcePath}#${decision.heading}`);
141
+ if (!nodes.some((node) => node.id === decisionId)) nodes.push({ id: decisionId, kind: 'decision', label: `${code} Decision · ${decision.heading}`, stage: phase.stage, visibility: 'customer', status: 'current', decisionOutcome: decision.decisionOutcome, summary: decision.summary, source: { repository, path: sourcePath, anchor: decision.heading } });
142
+ addEdge({ id: id('corpus-edge', `${nodeId}:records-decision:${decisionId}`), source: nodeId, target: decisionId, relation: 'records-decision', visibility: 'customer', status: 'current' });
143
+ }
144
+ }
145
+
146
+ let previousAnchor;
147
+ for (const code of ['P1', 'P2', 'P3', 'P4', 'P5', 'P6', 'Feature']) {
148
+ const items = (groups.get(code) ?? []).sort((left, right) => sortArtifacts(code, left, right));
149
+ const anchor = items[0]?.nodeId;
150
+ if (!anchor) continue;
151
+ if (previousAnchor) addEdge({ id: id('corpus-edge', `${previousAnchor}:informs:${anchor}`), source: previousAnchor, target: anchor, relation: 'informs', visibility: 'customer', status: 'current' });
152
+ for (const item of items.slice(1)) addEdge({ id: id('corpus-edge', `${anchor}:supports:${item.nodeId}`), source: anchor, target: item.nodeId, relation: 'supports', visibility: 'customer', status: 'current' });
153
+ previousAnchor = anchor;
154
+ }
155
+ return { ...lineage, nodes, edges };
156
+ }