@devtrack-solution/codesdd 1.2.2 → 1.2.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 (345) hide show
  1. package/.sdd/skills/curated/api-clean-flask-langgraph/SKILL.md +17 -17
  2. package/.sdd/skills/curated/devtrack-api/SKILL.md +160 -28
  3. package/.sdd/skills/curated/devtrack-api/agents/openai.yaml +1 -1
  4. package/.sdd/skills/curated/devtrack-api/references/architecture-governance.md +8 -7
  5. package/.sdd/skills/curated/devtrack-api/references/consumer-sync-policy.md +93 -0
  6. package/.sdd/skills/curated/devtrack-api/references/contract-pack.yaml +317 -0
  7. package/.sdd/skills/curated/devtrack-api/references/field-validation-protocol.md +95 -0
  8. package/.sdd/skills/curated/devtrack-api/references/foundation-layout.md +295 -0
  9. package/.sdd/skills/curated/devtrack-api/references/implementation-checklist.md +4 -4
  10. package/.sdd/skills/curated/devtrack-api/references/imports-lint.md +4 -0
  11. package/.sdd/skills/curated/devtrack-api/references/testing-validation.md +2 -2
  12. package/LICENSE +1 -1
  13. package/README.md +243 -51
  14. package/bin/codesdd.js +3 -2
  15. package/dist/cli/index.d.ts +2 -2
  16. package/dist/cli/index.js +11 -558
  17. package/dist/cli/program.d.ts +14 -0
  18. package/dist/cli/program.js +645 -0
  19. package/dist/commands/change.js +5 -5
  20. package/dist/commands/completion.d.ts +1 -1
  21. package/dist/commands/completion.js +9 -2
  22. package/dist/commands/config.js +159 -20
  23. package/dist/commands/feedback.js +1 -1
  24. package/dist/commands/schema.d.ts +63 -0
  25. package/dist/commands/schema.js +12 -12
  26. package/dist/commands/sdd/backlog.d.ts +3 -0
  27. package/dist/commands/sdd/backlog.js +54 -0
  28. package/dist/commands/sdd/execution.js +147 -16
  29. package/dist/commands/sdd/plugin.d.ts +3 -0
  30. package/dist/commands/sdd/plugin.js +153 -0
  31. package/dist/commands/sdd/shared.js +2 -23
  32. package/dist/commands/sdd/skills.js +7 -0
  33. package/dist/commands/sdd.js +69 -12
  34. package/dist/commands/spec.js +9 -9
  35. package/dist/commands/validate.js +6 -6
  36. package/dist/commands/workflow/instructions.js +6 -6
  37. package/dist/commands/workflow/new-change.js +3 -3
  38. package/dist/commands/workflow/shared.d.ts +1 -1
  39. package/dist/commands/workflow/shared.js +4 -4
  40. package/dist/core/archive.js +15 -5
  41. package/dist/core/artifact-graph/instruction-loader.d.ts +1 -1
  42. package/dist/core/artifact-graph/instruction-loader.js +3 -3
  43. package/dist/core/artifact-graph/resolver.d.ts +4 -4
  44. package/dist/core/artifact-graph/resolver.js +6 -6
  45. package/dist/core/branding.js +3 -3
  46. package/dist/core/cli/command-matrix.js +10 -1
  47. package/dist/core/cli-command-quality.d.ts +27 -0
  48. package/dist/core/cli-command-quality.js +171 -0
  49. package/dist/core/command-generation/adapters/costrict.d.ts +1 -1
  50. package/dist/core/command-generation/adapters/costrict.js +2 -2
  51. package/dist/core/command-generation/types.d.ts +1 -1
  52. package/dist/core/completions/command-registry.d.ts +1 -1
  53. package/dist/core/completions/command-registry.js +155 -12
  54. package/dist/core/completions/completion-provider.d.ts +14 -1
  55. package/dist/core/completions/completion-provider.js +29 -1
  56. package/dist/core/completions/generators/bash-generator.d.ts +1 -1
  57. package/dist/core/completions/generators/bash-generator.js +20 -12
  58. package/dist/core/completions/generators/fish-generator.d.ts +9 -1
  59. package/dist/core/completions/generators/fish-generator.js +39 -25
  60. package/dist/core/completions/generators/powershell-generator.d.ts +1 -1
  61. package/dist/core/completions/generators/powershell-generator.js +21 -11
  62. package/dist/core/completions/generators/zsh-generator.d.ts +3 -6
  63. package/dist/core/completions/generators/zsh-generator.js +21 -42
  64. package/dist/core/completions/installers/bash-installer.js +6 -6
  65. package/dist/core/completions/installers/fish-installer.js +1 -1
  66. package/dist/core/completions/installers/powershell-installer.js +14 -14
  67. package/dist/core/completions/installers/zsh-installer.d.ts +7 -1
  68. package/dist/core/completions/installers/zsh-installer.js +36 -8
  69. package/dist/core/completions/templates/bash-templates.d.ts +1 -1
  70. package/dist/core/completions/templates/bash-templates.js +12 -6
  71. package/dist/core/completions/templates/fish-templates.d.ts +2 -2
  72. package/dist/core/completions/templates/fish-templates.js +20 -9
  73. package/dist/core/completions/templates/powershell-templates.d.ts +1 -1
  74. package/dist/core/completions/templates/powershell-templates.js +13 -4
  75. package/dist/core/completions/templates/zsh-templates.d.ts +1 -1
  76. package/dist/core/completions/templates/zsh-templates.js +18 -9
  77. package/dist/core/config-schema.d.ts +3 -1
  78. package/dist/core/config-schema.js +26 -1
  79. package/dist/core/config.d.ts +3 -3
  80. package/dist/core/config.js +4 -4
  81. package/dist/core/global-config.d.ts +41 -12
  82. package/dist/core/global-config.js +344 -27
  83. package/dist/core/index.d.ts +1 -1
  84. package/dist/core/index.js +2 -2
  85. package/dist/core/init.d.ts +6 -1
  86. package/dist/core/init.js +99 -77
  87. package/dist/core/legacy-cleanup.d.ts +17 -17
  88. package/dist/core/legacy-cleanup.js +96 -79
  89. package/dist/core/list.js +18 -4
  90. package/dist/core/migration.d.ts +3 -1
  91. package/dist/core/migration.js +7 -8
  92. package/dist/core/parsers/change-parser.js +1 -1
  93. package/dist/core/parsers/markdown-parser.js +2 -2
  94. package/dist/core/profile-sync-drift.d.ts +1 -1
  95. package/dist/core/profile-sync-drift.js +13 -13
  96. package/dist/core/project-config.d.ts +4 -4
  97. package/dist/core/project-config.js +11 -11
  98. package/dist/core/schemas/change.schema.d.ts +1 -1
  99. package/dist/core/schemas/change.schema.js +1 -1
  100. package/dist/core/schemas/spec.schema.d.ts +1 -1
  101. package/dist/core/schemas/spec.schema.js +1 -1
  102. package/dist/core/sdd/adr.js +23 -1
  103. package/dist/core/sdd/agent-binding.d.ts +346 -0
  104. package/dist/core/sdd/agent-binding.js +343 -0
  105. package/dist/core/sdd/backlog-cli.d.ts +16 -0
  106. package/dist/core/sdd/backlog-cli.js +146 -0
  107. package/dist/core/sdd/backlog-conflict-policy.d.ts +58 -0
  108. package/dist/core/sdd/backlog-conflict-policy.js +230 -0
  109. package/dist/core/sdd/backlog-projection.d.ts +8 -0
  110. package/dist/core/sdd/backlog-projection.js +89 -0
  111. package/dist/core/sdd/backlog-provider-contract.d.ts +252 -0
  112. package/dist/core/sdd/backlog-provider-contract.js +158 -0
  113. package/dist/core/sdd/bootstrap.js +2 -2
  114. package/dist/core/sdd/check.d.ts +42 -0
  115. package/dist/core/sdd/check.js +22 -22
  116. package/dist/core/sdd/contract.d.ts +13 -0
  117. package/dist/core/sdd/contract.js +36 -0
  118. package/dist/core/sdd/coordination/coordination-adapters.d.ts +38 -0
  119. package/dist/core/sdd/coordination/coordination-adapters.js +139 -1
  120. package/dist/core/sdd/deepagent-contracts.d.ts +276 -0
  121. package/dist/core/sdd/deepagent-contracts.js +173 -0
  122. package/dist/core/sdd/deepagents/adr-governor.d.ts +2 -0
  123. package/dist/core/sdd/deepagents/adr-governor.js +30 -0
  124. package/dist/core/sdd/deepagents/backend.d.ts +63 -0
  125. package/dist/core/sdd/deepagents/backend.js +174 -0
  126. package/dist/core/sdd/deepagents/codesdd-tools.d.ts +39 -0
  127. package/dist/core/sdd/deepagents/codesdd-tools.js +83 -0
  128. package/dist/core/sdd/deepagents/evidence-mapper.d.ts +86 -0
  129. package/dist/core/sdd/deepagents/evidence-mapper.js +178 -0
  130. package/dist/core/sdd/deepagents/model-provider.d.ts +53 -0
  131. package/dist/core/sdd/deepagents/model-provider.js +379 -0
  132. package/dist/core/sdd/deepagents/policy-enforcement.d.ts +30 -0
  133. package/dist/core/sdd/deepagents/policy-enforcement.js +90 -0
  134. package/dist/core/sdd/deepagents/policy.d.ts +75 -0
  135. package/dist/core/sdd/deepagents/policy.js +358 -0
  136. package/dist/core/sdd/deepagents/quality-witness.d.ts +3 -0
  137. package/dist/core/sdd/deepagents/quality-witness.js +77 -0
  138. package/dist/core/sdd/deepagents/reversa-subagents.d.ts +75 -0
  139. package/dist/core/sdd/deepagents/reversa-subagents.js +182 -0
  140. package/dist/core/sdd/deepagents/runtime-factory.d.ts +90 -0
  141. package/dist/core/sdd/deepagents/runtime-factory.js +231 -0
  142. package/dist/core/sdd/deepagents/runtime-loader.d.ts +16 -0
  143. package/dist/core/sdd/deepagents/runtime-loader.js +65 -0
  144. package/dist/core/sdd/default-bootstrap-files.d.ts +2 -2
  145. package/dist/core/sdd/default-bootstrap-files.js +36 -2
  146. package/dist/core/sdd/default-skills.d.ts +30 -0
  147. package/dist/core/sdd/default-skills.js +181 -5
  148. package/dist/core/sdd/devtrack-api-appliance.d.ts +84 -0
  149. package/dist/core/sdd/devtrack-api-appliance.js +257 -0
  150. package/dist/core/sdd/devtrack-api-architecture.d.ts +31 -0
  151. package/dist/core/sdd/devtrack-api-architecture.js +608 -0
  152. package/dist/core/sdd/devtrack-api-import-boundary.d.ts +19 -0
  153. package/dist/core/sdd/devtrack-api-import-boundary.js +32 -0
  154. package/dist/core/sdd/diagnose.d.ts +59 -0
  155. package/dist/core/sdd/diagnose.js +37 -37
  156. package/dist/core/sdd/docs-sync.js +33 -5
  157. package/dist/core/sdd/domain/post-active-validation.d.ts +7 -0
  158. package/dist/core/sdd/domain/post-active-validation.js +61 -0
  159. package/dist/core/sdd/domain/transition-engine.js +1 -0
  160. package/dist/core/sdd/entity-reference.d.ts +5 -0
  161. package/dist/core/sdd/entity-reference.js +22 -0
  162. package/dist/core/sdd/governance-backfill.d.ts +31 -0
  163. package/dist/core/sdd/governance-backfill.js +359 -0
  164. package/dist/core/sdd/governance-parser.d.ts +21 -0
  165. package/dist/core/sdd/governance-parser.js +91 -0
  166. package/dist/core/sdd/governance-schemas.d.ts +245 -0
  167. package/dist/core/sdd/governance-schemas.js +143 -0
  168. package/dist/core/sdd/{import-openspec.d.ts → import-legacy-spec.d.ts} +7 -7
  169. package/dist/core/sdd/{import-openspec.js → import-legacy-spec.js} +21 -29
  170. package/dist/core/sdd/init.d.ts +3 -0
  171. package/dist/core/sdd/init.js +6 -3
  172. package/dist/core/sdd/json-schema.js +100 -6
  173. package/dist/core/sdd/knowledge-graph.d.ts +45 -0
  174. package/dist/core/sdd/knowledge-graph.js +288 -0
  175. package/dist/core/sdd/legacy-operations.js +431 -43
  176. package/dist/core/sdd/lenses.d.ts +1 -0
  177. package/dist/core/sdd/lenses.js +29 -1
  178. package/dist/core/sdd/migrate-workspace.js +56 -2
  179. package/dist/core/sdd/migrate.d.ts +1 -1
  180. package/dist/core/sdd/migrate.js +36 -2
  181. package/dist/core/sdd/package-structure-gate.d.ts +83 -0
  182. package/dist/core/sdd/package-structure-gate.js +362 -0
  183. package/dist/core/sdd/parallel-feat-automation.d.ts +152 -0
  184. package/dist/core/sdd/parallel-feat-automation.js +212 -0
  185. package/dist/core/sdd/plugin-broker.d.ts +558 -0
  186. package/dist/core/sdd/plugin-broker.js +482 -0
  187. package/dist/core/sdd/plugin-certification.d.ts +79 -0
  188. package/dist/core/sdd/plugin-certification.js +453 -0
  189. package/dist/core/sdd/plugin-cli.d.ts +109 -0
  190. package/dist/core/sdd/plugin-cli.js +198 -0
  191. package/dist/core/sdd/plugin-evidence.d.ts +275 -0
  192. package/dist/core/sdd/plugin-evidence.js +307 -0
  193. package/dist/core/sdd/plugin-manifest.d.ts +164 -0
  194. package/dist/core/sdd/plugin-manifest.js +215 -0
  195. package/dist/core/sdd/plugin-policy-pack.d.ts +88 -0
  196. package/dist/core/sdd/plugin-policy-pack.js +236 -0
  197. package/dist/core/sdd/plugin-policy.d.ts +68 -0
  198. package/dist/core/sdd/plugin-policy.js +212 -0
  199. package/dist/core/sdd/plugin-registry.d.ts +311 -0
  200. package/dist/core/sdd/plugin-registry.js +138 -0
  201. package/dist/core/sdd/plugin-skill-binding.d.ts +151 -0
  202. package/dist/core/sdd/plugin-skill-binding.js +339 -0
  203. package/dist/core/sdd/quality-artifact-manifest-validator.d.ts +28 -0
  204. package/dist/core/sdd/quality-artifact-manifest-validator.js +167 -0
  205. package/dist/core/sdd/quality-evidence-renderer.d.ts +65 -0
  206. package/dist/core/sdd/quality-evidence-renderer.js +218 -0
  207. package/dist/core/sdd/quality-scenario-runner.d.ts +42 -0
  208. package/dist/core/sdd/quality-scenario-runner.js +613 -0
  209. package/dist/core/sdd/quality-validation.d.ts +547 -0
  210. package/dist/core/sdd/quality-validation.js +239 -0
  211. package/dist/core/sdd/resolve-project-root.d.ts +2 -2
  212. package/dist/core/sdd/resolve-project-root.js +11 -5
  213. package/dist/core/sdd/sanitize.d.ts +30 -1
  214. package/dist/core/sdd/sanitize.js +23 -23
  215. package/dist/core/sdd/services/agent-run.service.d.ts +65 -0
  216. package/dist/core/sdd/services/agent-run.service.js +189 -0
  217. package/dist/core/sdd/services/breakdown.service.js +2 -1
  218. package/dist/core/sdd/services/context.service.js +18 -16
  219. package/dist/core/sdd/services/debate.service.js +15 -2
  220. package/dist/core/sdd/services/feature-lint.service.d.ts +22 -0
  221. package/dist/core/sdd/services/feature-lint.service.js +105 -5
  222. package/dist/core/sdd/services/finalize.service.d.ts +80 -0
  223. package/dist/core/sdd/services/finalize.service.js +323 -24
  224. package/dist/core/sdd/services/frontend-gap.service.js +22 -7
  225. package/dist/core/sdd/services/governance-control-plane-runtime-adapters.d.ts +17 -0
  226. package/dist/core/sdd/services/governance-control-plane-runtime-adapters.js +38 -0
  227. package/dist/core/sdd/services/governance-control-plane.service.d.ts +66 -0
  228. package/dist/core/sdd/services/governance-control-plane.service.js +134 -0
  229. package/dist/core/sdd/services/ingest-deposito.service.js +1 -1
  230. package/dist/core/sdd/services/legacy-capability.service.d.ts +10 -7
  231. package/dist/core/sdd/services/legacy-capability.service.js +38 -21
  232. package/dist/core/sdd/services/mcp-runtime.service.d.ts +123 -8
  233. package/dist/core/sdd/services/mcp-runtime.service.js +1085 -33
  234. package/dist/core/sdd/services/onboard.service.js +2 -1
  235. package/dist/core/sdd/services/rebuild.service.js +6 -1
  236. package/dist/core/sdd/services/skills-sync.service.d.ts +17 -5
  237. package/dist/core/sdd/services/skills-sync.service.js +55 -2
  238. package/dist/core/sdd/services/start.service.js +6 -4
  239. package/dist/core/sdd/skill-bundles-curation-schema.d.ts +66 -0
  240. package/dist/core/sdd/skill-bundles-curation-schema.js +52 -0
  241. package/dist/core/sdd/skill-evidence.d.ts +19 -0
  242. package/dist/core/sdd/skill-evidence.js +38 -0
  243. package/dist/core/sdd/skill-policy-pool.d.ts +46 -0
  244. package/dist/core/sdd/skill-policy-pool.js +185 -0
  245. package/dist/core/sdd/state.d.ts +22 -0
  246. package/dist/core/sdd/state.js +66 -41
  247. package/dist/core/sdd/structural-health.d.ts +42 -42
  248. package/dist/core/sdd/types.d.ts +33 -7
  249. package/dist/core/sdd/types.js +17 -0
  250. package/dist/core/sdd/upgrade-to-codesdd.d.ts +45 -0
  251. package/dist/core/sdd/upgrade-to-codesdd.js +179 -0
  252. package/dist/core/sdd/workspace-schemas.d.ts +285 -14
  253. package/dist/core/sdd/workspace-schemas.js +148 -0
  254. package/dist/core/sdd/write-manifest.js +22 -4
  255. package/dist/core/shared/skill-generation.d.ts +1 -1
  256. package/dist/core/shared/skill-generation.js +15 -15
  257. package/dist/core/shared/tool-detection.d.ts +3 -3
  258. package/dist/core/shared/tool-detection.js +14 -14
  259. package/dist/core/specs-apply.js +6 -6
  260. package/dist/core/templates/index.d.ts +1 -1
  261. package/dist/core/templates/index.js +1 -1
  262. package/dist/core/templates/workflows/apply-change.js +14 -14
  263. package/dist/core/templates/workflows/archive-change.js +32 -32
  264. package/dist/core/templates/workflows/bulk-archive-change.js +25 -25
  265. package/dist/core/templates/workflows/continue-change.js +12 -12
  266. package/dist/core/templates/workflows/explore.js +29 -29
  267. package/dist/core/templates/workflows/feedback.js +6 -6
  268. package/dist/core/templates/workflows/ff-change.js +24 -24
  269. package/dist/core/templates/workflows/new-change.js +20 -20
  270. package/dist/core/templates/workflows/onboard.js +33 -33
  271. package/dist/core/templates/workflows/propose.js +23 -23
  272. package/dist/core/templates/workflows/sdd.js +8 -8
  273. package/dist/core/templates/workflows/sync-specs.js +19 -19
  274. package/dist/core/templates/workflows/verify-change.js +17 -17
  275. package/dist/core/update.d.ts +2 -2
  276. package/dist/core/update.js +16 -15
  277. package/dist/core/validation/constants.d.ts +1 -1
  278. package/dist/core/validation/constants.js +1 -1
  279. package/dist/core/view.js +11 -11
  280. package/dist/telemetry/config.d.ts +2 -1
  281. package/dist/telemetry/config.js +17 -8
  282. package/dist/telemetry/index.d.ts +10 -2
  283. package/dist/telemetry/index.js +40 -7
  284. package/dist/ui/ascii-patterns.d.ts +2 -2
  285. package/dist/ui/ascii-patterns.js +2 -2
  286. package/dist/ui/welcome-screen.js +2 -2
  287. package/dist/utils/change-metadata.d.ts +4 -4
  288. package/dist/utils/change-metadata.js +6 -6
  289. package/dist/utils/change-utils.d.ts +3 -3
  290. package/dist/utils/change-utils.js +5 -5
  291. package/dist/utils/file-system.js +1 -1
  292. package/dist/utils/interactive.js +1 -1
  293. package/dist/utils/item-discovery.js +4 -4
  294. package/dist/utils/legacy-spec-compat.d.ts +2 -0
  295. package/dist/utils/legacy-spec-compat.js +2 -0
  296. package/dist/utils/shell-detection.d.ts +1 -0
  297. package/dist/utils/shell-detection.js +16 -0
  298. package/package.json +27 -17
  299. package/schemas/sdd/1-spec.schema.json +1 -1
  300. package/schemas/sdd/2-plan.schema.json +73 -1
  301. package/schemas/sdd/3-tasks.schema.json +73 -1
  302. package/schemas/sdd/4-changelog.schema.json +1 -1
  303. package/schemas/sdd/5-quality.schema.json +442 -2
  304. package/schemas/sdd/adr.schema.json +148 -0
  305. package/schemas/sdd/agent-binding-adapter.schema.json +210 -0
  306. package/schemas/sdd/agent-binding-resolution.schema.json +338 -0
  307. package/schemas/sdd/backlog-projection-plan.schema.json +180 -0
  308. package/schemas/sdd/backlog-provider-contract.schema.json +260 -0
  309. package/schemas/sdd/codesdd-plugin.schema.json +474 -0
  310. package/schemas/sdd/debate.schema.json +244 -0
  311. package/schemas/sdd/deepagent-decision-evidence.schema.json +58 -0
  312. package/schemas/sdd/deepagent-env-contract.schema.json +143 -0
  313. package/schemas/sdd/deepagent-quality-evidence.schema.json +108 -0
  314. package/schemas/sdd/deepagent-run-evidence.schema.json +192 -0
  315. package/schemas/sdd/deepagent-run-plan.schema.json +197 -0
  316. package/schemas/sdd/deepagent-run-request.schema.json +321 -0
  317. package/schemas/sdd/deepagent-subagent-evidence.schema.json +110 -0
  318. package/schemas/sdd/deepagent-tool-call-evidence.schema.json +78 -0
  319. package/schemas/sdd/discarded.schema.json +127 -0
  320. package/schemas/sdd/epic.schema.json +147 -0
  321. package/schemas/sdd/insight.schema.json +136 -0
  322. package/schemas/sdd/parallel-feat-automation-plan.schema.json +215 -0
  323. package/schemas/sdd/parallel-feat-automation-request.schema.json +109 -0
  324. package/schemas/sdd/plugin-artifact-manifest.schema.json +150 -0
  325. package/schemas/sdd/plugin-compliance-index.schema.json +136 -0
  326. package/schemas/sdd/plugin-dry-run-plan.schema.json +260 -0
  327. package/schemas/sdd/plugin-evidence-manifest.schema.json +569 -0
  328. package/schemas/sdd/plugin-policy-evaluation.schema.json +92 -0
  329. package/schemas/sdd/plugin-policy-pack-evaluation.schema.json +94 -0
  330. package/schemas/sdd/plugin-policy-pack.schema.json +196 -0
  331. package/schemas/sdd/plugin-registry.schema.json +558 -0
  332. package/schemas/sdd/plugin-rollback-manifest.schema.json +87 -0
  333. package/schemas/sdd/plugin-runtime-invocation-plan.schema.json +845 -0
  334. package/schemas/sdd/plugin-skill-binding-resolution.schema.json +305 -0
  335. package/schemas/sdd/plugin-skill-binding.schema.json +88 -0
  336. package/schemas/sdd/plugin-validation-manifest.schema.json +123 -0
  337. package/schemas/sdd/quality-architecture-schema.schema.json +216 -0
  338. package/schemas/sdd/quality-evidence-bundle.schema.json +1228 -0
  339. package/schemas/sdd/quality-run.schema.json +197 -0
  340. package/schemas/sdd/quality-scenario.schema.json +252 -0
  341. package/schemas/sdd/workspace-catalog.schema.json +9841 -22
  342. package/schemas/spec-driven/schema.yaml +4 -4
  343. package/schemas/spec-driven/templates/proposal.md +1 -1
  344. package/dist/utils/openspec-compat.d.ts +0 -2
  345. package/dist/utils/openspec-compat.js +0 -2
