specweave 0.1.9 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. package/CLAUDE.md +600 -0
  2. package/README.md +245 -81
  3. package/bin/install-all.sh +1 -1
  4. package/bin/install-commands.sh +3 -3
  5. package/bin/specweave.js +39 -9
  6. package/dist/adapters/adapter-base.d.ts +1 -1
  7. package/dist/adapters/adapter-base.d.ts.map +1 -1
  8. package/dist/adapters/adapter-base.js +6 -41
  9. package/dist/adapters/adapter-base.js.map +1 -1
  10. package/dist/adapters/adapter-interface.js +1 -2
  11. package/dist/adapters/adapter-interface.js.map +1 -1
  12. package/dist/adapters/adapter-loader.d.ts +86 -0
  13. package/dist/adapters/adapter-loader.d.ts.map +1 -0
  14. package/dist/adapters/adapter-loader.js +216 -0
  15. package/dist/adapters/adapter-loader.js.map +1 -0
  16. package/dist/adapters/agents-md-generator.d.ts +48 -0
  17. package/dist/adapters/agents-md-generator.d.ts.map +1 -0
  18. package/dist/adapters/agents-md-generator.js +132 -0
  19. package/dist/adapters/agents-md-generator.js.map +1 -0
  20. package/dist/adapters/claude/adapter.d.ts +2 -2
  21. package/dist/adapters/claude/adapter.d.ts.map +1 -1
  22. package/dist/adapters/claude/adapter.js +5 -42
  23. package/dist/adapters/claude/adapter.js.map +1 -1
  24. package/dist/adapters/claude-md-generator.d.ts +78 -0
  25. package/dist/adapters/claude-md-generator.d.ts.map +1 -0
  26. package/dist/adapters/claude-md-generator.js +246 -0
  27. package/dist/adapters/claude-md-generator.js.map +1 -0
  28. package/dist/adapters/codex/adapter.d.ts +50 -0
  29. package/dist/adapters/codex/adapter.d.ts.map +1 -0
  30. package/dist/adapters/codex/adapter.js +316 -0
  31. package/dist/adapters/codex/adapter.js.map +1 -0
  32. package/dist/adapters/copilot/adapter.d.ts +10 -9
  33. package/dist/adapters/copilot/adapter.d.ts.map +1 -1
  34. package/dist/adapters/copilot/adapter.js +35 -100
  35. package/dist/adapters/copilot/adapter.js.map +1 -1
  36. package/dist/adapters/cursor/adapter.d.ts +8 -6
  37. package/dist/adapters/cursor/adapter.d.ts.map +1 -1
  38. package/dist/adapters/cursor/adapter.js +47 -130
  39. package/dist/adapters/cursor/adapter.js.map +1 -1
  40. package/dist/adapters/doc-generator.d.ts +69 -0
  41. package/dist/adapters/doc-generator.d.ts.map +1 -0
  42. package/dist/adapters/doc-generator.js +247 -0
  43. package/dist/adapters/doc-generator.js.map +1 -0
  44. package/dist/adapters/gemini/adapter.d.ts +50 -0
  45. package/dist/adapters/gemini/adapter.d.ts.map +1 -0
  46. package/dist/adapters/gemini/adapter.js +281 -0
  47. package/dist/adapters/gemini/adapter.js.map +1 -0
  48. package/dist/adapters/generic/adapter.d.ts +7 -4
  49. package/dist/adapters/generic/adapter.d.ts.map +1 -1
  50. package/dist/adapters/generic/adapter.js +60 -59
  51. package/dist/adapters/generic/adapter.js.map +1 -1
  52. package/dist/cli/commands/init.d.ts +3 -1
  53. package/dist/cli/commands/init.d.ts.map +1 -1
  54. package/dist/cli/commands/init.js +272 -170
  55. package/dist/cli/commands/init.js.map +1 -1
  56. package/dist/cli/commands/install.d.ts.map +1 -1
  57. package/dist/cli/commands/install.js +22 -58
  58. package/dist/cli/commands/install.js.map +1 -1
  59. package/dist/cli/commands/list.d.ts.map +1 -1
  60. package/dist/cli/commands/list.js +27 -64
  61. package/dist/cli/commands/list.js.map +1 -1
  62. package/dist/core/credentials-manager.d.ts +90 -0
  63. package/dist/core/credentials-manager.d.ts.map +1 -0
  64. package/dist/core/credentials-manager.js +271 -0
  65. package/dist/core/credentials-manager.js.map +1 -0
  66. package/dist/core/project-structure-detector.d.ts +92 -0
  67. package/dist/core/project-structure-detector.d.ts.map +1 -0
  68. package/dist/core/project-structure-detector.js +289 -0
  69. package/dist/core/project-structure-detector.js.map +1 -0
  70. package/dist/core/rfc-generator-v2.d.ts +149 -0
  71. package/dist/core/rfc-generator-v2.d.ts.map +1 -0
  72. package/dist/core/rfc-generator-v2.js +399 -0
  73. package/dist/core/rfc-generator-v2.js.map +1 -0
  74. package/dist/core/rfc-generator.d.ts +147 -0
  75. package/dist/core/rfc-generator.d.ts.map +1 -0
  76. package/dist/core/rfc-generator.js +434 -0
  77. package/dist/core/rfc-generator.js.map +1 -0
  78. package/dist/integrations/ado/ado-client.d.ts +123 -0
  79. package/dist/integrations/ado/ado-client.d.ts.map +1 -0
  80. package/dist/integrations/ado/ado-client.js +398 -0
  81. package/dist/integrations/ado/ado-client.js.map +1 -0
  82. package/dist/integrations/jira/jira-client.d.ts +139 -0
  83. package/dist/integrations/jira/jira-client.d.ts.map +1 -0
  84. package/dist/integrations/jira/jira-client.js +386 -0
  85. package/dist/integrations/jira/jira-client.js.map +1 -0
  86. package/dist/integrations/jira/jira-incremental-mapper.d.ts +75 -0
  87. package/dist/integrations/jira/jira-incremental-mapper.d.ts.map +1 -0
  88. package/dist/integrations/jira/jira-incremental-mapper.js +474 -0
  89. package/dist/integrations/jira/jira-incremental-mapper.js.map +1 -0
  90. package/dist/integrations/jira/jira-mapper.d.ts +105 -0
  91. package/dist/integrations/jira/jira-mapper.d.ts.map +1 -0
  92. package/dist/integrations/jira/jira-mapper.js +494 -0
  93. package/dist/integrations/jira/jira-mapper.js.map +1 -0
  94. package/dist/testing/test-generator.d.ts +117 -0
  95. package/dist/testing/test-generator.d.ts.map +1 -0
  96. package/dist/testing/test-generator.js +370 -0
  97. package/dist/testing/test-generator.js.map +1 -0
  98. package/dist/utils/auto-install.d.ts +3 -0
  99. package/dist/utils/auto-install.d.ts.map +1 -1
  100. package/dist/utils/auto-install.js +16 -82
  101. package/dist/utils/auto-install.js.map +1 -1
  102. package/dist/utils/esm-helpers.d.ts +50 -0
  103. package/dist/utils/esm-helpers.d.ts.map +1 -0
  104. package/dist/utils/esm-helpers.js +57 -0
  105. package/dist/utils/esm-helpers.js.map +1 -0
  106. package/package.json +16 -7
  107. package/src/adapters/README.md +1 -2
  108. package/src/adapters/adapter-base.ts +6 -3
  109. package/src/adapters/adapter-loader.ts +261 -0
  110. package/src/adapters/agents-md-generator.ts +162 -0
  111. package/src/adapters/claude/README.md +6 -14
  112. package/src/adapters/claude/adapter.ts +4 -4
  113. package/src/adapters/claude-md-generator.ts +311 -0
  114. package/src/adapters/codex/README.md +105 -0
  115. package/src/adapters/codex/adapter.ts +333 -0
  116. package/src/adapters/copilot/adapter.ts +36 -65
  117. package/src/adapters/cursor/README.md +0 -2
  118. package/src/adapters/cursor/adapter.ts +46 -92
  119. package/src/adapters/doc-generator.ts +331 -0
  120. package/src/adapters/gemini/README.md +97 -0
  121. package/src/adapters/gemini/adapter.ts +298 -0
  122. package/src/adapters/generic/adapter.ts +61 -57
  123. package/src/adapters/registry.yaml +86 -25
  124. package/src/agents/devops/AGENT.md +16 -18
  125. package/src/agents/docs-writer/AGENT.md +2 -2
  126. package/src/agents/pm/AGENT.md +1 -50
  127. package/src/commands/README.md +134 -111
  128. package/src/commands/{build.md → specweave.do.md} +141 -69
  129. package/src/commands/{done.md → specweave.done.md} +3 -3
  130. package/src/commands/{inc.md → specweave.inc.md} +4 -4
  131. package/src/commands/{increment.md → specweave.increment.md} +143 -76
  132. package/src/commands/specweave.md +430 -0
  133. package/src/commands/specweave.next.md +495 -0
  134. package/src/commands/{progress.md → specweave.progress.md} +12 -12
  135. package/src/commands/specweave.sync-docs.md +665 -0
  136. package/src/commands/specweave.sync-github.md +269 -0
  137. package/src/commands/specweave.sync-jira.md +197 -0
  138. package/src/commands/{validate.md → specweave.validate.md} +4 -4
  139. package/src/hooks/README.md +19 -29
  140. package/src/hooks/post-task-completion.sh +25 -30
  141. package/src/skills/ado-sync/README.md +1 -36
  142. package/src/skills/bmad-method-expert/SKILL.md +1 -3
  143. package/src/skills/brownfield-analyzer/SKILL.md +429 -23
  144. package/src/skills/brownfield-onboarder/SKILL.md +221 -8
  145. package/src/skills/context-loader/SKILL.md +239 -617
  146. package/src/skills/context-optimizer/SKILL.md +0 -30
  147. package/src/skills/github-sync/SKILL.md +1 -19
  148. package/src/skills/increment-planner/SKILL.md +64 -18
  149. package/src/skills/increment-quality-judge/SKILL.md +1 -36
  150. package/src/skills/jira-sync/README.md +1 -38
  151. package/src/skills/role-orchestrator/README.md +1 -22
  152. package/src/skills/role-orchestrator/SKILL.md +1 -59
  153. package/src/skills/skill-router/SKILL.md +0 -18
  154. package/src/skills/spec-kit-expert/SKILL.md +1 -3
  155. package/src/skills/specweave-detector/SKILL.md +225 -275
  156. package/src/skills/task-builder/README.md +1 -7
  157. package/src/templates/AGENTS.md.template +334 -0
  158. package/src/templates/CLAUDE.md.template +131 -298
  159. package/src/templates/README.md.template +115 -23
  160. package/src/templates/environments/minimal/README.md +0 -1
  161. package/INSTALL.md +0 -848
  162. package/SPECWEAVE.md +0 -743
  163. package/src/adapters/copilot/.github/copilot/instructions.md +0 -376
  164. package/src/adapters/cursor/.cursorrules +0 -325
  165. package/src/adapters/generic/SPECWEAVE-MANUAL.md +0 -676
  166. package/src/commands/create-project.md +0 -528
  167. package/src/commands/generate-docs.md +0 -623
  168. package/src/commands/review-docs.md +0 -331
  169. package/src/commands/sync-github.md +0 -115
  170. package/src/skills/ado-sync/test-cases/test-1.yaml +0 -9
  171. package/src/skills/ado-sync/test-cases/test-2.yaml +0 -8
  172. package/src/skills/ado-sync/test-cases/test-3.yaml +0 -9
  173. package/src/skills/bmad-method-expert/test-cases/test-1-placeholder.yaml +0 -12
  174. package/src/skills/bmad-method-expert/test-cases/test-2-placeholder.yaml +0 -12
  175. package/src/skills/bmad-method-expert/test-cases/test-3-placeholder.yaml +0 -12
  176. package/src/skills/brownfield-analyzer/test-cases/test-1-basic-analysis.yaml +0 -48
  177. package/src/skills/brownfield-analyzer/test-cases/test-2-placeholder.yaml +0 -12
  178. package/src/skills/brownfield-analyzer/test-cases/test-3-placeholder.yaml +0 -12
  179. package/src/skills/brownfield-onboarder/test-cases/test-1-placeholder.yaml +0 -12
  180. package/src/skills/brownfield-onboarder/test-cases/test-2-placeholder.yaml +0 -12
  181. package/src/skills/brownfield-onboarder/test-cases/test-3-placeholder.yaml +0 -12
  182. package/src/skills/calendar-system/test-cases/test-1-placeholder.yaml +0 -12
  183. package/src/skills/calendar-system/test-cases/test-2-placeholder.yaml +0 -12
  184. package/src/skills/calendar-system/test-cases/test-3-placeholder.yaml +0 -12
  185. package/src/skills/context-loader/test-cases/test-1-basic-loading.yaml +0 -39
  186. package/src/skills/context-loader/test-cases/test-2-token-budget-exceeded.yaml +0 -44
  187. package/src/skills/context-loader/test-cases/test-3-section-anchors.yaml +0 -45
  188. package/src/skills/context-optimizer/test-cases/test-1-bug-fix-narrow.yaml +0 -97
  189. package/src/skills/context-optimizer/test-cases/test-2-feature-focused.yaml +0 -109
  190. package/src/skills/context-optimizer/test-cases/test-3-architecture-broad.yaml +0 -98
  191. package/src/skills/cost-optimizer/test-cases/test-1-basic-comparison.yaml +0 -75
  192. package/src/skills/cost-optimizer/test-cases/test-2-budget-constraint.yaml +0 -52
  193. package/src/skills/cost-optimizer/test-cases/test-3-scale-requirement.yaml +0 -63
  194. package/src/skills/cost-optimizer/test-results/README.md +0 -46
  195. package/src/skills/design-system-architect/test-cases/test-1-token-structure.yaml +0 -23
  196. package/src/skills/design-system-architect/test-cases/test-2-component-hierarchy.yaml +0 -24
  197. package/src/skills/design-system-architect/test-cases/test-3-accessibility-checklist.yaml +0 -23
  198. package/src/skills/diagrams-architect/test-cases/test-1-c4-context.yaml +0 -13
  199. package/src/skills/diagrams-architect/test-cases/test-2-sequence-diagram.yaml +0 -13
  200. package/src/skills/diagrams-architect/test-cases/test-3-er-diagram.yaml +0 -13
  201. package/src/skills/diagrams-generator/test-cases/test-1.yaml +0 -9
  202. package/src/skills/diagrams-generator/test-cases/test-2.yaml +0 -9
  203. package/src/skills/diagrams-generator/test-cases/test-3.yaml +0 -8
  204. package/src/skills/docs-updater/test-cases/test-1-placeholder.yaml +0 -12
  205. package/src/skills/docs-updater/test-cases/test-2-placeholder.yaml +0 -12
  206. package/src/skills/docs-updater/test-cases/test-3-placeholder.yaml +0 -12
  207. package/src/skills/dotnet-backend/test-cases/test-1-rest-api.yaml +0 -14
  208. package/src/skills/dotnet-backend/test-cases/test-2-authentication.yaml +0 -13
  209. package/src/skills/dotnet-backend/test-cases/test-3-minimal-api.yaml +0 -13
  210. package/src/skills/e2e-playwright/test-cases/TC-001-basic-navigation.yaml +0 -54
  211. package/src/skills/e2e-playwright/test-cases/TC-002-form-interaction.yaml +0 -64
  212. package/src/skills/e2e-playwright/test-cases/TC-003-specweave-integration.yaml +0 -74
  213. package/src/skills/e2e-playwright/test-cases/TC-004-accessibility-check.yaml +0 -98
  214. package/src/skills/figma-designer/test-cases/test-1-design-system.yaml +0 -13
  215. package/src/skills/figma-designer/test-cases/test-2-component-library.yaml +0 -13
  216. package/src/skills/figma-designer/test-cases/test-3-responsive-layout.yaml +0 -13
  217. package/src/skills/figma-implementer/test-cases/test-1-design-to-react.yaml +0 -13
  218. package/src/skills/figma-implementer/test-cases/test-2-storybook.yaml +0 -13
  219. package/src/skills/figma-implementer/test-cases/test-3-design-tokens.yaml +0 -13
  220. package/src/skills/figma-mcp-connector/test-cases/test-1-read-file-desktop.yaml +0 -22
  221. package/src/skills/figma-mcp-connector/test-cases/test-2-read-file-framelink.yaml +0 -21
  222. package/src/skills/figma-mcp-connector/test-cases/test-3-error-handling.yaml +0 -18
  223. package/src/skills/figma-to-code/test-cases/test-1-token-generation.yaml +0 -29
  224. package/src/skills/figma-to-code/test-cases/test-2-component-generation.yaml +0 -27
  225. package/src/skills/figma-to-code/test-cases/test-3-typescript-generation.yaml +0 -28
  226. package/src/skills/frontend/test-cases/test-1-react-component.yaml +0 -13
  227. package/src/skills/frontend/test-cases/test-2-form-validation.yaml +0 -13
  228. package/src/skills/frontend/test-cases/test-3-state-management.yaml +0 -13
  229. package/src/skills/github-sync/test-cases/test-1-placeholder.yaml +0 -12
  230. package/src/skills/github-sync/test-cases/test-2-placeholder.yaml +0 -12
  231. package/src/skills/github-sync/test-cases/test-3-placeholder.yaml +0 -12
  232. package/src/skills/hetzner-provisioner/test-cases/test-1-basic-provision.yaml +0 -71
  233. package/src/skills/hetzner-provisioner/test-cases/test-2-postgres-provision.yaml +0 -85
  234. package/src/skills/hetzner-provisioner/test-cases/test-3-ssl-config.yaml +0 -126
  235. package/src/skills/hetzner-provisioner/test-results/README.md +0 -259
  236. package/src/skills/increment-planner/test-cases/test-1-basic-feature.yaml +0 -27
  237. package/src/skills/increment-planner/test-cases/test-2-complex-feature.yaml +0 -30
  238. package/src/skills/increment-planner/test-cases/test-3-auto-numbering.yaml +0 -24
  239. package/src/skills/increment-quality-judge/test-cases/test-1-good-spec.yaml +0 -95
  240. package/src/skills/increment-quality-judge/test-cases/test-2-poor-spec.yaml +0 -108
  241. package/src/skills/increment-quality-judge/test-cases/test-3-export-suggestions.yaml +0 -87
  242. package/src/skills/jira-sync/test-cases/test-1.yaml +0 -9
  243. package/src/skills/jira-sync/test-cases/test-2.yaml +0 -9
  244. package/src/skills/jira-sync/test-cases/test-3.yaml +0 -10
  245. package/src/skills/nextjs/test-cases/test-1-app-router.yaml +0 -13
  246. package/src/skills/nextjs/test-cases/test-2-server-actions.yaml +0 -13
  247. package/src/skills/nextjs/test-cases/test-3-api-routes.yaml +0 -13
  248. package/src/skills/nodejs-backend/test-cases/test-1-express-api.yaml +0 -13
  249. package/src/skills/nodejs-backend/test-cases/test-2-prisma-orm.yaml +0 -13
  250. package/src/skills/nodejs-backend/test-cases/test-3-authentication.yaml +0 -13
  251. package/src/skills/notification-system/test-cases/test-1-placeholder.yaml +0 -12
  252. package/src/skills/notification-system/test-cases/test-2-placeholder.yaml +0 -12
  253. package/src/skills/notification-system/test-cases/test-3-placeholder.yaml +0 -12
  254. package/src/skills/python-backend/test-cases/test-1-fastapi-crud.yaml +0 -13
  255. package/src/skills/python-backend/test-cases/test-2-sqlalchemy.yaml +0 -13
  256. package/src/skills/python-backend/test-cases/test-3-authentication.yaml +0 -13
  257. package/src/skills/role-orchestrator/test-cases/test-1-simple-product.yaml +0 -98
  258. package/src/skills/role-orchestrator/test-cases/test-2-quality-gate-failure.yaml +0 -73
  259. package/src/skills/role-orchestrator/test-cases/test-3-security-workflow.yaml +0 -121
  260. package/src/skills/role-orchestrator/test-cases/test-4-parallel-execution.yaml +0 -145
  261. package/src/skills/role-orchestrator/test-cases/test-5-feedback-loops.yaml +0 -149
  262. package/src/skills/skill-creator/test-cases/test-1-placeholder.yaml +0 -12
  263. package/src/skills/skill-creator/test-cases/test-2-placeholder.yaml +0 -12
  264. package/src/skills/skill-creator/test-cases/test-3-placeholder.yaml +0 -12
  265. package/src/skills/skill-router/test-cases/test-1-basic-routing.yaml +0 -33
  266. package/src/skills/skill-router/test-cases/test-2-ambiguous-request.yaml +0 -42
  267. package/src/skills/skill-router/test-cases/test-3-nested-orchestration.yaml +0 -50
  268. package/src/skills/spec-driven-brainstorming/test-cases/TC-001-simple-idea-to-design.yaml +0 -148
  269. package/src/skills/spec-driven-brainstorming/test-cases/TC-002-complex-ultrathink-design.yaml +0 -190
  270. package/src/skills/spec-driven-brainstorming/test-cases/TC-003-unclear-requirements-socratic.yaml +0 -233
  271. package/src/skills/spec-driven-debugging/test-cases/TC-001-simple-auth-bug.yaml +0 -212
  272. package/src/skills/spec-driven-debugging/test-cases/TC-002-race-condition-ultrathink.yaml +0 -461
  273. package/src/skills/spec-driven-debugging/test-cases/TC-003-brownfield-missing-spec.yaml +0 -366
  274. package/src/skills/spec-kit-expert/test-cases/test-1-placeholder.yaml +0 -12
  275. package/src/skills/spec-kit-expert/test-cases/test-2-placeholder.yaml +0 -12
  276. package/src/skills/spec-kit-expert/test-cases/test-3-placeholder.yaml +0 -12
  277. package/src/skills/specweave-ado-mapper/test-cases/test-1-export-to-ado.yaml +0 -13
  278. package/src/skills/specweave-ado-mapper/test-cases/test-2-import-from-ado.yaml +0 -13
  279. package/src/skills/specweave-ado-mapper/test-cases/test-3-bidirectional-sync.yaml +0 -13
  280. package/src/skills/specweave-detector/test-cases/test-1-basic-detection.yaml +0 -37
  281. package/src/skills/specweave-detector/test-cases/test-2-missing-config.yaml +0 -37
  282. package/src/skills/specweave-detector/test-cases/test-3-non-specweave-project.yaml +0 -34
  283. package/src/skills/specweave-jira-mapper/test-cases/test-1-export-to-jira.yaml +0 -13
  284. package/src/skills/specweave-jira-mapper/test-cases/test-2-import-from-jira.yaml +0 -13
  285. package/src/skills/specweave-jira-mapper/test-cases/test-3-sync-status.yaml +0 -13
  286. package/src/skills/stripe-integrator/test-cases/test-1-placeholder.yaml +0 -12
  287. package/src/skills/stripe-integrator/test-cases/test-2-placeholder.yaml +0 -12
  288. package/src/skills/stripe-integrator/test-cases/test-3-placeholder.yaml +0 -12
  289. package/src/skills/task-builder/test-cases/test-1-placeholder.yaml +0 -12
  290. package/src/skills/task-builder/test-cases/test-2-placeholder.yaml +0 -12
  291. package/src/skills/task-builder/test-cases/test-3-placeholder.yaml +0 -12
  292. package/src/templates/config.yaml +0 -351
  293. /package/src/commands/{list-increments.md → specweave.list-increments.md} +0 -0
