specweave 0.4.1 → 0.6.3

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 (400) hide show
  1. package/.claude-plugin/README.md +312 -0
  2. package/.claude-plugin/marketplace.json +210 -0
  3. package/CLAUDE.md +952 -609
  4. package/README.md +179 -761
  5. package/bin/install-agents.sh +1 -1
  6. package/bin/install-commands.sh +66 -14
  7. package/bin/install-hooks.sh +1 -1
  8. package/bin/install-skills.sh +1 -1
  9. package/bin/specweave.js +2 -0
  10. package/dist/adapters/claude/adapter.d.ts +49 -11
  11. package/dist/adapters/claude/adapter.d.ts.map +1 -1
  12. package/dist/adapters/claude/adapter.js +175 -42
  13. package/dist/adapters/claude/adapter.js.map +1 -1
  14. package/dist/adapters/copilot/adapter.d.ts +20 -2
  15. package/dist/adapters/copilot/adapter.d.ts.map +1 -1
  16. package/dist/adapters/copilot/adapter.js +117 -7
  17. package/dist/adapters/copilot/adapter.js.map +1 -1
  18. package/dist/adapters/cursor/adapter.d.ts +18 -0
  19. package/dist/adapters/cursor/adapter.d.ts.map +1 -1
  20. package/dist/adapters/cursor/adapter.js +55 -3
  21. package/dist/adapters/cursor/adapter.js.map +1 -1
  22. package/dist/adapters/generic/adapter.d.ts +18 -0
  23. package/dist/adapters/generic/adapter.d.ts.map +1 -1
  24. package/dist/adapters/generic/adapter.js +55 -3
  25. package/dist/adapters/generic/adapter.js.map +1 -1
  26. package/dist/cli/commands/init.d.ts +1 -0
  27. package/dist/cli/commands/init.d.ts.map +1 -1
  28. package/dist/cli/commands/init.js +521 -185
  29. package/dist/cli/commands/init.js.map +1 -1
  30. package/dist/cli/commands/install.d.ts +2 -0
  31. package/dist/cli/commands/install.d.ts.map +1 -1
  32. package/dist/cli/commands/install.js +28 -25
  33. package/dist/cli/commands/install.js.map +1 -1
  34. package/dist/cli/commands/list.d.ts +2 -0
  35. package/dist/cli/commands/list.d.ts.map +1 -1
  36. package/dist/cli/commands/list.js +26 -24
  37. package/dist/cli/commands/list.js.map +1 -1
  38. package/dist/cli/commands/plugin.d.ts +23 -6
  39. package/dist/cli/commands/plugin.d.ts.map +1 -1
  40. package/dist/cli/commands/plugin.js +92 -66
  41. package/dist/cli/commands/plugin.js.map +1 -1
  42. package/dist/core/i18n/language-detector.d.ts +29 -0
  43. package/dist/core/i18n/language-detector.d.ts.map +1 -0
  44. package/dist/core/i18n/language-detector.js +143 -0
  45. package/dist/core/i18n/language-detector.js.map +1 -0
  46. package/dist/core/i18n/language-manager.d.ts +101 -0
  47. package/dist/core/i18n/language-manager.d.ts.map +1 -0
  48. package/dist/core/i18n/language-manager.js +232 -0
  49. package/dist/core/i18n/language-manager.js.map +1 -0
  50. package/dist/core/i18n/language-registry.d.ts +44 -0
  51. package/dist/core/i18n/language-registry.d.ts.map +1 -0
  52. package/dist/core/i18n/language-registry.js +234 -0
  53. package/dist/core/i18n/language-registry.js.map +1 -0
  54. package/dist/core/i18n/locale-manager.d.ts +62 -0
  55. package/dist/core/i18n/locale-manager.d.ts.map +1 -0
  56. package/dist/core/i18n/locale-manager.js +137 -0
  57. package/dist/core/i18n/locale-manager.js.map +1 -0
  58. package/dist/core/i18n/system-prompt-injector.d.ts +33 -0
  59. package/dist/core/i18n/system-prompt-injector.d.ts.map +1 -0
  60. package/dist/core/i18n/system-prompt-injector.js +131 -0
  61. package/dist/core/i18n/system-prompt-injector.js.map +1 -0
  62. package/dist/core/i18n/types.d.ts +151 -0
  63. package/dist/core/i18n/types.d.ts.map +1 -0
  64. package/dist/core/i18n/types.js +11 -0
  65. package/dist/core/i18n/types.js.map +1 -0
  66. package/dist/core/increment-status.d.ts +72 -0
  67. package/dist/core/increment-status.d.ts.map +1 -0
  68. package/dist/core/increment-status.js +227 -0
  69. package/dist/core/increment-status.js.map +1 -0
  70. package/dist/core/plugin-loader.d.ts +33 -13
  71. package/dist/core/plugin-loader.d.ts.map +1 -1
  72. package/dist/core/plugin-loader.js +145 -43
  73. package/dist/core/plugin-loader.js.map +1 -1
  74. package/dist/core/types/config.d.ts +51 -0
  75. package/dist/core/types/config.d.ts.map +1 -0
  76. package/dist/core/types/config.js +21 -0
  77. package/dist/core/types/config.js.map +1 -0
  78. package/dist/core/types/plugin.d.ts +73 -42
  79. package/dist/core/types/plugin.d.ts.map +1 -1
  80. package/dist/core/types/plugin.js +4 -3
  81. package/dist/core/types/plugin.js.map +1 -1
  82. package/dist/hooks/lib/sync-living-docs.d.ts +27 -0
  83. package/dist/hooks/lib/sync-living-docs.d.ts.map +1 -0
  84. package/dist/hooks/lib/sync-living-docs.js +116 -0
  85. package/dist/hooks/lib/sync-living-docs.js.map +1 -0
  86. package/dist/hooks/lib/translate-living-docs.d.ts +13 -0
  87. package/dist/hooks/lib/translate-living-docs.d.ts.map +1 -0
  88. package/dist/hooks/lib/translate-living-docs.js +166 -0
  89. package/dist/hooks/lib/translate-living-docs.js.map +1 -0
  90. package/dist/hooks/lib/update-tasks-md.d.ts +29 -0
  91. package/dist/hooks/lib/update-tasks-md.d.ts.map +1 -0
  92. package/dist/hooks/lib/update-tasks-md.js +203 -0
  93. package/dist/hooks/lib/update-tasks-md.js.map +1 -0
  94. package/dist/integrations/jira/jira-incremental-mapper.js.map +1 -1
  95. package/dist/integrations/jira/jira-mapper.js.map +1 -1
  96. package/dist/locales/de/.gitkeep +0 -0
  97. package/dist/locales/de/cli.json +108 -0
  98. package/dist/locales/en/cli.json +285 -0
  99. package/dist/locales/en/errors.json +7 -0
  100. package/dist/locales/en/templates.json +6 -0
  101. package/dist/locales/es/.gitkeep +0 -0
  102. package/dist/locales/es/cli.json +41 -0
  103. package/dist/locales/fr/.gitkeep +0 -0
  104. package/dist/locales/fr/cli.json +108 -0
  105. package/dist/locales/ja/.gitkeep +0 -0
  106. package/dist/locales/ja/cli.json +108 -0
  107. package/dist/locales/ko/.gitkeep +0 -0
  108. package/dist/locales/ko/cli.json +108 -0
  109. package/dist/locales/pt/.gitkeep +0 -0
  110. package/dist/locales/pt/cli.json +108 -0
  111. package/dist/locales/ru/.gitkeep +0 -0
  112. package/dist/locales/ru/cli.json +269 -0
  113. package/dist/locales/zh/.gitkeep +0 -0
  114. package/dist/locales/zh/cli.json +108 -0
  115. package/dist/plugins/specweave-github/lib/github-client.d.ts +86 -0
  116. package/dist/plugins/specweave-github/lib/github-client.d.ts.map +1 -0
  117. package/dist/plugins/specweave-github/lib/github-client.js +275 -0
  118. package/dist/plugins/specweave-github/lib/github-client.js.map +1 -0
  119. package/dist/plugins/specweave-github/lib/index.d.ts +10 -0
  120. package/dist/plugins/specweave-github/lib/index.d.ts.map +1 -0
  121. package/dist/plugins/specweave-github/lib/index.js +10 -0
  122. package/dist/plugins/specweave-github/lib/index.js.map +1 -0
  123. package/dist/plugins/specweave-github/lib/subtask-sync.d.ts +51 -0
  124. package/dist/plugins/specweave-github/lib/subtask-sync.d.ts.map +1 -0
  125. package/dist/plugins/specweave-github/lib/subtask-sync.js +147 -0
  126. package/dist/plugins/specweave-github/lib/subtask-sync.js.map +1 -0
  127. package/dist/plugins/specweave-github/lib/task-parser.d.ts +37 -0
  128. package/dist/plugins/specweave-github/lib/task-parser.d.ts.map +1 -0
  129. package/dist/plugins/specweave-github/lib/task-parser.js +211 -0
  130. package/dist/plugins/specweave-github/lib/task-parser.js.map +1 -0
  131. package/dist/plugins/specweave-github/lib/task-sync.d.ts +51 -0
  132. package/dist/plugins/specweave-github/lib/task-sync.d.ts.map +1 -0
  133. package/dist/plugins/specweave-github/lib/task-sync.js +332 -0
  134. package/dist/plugins/specweave-github/lib/task-sync.js.map +1 -0
  135. package/dist/plugins/specweave-github/lib/types.d.ts +80 -0
  136. package/dist/plugins/specweave-github/lib/types.d.ts.map +1 -0
  137. package/dist/plugins/specweave-github/lib/types.js +5 -0
  138. package/dist/plugins/specweave-github/lib/types.js.map +1 -0
  139. package/dist/utils/agents-md-compiler.d.ts +68 -0
  140. package/dist/utils/agents-md-compiler.d.ts.map +1 -0
  141. package/dist/utils/agents-md-compiler.js +420 -0
  142. package/dist/utils/agents-md-compiler.js.map +1 -0
  143. package/dist/utils/execFileNoThrow.d.ts +97 -0
  144. package/dist/utils/execFileNoThrow.d.ts.map +1 -0
  145. package/dist/utils/execFileNoThrow.js +130 -0
  146. package/dist/utils/execFileNoThrow.js.map +1 -0
  147. package/dist/utils/generate-skills-index.js +4 -4
  148. package/dist/utils/generate-skills-index.js.map +1 -1
  149. package/package.json +13 -14
  150. package/plugins/.specweave/logs/hooks-debug.log +24 -0
  151. package/plugins/.specweave/logs/last-hook-fire +1 -0
  152. package/plugins/.specweave/logs/last-todowrite-time +1 -0
  153. package/plugins/.specweave/logs/tasks.log +6 -0
  154. package/plugins/specweave/.claude-plugin/plugin.json +22 -0
  155. package/{src → plugins/specweave}/agents/pm/AGENT.md +80 -0
  156. package/plugins/specweave/agents/translator/AGENT.md +282 -0
  157. package/{src → plugins/specweave}/commands/README.md +11 -11
  158. package/{src/commands/specweave.costs.md → plugins/specweave/commands/costs.md} +8 -8
  159. package/{src/commands/specweave.do.md → plugins/specweave/commands/do.md} +35 -8
  160. package/{src/commands/specweave.done.md → plugins/specweave/commands/done.md} +1 -1
  161. package/{src/commands/specweave.inc.md → plugins/specweave/commands/inc.md} +1 -1
  162. package/{src/commands/specweave.increment.md → plugins/specweave/commands/increment.md} +84 -19
  163. package/{src/commands/specweave.next.md → plugins/specweave/commands/next.md} +1 -1
  164. package/{src/commands/specweave.progress.md → plugins/specweave/commands/progress.md} +1 -1
  165. package/{src → plugins/specweave}/commands/specweave.md +57 -25
  166. package/{src/commands/specweave.sync-docs.md → plugins/specweave/commands/sync-docs.md} +6 -6
  167. package/plugins/specweave/commands/translate.md +425 -0
  168. package/{src/commands/specweave.validate.md → plugins/specweave/commands/validate.md} +2 -2
  169. package/plugins/specweave/hooks/hooks.json +15 -0
  170. package/plugins/specweave/hooks/post-task-completion.sh +265 -0
  171. package/plugins/specweave/skills/SKILLS-INDEX.md +229 -0
  172. package/{src → plugins/specweave}/skills/brownfield-analyzer/SKILL.md +66 -24
  173. package/{src → plugins/specweave}/skills/context-loader/SKILL.md +1 -1
  174. package/plugins/specweave/skills/context-optimizer/SKILL.md +588 -0
  175. package/plugins/specweave/skills/docs-updater/SKILL.md +0 -0
  176. package/{src → plugins/specweave}/skills/increment-planner/SKILL.md +81 -4
  177. package/plugins/specweave/skills/plugin-detector/SKILL.md +211 -0
  178. package/{src → plugins/specweave}/skills/project-kickstarter/SKILL.md +7 -7
  179. package/plugins/specweave/skills/rfc-generator/SKILL.md +369 -0
  180. package/{src → plugins/specweave}/skills/specweave-detector/SKILL.md +2 -2
  181. package/plugins/specweave/skills/specweave-framework/SKILL.md +498 -0
  182. package/plugins/specweave/skills/specweave-framework/test-cases/test-1-increment-naming.yaml +11 -0
  183. package/plugins/specweave/skills/specweave-framework/test-cases/test-2-source-of-truth.yaml +11 -0
  184. package/plugins/specweave/skills/specweave-framework/test-cases/test-3-increment-discipline.yaml +12 -0
  185. package/plugins/specweave/skills/specweave-framework/test-cases/test-4-file-placement.yaml +11 -0
  186. package/{src → plugins/specweave}/skills/tdd-workflow/SKILL.md +21 -21
  187. package/plugins/specweave/skills/translator/SKILL.md +172 -0
  188. package/plugins/specweave-ado/.claude-plugin/plugin.json +8 -0
  189. package/plugins/specweave-alternatives/.claude-plugin/plugin.json +8 -0
  190. package/plugins/specweave-alternatives/skills/bmad-method-expert/SKILL.md +626 -0
  191. package/plugins/specweave-alternatives/skills/bmad-method-expert/scripts/analyze-project.js +318 -0
  192. package/plugins/specweave-alternatives/skills/bmad-method-expert/scripts/check-setup.js +208 -0
  193. package/plugins/specweave-alternatives/skills/bmad-method-expert/scripts/generate-template.js +1149 -0
  194. package/plugins/specweave-alternatives/skills/bmad-method-expert/scripts/validate-documents.js +340 -0
  195. package/plugins/specweave-alternatives/skills/spec-kit-expert/SKILL.md +1010 -0
  196. package/plugins/specweave-backend/.claude-plugin/plugin.json +8 -0
  197. package/plugins/specweave-cost-optimizer/.claude-plugin/plugin.json +8 -0
  198. package/plugins/specweave-diagrams/.claude-plugin/plugin.json +8 -0
  199. package/plugins/specweave-docs/.claude-plugin/plugin.json +8 -0
  200. package/plugins/specweave-docs/skills/docusaurus/SKILL.md +526 -0
  201. package/plugins/specweave-figma/.claude-plugin/.mcp.json +12 -0
  202. package/plugins/specweave-figma/.claude-plugin/plugin.json +8 -0
  203. package/plugins/specweave-figma/ARCHITECTURE.md +453 -0
  204. package/plugins/specweave-figma/README.md +728 -0
  205. package/plugins/specweave-figma/skills/figma-to-code/SKILL.md +632 -0
  206. package/plugins/specweave-figma/skills/figma-to-code/test-1-token-generation.yaml +29 -0
  207. package/plugins/specweave-figma/skills/figma-to-code/test-2-component-generation.yaml +27 -0
  208. package/plugins/specweave-figma/skills/figma-to-code/test-3-typescript-generation.yaml +28 -0
  209. package/plugins/specweave-frontend/.claude-plugin/plugin.json +8 -0
  210. package/plugins/specweave-github/.claude-plugin/plugin.json +19 -0
  211. package/plugins/specweave-github/agents/github-manager/AGENT.md +651 -0
  212. package/plugins/specweave-github/commands/github-close-issue.md +418 -0
  213. package/plugins/specweave-github/commands/github-create-issue.md +307 -0
  214. package/plugins/specweave-github/commands/github-status.md +533 -0
  215. package/plugins/specweave-github/commands/github-sync-tasks.md +530 -0
  216. package/plugins/specweave-github/commands/github-sync.md +443 -0
  217. package/plugins/specweave-github/lib/github-client.ts +330 -0
  218. package/plugins/specweave-github/lib/index.ts +10 -0
  219. package/plugins/specweave-github/lib/subtask-sync.ts +225 -0
  220. package/plugins/specweave-github/lib/task-parser.ts +246 -0
  221. package/plugins/specweave-github/lib/task-sync.ts +402 -0
  222. package/plugins/specweave-github/lib/types.ts +86 -0
  223. package/plugins/specweave-github/skills/github-issue-tracker/SKILL.md +497 -0
  224. package/plugins/specweave-github/skills/github-sync/SKILL.md +461 -0
  225. package/plugins/specweave-infrastructure/.claude-plugin/plugin.json +8 -0
  226. package/plugins/specweave-jira/.claude-plugin/plugin.json +8 -0
  227. package/{src → plugins/specweave-jira}/commands/specweave.sync-jira.md +18 -18
  228. package/plugins/specweave-kubernetes/.claude-plugin/plugin.json +8 -0
  229. package/plugins/specweave-ml/.claude-plugin/plugin.json +38 -0
  230. package/plugins/specweave-ml/README.md +885 -0
  231. package/plugins/specweave-ml/agents/ml-engineer/AGENT.md +402 -0
  232. package/plugins/specweave-ml/commands/ml-deploy.md +116 -0
  233. package/plugins/specweave-ml/commands/ml-evaluate.md +87 -0
  234. package/plugins/specweave-ml/commands/ml-explain.md +83 -0
  235. package/plugins/specweave-ml/skills/anomaly-detector/SKILL.md +559 -0
  236. package/plugins/specweave-ml/skills/automl-optimizer/SKILL.md +485 -0
  237. package/plugins/specweave-ml/skills/cv-pipeline-builder/SKILL.md +157 -0
  238. package/plugins/specweave-ml/skills/data-visualizer/SKILL.md +521 -0
  239. package/plugins/specweave-ml/skills/experiment-tracker/SKILL.md +535 -0
  240. package/plugins/specweave-ml/skills/feature-engineer/SKILL.md +566 -0
  241. package/plugins/specweave-ml/skills/ml-deployment-helper/SKILL.md +345 -0
  242. package/plugins/specweave-ml/skills/ml-pipeline-orchestrator/SKILL.md +518 -0
  243. package/plugins/specweave-ml/skills/model-evaluator/SKILL.md +155 -0
  244. package/plugins/specweave-ml/skills/model-explainer/SKILL.md +227 -0
  245. package/plugins/specweave-ml/skills/model-registry/SKILL.md +541 -0
  246. package/plugins/specweave-ml/skills/nlp-pipeline-builder/SKILL.md +180 -0
  247. package/plugins/specweave-ml/skills/time-series-forecaster/SKILL.md +569 -0
  248. package/plugins/specweave-payments/.claude-plugin/plugin.json +8 -0
  249. package/plugins/specweave-testing/.claude-plugin/plugin.json +8 -0
  250. package/plugins/specweave-tooling/.claude-plugin/plugin.json +8 -0
  251. package/plugins/specweave-ui/.claude-plugin/plugin.json +26 -0
  252. package/plugins/specweave-ui/.mcp.json +14 -0
  253. package/plugins/specweave-ui/README.md +386 -0
  254. package/src/adapters/claude/adapter.ts +193 -46
  255. package/src/adapters/copilot/adapter.ts +132 -7
  256. package/src/adapters/cursor/adapter.ts +62 -3
  257. package/src/adapters/generic/adapter.ts +62 -3
  258. package/src/templates/AGENTS.md.template +170 -1
  259. package/src/templates/CLAUDE.md.template +122 -24
  260. package/src/templates/tasks.md.template +261 -0
  261. package/src/agents/ml-engineer/AGENT.md +0 -150
  262. package/src/commands/specweave.sync-github.md +0 -269
  263. package/src/hooks/post-task-completion.sh +0 -121
  264. package/src/skills/SKILLS-INDEX.md +0 -444
  265. package/src/skills/github-sync/SKILL.md +0 -234
  266. /package/{src → plugins/specweave}/agents/architect/AGENT.md +0 -0
  267. /package/{src → plugins/specweave}/agents/code-reviewer.md +0 -0
  268. /package/{src → plugins/specweave}/agents/docs-writer/AGENT.md +0 -0
  269. /package/{src → plugins/specweave}/agents/performance/AGENT.md +0 -0
  270. /package/{src → plugins/specweave}/agents/qa-lead/AGENT.md +0 -0
  271. /package/{src → plugins/specweave}/agents/security/AGENT.md +0 -0
  272. /package/{src → plugins/specweave}/agents/tdd-orchestrator/AGENT.md +0 -0
  273. /package/{src → plugins/specweave}/agents/tech-lead/AGENT.md +0 -0
  274. /package/{src/commands/specweave.list-increments.md → plugins/specweave/commands/list-increments.md} +0 -0
  275. /package/{src/commands/specweave.tdd-cycle.md → plugins/specweave/commands/tdd-cycle.md} +0 -0
  276. /package/{src/commands/specweave.tdd-green.md → plugins/specweave/commands/tdd-green.md} +0 -0
  277. /package/{src/commands/specweave.tdd-red.md → plugins/specweave/commands/tdd-red.md} +0 -0
  278. /package/{src/commands/specweave.tdd-refactor.md → plugins/specweave/commands/tdd-refactor.md} +0 -0
  279. /package/{src → plugins/specweave}/hooks/README.md +0 -0
  280. /package/{src → plugins/specweave}/hooks/docs-changed.sh +0 -0
  281. /package/{src → plugins/specweave}/hooks/human-input-required.sh +0 -0
  282. /package/{src → plugins/specweave}/hooks/post-increment-plugin-detect.sh +0 -0
  283. /package/{src → plugins/specweave}/hooks/pre-implementation.sh +0 -0
  284. /package/{src → plugins/specweave}/hooks/pre-task-plugin-detect.sh +0 -0
  285. /package/{src → plugins/specweave}/skills/brownfield-onboarder/SKILL.md +0 -0
  286. /package/{src → plugins/specweave}/skills/docs-updater/README.md +0 -0
  287. /package/{src → plugins/specweave}/skills/increment-planner/scripts/feature-utils.js +0 -0
  288. /package/{src → plugins/specweave}/skills/increment-quality-judge/SKILL.md +0 -0
  289. /package/{src → plugins/specweave}/skills/project-kickstarter/test-cases/test-1-high-confidence-full-product.yaml +0 -0
  290. /package/{src → plugins/specweave}/skills/project-kickstarter/test-cases/test-2-medium-confidence-partial.yaml +0 -0
  291. /package/{src → plugins/specweave}/skills/project-kickstarter/test-cases/test-3-low-confidence-technical-question.yaml +0 -0
  292. /package/{src → plugins/specweave}/skills/project-kickstarter/test-cases/test-4-opt-out-explicit.yaml +0 -0
  293. /package/{src → plugins/specweave}/skills/role-orchestrator/README.md +0 -0
  294. /package/{src → plugins/specweave}/skills/role-orchestrator/SKILL.md +0 -0
  295. /package/{src → plugins/specweave}/skills/task-builder/README.md +0 -0
  296. /package/{src → plugins/specweave-ado}/skills/ado-sync/README.md +0 -0
  297. /package/{src → plugins/specweave-ado}/skills/ado-sync/SKILL.md +0 -0
  298. /package/{src → plugins/specweave-ado}/skills/specweave-ado-mapper/SKILL.md +0 -0
  299. /package/{src → plugins/specweave-backend}/agents/database-optimizer/AGENT.md +0 -0
  300. /package/{src → plugins/specweave-backend}/skills/dotnet-backend/SKILL.md +0 -0
  301. /package/{src → plugins/specweave-backend}/skills/nodejs-backend/SKILL.md +0 -0
  302. /package/{src → plugins/specweave-backend}/skills/python-backend/SKILL.md +0 -0
  303. /package/{src → plugins/specweave-cost-optimizer}/skills/cost-optimizer/SKILL.md +0 -0
  304. /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/AGENT.md +0 -0
  305. /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/templates/c4-component-template.mmd +0 -0
  306. /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/templates/c4-container-template.mmd +0 -0
  307. /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/templates/c4-context-template.mmd +0 -0
  308. /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/templates/deployment-template.mmd +0 -0
  309. /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/templates/er-diagram-template.mmd +0 -0
  310. /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/templates/sequence-template.mmd +0 -0
  311. /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/test-cases/test-1-c4-context.yaml +0 -0
  312. /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/test-cases/test-2-sequence.yaml +0 -0
  313. /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/test-cases/test-3-er-diagram.yaml +0 -0
  314. /package/{src → plugins/specweave-diagrams}/skills/diagrams-architect/SKILL.md +0 -0
  315. /package/{src → plugins/specweave-diagrams}/skills/diagrams-generator/SKILL.md +0 -0
  316. /package/{src → plugins/specweave-docs}/skills/spec-driven-brainstorming/README.md +0 -0
  317. /package/{src → plugins/specweave-docs}/skills/spec-driven-brainstorming/SKILL.md +0 -0
  318. /package/{src → plugins/specweave-docs}/skills/spec-driven-debugging/README.md +0 -0
  319. /package/{src → plugins/specweave-docs}/skills/spec-driven-debugging/SKILL.md +0 -0
  320. /package/{src → plugins/specweave-frontend}/skills/design-system-architect/SKILL.md +0 -0
  321. /package/{src → plugins/specweave-frontend}/skills/frontend/SKILL.md +0 -0
  322. /package/{src → plugins/specweave-frontend}/skills/nextjs/SKILL.md +0 -0
  323. /package/{src → plugins/specweave-infrastructure}/agents/devops/AGENT.md +0 -0
  324. /package/{src → plugins/specweave-infrastructure}/agents/network-engineer/AGENT.md +0 -0
  325. /package/{src → plugins/specweave-infrastructure}/agents/observability-engineer/AGENT.md +0 -0
  326. /package/{src → plugins/specweave-infrastructure}/agents/performance-engineer/AGENT.md +0 -0
  327. /package/{src → plugins/specweave-infrastructure}/agents/sre/AGENT.md +0 -0
  328. /package/{src → plugins/specweave-infrastructure}/agents/sre/modules/backend-diagnostics.md +0 -0
  329. /package/{src → plugins/specweave-infrastructure}/agents/sre/modules/database-diagnostics.md +0 -0
  330. /package/{src → plugins/specweave-infrastructure}/agents/sre/modules/infrastructure.md +0 -0
  331. /package/{src → plugins/specweave-infrastructure}/agents/sre/modules/monitoring.md +0 -0
  332. /package/{src → plugins/specweave-infrastructure}/agents/sre/modules/security-incidents.md +0 -0
  333. /package/{src → plugins/specweave-infrastructure}/agents/sre/modules/ui-diagnostics.md +0 -0
  334. /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/01-high-cpu-usage.md +0 -0
  335. /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/02-database-deadlock.md +0 -0
  336. /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/03-memory-leak.md +0 -0
  337. /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/04-slow-api-response.md +0 -0
  338. /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/05-ddos-attack.md +0 -0
  339. /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/06-disk-full.md +0 -0
  340. /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/07-service-down.md +0 -0
  341. /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/08-data-corruption.md +0 -0
  342. /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/09-cascade-failure.md +0 -0
  343. /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/10-rate-limit-exceeded.md +0 -0
  344. /package/{src → plugins/specweave-infrastructure}/agents/sre/scripts/health-check.sh +0 -0
  345. /package/{src → plugins/specweave-infrastructure}/agents/sre/scripts/log-analyzer.py +0 -0
  346. /package/{src → plugins/specweave-infrastructure}/agents/sre/scripts/metrics-collector.sh +0 -0
  347. /package/{src → plugins/specweave-infrastructure}/agents/sre/scripts/trace-analyzer.js +0 -0
  348. /package/{src → plugins/specweave-infrastructure}/agents/sre/templates/incident-report.md +0 -0
  349. /package/{src → plugins/specweave-infrastructure}/agents/sre/templates/mitigation-plan.md +0 -0
  350. /package/{src → plugins/specweave-infrastructure}/agents/sre/templates/post-mortem.md +0 -0
  351. /package/{src → plugins/specweave-infrastructure}/agents/sre/templates/runbook-template.md +0 -0
  352. /package/{src → plugins/specweave-infrastructure}/commands/specweave.monitor-setup.md +0 -0
  353. /package/{src → plugins/specweave-infrastructure}/commands/specweave.slo-implement.md +0 -0
  354. /package/{src → plugins/specweave-infrastructure}/skills/distributed-tracing/SKILL.md +0 -0
  355. /package/{src → plugins/specweave-infrastructure}/skills/grafana-dashboards/SKILL.md +0 -0
  356. /package/{src → plugins/specweave-infrastructure}/skills/hetzner-provisioner/README.md +0 -0
  357. /package/{src → plugins/specweave-infrastructure}/skills/hetzner-provisioner/SKILL.md +0 -0
  358. /package/{src → plugins/specweave-infrastructure}/skills/prometheus-configuration/SKILL.md +0 -0
  359. /package/{src → plugins/specweave-infrastructure}/skills/slo-implementation/SKILL.md +0 -0
  360. /package/{src → plugins/specweave-jira}/skills/jira-sync/README.md +0 -0
  361. /package/{src → plugins/specweave-jira}/skills/jira-sync/SKILL.md +0 -0
  362. /package/{src → plugins/specweave-jira}/skills/specweave-jira-mapper/SKILL.md +0 -0
  363. /package/{src → plugins/specweave-kubernetes}/agents/kubernetes-architect/AGENT.md +0 -0
  364. /package/{src → plugins/specweave-kubernetes}/skills/gitops-workflow/SKILL.md +0 -0
  365. /package/{src → plugins/specweave-kubernetes}/skills/gitops-workflow/references/argocd-setup.md +0 -0
  366. /package/{src → plugins/specweave-kubernetes}/skills/gitops-workflow/references/sync-policies.md +0 -0
  367. /package/{src → plugins/specweave-kubernetes}/skills/helm-chart-scaffolding/SKILL.md +0 -0
  368. /package/{src → plugins/specweave-kubernetes}/skills/helm-chart-scaffolding/assets/Chart.yaml.template +0 -0
  369. /package/{src → plugins/specweave-kubernetes}/skills/helm-chart-scaffolding/assets/values.yaml.template +0 -0
  370. /package/{src → plugins/specweave-kubernetes}/skills/helm-chart-scaffolding/references/chart-structure.md +0 -0
  371. /package/{src → plugins/specweave-kubernetes}/skills/helm-chart-scaffolding/scripts/validate-chart.sh +0 -0
  372. /package/{src → plugins/specweave-kubernetes}/skills/k8s-manifest-generator/SKILL.md +0 -0
  373. /package/{src → plugins/specweave-kubernetes}/skills/k8s-manifest-generator/assets/configmap-template.yaml +0 -0
  374. /package/{src → plugins/specweave-kubernetes}/skills/k8s-manifest-generator/assets/deployment-template.yaml +0 -0
  375. /package/{src → plugins/specweave-kubernetes}/skills/k8s-manifest-generator/assets/service-template.yaml +0 -0
  376. /package/{src → plugins/specweave-kubernetes}/skills/k8s-manifest-generator/references/deployment-spec.md +0 -0
  377. /package/{src → plugins/specweave-kubernetes}/skills/k8s-manifest-generator/references/service-spec.md +0 -0
  378. /package/{src → plugins/specweave-kubernetes}/skills/k8s-security-policies/SKILL.md +0 -0
  379. /package/{src → plugins/specweave-kubernetes}/skills/k8s-security-policies/assets/network-policy-template.yaml +0 -0
  380. /package/{src → plugins/specweave-kubernetes}/skills/k8s-security-policies/references/rbac-patterns.md +0 -0
  381. /package/{src → plugins/specweave-ml}/agents/data-scientist/AGENT.md +0 -0
  382. /package/{src → plugins/specweave-ml}/agents/mlops-engineer/AGENT.md +0 -0
  383. /package/{src → plugins/specweave-ml}/commands/specweave.ml-pipeline.md +0 -0
  384. /package/{src → plugins/specweave-ml}/skills/ml-pipeline-workflow/SKILL.md +0 -0
  385. /package/{src → plugins/specweave-payments}/agents/payment-integration/AGENT.md +0 -0
  386. /package/{src → plugins/specweave-payments}/skills/billing-automation/SKILL.md +0 -0
  387. /package/{src → plugins/specweave-payments}/skills/paypal-integration/SKILL.md +0 -0
  388. /package/{src → plugins/specweave-payments}/skills/pci-compliance/SKILL.md +0 -0
  389. /package/{src → plugins/specweave-payments}/skills/stripe-integration/SKILL.md +0 -0
  390. /package/{src → plugins/specweave-testing}/skills/e2e-playwright/README.md +0 -0
  391. /package/{src → plugins/specweave-testing}/skills/e2e-playwright/SKILL.md +0 -0
  392. /package/{src → plugins/specweave-testing}/skills/e2e-playwright/execute.js +0 -0
  393. /package/{src → plugins/specweave-testing}/skills/e2e-playwright/lib/utils.js +0 -0
  394. /package/{src → plugins/specweave-testing}/skills/e2e-playwright/package.json +0 -0
  395. /package/{src → plugins/specweave-tooling}/skills/skill-creator/LICENSE.txt +0 -0
  396. /package/{src → plugins/specweave-tooling}/skills/skill-creator/SKILL.md +0 -0
  397. /package/{src → plugins/specweave-tooling}/skills/skill-creator/scripts/init_skill.py +0 -0
  398. /package/{src → plugins/specweave-tooling}/skills/skill-creator/scripts/package_skill.py +0 -0
  399. /package/{src → plugins/specweave-tooling}/skills/skill-creator/scripts/quick_validate.py +0 -0
  400. /package/{src → plugins/specweave-tooling}/skills/skill-router/SKILL.md +0 -0
