specweave 0.6.8 → 0.7.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 (255) hide show
  1. package/.claude-plugin/README.md +1 -1
  2. package/CLAUDE.md +903 -99
  3. package/README.md +143 -207
  4. package/bin/specweave.js +67 -0
  5. package/dist/cli/commands/abandon.d.ts +13 -0
  6. package/dist/cli/commands/abandon.d.ts.map +1 -0
  7. package/dist/cli/commands/abandon.js +15 -0
  8. package/dist/cli/commands/abandon.js.map +1 -0
  9. package/dist/cli/commands/init.d.ts.map +1 -1
  10. package/dist/cli/commands/init.js +90 -18
  11. package/dist/cli/commands/init.js.map +1 -1
  12. package/dist/cli/commands/pause.d.ts +13 -0
  13. package/dist/cli/commands/pause.d.ts.map +1 -0
  14. package/dist/cli/commands/pause.js +15 -0
  15. package/dist/cli/commands/pause.js.map +1 -0
  16. package/dist/cli/commands/qa.d.ts +54 -0
  17. package/dist/cli/commands/qa.d.ts.map +1 -0
  18. package/dist/cli/commands/qa.js +98 -0
  19. package/dist/cli/commands/qa.js.map +1 -0
  20. package/dist/cli/commands/resume.d.ts +12 -0
  21. package/dist/cli/commands/resume.d.ts.map +1 -0
  22. package/dist/cli/commands/resume.js +14 -0
  23. package/dist/cli/commands/resume.js.map +1 -0
  24. package/dist/cli/commands/status.d.ts +12 -0
  25. package/dist/cli/commands/status.d.ts.map +1 -0
  26. package/dist/cli/commands/status.js +23 -0
  27. package/dist/cli/commands/status.js.map +1 -0
  28. package/dist/cli/helpers/issue-tracker/ado.d.ts +57 -0
  29. package/dist/cli/helpers/issue-tracker/ado.d.ts.map +1 -0
  30. package/dist/cli/helpers/issue-tracker/ado.js +223 -0
  31. package/dist/cli/helpers/issue-tracker/ado.js.map +1 -0
  32. package/dist/cli/helpers/issue-tracker/github.d.ts +65 -0
  33. package/dist/cli/helpers/issue-tracker/github.d.ts.map +1 -0
  34. package/dist/cli/helpers/issue-tracker/github.js +284 -0
  35. package/dist/cli/helpers/issue-tracker/github.js.map +1 -0
  36. package/dist/cli/helpers/issue-tracker/index.d.ts +22 -0
  37. package/dist/cli/helpers/issue-tracker/index.d.ts.map +1 -0
  38. package/dist/cli/helpers/issue-tracker/index.js +270 -0
  39. package/dist/cli/helpers/issue-tracker/index.js.map +1 -0
  40. package/dist/cli/helpers/issue-tracker/jira.d.ts +61 -0
  41. package/dist/cli/helpers/issue-tracker/jira.d.ts.map +1 -0
  42. package/dist/cli/helpers/issue-tracker/jira.js +265 -0
  43. package/dist/cli/helpers/issue-tracker/jira.js.map +1 -0
  44. package/dist/cli/helpers/issue-tracker/types.d.ts +86 -0
  45. package/dist/cli/helpers/issue-tracker/types.d.ts.map +1 -0
  46. package/dist/cli/helpers/issue-tracker/types.js +16 -0
  47. package/dist/cli/helpers/issue-tracker/types.js.map +1 -0
  48. package/dist/cli/helpers/issue-tracker/utils.d.ts +103 -0
  49. package/dist/cli/helpers/issue-tracker/utils.d.ts.map +1 -0
  50. package/dist/cli/helpers/issue-tracker/utils.js +240 -0
  51. package/dist/cli/helpers/issue-tracker/utils.js.map +1 -0
  52. package/dist/core/increment/limits.d.ts +68 -0
  53. package/dist/core/increment/limits.d.ts.map +1 -0
  54. package/dist/core/increment/limits.js +224 -0
  55. package/dist/core/increment/limits.js.map +1 -0
  56. package/dist/core/increment/metadata-manager.d.ts +114 -0
  57. package/dist/core/increment/metadata-manager.d.ts.map +1 -0
  58. package/dist/core/increment/metadata-manager.js +320 -0
  59. package/dist/core/increment/metadata-manager.js.map +1 -0
  60. package/dist/core/increment/status-commands.d.ts +43 -0
  61. package/dist/core/increment/status-commands.d.ts.map +1 -0
  62. package/dist/core/increment/status-commands.js +277 -0
  63. package/dist/core/increment/status-commands.js.map +1 -0
  64. package/dist/core/plugin-detector.d.ts +1 -0
  65. package/dist/core/plugin-detector.d.ts.map +1 -1
  66. package/dist/core/plugin-detector.js +25 -0
  67. package/dist/core/plugin-detector.js.map +1 -1
  68. package/dist/core/qa/qa-runner.d.ts +16 -0
  69. package/dist/core/qa/qa-runner.d.ts.map +1 -0
  70. package/dist/core/qa/qa-runner.js +404 -0
  71. package/dist/core/qa/qa-runner.js.map +1 -0
  72. package/dist/core/qa/quality-gate-decider.d.ts +53 -0
  73. package/dist/core/qa/quality-gate-decider.d.ts.map +1 -0
  74. package/dist/core/qa/quality-gate-decider.js +268 -0
  75. package/dist/core/qa/quality-gate-decider.js.map +1 -0
  76. package/dist/core/qa/risk-calculator.d.ts +126 -0
  77. package/dist/core/qa/risk-calculator.d.ts.map +1 -0
  78. package/dist/core/qa/risk-calculator.js +247 -0
  79. package/dist/core/qa/risk-calculator.js.map +1 -0
  80. package/dist/core/qa/types.d.ts +315 -0
  81. package/dist/core/qa/types.d.ts.map +1 -0
  82. package/dist/core/qa/types.js +8 -0
  83. package/dist/core/qa/types.js.map +1 -0
  84. package/dist/core/types/config.d.ts +35 -0
  85. package/dist/core/types/config.d.ts.map +1 -1
  86. package/dist/core/types/config.js +16 -0
  87. package/dist/core/types/config.js.map +1 -1
  88. package/dist/core/types/increment-metadata.d.ts +120 -0
  89. package/dist/core/types/increment-metadata.d.ts.map +1 -0
  90. package/dist/core/types/increment-metadata.js +138 -0
  91. package/dist/core/types/increment-metadata.js.map +1 -0
  92. package/dist/hooks/lib/invoke-translator-skill.d.ts +60 -0
  93. package/dist/hooks/lib/invoke-translator-skill.d.ts.map +1 -0
  94. package/dist/hooks/lib/invoke-translator-skill.js +201 -0
  95. package/dist/hooks/lib/invoke-translator-skill.js.map +1 -0
  96. package/dist/hooks/lib/translate-file.d.ts +59 -0
  97. package/dist/hooks/lib/translate-file.d.ts.map +1 -0
  98. package/dist/hooks/lib/translate-file.js +350 -0
  99. package/dist/hooks/lib/translate-file.js.map +1 -0
  100. package/dist/locales/en/cli.json +3 -1
  101. package/dist/metrics/calculators/change-failure-rate.d.ts +22 -0
  102. package/dist/metrics/calculators/change-failure-rate.d.ts.map +1 -0
  103. package/dist/metrics/calculators/change-failure-rate.js +70 -0
  104. package/dist/metrics/calculators/change-failure-rate.js.map +1 -0
  105. package/dist/metrics/calculators/deployment-frequency.d.ts +20 -0
  106. package/dist/metrics/calculators/deployment-frequency.d.ts.map +1 -0
  107. package/dist/metrics/calculators/deployment-frequency.js +61 -0
  108. package/dist/metrics/calculators/deployment-frequency.js.map +1 -0
  109. package/dist/metrics/calculators/lead-time.d.ts +22 -0
  110. package/dist/metrics/calculators/lead-time.d.ts.map +1 -0
  111. package/dist/metrics/calculators/lead-time.js +82 -0
  112. package/dist/metrics/calculators/lead-time.js.map +1 -0
  113. package/dist/metrics/calculators/mttr.d.ts +21 -0
  114. package/dist/metrics/calculators/mttr.d.ts.map +1 -0
  115. package/dist/metrics/calculators/mttr.js +60 -0
  116. package/dist/metrics/calculators/mttr.js.map +1 -0
  117. package/dist/metrics/dora-calculator.d.ts +24 -0
  118. package/dist/metrics/dora-calculator.d.ts.map +1 -0
  119. package/dist/metrics/dora-calculator.js +104 -0
  120. package/dist/metrics/dora-calculator.js.map +1 -0
  121. package/dist/metrics/github-client.d.ts +51 -0
  122. package/dist/metrics/github-client.d.ts.map +1 -0
  123. package/dist/metrics/github-client.js +133 -0
  124. package/dist/metrics/github-client.js.map +1 -0
  125. package/dist/metrics/types.d.ts +112 -0
  126. package/dist/metrics/types.d.ts.map +1 -0
  127. package/dist/metrics/types.js +10 -0
  128. package/dist/metrics/types.js.map +1 -0
  129. package/dist/metrics/utils/percentile.d.ts +25 -0
  130. package/dist/metrics/utils/percentile.d.ts.map +1 -0
  131. package/dist/metrics/utils/percentile.js +46 -0
  132. package/dist/metrics/utils/percentile.js.map +1 -0
  133. package/dist/metrics/utils/tier-classifier.d.ts +61 -0
  134. package/dist/metrics/utils/tier-classifier.d.ts.map +1 -0
  135. package/dist/metrics/utils/tier-classifier.js +100 -0
  136. package/dist/metrics/utils/tier-classifier.js.map +1 -0
  137. package/dist/utils/auth-helpers.d.ts +58 -0
  138. package/dist/utils/auth-helpers.d.ts.map +1 -0
  139. package/dist/utils/auth-helpers.js +108 -0
  140. package/dist/utils/auth-helpers.js.map +1 -0
  141. package/dist/utils/env-file.d.ts +88 -0
  142. package/dist/utils/env-file.d.ts.map +1 -0
  143. package/dist/utils/env-file.js +180 -0
  144. package/dist/utils/env-file.js.map +1 -0
  145. package/dist/utils/plugin-detection.d.ts +50 -0
  146. package/dist/utils/plugin-detection.d.ts.map +1 -0
  147. package/dist/utils/plugin-detection.js +229 -0
  148. package/dist/utils/plugin-detection.js.map +1 -0
  149. package/dist/utils/secrets-loader.d.ts +88 -0
  150. package/dist/utils/secrets-loader.d.ts.map +1 -0
  151. package/dist/utils/secrets-loader.js +271 -0
  152. package/dist/utils/secrets-loader.js.map +1 -0
  153. package/dist/utils/translation.d.ts +187 -0
  154. package/dist/utils/translation.d.ts.map +1 -0
  155. package/dist/utils/translation.js +414 -0
  156. package/dist/utils/translation.js.map +1 -0
  157. package/package.json +28 -44
  158. package/plugins/specweave/.claude-plugin/plugin.json +3 -3
  159. package/plugins/specweave/agents/pm/AGENT.md +330 -54
  160. package/plugins/specweave/agents/test-aware-planner/AGENT.md +1035 -0
  161. package/plugins/specweave/agents/test-aware-planner/templates/README.md +118 -0
  162. package/plugins/specweave/agents/test-aware-planner/templates/task-non-testable.md.template +24 -0
  163. package/plugins/specweave/agents/test-aware-planner/templates/task-testable.md.template +53 -0
  164. package/plugins/specweave/agents/test-aware-planner/templates/tasks-frontmatter.md.template +11 -0
  165. package/plugins/specweave/commands/README.md +88 -163
  166. package/plugins/specweave/commands/specweave-abandon.md +314 -0
  167. package/plugins/specweave/commands/specweave-check-tests.md +546 -0
  168. package/plugins/specweave/commands/{do.md → specweave-do.md} +5 -7
  169. package/plugins/specweave/commands/{increment.md → specweave-increment.md} +231 -4
  170. package/plugins/specweave/commands/specweave-pause.md +189 -0
  171. package/plugins/specweave/commands/specweave-qa.md +245 -0
  172. package/plugins/specweave/commands/specweave-resume.md +216 -0
  173. package/plugins/specweave/commands/specweave-status.md +397 -0
  174. package/plugins/specweave/commands/specweave-sync-tasks.md +256 -0
  175. package/plugins/specweave/commands/{translate.md → specweave-translate.md} +3 -3
  176. package/plugins/specweave/commands/specweave-update-scope.md +351 -0
  177. package/plugins/specweave/commands/specweave.md +21 -21
  178. package/plugins/specweave/hooks/post-increment-planning.sh +335 -0
  179. package/plugins/specweave/hooks/post-task-completion.sh +141 -0
  180. package/plugins/specweave/skills/SKILLS-INDEX.md +1 -1
  181. package/plugins/specweave/skills/brownfield-analyzer/SKILL.md +9 -9
  182. package/plugins/specweave/skills/increment-planner/SKILL.md +400 -212
  183. package/plugins/specweave/skills/increment-quality-judge-v2/SKILL.md +499 -0
  184. package/plugins/specweave/skills/plugin-detector/SKILL.md +114 -1
  185. package/plugins/specweave/skills/project-kickstarter/SKILL.md +74 -1
  186. package/plugins/specweave/skills/{rfc-generator → spec-generator}/SKILL.md +22 -29
  187. package/plugins/specweave/skills/specweave-detector/SKILL.md +3 -3
  188. package/plugins/specweave/skills/specweave-framework/SKILL.md +2 -2
  189. package/plugins/specweave-ado/.claude-plugin/plugin.json +18 -4
  190. package/plugins/specweave-ado/agents/ado-manager/AGENT.md +426 -0
  191. package/plugins/specweave-ado/commands/close-workitem.md +52 -0
  192. package/plugins/specweave-ado/commands/create-workitem.md +53 -0
  193. package/plugins/specweave-ado/commands/status.md +53 -0
  194. package/plugins/specweave-ado/commands/sync.md +55 -0
  195. package/plugins/specweave-ado/lib/ado-client.ts +361 -0
  196. package/plugins/specweave-ado/reference/ado-specweave-mapping.md +552 -0
  197. package/plugins/specweave-ado/skills/ado-sync/SKILL.md +344 -193
  198. package/plugins/specweave-docs/skills/docusaurus/SKILL.md +73 -0
  199. package/plugins/specweave-github/agents/github-manager/AGENT.md +49 -0
  200. package/plugins/specweave-github/commands/{github-close-issue.md → close-issue.md} +1 -1
  201. package/plugins/specweave-github/commands/{github-create-issue.md → create-issue.md} +1 -1
  202. package/plugins/specweave-github/commands/{github-status.md → status.md} +1 -1
  203. package/plugins/specweave-github/commands/{github-sync-tasks.md → sync-tasks.md} +1 -1
  204. package/plugins/specweave-github/commands/{github-sync.md → sync.md} +1 -1
  205. package/plugins/specweave-github/reference/github-specweave-mapping.md +377 -0
  206. package/plugins/specweave-github/skills/github-sync/SKILL.md +11 -3
  207. package/plugins/specweave-infrastructure/commands/{specweave.monitor-setup.md → monitor-setup.md} +5 -0
  208. package/plugins/specweave-infrastructure/commands/{specweave.slo-implement.md → slo-implement.md} +5 -0
  209. package/plugins/specweave-jira/agents/jira-manager/AGENT.md +380 -0
  210. package/plugins/specweave-jira/commands/{specweave.sync-jira.md → sync.md} +1 -1
  211. package/plugins/specweave-jira/reference/jira-specweave-mapping.md +508 -0
  212. package/plugins/specweave-ml/commands/ml-deploy.md +1 -1
  213. package/plugins/specweave-ml/commands/ml-evaluate.md +1 -1
  214. package/plugins/specweave-ml/commands/ml-explain.md +1 -1
  215. package/plugins/specweave-ml/commands/{specweave.ml-pipeline.md → ml-pipeline.md} +5 -0
  216. package/src/templates/AGENTS.md.template +331 -31
  217. package/src/templates/CLAUDE.md.template +36 -21
  218. package/src/templates/COMPLETION-REPORT.template.md +128 -0
  219. package/src/templates/README.md.template +17 -16
  220. package/src/templates/docs/README.md +11 -9
  221. package/src/templates/docs/spec-template.md +229 -0
  222. package/plugins/specweave/commands/inc.md +0 -85
  223. package/plugins/specweave/commands/list-increments.md +0 -180
  224. package/src/adapters/README.md +0 -275
  225. package/src/adapters/adapter-base.ts +0 -182
  226. package/src/adapters/adapter-interface.ts +0 -166
  227. package/src/adapters/adapter-loader.ts +0 -256
  228. package/src/adapters/agents-md-generator.ts +0 -228
  229. package/src/adapters/claude/README.md +0 -233
  230. package/src/adapters/claude/adapter.ts +0 -468
  231. package/src/adapters/claude-md-generator.ts +0 -377
  232. package/src/adapters/codex/README.md +0 -105
  233. package/src/adapters/codex/adapter.ts +0 -333
  234. package/src/adapters/cursor/.cursor/context/docs-context.md +0 -62
  235. package/src/adapters/cursor/.cursor/context/increments-context.md +0 -71
  236. package/src/adapters/cursor/.cursor/context/strategy-context.md +0 -73
  237. package/src/adapters/cursor/.cursor/context/tests-context.md +0 -89
  238. package/src/adapters/cursor/README.md +0 -283
  239. package/src/adapters/cursor/adapter.ts +0 -451
  240. package/src/adapters/doc-generator.ts +0 -331
  241. package/src/adapters/gemini/README.md +0 -97
  242. package/src/adapters/gemini/adapter.ts +0 -298
  243. package/src/adapters/generic/README.md +0 -277
  244. package/src/adapters/generic/adapter.ts +0 -378
  245. package/src/adapters/registry.yaml +0 -187
  246. /package/plugins/specweave/commands/{costs.md → specweave-costs.md} +0 -0
  247. /package/plugins/specweave/commands/{done.md → specweave-done.md} +0 -0
  248. /package/plugins/specweave/commands/{next.md → specweave-next.md} +0 -0
  249. /package/plugins/specweave/commands/{progress.md → specweave-progress.md} +0 -0
  250. /package/plugins/specweave/commands/{sync-docs.md → specweave-sync-docs.md} +0 -0
  251. /package/plugins/specweave/commands/{tdd-cycle.md → specweave-tdd-cycle.md} +0 -0
  252. /package/plugins/specweave/commands/{tdd-green.md → specweave-tdd-green.md} +0 -0
  253. /package/plugins/specweave/commands/{tdd-red.md → specweave-tdd-red.md} +0 -0
  254. /package/plugins/specweave/commands/{tdd-refactor.md → specweave-tdd-refactor.md} +0 -0
  255. /package/plugins/specweave/commands/{validate.md → specweave-validate.md} +0 -0
