specweave 0.6.7 → 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 (281) hide show
  1. package/.claude-plugin/README.md +1 -1
  2. package/CLAUDE.md +920 -107
  3. package/README.md +143 -207
  4. package/bin/specweave.js +67 -0
  5. package/dist/adapters/adapter-interface.d.ts +11 -11
  6. package/dist/adapters/adapter-interface.d.ts.map +1 -1
  7. package/dist/adapters/adapter-interface.js +1 -1
  8. package/dist/adapters/adapter-loader.d.ts +1 -2
  9. package/dist/adapters/adapter-loader.d.ts.map +1 -1
  10. package/dist/adapters/adapter-loader.js +3 -6
  11. package/dist/adapters/adapter-loader.js.map +1 -1
  12. package/dist/adapters/agents-md-generator.d.ts +3 -3
  13. package/dist/adapters/agents-md-generator.js +3 -3
  14. package/dist/adapters/generic/adapter.d.ts +2 -2
  15. package/dist/adapters/generic/adapter.d.ts.map +1 -1
  16. package/dist/adapters/generic/adapter.js +28 -9
  17. package/dist/adapters/generic/adapter.js.map +1 -1
  18. package/dist/cli/commands/abandon.d.ts +13 -0
  19. package/dist/cli/commands/abandon.d.ts.map +1 -0
  20. package/dist/cli/commands/abandon.js +15 -0
  21. package/dist/cli/commands/abandon.js.map +1 -0
  22. package/dist/cli/commands/init.d.ts.map +1 -1
  23. package/dist/cli/commands/init.js +141 -40
  24. package/dist/cli/commands/init.js.map +1 -1
  25. package/dist/cli/commands/pause.d.ts +13 -0
  26. package/dist/cli/commands/pause.d.ts.map +1 -0
  27. package/dist/cli/commands/pause.js +15 -0
  28. package/dist/cli/commands/pause.js.map +1 -0
  29. package/dist/cli/commands/qa.d.ts +54 -0
  30. package/dist/cli/commands/qa.d.ts.map +1 -0
  31. package/dist/cli/commands/qa.js +98 -0
  32. package/dist/cli/commands/qa.js.map +1 -0
  33. package/dist/cli/commands/resume.d.ts +12 -0
  34. package/dist/cli/commands/resume.d.ts.map +1 -0
  35. package/dist/cli/commands/resume.js +14 -0
  36. package/dist/cli/commands/resume.js.map +1 -0
  37. package/dist/cli/commands/status.d.ts +12 -0
  38. package/dist/cli/commands/status.d.ts.map +1 -0
  39. package/dist/cli/commands/status.js +23 -0
  40. package/dist/cli/commands/status.js.map +1 -0
  41. package/dist/cli/helpers/issue-tracker/ado.d.ts +57 -0
  42. package/dist/cli/helpers/issue-tracker/ado.d.ts.map +1 -0
  43. package/dist/cli/helpers/issue-tracker/ado.js +223 -0
  44. package/dist/cli/helpers/issue-tracker/ado.js.map +1 -0
  45. package/dist/cli/helpers/issue-tracker/github.d.ts +65 -0
  46. package/dist/cli/helpers/issue-tracker/github.d.ts.map +1 -0
  47. package/dist/cli/helpers/issue-tracker/github.js +284 -0
  48. package/dist/cli/helpers/issue-tracker/github.js.map +1 -0
  49. package/dist/cli/helpers/issue-tracker/index.d.ts +22 -0
  50. package/dist/cli/helpers/issue-tracker/index.d.ts.map +1 -0
  51. package/dist/cli/helpers/issue-tracker/index.js +270 -0
  52. package/dist/cli/helpers/issue-tracker/index.js.map +1 -0
  53. package/dist/cli/helpers/issue-tracker/jira.d.ts +61 -0
  54. package/dist/cli/helpers/issue-tracker/jira.d.ts.map +1 -0
  55. package/dist/cli/helpers/issue-tracker/jira.js +265 -0
  56. package/dist/cli/helpers/issue-tracker/jira.js.map +1 -0
  57. package/dist/cli/helpers/issue-tracker/types.d.ts +86 -0
  58. package/dist/cli/helpers/issue-tracker/types.d.ts.map +1 -0
  59. package/dist/cli/helpers/issue-tracker/types.js +16 -0
  60. package/dist/cli/helpers/issue-tracker/types.js.map +1 -0
  61. package/dist/cli/helpers/issue-tracker/utils.d.ts +103 -0
  62. package/dist/cli/helpers/issue-tracker/utils.d.ts.map +1 -0
  63. package/dist/cli/helpers/issue-tracker/utils.js +240 -0
  64. package/dist/cli/helpers/issue-tracker/utils.js.map +1 -0
  65. package/dist/core/increment/limits.d.ts +68 -0
  66. package/dist/core/increment/limits.d.ts.map +1 -0
  67. package/dist/core/increment/limits.js +224 -0
  68. package/dist/core/increment/limits.js.map +1 -0
  69. package/dist/core/increment/metadata-manager.d.ts +114 -0
  70. package/dist/core/increment/metadata-manager.d.ts.map +1 -0
  71. package/dist/core/increment/metadata-manager.js +320 -0
  72. package/dist/core/increment/metadata-manager.js.map +1 -0
  73. package/dist/core/increment/status-commands.d.ts +43 -0
  74. package/dist/core/increment/status-commands.d.ts.map +1 -0
  75. package/dist/core/increment/status-commands.js +277 -0
  76. package/dist/core/increment/status-commands.js.map +1 -0
  77. package/dist/core/plugin-detector.d.ts +1 -0
  78. package/dist/core/plugin-detector.d.ts.map +1 -1
  79. package/dist/core/plugin-detector.js +25 -0
  80. package/dist/core/plugin-detector.js.map +1 -1
  81. package/dist/core/qa/qa-runner.d.ts +16 -0
  82. package/dist/core/qa/qa-runner.d.ts.map +1 -0
  83. package/dist/core/qa/qa-runner.js +404 -0
  84. package/dist/core/qa/qa-runner.js.map +1 -0
  85. package/dist/core/qa/quality-gate-decider.d.ts +53 -0
  86. package/dist/core/qa/quality-gate-decider.d.ts.map +1 -0
  87. package/dist/core/qa/quality-gate-decider.js +268 -0
  88. package/dist/core/qa/quality-gate-decider.js.map +1 -0
  89. package/dist/core/qa/risk-calculator.d.ts +126 -0
  90. package/dist/core/qa/risk-calculator.d.ts.map +1 -0
  91. package/dist/core/qa/risk-calculator.js +247 -0
  92. package/dist/core/qa/risk-calculator.js.map +1 -0
  93. package/dist/core/qa/types.d.ts +315 -0
  94. package/dist/core/qa/types.d.ts.map +1 -0
  95. package/dist/core/qa/types.js +8 -0
  96. package/dist/core/qa/types.js.map +1 -0
  97. package/dist/core/types/config.d.ts +37 -2
  98. package/dist/core/types/config.d.ts.map +1 -1
  99. package/dist/core/types/config.js +16 -0
  100. package/dist/core/types/config.js.map +1 -1
  101. package/dist/core/types/increment-metadata.d.ts +120 -0
  102. package/dist/core/types/increment-metadata.d.ts.map +1 -0
  103. package/dist/core/types/increment-metadata.js +138 -0
  104. package/dist/core/types/increment-metadata.js.map +1 -0
  105. package/dist/hooks/lib/invoke-translator-skill.d.ts +60 -0
  106. package/dist/hooks/lib/invoke-translator-skill.d.ts.map +1 -0
  107. package/dist/hooks/lib/invoke-translator-skill.js +201 -0
  108. package/dist/hooks/lib/invoke-translator-skill.js.map +1 -0
  109. package/dist/hooks/lib/translate-file.d.ts +59 -0
  110. package/dist/hooks/lib/translate-file.d.ts.map +1 -0
  111. package/dist/hooks/lib/translate-file.js +350 -0
  112. package/dist/hooks/lib/translate-file.js.map +1 -0
  113. package/dist/locales/en/cli.json +3 -1
  114. package/dist/metrics/calculators/change-failure-rate.d.ts +22 -0
  115. package/dist/metrics/calculators/change-failure-rate.d.ts.map +1 -0
  116. package/dist/metrics/calculators/change-failure-rate.js +70 -0
  117. package/dist/metrics/calculators/change-failure-rate.js.map +1 -0
  118. package/dist/metrics/calculators/deployment-frequency.d.ts +20 -0
  119. package/dist/metrics/calculators/deployment-frequency.d.ts.map +1 -0
  120. package/dist/metrics/calculators/deployment-frequency.js +61 -0
  121. package/dist/metrics/calculators/deployment-frequency.js.map +1 -0
  122. package/dist/metrics/calculators/lead-time.d.ts +22 -0
  123. package/dist/metrics/calculators/lead-time.d.ts.map +1 -0
  124. package/dist/metrics/calculators/lead-time.js +82 -0
  125. package/dist/metrics/calculators/lead-time.js.map +1 -0
  126. package/dist/metrics/calculators/mttr.d.ts +21 -0
  127. package/dist/metrics/calculators/mttr.d.ts.map +1 -0
  128. package/dist/metrics/calculators/mttr.js +60 -0
  129. package/dist/metrics/calculators/mttr.js.map +1 -0
  130. package/dist/metrics/dora-calculator.d.ts +24 -0
  131. package/dist/metrics/dora-calculator.d.ts.map +1 -0
  132. package/dist/metrics/dora-calculator.js +104 -0
  133. package/dist/metrics/dora-calculator.js.map +1 -0
  134. package/dist/metrics/github-client.d.ts +51 -0
  135. package/dist/metrics/github-client.d.ts.map +1 -0
  136. package/dist/metrics/github-client.js +133 -0
  137. package/dist/metrics/github-client.js.map +1 -0
  138. package/dist/metrics/types.d.ts +112 -0
  139. package/dist/metrics/types.d.ts.map +1 -0
  140. package/dist/metrics/types.js +10 -0
  141. package/dist/metrics/types.js.map +1 -0
  142. package/dist/metrics/utils/percentile.d.ts +25 -0
  143. package/dist/metrics/utils/percentile.d.ts.map +1 -0
  144. package/dist/metrics/utils/percentile.js +46 -0
  145. package/dist/metrics/utils/percentile.js.map +1 -0
  146. package/dist/metrics/utils/tier-classifier.d.ts +61 -0
  147. package/dist/metrics/utils/tier-classifier.d.ts.map +1 -0
  148. package/dist/metrics/utils/tier-classifier.js +100 -0
  149. package/dist/metrics/utils/tier-classifier.js.map +1 -0
  150. package/dist/utils/auth-helpers.d.ts +58 -0
  151. package/dist/utils/auth-helpers.d.ts.map +1 -0
  152. package/dist/utils/auth-helpers.js +108 -0
  153. package/dist/utils/auth-helpers.js.map +1 -0
  154. package/dist/utils/env-file.d.ts +88 -0
  155. package/dist/utils/env-file.d.ts.map +1 -0
  156. package/dist/utils/env-file.js +180 -0
  157. package/dist/utils/env-file.js.map +1 -0
  158. package/dist/utils/plugin-detection.d.ts +50 -0
  159. package/dist/utils/plugin-detection.d.ts.map +1 -0
  160. package/dist/utils/plugin-detection.js +229 -0
  161. package/dist/utils/plugin-detection.js.map +1 -0
  162. package/dist/utils/secrets-loader.d.ts +88 -0
  163. package/dist/utils/secrets-loader.d.ts.map +1 -0
  164. package/dist/utils/secrets-loader.js +271 -0
  165. package/dist/utils/secrets-loader.js.map +1 -0
  166. package/dist/utils/translation.d.ts +187 -0
  167. package/dist/utils/translation.d.ts.map +1 -0
  168. package/dist/utils/translation.js +414 -0
  169. package/dist/utils/translation.js.map +1 -0
  170. package/package.json +28 -44
  171. package/plugins/specweave/.claude-plugin/plugin.json +3 -3
  172. package/plugins/specweave/agents/pm/AGENT.md +330 -54
  173. package/plugins/specweave/agents/test-aware-planner/AGENT.md +1035 -0
  174. package/plugins/specweave/agents/test-aware-planner/templates/README.md +118 -0
  175. package/plugins/specweave/agents/test-aware-planner/templates/task-non-testable.md.template +24 -0
  176. package/plugins/specweave/agents/test-aware-planner/templates/task-testable.md.template +53 -0
  177. package/plugins/specweave/agents/test-aware-planner/templates/tasks-frontmatter.md.template +11 -0
  178. package/plugins/specweave/commands/README.md +88 -163
  179. package/plugins/specweave/commands/specweave-abandon.md +314 -0
  180. package/plugins/specweave/commands/specweave-check-tests.md +546 -0
  181. package/plugins/specweave/commands/{do.md → specweave-do.md} +5 -5
  182. package/plugins/specweave/commands/{done.md → specweave-done.md} +2 -0
  183. package/plugins/specweave/commands/{increment.md → specweave-increment.md} +231 -4
  184. package/plugins/specweave/commands/specweave-pause.md +189 -0
  185. package/plugins/specweave/commands/specweave-qa.md +245 -0
  186. package/plugins/specweave/commands/specweave-resume.md +216 -0
  187. package/plugins/specweave/commands/specweave-status.md +397 -0
  188. package/plugins/specweave/commands/specweave-sync-tasks.md +256 -0
  189. package/plugins/specweave/commands/{translate.md → specweave-translate.md} +3 -3
  190. package/plugins/specweave/commands/specweave-update-scope.md +351 -0
  191. package/plugins/specweave/commands/{validate.md → specweave-validate.md} +2 -0
  192. package/plugins/specweave/commands/specweave.md +21 -21
  193. package/plugins/specweave/hooks/docs-changed.sh +23 -3
  194. package/plugins/specweave/hooks/human-input-required.sh +23 -3
  195. package/plugins/specweave/hooks/post-increment-planning.sh +335 -0
  196. package/plugins/specweave/hooks/post-task-completion.sh +161 -1
  197. package/plugins/specweave/hooks/pre-implementation.sh +23 -3
  198. package/plugins/specweave/skills/SKILLS-INDEX.md +1 -1
  199. package/plugins/specweave/skills/brownfield-analyzer/SKILL.md +9 -9
  200. package/plugins/specweave/skills/increment-planner/SKILL.md +400 -212
  201. package/plugins/specweave/skills/increment-quality-judge-v2/SKILL.md +499 -0
  202. package/plugins/specweave/skills/plugin-detector/SKILL.md +114 -1
  203. package/plugins/specweave/skills/project-kickstarter/SKILL.md +74 -1
  204. package/plugins/specweave/skills/{rfc-generator → spec-generator}/SKILL.md +22 -29
  205. package/plugins/specweave/skills/specweave-detector/SKILL.md +3 -3
  206. package/plugins/specweave/skills/specweave-framework/SKILL.md +2 -2
  207. package/plugins/specweave-ado/.claude-plugin/plugin.json +18 -4
  208. package/plugins/specweave-ado/agents/ado-manager/AGENT.md +426 -0
  209. package/plugins/specweave-ado/commands/close-workitem.md +52 -0
  210. package/plugins/specweave-ado/commands/create-workitem.md +53 -0
  211. package/plugins/specweave-ado/commands/status.md +53 -0
  212. package/plugins/specweave-ado/commands/sync.md +55 -0
  213. package/plugins/specweave-ado/lib/ado-client.ts +361 -0
  214. package/plugins/specweave-ado/reference/ado-specweave-mapping.md +552 -0
  215. package/plugins/specweave-ado/skills/ado-sync/SKILL.md +344 -193
  216. package/plugins/specweave-docs/skills/docusaurus/SKILL.md +73 -0
  217. package/plugins/specweave-github/agents/github-manager/AGENT.md +49 -0
  218. package/plugins/specweave-github/commands/{github-close-issue.md → close-issue.md} +1 -1
  219. package/plugins/specweave-github/commands/{github-create-issue.md → create-issue.md} +1 -1
  220. package/plugins/specweave-github/commands/{github-status.md → status.md} +1 -1
  221. package/plugins/specweave-github/commands/{github-sync-tasks.md → sync-tasks.md} +1 -1
  222. package/plugins/specweave-github/commands/{github-sync.md → sync.md} +1 -1
  223. package/plugins/specweave-github/reference/github-specweave-mapping.md +377 -0
  224. package/plugins/specweave-github/skills/github-sync/SKILL.md +11 -3
  225. package/plugins/specweave-infrastructure/commands/{specweave.monitor-setup.md → monitor-setup.md} +5 -0
  226. package/plugins/specweave-infrastructure/commands/{specweave.slo-implement.md → slo-implement.md} +5 -0
  227. package/plugins/specweave-jira/agents/jira-manager/AGENT.md +380 -0
  228. package/plugins/specweave-jira/commands/{specweave.sync-jira.md → sync.md} +1 -1
  229. package/plugins/specweave-jira/reference/jira-specweave-mapping.md +508 -0
  230. package/plugins/specweave-ml/commands/ml-deploy.md +1 -1
  231. package/plugins/specweave-ml/commands/ml-evaluate.md +1 -1
  232. package/plugins/specweave-ml/commands/ml-explain.md +1 -1
  233. package/plugins/specweave-ml/commands/{specweave.ml-pipeline.md → ml-pipeline.md} +5 -0
  234. package/src/templates/AGENTS.md.template +652 -1
  235. package/src/templates/CLAUDE.md.template +36 -21
  236. package/src/templates/COMPLETION-REPORT.template.md +128 -0
  237. package/src/templates/README.md.template +17 -16
  238. package/src/templates/docs/README.md +11 -9
  239. package/src/templates/docs/spec-template.md +229 -0
  240. package/dist/adapters/copilot/adapter.d.ts +0 -86
  241. package/dist/adapters/copilot/adapter.d.ts.map +0 -1
  242. package/dist/adapters/copilot/adapter.js +0 -396
  243. package/dist/adapters/copilot/adapter.js.map +0 -1
  244. package/plugins/.specweave/logs/hooks-debug.log +0 -24
  245. package/plugins/.specweave/logs/last-hook-fire +0 -1
  246. package/plugins/.specweave/logs/last-todowrite-time +0 -1
  247. package/plugins/.specweave/logs/tasks.log +0 -6
  248. package/plugins/specweave/commands/inc.md +0 -85
  249. package/plugins/specweave/commands/list-increments.md +0 -180
  250. package/src/adapters/README.md +0 -311
  251. package/src/adapters/adapter-base.ts +0 -182
  252. package/src/adapters/adapter-interface.ts +0 -166
  253. package/src/adapters/adapter-loader.ts +0 -259
  254. package/src/adapters/agents-md-generator.ts +0 -228
  255. package/src/adapters/claude/README.md +0 -233
  256. package/src/adapters/claude/adapter.ts +0 -468
  257. package/src/adapters/claude-md-generator.ts +0 -377
  258. package/src/adapters/codex/README.md +0 -105
  259. package/src/adapters/codex/adapter.ts +0 -333
  260. package/src/adapters/copilot/README.md +0 -240
  261. package/src/adapters/copilot/adapter.ts +0 -444
  262. package/src/adapters/cursor/.cursor/context/docs-context.md +0 -62
  263. package/src/adapters/cursor/.cursor/context/increments-context.md +0 -71
  264. package/src/adapters/cursor/.cursor/context/strategy-context.md +0 -73
  265. package/src/adapters/cursor/.cursor/context/tests-context.md +0 -89
  266. package/src/adapters/cursor/README.md +0 -283
  267. package/src/adapters/cursor/adapter.ts +0 -451
  268. package/src/adapters/doc-generator.ts +0 -331
  269. package/src/adapters/gemini/README.md +0 -97
  270. package/src/adapters/gemini/adapter.ts +0 -298
  271. package/src/adapters/generic/README.md +0 -277
  272. package/src/adapters/generic/adapter.ts +0 -359
  273. package/src/adapters/registry.yaml +0 -187
  274. /package/plugins/specweave/commands/{costs.md → specweave-costs.md} +0 -0
  275. /package/plugins/specweave/commands/{next.md → specweave-next.md} +0 -0
  276. /package/plugins/specweave/commands/{progress.md → specweave-progress.md} +0 -0
  277. /package/plugins/specweave/commands/{sync-docs.md → specweave-sync-docs.md} +0 -0
  278. /package/plugins/specweave/commands/{tdd-cycle.md → specweave-tdd-cycle.md} +0 -0
  279. /package/plugins/specweave/commands/{tdd-green.md → specweave-tdd-green.md} +0 -0
  280. /package/plugins/specweave/commands/{tdd-red.md → specweave-tdd-red.md} +0 -0
  281. /package/plugins/specweave/commands/{tdd-refactor.md → specweave-tdd-refactor.md} +0 -0