@@ -2,9 +2,9 @@
2
2
  * GitHub Copilot Adapter
3
3
  *
4
4
  * Basic automation adapter for GitHub Copilot.
5
- * Copilot automatically reads AGENTS.md (universal standard) for context and suggestions.
5
+ * Compiles SpecWeave plugins to AGENTS.md (universal standard) for context and suggestions.
6
6
  *
7
- * This adapter requires no additional files - Copilot reads AGENTS.md automatically.
7
+ * This adapter compiles skills, agents, and commands into AGENTS.md format.
8
8
  */
9
9
 
10
10
  import * as path from 'path';
@@ -12,6 +12,9 @@ import fs from 'fs-extra';
12
12
  import { AdapterBase } from '../adapter-base.js';
13
13
  import { AdapterOptions, AdapterFile } from '../adapter-interface.js';
14
14
  import type { Plugin } from '../../core/types/plugin.js';
15
+ import { compileToAgentsMd, getSpecweaveInstallPath } from '../../utils/agents-md-compiler.js';
16
+ import { LanguageManager, getSystemPromptForLanguage } from '../../core/i18n/language-manager.js';
17
+ import type { SupportedLanguage } from '../../core/i18n/types.js';
15
18
 
16
19
  export class CopilotAdapter extends AdapterBase {
17
20
  name = 'copilot';
@@ -47,8 +50,73 @@ export class CopilotAdapter extends AdapterBase {
47
50
  async install(options: AdapterOptions): Promise<void> {
48
51
  console.log('\n📦 Configuring GitHub Copilot (Basic Automation)\n');
49
52
 
50
- // No files to install - Copilot reads AGENTS.md automatically
51
- console.log('✅ Copilot will automatically read AGENTS.md');
53
+ // 1. Create .specweave/ structure
54
+ const specweaveDir = path.join(options.projectPath, '.specweave');
55
+ await fs.ensureDir(specweaveDir);
56
+ await fs.ensureDir(path.join(specweaveDir, 'increments'));
57
+ await fs.ensureDir(path.join(specweaveDir, 'increments', '_backlog'));
58
+ await fs.ensureDir(path.join(specweaveDir, 'docs', 'internal', 'strategy'));
59
+ await fs.ensureDir(path.join(specweaveDir, 'docs', 'internal', 'architecture', 'adr'));
60
+ await fs.ensureDir(path.join(specweaveDir, 'docs', 'internal', 'architecture', 'rfc'));
61
+ await fs.ensureDir(path.join(specweaveDir, 'docs', 'internal', 'architecture', 'diagrams'));
62
+ await fs.ensureDir(path.join(specweaveDir, 'docs', 'internal', 'delivery'));
63
+ await fs.ensureDir(path.join(specweaveDir, 'docs', 'public', 'guides'));
64
+ await fs.ensureDir(path.join(specweaveDir, 'logs'));
65
+
66
+ console.log('✅ Created .specweave/ structure');
67
+
68
+ // 2. Find SpecWeave installation
69
+ let specweavePath: string;
70
+ try {
71
+ specweavePath = getSpecweaveInstallPath();
72
+ console.log(`✅ Found SpecWeave installation at: ${specweavePath}`);
73
+ } catch (error) {
74
+ console.error('❌ Could not find SpecWeave installation');
75
+ console.error(' Make sure SpecWeave is installed: npm install -g specweave');
76
+ return;
77
+ }
78
+
79
+ // 3. Compile plugins to AGENTS.md
80
+ console.log('📝 Compiling plugins to AGENTS.md...');
81
+ const result = await compileToAgentsMd(specweavePath);
82
+
83
+ // 4. Write AGENTS.md
84
+ const agentsMdPath = path.join(options.projectPath, 'AGENTS.md');
85
+ await fs.writeFile(agentsMdPath, result.agentsMd, 'utf-8');
86
+
87
+ console.log('✅ Created AGENTS.md with:');
88
+ console.log(` - ${result.skills.length} skills`);
89
+ console.log(` - ${result.agents.length} agents`);
90
+ console.log(` - ${result.commands.length} commands`);
91
+
92
+ // 5. Create .github/copilot/instructions.md (optional)
93
+ const copilotDir = path.join(options.projectPath, '.github', 'copilot');
94
+ await fs.ensureDir(copilotDir);
95
+
96
+ const instructionsContent = `# GitHub Copilot Instructions
97
+
98
+ This project uses SpecWeave for spec-driven development.
99
+
100
+ ## Important Context
101
+
102
+ - **AGENTS.md**: Complete workflow guide (read this first!)
103
+ - **Structure**: All work happens in \`.specweave/increments/\`
104
+ - **Workflow**: spec.md → plan.md → tasks.md → tests.md
105
+
106
+ ## When Suggesting Code
107
+
108
+ - Follow patterns in AGENTS.md
109
+ - Create files in increment folders, not project root
110
+ - Reference existing specs and plans
111
+ - Follow naming conventions (kebab-case for increments)
112
+
113
+ See AGENTS.md for complete details.
114
+ `;
115
+
116
+ await fs.writeFile(path.join(copilotDir, 'instructions.md'), instructionsContent, 'utf-8');
117
+ console.log('✅ Created .github/copilot/instructions.md');
118
+
119
+ console.log('\n✅ Copilot will automatically read AGENTS.md');
52
120
  }
53
121
 
54
122
  /**
@@ -191,11 +259,56 @@ Copilot is best for simple projects or when already using VS Code + Copilot.
191
259
  return true;
192
260
  }
193
261
 
262
+ /**
263
+ * Read language configuration from project config
264
+ *
265
+ * @returns Language setting from config, defaults to 'en'
266
+ */
267
+ private async getLanguageConfig(): Promise<SupportedLanguage> {
268
+ const projectPath = process.cwd();
269
+ const configPath = path.join(projectPath, '.specweave', 'config.json');
270
+
271
+ if (!(await fs.pathExists(configPath))) {
272
+ return 'en'; // Default to English if no config
273
+ }
274
+
275
+ try {
276
+ const config = await fs.readJson(configPath);
277
+ return (config.language as SupportedLanguage) || 'en';
278
+ } catch (error) {
279
+ console.warn('⚠️ Could not read language from config, defaulting to English');
280
+ return 'en';
281
+ }
282
+ }
283
+
284
+ /**
285
+ * Inject system prompt for non-English languages
286
+ *
287
+ * Prepends language instruction to markdown content if language !== 'en'
288
+ *
289
+ * @param content Original markdown content
290
+ * @param language Target language
291
+ * @returns Modified content with system prompt (or unchanged if English)
292
+ */
293
+ private injectSystemPrompt(content: string, language: SupportedLanguage): string {
294
+ if (language === 'en') {
295
+ return content; // No changes for English - preserve default behavior
296
+ }
297
+
298
+ // Get system prompt for target language
299
+ const systemPrompt = getSystemPromptForLanguage(language);
300
+
301
+ // For AGENTS.md compilation, inject at the beginning of the content
302
+ return `${systemPrompt}\n\n${content}`;
303
+ }
304
+
194
305
  /**
195
306
  * Compile and install a plugin for Copilot
196
307
  *
197
308
  * Copilot uses AGENTS.md compilation (same as Cursor)
198
309
  *
310
+ * NEW: Injects system prompts for non-English languages
311
+ *
199
312
  * @param plugin Plugin to install
200
313
  */
201
314
  async compilePlugin(plugin: Plugin): Promise<void> {
@@ -204,6 +317,12 @@ Copilot is best for simple projects or when already using VS Code + Copilot.
204
317
 
205
318
  console.log(`\n📦 Compiling plugin for Copilot: ${plugin.manifest.name}`);
206
319
 
320
+ // Get language configuration for system prompt injection
321
+ const language = await this.getLanguageConfig();
322
+ if (language !== 'en') {
323
+ console.log(` 🌐 Language: ${language} (system prompts will be injected)`);
324
+ }
325
+
207
326
  if (!(await fs.pathExists(agentsMdPath))) {
208
327
  throw new Error('AGENTS.md not found. Run specweave init first.');
209
328
  }
@@ -225,7 +344,9 @@ Copilot is best for simple projects or when already using VS Code + Copilot.
225
344
  for (const skill of plugin.skills) {
226
345
  const skillContent = await fs.readFile(path.join(skill.path, 'SKILL.md'), 'utf-8');
227
346
  const contentWithoutFrontmatter = skillContent.replace(/^---\n[\s\S]+?\n---\n/, '');
228
- pluginSection += `### ${skill.name}\n\n${contentWithoutFrontmatter}\n\n`;
347
+ // Inject system prompt if needed
348
+ const modifiedContent = this.injectSystemPrompt(contentWithoutFrontmatter, language);
349
+ pluginSection += `### ${skill.name}\n\n${modifiedContent}\n\n`;
229
350
  }
230
351
  }
231
352
 
@@ -233,7 +354,9 @@ Copilot is best for simple projects or when already using VS Code + Copilot.
233
354
  pluginSection += `## Agents\n\n`;
234
355
  for (const agent of plugin.agents) {
235
356
  const agentContent = await fs.readFile(path.join(agent.path, 'AGENT.md'), 'utf-8');
236
- pluginSection += `### ${agent.name}\n\n${agentContent}\n\n`;
357
+ // Inject system prompt if needed
358
+ const modifiedContent = this.injectSystemPrompt(agentContent, language);
359
+ pluginSection += `### ${agent.name}\n\n${modifiedContent}\n\n`;
237
360
  }
238
361
  }
239
362
 
@@ -242,7 +365,9 @@ Copilot is best for simple projects or when already using VS Code + Copilot.
242
365
  for (const command of plugin.commands) {
243
366
  const commandContent = await fs.readFile(command.path, 'utf-8');
244
367
  const contentWithoutFrontmatter = commandContent.replace(/^---\n[\s\S]+?\n---\n/, '');
245
- pluginSection += `### /${command.name}\n\n${contentWithoutFrontmatter}\n\n`;
368
+ // Inject system prompt if needed
369
+ const modifiedContent = this.injectSystemPrompt(contentWithoutFrontmatter, language);
370
+ pluginSection += `### /${command.name}\n\n${modifiedContent}\n\n`;
246
371
  }
247
372
  }