@@ -1,378 +0,0 @@
1
- /**
2
- * Generic Adapter
3
- *
4
- * Universal adapter that works with ANY AI tool.
5
- * All AI tools can read AGENTS.md (universal standard) for workflow instructions.
6
- *
7
- * This adapter ensures 100% compatibility - works with GitHub Copilot, ChatGPT web,
8
- * Claude web, Gemini, or literally ANY AI that can read markdown and follow instructions.
9
- */
10
-
11
- import * as path from 'path';
12
- import fs from 'fs-extra';
13
- import { AdapterBase } from '../adapter-base.js';
14
- import { AdapterOptions, AdapterFile } from '../adapter-interface.js';
15
- import type { Plugin } from '../../core/types/plugin.js';
16
- import { LanguageManager, getSystemPromptForLanguage } from '../../core/i18n/language-manager.js';
17
- import type { SupportedLanguage } from '../../core/i18n/types.js';
18
-
19
- export class GenericAdapter extends AdapterBase {
20
- name = 'generic';
21
- description = 'Generic adapter - AGENTS.md works with ANY AI tool (Copilot, ChatGPT, Gemini, etc.)';
22
- automationLevel = 'manual' as const;
23
-
24
- /**
25
- * Detect if generic adapter should be used
26
- *
27
- * This adapter is the universal fallback - always returns true
28
- * since it works with literally any AI tool.
29
- */
30
- async detect(): Promise<boolean> {
31
- // Generic adapter works with ANY tool - always available
32
- return true;
33
- }
34
-
35
- /**
36
- * Get files to install for Generic adapter
37
- *
38
- * Note: Any AI tool can read AGENTS.md (universal standard).
39
- * No additional files needed.
40
- */
41
- getFiles(): AdapterFile[] {
42
- return [];
43
- }
44
-
45
- /**
46
- * Install Generic adapter
47
- */
48
- async install(options: AdapterOptions): Promise<void> {
49
- console.log('\n📦 Configuring for Universal AI Tool Compatibility\n');
50
-
51
- // No files to install - any AI can read AGENTS.md
52
- console.log('✅ AGENTS.md works with any AI tool (Copilot, ChatGPT, Gemini, Claude web, etc.)');
53
- }
54
-
55
- /**
56
- * Post-installation instructions
57
- */
58
- async postInstall(options: AdapterOptions): Promise<void> {
59
- console.log(this.getInstructions());
60
- }
61
-
62
- /**
63
- * Get usage instructions for Generic adapter
64
- */
65
- getInstructions(): string {
66
- return `
67
- ================================================================
68
- Generic Adapter - Universal Compatibility
69
- ================================================================
70
-
71
- Your project is now configured for ANY AI tool!
72
-
73
- WHAT THIS PROVIDES:
74
-
75
- - AGENTS.MD (Universal Standard)
76
- - GitHub Copilot automatically reads this file
77
- - ChatGPT, Gemini, Claude web can also use it
78
- - Contains all workflow instructions
79
- - Project structure and templates
80
- - Following agents.md standard (https://agents.md/)
81
-
82
- - 100% Compatibility
83
- - GitHub Copilot (best experience with AGENTS.md)
84
- - ChatGPT (web), Claude (web), Gemini
85
- - Any AI that can read markdown
86
-
87
- HOW TO USE AGENTS.MD WITH ANY AI:
88
-
89
- Method 1: Command Discovery (GitHub Copilot - Recommended!)
90
- 1. AI reads AGENTS.md automatically (Copilot scans project files)
91
- 2. AGENTS.md contains "SpecWeave Commands" section with all 17 commands
92
- 3. Ask: "create increment for payments" or "run /inc payments"
93
- 4. AI reads plugins/specweave/commands/inc.md
94
- 5. AI executes PM-led workflow (market research, spec.md, plan.md, tasks.md)
95
- 6. Increment created - same result as Claude Code!
96
-
97
- Available commands AI can execute:
98
- - /inc "feature" - Plan new increment
99
- - /do - Execute implementation tasks
100
- - /done 0001 - Close increment
101
- - /validate 0001 - Quality validation
102
- - /progress - Check status
103
- - /sync-docs - Sync living documentation
104
- ... and 11 more commands!
105
-
106
- Method 2: Copy-Paste Workflow (ChatGPT web, Claude web, etc.)
107
- 1. Open AGENTS.md in your browser/editor
108
- 2. Copy relevant section (e.g., "Creating a Feature Increment")
109
- 3. Paste into AI chat (ChatGPT, Claude web, Gemini, etc.)
110
- 4. Ask AI to follow the instructions
111
- 5. AI generates content (spec.md, plan.md, etc.)
112
- 6. Copy AI's response, save to files
113
-
114
- Method 3: File System Access (AI with file access)
115
- 1. AI automatically reads AGENTS.md
116
- 2. Ask: "Create increment for user authentication"
117
- 3. AI follows AGENTS.md workflow and command execution instructions
118
- 4. AI creates files directly
119
-
120
- UNDERSTANDING "MANUAL":
121
-
122
- Manual = You Orchestrate, AI Executes
123
-
124
- Example workflow:
125
- 1. Read AGENTS.md section "Creating a Feature Increment"
126
- 2. Copy instructions to ChatGPT
127
- 3. ChatGPT generates spec.md content
128
- 4. Save content to .specweave/increments/0001-auth/spec.md
129
- 5. Repeat for plan.md, tasks.md
130
-
131
- Manual does not mean harder - just means YOU control each step (no automation).
132
- Benefit: Works with ANY AI tool!
133
-
134
- COMPARISON:
135
-
136
- Claude Code (Full): "create increment" -> Done in 30 seconds (auto)
137
- Cursor (Semi): "create increment" -> Done in 5 minutes (reads AGENTS.md)
138
- Copilot (Basic): Reads AGENTS.md, suggests content as you type
139
- Generic (Manual): Copy AGENTS.md instructions to any AI (10-30 min)
140
-
141
- Trade-off: Speed vs Compatibility
142
- - Claude Code: Fast, but requires Claude Code CLI
143
- - Generic: Slower, but works with EVERY AI tool (even web-based)!
144
-
145
- WHEN TO USE:
146
-
147
- Use Generic adapter if:
148
- - You use ChatGPT web, Claude web, Gemini, or other AI
149
- - You don't have access to Claude Code or Cursor
150
- - You want maximum compatibility (works with ANYTHING)
151
- - Simple projects where automation isn't critical
152
-
153
- Consider alternatives if:
154
- - You want automation -> Use Claude Code (full)
155
- - You have CLI access -> Use Cursor (semi) or Copilot (basic)
156
- - Large projects -> Manual workflow becomes tedious
157
-
158
- QUICK START:
159
-
160
- 1. Open AGENTS.md
161
- Read the "Common Workflows" section
162
-
163
- 2. Copy workflow to your AI tool:
164
- - "Creating a Feature Increment" section
165
- - Paste into ChatGPT/Claude/Gemini
166
-
167
- 3. Follow AI's guidance:
168
- - AI generates spec.md content (copy & save)
169
- - AI generates plan.md content (copy & save)
170
- - AI generates tasks.md content (copy & save)
171
-
172
- 4. Use any AI tool you prefer:
173
- ChatGPT, Claude web, Gemini, Perplexity, etc.
174
-
175
- DOCUMENTATION:
176
-
177
- - AGENTS.md: Universal workflow instructions (works with any AI!)
178
- - .specweave/docs/: Project documentation
179
-
180
- You're ready to build with SpecWeave using ANY AI tool!
181
-
182
- Remember: AGENTS.md is the universal standard - it works everywhere!
183
- `;
184
- }
185
-
186
- /**
187
- * Check if Generic adapter supports plugins
188
- *
189
- * Generic has manual plugin support via AGENTS.md
190
- *
191
- * @returns boolean True
192
- */
193
- supportsPlugins(): boolean {
194
- return true;
195
- }
196
-
197
- /**
198
- * Read language configuration from project config
199
- *
200
- * @returns Language setting from config, defaults to 'en'
201
- */
202
- private async getLanguageConfig(): Promise<SupportedLanguage> {
203
- const projectPath = process.cwd();
204
- const configPath = path.join(projectPath, '.specweave', 'config.json');
205
-
206
- if (!(await fs.pathExists(configPath))) {
207
- return 'en'; // Default to English if no config
208
- }
209
-
210
- try {
211
- const config = await fs.readJson(configPath);
212
- return (config.language as SupportedLanguage) || 'en';
213
- } catch (error) {
214
- console.warn('⚠️ Could not read language from config, defaulting to English');
215
- return 'en';
216
- }
217
- }
218
-
219
- /**
220
- * Inject system prompt for non-English languages
221
- *
222
- * Prepends language instruction to markdown content if language !== 'en'
223
- *
224
- * @param content Original markdown content
225
- * @param language Target language
226
- * @returns Modified content with system prompt (or unchanged if English)
227
- */
228
- private injectSystemPrompt(content: string, language: SupportedLanguage): string {
229
- if (language === 'en') {
230
- return content; // No changes for English - preserve default behavior
231
- }
232
-
233
- // Get system prompt for target language
234
- const systemPrompt = getSystemPromptForLanguage(language);
235
-
236
- // For AGENTS.md compilation, inject at the beginning of the content
237
- return `${systemPrompt}\n\n${content}`;
238
- }
239
-
240
- /**
241
- * Compile and install a plugin for Generic adapter
242
- *
243
- * Appends plugin content to AGENTS.md for manual copy-paste workflows
244
- *
245
- * NEW: Injects system prompts for non-English languages
246
- *
247
- * @param plugin Plugin to install
248
- */
249
- async compilePlugin(plugin: Plugin): Promise<void> {
250
- const projectPath = process.cwd();
251
- const agentsMdPath = path.join(projectPath, 'AGENTS.md');
252
-
253
- console.log(`\n📦 Adding plugin to AGENTS.md: ${plugin.manifest.name}`);
254
-
255
- // Get language configuration for system prompt injection
256
- const language = await this.getLanguageConfig();
257
- if (language !== 'en') {
258
- console.log(` 🌐 Language: ${language} (system prompts will be injected)`);
259
- }
260
-
261
- if (!(await fs.pathExists(agentsMdPath))) {
262
- throw new Error('AGENTS.md not found. Run specweave init first.');
263
- }
264
-
265
- let agentsMd = await fs.readFile(agentsMdPath, 'utf-8');
266
-
267
- const pluginMarker = `<!-- Plugin: ${plugin.manifest.name} -->`;
268
- if (agentsMd.includes(pluginMarker)) {
269
- console.log(` ℹ️ Plugin ${plugin.manifest.name} already in AGENTS.md`);
270
- return;
271
- }
272
-
273
- let pluginSection = `\n\n${pluginMarker}\n\n`;
274
- pluginSection += `# Plugin: ${plugin.manifest.name}\n\n`;
275
- pluginSection += `${plugin.manifest.description}\n\n`;
276
-
277
- if (plugin.skills.length > 0) {
278
- pluginSection += `## Skills\n\n`;
279
- for (const skill of plugin.skills) {
280
- const skillContent = await fs.readFile(path.join(skill.path, 'SKILL.md'), 'utf-8');
281
- const contentWithoutFrontmatter = skillContent.replace(/^---\n[\s\S]+?\n---\n/, '');
282
- // Inject system prompt if needed
283
- const modifiedContent = this.injectSystemPrompt(contentWithoutFrontmatter, language);
284
- pluginSection += `### ${skill.name}\n\n${modifiedContent}\n\n`;
285
- }
286
- }
287
-
288
- if (plugin.agents.length > 0) {
289
- pluginSection += `## Agents\n\n`;
290
- for (const agent of plugin.agents) {
291
- const agentContent = await fs.readFile(path.join(agent.path, 'AGENT.md'), 'utf-8');
292
- // Inject system prompt if needed
293
- const modifiedContent = this.injectSystemPrompt(agentContent, language);
294
- pluginSection += `### ${agent.name}\n\n${modifiedContent}\n\n`;
295
- }
296
- }
297
-
298
- if (plugin.commands.length > 0) {
299
- pluginSection += `## Workflows (Manual)\n\n`;
300
- for (const command of plugin.commands) {
301
- const commandContent = await fs.readFile(command.path, 'utf-8');
302
- const contentWithoutFrontmatter = commandContent.replace(/^---\n[\s\S]+?\n---\n/, '');
303
- // Inject system prompt if needed
304
- const modifiedContent = this.injectSystemPrompt(contentWithoutFrontmatter, language);
305
- pluginSection += `### ${command.name.replace('specweave.', '')}\n\n${modifiedContent}\n\n`;
306
- }
307
- }
308
-
309
- pluginSection += `<!-- End Plugin: ${plugin.manifest.name} -->\n`;
310
-
311
- agentsMd += pluginSection;
312
- await fs.writeFile(agentsMdPath, agentsMd, 'utf-8');
313
-
314
- console.log(` ✓ Added to AGENTS.md (copy-paste workflows)`);
315
- console.log(`\n✅ Plugin ${plugin.manifest.name} available for manual use!`);
316
- }
317
-
318
- /**
319
- * Unload a plugin from Generic adapter
320
- */
321
- async unloadPlugin(pluginName: string): Promise<void> {
322
- const projectPath = process.cwd();
323
- const agentsMdPath = path.join(projectPath, 'AGENTS.md');
324
-
325
- console.log(`\n🗑️ Removing plugin from AGENTS.md: ${pluginName}`);
326
-
327
- if (!(await fs.pathExists(agentsMdPath))) {
328
- console.warn(`⚠️ AGENTS.md not found`);
329
- return;
330
- }
331
-
332
- let agentsMd = await fs.readFile(agentsMdPath, 'utf-8');
333
-
334
- const startMarker = `<!-- Plugin: ${pluginName} -->`;
335
- const endMarker = `<!-- End Plugin: ${pluginName} -->`;
336
-
337
- const startIndex = agentsMd.indexOf(startMarker);
338
- if (startIndex === -1) {
339
- console.warn(`⚠️ Plugin ${pluginName} not found in AGENTS.md`);
340
- return;
341
- }
342
-
343
- const endIndex = agentsMd.indexOf(endMarker, startIndex);
344
- if (endIndex === -1) {
345
- console.warn(`⚠️ Plugin ${pluginName} section malformed`);
346
- return;
347
- }
348
-
349
- agentsMd = agentsMd.slice(0, startIndex) + agentsMd.slice(endIndex + endMarker.length);
350
- await fs.writeFile(agentsMdPath, agentsMd, 'utf-8');
351
-
352
- console.log(` ✓ Removed from AGENTS.md`);
353
- console.log(`\n✅ Plugin ${pluginName} removed!`);
354
- }
355
-
356
- /**
357
- * Get list of installed plugins for Generic adapter
358
- */
359
- async getInstalledPlugins(): Promise<string[]> {
360
- const projectPath = process.cwd();
361
- const agentsMdPath = path.join(projectPath, 'AGENTS.md');
362
-
363
- if (!(await fs.pathExists(agentsMdPath))) {
364
- return [];
365
- }
366
-
367
- const agentsMd = await fs.readFile(agentsMdPath, 'utf-8');
368
- const pluginMarkerRegex = /<!-- Plugin: (specweave-[a-z0-9-]+) -->/g;
369
- const matches = agentsMd.matchAll(pluginMarkerRegex);
370
-
371
- const plugins: string[] = [];
372
- for (const match of matches) {
373
- plugins.push(match[1]);
374
- }
375
-
376
- return plugins;
377
- }
378
- }
@@ -1,187 +0,0 @@
1
- ---
2
- # SpecWeave Adapter Registry
3
- #
4
- # Lists all available adapters for multi-tool support.
5
- # CLI reads this file to show available adapters.
6
-
7
- version: 1
8
- last_updated: 2025-10-27
9
-
10
- adapters:
11
- - name: claude
12
- description: "Claude Code - NATIVE/BASELINE (no adapter needed!). Full automation with skills, agents, hooks"
13
- automation_level: full
14
- status: native
15
- directory: claude
16
- features:
17
- - Native skills, agents, hooks (no approximation needed)
18
- - Skills auto-activate (specweave-detector, skill-router, etc.)
19
- - Agents coordinate (PM, Architect, DevOps, QA, Security)
20
- - Hooks auto-update docs (post-task-completion, etc.)
21
- - Slash commands (/create-increment, /sync-docs, etc.)
22
- - Best experience, most features - THE BASELINE!
23
- requirements:
24
- - Claude Code CLI installed
25
- - Node.js >= 18.0.0
26
- market_share: 10%
27
- priority: P0
28
- note: "Claude is the native experience - adapters exist to approximate these capabilities for other tools"
29
-
30
- - name: cursor
31
- description: "Cursor adapter - Semi-automation with .cursorrules and @ shortcuts"
32
- automation_level: semi
33
- status: active
34
- directory: cursor
35
- features:
36
- - .cursorrules with SpecWeave workflow instructions
37
- - "@ context shortcuts (@increments, @docs, @strategy)"
38
- - Composer multi-file editing support
39
- - Good experience, semi-automated
40
- requirements:
41
- - Cursor editor installed
42
- - Node.js >= 18.0.0
43
- market_share: 30%
44
- priority: P1
45
-
46
- - name: copilot
47
- description: "GitHub Copilot adapter - Basic automation with workspace instructions"
48
- automation_level: basic
49
- status: active
50
- directory: copilot
51
- features:
52
- - .github/copilot/instructions.md workspace guidance
53
- - Copilot reads context manifests for suggestions
54
- - Works with built-in Copilot features only
55
- - Decent experience, basic automation
56
- requirements:
57
- - GitHub Copilot extension (VS Code)
58
- - Node.js >= 18.0.0
59
- market_share: 40%
60
- priority: P1
61
-
62
- - name: generic
63
- description: "Generic adapter - Manual workflow for ANY AI tool (ChatGPT, Gemini, etc.)"
64
- automation_level: manual
65
- status: active
66
- directory: generic
67
- features:
68
- - SPECWEAVE.md with step-by-step manual instructions
69
- - Works with ANY AI (ChatGPT, Gemini, Claude web, etc.)
70
- - No automation, user guides AI through workflow
71
- - Basic experience, maximum compatibility (100%)
72
- requirements:
73
- - Node.js >= 18.0.0 (for CLI init only)
74
- - Any AI tool (web or local)
75
- market_share: 20%
76
- priority: P1
77
-
78
- - name: gemini
79
- description: "Gemini CLI adapter - Semi-automation with AGENTS.md and agent mode"
80
- automation_level: semi
81
- status: active
82
- directory: gemini
83
- features:
84
- - AGENTS.md universal instructions
85
- - 1M token context window (5x larger than Claude!)
86
- - Agent mode for multi-file tasks
87
- - MCP (Model Context Protocol) support
88
- - Free tier available (60 req/min, 1K req/day)
89
- - Open source (Apache 2.0)
90
- requirements:
91
- - Gemini CLI installed
92
- - Node.js >= 18.0.0
93
- market_share: 10%
94
- priority: P1
95
-
96
- - name: codex
97
- description: "OpenAI Codex adapter - Semi-automation with AGENTS.md and GPT-5-Codex"
98
- automation_level: semi
99
- status: active
100
- directory: codex
101
- features:
102
- - AGENTS.md universal instructions
103
- - GPT-5-Codex optimized for engineering
104
- - Multiple access points (CLI + Web + IDE + GitHub + iOS)
105
- - Task-based isolated execution
106
- - File operations and test execution
107
- requirements:
108
- - ChatGPT Plus/Pro/Business/Enterprise
109
- - Node.js >= 18.0.0
110
- market_share: 20%
111
- priority: P1
112
-
113
- # Future adapters (P2/P3)
114
- future_adapters:
115
- - name: windsurf
116
- description: "Windsurf adapter (if requested by community)"
117
- automation_level: semi
118
- status: planned
119
- priority: P2
120
-
121
- # Adapter capabilities comparison
122
- capabilities:
123
- skills:
124
- claude: full
125
- cursor: via_agents_md
126
- copilot: via_agents_md
127
- gemini: via_agents_md
128
- codex: via_agents_md
129
- generic: via_agents_md
130
-
131
- agents:
132
- claude: full
133
- cursor: via_agents_md
134
- copilot: via_agents_md
135
- gemini: via_agents_md
136
- codex: via_agents_md
137
- generic: via_agents_md
138
-
139
- hooks:
140
- claude: full
141
- cursor: none
142
- copilot: none
143
- gemini: none
144
- codex: none
145
- generic: none
146
-
147
- instruction_file:
148
- claude: .claude/skills + agents
149
- cursor: AGENTS.md
150
- copilot: AGENTS.md
151
- gemini: AGENTS.md
152
- codex: AGENTS.md
153
- generic: AGENTS.md
154
-
155
- context_manifests:
156
- claude: auto_load
157
- cursor: manual_reference
158
- copilot: manual_reference
159
- gemini: manual_reference
160
- codex: manual_reference
161
- generic: manual_copy_paste
162
-
163
- # Target market coverage
164
- market_coverage:
165
- claude: 10%
166
- cursor: 30%
167
- copilot: 35%
168
- gemini: 10%
169
- codex: 20%
170
- generic: 5%
171
- total: 110% # Overlapping users
172
- unique_coverage: 100%
173
- goal: "Make SpecWeave accessible to ALL developers"
174
-
175
- # Universal AGENTS.md
176
- universal_standard:
177
- file: AGENTS.md
178
- purpose: "Single source of truth for all adapters (except Claude which has native support)"
179
- replaces:
180
- - .cursorrules (Cursor)
181
- - .github/copilot/instructions.md (Copilot)
182
- - Multiple tool-specific files
183
- benefits:
184
- - Single file to maintain
185
- - Works across ALL tools
186
- - Auto-generated from actual skills/agents
187
- - Follows agents.md standard