@codewalla_india/openspec 1.3.1 → 1.3.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 (333) hide show
  1. package/LICENSE +22 -22
  2. package/README.md +214 -133
  3. package/bin/openspec.js +5 -5
  4. package/dist/cli/index.js +99 -62
  5. package/dist/commands/change.d.ts +0 -2
  6. package/dist/commands/change.js +107 -86
  7. package/dist/commands/config.js +14 -16
  8. package/dist/commands/doctor.js +9 -4
  9. package/dist/commands/feedback.js +79 -30
  10. package/dist/commands/modify.d.ts +26 -0
  11. package/dist/commands/modify.js +147 -0
  12. package/dist/commands/schema.js +170 -91
  13. package/dist/commands/show.js +5 -2
  14. package/dist/commands/spec.js +49 -29
  15. package/dist/commands/store.js +15 -21
  16. package/dist/commands/validate.d.ts +8 -0
  17. package/dist/commands/validate.js +43 -20
  18. package/dist/commands/workflow/index.d.ts +2 -2
  19. package/dist/commands/workflow/index.js +1 -1
  20. package/dist/commands/workflow/instructions.d.ts +6 -26
  21. package/dist/commands/workflow/instructions.js +183 -376
  22. package/dist/commands/workflow/new-change.d.ts +0 -4
  23. package/dist/commands/workflow/new-change.js +10 -28
  24. package/dist/commands/workflow/shared.d.ts +34 -19
  25. package/dist/commands/workflow/shared.js +34 -4
  26. package/dist/commands/workflow/status.js +10 -32
  27. package/dist/commands/workflow/templates.js +15 -5
  28. package/dist/commands/workset.d.ts +2 -2
  29. package/dist/commands/workset.js +19 -22
  30. package/dist/comprehension-quiz/fingerprint.d.ts +39 -0
  31. package/dist/comprehension-quiz/fingerprint.js +84 -0
  32. package/dist/comprehension-quiz/index.d.ts +42 -0
  33. package/dist/comprehension-quiz/index.js +47 -0
  34. package/dist/comprehension-quiz/pass-record.d.ts +44 -0
  35. package/dist/comprehension-quiz/pass-record.js +98 -0
  36. package/dist/comprehension-quiz/providers/anthropic.d.ts +35 -0
  37. package/dist/comprehension-quiz/providers/anthropic.js +69 -0
  38. package/dist/comprehension-quiz/providers/factory.d.ts +44 -0
  39. package/dist/comprehension-quiz/providers/factory.js +174 -0
  40. package/dist/comprehension-quiz/providers/interface.d.ts +98 -0
  41. package/dist/comprehension-quiz/providers/interface.js +150 -0
  42. package/dist/comprehension-quiz/providers/local.d.ts +35 -0
  43. package/dist/comprehension-quiz/providers/local.js +69 -0
  44. package/dist/comprehension-quiz/providers/ollama.d.ts +35 -0
  45. package/dist/comprehension-quiz/providers/ollama.js +69 -0
  46. package/dist/comprehension-quiz/providers/openai.d.ts +35 -0
  47. package/dist/comprehension-quiz/providers/openai.js +72 -0
  48. package/dist/comprehension-quiz/question-generator.d.ts +117 -0
  49. package/dist/comprehension-quiz/question-generator.js +203 -0
  50. package/dist/comprehension-quiz/quiz-executor.d.ts +75 -0
  51. package/dist/comprehension-quiz/quiz-executor.js +181 -0
  52. package/dist/comprehension-quiz/types.d.ts +137 -0
  53. package/dist/comprehension-quiz/types.js +11 -0
  54. package/dist/core/archive.d.ts +14 -1
  55. package/dist/core/archive.js +1350 -190
  56. package/dist/core/artifact-graph/graph.d.ts +28 -9
  57. package/dist/core/artifact-graph/graph.js +94 -43
  58. package/dist/core/artifact-graph/index.d.ts +1 -1
  59. package/dist/core/artifact-graph/index.js +1 -1
  60. package/dist/core/artifact-graph/instruction-loader.d.ts +30 -3
  61. package/dist/core/artifact-graph/instruction-loader.js +70 -12
  62. package/dist/core/artifact-graph/outputs.d.ts +1 -0
  63. package/dist/core/artifact-graph/outputs.js +67 -5
  64. package/dist/core/artifact-graph/resolver.d.ts +14 -0
  65. package/dist/core/artifact-graph/resolver.js +69 -15
  66. package/dist/core/artifact-graph/types.js +21 -3
  67. package/dist/core/available-tools.d.ts +2 -2
  68. package/dist/core/available-tools.js +14 -3
  69. package/dist/core/change-metadata/schema.d.ts +2 -0
  70. package/dist/core/change-metadata/schema.js +13 -0
  71. package/dist/core/change-status-policy.d.ts +10 -1
  72. package/dist/core/change-status-policy.js +30 -2
  73. package/dist/core/command-generation/adapters/amazon-q.d.ts +4 -0
  74. package/dist/core/command-generation/adapters/amazon-q.js +11 -5
  75. package/dist/core/command-generation/adapters/antigravity.js +6 -5
  76. package/dist/core/command-generation/adapters/auggie.js +7 -6
  77. package/dist/core/command-generation/adapters/bob.d.ts +5 -1
  78. package/dist/core/command-generation/adapters/bob.js +11 -10
  79. package/dist/core/command-generation/adapters/claude.d.ts +1 -1
  80. package/dist/core/command-generation/adapters/claude.js +12 -17
  81. package/dist/core/command-generation/adapters/cline.js +5 -5
  82. package/dist/core/command-generation/adapters/codebuddy.js +8 -7
  83. package/dist/core/command-generation/adapters/continue.js +8 -7
  84. package/dist/core/command-generation/adapters/costrict.js +7 -6
  85. package/dist/core/command-generation/adapters/crush.js +9 -9
  86. package/dist/core/command-generation/adapters/cursor.js +8 -8
  87. package/dist/core/command-generation/adapters/devin.d.ts +19 -0
  88. package/dist/core/command-generation/adapters/devin.js +36 -0
  89. package/dist/core/command-generation/adapters/factory.js +7 -6
  90. package/dist/core/command-generation/adapters/gemini.js +40 -5
  91. package/dist/core/command-generation/adapters/github-copilot.js +6 -5
  92. package/dist/core/command-generation/adapters/iflow.js +9 -8
  93. package/dist/core/command-generation/adapters/index.d.ts +4 -2
  94. package/dist/core/command-generation/adapters/index.js +4 -2
  95. package/dist/core/command-generation/adapters/junie.js +6 -5
  96. package/dist/core/command-generation/adapters/kilocode.js +1 -1
  97. package/dist/core/command-generation/adapters/kiro.js +6 -5
  98. package/dist/core/command-generation/adapters/lingma.js +9 -9
  99. package/dist/core/command-generation/adapters/oh-my-pi.d.ts +21 -0
  100. package/dist/core/command-generation/adapters/oh-my-pi.js +42 -0
  101. package/dist/core/command-generation/adapters/opencode.js +6 -8
  102. package/dist/core/command-generation/adapters/pi.d.ts +2 -2
  103. package/dist/core/command-generation/adapters/pi.js +7 -10
  104. package/dist/core/command-generation/adapters/qoder.js +9 -9
  105. package/dist/core/command-generation/adapters/qwen.d.ts +7 -3
  106. package/dist/core/command-generation/adapters/qwen.js +14 -9
  107. package/dist/core/command-generation/adapters/roocode.d.ts +4 -4
  108. package/dist/core/command-generation/adapters/roocode.js +9 -9
  109. package/dist/core/command-generation/adapters/trae.d.ts +13 -0
  110. package/dist/core/command-generation/adapters/trae.js +28 -0
  111. package/dist/core/command-generation/adapters/zcode.d.ts +16 -0
  112. package/dist/core/command-generation/adapters/zcode.js +33 -0
  113. package/dist/core/command-generation/generator.d.ts +8 -0
  114. package/dist/core/command-generation/generator.js +15 -1
  115. package/dist/core/command-generation/index.d.ts +1 -1
  116. package/dist/core/command-generation/index.js +1 -1
  117. package/dist/core/command-generation/invocation.d.ts +73 -0
  118. package/dist/core/command-generation/invocation.js +77 -0
  119. package/dist/core/command-generation/registry.js +8 -4
  120. package/dist/core/command-generation/types.d.ts +9 -2
  121. package/dist/core/command-generation/yaml.d.ts +20 -6
  122. package/dist/core/command-generation/yaml.js +31 -21
  123. package/dist/core/command-surface.d.ts +15 -0
  124. package/dist/core/command-surface.js +33 -0
  125. package/dist/core/completions/command-registry.js +16 -61
  126. package/dist/core/completions/generators/bash-generator.js +41 -41
  127. package/dist/core/completions/generators/fish-generator.js +7 -7
  128. package/dist/core/completions/generators/powershell-generator.js +44 -37
  129. package/dist/core/completions/generators/zsh-generator.js +33 -33
  130. package/dist/core/completions/installers/zsh-installer.d.ts +9 -0
  131. package/dist/core/completions/installers/zsh-installer.js +20 -4
  132. package/dist/core/completions/templates/bash-templates.js +24 -24
  133. package/dist/core/completions/templates/fish-templates.js +38 -38
  134. package/dist/core/completions/templates/powershell-templates.js +28 -28
  135. package/dist/core/completions/templates/zsh-templates.js +39 -39
  136. package/dist/core/config-prompts.d.ts +1 -1
  137. package/dist/core/config-prompts.js +14 -1
  138. package/dist/core/config-schema.d.ts +10 -1
  139. package/dist/core/config-schema.js +67 -1
  140. package/dist/core/config.d.ts +15 -0
  141. package/dist/core/config.js +46 -5
  142. package/dist/core/file-state.js +56 -24
  143. package/dist/core/github-copilot/cloud-agent.d.ts +95 -0
  144. package/dist/core/github-copilot/cloud-agent.js +497 -0
  145. package/dist/core/global-config.d.ts +16 -0
  146. package/dist/core/init.d.ts +58 -0
  147. package/dist/core/init.js +474 -73
  148. package/dist/core/legacy-cleanup.d.ts +59 -0
  149. package/dist/core/legacy-cleanup.js +253 -24
  150. package/dist/core/list.js +23 -16
  151. package/dist/core/migration.d.ts +73 -1
  152. package/dist/core/migration.js +360 -11
  153. package/dist/core/modify/conflict-detector.d.ts +26 -0
  154. package/dist/core/modify/conflict-detector.js +62 -0
  155. package/dist/core/modify/dependency-propagator.d.ts +38 -0
  156. package/dist/core/modify/dependency-propagator.js +103 -0
  157. package/dist/core/modify/history-tracker.d.ts +34 -0
  158. package/dist/core/modify/history-tracker.js +114 -0
  159. package/dist/core/modify/index.d.ts +7 -0
  160. package/dist/core/modify/index.js +7 -0
  161. package/dist/core/onboarding-commands.d.ts +30 -0
  162. package/dist/core/onboarding-commands.js +38 -0
  163. package/dist/core/openspec-root.js +18 -15
  164. package/dist/core/parsers/change-parser.d.ts +17 -2
  165. package/dist/core/parsers/change-parser.js +35 -21
  166. package/dist/core/parsers/code-fence.d.ts +15 -0
  167. package/dist/core/parsers/code-fence.js +49 -0
  168. package/dist/core/parsers/markdown-parser.d.ts +0 -3
  169. package/dist/core/parsers/markdown-parser.js +7 -60
  170. package/dist/core/parsers/requirement-blocks.d.ts +29 -0
  171. package/dist/core/parsers/requirement-blocks.js +150 -31
  172. package/dist/core/parsers/requirement-text.d.ts +48 -0
  173. package/dist/core/parsers/requirement-text.js +98 -0
  174. package/dist/core/parsers/spec-structure.d.ts +1 -1
  175. package/dist/core/parsers/spec-structure.js +20 -30
  176. package/dist/core/profile-sync-drift.d.ts +0 -8
  177. package/dist/core/profile-sync-drift.js +49 -50
  178. package/dist/core/profiles.d.ts +2 -2
  179. package/dist/core/profiles.js +2 -2
  180. package/dist/core/project-config.d.ts +27 -18
  181. package/dist/core/project-config.js +101 -34
  182. package/dist/core/references.js +42 -4
  183. package/dist/core/relationship-health.d.ts +8 -0
  184. package/dist/core/relationship-health.js +13 -0
  185. package/dist/core/root-selection.d.ts +9 -6
  186. package/dist/core/root-selection.js +42 -5
  187. package/dist/core/schemas/base.schema.js +7 -2
  188. package/dist/core/shared/allowed-tools.d.ts +12 -0
  189. package/dist/core/shared/allowed-tools.js +12 -0
  190. package/dist/core/shared/index.d.ts +1 -0
  191. package/dist/core/shared/index.js +1 -0
  192. package/dist/core/shared/skill-content-equivalence.d.ts +7 -0
  193. package/dist/core/shared/skill-content-equivalence.js +41 -0
  194. package/dist/core/shared/skill-generation.js +17 -13
  195. package/dist/core/shared/skill-paths.d.ts +13 -0
  196. package/dist/core/shared/skill-paths.js +23 -0
  197. package/dist/core/shared/tool-detection.d.ts +27 -7
  198. package/dist/core/shared/tool-detection.js +167 -37
  199. package/dist/core/shared-skill-target.d.ts +16 -0
  200. package/dist/core/shared-skill-target.js +156 -0
  201. package/dist/core/specs-apply.d.ts +80 -33
  202. package/dist/core/specs-apply.js +667 -145
  203. package/dist/core/store/git.d.ts +13 -0
  204. package/dist/core/store/git.js +24 -0
  205. package/dist/core/store/operations.js +20 -0
  206. package/dist/core/templates/skill-templates.d.ts +3 -2
  207. package/dist/core/templates/skill-templates.js +3 -2
  208. package/dist/core/templates/workflows/apply-change.d.ts +10 -0
  209. package/dist/core/templates/workflows/apply-change.js +186 -224
  210. package/dist/core/templates/workflows/archive-change.js +387 -260
  211. package/dist/core/templates/workflows/bulk-archive-change.js +655 -475
  212. package/dist/core/templates/workflows/continue-change.js +210 -219
  213. package/dist/core/templates/workflows/explore.js +479 -443
  214. package/dist/core/templates/workflows/feedback.js +97 -97
  215. package/dist/core/templates/workflows/ff-change.js +200 -191
  216. package/dist/core/templates/workflows/modify-change.d.ts +4 -1
  217. package/dist/core/templates/workflows/modify-change.js +193 -71
  218. package/dist/core/templates/workflows/new-change.js +127 -134
  219. package/dist/core/templates/workflows/onboard.js +548 -542
  220. package/dist/core/templates/workflows/propose.js +273 -217
  221. package/dist/core/templates/workflows/store-selection.d.ts +1 -1
  222. package/dist/core/templates/workflows/store-selection.js +1 -1
  223. package/dist/core/templates/workflows/sync-specs.js +500 -273
  224. package/dist/core/templates/workflows/update-change.d.ts +10 -0
  225. package/dist/core/templates/workflows/update-change.js +177 -0
  226. package/dist/core/templates/workflows/verify-change.js +324 -326
  227. package/dist/core/update.d.ts +40 -5
  228. package/dist/core/update.js +411 -96
  229. package/dist/core/validation/constants.d.ts +4 -1
  230. package/dist/core/validation/constants.js +4 -1
  231. package/dist/core/validation/plan-validator.d.ts +8 -0
  232. package/dist/core/validation/plan-validator.js +45 -0
  233. package/dist/core/validation/task-numbering.d.ts +16 -0
  234. package/dist/core/validation/task-numbering.js +57 -0
  235. package/dist/core/validation/validator.d.ts +27 -3
  236. package/dist/core/validation/validator.js +337 -48
  237. package/dist/core/version-check.d.ts +152 -0
  238. package/dist/core/version-check.js +731 -0
  239. package/dist/core/view.js +13 -18
  240. package/dist/prompts/searchable-multi-select.js +1 -1
  241. package/dist/telemetry/caller-detection.d.ts +27 -0
  242. package/dist/telemetry/caller-detection.js +85 -0
  243. package/dist/telemetry/caller-detection.test.d.ts +5 -0
  244. package/dist/telemetry/config.d.ts +48 -2
  245. package/dist/telemetry/config.js +113 -11
  246. package/dist/telemetry/config.test.d.ts +5 -0
  247. package/dist/telemetry/deduplication.d.ts +35 -0
  248. package/dist/telemetry/deduplication.js +82 -0
  249. package/dist/telemetry/deduplication.test.d.ts +5 -0
  250. package/dist/telemetry/identity.d.ts +62 -22
  251. package/dist/telemetry/identity.js +147 -102
  252. package/dist/telemetry/index.d.ts +126 -15
  253. package/dist/telemetry/index.js +569 -37
  254. package/dist/telemetry/sanitization.d.ts +40 -0
  255. package/dist/telemetry/sanitization.js +114 -0
  256. package/dist/telemetry/sanitization.test.d.ts +5 -0
  257. package/dist/telemetry/throttling.d.ts +20 -0
  258. package/dist/telemetry/throttling.js +70 -0
  259. package/dist/ui/welcome-screen.d.ts +9 -1
  260. package/dist/ui/welcome-screen.js +91 -38
  261. package/dist/utils/change-metadata.d.ts +43 -0
  262. package/dist/utils/change-metadata.js +123 -7
  263. package/dist/utils/change-utils.d.ts +10 -4
  264. package/dist/utils/change-utils.js +20 -13
  265. package/dist/utils/ci.d.ts +12 -0
  266. package/dist/utils/ci.js +16 -0
  267. package/dist/utils/command-references.d.ts +92 -6
  268. package/dist/utils/command-references.js +180 -7
  269. package/dist/utils/date.d.ts +8 -0
  270. package/dist/utils/date.js +13 -0
  271. package/dist/utils/file-system.d.ts +10 -0
  272. package/dist/utils/file-system.js +70 -0
  273. package/dist/utils/index.d.ts +1 -1
  274. package/dist/utils/index.js +1 -1
  275. package/dist/utils/interactive.d.ts +23 -0
  276. package/dist/utils/interactive.js +32 -0
  277. package/dist/utils/item-discovery.d.ts +19 -0
  278. package/dist/utils/item-discovery.js +30 -48
  279. package/dist/utils/shell-detection.d.ts +1 -1
  280. package/dist/utils/shell-detection.js +64 -11
  281. package/dist/utils/spec-discovery.d.ts +40 -0
  282. package/dist/utils/spec-discovery.js +115 -0
  283. package/dist/utils/task-progress.d.ts +29 -1
  284. package/dist/utils/task-progress.js +109 -15
  285. package/package.json +96 -84
  286. package/schemas/spec-driven/schema.yaml +252 -184
  287. package/schemas/spec-driven/templates/design.md +19 -19
  288. package/schemas/spec-driven/templates/plan-template.md +91 -0
  289. package/schemas/spec-driven/templates/proposal.md +29 -24
  290. package/schemas/spec-driven/templates/spec.md +11 -8
  291. package/schemas/spec-driven/templates/tasks.md +9 -9
  292. package/scripts/postinstall.js +83 -83
  293. package/dist/core/command-generation/adapters/codex.d.ts +0 -16
  294. package/dist/core/command-generation/adapters/codex.js +0 -39
  295. package/dist/core/command-generation/adapters/windsurf.d.ts +0 -14
  296. package/dist/core/command-generation/adapters/windsurf.js +0 -38
  297. package/dist/core/comprehension/config.d.ts +0 -20
  298. package/dist/core/comprehension/config.js +0 -23
  299. package/dist/core/comprehension/fingerprint.d.ts +0 -14
  300. package/dist/core/comprehension/fingerprint.js +0 -33
  301. package/dist/core/comprehension/index.d.ts +0 -57
  302. package/dist/core/comprehension/index.js +0 -87
  303. package/dist/core/comprehension/pass-record.d.ts +0 -29
  304. package/dist/core/comprehension/pass-record.js +0 -64
  305. package/dist/core/comprehension/stats.d.ts +0 -35
  306. package/dist/core/comprehension/stats.js +0 -133
  307. package/dist/core/templates/workflows/comprehension-guidance.d.ts +0 -9
  308. package/dist/core/templates/workflows/comprehension-guidance.js +0 -73
  309. package/dist/core/templates/workflows/mcp-guidance.d.ts +0 -13
  310. package/dist/core/templates/workflows/mcp-guidance.js +0 -131
  311. package/dist/core/templates/workflows/user-prompt-guidance.d.ts +0 -16
  312. package/dist/core/templates/workflows/user-prompt-guidance.js +0 -48
  313. package/dist/telemetry/caller.d.ts +0 -5
  314. package/dist/telemetry/caller.js +0 -29
  315. package/dist/telemetry/client.d.ts +0 -27
  316. package/dist/telemetry/client.js +0 -127
  317. package/dist/telemetry/command-context.d.ts +0 -13
  318. package/dist/telemetry/command-context.js +0 -59
  319. package/dist/telemetry/comprehension.d.ts +0 -44
  320. package/dist/telemetry/comprehension.js +0 -105
  321. package/dist/telemetry/content.d.ts +0 -10
  322. package/dist/telemetry/content.js +0 -56
  323. package/dist/telemetry/git-stats.d.ts +0 -12
  324. package/dist/telemetry/git-stats.js +0 -69
  325. package/dist/telemetry/identify-cache.d.ts +0 -7
  326. package/dist/telemetry/identify-cache.js +0 -47
  327. package/dist/telemetry/input.d.ts +0 -17
  328. package/dist/telemetry/input.js +0 -68
  329. package/dist/telemetry/marker.d.ts +0 -37
  330. package/dist/telemetry/marker.js +0 -67
  331. package/dist/telemetry/workflow.d.ts +0 -85
  332. package/dist/telemetry/workflow.js +0 -318
  333. package/schemas/spec-driven/templates/plan.md +0 -19