248
373
 
@@ -13,6 +13,8 @@ import fs from 'fs-extra';
13
13
  import { AdapterBase } from '../adapter-base.js';
14
14
  import { AdapterOptions, AdapterFile } from '../adapter-interface.js';
15
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';
16
18
 
17
19
  export class CursorAdapter extends AdapterBase {
18
20
  name = 'cursor';
@@ -232,6 +234,49 @@ Pro tip: Say "act as [role]" to follow AGENTS.md patterns:
232
234
  return true;
233
235
  }
234
236
 
237
+ /**
238
+ * Read language configuration from project config
239
+ *
240
+ * @returns Language setting from config, defaults to 'en'
241
+ */
242
+ private async getLanguageConfig(): Promise<SupportedLanguage> {
243
+ const projectPath = process.cwd();
244
+ const configPath = path.join(projectPath, '.specweave', 'config.json');
245
+
246
+ if (!(await fs.pathExists(configPath))) {
247
+ return 'en'; // Default to English if no config
248
+ }
249
+
250
+ try {
251
+ const config = await fs.readJson(configPath);
252
+ return (config.language as SupportedLanguage) || 'en';
253
+ } catch (error) {
254
+ console.warn('⚠️ Could not read language from config, defaulting to English');
255
+ return 'en';
256
+ }
257
+ }
258
+
259
+ /**
260
+ * Inject system prompt for non-English languages
261
+ *
262
+ * Prepends language instruction to markdown content if language !== 'en'
263
+ *
264
+ * @param content Original markdown content
265
+ * @param language Target language
266
+ * @returns Modified content with system prompt (or unchanged if English)
267
+ */
268
+ private injectSystemPrompt(content: string, language: SupportedLanguage): string {
269
+ if (language === 'en') {
270
+ return content; // No changes for English - preserve default behavior
271
+ }
272
+
273
+ // Get system prompt for target language
274
+ const systemPrompt = getSystemPromptForLanguage(language);
275
+
276
+ // For AGENTS.md compilation, inject at the beginning of the content
277
+ return `${systemPrompt}\n\n${content}`;
278
+ }
279
+
235
280
  /**
236
281
  * Compile and install a plugin for Cursor
237
282
  *
@@ -240,6 +285,8 @@ Pro tip: Say "act as [role]" to follow AGENTS.md patterns:
240
285
  * - Append agents to AGENTS.md
241
286
  * - Append commands to team commands JSON
242
287
  *
288
+ * NEW: Injects system prompts for non-English languages
289
+ *
243
290
  * @param plugin Plugin to install
244
291
  */
