@devtrack-solution/codesdd 1.2.2

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 (433) hide show
  1. package/.sdd/skills/curated/api-clean-flask-langgraph/SKILL.md +2751 -0
  2. package/.sdd/skills/curated/devtrack-api/SKILL.md +137 -0
  3. package/.sdd/skills/curated/devtrack-api/agents/openai.yaml +4 -0
  4. package/.sdd/skills/curated/devtrack-api/references/application-presentation.md +381 -0
  5. package/.sdd/skills/curated/devtrack-api/references/architecture-governance.md +219 -0
  6. package/.sdd/skills/curated/devtrack-api/references/domain-modeling.md +359 -0
  7. package/.sdd/skills/curated/devtrack-api/references/implementation-checklist.md +127 -0
  8. package/.sdd/skills/curated/devtrack-api/references/imports-lint.md +207 -0
  9. package/.sdd/skills/curated/devtrack-api/references/testing-validation.md +167 -0
  10. package/.sdd/skills/curated/devtrack-api/references/typeorm-infrastructure.md +334 -0
  11. package/LICENSE +21 -0
  12. package/README.md +842 -0
  13. package/bin/codesdd.js +10 -0
  14. package/dist/cli/index.d.ts +3 -0
  15. package/dist/cli/index.js +560 -0
  16. package/dist/commands/change.d.ts +35 -0
  17. package/dist/commands/change.js +296 -0
  18. package/dist/commands/completion.d.ts +72 -0
  19. package/dist/commands/completion.js +258 -0
  20. package/dist/commands/config.d.ts +36 -0
  21. package/dist/commands/config.js +552 -0
  22. package/dist/commands/feedback.d.ts +9 -0
  23. package/dist/commands/feedback.js +184 -0
  24. package/dist/commands/schema.d.ts +6 -0
  25. package/dist/commands/schema.js +870 -0
  26. package/dist/commands/sdd/execution.d.ts +3 -0
  27. package/dist/commands/sdd/execution.js +409 -0
  28. package/dist/commands/sdd/shared.d.ts +9 -0
  29. package/dist/commands/sdd/shared.js +84 -0
  30. package/dist/commands/sdd/skills.d.ts +3 -0
  31. package/dist/commands/sdd/skills.js +154 -0
  32. package/dist/commands/sdd.d.ts +3 -0
  33. package/dist/commands/sdd.js +769 -0
  34. package/dist/commands/show.d.ts +14 -0
  35. package/dist/commands/show.js +133 -0
  36. package/dist/commands/spec.d.ts +15 -0
  37. package/dist/commands/spec.js +228 -0
  38. package/dist/commands/validate.d.ts +24 -0
  39. package/dist/commands/validate.js +295 -0
  40. package/dist/commands/workflow/index.d.ts +17 -0
  41. package/dist/commands/workflow/index.js +12 -0
  42. package/dist/commands/workflow/instructions.d.ts +29 -0
  43. package/dist/commands/workflow/instructions.js +383 -0
  44. package/dist/commands/workflow/new-change.d.ts +11 -0
  45. package/dist/commands/workflow/new-change.js +45 -0
  46. package/dist/commands/workflow/schemas.d.ts +10 -0
  47. package/dist/commands/workflow/schemas.js +34 -0
  48. package/dist/commands/workflow/shared.d.ts +57 -0
  49. package/dist/commands/workflow/shared.js +117 -0
  50. package/dist/commands/workflow/status.d.ts +14 -0
  51. package/dist/commands/workflow/status.js +76 -0
  52. package/dist/commands/workflow/templates.d.ts +16 -0
  53. package/dist/commands/workflow/templates.js +68 -0
  54. package/dist/core/archive.d.ts +16 -0
  55. package/dist/core/archive.js +487 -0
  56. package/dist/core/artifact-graph/graph.d.ts +56 -0
  57. package/dist/core/artifact-graph/graph.js +141 -0
  58. package/dist/core/artifact-graph/index.d.ts +7 -0
  59. package/dist/core/artifact-graph/index.js +13 -0
  60. package/dist/core/artifact-graph/instruction-loader.d.ts +143 -0
  61. package/dist/core/artifact-graph/instruction-loader.js +215 -0
  62. package/dist/core/artifact-graph/resolver.d.ts +81 -0
  63. package/dist/core/artifact-graph/resolver.js +258 -0
  64. package/dist/core/artifact-graph/schema.d.ts +13 -0
  65. package/dist/core/artifact-graph/schema.js +108 -0
  66. package/dist/core/artifact-graph/state.d.ts +12 -0
  67. package/dist/core/artifact-graph/state.js +54 -0
  68. package/dist/core/artifact-graph/types.d.ts +45 -0
  69. package/dist/core/artifact-graph/types.js +43 -0
  70. package/dist/core/available-tools.d.ts +16 -0
  71. package/dist/core/available-tools.js +30 -0
  72. package/dist/core/branding.d.ts +8 -0
  73. package/dist/core/branding.js +12 -0
  74. package/dist/core/cli/command-matrix.d.ts +23 -0
  75. package/dist/core/cli/command-matrix.js +123 -0
  76. package/dist/core/command-generation/adapters/amazon-q.d.ts +13 -0
  77. package/dist/core/command-generation/adapters/amazon-q.js +26 -0
  78. package/dist/core/command-generation/adapters/antigravity.d.ts +13 -0
  79. package/dist/core/command-generation/adapters/antigravity.js +26 -0
  80. package/dist/core/command-generation/adapters/auggie.d.ts +13 -0
  81. package/dist/core/command-generation/adapters/auggie.js +27 -0
  82. package/dist/core/command-generation/adapters/claude.d.ts +13 -0
  83. package/dist/core/command-generation/adapters/claude.js +50 -0
  84. package/dist/core/command-generation/adapters/cline.d.ts +14 -0
  85. package/dist/core/command-generation/adapters/cline.js +27 -0
  86. package/dist/core/command-generation/adapters/codebuddy.d.ts +13 -0
  87. package/dist/core/command-generation/adapters/codebuddy.js +28 -0
  88. package/dist/core/command-generation/adapters/codex.d.ts +16 -0
  89. package/dist/core/command-generation/adapters/codex.js +39 -0
  90. package/dist/core/command-generation/adapters/continue.d.ts +13 -0
  91. package/dist/core/command-generation/adapters/continue.js +28 -0
  92. package/dist/core/command-generation/adapters/costrict.d.ts +13 -0
  93. package/dist/core/command-generation/adapters/costrict.js +27 -0
  94. package/dist/core/command-generation/adapters/crush.d.ts +13 -0
  95. package/dist/core/command-generation/adapters/crush.js +30 -0
  96. package/dist/core/command-generation/adapters/cursor.d.ts +14 -0
  97. package/dist/core/command-generation/adapters/cursor.js +44 -0
  98. package/dist/core/command-generation/adapters/factory.d.ts +13 -0
  99. package/dist/core/command-generation/adapters/factory.js +27 -0
  100. package/dist/core/command-generation/adapters/gemini.d.ts +13 -0
  101. package/dist/core/command-generation/adapters/gemini.js +26 -0
  102. package/dist/core/command-generation/adapters/github-copilot.d.ts +13 -0
  103. package/dist/core/command-generation/adapters/github-copilot.js +26 -0
  104. package/dist/core/command-generation/adapters/iflow.d.ts +13 -0
  105. package/dist/core/command-generation/adapters/iflow.js +29 -0
  106. package/dist/core/command-generation/adapters/index.d.ts +29 -0
  107. package/dist/core/command-generation/adapters/index.js +29 -0
  108. package/dist/core/command-generation/adapters/kilocode.d.ts +14 -0
  109. package/dist/core/command-generation/adapters/kilocode.js +23 -0
  110. package/dist/core/command-generation/adapters/kiro.d.ts +13 -0
  111. package/dist/core/command-generation/adapters/kiro.js +26 -0
  112. package/dist/core/command-generation/adapters/opencode.d.ts +13 -0
  113. package/dist/core/command-generation/adapters/opencode.js +29 -0
  114. package/dist/core/command-generation/adapters/pi.d.ts +14 -0
  115. package/dist/core/command-generation/adapters/pi.js +41 -0
  116. package/dist/core/command-generation/adapters/qoder.d.ts +13 -0
  117. package/dist/core/command-generation/adapters/qoder.js +30 -0
  118. package/dist/core/command-generation/adapters/qwen.d.ts +13 -0
  119. package/dist/core/command-generation/adapters/qwen.js +26 -0
  120. package/dist/core/command-generation/adapters/roocode.d.ts +14 -0
  121. package/dist/core/command-generation/adapters/roocode.js +27 -0
  122. package/dist/core/command-generation/adapters/windsurf.d.ts +14 -0
  123. package/dist/core/command-generation/adapters/windsurf.js +51 -0
  124. package/dist/core/command-generation/generator.d.ts +21 -0
  125. package/dist/core/command-generation/generator.js +27 -0
  126. package/dist/core/command-generation/index.d.ts +22 -0
  127. package/dist/core/command-generation/index.js +24 -0
  128. package/dist/core/command-generation/registry.d.ts +36 -0
  129. package/dist/core/command-generation/registry.js +92 -0
  130. package/dist/core/command-generation/types.d.ts +56 -0
  131. package/dist/core/command-generation/types.js +8 -0
  132. package/dist/core/completions/command-registry.d.ts +7 -0
  133. package/dist/core/completions/command-registry.js +461 -0
  134. package/dist/core/completions/completion-provider.d.ts +60 -0
  135. package/dist/core/completions/completion-provider.js +102 -0
  136. package/dist/core/completions/factory.d.ts +64 -0
  137. package/dist/core/completions/factory.js +75 -0
  138. package/dist/core/completions/generators/bash-generator.d.ts +32 -0
  139. package/dist/core/completions/generators/bash-generator.js +174 -0
  140. package/dist/core/completions/generators/fish-generator.d.ts +32 -0
  141. package/dist/core/completions/generators/fish-generator.js +157 -0
  142. package/dist/core/completions/generators/powershell-generator.d.ts +33 -0
  143. package/dist/core/completions/generators/powershell-generator.js +207 -0
  144. package/dist/core/completions/generators/zsh-generator.d.ts +44 -0
  145. package/dist/core/completions/generators/zsh-generator.js +250 -0
  146. package/dist/core/completions/installers/bash-installer.d.ts +87 -0
  147. package/dist/core/completions/installers/bash-installer.js +318 -0
  148. package/dist/core/completions/installers/fish-installer.d.ts +43 -0
  149. package/dist/core/completions/installers/fish-installer.js +143 -0
  150. package/dist/core/completions/installers/powershell-installer.d.ts +88 -0
  151. package/dist/core/completions/installers/powershell-installer.js +327 -0
  152. package/dist/core/completions/installers/zsh-installer.d.ts +125 -0
  153. package/dist/core/completions/installers/zsh-installer.js +452 -0
  154. package/dist/core/completions/templates/bash-templates.d.ts +6 -0
  155. package/dist/core/completions/templates/bash-templates.js +24 -0
  156. package/dist/core/completions/templates/fish-templates.d.ts +7 -0
  157. package/dist/core/completions/templates/fish-templates.js +39 -0
  158. package/dist/core/completions/templates/powershell-templates.d.ts +6 -0
  159. package/dist/core/completions/templates/powershell-templates.js +25 -0
  160. package/dist/core/completions/templates/zsh-templates.d.ts +6 -0
  161. package/dist/core/completions/templates/zsh-templates.js +36 -0
  162. package/dist/core/completions/types.d.ts +79 -0
  163. package/dist/core/completions/types.js +2 -0
  164. package/dist/core/config-prompts.d.ts +9 -0
  165. package/dist/core/config-prompts.js +34 -0
  166. package/dist/core/config-schema.d.ts +86 -0
  167. package/dist/core/config-schema.js +213 -0
  168. package/dist/core/config.d.ts +17 -0
  169. package/dist/core/config.js +33 -0
  170. package/dist/core/converters/json-converter.d.ts +6 -0
  171. package/dist/core/converters/json-converter.js +51 -0
  172. package/dist/core/global-config.d.ts +44 -0
  173. package/dist/core/global-config.js +125 -0
  174. package/dist/core/index.d.ts +2 -0
  175. package/dist/core/index.js +3 -0
  176. package/dist/core/init.d.ts +36 -0
  177. package/dist/core/init.js +576 -0
  178. package/dist/core/legacy-cleanup.d.ts +162 -0
  179. package/dist/core/legacy-cleanup.js +512 -0
  180. package/dist/core/list.d.ts +9 -0
  181. package/dist/core/list.js +173 -0
  182. package/dist/core/migration.d.ts +23 -0
  183. package/dist/core/migration.js +108 -0
  184. package/dist/core/parsers/change-parser.d.ts +13 -0
  185. package/dist/core/parsers/change-parser.js +193 -0
  186. package/dist/core/parsers/markdown-parser.d.ts +22 -0
  187. package/dist/core/parsers/markdown-parser.js +187 -0
  188. package/dist/core/parsers/requirement-blocks.d.ts +37 -0
  189. package/dist/core/parsers/requirement-blocks.js +201 -0
  190. package/dist/core/profile-sync-drift.d.ts +38 -0
  191. package/dist/core/profile-sync-drift.js +201 -0
  192. package/dist/core/profiles.d.ts +26 -0
  193. package/dist/core/profiles.js +41 -0
  194. package/dist/core/project-config.d.ts +64 -0
  195. package/dist/core/project-config.js +223 -0
  196. package/dist/core/schemas/base.schema.d.ts +13 -0
  197. package/dist/core/schemas/base.schema.js +13 -0
  198. package/dist/core/schemas/change.schema.d.ts +73 -0
  199. package/dist/core/schemas/change.schema.js +31 -0
  200. package/dist/core/schemas/index.d.ts +4 -0
  201. package/dist/core/schemas/index.js +4 -0
  202. package/dist/core/schemas/spec.schema.d.ts +18 -0
  203. package/dist/core/schemas/spec.schema.js +15 -0
  204. package/dist/core/sdd/adr-policy.d.ts +7 -0
  205. package/dist/core/sdd/adr-policy.js +47 -0
  206. package/dist/core/sdd/adr.d.ts +4 -0
  207. package/dist/core/sdd/adr.js +27 -0
  208. package/dist/core/sdd/bootstrap.d.ts +28 -0
  209. package/dist/core/sdd/bootstrap.js +353 -0
  210. package/dist/core/sdd/check.d.ts +51 -0
  211. package/dist/core/sdd/check.js +831 -0
  212. package/dist/core/sdd/coordination/coordination-adapters.d.ts +73 -0
  213. package/dist/core/sdd/coordination/coordination-adapters.js +87 -0
  214. package/dist/core/sdd/coordination/index.d.ts +2 -0
  215. package/dist/core/sdd/coordination/index.js +2 -0
  216. package/dist/core/sdd/dedup.d.ts +23 -0
  217. package/dist/core/sdd/dedup.js +62 -0
  218. package/dist/core/sdd/default-bootstrap-files.d.ts +23 -0
  219. package/dist/core/sdd/default-bootstrap-files.js +385 -0
  220. package/dist/core/sdd/default-skills.d.ts +16 -0
  221. package/dist/core/sdd/default-skills.js +427 -0
  222. package/dist/core/sdd/diagnose.d.ts +25 -0
  223. package/dist/core/sdd/diagnose.js +1312 -0
  224. package/dist/core/sdd/docs-sync.d.ts +21 -0
  225. package/dist/core/sdd/docs-sync.js +231 -0
  226. package/dist/core/sdd/domain/helpers.d.ts +6 -0
  227. package/dist/core/sdd/domain/helpers.js +37 -0
  228. package/dist/core/sdd/domain/lifecycle-guardrails.d.ts +22 -0
  229. package/dist/core/sdd/domain/lifecycle-guardrails.js +31 -0
  230. package/dist/core/sdd/domain/lifecycle-hooks.d.ts +16 -0
  231. package/dist/core/sdd/domain/lifecycle-hooks.js +27 -0
  232. package/dist/core/sdd/domain/post-active-validation.d.ts +15 -0
  233. package/dist/core/sdd/domain/post-active-validation.js +71 -0
  234. package/dist/core/sdd/domain/traceability.d.ts +8 -0
  235. package/dist/core/sdd/domain/traceability.js +83 -0
  236. package/dist/core/sdd/domain/transition-engine.d.ts +49 -0
  237. package/dist/core/sdd/domain/transition-engine.js +120 -0
  238. package/dist/core/sdd/fingerprint.d.ts +23 -0
  239. package/dist/core/sdd/fingerprint.js +146 -0
  240. package/dist/core/sdd/import-openspec.d.ts +31 -0
  241. package/dist/core/sdd/import-openspec.js +232 -0
  242. package/dist/core/sdd/init.d.ts +36 -0
  243. package/dist/core/sdd/init.js +65 -0
  244. package/dist/core/sdd/json-schema.d.ts +6 -0
  245. package/dist/core/sdd/json-schema.js +59 -0
  246. package/dist/core/sdd/legacy-operations.d.ts +286 -0
  247. package/dist/core/sdd/legacy-operations.js +2175 -0
  248. package/dist/core/sdd/lenses.d.ts +14 -0
  249. package/dist/core/sdd/lenses.js +97 -0
  250. package/dist/core/sdd/merge-catalog.d.ts +9 -0
  251. package/dist/core/sdd/merge-catalog.js +70 -0
  252. package/dist/core/sdd/migrate-workspace.d.ts +36 -0
  253. package/dist/core/sdd/migrate-workspace.js +344 -0
  254. package/dist/core/sdd/migrate.d.ts +24 -0
  255. package/dist/core/sdd/migrate.js +385 -0
  256. package/dist/core/sdd/resolve-project-root.d.ts +15 -0
  257. package/dist/core/sdd/resolve-project-root.js +46 -0
  258. package/dist/core/sdd/root-resolver.d.ts +16 -0
  259. package/dist/core/sdd/root-resolver.js +62 -0
  260. package/dist/core/sdd/sanitize.d.ts +35 -0
  261. package/dist/core/sdd/sanitize.js +750 -0
  262. package/dist/core/sdd/services/approve.service.d.ts +20 -0
  263. package/dist/core/sdd/services/approve.service.js +82 -0
  264. package/dist/core/sdd/services/audit.service.d.ts +53 -0
  265. package/dist/core/sdd/services/audit.service.js +136 -0
  266. package/dist/core/sdd/services/breakdown.service.d.ts +35 -0
  267. package/dist/core/sdd/services/breakdown.service.js +185 -0
  268. package/dist/core/sdd/services/context.service.d.ts +346 -0
  269. package/dist/core/sdd/services/context.service.js +278 -0
  270. package/dist/core/sdd/services/debate.service.d.ts +16 -0
  271. package/dist/core/sdd/services/debate.service.js +73 -0
  272. package/dist/core/sdd/services/decide.service.d.ts +23 -0
  273. package/dist/core/sdd/services/decide.service.js +81 -0
  274. package/dist/core/sdd/services/dedup-apply.service.d.ts +39 -0
  275. package/dist/core/sdd/services/dedup-apply.service.js +259 -0
  276. package/dist/core/sdd/services/feature-lint.service.d.ts +29 -0
  277. package/dist/core/sdd/services/feature-lint.service.js +146 -0
  278. package/dist/core/sdd/services/finalize.service.d.ts +33 -0
  279. package/dist/core/sdd/services/finalize.service.js +707 -0
  280. package/dist/core/sdd/services/frontend-gap.service.d.ts +23 -0
  281. package/dist/core/sdd/services/frontend-gap.service.js +117 -0
  282. package/dist/core/sdd/services/frontend-impact.service.d.ts +19 -0
  283. package/dist/core/sdd/services/frontend-impact.service.js +46 -0
  284. package/dist/core/sdd/services/ingest-deposito.service.d.ts +32 -0
  285. package/dist/core/sdd/services/ingest-deposito.service.js +231 -0
  286. package/dist/core/sdd/services/insight.service.d.ts +21 -0
  287. package/dist/core/sdd/services/insight.service.js +81 -0
  288. package/dist/core/sdd/services/legacy-capability.service.d.ts +24 -0
  289. package/dist/core/sdd/services/legacy-capability.service.js +59 -0
  290. package/dist/core/sdd/services/mcp-runtime.service.d.ts +42 -0
  291. package/dist/core/sdd/services/mcp-runtime.service.js +144 -0
  292. package/dist/core/sdd/services/metrics.service.d.ts +49 -0
  293. package/dist/core/sdd/services/metrics.service.js +181 -0
  294. package/dist/core/sdd/services/next.service.d.ts +35 -0
  295. package/dist/core/sdd/services/next.service.js +54 -0
  296. package/dist/core/sdd/services/onboard.service.d.ts +9 -0
  297. package/dist/core/sdd/services/onboard.service.js +165 -0
  298. package/dist/core/sdd/services/rebuild.service.d.ts +31 -0
  299. package/dist/core/sdd/services/rebuild.service.js +482 -0
  300. package/dist/core/sdd/services/scan-naming.service.d.ts +43 -0
  301. package/dist/core/sdd/services/scan-naming.service.js +246 -0
  302. package/dist/core/sdd/services/skills-invoke.service.d.ts +24 -0
  303. package/dist/core/sdd/services/skills-invoke.service.js +63 -0
  304. package/dist/core/sdd/services/skills-sync.service.d.ts +15 -0
  305. package/dist/core/sdd/services/skills-sync.service.js +117 -0
  306. package/dist/core/sdd/services/start.service.d.ts +26 -0
  307. package/dist/core/sdd/services/start.service.js +237 -0
  308. package/dist/core/sdd/skills.d.ts +15 -0
  309. package/dist/core/sdd/skills.js +46 -0
  310. package/dist/core/sdd/state-lock.d.ts +19 -0
  311. package/dist/core/sdd/state-lock.js +144 -0
  312. package/dist/core/sdd/state.d.ts +155 -0
  313. package/dist/core/sdd/state.js +1000 -0
  314. package/dist/core/sdd/store/in-memory-adapter.d.ts +12 -0
  315. package/dist/core/sdd/store/in-memory-adapter.js +27 -0
  316. package/dist/core/sdd/store/index.d.ts +5 -0
  317. package/dist/core/sdd/store/index.js +5 -0
  318. package/dist/core/sdd/store/sdd-stores.d.ts +25 -0
  319. package/dist/core/sdd/store/sdd-stores.js +59 -0
  320. package/dist/core/sdd/store/state-store.d.ts +32 -0
  321. package/dist/core/sdd/store/state-store.js +2 -0
  322. package/dist/core/sdd/store/yaml-file-adapter.d.ts +12 -0
  323. package/dist/core/sdd/store/yaml-file-adapter.js +43 -0
  324. package/dist/core/sdd/structural-health.d.ts +557 -0
  325. package/dist/core/sdd/structural-health.js +187 -0
  326. package/dist/core/sdd/transaction.d.ts +14 -0
  327. package/dist/core/sdd/transaction.js +100 -0
  328. package/dist/core/sdd/types.d.ts +1570 -0
  329. package/dist/core/sdd/types.js +617 -0
  330. package/dist/core/sdd/views.d.ts +3 -0
  331. package/dist/core/sdd/views.js +560 -0
  332. package/dist/core/sdd/workspace-schemas.d.ts +620 -0
  333. package/dist/core/sdd/workspace-schemas.js +254 -0
  334. package/dist/core/sdd/write-manifest.d.ts +25 -0
  335. package/dist/core/sdd/write-manifest.js +353 -0
  336. package/dist/core/shared/index.d.ts +8 -0
  337. package/dist/core/shared/index.js +8 -0
  338. package/dist/core/shared/skill-generation.d.ts +49 -0
  339. package/dist/core/shared/skill-generation.js +106 -0
  340. package/dist/core/shared/tool-detection.d.ts +71 -0
  341. package/dist/core/shared/tool-detection.js +158 -0
  342. package/dist/core/specs-apply.d.ts +73 -0
  343. package/dist/core/specs-apply.js +385 -0
  344. package/dist/core/styles/palette.d.ts +7 -0
  345. package/dist/core/styles/palette.js +8 -0
  346. package/dist/core/templates/index.d.ts +8 -0
  347. package/dist/core/templates/index.js +9 -0
  348. package/dist/core/templates/skill-templates.d.ts +20 -0
  349. package/dist/core/templates/skill-templates.js +19 -0
  350. package/dist/core/templates/types.d.ts +19 -0
  351. package/dist/core/templates/types.js +5 -0
  352. package/dist/core/templates/workflows/apply-change.d.ts +10 -0
  353. package/dist/core/templates/workflows/apply-change.js +308 -0
  354. package/dist/core/templates/workflows/archive-change.d.ts +10 -0
  355. package/dist/core/templates/workflows/archive-change.js +277 -0
  356. package/dist/core/templates/workflows/bulk-archive-change.d.ts +10 -0
  357. package/dist/core/templates/workflows/bulk-archive-change.js +502 -0
  358. package/dist/core/templates/workflows/continue-change.d.ts +10 -0
  359. package/dist/core/templates/workflows/continue-change.js +232 -0
  360. package/dist/core/templates/workflows/explore.d.ts +10 -0
  361. package/dist/core/templates/workflows/explore.js +475 -0
  362. package/dist/core/templates/workflows/feedback.d.ts +9 -0
  363. package/dist/core/templates/workflows/feedback.js +108 -0
  364. package/dist/core/templates/workflows/ff-change.d.ts +10 -0
  365. package/dist/core/templates/workflows/ff-change.js +206 -0
  366. package/dist/core/templates/workflows/new-change.d.ts +10 -0
  367. package/dist/core/templates/workflows/new-change.js +151 -0
  368. package/dist/core/templates/workflows/onboard.d.ts +10 -0
  369. package/dist/core/templates/workflows/onboard.js +573 -0
  370. package/dist/core/templates/workflows/propose.d.ts +10 -0
  371. package/dist/core/templates/workflows/propose.js +224 -0
  372. package/dist/core/templates/workflows/sdd.d.ts +10 -0
  373. package/dist/core/templates/workflows/sdd.js +107 -0
  374. package/dist/core/templates/workflows/sync-specs.d.ts +10 -0
  375. package/dist/core/templates/workflows/sync-specs.js +286 -0
  376. package/dist/core/templates/workflows/verify-change.d.ts +10 -0
  377. package/dist/core/templates/workflows/verify-change.js +346 -0
  378. package/dist/core/update.d.ts +77 -0
  379. package/dist/core/update.js +538 -0
  380. package/dist/core/validation/constants.d.ts +34 -0
  381. package/dist/core/validation/constants.js +40 -0
  382. package/dist/core/validation/types.d.ts +18 -0
  383. package/dist/core/validation/types.js +2 -0
  384. package/dist/core/validation/validator.d.ts +33 -0
  385. package/dist/core/validation/validator.js +409 -0
  386. package/dist/core/view.d.ts +8 -0
  387. package/dist/core/view.js +170 -0
  388. package/dist/index.d.ts +3 -0
  389. package/dist/index.js +3 -0
  390. package/dist/prompts/searchable-multi-select.d.ts +28 -0
  391. package/dist/prompts/searchable-multi-select.js +159 -0
  392. package/dist/telemetry/config.d.ts +32 -0
  393. package/dist/telemetry/config.js +68 -0
  394. package/dist/telemetry/index.d.ts +44 -0
  395. package/dist/telemetry/index.js +207 -0
  396. package/dist/ui/ascii-patterns.d.ts +16 -0
  397. package/dist/ui/ascii-patterns.js +133 -0
  398. package/dist/ui/welcome-screen.d.ts +10 -0
  399. package/dist/ui/welcome-screen.js +146 -0
  400. package/dist/utils/change-metadata.d.ts +51 -0
  401. package/dist/utils/change-metadata.js +147 -0
  402. package/dist/utils/change-utils.d.ts +62 -0
  403. package/dist/utils/change-utils.js +121 -0
  404. package/dist/utils/command-references.d.ts +18 -0
  405. package/dist/utils/command-references.js +20 -0
  406. package/dist/utils/file-system.d.ts +36 -0
  407. package/dist/utils/file-system.js +281 -0
  408. package/dist/utils/index.d.ts +6 -0
  409. package/dist/utils/index.js +9 -0
  410. package/dist/utils/interactive.d.ts +18 -0
  411. package/dist/utils/interactive.js +21 -0
  412. package/dist/utils/item-discovery.d.ts +4 -0
  413. package/dist/utils/item-discovery.js +73 -0
  414. package/dist/utils/match.d.ts +3 -0
  415. package/dist/utils/match.js +22 -0
  416. package/dist/utils/openspec-compat.d.ts +2 -0
  417. package/dist/utils/openspec-compat.js +2 -0
  418. package/dist/utils/shell-detection.d.ts +20 -0
  419. package/dist/utils/shell-detection.js +41 -0
  420. package/dist/utils/task-progress.d.ts +8 -0
  421. package/dist/utils/task-progress.js +36 -0
  422. package/package.json +111 -0
  423. package/schemas/sdd/1-spec.schema.json +221 -0
  424. package/schemas/sdd/2-plan.schema.json +199 -0
  425. package/schemas/sdd/3-tasks.schema.json +102 -0
  426. package/schemas/sdd/4-changelog.schema.json +55 -0
  427. package/schemas/sdd/5-quality.schema.json +427 -0
  428. package/schemas/sdd/workspace-catalog.schema.json +1012 -0
  429. package/schemas/spec-driven/schema.yaml +153 -0
  430. package/schemas/spec-driven/templates/design.md +19 -0
  431. package/schemas/spec-driven/templates/proposal.md +23 -0
  432. package/schemas/spec-driven/templates/spec.md +8 -0
  433. package/schemas/spec-driven/templates/tasks.md +9 -0