package/LICENSE CHANGED
@@ -1,22 +1,22 @@
1
- MIT License
2
-
3
- Copyright (c) 2024 OpenSpec Contributors
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
22
-
1
+ MIT License
2
+
3
+ Copyright (c) 2024 OpenSpec Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
package/README.md CHANGED
@@ -1,191 +1,272 @@
1
1
  <p align="center">
2
- <a href="https://github.com/codewalla-engineering/OpenSpec">
2
+ <a href="https://github.com/codewalla-engineering/openspec-upstream-sync">
3
3
  <picture>
4
- <source srcset="assets/codewalla_bg.png">
5
- <img src="assets/codewalla_bg.png" alt="Codewalla OpenSpec" width="100%">
4
+ <source srcset="assets/openspec_pixel_dark.svg" media="(prefers-color-scheme: dark)">
5
+ <source srcset="assets/openspec_pixel_light.svg" media="(prefers-color-scheme: light)">
6
+ <img src="assets/openspec_pixel_light.svg" alt="OpenSpec logo" height="64">
6
7
  </picture>
7
8
  </a>
8
- </p>
9
-
10
- <p align="center"><strong>Codewalla OpenSpec — spec-driven development for AI coding assistants</strong></p>
11
9
 
10
+ </p>
11
+ <p align="center">Spec-driven development for AI coding assistants.</p>
12
12
  <p align="center">