245
292
  async compilePlugin(plugin: Plugin): Promise<void> {
@@ -248,6 +295,12 @@ Pro tip: Say "act as [role]" to follow AGENTS.md patterns:
248
295
 
249
296
  console.log(`\n📦 Compiling plugin for Cursor: ${plugin.manifest.name}`);
250
297
 
298
+ // Get language configuration for system prompt injection
299
+ const language = await this.getLanguageConfig();
300
+ if (language !== 'en') {
301
+ console.log(` 🌐 Language: ${language} (system prompts will be injected)`);
302
+ }
303
+
251
304
  // Ensure AGENTS.md exists
252
305
  if (!(await fs.pathExists(agentsMdPath))) {
253
306
  throw new Error('AGENTS.md not found. Run specweave init first.');
@@ -275,8 +328,10 @@ Pro tip: Say "act as [role]" to follow AGENTS.md patterns:
275
328
  const skillContent = await fs.readFile(path.join(skill.path, 'SKILL.md'), 'utf-8');
276
329
  // Remove frontmatter for AGENTS.md
277
330
  const contentWithoutFrontmatter = skillContent.replace(/^---\n[\s\S]+?\n---\n/, '');
331
+ // Inject system prompt if needed
332
+ const modifiedContent = this.injectSystemPrompt(contentWithoutFrontmatter, language);
278
333
  pluginSection += `### ${skill.name}\n\n`;
279
- pluginSection += `${contentWithoutFrontmatter}\n\n`;
334
+ pluginSection += `${modifiedContent}\n\n`;
280
335
  }
281
336
  }