@@ -0,0 +1,333 @@
1
+ /**
2
+ * Codex Adapter (OpenAI)
3
+ *
4
+ * Semi-automation adapter for OpenAI Codex (ChatGPT Code Interpreter/Codex CLI).
5
+ * Uses universal AGENTS.md file for instructions.
6
+ *
7
+ * Codex features:
8
+ * - Works in CLI, IDE, web, GitHub, iOS app
9
+ * - GPT-5-Codex optimized for engineering tasks
10
+ * - File read/write operations
11
+ * - Test execution and validation
12
+ * - Task-based isolated environments
13
+ */
14
+
15
+ import * as path from 'path';
16
+ import fs from 'fs-extra';
17
+ import { AdapterBase } from '../adapter-base.js';
18
+ import { AdapterOptions, AdapterFile } from '../adapter-interface.js';
19
+ import { AgentsMdGenerator } from '../agents-md-generator.js';
20
+ import { getDirname } from '../../utils/esm-helpers.js';
21
+
22
+ const __dirname = getDirname(import.meta.url);
23
+
24
+ export class CodexAdapter extends AdapterBase {
25
+ name = 'codex';
26
+ description = 'OpenAI Codex adapter - Semi-automation with AGENTS.md and task-based execution';
27
+ automationLevel = 'semi' as const;
28
+
29
+ /**
30
+ * Detect if Codex is available
31
+ *
32
+ * Checks for:
33
+ * - codex command in PATH (Codex CLI)
34
+ * - .codex/ directory exists
35
+ * - AGENTS.md file exists (previously configured)
36
+ */
37
+ async detect(): Promise<boolean> {
38
+ const hasCodexCLI = await this.commandExists('codex');
39
+ const hasCodexDir = await this.fileExists('.codex');
40
+ const hasAgentsMd = await this.fileExists('AGENTS.md');
41
+
42
+ return hasCodexCLI || hasCodexDir || hasAgentsMd;
43
+ }
44
+
45
+ /**
46
+ * Get files to install for Codex adapter
47
+ */
48
+ getFiles(): AdapterFile[] {
49
+ return [
50
+ {
51
+ sourcePath: 'AGENTS.md',
52
+ targetPath: 'AGENTS.md',
53
+ description: 'Universal SpecWeave instructions (works with all AI tools)'
54
+ },
55
+ {
56
+ sourcePath: 'README.md',
57
+ targetPath: '.codex/README.md',
58
+ description: 'Codex adapter documentation'
59
+ }
60
+ ];
61
+ }
62
+
63
+ /**
64
+ * Install Codex adapter
65
+ */
66
+ async install(options: AdapterOptions): Promise<void> {
67
+ console.log('\nšŸ“¦ Installing OpenAI Codex Adapter (Semi-Automation)\n');
68
+
69
+ // Ensure .codex directory exists
70
+ const codexDir = path.join(options.projectPath, '.codex');
71
+ await fs.ensureDir(codexDir);
72
+
73
+ // Generate AGENTS.md
74
+ const agentsMdPath = path.join(options.projectPath, 'AGENTS.md');
75
+ await this.generateAgentsMd(agentsMdPath, options);
76
+
77
+ // Copy README
78
+ const readmePath = path.join(__dirname, 'README.md');
79
+ if (await fs.pathExists(readmePath)) {
80
+ await fs.copy(readmePath, path.join(codexDir, 'README.md'));
81
+ }
82
+
83
+ console.log('\n✨ Codex adapter installed!');
84
+ console.log('\nšŸ“‹ Files created:');
85
+ console.log(' - AGENTS.md (universal instructions)');
86
+ console.log(' - .codex/README.md (adapter documentation)');
87
+ }
88
+
89
+ /**
90
+ * Generate AGENTS.md file
91
+ */
92
+ private async generateAgentsMd(targetPath: string, options: AdapterOptions): Promise<void> {
93
+ const generator = new AgentsMdGenerator(
94
+ path.join(__dirname, '../../skills'),
95
+ path.join(__dirname, '../../agents'),
96
+ path.join(__dirname, '../../commands')
97
+ );
98
+
99
+ const content = await generator.generate({
100
+ projectName: options.projectName,
101
+ projectPath: options.projectPath
102
+ });
103
+
104
+ await fs.writeFile(targetPath, content);
105
+ console.log(' āœ… AGENTS.md - Universal SpecWeave instructions');
106
+ }
107
+
108
+ /**
109
+ * Post-installation instructions
110
+ */
111
+ async postInstall(options: AdapterOptions): Promise<void> {
112
+ console.log(this.getInstructions());
113
+ }
114
+
115
+ /**
116
+ * Get usage instructions for Codex adapter
117
+ */
118
+ getInstructions(): string {
119
+ return `
120
+ ================================================================
121
+ OpenAI Codex Adapter - Semi-Automation
122
+ ================================================================
123
+
124
+ Your project is now configured for OpenAI Codex with SEMI-automation!
125
+
126
+ WHAT THIS PROVIDES:
127
+
128
+ - AGENTS.md (Universal Instructions)
129
+ - Works with Codex CLI, ChatGPT web, and IDEs
130
+ - Auto-generated from actual skills/agents
131
+ - SpecWeave structure and workflows
132
+ - GPT-5-Codex optimized guidance
133
+
134
+ - Task-Based Execution
135
+ - Isolated environments per task
136
+ - File read/write operations
137
+ - Test execution and validation
138
+
139
+ QUICK START:
140
+
141
+ **Option 1: Codex CLI** (Fastest)
142
+
143
+ 1. Install Codex CLI:
144
+
145
+ # Included with ChatGPT Plus, Pro, Business, Enterprise
146
+ npm install -g openai-codex-cli
147
+
148
+ 2. Create your first feature:
149
+
150
+ codex "Read AGENTS.md and create increment for user authentication"
151
+
152
+ Codex will:
153
+ - Read AGENTS.md for SpecWeave context
154
+ - Adopt PM role: Create spec.md (WHAT/WHY)
155
+ - Adopt Architect role: Create plan.md (HOW)
156
+ - Create tasks.md
157
+ - Execute in isolated environment
158
+
159
+ **Option 2: ChatGPT Web** (Most Accessible)
160
+
161
+ 1. Open ChatGPT (Plus/Pro/Business/Enterprise)
162
+
163
+ 2. Upload AGENTS.md file
164
+
165
+ 3. Say:
166
+ "I'm using SpecWeave framework. Create increment for user authentication."
167
+
168
+ 4. Copy generated content to files:
169
+ - spec.md
170
+ - plan.md
171
+ - tasks.md
172
+
173
+ **Option 3: IDE Integration** (If available in your IDE)
174
+
175
+ Use Codex integration in your IDE (VS Code, JetBrains, etc.)
176
+ Reference AGENTS.md for SpecWeave structure.
177
+
178
+ HOW TO USE:
179
+
180
+ **With Codex CLI**:
181
+ \`\`\`bash
182
+ # Explicit reference (recommended):
183
+ codex "Read AGENTS.md and [your request]"
184
+
185
+ # Natural language:
186
+ codex "Create a new feature following SpecWeave structure"
187
+
188
+ # With context:
189
+ codex "Following the PM role in AGENTS.md, create requirements for payments"
190
+ \`\`\`
191
+
192
+ **With ChatGPT Web**:
193
+ 1. Upload AGENTS.md at start of conversation
194
+ 2. Reference it: "Following AGENTS.md, create increment for..."
195
+ 3. Download or copy-paste generated files
196
+
197
+ CONTEXT LOADING (70%+ Token Savings):
198
+
199
+ CRITICAL: Tell Codex to read context-manifest.yaml first!
200
+
201
+ \`\`\`bash
202
+ # CLI:
203
+ codex "Read context-manifest.yaml from increment 0001, load only those files, then implement task T001"
204
+
205
+ # Web:
206
+ # 1. Upload context-manifest.yaml
207
+ # 2. Upload only files listed in manifest
208
+ # 3. Request task implementation
209
+ \`\`\`
210
+
211
+ FEATURES:
212
+
213
+ āœ… GPT-5-Codex Model
214
+ - Optimized for engineering tasks
215
+ - Trained on complex, real-world projects
216
+ - Code generation, debugging, refactoring
217
+
218
+ āœ… Task-Based Execution
219
+ - Each task in isolated environment
220
+ - Real-time progress monitoring
221
+ - Verifiable evidence (citations, logs)
222
+
223
+ āœ… File Operations
224
+ - Read and edit files
225
+ - Run commands (tests, linters, type checkers)
226
+ - Create new files and directories
227
+
228
+ āœ… Multiple Access Points
229
+ - CLI (fastest)
230
+ - Web (most accessible)
231
+ - IDE (most integrated)
232
+ - GitHub (for PRs)
233
+ - iOS app (mobile)
234
+
235
+ āœ… Test Execution
236
+ - Run test harnesses
237
+ - Validate implementations
238
+ - Ensure quality
239
+
240
+ EXAMPLE WORKFLOWS:
241
+
242
+ 1. **Create Feature (CLI)**:
243
+ \`\`\`bash
244
+ codex "Read AGENTS.md. Create increment 0002 for payment processing with Stripe. Follow SpecWeave structure."
245
+ \`\`\`
246
+
247
+ 2. **Create Feature (Web)**:
248
+ - Upload AGENTS.md
249
+ - Say: "Create increment for payment processing"
250
+ - Download generated files
251
+
252
+ 3. **Implement Task**:
253
+ \`\`\`bash
254
+ codex "Read increment 0002, implement task T001 (Setup Stripe SDK)"
255
+ \`\`\`
256
+
257
+ 4. **Fix Bug**:
258
+ \`\`\`bash
259
+ codex "Read AGENTS.md and increment 0001. Fix authentication bug. Run tests."
260
+ \`\`\`
261
+
262
+ 5. **Code Review**:
263
+ \`\`\`bash
264
+ codex "Adopt Tech Lead role from AGENTS.md. Review src/auth/ code."
265
+ \`\`\`
266
+
267
+ TIPS & TRICKS:
268
+
269
+ 1. **Always Reference AGENTS.md**
270
+ - CLI: Explicit in command
271
+ - Web: Upload at conversation start
272
+
273
+ 2. **Use Task-Based Approach**
274
+ - Break work into tasks (T001, T002, etc.)
275
+ - Each task runs in isolated environment
276
+ - Easier to track and validate
277
+
278
+ 3. **Monitor Progress**
279
+ - CLI shows real-time progress (1-30 minutes per task)
280
+ - Web shows thinking process
281
+ - Review citations and logs
282
+
283
+ 4. **Leverage Multiple Access Points**
284
+ - CLI for speed
285
+ - Web for accessibility
286
+ - IDE for integration
287
+
288
+ 5. **Validate with Tests**
289
+ - Codex can run tests automatically
290
+ - Verify implementations work
291
+
292
+ COMPARISON:
293
+
294
+ | Feature | Claude Code | Codex |
295
+ |---------|-------------|-------|
296
+ | **Automation** | Full | Semi |
297
+ | **Skills** | Native | Via AGENTS.md |
298
+ | **Agents** | Native | Via AGENTS.md |
299
+ | **Access** | CLI only | CLI + Web + IDE + GitHub + iOS |
300
+ | **Model** | Sonnet 4.5 | GPT-5-Codex |
301
+ | **Task Isolation** | No | Yes (isolated environments) |
302
+
303
+ LIMITATIONS:
304
+
305
+ - No native skills/agents (manual role adoption via AGENTS.md)
306
+ - No hooks (can't auto-update docs on events)
307
+ - Tasks run 1-30 minutes (not instant)
308
+ - Requires ChatGPT Plus/Pro/Business/Enterprise
309
+
310
+ But very powerful with GPT-5-Codex and multiple access points!
311
+
312
+ PLANS & PRICING:
313
+
314
+ - **ChatGPT Plus**: $20/month (includes Codex CLI + Web)
315
+ - **ChatGPT Pro**: $200/month (unlimited, faster)
316
+ - **Business/Enterprise**: Custom pricing
317
+
318
+ Free trial may be available - check OpenAI website.
319
+
320
+ DOCUMENTATION:
321
+
322
+ - AGENTS.md: Universal SpecWeave instructions (READ THIS!)
323
+ - SPECWEAVE.md: Complete framework documentation
324
+ - .codex/README.md: Codex adapter guide
325
+ - https://openai.com/codex/
326
+
327
+ You're ready to build with SpecWeave on OpenAI Codex!
328
+
329
+ Pro tip: Use CLI for speed, Web for accessibility, and always
330
+ reference AGENTS.md for SpecWeave structure!
331
+ `;
332
+ }
333
+ }
@@ -2,73 +2,52 @@
2
2
  * GitHub Copilot Adapter