13
- <a href="https://github.com/codewalla-engineering/OpenSpec/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/codewalla-engineering/OpenSpec/actions/workflows/ci.yml/badge.svg" /></a>
13
+ <a href="https://github.com/codewalla-engineering/openspec-upstream-sync/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/codewalla-engineering/openspec-upstream-sync/actions/workflows/ci.yml/badge.svg" /></a>
14
14
  <a href="https://www.npmjs.com/package/@codewalla_india/openspec"><img alt="npm version" src="https://img.shields.io/npm/v/@codewalla_india/openspec?style=flat-square" /></a>
15
+ <a href="https://nodejs.org/"><img alt="node version" src="https://img.shields.io/node/v/@codewalla_india/openspec?style=flat-square" /></a>
15
16
  <a href="./LICENSE"><img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-blue.svg?style=flat-square" /></a>
17
+ <a href="https://conventionalcommits.org"><img alt="Conventional Commits" src="https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg?style=flat-square" /></a>
18
+ <a href="https://discord.gg/YctCnvvshC"><img alt="Discord" src="https://img.shields.io/badge/Discord-Join%20the%20community-5865F2?logo=discord&logoColor=white&style=flat-square" /></a>
16
19
  </p>
17
20
 
18
- > [!TIP]
19
- > **Codewalla workflow:** Propose from a Jira ticket or plain description, revise with `/opsx:modify`, then apply.
20
- >
21
- > Run `/opsx:propose CW-1234 add dark mode` or `/opsx:propose "your idea"` to get started.
22
- > → [Jira integration](docs/workflows.md#jira-integration) · [MCP setup](docs/mcp-setup.md)
23
-
24
- <!-- TODO: Add GIF demo of /opsx:propose → /opsx:archive workflow -->
25
-
26
- ## See it in action
27
-
28
- ```text
29
- You: /opsx:explore
30
- AI: What would you like to explore?
31
- You: I want dark mode but I'm not sure how to do it cleanly.
32
- AI: Let me look at your styling setup...
33
- Cleanest path here: CSS variables + a small theme context,
34
- with system-preference detection. No new dependencies. Scope it?
35
- You: Yes, let's do it.
36
-
37
- You: /opsx:propose CW-1234 add-dark-mode
38
- AI: Found CW-1234: 'Add dark mode'. Creating change from Jira ticket...
39
- ✓ proposal.md (Impact: Jira: CW-1234)
40
- ✓ specs/ui/ (requirements from Jira ACs)
41
- ✓ design.md — technical approach
42
- ✓ plan.md — file-level code map
43
- ✓ tasks.md — implementation checklist
44
- Ready for implementation!
45
-
46
- You: /opsx:modify add-dark-mode design use CSS variables instead of hardcoded colors
47
- AI: Updated design.md → propagated to plan.md and tasks.md
48
- Run /opsx:apply when ready.
49
-
50
- You: /opsx:apply
51
- AI: Jira context: CW-1234 — all ACs covered ✓
52
- Comprehension check — 7 questions on proposal, design, specs, plan, and tasks...
53
- ✓ 86% — ready to implement.
54
- Implementing tasks...
55
- ✓ 1.1 Add theme context provider
56
- ✓ 1.2 Create toggle component
57
- ✓ 2.1 Add CSS variables
58
- ✓ 2.2 Wire up localStorage
59
- All tasks complete!
60
-
61
- You: /opsx:archive
62
- AI: Archived to openspec/changes/archive/2025-01-23-add-dark-mode/
63
- Specs updated. Ready for the next feature.
64
- ```
21
+ <p align="center">
22
+ <img src="assets/codewalla_bg.png" alt="OpenSpec dashboard preview" width="90%">
23
+ </p>
24
+
25
+ <p align="center">
26
+ Follow <a href="https://x.com/0xTab">@0xTab on X</a> for updates · Join the <a href="https://discord.gg/YctCnvvshC">OpenSpec Discord</a> for help and questions.
27
+ </p>
65
28
 
66
- ## Quick Start
29
+ <p align="center">
30
+ <sub>🚀 <strong>New:</strong> <a href="docs/opsx.md">OPSX Workflow</a> — schema-driven, hackable, fluid. Iterate on workflows without code changes.</sub>
31
+ </p>
67
32
 
68
- **Requires Node.js 20.19.0 or higher.**
33
+ # OpenSpec
69
34
 
70
- Install OpenSpec globally:
35
+ OpenSpec aligns humans and AI coding assistants with spec-driven development so you agree on what to build before any code is written. **No API keys required.**
71
36
 
72
- ```bash
73
- npm install -g @codewalla_india/openspec@latest
74
- ```
37
+ ## 🎯 Why OpenSpec?
75
38
 
76
- Then navigate to your project directory and initialize:
39
+ AI coding assistants are powerful but unpredictable when requirements live in chat history. OpenSpec adds a lightweight specification workflow that locks intent before implementation, giving you deterministic, reviewable outputs.
40
+
41
+ Key outcomes:
42
+ - Human and AI stakeholders agree on specs before work begins
43
+ - Structured change folders (proposals, tasks, and spec updates) keep scope explicit and auditable
44
+ - Shared visibility into what's proposed, active, or archived
45
+ - Works with the AI tools you already use: custom slash commands where supported, context rules everywhere else
46
+
47
+ ## 🌟 What's New in v1.8.0
48
+
49
+ ### 🚀 OPSX Workflow - The New Standard
50
+
51
+ **OPSX is now the default workflow for OpenSpec.** It's a fluid, iterative approach that replaces rigid phases with flexible actions you can take anytime.
52
+
53
+ **Key improvements:**
54
+ - **Schema-driven**: Edit `schema.yaml` and `templates/*.md` to customize workflows without code changes
55
+ - **Fluid actions**: Create, implement, update, archive — do any of them anytime
56
+ - **Hackable**: Experiment with instructions, test granularly, customize workflows
57
+ - **Team-ready**: Create workflows that match how your team actually works
77
58
 
78
59
  ```bash
79
- cd your-project
60
+ # Quick start with OPSX
80
61
  openspec init
62
+ # Then in your AI chat:
63
+ /opsx:explore # Think through ideas
64
+ /opsx:propose # Create change with planning artifacts
65
+ /opsx:apply # Implement tasks
66
+ /opsx:archive # Archive when done
81
67
  ```
82
68
 
83
- > [!NOTE]
84
- > **Codewalla identity:** `openspec init` prompts for your Codewalla email or username. All commands require telemetry identity. CI runners should pre-provision `~/.config/openspec/telemetry-identity.json` or set `OPENSPEC_TELEMETRY_USER`.
69
+ ### 🆕 New AI Tool Integrations
85
70
 
86
- Now talk to your AI:
71
+ - **Atlassian Rovo Dev CLI** support (`--tools rovodev`)
72
+ - **MiniMax Code** as a global skills-only tool target
73
+ - **Enhanced GitHub Copilot** integration with opt-in cloud coding agent files
74
+ - **Improved Codex skills** now use the shared `.agents` directory
87
75
 
88
- - **Not sure what you want to build yet?** Start with `/opsx:explore`, a no-stakes thinking partner that reads your code, weighs options, and shapes a plan before anything is written. ([Explore guide](docs/explore.md))
89
- - **Already know what you want?** Go straight to `/opsx:propose <what-you-want-to-build>` or `/opsx:propose CW-1234 <summary>` to import from Jira.
90
- - **Need to revise the plan before coding?** Run `/opsx:modify` — pre-apply only; propagates changes to downstream artifacts. ([Editing a change](docs/editing-changes.md))
91
- - **Ready to implement?** Run `/opsx:apply` — a short comprehension quiz checks you understand the proposal, design, specs, plan, and tasks before any code is written.
76
+ ### New Plan Artifact
92
77
 
93
- The default `core` profile includes `/opsx:explore`, `/opsx:propose`, `/opsx:modify`, `/opsx:apply`, `/opsx:sync`, and `/opsx:archive`. If you want the expanded workflow (`/opsx:new`, `/opsx:continue`, `/opsx:ff`, `/opsx:verify`, `/opsx:bulk-archive`, `/opsx:onboard`), select it with `openspec config profile` and apply with `openspec update`.
78
+ - **Mandatory planning artifact** with implementation guidance
79
+ - **Code maps** showing files to create, modify, and delete
80
+ - **Implementation order** with sequenced steps
81
+ - **Test plans** covering unit, integration, and manual testing
82
+ - **Risk assessment** with mitigation strategies
83
+ - **Dependency chain**: specs → design → plan → tasks
94
84
 
95
- > [!NOTE]
96
- > Not sure if your tool is supported? [View the full list](docs/supported-tools.md) – we support 25+ tools and growing.
97
- >
98
- > Also works with pnpm, yarn, bun, and nix. [See installation options](docs/installation.md).
85
+ ### 🔧 Enhanced Features
99
86
 
100
- ## Codewalla workflow & MCPs
87
+ - **OPSX Modify Command** (experimental): `/opsx:modify` for revising planning artifacts before implementation
88
+ - **Dependency propagation**: Automatic updates to dependent artifacts when modifying
89
+ - **Conflict detection**: Identifies conflicts with manual edits before modification
90
+ - **Modification history**: Tracks all artifact changes with timestamps
101
91
 
102
- OpenSpec workflows integrate with MCP servers in your AI tool. MCPs are optional — workflows degrade gracefully when a server is unavailable.
92
+ ### �🔧 Enhanced Features
103
93
 
104
- | MCP | Workflow | Behavior |
105
- |-----|----------|----------|
106
- | **Atlassian** | `/opsx:propose`, `/opsx:apply` | Import Jira tickets; enrich and cross-check ACs vs tasks; skips if unavailable |
107
- | **Context7** | `/opsx:apply` | Fetch current library docs when tasks reference packages; max 3 calls per session |
108
- | **Browser** | `/opsx:verify` (expanded profile) | Screenshots, a11y snapshot, console errors; not run during apply |
94
+ - **Capability retirement**: Automatically retire capabilities when changes remove their last requirements
95
+ - **Multi-language validation**: `openspec validate` now treats English `SHALL`/`MUST` as guidance in normal mode
96
+ - **Better task progress**: Counts indented sub-tasks and provides more accurate progress tracking
97
+ - **Improved archive guidance**: Better error messages and flag suggestions for non-interactive environments
109
98
 
110
- **[MCP Setup guide](docs/mcp-setup.md)** — enable servers in Cursor or your AI tool<br>
111
- → **[Jira integration](docs/workflows.md#jira-integration)** — naming conventions and ticket flows
99
+ ## 📚 How It Works
112
100
 
113
- ## Docs
101
+ ```
102
+ ┌────────────────────┐
103
+ │ Draft Change │
104
+ │ Proposal │
105
+ └────────┬───────────┘
106
+ │ share intent with your AI
107
+
108
+ ┌────────────────────┐
109
+ │ Review & Align │
110
+ │ (edit specs/tasks) │◀──── feedback loop ──────┐
111
+ └────────┬───────────┘ │
112
+ │ approved plan │
113
+ ▼ │
114
+ ┌────────────────────┐ │
115
+ │ Implement Tasks │──────────────────────────┘
116
+ │ (AI writes code) │
117
+ └────────┬───────────┘
118
+ │ ship the change
119
+
120
+ ┌────────────────────┐
121
+ │ Archive & Update │
122
+ │ Specs (source) │
123
+ └────────────────────┘
124
+
125
+ 1. Draft a change proposal that captures the spec updates you want
126
+ 2. Review the proposal with your AI assistant until everyone agrees
127
+ 3. Implement tasks that reference the agreed specs
128
+ 4. Archive the change to merge the approved updates back into the source-of-truth specs
129
+ ```
114
130
 
115
- **Start here:** the **[Documentation Home](docs/README.md)** maps everything. New to OpenSpec? Read [Getting Started](docs/getting-started.md), then [How Commands Work](docs/how-commands-work.md) (where you actually type `/opsx:propose`).
131
+ ## 🚀 Getting Started
116
132
 
117
- **[Getting Started](docs/getting-started.md)**: first steps<br>
118
- **[Explore First](docs/explore.md)**: think it through with `/opsx:explore` before you commit<br>
119
- → **[How Commands Work](docs/how-commands-work.md)**: where slash commands run vs the CLI<br>
120
- → **[Core Concepts at a Glance](docs/overview.md)**: the whole mental model, one page<br>
121
- → **[Examples & Recipes](docs/examples.md)**: real changes, start to finish<br>
122
- → **[Workflows](docs/workflows.md)**: combos and patterns<br>
123
- → **[MCP Setup](docs/mcp-setup.md)**: Atlassian, Context7, and browser MCPs<br>
124
- → **[Existing Projects](docs/existing-projects.md)**: adopt OpenSpec on a brownfield codebase<br>
125
- → **[Editing a Change](docs/editing-changes.md)**: update artifacts, go back, reconcile manual edits<br>
126
- → **[Commands](docs/commands.md)**: slash commands & skills<br>
127
- → **[CLI](docs/cli.md)**: terminal reference<br>
128
- → **[Stores](docs/stores-beta/user-guide.md)**: plan in a separate repo, shared across your team (beta)<br>
129
- → **[Supported Tools](docs/supported-tools.md)**: tool integrations & install paths<br>
130
- → **[Concepts](docs/concepts.md)**: how it all fits<br>
131
- → **[Multi-Language](docs/multi-language.md)**: multi-language support<br>
132
- → **[Customization](docs/customization.md)**: make it yours<br>
133
- → **[FAQ](docs/faq.md)** · **[Troubleshooting](docs/troubleshooting.md)** · **[Glossary](docs/glossary.md)**: quick help
133
+ ### Prerequisites
134
+ - **Node.js >= 20.19.0** - Check your version with `node --version`
134
135
 
136
+ ### Step 1: Install the CLI globally
135
137
 
136
- ## Community schemas
138
+ **Option A: Using npm**
139
+ ```bash
140
+ npm install -g @codewalla_india/openspec@latest
141
+ ```
137
142
 
138
- Third-party schema bundles distributed via standalone repositories — these provide opinionated workflows that integrate OpenSpec with other tools, similar to how [github/spec-kit's community extension catalog](https://github.com/github/spec-kit/tree/main/extensions) handles tool integrations.
143
+ Verify installation:
144
+ ```bash
145
+ openspec --version
146
+ ```
139
147
 
140
- **[Browse the catalog](docs/customization.md#community-schemas)** in the customization docs.
148
+ **Option B: Using Nix (NixOS and Nix package manager)**
149
+ ```bash
150
+ nix run github:codewalla-engineering/openspec-upstream-sync -- init
151
+ ```
141
152
 
153
+ Or install to your profile:
154
+ ```bash
155
+ nix profile install github:codewalla-engineering/openspec-upstream-sync
156
+ ```
142
157
 
143
- ## Why OpenSpec?
158
+ ### Step 2: Initialize OpenSpec in your project
144
159
 
145
- AI coding assistants are powerful but unpredictable when requirements live only in chat history. OpenSpec adds a lightweight spec layer so you agree on what to build before any code is written.
160
+ ```bash
161
+ cd your-project
162
+ openspec init
163
+ ```
146
164
 
147
- - **Agree before you build** — human and AI align on specs before code gets written
148
- - **Stay organized** each change gets its own folder with proposal, specs, design, plan, and tasks
149
- - **Work fluidly** update any artifact anytime with `/opsx:modify`; no rigid phase gates
150
- - **Jira-native workflow** propose from ticket keys, enrich from Jira during apply, traceability in proposal Impact
151
- - **MCP-powered** — Atlassian, Context7, and browser MCPs built into generated skills
152
- - **Use your tools** — works with 20+ AI assistants via slash commands
165
+ This creates:
166
+ - `openspec/` directory for your specs and changes
167
+ - AI tool integration files (slash commands or skills)
168
+ - Optional project configuration (`openspec/config.yaml`)
153
169
 
154
- ## Updating OpenSpec
170
+ ### Step 3: Start using OpenSpec
155
171
 
156
- **Upgrade the package**
172
+ **In your AI assistant's chat:**
157
173
 
158
174
  ```bash
159
- npm install -g @codewalla_india/openspec@latest
160
- ```
175
+ # Explore an idea (recommended first step)
176
+ /opsx:explore
161
177
 
162
- **Refresh agent instructions**
178
+ # Create a new change
179
+ /opsx:propose add-dark-mode
163
180
 
164
- Run this inside each project to regenerate AI guidance and ensure the latest slash commands and MCP guidance are active:
181
+ # Implement the tasks
182
+ /opsx:apply
165
183
 
166
- ```bash
167
- openspec update
184
+ # Archive when complete
185
+ /opsx:archive
168
186
  ```
169
187
 
170
- ## Usage Notes
188
+ ## 🛠️ Supported AI Tools
189
+
190
+ OpenSpec integrates with 30+ AI coding assistants. Here are the most popular:
191
+
192
+ ### Native Slash Commands
193
+ These tools have built-in OpenSpec commands:
194
+
195
+ | Tool | Commands |
196
+ |------|----------|
197
+ | **Claude Code** | `/openspec:proposal`, `/openspec:apply`, `/openspec:archive` |
198
+ | **Cursor** | `/openspec-proposal`, `/openspec-apply`, `/openspec:archive` |
199
+ | **GitHub Copilot** | `/openspec-proposal`, `/openspec-apply`, `/openspec-archive` |
200
+ | **Windsurf** | `/openspec-proposal`, `/openspec-apply`, `/openspec-archive` |
201
+ | **Continue** | `/openspec-proposal`, `/openspec-apply`, `/openspec-archive` |
202
+ | **Cline** | Workflows in `.clinerules/workflows/` directory |
203
+ | **Codex** | `/openspec-proposal`, `/openspec-apply`, `/openspec-archive` (auto-installed) |
204
+
205
+ ### AGENTS.md Compatible
206
+ These tools automatically read workflow instructions from `openspec/AGENTS.md`:
207
+
208
+ | Tools |
209
+ |-------|
210
+ | Amp • Jules • Others |
211
+
212
+ For the complete list of supported tools, see [Supported Tools](docs/supported-tools.md).
213
+
214
+ ## 📖 Documentation
215
+
216
+ ### Start Here
217
+ - [Getting Started](docs/getting-started.md) - Install, initialize, and run your first change
218
+ - [OPSX Workflow](docs/opsx.md) - The new fluid, schema-driven workflow
219
+ - [How Commands Work](docs/how-commands-work.md) - Where to type slash commands vs terminal commands
220
+
221
+ ### Core Concepts
222
+ - [Core Concepts at a Glance](docs/overview.md) - The mental model on one page
223
+ - [Concepts](docs/concepts.md) - In-depth explanation of specs, changes, artifacts
224
+ - [Glossary](docs/glossary.md) - Every term defined in one place
225
+
226
+ ### Day-to-Day Usage
227
+ - [Workflows](docs/workflows.md) - Common patterns and when to reach for each command
228
+ - [Examples & Recipes](docs/examples.md) - Full walkthroughs of real changes
229
+ - [Writing Good Specs](docs/writing-specs.md) - What strong requirements look like
230
+ - [Reviewing Changes](docs/reviewing-changes.md) - The two-minute review pass
231
+ - [Commands Reference](docs/commands.md) - Complete reference for all OPSX commands including `/opsx:modify`
232
+
233
+ ### Advanced
234
+ - [Customization](docs/customization.md) - Project config, custom schemas, shared context
235
+ - [Multi-Language](docs/multi-language.md) - Generate artifacts in other languages
236
+ - [Stores (beta)](docs/stores-beta/user-guide.md) - Plan across repos and teams
237
+
238
+ ### Help
239
+ - [FAQ](docs/faq.md) - Quick answers to common questions
240
+ - [Troubleshooting](docs/troubleshooting.md) - Concrete fixes for concrete failures
241
+ - [Migration Guide](docs/migration-guide.md) - Moving from legacy workflow to OPSX
242
+
243
+ ## 🔄 Migration from Legacy Workflow
244
+
245
+ If you're using the old OpenSpec workflow, the [Migration Guide](docs/migration-guide.md) explains what changed and how to transition. Your existing work is safe — the migration is non-destructive.
246
+
247
+ ## 🤝 Contributing
171
248
 
172
- **Context hygiene**: OpenSpec benefits from a clean context window. Clear your context before starting implementation and maintain good context hygiene throughout your session.
249
+ We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines. The most valuable contributions are:
173
250
 
174
- **Modify before apply**: `/opsx:modify` revises planning artifacts and propagates changes downstream. It is pre-apply only — once tasks are checked off in `/opsx:apply`, use manual edits or start a new change.
251
+ - Documentation improvements
252
+ - Bug fixes
253
+ - New AI tool integrations
254
+ - Workflow enhancements
175
255
 
176
- **Comprehension check**: `/opsx:apply` runs a short quiz (enabled by default) on proposal, design, specs, plan, and pending tasks before implementation. Questions test holistic understanding of the change, not task numbers or checklist trivia; plan receives the majority of questions when present. You need ≥ 80% to proceed. Disable with `comprehension.enabled: false` in `openspec/config.yaml`. See [Workflows](docs/workflows.md#comprehension-quiz-before-apply).
256
+ ## 📄 License
177
257
 
178
- ## Other
258
+ MIT License - see [LICENSE](LICENSE) file for details
179
259
 
180
- <details>
181
- <summary><strong>Telemetry</strong></summary>
260
+ ## 🆘 Support
182
261
 
183
- Codewalla OpenSpec collects mandatory usage analytics tied to your email or username. Identity is collected during interactive `openspec init` or `openspec update` and stored at `~/.config/openspec/telemetry-identity.json` (never committed). All other commands require identity. CI runners should pre-provision that file or set `OPENSPEC_TELEMETRY_USER`.
262
+ - **Discord:** [discord.gg/YctCnvvshC](https://discord.gg/YctCnvvshC) for questions, ideas, and help
263
+ - **GitHub Issues:** [github.com/codewalla-engineering/openspec-upstream-sync/issues](https://github.com/codewalla-engineering/openspec-upstream-sync/issues) for bugs and feature requests
264
+ - **Feedback:** Run `openspec feedback "your message"` to send feedback directly from your terminal
184
265
 
185
- Events include command names, workflow metrics, change names, workflow input text (via `--workflow-input` on `new change`), and modify requests (`artifact_modify_requested` with modify input) — not file paths or artifact/spec body content.
266
+ ## 🌟 Acknowledgments
186
267
 
187
- </details>
268
+ Built with ❤️ for the AI-assisted development community. Special thanks to all contributors who make OpenSpec better every day.
188
269
 
189
- ## License
270
+ ---
190
271
 
191
- MIT
272
+ **⚡ Powered by OPSX Workflow — the future of spec-driven development**
package/bin/openspec.js CHANGED
@@ -1,5 +1,5 @@
1
- #!/usr/bin/env node
2
-
3
- import { runCli } from '../dist/cli/index.js';
4
-
5
- runCli();
1
+ #!/usr/bin/env node
2
+
3
+ import { runCli } from '../dist/cli/index.js';
4
+
5
+ runCli();