282
337
 
@@ -285,8 +340,10 @@ Pro tip: Say "act as [role]" to follow AGENTS.md patterns:
285
340
  pluginSection += `## Agents\n\n`;
286
341
  for (const agent of plugin.agents) {
287
342
  const agentContent = await fs.readFile(path.join(agent.path, 'AGENT.md'), 'utf-8');
343
+ // Inject system prompt if needed
344
+ const modifiedContent = this.injectSystemPrompt(agentContent, language);
288
345
  pluginSection += `### ${agent.name}\n\n`;
289
- pluginSection += `${agentContent}\n\n`;
346
+ pluginSection += `${modifiedContent}\n\n`;
290
347
  }
291
348
  }
292
349
 
@@ -297,8 +354,10 @@ Pro tip: Say "act as [role]" to follow AGENTS.md patterns:
297
354
  const commandContent = await fs.readFile(command.path, 'utf-8');
298
355
  // Remove frontmatter
299
356
  const contentWithoutFrontmatter = commandContent.replace(/^---\n[\s\S]+?\n---\n/, '');
357
+ // Inject system prompt if needed
358
+ const modifiedContent = this.injectSystemPrompt(contentWithoutFrontmatter, language);
300
359
  pluginSection += `### /${command.name}\n\n`;
301
- pluginSection += `${contentWithoutFrontmatter}\n\n`;
360
+ pluginSection += `${modifiedContent}\n\n`;
302
361
  }