@@ -0,0 +1,123 @@
1
+ import { CLI_NAME } from '../branding.js';
2
+ function commandSegments(command, prefix = []) {
3
+ const name = command.name();
4
+ if (!name || name === CLI_NAME) {
5
+ return prefix;
6
+ }
7
+ return [...prefix, name];
8
+ }
9
+ export function collectCliLeafCommands(command, prefix = []) {
10
+ const segments = commandSegments(command, prefix);
11
+ const children = command.commands ?? [];
12
+ if (children.length === 0) {
13
+ return [
14
+ {
15
+ commandPath: segments.join(':'),
16
+ description: command.description(),
17
+ aliases: command.aliases(),
18
+ hidden: command._hidden === true,
19
+ },
20
+ ];
21
+ }
22
+ return children.flatMap((child) => collectCliLeafCommands(child, segments));
23
+ }
24
+ export const CLI_COMMAND_MATRIX = [
25
+ { commandPath: 'init', strategy: 'contract', rationale: 'Project bootstrap is deterministic and already decomposes into testable setup services.' },
26
+ { commandPath: 'install', strategy: 'spawned-e2e', rationale: 'Full installation composes base bootstrap plus SDD initialization and should keep a spawned smoke path.' },
27
+ { commandPath: 'experimental', strategy: 'exception', rationale: 'Deprecated compatibility alias inherits init behavior and only needs lightweight regression coverage.' },
28
+ { commandPath: 'update', strategy: 'contract', rationale: 'Update flow is deterministic and validated through targeted service and CLI contract tests.' },
29
+ { commandPath: 'list', strategy: 'contract', rationale: 'Listing is a stable read-only surface that is well-suited to direct contract assertions.' },
30
+ { commandPath: 'view', strategy: 'exception', rationale: 'Interactive dashboard behavior depends on terminal rendering; keep it on targeted view tests instead of broad spawned smoke.' },
31
+ { commandPath: 'change:show', strategy: 'contract', rationale: 'Change rendering is deterministic and already covered through direct command tests.' },
32
+ { commandPath: 'change:list', strategy: 'contract', rationale: 'Deprecated list wrapper can be validated through CLI contract coverage without full process smoke.' },
33
+ { commandPath: 'change:validate', strategy: 'contract', rationale: 'Validation output is deterministic and fits contract-style tests with fixture workspaces.' },
34
+ { commandPath: 'archive', strategy: 'spawned-e2e', rationale: 'Archive updates change state and specs together, so it is lifecycle-sensitive and worth spawned smoke coverage.' },
35
+ { commandPath: 'spec:show', strategy: 'contract', rationale: 'Spec rendering is deterministic and already maps cleanly to fixture-based contract tests.' },
36
+ { commandPath: 'spec:list', strategy: 'contract', rationale: 'Spec listing is read-only and easy to validate with direct CLI assertions.' },
37
+ { commandPath: 'spec:validate', strategy: 'contract', rationale: 'Spec validation is a deterministic contract surface with fixture-driven expectations.' },
38
+ { commandPath: 'config:path', strategy: 'contract', rationale: 'Config path output is deterministic and scriptable.' },
39
+ { commandPath: 'config:list', strategy: 'contract', rationale: 'Config listing is a stable read-only contract.' },
40
+ { commandPath: 'config:get', strategy: 'contract', rationale: 'Config key retrieval is a stable scriptable surface.' },
41
+ { commandPath: 'config:set', strategy: 'contract', rationale: 'Config writes can be asserted directly against temporary config fixtures.' },
42
+ { commandPath: 'config:unset', strategy: 'contract', rationale: 'Config key removal is deterministic with temporary config fixtures.' },
43
+ { commandPath: 'config:reset', strategy: 'contract', rationale: 'Reset behavior is deterministic once prompts are bypassed in tests.' },
44
+ { commandPath: 'config:edit', strategy: 'exception', rationale: 'This command delegates to an external editor process and only needs focused environment-sensitive coverage.' },
45
+ { commandPath: 'config:profile', strategy: 'contract', rationale: 'Profile inspection is scriptable and deterministic.' },
46
+ { commandPath: 'schema:which', strategy: 'contract', rationale: 'Schema resolution is deterministic with fixture directories.' },
47
+ { commandPath: 'schema:validate', strategy: 'contract', rationale: 'Schema validation produces deterministic reports from fixture inputs.' },
48
+ { commandPath: 'schema:fork', strategy: 'contract', rationale: 'Schema fork output is a filesystem contract that can be asserted directly.' },
49
+ { commandPath: 'schema:init', strategy: 'contract', rationale: 'Schema initialization is deterministic over temporary workspaces.' },
50
+ { commandPath: 'sdd:init', strategy: 'spawned-e2e', rationale: 'SDD init seeds canonical state and generated views, so it should keep lifecycle smoke coverage.' },
51
+ { commandPath: 'sdd:init-context', strategy: 'spawned-e2e', rationale: 'Context bootstrap reads repository structure and writes canonical state, which benefits from spawned smoke coverage.' },
52
+ { commandPath: 'sdd:fingerprint', strategy: 'contract', rationale: 'Fingerprint backfill is a deterministic batch operation over change fixtures.' },
53
+ { commandPath: 'sdd:insight', strategy: 'spawned-e2e', rationale: 'Insight creation is the first discovery lifecycle write and should stay covered in spawned flow tests.' },
54
+ { commandPath: 'sdd:ingest-deposito', strategy: 'spawned-e2e', rationale: 'Ingestion coordinates discovery inputs, indexing, and trail generation across filesystem boundaries.' },
55
+ { commandPath: 'sdd:debate', strategy: 'spawned-e2e', rationale: 'Debate creation is part of the canonical discovery lifecycle and should stay in end-to-end smoke scope.' },
56
+ { commandPath: 'sdd:decide', strategy: 'spawned-e2e', rationale: 'Decide changes discovery state and promotes artifacts across lifecycle stages.' },
57
+ { commandPath: 'sdd:breakdown', strategy: 'spawned-e2e', rationale: 'Breakdown materializes executable FEAT workspaces and needs lifecycle smoke coverage.' },
58
+ { commandPath: 'sdd:mcp-manifest', strategy: 'contract', rationale: 'Manifest rendering is deterministic and provider-profile driven.' },
59
+ { commandPath: 'sdd:mcp-call', strategy: 'contract', rationale: 'The MCP bridge reuses canonical services and is best guarded with direct contract assertions.' },
60
+ { commandPath: 'sdd:start', strategy: 'spawned-e2e', rationale: 'Start transitions planned work into active execution and is a core lifecycle boundary.' },
61
+ { commandPath: 'sdd:frontend-impact', strategy: 'spawned-e2e', rationale: 'Frontend impact is a required lifecycle declaration that should remain part of spawned finalize-path smoke.' },
62
+ { commandPath: 'sdd:finalize', strategy: 'spawned-e2e', rationale: 'Finalize is the highest-risk lifecycle transition and must keep spawned smoke coverage.' },
63
+ { commandPath: 'sdd:context', strategy: 'contract', rationale: 'Context output is deterministic once workspace state is prepared.' },
64
+ { commandPath: 'sdd:onboard', strategy: 'contract', rationale: 'Onboard is a read-oriented guidance surface with deterministic ranking output.' },
65
+ { commandPath: 'sdd:aprovar', strategy: 'contract', rationale: 'Approval transitions are deterministic and fit fixture-driven lifecycle assertions.' },
66
+ { commandPath: 'sdd:next', strategy: 'contract', rationale: 'Next is ranking logic over canonical state and is naturally contract-testable.' },
67
+ { commandPath: 'sdd:audit', strategy: 'contract', rationale: 'Audit is a deterministic report over canonical state.' },
68
+ { commandPath: 'sdd:check', strategy: 'contract', rationale: 'Check is a deterministic health summary with strict output contracts.' },
69
+ { commandPath: 'sdd:rebuild', strategy: 'spawned-e2e', rationale: 'Rebuild reconstructs canonical state from filesystem artifacts and needs real-bin recovery smoke coverage.' },
70
+ { commandPath: 'sdd:metrics', strategy: 'spawned-e2e', rationale: 'Metrics aggregate transition-log lifecycle data and should keep real-bin smoke coverage for reporting windows.' },
71
+ { commandPath: 'sdd:dedup', strategy: 'spawned-e2e', rationale: 'Dedup apply reconciles historical warning_links across canonical state and needs real-bin mutation smoke coverage.' },
72
+ { commandPath: 'sdd:lint:feature', strategy: 'spawned-e2e', rationale: 'Feature lint evaluates workspace scope heuristics and should keep real-bin smoke coverage for strict/non-strict behavior.' },
73
+ { commandPath: 'sdd:migrate', strategy: 'contract', rationale: 'Migration planning and reporting are deterministic over fixture state.' },
74
+ { commandPath: 'sdd:migrate-workspace', strategy: 'contract', rationale: 'Workspace migration is deterministic and already aligns with fixture-based validation.' },
75
+ { commandPath: 'sdd:import-openspec', strategy: 'spawned-e2e', rationale: 'Legacy import crosses filesystem and generated-state boundaries, so a spawned smoke path is valuable.' },
76
+ { commandPath: 'sdd:skills:bundles', strategy: 'contract', rationale: 'Bundle listing is a stable read-only catalog contract.' },
77
+ { commandPath: 'sdd:skills:sync', strategy: 'contract', rationale: 'Skill sync can be asserted directly against temporary memory roots and tool targets.' },
78
+ { commandPath: 'sdd:skills:suggest', strategy: 'contract', rationale: 'Suggestion ranking is deterministic over the catalog state.' },
79
+ { commandPath: 'sdd:skills:usar', strategy: 'contract', rationale: 'Prompt assembly is deterministic over selected skill inputs and workspace context.' },
80
+ { commandPath: 'sdd:diagnose', strategy: 'contract', rationale: 'Diagnose emits deterministic structural findings and is suited to direct contract coverage.' },
81
+ { commandPath: 'sdd:scan-naming', strategy: 'contract', rationale: 'Naming-contract scan emits deterministic violations over tracked files.' },
82
+ { commandPath: 'sdd:sanitize:rollback', strategy: 'contract', rationale: 'Rollback behavior is deterministic over sanitizer manifests.' },
83
+ { commandPath: 'sdd:fgap:add', strategy: 'contract', rationale: 'Frontend gap recording is a deterministic state write.' },
84
+ { commandPath: 'sdd:fgap:done', strategy: 'contract', rationale: 'Frontend gap closure is deterministic over canonical state.' },
85
+ { commandPath: 'validate', strategy: 'contract', rationale: 'Top-level validation already exposes deterministic reports for fixture-driven contract tests.' },
86
+ { commandPath: 'show', strategy: 'contract', rationale: 'Top-level show is a deterministic wrapper over change/spec rendering contracts.' },
87
+ { commandPath: 'feedback', strategy: 'contract', rationale: 'Feedback command behavior is a stable CLI contract with explicit output.' },
88
+ { commandPath: 'completion:generate', strategy: 'contract', rationale: 'Completion script generation is deterministic and scriptable.' },
89
+ { commandPath: 'completion:install', strategy: 'spawned-e2e', rationale: 'Shell completion installation touches user-shell integration and should keep spawned smoke coverage.' },
90
+ { commandPath: 'completion:uninstall', strategy: 'spawned-e2e', rationale: 'Shell completion removal is integration-sensitive and belongs in spawned smoke coverage.' },
91
+ { commandPath: '__complete', strategy: 'contract', rationale: 'Machine-readable completion output is deterministic and should stay under direct contract assertions.' },
92
+ { commandPath: 'status', strategy: 'contract', rationale: 'Status is a deterministic report over workflow artifacts.' },
93
+ { commandPath: 'instructions', strategy: 'contract', rationale: 'Instruction rendering is deterministic over known artifacts and schemas.' },
94
+ { commandPath: 'templates', strategy: 'contract', rationale: 'Template resolution is a stable scriptable contract.' },
95
+ { commandPath: 'schemas', strategy: 'contract', rationale: 'Schema listing is a deterministic read-only surface.' },
96
+ { commandPath: 'new:change', strategy: 'spawned-e2e', rationale: 'Change creation writes scaffolded workflow artifacts and should retain spawned smoke coverage.' },
97
+ ];
98
+ export function validateCliCommandMatrix(program) {
99
+ const leafCommands = collectCliLeafCommands(program).sort((left, right) => left.commandPath.localeCompare(right.commandPath));
100
+ const leafPaths = new Set(leafCommands.map((entry) => entry.commandPath));
101
+ const seen = new Set();
102
+ const duplicateEntries = CLI_COMMAND_MATRIX.filter((entry) => {
103
+ if (seen.has(entry.commandPath)) {
104
+ return true;
105
+ }
106
+ seen.add(entry.commandPath);
107
+ return false;
108
+ }).map((entry) => entry.commandPath);
109
+ const matrixPaths = new Set(CLI_COMMAND_MATRIX.map((entry) => entry.commandPath));
110
+ const missingEntries = leafCommands
111
+ .map((entry) => entry.commandPath)
112
+ .filter((commandPath) => !matrixPaths.has(commandPath));
113
+ const extraEntries = CLI_COMMAND_MATRIX
114
+ .map((entry) => entry.commandPath)
115
+ .filter((commandPath) => !leafPaths.has(commandPath));
116
+ return {
117
+ leafCommands,
118
+ duplicateEntries,
119
+ missingEntries,
120
+ extraEntries,
121
+ };
122
+ }
123
+ //# sourceMappingURL=command-matrix.js.map
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Amazon Q Developer Command Adapter
3
+ *
4
+ * Formats commands for Amazon Q Developer following its frontmatter specification.
5
+ */
6
+ import type { ToolCommandAdapter } from '../types.js';
7
+ /**
8
+ * Amazon Q adapter for command generation.
9
+ * File path: .amazonq/prompts/opsx-<id>.md
10
+ * Frontmatter: description
11
+ */
12
+ export declare const amazonQAdapter: ToolCommandAdapter;
13
+ //# sourceMappingURL=amazon-q.d.ts.map
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Amazon Q Developer Command Adapter
3
+ *
4
+ * Formats commands for Amazon Q Developer following its frontmatter specification.
5
+ */
6
+ import path from 'path';
7
+ /**
8
+ * Amazon Q adapter for command generation.
9
+ * File path: .amazonq/prompts/opsx-<id>.md
10
+ * Frontmatter: description
11
+ */
12
+ export const amazonQAdapter = {
13
+ toolId: 'amazon-q',
14
+ getFilePath(commandId) {
15
+ return path.join('.amazonq', 'prompts', `opsx-${commandId}.md`);
16
+ },
17
+ formatFile(content) {
18
+ return `---
19
+ description: ${content.description}
20
+ ---
21
+
22
+ ${content.body}
23
+ `;
24
+ },
25
+ };
26
+ //# sourceMappingURL=amazon-q.js.map
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Antigravity Command Adapter
3
+ *
4
+ * Formats commands for Antigravity following its frontmatter specification.
5
+ */
6
+ import type { ToolCommandAdapter } from '../types.js';
7
+ /**
8
+ * Antigravity adapter for command generation.
9
+ * File path: .agent/workflows/opsx-<id>.md
10
+ * Frontmatter: description
11
+ */
12
+ export declare const antigravityAdapter: ToolCommandAdapter;
13
+ //# sourceMappingURL=antigravity.d.ts.map
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Antigravity Command Adapter
3
+ *
4
+ * Formats commands for Antigravity following its frontmatter specification.
5
+ */
6
+ import path from 'path';
7
+ /**
8
+ * Antigravity adapter for command generation.
9
+ * File path: .agent/workflows/opsx-<id>.md
10
+ * Frontmatter: description
11
+ */
12
+ export const antigravityAdapter = {
13
+ toolId: 'antigravity',
14
+ getFilePath(commandId) {
15
+ return path.join('.agent', 'workflows', `opsx-${commandId}.md`);
16
+ },
17
+ formatFile(content) {
18
+ return `---
19
+ description: ${content.description}
20
+ ---
21
+
22
+ ${content.body}
23
+ `;
24
+ },
25
+ };
26
+ //# sourceMappingURL=antigravity.js.map
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Auggie (Augment CLI) Command Adapter
3
+ *
4
+ * Formats commands for Auggie following its frontmatter specification.
5
+ */
6
+ import type { ToolCommandAdapter } from '../types.js';
7
+ /**
8
+ * Auggie adapter for command generation.
9
+ * File path: .augment/commands/opsx-<id>.md
10
+ * Frontmatter: description, argument-hint
11
+ */
12
+ export declare const auggieAdapter: ToolCommandAdapter;
13
+ //# sourceMappingURL=auggie.d.ts.map
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Auggie (Augment CLI) Command Adapter
3
+ *
4
+ * Formats commands for Auggie following its frontmatter specification.
5
+ */
6
+ import path from 'path';
7
+ /**
8
+ * Auggie adapter for command generation.
9
+ * File path: .augment/commands/opsx-<id>.md
10
+ * Frontmatter: description, argument-hint
11
+ */
12
+ export const auggieAdapter = {
13
+ toolId: 'auggie',
14
+ getFilePath(commandId) {
15
+ return path.join('.augment', 'commands', `opsx-${commandId}.md`);
16
+ },
17
+ formatFile(content) {
18
+ return `---
19
+ description: ${content.description}
20
+ argument-hint: command arguments
21
+ ---
22
+
23
+ ${content.body}
24
+ `;
25
+ },
26
+ };
27
+ //# sourceMappingURL=auggie.js.map
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Claude Code Command Adapter
3
+ *
4
+ * Formats commands for Claude Code following its frontmatter specification.
5
+ */
6
+ import type { ToolCommandAdapter } from '../types.js';
7
+ /**
8
+ * Claude Code adapter for command generation.
9
+ * File path: .claude/commands/opsx/<id>.md
10
+ * Frontmatter: name, description, category, tags
11
+ */
12
+ export declare const claudeAdapter: ToolCommandAdapter;
13
+ //# sourceMappingURL=claude.d.ts.map
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Claude Code Command Adapter
3
+ *
4
+ * Formats commands for Claude Code following its frontmatter specification.
5
+ */
6
+ import path from 'path';
7
+ /**
8
+ * Escapes a string value for safe YAML output.
9
+ * Quotes the string if it contains special YAML characters.
10
+ */
11
+ function escapeYamlValue(value) {
12
+ // Check if value needs quoting (contains special YAML characters or starts/ends with whitespace)
13
+ const needsQuoting = /[:\n\r#{}[\],&*!|>'"%@`]|^\s|\s$/.test(value);
14
+ if (needsQuoting) {
15
+ // Use double quotes and escape internal double quotes and backslashes
16
+ const escaped = value.replace(/\\/g, '\\\\').replace(/"/g, '\\"').replace(/\n/g, '\\n');
17
+ return `"${escaped}"`;
18
+ }
19
+ return value;
20
+ }
21
+ /**
22
+ * Formats a tags array as a YAML array with proper escaping.
23
+ */
24
+ function formatTagsArray(tags) {
25
+ const escapedTags = tags.map((tag) => escapeYamlValue(tag));
26
+ return `[${escapedTags.join(', ')}]`;
27
+ }
28
+ /**
29
+ * Claude Code adapter for command generation.
30
+ * File path: .claude/commands/opsx/<id>.md
31
+ * Frontmatter: name, description, category, tags
32
+ */
33
+ export const claudeAdapter = {
34
+ toolId: 'claude',
35
+ getFilePath(commandId) {
36
+ return path.join('.claude', 'commands', 'opsx', `${commandId}.md`);
37
+ },
38
+ formatFile(content) {
39
+ return `---
40
+ name: ${escapeYamlValue(content.name)}
41
+ description: ${escapeYamlValue(content.description)}
42
+ category: ${escapeYamlValue(content.category)}
43
+ tags: ${formatTagsArray(content.tags)}
44
+ ---
45
+
46
+ ${content.body}
47
+ `;
48
+ },
49
+ };
50
+ //# sourceMappingURL=claude.js.map
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Cline Command Adapter
3
+ *
4
+ * Formats commands for Cline following its workflow specification.
5
+ * Cline uses markdown headers instead of YAML frontmatter.
6
+ */
7
+ import type { ToolCommandAdapter } from '../types.js';
8
+ /**
9
+ * Cline adapter for command generation.
10
+ * File path: .clinerules/workflows/opsx-<id>.md
11
+ * Format: Markdown header with description
12
+ */
13
+ export declare const clineAdapter: ToolCommandAdapter;
14
+ //# sourceMappingURL=cline.d.ts.map
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Cline Command Adapter
3
+ *
4
+ * Formats commands for Cline following its workflow specification.
5
+ * Cline uses markdown headers instead of YAML frontmatter.
6
+ */
7
+ import path from 'path';
8
+ /**
9
+ * Cline adapter for command generation.
10
+ * File path: .clinerules/workflows/opsx-<id>.md
11
+ * Format: Markdown header with description
12
+ */
13
+ export const clineAdapter = {
14
+ toolId: 'cline',
15
+ getFilePath(commandId) {
16
+ return path.join('.clinerules', 'workflows', `opsx-${commandId}.md`);
17
+ },
18
+ formatFile(content) {
19
+ return `# ${content.name}
20
+
21
+ ${content.description}
22
+
23
+ ${content.body}
24
+ `;
25
+ },
26
+ };
27
+ //# sourceMappingURL=cline.js.map
@@ -0,0 +1,13 @@
1
+ /**
2
+ * CodeBuddy Command Adapter
3
+ *
4
+ * Formats commands for CodeBuddy following its frontmatter specification.
5
+ */
6
+ import type { ToolCommandAdapter } from '../types.js';
7
+ /**
8
+ * CodeBuddy adapter for command generation.
9
+ * File path: .codebuddy/commands/opsx/<id>.md
10
+ * Frontmatter: name, description, argument-hint
11
+ */
12
+ export declare const codebuddyAdapter: ToolCommandAdapter;
13
+ //# sourceMappingURL=codebuddy.d.ts.map
@@ -0,0 +1,28 @@
1
+ /**
2
+ * CodeBuddy Command Adapter
3
+ *
4
+ * Formats commands for CodeBuddy following its frontmatter specification.
5
+ */
6
+ import path from 'path';
7
+ /**
8
+ * CodeBuddy adapter for command generation.
9
+ * File path: .codebuddy/commands/opsx/<id>.md
10
+ * Frontmatter: name, description, argument-hint
11
+ */
12
+ export const codebuddyAdapter = {
13
+ toolId: 'codebuddy',
14
+ getFilePath(commandId) {
15
+ return path.join('.codebuddy', 'commands', 'opsx', `${commandId}.md`);
16
+ },
17
+ formatFile(content) {
18
+ return `---
19
+ name: ${content.name}
20
+ description: "${content.description}"
21
+ argument-hint: "[command arguments]"
22
+ ---
23
+
24
+ ${content.body}
25
+ `;
26
+ },
27
+ };
28
+ //# sourceMappingURL=codebuddy.js.map
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Codex Command Adapter
3
+ *
4
+ * Formats commands for Codex following its frontmatter specification.
5
+ * Codex custom prompts live in the global home directory (~/.codex/prompts/)
6
+ * and are not shared through the repository. The CODEX_HOME env var can
7
+ * override the default ~/.codex location.
8
+ */
9
+ import type { ToolCommandAdapter } from '../types.js';
10
+ /**
11
+ * Codex adapter for command generation.
12
+ * File path: <CODEX_HOME>/prompts/opsx-<id>.md (absolute, global)
13
+ * Frontmatter: description, argument-hint
14
+ */
15
+ export declare const codexAdapter: ToolCommandAdapter;
16
+ //# sourceMappingURL=codex.d.ts.map
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Codex Command Adapter
3
+ *
4
+ * Formats commands for Codex following its frontmatter specification.
5
+ * Codex custom prompts live in the global home directory (~/.codex/prompts/)
6
+ * and are not shared through the repository. The CODEX_HOME env var can
7
+ * override the default ~/.codex location.
8
+ */
9
+ import os from 'os';
10
+ import path from 'path';
11
+ /**
12
+ * Returns the Codex home directory.
13
+ * Respects the CODEX_HOME env var, defaulting to ~/.codex.
14
+ */
15
+ function getCodexHome() {
16
+ const envHome = process.env.CODEX_HOME?.trim();
17
+ return path.resolve(envHome ? envHome : path.join(os.homedir(), '.codex'));
18
+ }
19
+ /**
20
+ * Codex adapter for command generation.
21
+ * File path: <CODEX_HOME>/prompts/opsx-<id>.md (absolute, global)
22
+ * Frontmatter: description, argument-hint
23
+ */
24
+ export const codexAdapter = {
25
+ toolId: 'codex',
26
+ getFilePath(commandId) {
27
+ return path.join(getCodexHome(), 'prompts', `opsx-${commandId}.md`);
28
+ },
29
+ formatFile(content) {
30
+ return `---
31
+ description: ${content.description}
32
+ argument-hint: command arguments
33
+ ---
34
+
35
+ ${content.body}
36
+ `;
37
+ },
38
+ };
39
+ //# sourceMappingURL=codex.js.map
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Continue Command Adapter
3
+ *
4
+ * Formats commands for Continue following its .prompt specification.
5
+ */
6
+ import type { ToolCommandAdapter } from '../types.js';
7
+ /**
8
+ * Continue adapter for command generation.
9
+ * File path: .continue/prompts/opsx-<id>.prompt
10
+ * Frontmatter: name, description, invokable
11
+ */
12
+ export declare const continueAdapter: ToolCommandAdapter;
13
+ //# sourceMappingURL=continue.d.ts.map
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Continue Command Adapter
3
+ *
4
+ * Formats commands for Continue following its .prompt specification.
5
+ */
6
+ import path from 'path';
7
+ /**
8
+ * Continue adapter for command generation.
9
+ * File path: .continue/prompts/opsx-<id>.prompt
10
+ * Frontmatter: name, description, invokable
11
+ */
12
+ export const continueAdapter = {
13
+ toolId: 'continue',
14
+ getFilePath(commandId) {
15
+ return path.join('.continue', 'prompts', `opsx-${commandId}.prompt`);
16
+ },
17
+ formatFile(content) {
18
+ return `---
19
+ name: opsx-${content.id}
20
+ description: ${content.description}
21
+ invokable: true
22
+ ---
23
+
24
+ ${content.body}
25
+ `;
26
+ },
27
+ };
28
+ //# sourceMappingURL=continue.js.map
@@ -0,0 +1,13 @@
1
+ /**
2
+ * CoStrict Command Adapter
3
+ *
4
+ * Formats commands for CoStrict following its frontmatter specification.
5
+ */
6
+ import type { ToolCommandAdapter } from '../types.js';
7
+ /**
8
+ * CoStrict adapter for command generation.
9
+ * File path: .cospec/openspec/commands/opsx-<id>.md
10
+ * Frontmatter: description, argument-hint
11
+ */
12
+ export declare const costrictAdapter: ToolCommandAdapter;
13
+ //# sourceMappingURL=costrict.d.ts.map
@@ -0,0 +1,27 @@
1
+ /**
2
+ * CoStrict Command Adapter
3
+ *
4
+ * Formats commands for CoStrict following its frontmatter specification.
5
+ */
6
+ import path from 'path';
7
+ /**
8
+ * CoStrict adapter for command generation.
9
+ * File path: .cospec/openspec/commands/opsx-<id>.md
10
+ * Frontmatter: description, argument-hint
11
+ */
12
+ export const costrictAdapter = {
13
+ toolId: 'costrict',
14
+ getFilePath(commandId) {
15
+ return path.join('.cospec', 'openspec', 'commands', `opsx-${commandId}.md`);
16
+ },
17
+ formatFile(content) {
18
+ return `---
19
+ description: "${content.description}"
20
+ argument-hint: command arguments
21
+ ---
22
+
23
+ ${content.body}
24
+ `;
25
+ },
26
+ };
27
+ //# sourceMappingURL=costrict.js.map
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Crush Command Adapter
3
+ *
4
+ * Formats commands for Crush following its frontmatter specification.
5
+ */
6
+ import type { ToolCommandAdapter } from '../types.js';
7
+ /**
8
+ * Crush adapter for command generation.
9
+ * File path: .crush/commands/opsx/<id>.md
10
+ * Frontmatter: name, description, category, tags
11
+ */
12
+ export declare const crushAdapter: ToolCommandAdapter;
13
+ //# sourceMappingURL=crush.d.ts.map
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Crush Command Adapter
3
+ *
4
+ * Formats commands for Crush following its frontmatter specification.
5
+ */
6
+ import path from 'path';
7
+ /**
8
+ * Crush adapter for command generation.
9
+ * File path: .crush/commands/opsx/<id>.md
10
+ * Frontmatter: name, description, category, tags
11
+ */
12
+ export const crushAdapter = {
13
+ toolId: 'crush',
14
+ getFilePath(commandId) {
15
+ return path.join('.crush', 'commands', 'opsx', `${commandId}.md`);
16
+ },
17
+ formatFile(content) {
18
+ const tagsStr = content.tags.join(', ');
19
+ return `---
20
+ name: ${content.name}
21
+ description: ${content.description}
22
+ category: ${content.category}
23
+ tags: [${tagsStr}]
24
+ ---
25
+
26
+ ${content.body}
27
+ `;
28
+ },
29
+ };
30
+ //# sourceMappingURL=crush.js.map
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Cursor Command Adapter
3
+ *
4
+ * Formats commands for Cursor following its frontmatter specification.
5
+ * Cursor uses a different frontmatter format and file naming convention.
6
+ */
7
+ import type { ToolCommandAdapter } from '../types.js';
8
+ /**
9
+ * Cursor adapter for command generation.
10
+ * File path: .cursor/commands/opsx-<id>.md
11
+ * Frontmatter: name (as /opsx-<id>), id, category, description
12
+ */
13
+ export declare const cursorAdapter: ToolCommandAdapter;
14
+ //# sourceMappingURL=cursor.d.ts.map
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Cursor Command Adapter
3
+ *
4
+ * Formats commands for Cursor following its frontmatter specification.
5
+ * Cursor uses a different frontmatter format and file naming convention.
6
+ */
7
+ import path from 'path';
8
+ /**
9
+ * Escapes a string value for safe YAML output.
10
+ * Quotes the string if it contains special YAML characters.
11
+ */
12
+ function escapeYamlValue(value) {
13
+ // Check if value needs quoting (contains special YAML characters or starts/ends with whitespace)
14
+ const needsQuoting = /[:\n\r#{}[\],&*!|>'"%@`]|^\s|\s$/.test(value);
15
+ if (needsQuoting) {
16
+ // Use double quotes and escape internal double quotes and backslashes
17
+ const escaped = value.replace(/\\/g, '\\\\').replace(/"/g, '\\"').replace(/\n/g, '\\n');
18
+ return `"${escaped}"`;
19
+ }
20
+ return value;
21
+ }
22
+ /**
23
+ * Cursor adapter for command generation.
24
+ * File path: .cursor/commands/opsx-<id>.md
25
+ * Frontmatter: name (as /opsx-<id>), id, category, description
26
+ */
27
+ export const cursorAdapter = {
28
+ toolId: 'cursor',
29
+ getFilePath(commandId) {
30
+ return path.join('.cursor', 'commands', `opsx-${commandId}.md`);
31
+ },
32
+ formatFile(content) {
33
+ return `---
34
+ name: /opsx-${content.id}
35
+ id: opsx-${content.id}
36
+ category: ${escapeYamlValue(content.category)}
37
+ description: ${escapeYamlValue(content.description)}
38
+ ---
39
+
40
+ ${content.body}
41
+ `;
42
+ },
43
+ };
44
+ //# sourceMappingURL=cursor.js.map