@@ -1,396 +0,0 @@
1
- /**
2
- * GitHub Copilot Adapter
3
- *
4
- * Basic automation adapter for GitHub Copilot.
5
- * Compiles SpecWeave plugins to AGENTS.md (universal standard) for context and suggestions.
6
- *
7
- * This adapter compiles skills, agents, and commands into AGENTS.md format.
8
- */
9
- import * as path from 'path';
10
- import fs from 'fs-extra';
11
- import { AdapterBase } from '../adapter-base.js';
12
- import { compileToAgentsMd, getSpecweaveInstallPath } from '../../utils/agents-md-compiler.js';
13
- import { getSystemPromptForLanguage } from '../../core/i18n/language-manager.js';
14
- export class CopilotAdapter extends AdapterBase {
15
- constructor() {
16
- super(...arguments);
17
- this.name = 'copilot';
18
- this.description = 'GitHub Copilot adapter - Basic automation with AGENTS.md';
19
- this.automationLevel = 'basic';
20
- }
21
- /**
22
- * Detect if GitHub Copilot is available
23
- *
24
- * Note: Detection is best-effort since Copilot might be installed
25
- * but we can't detect it reliably. This adapter is safe to use
26
- * as a fallback since Copilot reads AGENTS.md (universal standard).
27
- */
28
- async detect() {
29
- // Always return false to make this a manual selection
30
- // Users can explicitly choose Copilot adapter if they want
31
- return false;
32
- }
33
- /**
34
- * Get files to install for Copilot adapter
35
- *
36
- * Note: Copilot automatically reads AGENTS.md (universal standard).
37
- * No additional files needed.
38
- */
39
- getFiles() {
40
- return [];
41
- }
42
- /**
43
- * Install Copilot adapter
44
- */
45
- async install(options) {
46
- console.log('\nđŸ“Ļ Configuring GitHub Copilot (Basic Automation)\n');
47
- // 1. Create .specweave/ structure
48
- const specweaveDir = path.join(options.projectPath, '.specweave');
49
- await fs.ensureDir(specweaveDir);
50
- await fs.ensureDir(path.join(specweaveDir, 'increments'));
51
- await fs.ensureDir(path.join(specweaveDir, 'increments', '_backlog'));
52
- await fs.ensureDir(path.join(specweaveDir, 'docs', 'internal', 'strategy'));
53
- await fs.ensureDir(path.join(specweaveDir, 'docs', 'internal', 'architecture', 'adr'));
54
- await fs.ensureDir(path.join(specweaveDir, 'docs', 'internal', 'architecture', 'rfc'));
55
- await fs.ensureDir(path.join(specweaveDir, 'docs', 'internal', 'architecture', 'diagrams'));
56
- await fs.ensureDir(path.join(specweaveDir, 'docs', 'internal', 'delivery'));
57
- await fs.ensureDir(path.join(specweaveDir, 'docs', 'public', 'guides'));
58
- await fs.ensureDir(path.join(specweaveDir, 'logs'));
59
- console.log('✅ Created .specweave/ structure');
60
- // 2. Find SpecWeave installation
61
- let specweavePath;
62
- try {
63
- specweavePath = getSpecweaveInstallPath();
64
- console.log(`✅ Found SpecWeave installation at: ${specweavePath}`);
65
- }
66
- catch (error) {
67
- console.error('❌ Could not find SpecWeave installation');
68
- console.error(' Make sure SpecWeave is installed: npm install -g specweave');
69
- return;
70
- }
71
- // 3. Compile plugins to AGENTS.md
72
- console.log('📝 Compiling plugins to AGENTS.md...');
73
- const result = await compileToAgentsMd(specweavePath);
74
- // 4. Write AGENTS.md
75
- const agentsMdPath = path.join(options.projectPath, 'AGENTS.md');
76
- await fs.writeFile(agentsMdPath, result.agentsMd, 'utf-8');
77
- console.log('✅ Created AGENTS.md with:');
78
- console.log(` - ${result.skills.length} skills`);
79
- console.log(` - ${result.agents.length} agents`);
80
- console.log(` - ${result.commands.length} commands`);
81
- // 5. Create .github/copilot/instructions.md (optional)
82
- const copilotDir = path.join(options.projectPath, '.github', 'copilot');
83
- await fs.ensureDir(copilotDir);
84
- const instructionsContent = `# GitHub Copilot Instructions
85
-
86
- This project uses SpecWeave for spec-driven development.
87
-
88
- ## Important Context
89
-
90
- - **AGENTS.md**: Complete workflow guide (read this first!)
91
- - **Structure**: All work happens in \`.specweave/increments/\`
92
- - **Workflow**: spec.md → plan.md → tasks.md → tests.md
93
-
94
- ## When Suggesting Code
95
-
96
- - Follow patterns in AGENTS.md
97
- - Create files in increment folders, not project root
98
- - Reference existing specs and plans
99
- - Follow naming conventions (kebab-case for increments)
100
-
101
- See AGENTS.md for complete details.
102
- `;
103
- await fs.writeFile(path.join(copilotDir, 'instructions.md'), instructionsContent, 'utf-8');
104
- console.log('✅ Created .github/copilot/instructions.md');
105
- console.log('\n✅ Copilot will automatically read AGENTS.md');
106
- }
107
- /**
108
- * Post-installation instructions
109
- */
110
- async postInstall(options) {
111
- console.log(this.getInstructions());
112
- }
113
- /**
114
- * Get usage instructions for Copilot adapter
115
- */
116
- getInstructions() {
117
- return `
118
- ================================================================
119
- GitHub Copilot Adapter - Basic Automation
120
- ================================================================
121
-
122
- Your project is now configured for GitHub Copilot!
123
-
124
- WHAT THIS PROVIDES:
125
-
126
- - AGENTS.md (Universal Standard)
127
- - Copilot automatically reads this file
128
- - Contains all workflow instructions
129
- - Project structure and templates
130
- - Following agents.md standard (https://agents.md/)
131
-
132
- - Better Code Suggestions
133
- - Copilot reads AGENTS.md for context
134
- - Suggests code following SpecWeave patterns
135
- - Understands project structure
136
-
137
- UNDERSTANDING THE DIFFERENCE:
138
-
139
- Claude Code (Full Automation):
140
- - Native skills (auto-activate)
141
- - Native agents (separate context windows)
142
- - Native hooks (auto-update docs)
143
- - Slash commands (/inc, /do, /done)
144
-
145
- Cursor (Semi-Automation):
146
- - Reads AGENTS.md for workflow
147
- - @ context shortcuts
148
- - Composer multi-file editing
149
-
150
- Copilot (Basic Automation - This Adapter):
151
- - Reads AGENTS.md automatically
152
- - Better code suggestions
153
- - No skills, agents, hooks, or commands
154
- - Manual workflow with AI assistance
155
-
156
- HOW COPILOT USES AGENTS.MD:
157
-
158
- GitHub Copilot automatically reads AGENTS.md to understand:
159
- - SpecWeave structure (.specweave/ folders)
160
- - File naming conventions (spec.md, plan.md, tasks.md)
161
- - Context manifests (what files to reference)
162
- - Best practices (technology-agnostic specs, etc.)
163
-
164
- Result: Copilot suggests code that fits SpecWeave patterns!
165
-
166
- HOW TO USE SPECWEAVE WITH COPILOT:
167
-
168
- 1. Copilot reads AGENTS.md automatically
169
- - No action needed - just open project in VS Code
170
- - Copilot will suggest code following SpecWeave patterns
171
-
172
- 2. Create increments manually:
173
- mkdir -p .specweave/increments/0001-user-auth
174
-
175
- 3. Reference context manifests:
176
- Open context-manifest.yaml
177
- → Copilot sees which files are relevant
178
- → Provides better suggestions
179
-
180
- 4. Ask Copilot Chat for guidance:
181
- "How do I create a spec.md following SpecWeave?"
182
- "Generate plan.md for user authentication"
183
- "What should go in context-manifest.yaml?"
184
-
185
- 5. Use Copilot inline suggestions:
186
- Start typing in spec.md → Copilot suggests content
187
- Following SpecWeave patterns from AGENTS.md
188
-
189
- WORKFLOW EXAMPLE:
190
-
191
- Creating a Feature:
192
-
193
- 1. Create increment folder:
194
- mkdir -p .specweave/increments/0002-payments
195
- cd .specweave/increments/0002-payments
196
-
197
- 2. Create spec.md:
198
- - Open file, start typing frontmatter
199
- - Copilot suggests SpecWeave structure (from AGENTS.md)
200
- - Fill in user stories, acceptance criteria
201
-
202
- 3. Create plan.md:
203
- - Reference spec.md (Copilot reads it)
204
- - Start typing "# Technical Plan"
205
- - Copilot suggests architecture sections
206
-
207
- 4. Create context-manifest.yaml:
208
- - Copilot suggests relevant files to include
209
- - Lists spec sections and architecture docs
210
-
211
- LIMITATIONS (vs Claude Code & Cursor):
212
-
213
- - No auto-activation or workflows
214
- - No skills, agents, hooks
215
- - No slash commands or @ shortcuts
216
- - No role-based assistance (PM, Architect, etc.)
217
- - Completely manual workflow
218
-
219
- But Copilot still provides helpful suggestions!
220
- - Understands SpecWeave structure from AGENTS.md
221
- - Suggests code following project patterns
222
-
223
- DOCUMENTATION:
224
-
225
- - AGENTS.md: Universal workflow instructions (Copilot reads this!)
226
- - .specweave/docs/: Project documentation
227
-
228
- You're ready to build with SpecWeave on GitHub Copilot!
229
-
230
- Note: For better automation, consider Claude Code (full) or Cursor (semi).
231
- Copilot is best for simple projects or when already using VS Code + Copilot.
232
- `;
233
- }
234
- /**
235
- * Check if Copilot adapter supports plugins
236
- *
237
- * Copilot has plugin support via AGENTS.md compilation (same as Cursor)
238
- *
239
- * @returns boolean True for Copilot
240
- */
241
- supportsPlugins() {
242
- return true;
243
- }
244
- /**
245
- * Read language configuration from project config
246
- *
247
- * @returns Language setting from config, defaults to 'en'
248
- */
249
- async getLanguageConfig() {
250
- const projectPath = process.cwd();
251
- const configPath = path.join(projectPath, '.specweave', 'config.json');
252
- if (!(await fs.pathExists(configPath))) {
253
- return 'en'; // Default to English if no config
254
- }
255
- try {
256
- const config = await fs.readJson(configPath);
257
- return config.language || 'en';
258
- }
259
- catch (error) {
260
- console.warn('âš ī¸ Could not read language from config, defaulting to English');
261
- return 'en';
262
- }
263
- }
264
- /**
265
- * Inject system prompt for non-English languages
266
- *
267
- * Prepends language instruction to markdown content if language !== 'en'
268
- *
269
- * @param content Original markdown content
270
- * @param language Target language
271
- * @returns Modified content with system prompt (or unchanged if English)
272
- */
273
- injectSystemPrompt(content, language) {
274
- if (language === 'en') {
275
- return content; // No changes for English - preserve default behavior
276
- }
277
- // Get system prompt for target language
278
- const systemPrompt = getSystemPromptForLanguage(language);
279
- // For AGENTS.md compilation, inject at the beginning of the content
280
- return `${systemPrompt}\n\n${content}`;
281
- }
282
- /**
283
- * Compile and install a plugin for Copilot
284
- *
285
- * Copilot uses AGENTS.md compilation (same as Cursor)
286
- *
287
- * NEW: Injects system prompts for non-English languages
288
- *
289
- * @param plugin Plugin to install
290
- */
291
- async compilePlugin(plugin) {
292
- const projectPath = process.cwd();
293
- const agentsMdPath = path.join(projectPath, 'AGENTS.md');
294
- console.log(`\nđŸ“Ļ Compiling plugin for Copilot: ${plugin.manifest.name}`);
295
- // Get language configuration for system prompt injection
296
- const language = await this.getLanguageConfig();
297
- if (language !== 'en') {
298
- console.log(` 🌐 Language: ${language} (system prompts will be injected)`);
299
- }
300
- if (!(await fs.pathExists(agentsMdPath))) {
301
- throw new Error('AGENTS.md not found. Run specweave init first.');
302
- }
303
- let agentsMd = await fs.readFile(agentsMdPath, 'utf-8');
304
- const pluginMarker = `<!-- Plugin: ${plugin.manifest.name} -->`;
305
- if (agentsMd.includes(pluginMarker)) {
306
- console.log(` â„šī¸ Plugin ${plugin.manifest.name} already compiled to AGENTS.md`);
307
- return;
308
- }
309
- let pluginSection = `\n\n${pluginMarker}\n\n`;
310
- pluginSection += `# Plugin: ${plugin.manifest.name}\n\n`;
311
- pluginSection += `${plugin.manifest.description}\n\n`;
312
- if (plugin.skills.length > 0) {
313
- pluginSection += `## Skills\n\n`;
314
- for (const skill of plugin.skills) {
315
- const skillContent = await fs.readFile(path.join(skill.path, 'SKILL.md'), 'utf-8');
316
- const contentWithoutFrontmatter = skillContent.replace(/^---\n[\s\S]+?\n---\n/, '');
317
- // Inject system prompt if needed
318
- const modifiedContent = this.injectSystemPrompt(contentWithoutFrontmatter, language);
319
- pluginSection += `### ${skill.name}\n\n${modifiedContent}\n\n`;
320
- }
321
- }
322
- if (plugin.agents.length > 0) {
323
- pluginSection += `## Agents\n\n`;
324
- for (const agent of plugin.agents) {
325
- const agentContent = await fs.readFile(path.join(agent.path, 'AGENT.md'), 'utf-8');
326
- // Inject system prompt if needed
327
- const modifiedContent = this.injectSystemPrompt(agentContent, language);
328
- pluginSection += `### ${agent.name}\n\n${modifiedContent}\n\n`;
329
- }
330
- }
331
- if (plugin.commands.length > 0) {
332
- pluginSection += `## Commands\n\n`;
333
- for (const command of plugin.commands) {
334
- const commandContent = await fs.readFile(command.path, 'utf-8');
335
- const contentWithoutFrontmatter = commandContent.replace(/^---\n[\s\S]+?\n---\n/, '');
336
- // Inject system prompt if needed
337
- const modifiedContent = this.injectSystemPrompt(contentWithoutFrontmatter, language);
338
- pluginSection += `### /${command.name}\n\n${modifiedContent}\n\n`;
339
- }
340
- }
341
- pluginSection += `<!-- End Plugin: ${plugin.manifest.name} -->\n`;
342
- agentsMd += pluginSection;
343
- await fs.writeFile(agentsMdPath, agentsMd, 'utf-8');
344
- console.log(` ✓ Compiled to AGENTS.md`);
345
- console.log(` ✓ ${plugin.skills.length} skills, ${plugin.agents.length} agents, ${plugin.commands.length} commands`);
346
- console.log(`\n✅ Plugin ${plugin.manifest.name} compiled for Copilot!`);
347
- }
348
- /**
349
- * Unload a plugin from Copilot
350
- */
351
- async unloadPlugin(pluginName) {
352
- const projectPath = process.cwd();
353
- const agentsMdPath = path.join(projectPath, 'AGENTS.md');
354
- console.log(`\nđŸ—‘ī¸ Unloading plugin from Copilot: ${pluginName}`);
355
- if (!(await fs.pathExists(agentsMdPath))) {
356
- console.warn(`âš ī¸ AGENTS.md not found`);
357
- return;
358
- }
359
- let agentsMd = await fs.readFile(agentsMdPath, 'utf-8');
360
- const startMarker = `<!-- Plugin: ${pluginName} -->`;
361
- const endMarker = `<!-- End Plugin: ${pluginName} -->`;
362
- const startIndex = agentsMd.indexOf(startMarker);
363
- if (startIndex === -1) {
364
- console.warn(`âš ī¸ Plugin ${pluginName} not found in AGENTS.md`);
365
- return;
366
- }
367
- const endIndex = agentsMd.indexOf(endMarker, startIndex);
368
- if (endIndex === -1) {
369
- console.warn(`âš ī¸ Plugin ${pluginName} section malformed`);
370
- return;
371
- }
372
- agentsMd = agentsMd.slice(0, startIndex) + agentsMd.slice(endIndex + endMarker.length);
373
- await fs.writeFile(agentsMdPath, agentsMd, 'utf-8');
374
- console.log(` ✓ Removed from AGENTS.md`);
375
- console.log(`\n✅ Plugin ${pluginName} unloaded!`);
376
- }
377
- /**
378
- * Get list of installed plugins for Copilot
379
- */
380
- async getInstalledPlugins() {
381
- const projectPath = process.cwd();
382
- const agentsMdPath = path.join(projectPath, 'AGENTS.md');
383
- if (!(await fs.pathExists(agentsMdPath))) {
384
- return [];
385
- }
386
- const agentsMd = await fs.readFile(agentsMdPath, 'utf-8');
387
- const pluginMarkerRegex = /<!-- Plugin: (specweave-[a-z0-9-]+) -->/g;
388
- const matches = agentsMd.matchAll(pluginMarkerRegex);
389
- const plugins = [];
390
- for (const match of matches) {
391
- plugins.push(match[1]);
392
- }
393
- return plugins;
394
- }
395
- }
396
- //# sourceMappingURL=adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/adapters/copilot/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC/F,OAAO,EAAmB,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AAGlG,MAAM,OAAO,cAAe,SAAQ,WAAW;IAA/C;;QACE,SAAI,GAAG,SAAS,CAAC;QACjB,gBAAW,GAAG,0DAA0D,CAAC;QACzE,oBAAe,GAAG,OAAgB,CAAC;IAsarC,CAAC;IApaC;;;;;;OAMG;IACH,KAAK,CAAC,MAAM;QACV,sDAAsD;QACtD,2DAA2D;QAC3D,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACH,QAAQ;QACN,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,OAAuB;QACnC,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;QAEpE,kCAAkC;QAClC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAClE,MAAM,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACjC,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC;QAC1D,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;QACtE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;QAC5E,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;QACvF,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;QACvF,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;QAC5F,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;QAC5E,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QACxE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;QAEpD,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QAE/C,iCAAiC;QACjC,IAAI,aAAqB,CAAC;QAC1B,IAAI,CAAC;YACH,aAAa,GAAG,uBAAuB,EAAE,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,sCAAsC,aAAa,EAAE,CAAC,CAAC;QACrE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;YACzD,OAAO,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;YAC/E,OAAO;QACT,CAAC;QAED,kCAAkC;QAClC,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAEtD,qBAAqB;QACrB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACjE,MAAM,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE3D,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,QAAQ,MAAM,CAAC,QAAQ,CAAC,MAAM,WAAW,CAAC,CAAC;QAEvD,uDAAuD;QACvD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACxE,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAE/B,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;CAkB/B,CAAC;QAEE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,EAAE,mBAAmB,EAAE,OAAO,CAAC,CAAC;QAC3F,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QAEzD,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,OAAuB;QACvC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAmHN,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,eAAe;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,iBAAiB;QAC7B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAClC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;QAEvE,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC,CAAC,kCAAkC;QACjD,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAC7C,OAAQ,MAAM,CAAC,QAA8B,IAAI,IAAI,CAAC;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;YAC/E,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACK,kBAAkB,CAAC,OAAe,EAAE,QAA2B;QACrE,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,OAAO,OAAO,CAAC,CAAC,qDAAqD;QACvE,CAAC;QAED,wCAAwC;QACxC,MAAM,YAAY,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QAE1D,oEAAoE;QACpE,OAAO,GAAG,YAAY,OAAO,OAAO,EAAE,CAAC;IACzC,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,aAAa,CAAC,MAAc;QAChC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAClC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAEzD,OAAO,CAAC,GAAG,CAAC,sCAAsC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAE1E,yDAAyD;QACzD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAChD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,mBAAmB,QAAQ,oCAAoC,CAAC,CAAC;QAC/E,CAAC;QAED,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAExD,MAAM,YAAY,GAAG,gBAAgB,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC;QAChE,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,QAAQ,CAAC,IAAI,gCAAgC,CAAC,CAAC;YACnF,OAAO;QACT,CAAC;QAED,IAAI,aAAa,GAAG,OAAO,YAAY,MAAM,CAAC;QAC9C,aAAa,IAAI,aAAa,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC;QACzD,aAAa,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,MAAM,CAAC;QAEtD,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,aAAa,IAAI,eAAe,CAAC;YACjC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClC,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;gBACnF,MAAM,yBAAyB,GAAG,YAAY,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;gBACpF,iCAAiC;gBACjC,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,yBAAyB,EAAE,QAAQ,CAAC,CAAC;gBACrF,aAAa,IAAI,OAAO,KAAK,CAAC,IAAI,OAAO,eAAe,MAAM,CAAC;YACjE,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,aAAa,IAAI,eAAe,CAAC;YACjC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClC,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;gBACnF,iCAAiC;gBACjC,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;gBACxE,aAAa,IAAI,OAAO,KAAK,CAAC,IAAI,OAAO,eAAe,MAAM,CAAC;YACjE,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,aAAa,IAAI,iBAAiB,CAAC;YACnC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACtC,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAChE,MAAM,yBAAyB,GAAG,cAAc,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;gBACtF,iCAAiC;gBACjC,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,yBAAyB,EAAE,QAAQ,CAAC,CAAC;gBACrF,aAAa,IAAI,QAAQ,OAAO,CAAC,IAAI,OAAO,eAAe,MAAM,CAAC;YACpE,CAAC;QACH,CAAC;QAED,aAAa,IAAI,oBAAoB,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC;QAElE,QAAQ,IAAI,aAAa,CAAC;QAC1B,MAAM,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEpD,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,YAAY,MAAM,CAAC,MAAM,CAAC,MAAM,YAAY,MAAM,CAAC,QAAQ,CAAC,MAAM,WAAW,CAAC,CAAC;QACvH,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,QAAQ,CAAC,IAAI,wBAAwB,CAAC,CAAC;IAC1E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,UAAkB;QACnC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAClC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAEzD,OAAO,CAAC,GAAG,CAAC,yCAAyC,UAAU,EAAE,CAAC,CAAC;QAEnE,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QAED,IAAI,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAExD,MAAM,WAAW,GAAG,gBAAgB,UAAU,MAAM,CAAC;QACrD,MAAM,SAAS,GAAG,oBAAoB,UAAU,MAAM,CAAC;QAEvD,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACjD,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,cAAc,UAAU,yBAAyB,CAAC,CAAC;YAChE,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACzD,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,cAAc,UAAU,oBAAoB,CAAC,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACvF,MAAM,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEpD,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,cAAc,UAAU,YAAY,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB;QACvB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAClC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAEzD,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;YACzC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC1D,MAAM,iBAAiB,GAAG,0CAA0C,CAAC;QACrE,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAErD,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -1,24 +0,0 @@
1
- [Mon Nov 3 09:34:04 EST 2025] 📋 TodoWrite hook fired
2
- [Mon Nov 3 09:34:04 EST 2025] Input JSON:
3
- {"session_id":"0838c8f3-363c-474c-b220-be7164977242","transcript_path":"/Users/antonabyzov/.claude/projects/-Users-antonabyzov-Projects-github-specweave/0838c8f3-363c-474c-b220-be7164977242.jsonl","cwd":"/Users/antonabyzov/Projects/github/specweave","permission_mode":"bypassPermissions","hook_event_name":"PostToolUse","tool_name":"TodoWrite","tool_input":{"todos":[{"content":"Analyze failing GitHub Actions workflows","status":"completed","activeForm":"Analyzing failing GitHub Actions workflows"},{"content":"Fix cross-platform copy:locales script for Windows support","status":"completed","activeForm":"Fixing cross-platform copy:locales script for Windows support"},{"content":"Update Node.js minimum version to 20.x for dependencies","status":"completed","activeForm":"Updating Node.js minimum version to 20.x for dependencies"},{"content":"Test the build locally to verify copy-locales script works","status":"completed","activeForm":"Testing the build locally to verify copy-locales script works"},{"content":"Check and fix Jest test configuration","status":"completed","activeForm":"Checking and fixing Jest test configuration"},{"content":"Fix E2E smoke test failures","status":"completed","activeForm":"Fixing E2E smoke test failures"},{"content":"Commit and push all fixes","status":"completed","activeForm":"Committing and pushing all fixes"}]},"tool_response":{"oldTodos":[{"content":"Analyze failing GitHub Actions workflows","status":"completed","activeForm":"Analyzing failing GitHub Actions workflows"},{"content":"Fix cross-platform copy:locales script for Windows support","status":"completed","activeForm":"Fixing cross-platform copy:locales script for Windows support"},{"content":"Update Node.js minimum version to 20.x for dependencies","status":"completed","activeForm":"Updating Node.js minimum version to 20.x for dependencies"},{"content":"Test the build locally to verify copy-locales script works","status":"completed","activeForm":"Testing the build locally to verify copy-locales script works"},{"content":"Check and fix Jest test configuration","status":"completed","activeForm":"Checking and fixing Jest test configuration"},{"content":"Fix E2E smoke test failures","status":"completed","activeForm":"Fixing E2E smoke test failures"},{"content":"Commit and push all fixes","status":"in_progress","activeForm":"Committing and pushing all fixes"}],"newTodos":[{"content":"Analyze failing GitHub Actions workflows","status":"completed","activeForm":"Analyzing failing GitHub Actions workflows"},{"content":"Fix cross-platform copy:locales script for Windows support","status":"completed","activeForm":"Fixing cross-platform copy:locales script for Windows support"},{"content":"Update Node.js minimum version to 20.x for dependencies","status":"completed","activeForm":"Updating Node.js minimum version to 20.x for dependencies"},{"content":"Test the build locally to verify copy-locales script works","status":"completed","activeForm":"Testing the build locally to verify copy-locales script works"},{"content":"Check and fix Jest test configuration","status":"completed","activeForm":"Checking and fixing Jest test configuration"},{"content":"Fix E2E smoke test failures","status":"completed","activeForm":"Fixing E2E smoke test failures"},{"content":"Commit and push all fixes","status":"completed","activeForm":"Committing and pushing all fixes"}]}}
4
- [Mon Nov 3 09:34:04 EST 2025] 🆕 First TodoWrite in session
5
- [Mon Nov 3 09:34:04 EST 2025] 📊 Tasks: 7/7 completed
6
- [Mon Nov 3 09:34:04 EST 2025] ⚡ All tasks complete, but rapid activity (0s < 15s) - Claude likely creating more work (no sound)
7
- [Mon Nov 3 09:34:04 EST 2025] â„šī¸ No current increment or tasks.md found, skipping tasks.md update
8
- ---
9
- [Mon Nov 3 13:38:00 EST 2025] 📋 TodoWrite hook fired
10
- [Mon Nov 3 13:38:00 EST 2025] Input JSON:
11
- {"session_id":"2bd78607-8a30-4dc4-a33c-a79f383b2cf5","transcript_path":"/Users/antonabyzov/.claude/projects/-Users-antonabyzov-Projects-github-specweave/2bd78607-8a30-4dc4-a33c-a79f383b2cf5.jsonl","cwd":"/Users/antonabyzov/Projects/github/specweave","permission_mode":"bypassPermissions","hook_event_name":"PostToolUse","tool_name":"TodoWrite","tool_input":{"todos":[{"content":"Rename plugin directory from specweave-core to specweave","status":"pending","activeForm":"Renaming plugin directory from specweave-core to specweave"},{"content":"Update plugin.json with new name","status":"pending","activeForm":"Updating plugin.json with new name"},{"content":"Rename all command files (remove specweave. prefix)","status":"pending","activeForm":"Renaming all command files (remove specweave. prefix)"},{"content":"Update marketplace.json registry","status":"pending","activeForm":"Updating marketplace.json registry"},{"content":"Update CLAUDE.md with new command format","status":"pending","activeForm":"Updating CLAUDE.md with new command format"},{"content":"Update README.md with new command format","status":"pending","activeForm":"Updating README.md with new command format"},{"content":"Update all Docusaurus site documentation","status":"pending","activeForm":"Updating all Docusaurus site documentation"},{"content":"Update source code references to plugin name","status":"pending","activeForm":"Updating source code references to plugin name"},{"content":"Update test files with new plugin name","status":"pending","activeForm":"Updating test files with new plugin name"},{"content":"Update increment specs/plans with new command format","status":"pending","activeForm":"Updating increment specs/plans with new command format"}]},"tool_response":{"oldTodos":[],"newTodos":[{"content":"Rename plugin directory from specweave-core to specweave","status":"pending","activeForm":"Renaming plugin directory from specweave-core to specweave"},{"content":"Update plugin.json with new name","status":"pending","activeForm":"Updating plugin.json with new name"},{"content":"Rename all command files (remove specweave. prefix)","status":"pending","activeForm":"Renaming all command files (remove specweave. prefix)"},{"content":"Update marketplace.json registry","status":"pending","activeForm":"Updating marketplace.json registry"},{"content":"Update CLAUDE.md with new command format","status":"pending","activeForm":"Updating CLAUDE.md with new command format"},{"content":"Update README.md with new command format","status":"pending","activeForm":"Updating README.md with new command format"},{"content":"Update all Docusaurus site documentation","status":"pending","activeForm":"Updating all Docusaurus site documentation"},{"content":"Update source code references to plugin name","status":"pending","activeForm":"Updating source code references to plugin name"},{"content":"Update test files with new plugin name","status":"pending","activeForm":"Updating test files with new plugin name"},{"content":"Update increment specs/plans with new command format","status":"pending","activeForm":"Updating increment specs/plans with new command format"}]}}
12
- [Mon Nov 3 13:38:00 EST 2025] âąī¸ Inactivity gap: 14636s (threshold: 15s)
13
- [Mon Nov 3 13:38:00 EST 2025] 📊 Tasks: 0/10 completed
14
- [Mon Nov 3 13:38:00 EST 2025] 🔄 Tasks remaining in current list (no sound)
15
- [Mon Nov 3 13:38:00 EST 2025] â„šī¸ No current increment or tasks.md found, skipping tasks.md update
16
- ---
17
- [Mon Nov 3 13:38:09 EST 2025] 📋 TodoWrite hook fired
18
- [Mon Nov 3 13:38:09 EST 2025] Input JSON:
19
- {"session_id":"2bd78607-8a30-4dc4-a33c-a79f383b2cf5","transcript_path":"/Users/antonabyzov/.claude/projects/-Users-antonabyzov-Projects-github-specweave/2bd78607-8a30-4dc4-a33c-a79f383b2cf5.jsonl","cwd":"/Users/antonabyzov/Projects/github/specweave","permission_mode":"bypassPermissions","hook_event_name":"PostToolUse","tool_name":"TodoWrite","tool_input":{"todos":[{"content":"Rename plugin directory from specweave-core to specweave","status":"in_progress","activeForm":"Renaming plugin directory from specweave-core to specweave"},{"content":"Update plugin.json with new name","status":"pending","activeForm":"Updating plugin.json with new name"},{"content":"Rename all command files (remove specweave. prefix)","status":"pending","activeForm":"Renaming all command files (remove specweave. prefix)"},{"content":"Update marketplace.json registry","status":"pending","activeForm":"Updating marketplace.json registry"},{"content":"Update CLAUDE.md with new command format","status":"pending","activeForm":"Updating CLAUDE.md with new command format"},{"content":"Update README.md with new command format","status":"pending","activeForm":"Updating README.md with new command format"},{"content":"Update all Docusaurus site documentation","status":"pending","activeForm":"Updating all Docusaurus site documentation"},{"content":"Update source code references to plugin name","status":"pending","activeForm":"Updating source code references to plugin name"},{"content":"Update test files with new plugin name","status":"pending","activeForm":"Updating test files with new plugin name"},{"content":"Update increment specs/plans with new command format","status":"pending","activeForm":"Updating increment specs/plans with new command format"}]},"tool_response":{"oldTodos":[{"content":"Rename plugin directory from specweave-core to specweave","status":"pending","activeForm":"Renaming plugin directory from specweave-core to specweave"},{"content":"Update plugin.json with new name","status":"pending","activeForm":"Updating plugin.json with new name"},{"content":"Rename all command files (remove specweave. prefix)","status":"pending","activeForm":"Renaming all command files (remove specweave. prefix)"},{"content":"Update marketplace.json registry","status":"pending","activeForm":"Updating marketplace.json registry"},{"content":"Update CLAUDE.md with new command format","status":"pending","activeForm":"Updating CLAUDE.md with new command format"},{"content":"Update README.md with new command format","status":"pending","activeForm":"Updating README.md with new command format"},{"content":"Update all Docusaurus site documentation","status":"pending","activeForm":"Updating all Docusaurus site documentation"},{"content":"Update source code references to plugin name","status":"pending","activeForm":"Updating source code references to plugin name"},{"content":"Update test files with new plugin name","status":"pending","activeForm":"Updating test files with new plugin name"},{"content":"Update increment specs/plans with new command format","status":"pending","activeForm":"Updating increment specs/plans with new command format"}],"newTodos":[{"content":"Rename plugin directory from specweave-core to specweave","status":"in_progress","activeForm":"Renaming plugin directory from specweave-core to specweave"},{"content":"Update plugin.json with new name","status":"pending","activeForm":"Updating plugin.json with new name"},{"content":"Rename all command files (remove specweave. prefix)","status":"pending","activeForm":"Renaming all command files (remove specweave. prefix)"},{"content":"Update marketplace.json registry","status":"pending","activeForm":"Updating marketplace.json registry"},{"content":"Update CLAUDE.md with new command format","status":"pending","activeForm":"Updating CLAUDE.md with new command format"},{"content":"Update README.md with new command format","status":"pending","activeForm":"Updating README.md with new command format"},{"content":"Update all Docusaurus site documentation","status":"pending","activeForm":"Updating all Docusaurus site documentation"},{"content":"Update source code references to plugin name","status":"pending","activeForm":"Updating source code references to plugin name"},{"content":"Update test files with new plugin name","status":"pending","activeForm":"Updating test files with new plugin name"},{"content":"Update increment specs/plans with new command format","status":"pending","activeForm":"Updating increment specs/plans with new command format"}]}}
20
- [Mon Nov 3 13:38:09 EST 2025] âąī¸ Inactivity gap: 9s (threshold: 15s)
21
- [Mon Nov 3 13:38:09 EST 2025] 📊 Tasks: 0/10 completed
22
- [Mon Nov 3 13:38:09 EST 2025] 🔄 Tasks remaining in current list (no sound)
23
- [Mon Nov 3 13:38:09 EST 2025] â„šī¸ No current increment or tasks.md found, skipping tasks.md update
24
- ---
@@ -1 +0,0 @@
1
- 1762195089
@@ -1 +0,0 @@
1
- 1762195089
@@ -1,6 +0,0 @@
1
- [Mon Nov 3 09:34:04 EST 2025] Status: All_completed=true, Session_ending=false, Inactivity=0s
2
- [Mon Nov 3 09:34:04 EST 2025] Reason: All tasks complete, but rapid activity (0s < 15s) - Claude likely creating more work
3
- [Mon Nov 3 13:38:00 EST 2025] Status: All_completed=false, Session_ending=false, Inactivity=14636s
4
- [Mon Nov 3 13:38:00 EST 2025] Reason: Tasks remaining in current list
5
- [Mon Nov 3 13:38:09 EST 2025] Status: All_completed=false, Session_ending=false, Inactivity=9s
6
- [Mon Nov 3 13:38:09 EST 2025] Reason: Tasks remaining in current list
@@ -1,85 +0,0 @@
1
- ---
2
- name: inc
3
- description: Shorthand for /increment - Plan new Product Increment (PM-led process)
4
- ---
5
-
6
- # Plan Product Increment (Quick Alias)
7
-
8
- **⚡ Quick Alias**: This is a shorthand for `/increment`.
9
-
10
- This is the **most frequently used command** in SpecWeave's append-only increment workflow. Every new feature starts here.
11
-
12
- ---
13
-
14
- ## Why This Alias Exists
15
-
16
- In an append-only increment workflow:
17
- - `/increment` is your starting point for ALL new work
18
- - You'll use it dozens/hundreds of times
19
- - Short alias saves time and mental overhead
20
- - Other commands are used less frequently (no aliases needed)
21
-
22
- ---
23
-
24
- ## Usage
25
-
26
- ```bash
27
- /inc "feature description"
28
- ```
29
-
30
- **Examples**:
31
- ```bash
32
- /inc "User authentication with JWT"
33
- /inc "Payment processing with Stripe"
34
- /inc "Real-time notifications"
35
- ```
36
-
37
- ---
38
-
39
- ## What This Does
40
-
41
- Runs the full `/increment` command, which:
42
-
43
- 1. **Detects tech stack** (TypeScript, Python, Go, etc.)
44
- 2. **PM-led planning**:
45
- - Market research
46
- - Create spec.md (WHAT & WHY)
47
- - Create plan.md (HOW)
48
- - **Auto-generate tasks.md** from plan
49
- - Create tests.md (test strategy)
50
- 3. **Strategic agent review**:
51
- - Architect designs system
52
- - Security reviews threats
53
- - QA defines test strategy
54
- - DevOps plans infrastructure
55
- 4. **User review checkpoint**
56
- 5. **Ready to build**: `/do 0001`
57
-
58
- ---
59
-
60
- ## Typical Workflow
61
-
62
- ```bash
63
- # 1. Plan increment (most common command - use alias!)
64
- /inc "User authentication"
65
-
66
- # 2. Review generated docs
67
- # spec.md, plan.md, tasks.md, tests.md
68
-
69
- # 3. Build it
70
- /do 0001
71
-
72
- # 4. Validate quality (optional)
73
- /validate 0001 --quality
74
-
75
- # 5. Close when done
76
- /done 0001
77
- ```
78
-
79
- ---
80
-
81
- **💡 Pro Tip**: `/inc` is the ONLY aliased command. Use full names for others (`/specweave do`, `/specweave validate`, `/specweave done`) to keep the workflow clear and explicit.
82
-
83
- ---
84
-
85
- For complete documentation, see `/increment`.