303
362
  }
304
363
 
@@ -13,6 +13,8 @@ import fs from 'fs-extra';
13
13
  import { AdapterBase } from '../adapter-base.js';
14
14
  import { AdapterOptions, AdapterFile } from '../adapter-interface.js';
15
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';
16
18
 
17
19
  export class GenericAdapter extends AdapterBase {
18
20
  name = 'generic';
@@ -173,11 +175,56 @@ Remember: AGENTS.md is the universal standard - it works everywhere!
173
175
  return true;
174
176
  }
175
177
 
178
+ /**
179
+ * Read language configuration from project config
180
+ *
181
+ * @returns Language setting from config, defaults to 'en'
182
+ */
183
+ private async getLanguageConfig(): Promise<SupportedLanguage> {
184
+ const projectPath = process.cwd();
185
+ const configPath = path.join(projectPath, '.specweave', 'config.json');
186
+
187
+ if (!(await fs.pathExists(configPath))) {
188
+ return 'en'; // Default to English if no config
189
+ }
190
+
191
+ try {
192
+ const config = await fs.readJson(configPath);
193
+ return (config.language as SupportedLanguage) || 'en';
194
+ } catch (error) {
195
+ console.warn('⚠️ Could not read language from config, defaulting to English');
196
+ return 'en';
197
+ }
198
+ }
199
+
200
+ /**
201
+ * Inject system prompt for non-English languages
202
+ *
203
+ * Prepends language instruction to markdown content if language !== 'en'
204
+ *
205
+ * @param content Original markdown content
206
+ * @param language Target language
207
+ * @returns Modified content with system prompt (or unchanged if English)
208
+ */
209
+ private injectSystemPrompt(content: string, language: SupportedLanguage): string {
210
+ if (language === 'en') {
211
+ return content; // No changes for English - preserve default behavior
212
+ }
213
+
214
+ // Get system prompt for target language
215
+ const systemPrompt = getSystemPromptForLanguage(language);
216
+
217
+ // For AGENTS.md compilation, inject at the beginning of the content
218
+ return `${systemPrompt}\n\n${content}`;
219
+ }
220
+
176
221
  /**
177
222
  * Compile and install a plugin for Generic adapter
178
223
  *
179
224
  * Appends plugin content to AGENTS.md for manual copy-paste workflows
180
225
  *
226
+ * NEW: Injects system prompts for non-English languages
227
+ *
181
228
  * @param plugin Plugin to install
182
229
  */