@@ -2,7 +2,7 @@ import { promises as fs } from 'node:fs';
2
2
  import path from 'node:path';
3
3
  import { RootResolver } from './root-resolver.js';
4
4
  import { loadProjectSddConfig, resolveSddPaths } from './state.js';
5
- import { parseWorkspaceYamlDocument, workspaceSchemaForFile } from './workspace-schemas.js';
5
+ import { parsePromptAssetYamlDocument, parseWorkspaceYamlDocument, workspaceSchemaForFile } from './workspace-schemas.js';
6
6
  export class SddWritePolicyError extends Error {
7
7
  constructor(message) {
8
8
  super(message);
@@ -276,10 +276,13 @@ function validateTemplatesPath(operation, policyPath, segments, label) {
276
276
  return;
277
277
  throw policyError(label, operation, policyPath, 'templates root may only be created as a directory');
278
278
  }
279
- if (segments.length === 2 && /\.(md|ya?ml)$/.test(segments[1]) && operation.type !== 'mkdir') {
279
+ if (segments.length === 2 && operation.type === 'delete' && segments[1].endsWith('.md')) {
280
280
  return;
281
281
  }
282
- throw policyError(label, operation, policyPath, 'templates accepts .md/.yaml files directly under root');
282
+ if (segments.length === 2 && /\.ya?ml$/.test(segments[1]) && operation.type !== 'mkdir') {
283
+ return;
284
+ }
285
+ throw policyError(label, operation, policyPath, 'templates accepts YAML files directly under root; Markdown templates may only be deleted during cleanup');
283
286
  }
284
287
  function validateSkillsPath(operation, policyPath, segments, label) {
285
288
  if (segments.length === 1) {
@@ -315,10 +318,16 @@ function validatePromptsPath(operation, policyPath, segments, label) {
315
318
  return;
316
319
  throw policyError(label, operation, policyPath, 'prompts root may only be created as a directory');
317
320
  }
321
+ if (segments.length === 3 && segments[1] === 'assets' && segments[2].endsWith('.yaml') && operation.type !== 'mkdir') {
322
+ if (operation.type === 'write') {
323
+ validatePromptAssetYamlContent(operation.content, label, operation, policyPath);
324
+ }
325
+ return;
326
+ }
318
327
  if (segments.length === 2 && segments[1].endsWith('.md') && operation.type !== 'mkdir') {
319
328
  return;
320
329
  }
321
- throw policyError(label, operation, policyPath, 'prompts accepts markdown files directly under root');
330
+ throw policyError(label, operation, policyPath, 'prompts accepts markdown files directly under root and YAML assets under prompts/assets/');
322
331
  }
323
332
  function validateSourcesPath(operation, policyPath, segments, label) {
324
333
  if (segments.length === 1) {
@@ -350,4 +359,13 @@ function validateWorkspaceYamlContent(content, fileName, label, operation, polic
350
359
  throw policyError(label, operation, policyPath, `workspace YAML schema validation failed: ${message}`);
351
360
  }
352
361
  }
362
+ function validatePromptAssetYamlContent(content, label, operation, policyPath) {
363
+ try {
364
+ parsePromptAssetYamlDocument(content);
365
+ }
366
+ catch (err) {
367
+ const message = err instanceof Error ? err.message : String(err);
368
+ throw policyError(label, operation, policyPath, `prompt asset YAML schema validation failed: ${message}`);
369
+ }
370
+ }
353
371
  //# sourceMappingURL=write-manifest.js.map
@@ -42,7 +42,7 @@ export declare function getCommandContents(workflowFilter?: readonly string[]):
42
42
  * Generates skill file content with YAML frontmatter.
43
43
  *
44
44
  * @param template - The skill template
45
- * @param generatedByVersion - The OpenSpec version to embed in the file
45
+ * @param generatedByVersion - The CodeSDD version to embed in the file
46
46
  * @param transformInstructions - Optional callback to transform the instructions content
47
47
  */
48
48
  export declare function generateSkillContent(template: SkillTemplate, generatedByVersion: string, transformInstructions?: (instructions: string) => string): string;
@@ -18,18 +18,18 @@ function ensurePtBrGuardrail(content) {
18
18
  */
19
19
  export function getSkillTemplates(workflowFilter) {
20
20
  const all = [
21
- { template: getExploreSkillTemplate(), dirName: 'openspec-explore', workflowId: 'explore' },
22
- { template: getNewChangeSkillTemplate(), dirName: 'openspec-new-change', workflowId: 'new' },
23
- { template: getContinueChangeSkillTemplate(), dirName: 'openspec-continue-change', workflowId: 'continue' },
24
- { template: getApplyChangeSkillTemplate(), dirName: 'openspec-apply-change', workflowId: 'apply' },
25
- { template: getFfChangeSkillTemplate(), dirName: 'openspec-ff-change', workflowId: 'ff' },
26
- { template: getSyncSpecsSkillTemplate(), dirName: 'openspec-sync-specs', workflowId: 'sync' },
27
- { template: getArchiveChangeSkillTemplate(), dirName: 'openspec-archive-change', workflowId: 'archive' },
28
- { template: getBulkArchiveChangeSkillTemplate(), dirName: 'openspec-bulk-archive-change', workflowId: 'bulk-archive' },
29
- { template: getVerifyChangeSkillTemplate(), dirName: 'openspec-verify-change', workflowId: 'verify' },
30
- { template: getOnboardSkillTemplate(), dirName: 'openspec-onboard', workflowId: 'onboard' },
31
- { template: getOpsxProposeSkillTemplate(), dirName: 'openspec-propose', workflowId: 'propose' },
32
- { template: getSddSkillTemplate(), dirName: 'openspec-sdd', workflowId: 'sdd' },
21
+ { template: getExploreSkillTemplate(), dirName: 'codesdd-explore', workflowId: 'explore' },
22
+ { template: getNewChangeSkillTemplate(), dirName: 'codesdd-new-change', workflowId: 'new' },
23
+ { template: getContinueChangeSkillTemplate(), dirName: 'codesdd-continue-change', workflowId: 'continue' },
24
+ { template: getApplyChangeSkillTemplate(), dirName: 'codesdd-apply-change', workflowId: 'apply' },
25
+ { template: getFfChangeSkillTemplate(), dirName: 'codesdd-ff-change', workflowId: 'ff' },
26
+ { template: getSyncSpecsSkillTemplate(), dirName: 'codesdd-sync-specs', workflowId: 'sync' },
27
+ { template: getArchiveChangeSkillTemplate(), dirName: 'codesdd-archive-change', workflowId: 'archive' },
28
+ { template: getBulkArchiveChangeSkillTemplate(), dirName: 'codesdd-bulk-archive-change', workflowId: 'bulk-archive' },
29
+ { template: getVerifyChangeSkillTemplate(), dirName: 'codesdd-verify-change', workflowId: 'verify' },
30
+ { template: getOnboardSkillTemplate(), dirName: 'codesdd-onboard', workflowId: 'onboard' },
31
+ { template: getOpsxProposeSkillTemplate(), dirName: 'codesdd-propose', workflowId: 'propose' },
32
+ { template: getSddSkillTemplate(), dirName: 'codesdd-sdd', workflowId: 'sdd' },
33
33
  ];
34
34
  if (!workflowFilter)
35
35
  return all;
@@ -81,7 +81,7 @@ export function getCommandContents(workflowFilter) {
81
81
  * Generates skill file content with YAML frontmatter.
82
82
  *
83
83
  * @param template - The skill template
84
- * @param generatedByVersion - The OpenSpec version to embed in the file
84
+ * @param generatedByVersion - The CodeSDD version to embed in the file
85
85
  * @param transformInstructions - Optional callback to transform the instructions content
86
86
  */
87
87
  export function generateSkillContent(template, generatedByVersion, transformInstructions) {
@@ -93,9 +93,9 @@ export function generateSkillContent(template, generatedByVersion, transformInst
93
93
  name: ${template.name}
94
94
  description: ${template.description}
95
95
  license: ${template.license || 'MIT'}
96
- compatibility: ${template.compatibility || 'Requires opensdd CLI.'}
96
+ compatibility: ${template.compatibility || 'Requires codesdd CLI.'}
97
97
  metadata:
98
- author: ${template.metadata?.author || 'openspec'}
98
+ author: ${template.metadata?.author || 'codesdd'}
99
99
  version: "${template.metadata?.version || '1.0'}"
100
100
  generatedBy: "${generatedByVersion}"
101
101
  ---
@@ -4,12 +4,12 @@
4
4
  * Shared utilities for detecting tool configurations and version status.
5
5
  */
6
6
  /**
7
- * Names of skill directories created by openspec init.
7
+ * Names of skill directories created by codesdd init.
8
8
  */
9
- export declare const SKILL_NAMES: readonly ["openspec-explore", "openspec-new-change", "openspec-continue-change", "openspec-apply-change", "openspec-ff-change", "openspec-sync-specs", "openspec-archive-change", "openspec-bulk-archive-change", "openspec-verify-change", "openspec-onboard", "openspec-propose"];
9
+ export declare const SKILL_NAMES: readonly ["codesdd-explore", "codesdd-new-change", "codesdd-continue-change", "codesdd-apply-change", "codesdd-ff-change", "codesdd-sync-specs", "codesdd-archive-change", "codesdd-bulk-archive-change", "codesdd-verify-change", "codesdd-onboard", "codesdd-propose"];
10
10
  export type SkillName = (typeof SKILL_NAMES)[number];
11
11
  /**
12
- * IDs of command templates created by openspec init.
12
+ * IDs of command templates created by codesdd init.
13
13
  */
14
14
  export declare const COMMAND_IDS: readonly ["explore", "new", "continue", "apply", "ff", "sync", "archive", "bulk-archive", "verify", "onboard", "propose"];
15
15
  export type CommandId = (typeof COMMAND_IDS)[number];
@@ -7,23 +7,23 @@ import path from 'path';
7
7
  import * as fs from 'fs';
8
8
  import { AI_TOOLS } from '../config.js';
9
9
  /**
10
- * Names of skill directories created by openspec init.
10
+ * Names of skill directories created by codesdd init.
11
11
  */
12
12
  export const SKILL_NAMES = [
13
- 'openspec-explore',
14
- 'openspec-new-change',
15
- 'openspec-continue-change',
16
- 'openspec-apply-change',
17
- 'openspec-ff-change',
18
- 'openspec-sync-specs',
19
- 'openspec-archive-change',
20
- 'openspec-bulk-archive-change',
21
- 'openspec-verify-change',
22
- 'openspec-onboard',
23
- 'openspec-propose',
13
+ 'codesdd-explore',
14
+ 'codesdd-new-change',
15
+ 'codesdd-continue-change',
16
+ 'codesdd-apply-change',
17
+ 'codesdd-ff-change',
18
+ 'codesdd-sync-specs',
19
+ 'codesdd-archive-change',
20
+ 'codesdd-bulk-archive-change',
21
+ 'codesdd-verify-change',
22
+ 'codesdd-onboard',
23
+ 'codesdd-propose',
24
24
  ];
25
25
  /**
26
- * IDs of command templates created by openspec init.
26
+ * IDs of command templates created by codesdd init.
27
27
  */
28
28
  export const COMMAND_IDS = [
29
29
  'explore',
@@ -92,7 +92,7 @@ export function extractGeneratedByVersion(skillFilePath) {
92
92
  // ---
93
93
  // ...
94
94
  // metadata:
95
- // author: openspec
95
+ // author: codesdd
96
96
  // version: "1.0"
97
97
  // generatedBy: "0.23.0"
98
98
  // ---
@@ -9,7 +9,7 @@ import path from 'path';
9
9
  import chalk from 'chalk';
10
10
  import { extractRequirementsSection, parseDeltaSpec, normalizeRequirementName, } from './parsers/requirement-blocks.js';
11
11
  import { Validator } from './validation/validator.js';
12
- import { resolveOpenSpecLiveSubpath } from './sdd/services/legacy-capability.service.js';
12
+ import { resolveLegacySpecLiveSubpath } from './sdd/services/legacy-capability.service.js';
13
13
  // -----------------------------------------------------------------------------
14
14
  // Public API
15
15
  // -----------------------------------------------------------------------------
@@ -264,7 +264,7 @@ export async function writeUpdatedSpec(update, rebuilt, counts) {
264
264
  await fs.mkdir(targetDir, { recursive: true });
265
265
  await fs.writeFile(update.target, rebuilt);
266
266
  const specName = path.basename(path.dirname(update.target));
267
- console.log(`Applying changes to openspec/specs/${specName}/spec.md:`);
267
+ console.log(`Applying changes to legacy-spec/specs/${specName}/spec.md:`);
268
268
  if (counts.added)
269
269
  console.log(` + ${counts.added} added`);
270
270
  if (counts.modified)
@@ -290,8 +290,8 @@ export function buildSpecSkeleton(specFolderName, changeName) {
290
290
  * @returns Result of the operation with counts
291
291
  */
292
292
  export async function applySpecs(projectRoot, changeName, options = {}) {
293
- const changeDir = resolveOpenSpecLiveSubpath(projectRoot, 'changes', changeName);
294
- const mainSpecsDir = resolveOpenSpecLiveSubpath(projectRoot, 'specs');
293
+ const changeDir = resolveLegacySpecLiveSubpath(projectRoot, 'changes', changeName);
294
+ const mainSpecsDir = resolveLegacySpecLiveSubpath(projectRoot, 'specs');
295
295
  // Verify change exists
296
296
  try {
297
297
  const stat = await fs.stat(changeDir);
@@ -344,7 +344,7 @@ export async function applySpecs(projectRoot, changeName, options = {}) {
344
344
  await fs.mkdir(targetDir, { recursive: true });
345
345
  await fs.writeFile(p.update.target, p.rebuilt);
346
346
  if (!options.silent) {
347
- console.log(`Applying changes to openspec/specs/${capability}/spec.md:`);
347
+ console.log(`Applying changes to legacy-spec/specs/${capability}/spec.md:`);
348
348
  if (p.counts.added)
349
349
  console.log(` + ${p.counts.added} added`);
350
350
  if (p.counts.modified)
@@ -356,7 +356,7 @@ export async function applySpecs(projectRoot, changeName, options = {}) {
356
356
  }
357
357
  }
358
358
  else if (!options.silent) {
359
- console.log(`Would apply changes to openspec/specs/${capability}/spec.md:`);
359
+ console.log(`Would apply changes to legacy-spec/specs/${capability}/spec.md:`);
360
360
  if (p.counts.added)
361
361
  console.log(` + ${p.counts.added} added`);
362
362
  if (p.counts.modified)
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Template exports for OpenSpec.
2
+ * Template exports for CodeSDD.
3
3
  *
4
4
  * The old config file templates (AGENTS.md, project.md, claude-template, etc.)
5
5
  * have been removed. The skill-based workflow uses skill-templates.ts directly.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Template exports for OpenSpec.
2
+ * Template exports for CodeSDD.
3
3
  *
4
4
  * The old config file templates (AGENTS.md, project.md, claude-template, etc.)
5
5
  * have been removed. The skill-based workflow uses skill-templates.ts directly.
@@ -1,8 +1,8 @@
1
1
  export function getApplyChangeSkillTemplate() {
2
2
  return {
3
- name: 'openspec-apply-change',
4
- description: 'Implement tasks from an OpenSpec change. Use when the user wants to start implementing, continue implementation, or work through tasks.',
5
- instructions: `Implement tasks from an OpenSpec change.
3
+ name: 'codesdd-apply-change',
4
+ description: 'Implement tasks from an CodeSDD change. Use when the user wants to start implementing, continue implementation, or work through tasks.',
5
+ instructions: `Implement tasks from an CodeSDD change.
6
6
 
7
7
  **Input**: Optionally specify a change name. If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
8
8
 
@@ -13,13 +13,13 @@ export function getApplyChangeSkillTemplate() {
13
13
  If a name is provided, use it. Otherwise:
14
14
  - Infer from conversation context if the user mentioned a change
15
15
  - Auto-select if only one active change exists
16
- - If ambiguous, run \`openspec list --json\` to get available changes and use the **AskUserQuestion tool** to let the user select
16
+ - If ambiguous, run \`codesdd list --json\` to get available changes and use the **AskUserQuestion tool** to let the user select
17
17
 
18
18
  Always announce: "Using change: <name>" and how to override (e.g., \`/opsx:apply <other>\`).
19
19
 
20
20
  2. **Check status to understand the schema**
21
21
  \`\`\`bash
22
- opensdd status --change "<name>" --json
22
+ codesdd status --change "<name>" --json
23
23
  \`\`\`
24
24
  Parse the JSON to understand:
25
25
  - \`schemaName\`: The workflow being used (e.g., "spec-driven")
@@ -28,7 +28,7 @@ export function getApplyChangeSkillTemplate() {
28
28
  3. **Get apply instructions**
29
29
 
30
30
  \`\`\`bash
31
- opensdd instructions apply --change "<name>" --json
31
+ codesdd instructions apply --change "<name>" --json
32
32
  \`\`\`
33
33
 
34
34
  This returns:
@@ -38,7 +38,7 @@ export function getApplyChangeSkillTemplate() {
38
38
  - Dynamic instruction based on current state
39
39
 
40
40
  **Handle states:**
41
- - If \`state: "blocked"\` (missing artifacts): show message, suggest using openspec-continue-change
41
+ - If \`state: "blocked"\` (missing artifacts): show message, suggest using codesdd-continue-change
42
42
  - If \`state: "all_done"\`: congratulate, suggest archive
43
43
  - Otherwise: proceed to implementation
44
44
 
@@ -148,17 +148,17 @@ This skill supports the "actions on a change" model:
148
148
  - **Can be invoked anytime**: Before all artifacts are done (if tasks exist), after partial implementation, interleaved with other actions
149
149
  - **Allows artifact updates**: If implementation reveals design issues, suggest updating artifacts - not phase-locked, work fluidly`,
150
150
  license: 'MIT',
151
- compatibility: 'Requires opensdd CLI.',
152
- metadata: { author: 'openspec', version: '1.0' },
151
+ compatibility: 'Requires codesdd CLI.',
152
+ metadata: { author: 'codesdd', version: '1.0' },
153
153
  };
154
154
  }
155
155
  export function getOpsxApplyCommandTemplate() {
156
156
  return {
157
157
  name: 'OPSX: Apply',
158
- description: 'Implement tasks from an OpenSpec change (Experimental)',
158
+ description: 'Implement tasks from an CodeSDD change (Experimental)',
159
159
  category: 'Workflow',
160
160
  tags: ['workflow', 'artifacts', 'experimental'],
161
- content: `Implement tasks from an OpenSpec change.
161
+ content: `Implement tasks from an CodeSDD change.
162
162
 
163
163
  **Input**: Optionally specify a change name (e.g., \`/opsx:apply add-auth\`). If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
164
164
 
@@ -169,13 +169,13 @@ export function getOpsxApplyCommandTemplate() {
169
169
  If a name is provided, use it. Otherwise:
170
170
  - Infer from conversation context if the user mentioned a change
171
171
  - Auto-select if only one active change exists
172
- - If ambiguous, run \`openspec list --json\` to get available changes and use the **AskUserQuestion tool** to let the user select
172
+ - If ambiguous, run \`codesdd list --json\` to get available changes and use the **AskUserQuestion tool** to let the user select
173
173
 
174
174
  Always announce: "Using change: <name>" and how to override (e.g., \`/opsx:apply <other>\`).
175
175
 
176
176
  2. **Check status to understand the schema**
177
177
  \`\`\`bash
178
- opensdd status --change "<name>" --json
178
+ codesdd status --change "<name>" --json
179
179
  \`\`\`
180
180
  Parse the JSON to understand:
181
181
  - \`schemaName\`: The workflow being used (e.g., "spec-driven")
@@ -184,7 +184,7 @@ export function getOpsxApplyCommandTemplate() {
184
184
  3. **Get apply instructions**
185
185
 
186
186
  \`\`\`bash
187
- opensdd instructions apply --change "<name>" --json
187
+ codesdd instructions apply --change "<name>" --json
188
188
  \`\`\`
189
189
 
190
190
  This returns:
@@ -1,14 +1,14 @@
1
1
  export function getArchiveChangeSkillTemplate() {
2
2
  return {
3
- name: 'openspec-archive-change',
3
+ name: 'codesdd-archive-change',
4
4
  description: 'Archive a completed change in the experimental workflow. Use when the user wants to finalize and archive a change after implementation is complete.',
5
5
  instructions: `Archive a completed change in the experimental workflow.
6
6
 
7
- **OpenSDD-native guardrail**
7
+ **CodeSDD-native guardrail**
8
8
 
9
- If this repository has a \`.sdd/\` directory, prefer \`opensdd sdd finalize --ref <FEAT-ID>\`.
10
- Do not create, move, or recreate \`openspec/changes\` in OpenSDD-native projects.
11
- Use the archive flow below only for explicitly legacy OpenSpec compatibility artifacts.
9
+ If this repository has a \`.sdd/\` directory, prefer \`codesdd sdd finalize --ref <FEAT-ID>\`.
10
+ Do not create, move, or recreate \`legacy-spec/changes\` in CodeSDD-native projects.
11
+ Use the archive flow below only for explicitly legacy CodeSDD compatibility artifacts.
12
12
 
13
13
  **Input**: Optionally specify a change name. If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
14
14
 
@@ -16,7 +16,7 @@ Use the archive flow below only for explicitly legacy OpenSpec compatibility art
16
16
 
17
17
  1. **If no change name provided, prompt for selection**
18
18
 
19
- Run \`openspec list --json\` to get available changes. Use the **AskUserQuestion tool** to let the user select.
19
+ Run \`codesdd list --json\` to get available changes. Use the **AskUserQuestion tool** to let the user select.
20
20
 
21
21
  Show only active changes (not already archived).
22
22
  Include the schema used for each change if available.
@@ -25,7 +25,7 @@ Use the archive flow below only for explicitly legacy OpenSpec compatibility art
25
25
 
26
26
  2. **Check artifact completion status**
27
27
 
28
- Run \`opensdd status --change "<name>" --json\` to check artifact completion.
28
+ Run \`codesdd status --change "<name>" --json\` to check artifact completion.
29
29
 
30
30
  Parse the JSON to understand:
31
31
  - \`schemaName\`: The workflow being used
@@ -51,10 +51,10 @@ Use the archive flow below only for explicitly legacy OpenSpec compatibility art
51
51
 
52
52
  4. **Assess delta spec sync state**
53
53
 
54
- Check for delta specs at \`openspec/changes/<name>/specs/\`. If none exist, proceed without sync prompt.
54
+ Check for delta specs at \`legacy-spec/changes/<name>/specs/\`. If none exist, proceed without sync prompt.
55
55
 
56
56
  **If delta specs exist:**
57
- - Compare each delta spec with its corresponding main spec at \`openspec/specs/<capability>/spec.md\`
57
+ - Compare each delta spec with its corresponding main spec at \`legacy-spec/specs/<capability>/spec.md\`
58
58
  - Determine what changes would be applied (adds, modifications, removals, renames)
59
59
  - Show a combined summary before prompting
60
60
 
@@ -62,13 +62,13 @@ Use the archive flow below only for explicitly legacy OpenSpec compatibility art
62
62
  - If changes needed: "Sync now (recommended)", "Archive without syncing"
63
63
  - If already synced: "Archive now", "Sync anyway", "Cancel"
64
64
 
65
- If user chooses sync, use Task tool (subagent_type: "general-purpose", prompt: "Use Skill tool to invoke openspec-sync-specs for change '<name>'. Delta spec analysis: <include the analyzed delta spec summary>"). Proceed to archive regardless of choice.
65
+ If user chooses sync, use Task tool (subagent_type: "general-purpose", prompt: "Use Skill tool to invoke codesdd-sync-specs for change '<name>'. Delta spec analysis: <include the analyzed delta spec summary>"). Proceed to archive regardless of choice.
66
66
 
67
67
  5. **Perform the archive**
68
68
 
69
69
  Create the archive directory if it doesn't exist:
70
70
  \`\`\`bash
71
- mkdir -p openspec/changes/archive
71
+ mkdir -p legacy-spec/changes/archive
72
72
  \`\`\`
73
73
 
74
74
  Generate target name using current date: \`YYYY-MM-DD-<change-name>\`
@@ -78,7 +78,7 @@ Use the archive flow below only for explicitly legacy OpenSpec compatibility art
78
78
  - If no: Move the change directory to archive
79
79
 
80
80
  \`\`\`bash
81
- mv openspec/changes/<name> openspec/changes/archive/YYYY-MM-DD-<name>
81
+ mv legacy-spec/changes/<name> legacy-spec/changes/archive/YYYY-MM-DD-<name>
82
82
  \`\`\`
83
83
 
84
84
  6. **Display summary**
@@ -97,7 +97,7 @@ Use the archive flow below only for explicitly legacy OpenSpec compatibility art
97
97
 
98
98
  **Change:** <change-name>
99
99
  **Schema:** <schema-name>
100
- **Archived to:** openspec/changes/archive/YYYY-MM-DD-<name>/
100
+ **Archived to:** legacy-spec/changes/archive/YYYY-MM-DD-<name>/
101
101
  **Specs:** ✓ Synced to main specs (or "No delta specs" or "Sync skipped")
102
102
 
103
103
  All artifacts complete. All tasks complete.
@@ -105,15 +105,15 @@ All artifacts complete. All tasks complete.
105
105
 
106
106
  **Guardrails**
107
107
  - Always prompt for change selection if not provided
108
- - Use artifact graph (opensdd status --json) for completion checking
108
+ - Use artifact graph (codesdd status --json) for completion checking
109
109
  - Don't block archive on warnings - just inform and confirm
110
- - Preserve .openspec.yaml when moving to archive (it moves with the directory)
110
+ - Preserve .sdd.yaml when moving to archive (it moves with the directory)
111
111
  - Show clear summary of what happened
112
- - If sync is requested, use openspec-sync-specs approach (agent-driven)
112
+ - If sync is requested, use codesdd-sync-specs approach (agent-driven)
113
113
  - If delta specs exist, always run the sync assessment and show the combined summary before prompting`,
114
114
  license: 'MIT',
115
- compatibility: 'Requires opensdd CLI.',
116
- metadata: { author: 'openspec', version: '1.0' },
115
+ compatibility: 'Requires codesdd CLI.',
116
+ metadata: { author: 'codesdd', version: '1.0' },
117
117
  };
118
118
  }
119
119
  export function getOpsxArchiveCommandTemplate() {
@@ -130,7 +130,7 @@ export function getOpsxArchiveCommandTemplate() {
130
130
 
131
131
  1. **If no change name provided, prompt for selection**
132
132
 
133
- Run \`openspec list --json\` to get available changes. Use the **AskUserQuestion tool** to let the user select.
133
+ Run \`codesdd list --json\` to get available changes. Use the **AskUserQuestion tool** to let the user select.
134
134
 
135
135
  Show only active changes (not already archived).
136
136
  Include the schema used for each change if available.
@@ -139,7 +139,7 @@ export function getOpsxArchiveCommandTemplate() {
139
139
 
140
140
  2. **Check artifact completion status**
141
141
 
142
- Run \`opensdd status --change "<name>" --json\` to check artifact completion.
142
+ Run \`codesdd status --change "<name>" --json\` to check artifact completion.
143
143
 
144
144
  Parse the JSON to understand:
145
145
  - \`schemaName\`: The workflow being used
@@ -165,10 +165,10 @@ export function getOpsxArchiveCommandTemplate() {
165
165
 
166
166
  4. **Assess delta spec sync state**
167
167
 
168
- Check for delta specs at \`openspec/changes/<name>/specs/\`. If none exist, proceed without sync prompt.
168
+ Check for delta specs at \`legacy-spec/changes/<name>/specs/\`. If none exist, proceed without sync prompt.
169
169
 
170
170
  **If delta specs exist:**
171
- - Compare each delta spec with its corresponding main spec at \`openspec/specs/<capability>/spec.md\`
171
+ - Compare each delta spec with its corresponding main spec at \`legacy-spec/specs/<capability>/spec.md\`
172
172
  - Determine what changes would be applied (adds, modifications, removals, renames)
173
173
  - Show a combined summary before prompting
174
174
 
@@ -176,13 +176,13 @@ export function getOpsxArchiveCommandTemplate() {
176
176
  - If changes needed: "Sync now (recommended)", "Archive without syncing"
177
177
  - If already synced: "Archive now", "Sync anyway", "Cancel"
178
178
 
179
- If user chooses sync, use Task tool (subagent_type: "general-purpose", prompt: "Use Skill tool to invoke openspec-sync-specs for change '<name>'. Delta spec analysis: <include the analyzed delta spec summary>"). Proceed to archive regardless of choice.
179
+ If user chooses sync, use Task tool (subagent_type: "general-purpose", prompt: "Use Skill tool to invoke codesdd-sync-specs for change '<name>'. Delta spec analysis: <include the analyzed delta spec summary>"). Proceed to archive regardless of choice.
180
180
 
181
181
  5. **Perform the archive**
182
182
 
183
183
  Create the archive directory if it doesn't exist:
184
184
  \`\`\`bash
185
- mkdir -p openspec/changes/archive
185
+ mkdir -p legacy-spec/changes/archive
186
186
  \`\`\`
187
187
 
188
188
  Generate target name using current date: \`YYYY-MM-DD-<change-name>\`
@@ -192,7 +192,7 @@ export function getOpsxArchiveCommandTemplate() {
192
192
  - If no: Move the change directory to archive
193
193
 
194
194
  \`\`\`bash
195
- mv openspec/changes/<name> openspec/changes/archive/YYYY-MM-DD-<name>
195
+ mv legacy-spec/changes/<name> legacy-spec/changes/archive/YYYY-MM-DD-<name>
196
196
  \`\`\`
197
197
 
198
198
  6. **Display summary**
@@ -211,7 +211,7 @@ export function getOpsxArchiveCommandTemplate() {
211
211
 
212
212
  **Change:** <change-name>
213
213
  **Schema:** <schema-name>
214
- **Archived to:** openspec/changes/archive/YYYY-MM-DD-<name>/
214
+ **Archived to:** legacy-spec/changes/archive/YYYY-MM-DD-<name>/
215
215
  **Specs:** ✓ Synced to main specs
216
216
 
217
217
  All artifacts complete. All tasks complete.
@@ -224,7 +224,7 @@ All artifacts complete. All tasks complete.
224
224
 
225
225
  **Change:** <change-name>
226
226
  **Schema:** <schema-name>
227
- **Archived to:** openspec/changes/archive/YYYY-MM-DD-<name>/
227
+ **Archived to:** legacy-spec/changes/archive/YYYY-MM-DD-<name>/
228
228
  **Specs:** No delta specs
229
229
 
230
230
  All artifacts complete. All tasks complete.
@@ -237,7 +237,7 @@ All artifacts complete. All tasks complete.
237
237
 
238
238
  **Change:** <change-name>
239
239
  **Schema:** <schema-name>
240
- **Archived to:** openspec/changes/archive/YYYY-MM-DD-<name>/
240
+ **Archived to:** legacy-spec/changes/archive/YYYY-MM-DD-<name>/
241
241
  **Specs:** Sync skipped (user chose to skip)
242
242
 
243
243
  **Warnings:**
@@ -254,7 +254,7 @@ Review the archive if this was not intentional.
254
254
  ## Archive Failed
255
255
 
256
256
  **Change:** <change-name>
257
- **Target:** openspec/changes/archive/YYYY-MM-DD-<name>/
257
+ **Target:** legacy-spec/changes/archive/YYYY-MM-DD-<name>/
258
258
 
259
259
  Target archive directory already exists.
260
260
 
@@ -266,11 +266,11 @@ Target archive directory already exists.
266
266
 
267
267
  **Guardrails**
268
268
  - Always prompt for change selection if not provided
269
- - Use artifact graph (opensdd status --json) for completion checking
269
+ - Use artifact graph (codesdd status --json) for completion checking
270
270
  - Don't block archive on warnings - just inform and confirm
271
- - Preserve .openspec.yaml when moving to archive (it moves with the directory)
271
+ - Preserve .sdd.yaml when moving to archive (it moves with the directory)
272
272
  - Show clear summary of what happened
273
- - If sync is requested, use the Skill tool to invoke \`openspec-sync-specs\` (agent-driven)
273
+ - If sync is requested, use the Skill tool to invoke \`codesdd-sync-specs\` (agent-driven)
274
274
  - If delta specs exist, always run the sync assessment and show the combined summary before prompting`
275
275
  };
276
276
  }