3
3
  *
4
4
  * Basic automation adapter for GitHub Copilot.
5
- * Provides workspace instructions that Copilot reads for context and suggestions.
5
+ * Copilot automatically reads AGENTS.md (universal standard) for context and suggestions.
6
6
  *
7
- * Since GitHub Copilot has limited configuration (workspace instructions only),
8
- * this adapter focuses on clear, structured guidance that Copilot can use
9
- * to provide better code suggestions and completions.
7
+ * This adapter requires no additional files - Copilot reads AGENTS.md automatically.
10
8
  */
11
9
 
12
10
  import * as path from 'path';
13
- import * as fs from 'fs-extra';
14
- import { AdapterBase } from '../adapter-base';
15
- import { AdapterOptions, AdapterFile } from '../adapter-interface';
11
+ import fs from 'fs-extra';
12
+ import { AdapterBase } from '../adapter-base.js';
13
+ import { AdapterOptions, AdapterFile } from '../adapter-interface.js';
16
14
 
17
15
  export class CopilotAdapter extends AdapterBase {
18
16
  name = 'copilot';
19
- description = 'GitHub Copilot adapter - Basic automation with workspace instructions';
17
+ description = 'GitHub Copilot adapter - Basic automation with AGENTS.md';
20
18
  automationLevel = 'basic' as const;
21
19
 
22
20
  /**
23
21
  * Detect if GitHub Copilot is available
24
22
  *
25
- * Checks for:
26
- * - .github/copilot/instructions.md exists
27
- * - VS Code with Copilot extension
23
+ * Note: Detection is best-effort since Copilot might be installed
24
+ * but we can't detect it reliably. This adapter is safe to use
25
+ * as a fallback since Copilot reads AGENTS.md (universal standard).
28
26
  */
29
27
  async detect(): Promise<boolean> {
30
- const hasInstructions = await this.fileExists('.github/copilot/instructions.md');
31
- const hasGitHubDir = await this.fileExists('.github');
32
-
33
- // Check for VS Code Copilot extension (best effort)
34
- // This is approximate - Copilot might be installed but we can't detect reliably
35
- return hasInstructions || hasGitHubDir;
28
+ // Always return false to make this a manual selection
29
+ // Users can explicitly choose Copilot adapter if they want
30
+ return false;
36
31
  }
37
32
 
38
33
  /**
39
34
  * Get files to install for Copilot adapter
35
+ *
36
+ * Note: Copilot automatically reads AGENTS.md (universal standard).
37
+ * No additional files needed.
40
38
  */
41
39
  getFiles(): AdapterFile[] {
42
- return [
43
- {
44
- sourcePath: '.github/copilot/instructions.md',
45
- targetPath: '.github/copilot/instructions.md',
46
- description: 'GitHub Copilot workspace instructions'
47
- },
48
- {
49
- sourcePath: 'README.md',
50
- targetPath: '.github/copilot/README.md',
51
- description: 'Copilot adapter documentation'
52
- }
53
- ];
40
+ return [];
54
41
  }
55
42
 
56
43
  /**
57
44
  * Install Copilot adapter
58
45
  */
59
46
  async install(options: AdapterOptions): Promise<void> {
60
- console.log('\nšŸ“¦ Installing GitHub Copilot Adapter (Basic Automation)\n');
61
-
62
- // Ensure .github/copilot directory exists
63
- const copilotDir = path.join(options.projectPath, '.github', 'copilot');
64
- await fs.ensureDir(copilotDir);
65
-
66
- // Copy files
67
- await super.install(options);
47
+ console.log('\nšŸ“¦ Configuring GitHub Copilot (Basic Automation)\n');
68
48
 
69
- console.log('\n✨ Copilot adapter installed!');
70
- console.log('\nšŸ“‹ Files created:');
71
- console.log(' - .github/copilot/instructions.md (workspace guidance)');
49
+ // No files to install - Copilot reads AGENTS.md automatically
50
+ console.log('āœ… Copilot will automatically read AGENTS.md');
72
51
  }
73
52
 
74
53
  /**
@@ -91,14 +70,14 @@ Your project is now configured for GitHub Copilot!
91
70
 
92
71
  WHAT THIS PROVIDES:
93
72
 
94
- - Workspace Instructions (.github/copilot/instructions.md)
95
- - Project overview (SpecWeave framework)
96
- - Workflow guidance (creating increments)
97
- - Context manifest explanation
98
- - File structure reference
73
+ - AGENTS.md (Universal Standard)
74
+ - Copilot automatically reads this file
75
+ - Contains all workflow instructions
76
+ - Project structure and templates
77
+ - Following agents.md standard (https://agents.md/)
99
78
 
100
79
  - Better Code Suggestions
101
- - Copilot reads workspace instructions
80
+ - Copilot reads AGENTS.md for context
102
81
  - Suggests code following SpecWeave patterns
103
82
  - Understands project structure
104
83
 
@@ -108,26 +87,22 @@ Claude Code (Full Automation):
108
87
  - Native skills (auto-activate)
109
88
  - Native agents (separate context windows)
110
89
  - Native hooks (auto-update docs)
111
- - Slash commands
90
+ - Slash commands (/inc, /do, /done)
112
91
 
113
92
  Cursor (Semi-Automation):
114
- - Simulated skills (.cursorrules)
115
- - Simulated agents (manual roles)
93
+ - Reads AGENTS.md for workflow
116
94
  - @ context shortcuts
95
+ - Composer multi-file editing
117
96
 
118
97
  Copilot (Basic Automation - This Adapter):
119
- - Workspace instructions only
98
+ - Reads AGENTS.md automatically
120
99
  - Better code suggestions
121
100
  - No skills, agents, hooks, or commands
122
101
  - Manual workflow with AI assistance
123
102
 
124
- HOW WE BRIDGE THE GAP:
103
+ HOW COPILOT USES AGENTS.MD:
125
104
 
126
- GitHub Copilot doesn't support custom commands or complex
127
- workflows. But it DOES read workspace instructions to provide
128
- better code suggestions.
129
-
130
- We provide clear instructions that teach Copilot about:
105
+ GitHub Copilot automatically reads AGENTS.md to understand:
131
106
  - SpecWeave structure (.specweave/ folders)
132
107
  - File naming conventions (spec.md, plan.md, tasks.md)
133
108
  - Context manifests (what files to reference)
@@ -137,12 +112,11 @@ Result: Copilot suggests code that fits SpecWeave patterns!
137
112
 
138
113
  HOW TO USE SPECWEAVE WITH COPILOT:
139
114
 
140
- 1. Copilot reads workspace instructions automatically
115
+ 1. Copilot reads AGENTS.md automatically
141
116
  - No action needed - just open project in VS Code
142
117
  - Copilot will suggest code following SpecWeave patterns
143
118
 
144
119
  2. Create increments manually:
145
-
146
120
  mkdir -p .specweave/increments/0001-user-auth
147
121
 
148
122
  3. Reference context manifests:
@@ -157,20 +131,19 @@ HOW TO USE SPECWEAVE WITH COPILOT:
157
131
 
158
132
  5. Use Copilot inline suggestions:
159
133
  Start typing in spec.md → Copilot suggests content
160
- Following SpecWeave patterns from instructions.md
134
+ Following SpecWeave patterns from AGENTS.md
161
135
 
162
136
  WORKFLOW EXAMPLE:
163
137
 
164
138
  Creating a Feature:
165
139
 
166
140
  1. Create increment folder:
167
-
168
141
  mkdir -p .specweave/increments/0002-payments
169
142
  cd .specweave/increments/0002-payments
170
143
 
171
144
  2. Create spec.md:
172
145
  - Open file, start typing frontmatter
173
- - Copilot suggests SpecWeave structure
146
+ - Copilot suggests SpecWeave structure (from AGENTS.md)
174
147
  - Fill in user stories, acceptance criteria
175
148
 
176
149
  3. Create plan.md:
@@ -191,14 +164,12 @@ LIMITATIONS (vs Claude Code & Cursor):
191
164
  - Completely manual workflow
192
165
 
193
166
  But Copilot still provides helpful suggestions!
194
- - Understands SpecWeave structure from instructions
167
+ - Understands SpecWeave structure from AGENTS.md
195
168
  - Suggests code following project patterns
196
169
 
197
170
  DOCUMENTATION:
198
171
 
199
- - SPECWEAVE.md: Complete development guide
200
- - .github/copilot/instructions.md: Workspace instructions
201
- - .github/copilot/README.md: Copilot adapter guide
172
+ - AGENTS.md: Universal workflow instructions (Copilot reads this!)
202
173
  - .specweave/docs/: Project documentation
203
174
 
204
175
  You're ready to build with SpecWeave on GitHub Copilot!
@@ -21,7 +21,6 @@ A skill is a specialized capability that activates automatically when relevant.
21
21
 
22
22
  ## increment-planner Skill
23
23
  When user says "create increment":
24
- 1. Read .specweave/config.yaml
25
24
  2. Auto-increment number
26
25
  3. Create spec.md (act as PM role)
27
26
  4. Create plan.md (act as Architect role)
@@ -126,7 +125,6 @@ npx specweave init my-project --adapter cursor
126
125
  **User**: "Create increment for user authentication"
127
126
 
128
127
  **Cursor** (following .cursorrules):
129
- 1. āœ… Read .specweave/config.yaml
130
128
  2. āœ… Find next increment number (0003)
131
129
  3. āœ… Create folder: `.specweave/increments/0003-user-authentication/`
132
130
  4. āœ… Act as PM: Create spec.md (WHAT/WHY, user stories, acceptance criteria)