183
230
  async compilePlugin(plugin: Plugin): Promise<void> {
@@ -186,6 +233,12 @@ Remember: AGENTS.md is the universal standard - it works everywhere!
186
233
 
187
234
  console.log(`\n📦 Adding plugin to AGENTS.md: ${plugin.manifest.name}`);
188
235
 
236
+ // Get language configuration for system prompt injection
237
+ const language = await this.getLanguageConfig();
238
+ if (language !== 'en') {
239
+ console.log(` 🌐 Language: ${language} (system prompts will be injected)`);
240
+ }
241
+
189
242
  if (!(await fs.pathExists(agentsMdPath))) {
190
243
  throw new Error('AGENTS.md not found. Run specweave init first.');
191
244
  }
@@ -207,7 +260,9 @@ Remember: AGENTS.md is the universal standard - it works everywhere!
207
260
  for (const skill of plugin.skills) {
208
261
  const skillContent = await fs.readFile(path.join(skill.path, 'SKILL.md'), 'utf-8');
209
262
  const contentWithoutFrontmatter = skillContent.replace(/^---\n[\s\S]+?\n---\n/, '');
210
- pluginSection += `### ${skill.name}\n\n${contentWithoutFrontmatter}\n\n`;
263
+ // Inject system prompt if needed
264
+ const modifiedContent = this.injectSystemPrompt(contentWithoutFrontmatter, language);
265
+ pluginSection += `### ${skill.name}\n\n${modifiedContent}\n\n`;
211
266
  }
212
267
  }
213
268
 
@@ -215,7 +270,9 @@ Remember: AGENTS.md is the universal standard - it works everywhere!
215
270
  pluginSection += `## Agents\n\n`;
216
271
  for (const agent of plugin.agents) {
217
272
  const agentContent = await fs.readFile(path.join(agent.path, 'AGENT.md'), 'utf-8');
218
- pluginSection += `### ${agent.name}\n\n${agentContent}\n\n`;
273
+ // Inject system prompt if needed
274
+ const modifiedContent = this.injectSystemPrompt(agentContent, language);
275
+ pluginSection += `### ${agent.name}\n\n${modifiedContent}\n\n`;
219
276
  }
220
277
  }
221
278
 
@@ -224,7 +281,9 @@ Remember: AGENTS.md is the universal standard - it works everywhere!
224
281
  for (const command of plugin.commands) {
225
282
  const commandContent = await fs.readFile(command.path, 'utf-8');
226
283
  const contentWithoutFrontmatter = commandContent.replace(/^---\n[\s\S]+?\n---\n/, '');
227
- pluginSection += `### ${command.name.replace('specweave.', '')}\n\n${contentWithoutFrontmatter}\n\n`;
284
+ // Inject system prompt if needed
285
+ const modifiedContent = this.injectSystemPrompt(contentWithoutFrontmatter, language);
286
+ pluginSection += `### ${command.name.replace('specweave.', '')}\n\n${modifiedContent}\n\n`;
228
287
  }
229
288
  }
230
289
 
@@ -45,12 +45,166 @@ This is a **SpecWeave project** where specifications and documentation are the s
45
45
  ├── agents/ # Specialized roles (PM, Architect, DevOps, etc.)
46
46
  ├── skills/ # Capabilities (increment-planner, context-loader, etc.)
47
47
  └── commands/ # Slash commands (/inc, /do, /done)
48
+
49
+ plugins/ # Optional plugins (extended capabilities)
50
+ └── specweave-{name}/
51
+ ├── .claude-plugin/ # Plugin manifest (Claude native format)
52
+ │ └── plugin.json
53
+ ├── skills/ # Plugin-specific skills
54
+ ├── agents/ # Plugin-specific agents
55
+ └── commands/ # Plugin-specific commands
48
56
  ```
49
57
 
50
58
  **CRITICAL**: Always read `context-manifest.yaml` first! Only load files listed there.
51
59
 
52
60
  ---
53
61
 
62
+ ## 🔌 Plugin Architecture (IMPORTANT FOR NON-CLAUDE TOOLS)
63
+
64
+ ### For Claude Code Users
65
+
66
+ Plugins work automatically via marketplace:
67
+ ```bash
68
+ /plugin install github@specweave
69
+ ```
70
+
71
+ Skills, agents, and commands are immediately available. **Skip this section if using Claude Code.**
72
+
73
+ ### For Other Tools (Cursor, Copilot, ChatGPT, etc.)
74
+
75
+ **⚠️ CRITICAL**: Claude Code has native plugin support. **Other tools DO NOT.**
76
+
77
+ You MUST manually discover and load plugins at the start of each session:
78
+
79
+ #### Step 1: Check for Plugins
80
+
81
+ ```bash
82
+ # Check if project uses plugins
83
+ ls plugins/
84
+
85
+ # Example output:
86
+ # specweave-github/
87
+ # specweave-jira/
88
+ ```
89
+
90
+ If `plugins/` folder exists, proceed to Step 2.
91
+
92
+ #### Step 2: Load Plugin Components
93
+
94
+ **For EACH plugin, load its components BEFORE starting work:**
95
+
96
+ ```bash
97
+ # Example: Loading GitHub plugin
98
+
99
+ # 1. Check plugin structure
100
+ ls plugins/specweave-github/
101
+
102
+ # 2. Load ALL plugin skills (like core skills)
103
+ cat plugins/specweave-github/skills/github-sync/SKILL.md
104
+ cat plugins/specweave-github/skills/github-issue-tracker/SKILL.md
105
+
106
+ # 3. Load plugin agents (if any)
107
+ cat plugins/specweave-github/agents/github-manager/AGENT.md
108
+
109
+ # 4. Note available commands (load on-demand when user requests)
110
+ ls plugins/specweave-github/commands/
111
+ # github-create-issue.md, github-sync.md, github-status.md
112
+ ```
113
+
114
+ #### Step 3: Make Plugin Capabilities Available
115
+
116
+ Treat plugin components like core components:
117
+
118
+ **Plugin Skills**:
119
+ - Same activation pattern as core skills
120
+ - Check "Activates for" keywords in SKILL.md
121
+ - Follow workflow when relevant
122
+
123
+ **Plugin Agents**:
124
+ - Adopt role when needed (like core agents)
125
+ - Example: "Adopting github-manager agent role..."
126
+
127
+ **Plugin Commands**:
128
+ - Load command file when user requests action
129
+ - Example: User says "sync to GitHub" → Load `plugins/specweave-github/commands/github-sync.md`
130
+
131
+ #### Step 4: Document Loaded Plugins
132
+
133
+ At session start, note which plugins are active:
134
+
135
+ ```markdown
136
+ # Session Context
137
+ - Core skills: ✅ Loaded from .claude/skills/
138
+ - Core agents: ✅ Loaded from .claude/agents/
139
+ - Plugins detected:
140
+ - specweave-github: ✅ Loaded (2 skills, 1 agent, 4 commands)
141
+ - specweave-jira: ✅ Loaded (1 skill, 1 agent, 2 commands)
142
+ ```
143
+
144
+ ### Why Manual Loading Is Required
145
+
146
+ **Claude Code**: Has native plugin marketplace, auto-loads plugins, manages dependencies.
147
+
148
+ **Other Tools**: No plugin system, so you must:
149
+ - ✅ Discover plugins in `plugins/` folder
150
+ - ✅ Read plugin skills/agents/commands manually
151
+ - ✅ Make them available in your context
152
+ - ✅ Use them like core components
153
+
154
+ **This is NOT optional** - plugins extend SpecWeave capabilities. Without loading them, you're missing critical functionality (GitHub sync, Jira integration, tech-specific skills, etc.).
155
+
156
+ ### Example: Session Start Routine (Non-Claude Tools)
157
+
158
+ ```bash
159
+ # 1. Load core components
160
+ cat .claude/skills/SKILLS-INDEX.md # Core skills index
161
+ cat AGENTS.md # This file
162
+
163
+ # 2. Check for plugins
164
+ if [ -d "plugins" ]; then
165
+ # 3. For each plugin, load components
166
+ for plugin in plugins/*/; do
167
+ echo "Loading plugin: $(basename $plugin)"
168
+
169
+ # Load all skills
170
+ find "$plugin/skills" -name "SKILL.md" -exec cat {} \;
171
+
172
+ # Load all agents
173
+ find "$plugin/agents" -name "AGENT.md" -exec cat {} \;
174
+
175
+ # Note available commands
176
+ ls "$plugin/commands/"
177
+ done
178
+ fi
179
+
180
+ # 4. Now ready to work with full SpecWeave capabilities
181
+ ```
182
+
183
+ ### Plugin Naming Convention
184
+
185
+ Plugin commands use namespace pattern:
186
+
187
+ **Core commands** (no namespace):
188
+ - `/specweave:inc` → Core framework
189
+ - `/specweave:do` → Core framework
190
+ - `/specweave:progress` → Core framework
191
+
192
+ **Plugin commands** (with namespace):
193
+ - `/specweave:github:sync` → GitHub plugin
194
+ - `/specweave:github:create-issue` → GitHub plugin
195
+ - `/specweave:jira:sync` → Jira plugin
196
+ - `/specweave:jira:create-ticket` → Jira plugin
197
+
198
+ **In non-Claude tools**: Read the command file when user requests the action:
199
+ ```bash
200
+ # User: "Sync this increment to GitHub"
201
+ # You: Load and execute command
202
+ cat plugins/specweave-github/commands/github-sync.md
203
+ # Then follow the instructions in that file
204
+ ```
205
+
206
+ ---
207
+
54
208
  ## Available Agents (Specialized Roles)
55
209
 
56
210
  SpecWeave uses role-based development. When working on tasks, adopt the appropriate role:
@@ -319,6 +473,7 @@ max_context_tokens: 10000
319
473
 
320
474
  If using Claude Code, these slash commands are available:
321
475
 
476
+ **Core Commands** (always available):
322
477
  | Command | Purpose | Example |
323
478
  |---------|---------|---------|
324
479
  | `/inc` | Create new increment | `/inc "user authentication"` |
@@ -326,7 +481,21 @@ If using Claude Code, these slash commands are available:
326
481
  | `/progress` | Check status | `/progress` |
327
482
  | `/done` | Close increment | `/done 0001` |
328
483
  | `/validate` | Validate quality | `/validate 0001 --quality` |
329
- | `/sync-github` | Sync to GitHub | `/sync-github` |
484
+
485
+ **Plugin Commands** (when plugin installed):
486
+ | Command | Purpose | Plugin |
487
+ |---------|---------|--------|
488
+ | `/specweave:github:sync` | Sync to GitHub | specweave-github |
489
+ | `/specweave:github:create-issue` | Create GitHub issue | specweave-github |
490
+ | `/specweave:jira:sync` | Sync to Jira | specweave-jira |
491
+ | `/specweave:jira:create-ticket` | Create Jira ticket | specweave-jira |
492
+
493
+ **For non-Claude tools**: Read the command file when user requests the action:
494
+ ```bash
495
+ # User: "Sync to GitHub"
496
+ cat plugins/specweave-github/commands/github-sync.md
497
+ # Then follow instructions in that file
498
+ ```
330
499
 
331
500
  ---
332
501