@devtrack-solution/codesdd 1.2.2 → 1.2.4-rc3

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 (413) hide show
  1. package/.sdd/skills/curated/api-clean-flask-langgraph/SKILL.md +17 -17
  2. package/.sdd/skills/curated/devtrack-api/SKILL.md +170 -31
  3. package/.sdd/skills/curated/devtrack-api/agents/claude-code.yaml +8 -0
  4. package/.sdd/skills/curated/devtrack-api/agents/codex.yaml +8 -0
  5. package/.sdd/skills/curated/devtrack-api/agents/cursor.yaml +8 -0
  6. package/.sdd/skills/curated/devtrack-api/agents/gemini.yaml +8 -0
  7. package/.sdd/skills/curated/devtrack-api/agents/kimi.yaml +8 -0
  8. package/.sdd/skills/curated/devtrack-api/agents/openai.yaml +4 -2
  9. package/.sdd/skills/curated/devtrack-api/agents/opencode.yaml +10 -0
  10. package/.sdd/skills/curated/devtrack-api/references/application-presentation.md +2 -2
  11. package/.sdd/skills/curated/devtrack-api/references/architecture-governance.md +8 -7
  12. package/.sdd/skills/curated/devtrack-api/references/consumer-sync-policy.md +93 -0
  13. package/.sdd/skills/curated/devtrack-api/references/contract-pack.yaml +372 -0
  14. package/.sdd/skills/curated/devtrack-api/references/domain-modeling.md +13 -13
  15. package/.sdd/skills/curated/devtrack-api/references/field-validation-protocol.md +95 -0
  16. package/.sdd/skills/curated/devtrack-api/references/foundation-layout.md +294 -0
  17. package/.sdd/skills/curated/devtrack-api/references/implementation-checklist.md +5 -5
  18. package/.sdd/skills/curated/devtrack-api/references/imports-lint.md +4 -0
  19. package/.sdd/skills/curated/devtrack-api/references/portable-agent-contract.md +41 -0
  20. package/.sdd/skills/curated/devtrack-api/references/testing-validation.md +2 -2
  21. package/.sdd/skills/curated/devtrack-api/references/typeorm-infrastructure.md +7 -9
  22. package/LICENSE +1 -1
  23. package/README.md +399 -53
  24. package/bin/codesdd.js +3 -2
  25. package/dist/applications/sdd/index.d.ts +16 -0
  26. package/dist/applications/sdd/index.js +16 -0
  27. package/dist/cli/index.d.ts +2 -2
  28. package/dist/cli/index.js +11 -558
  29. package/dist/cli/program.d.ts +14 -0
  30. package/dist/cli/program.js +645 -0
  31. package/dist/commands/change.js +5 -5
  32. package/dist/commands/completion.d.ts +1 -1
  33. package/dist/commands/completion.js +9 -2
  34. package/dist/commands/config.js +320 -20
  35. package/dist/commands/feedback.js +1 -1
  36. package/dist/commands/schema.d.ts +63 -0
  37. package/dist/commands/schema.js +12 -12
  38. package/dist/commands/sdd/backlog.d.ts +3 -0
  39. package/dist/commands/sdd/backlog.js +54 -0
  40. package/dist/commands/sdd/execution.js +489 -28
  41. package/dist/commands/sdd/plugin.d.ts +3 -0
  42. package/dist/commands/sdd/plugin.js +158 -0
  43. package/dist/commands/sdd/shared.d.ts +1 -0
  44. package/dist/commands/sdd/shared.js +11 -22
  45. package/dist/commands/sdd/skills.js +7 -0
  46. package/dist/commands/sdd.js +107 -15
  47. package/dist/commands/spec.js +9 -9
  48. package/dist/commands/validate.js +6 -6
  49. package/dist/commands/workflow/instructions.js +6 -6
  50. package/dist/commands/workflow/new-change.js +3 -3
  51. package/dist/commands/workflow/shared.d.ts +1 -1
  52. package/dist/commands/workflow/shared.js +4 -4
  53. package/dist/core/archive.js +15 -5
  54. package/dist/core/artifact-graph/instruction-loader.d.ts +1 -1
  55. package/dist/core/artifact-graph/instruction-loader.js +3 -3
  56. package/dist/core/artifact-graph/resolver.d.ts +4 -4
  57. package/dist/core/artifact-graph/resolver.js +6 -6
  58. package/dist/core/branding.js +3 -3
  59. package/dist/core/cli/command-matrix.js +19 -1
  60. package/dist/core/cli-command-quality.d.ts +27 -0
  61. package/dist/core/cli-command-quality.js +180 -0
  62. package/dist/core/command-generation/adapters/costrict.d.ts +1 -1
  63. package/dist/core/command-generation/adapters/costrict.js +2 -2
  64. package/dist/core/command-generation/types.d.ts +1 -1
  65. package/dist/core/completions/command-registry.d.ts +1 -1
  66. package/dist/core/completions/command-registry.js +200 -12
  67. package/dist/core/completions/completion-provider.d.ts +14 -1
  68. package/dist/core/completions/completion-provider.js +29 -1
  69. package/dist/core/completions/generators/bash-generator.d.ts +1 -1
  70. package/dist/core/completions/generators/bash-generator.js +20 -12
  71. package/dist/core/completions/generators/fish-generator.d.ts +9 -1
  72. package/dist/core/completions/generators/fish-generator.js +39 -25
  73. package/dist/core/completions/generators/powershell-generator.d.ts +1 -1
  74. package/dist/core/completions/generators/powershell-generator.js +21 -11
  75. package/dist/core/completions/generators/zsh-generator.d.ts +3 -6
  76. package/dist/core/completions/generators/zsh-generator.js +21 -42
  77. package/dist/core/completions/installers/bash-installer.js +6 -6
  78. package/dist/core/completions/installers/fish-installer.js +1 -1
  79. package/dist/core/completions/installers/powershell-installer.js +14 -14
  80. package/dist/core/completions/installers/zsh-installer.d.ts +7 -1
  81. package/dist/core/completions/installers/zsh-installer.js +36 -8
  82. package/dist/core/completions/templates/bash-templates.d.ts +1 -1
  83. package/dist/core/completions/templates/bash-templates.js +12 -6
  84. package/dist/core/completions/templates/fish-templates.d.ts +2 -2
  85. package/dist/core/completions/templates/fish-templates.js +20 -9
  86. package/dist/core/completions/templates/powershell-templates.d.ts +1 -1
  87. package/dist/core/completions/templates/powershell-templates.js +13 -4
  88. package/dist/core/completions/templates/zsh-templates.d.ts +1 -1
  89. package/dist/core/completions/templates/zsh-templates.js +18 -9
  90. package/dist/core/config-schema.d.ts +20 -1
  91. package/dist/core/config-schema.js +70 -2
  92. package/dist/core/config.d.ts +3 -3
  93. package/dist/core/config.js +4 -4
  94. package/dist/core/global-config.d.ts +57 -12
  95. package/dist/core/global-config.js +344 -27
  96. package/dist/core/index.d.ts +1 -1
  97. package/dist/core/index.js +2 -2
  98. package/dist/core/init.d.ts +6 -1
  99. package/dist/core/init.js +99 -77
  100. package/dist/core/legacy-cleanup.d.ts +17 -17
  101. package/dist/core/legacy-cleanup.js +96 -79
  102. package/dist/core/list.js +18 -4
  103. package/dist/core/migration.d.ts +3 -1
  104. package/dist/core/migration.js +7 -8
  105. package/dist/core/parsers/change-parser.js +1 -1
  106. package/dist/core/parsers/markdown-parser.js +2 -2
  107. package/dist/core/profile-sync-drift.d.ts +1 -1
  108. package/dist/core/profile-sync-drift.js +13 -13
  109. package/dist/core/project-config.d.ts +4 -4
  110. package/dist/core/project-config.js +11 -11
  111. package/dist/core/schemas/change.schema.d.ts +1 -1
  112. package/dist/core/schemas/change.schema.js +1 -1
  113. package/dist/core/schemas/spec.schema.d.ts +1 -1
  114. package/dist/core/schemas/spec.schema.js +1 -1
  115. package/dist/core/sdd/adr.js +23 -1
  116. package/dist/core/sdd/agent-binding.d.ts +346 -0
  117. package/dist/core/sdd/agent-binding.js +343 -0
  118. package/dist/core/sdd/agent-runtime-contract.d.ts +204 -0
  119. package/dist/core/sdd/agent-runtime-contract.js +200 -0
  120. package/dist/core/sdd/backlog-cli.d.ts +16 -0
  121. package/dist/core/sdd/backlog-cli.js +146 -0
  122. package/dist/core/sdd/backlog-conflict-policy.d.ts +58 -0
  123. package/dist/core/sdd/backlog-conflict-policy.js +230 -0
  124. package/dist/core/sdd/backlog-projection.d.ts +8 -0
  125. package/dist/core/sdd/backlog-projection.js +89 -0
  126. package/dist/core/sdd/backlog-provider-contract.d.ts +252 -0
  127. package/dist/core/sdd/backlog-provider-contract.js +158 -0
  128. package/dist/core/sdd/bootstrap.js +2 -2
  129. package/dist/core/sdd/check.d.ts +44 -0
  130. package/dist/core/sdd/check.js +62 -24
  131. package/dist/core/sdd/contract.d.ts +13 -0
  132. package/dist/core/sdd/contract.js +36 -0
  133. package/dist/core/sdd/coordination/coordination-adapters.d.ts +53 -8
  134. package/dist/core/sdd/coordination/coordination-adapters.js +182 -16
  135. package/dist/core/sdd/coordination/index.d.ts +1 -0
  136. package/dist/core/sdd/coordination/index.js +1 -0
  137. package/dist/core/sdd/coordination/redis-runtime.d.ts +131 -0
  138. package/dist/core/sdd/coordination/redis-runtime.js +698 -0
  139. package/dist/core/sdd/deepagent-contracts.d.ts +370 -0
  140. package/dist/core/sdd/deepagent-contracts.js +235 -0
  141. package/dist/core/sdd/deepagents/adr-governor.d.ts +2 -0
  142. package/dist/core/sdd/deepagents/adr-governor.js +30 -0
  143. package/dist/core/sdd/deepagents/backend.d.ts +63 -0
  144. package/dist/core/sdd/deepagents/backend.js +174 -0
  145. package/dist/core/sdd/deepagents/codesdd-tools.d.ts +39 -0
  146. package/dist/core/sdd/deepagents/codesdd-tools.js +83 -0
  147. package/dist/core/sdd/deepagents/evidence-mapper.d.ts +86 -0
  148. package/dist/core/sdd/deepagents/evidence-mapper.js +178 -0
  149. package/dist/core/sdd/deepagents/model-provider.d.ts +53 -0
  150. package/dist/core/sdd/deepagents/model-provider.js +379 -0
  151. package/dist/core/sdd/deepagents/policy-enforcement.d.ts +30 -0
  152. package/dist/core/sdd/deepagents/policy-enforcement.js +90 -0
  153. package/dist/core/sdd/deepagents/policy.d.ts +75 -0
  154. package/dist/core/sdd/deepagents/policy.js +358 -0
  155. package/dist/core/sdd/deepagents/quality-witness.d.ts +3 -0
  156. package/dist/core/sdd/deepagents/quality-witness.js +77 -0
  157. package/dist/core/sdd/deepagents/reversa-subagents.d.ts +75 -0
  158. package/dist/core/sdd/deepagents/reversa-subagents.js +182 -0
  159. package/dist/core/sdd/deepagents/runtime-factory.d.ts +90 -0
  160. package/dist/core/sdd/deepagents/runtime-factory.js +231 -0
  161. package/dist/core/sdd/deepagents/runtime-loader.d.ts +16 -0
  162. package/dist/core/sdd/deepagents/runtime-loader.js +65 -0
  163. package/dist/core/sdd/default-bootstrap-files.d.ts +3 -3
  164. package/dist/core/sdd/default-bootstrap-files.js +50 -10
  165. package/dist/core/sdd/default-skills.d.ts +30 -0
  166. package/dist/core/sdd/default-skills.js +288 -8
  167. package/dist/core/sdd/devtrack-api-appliance.d.ts +91 -0
  168. package/dist/core/sdd/devtrack-api-appliance.js +280 -0
  169. package/dist/core/sdd/devtrack-api-architecture.d.ts +31 -0
  170. package/dist/core/sdd/devtrack-api-architecture.js +608 -0
  171. package/dist/core/sdd/devtrack-api-import-boundary.d.ts +19 -0
  172. package/dist/core/sdd/devtrack-api-import-boundary.js +32 -0
  173. package/dist/core/sdd/diagnose.d.ts +59 -0
  174. package/dist/core/sdd/diagnose.js +37 -37
  175. package/dist/core/sdd/docs-sync.js +54 -20
  176. package/dist/core/sdd/domain/capability-diff.d.ts +63 -0
  177. package/dist/core/sdd/domain/capability-diff.js +200 -0
  178. package/dist/core/sdd/domain/change-safety-guardrails.d.ts +74 -0
  179. package/dist/core/sdd/domain/change-safety-guardrails.js +333 -0
  180. package/dist/core/sdd/domain/post-active-validation.d.ts +7 -0
  181. package/dist/core/sdd/domain/post-active-validation.js +61 -0
  182. package/dist/core/sdd/domain/semantic-intent-classifier.d.ts +29 -0
  183. package/dist/core/sdd/domain/semantic-intent-classifier.js +117 -0
  184. package/dist/core/sdd/domain/transition-engine.js +1 -0
  185. package/dist/core/sdd/entity-reference.d.ts +5 -0
  186. package/dist/core/sdd/entity-reference.js +22 -0
  187. package/dist/core/sdd/foundation-artifact-map-validator.d.ts +16 -0
  188. package/dist/core/sdd/foundation-artifact-map-validator.js +71 -0
  189. package/dist/core/sdd/foundation-layer-manifest.d.ts +24 -0
  190. package/dist/core/sdd/foundation-layer-manifest.js +117 -0
  191. package/dist/core/sdd/governance-backfill.d.ts +31 -0
  192. package/dist/core/sdd/governance-backfill.js +359 -0
  193. package/dist/core/sdd/governance-parser.d.ts +21 -0
  194. package/dist/core/sdd/governance-parser.js +91 -0
  195. package/dist/core/sdd/governance-schemas.d.ts +245 -0
  196. package/dist/core/sdd/governance-schemas.js +143 -0
  197. package/dist/core/sdd/{import-openspec.d.ts → import-legacy-spec.d.ts} +7 -7
  198. package/dist/core/sdd/{import-openspec.js → import-legacy-spec.js} +21 -29
  199. package/dist/core/sdd/init.d.ts +3 -0
  200. package/dist/core/sdd/init.js +6 -3
  201. package/dist/core/sdd/intent-guard.d.ts +22 -0
  202. package/dist/core/sdd/intent-guard.js +67 -0
  203. package/dist/core/sdd/json-schema.js +108 -6
  204. package/dist/core/sdd/knowledge-graph.d.ts +45 -0
  205. package/dist/core/sdd/knowledge-graph.js +288 -0
  206. package/dist/core/sdd/legacy-operations.js +507 -44
  207. package/dist/core/sdd/lenses.d.ts +1 -0
  208. package/dist/core/sdd/lenses.js +29 -1
  209. package/dist/core/sdd/migrate-workspace.js +95 -2
  210. package/dist/core/sdd/migrate.d.ts +1 -1
  211. package/dist/core/sdd/migrate.js +36 -2
  212. package/dist/core/sdd/package-security-gates.d.ts +21 -0
  213. package/dist/core/sdd/package-security-gates.js +119 -0
  214. package/dist/core/sdd/package-structure-gate.d.ts +83 -0
  215. package/dist/core/sdd/package-structure-gate.js +357 -0
  216. package/dist/core/sdd/parallel-feat-automation.d.ts +330 -0
  217. package/dist/core/sdd/parallel-feat-automation.js +424 -0
  218. package/dist/core/sdd/plugin-broker.d.ts +777 -0
  219. package/dist/core/sdd/plugin-broker.js +492 -0
  220. package/dist/core/sdd/plugin-certification.d.ts +79 -0
  221. package/dist/core/sdd/plugin-certification.js +453 -0
  222. package/dist/core/sdd/plugin-cli.d.ts +139 -0
  223. package/dist/core/sdd/plugin-cli.js +265 -0
  224. package/dist/core/sdd/plugin-evidence.d.ts +348 -0
  225. package/dist/core/sdd/plugin-evidence.js +307 -0
  226. package/dist/core/sdd/plugin-manifest.d.ts +232 -0
  227. package/dist/core/sdd/plugin-manifest.js +225 -0
  228. package/dist/core/sdd/plugin-policy-pack.d.ts +88 -0
  229. package/dist/core/sdd/plugin-policy-pack.js +236 -0
  230. package/dist/core/sdd/plugin-policy.d.ts +68 -0
  231. package/dist/core/sdd/plugin-policy.js +212 -0
  232. package/dist/core/sdd/plugin-registry.d.ts +447 -0
  233. package/dist/core/sdd/plugin-registry.js +138 -0
  234. package/dist/core/sdd/plugin-sdk-contract.d.ts +363 -0
  235. package/dist/core/sdd/plugin-sdk-contract.js +268 -0
  236. package/dist/core/sdd/plugin-skill-binding.d.ts +151 -0
  237. package/dist/core/sdd/plugin-skill-binding.js +339 -0
  238. package/dist/core/sdd/quality-artifact-manifest-validator.d.ts +28 -0
  239. package/dist/core/sdd/quality-artifact-manifest-validator.js +167 -0
  240. package/dist/core/sdd/quality-evidence-renderer.d.ts +65 -0
  241. package/dist/core/sdd/quality-evidence-renderer.js +218 -0
  242. package/dist/core/sdd/quality-scenario-runner.d.ts +42 -0
  243. package/dist/core/sdd/quality-scenario-runner.js +613 -0
  244. package/dist/core/sdd/quality-validation.d.ts +620 -0
  245. package/dist/core/sdd/quality-validation.js +239 -0
  246. package/dist/core/sdd/release-readiness.d.ts +19 -0
  247. package/dist/core/sdd/release-readiness.js +472 -0
  248. package/dist/core/sdd/resolve-project-root.d.ts +2 -2
  249. package/dist/core/sdd/resolve-project-root.js +11 -5
  250. package/dist/core/sdd/runtime-boundary-contract.d.ts +45 -0
  251. package/dist/core/sdd/runtime-boundary-contract.js +90 -0
  252. package/dist/core/sdd/sanitize.d.ts +30 -1
  253. package/dist/core/sdd/sanitize.js +23 -23
  254. package/dist/core/sdd/sdk-agent-plugin-quality-gates.d.ts +150 -0
  255. package/dist/core/sdd/sdk-agent-plugin-quality-gates.js +258 -0
  256. package/dist/core/sdd/services/agent-run.service.d.ts +97 -0
  257. package/dist/core/sdd/services/agent-run.service.js +261 -0
  258. package/dist/core/sdd/services/breakdown.service.js +2 -1
  259. package/dist/core/sdd/services/capability-diff.service.d.ts +18 -0
  260. package/dist/core/sdd/services/capability-diff.service.js +26 -0
  261. package/dist/core/sdd/services/change-safety-preflight.service.d.ts +17 -0
  262. package/dist/core/sdd/services/change-safety-preflight.service.js +17 -0
  263. package/dist/core/sdd/services/context.service.d.ts +43 -340
  264. package/dist/core/sdd/services/context.service.js +341 -25
  265. package/dist/core/sdd/services/debate.service.js +15 -2
  266. package/dist/core/sdd/services/feature-lint.service.d.ts +22 -0
  267. package/dist/core/sdd/services/feature-lint.service.js +105 -5
  268. package/dist/core/sdd/services/finalize.service.d.ts +105 -0
  269. package/dist/core/sdd/services/finalize.service.js +499 -38
  270. package/dist/core/sdd/services/frontend-gap.service.js +22 -7
  271. package/dist/core/sdd/services/frontend-impact.service.d.ts +1 -1
  272. package/dist/core/sdd/services/governance-control-plane-runtime-adapters.d.ts +17 -0
  273. package/dist/core/sdd/services/governance-control-plane-runtime-adapters.js +38 -0
  274. package/dist/core/sdd/services/governance-control-plane.service.d.ts +66 -0
  275. package/dist/core/sdd/services/governance-control-plane.service.js +134 -0
  276. package/dist/core/sdd/services/ingest-deposito.service.js +1 -1
  277. package/dist/core/sdd/services/legacy-capability.service.d.ts +10 -7
  278. package/dist/core/sdd/services/legacy-capability.service.js +38 -21
  279. package/dist/core/sdd/services/mcp-runtime.service.d.ts +123 -8
  280. package/dist/core/sdd/services/mcp-runtime.service.js +1085 -33
  281. package/dist/core/sdd/services/onboard.service.js +2 -1
  282. package/dist/core/sdd/services/rebuild.service.js +6 -1
  283. package/dist/core/sdd/services/semantic-intent-classifier.service.d.ts +6 -0
  284. package/dist/core/sdd/services/semantic-intent-classifier.service.js +7 -0
  285. package/dist/core/sdd/services/skills-sync.service.d.ts +17 -5
  286. package/dist/core/sdd/services/skills-sync.service.js +55 -2
  287. package/dist/core/sdd/services/start.service.js +6 -4
  288. package/dist/core/sdd/skill-bundles-curation-schema.d.ts +66 -0
  289. package/dist/core/sdd/skill-bundles-curation-schema.js +52 -0
  290. package/dist/core/sdd/skill-evidence.d.ts +19 -0
  291. package/dist/core/sdd/skill-evidence.js +38 -0
  292. package/dist/core/sdd/skill-policy-pool.d.ts +46 -0
  293. package/dist/core/sdd/skill-policy-pool.js +185 -0
  294. package/dist/core/sdd/state.d.ts +23 -0
  295. package/dist/core/sdd/state.js +313 -66
  296. package/dist/core/sdd/store/sdd-stores.js +2 -2
  297. package/dist/core/sdd/structural-health.d.ts +55 -55
  298. package/dist/core/sdd/types.d.ts +60 -19
  299. package/dist/core/sdd/types.js +21 -0
  300. package/dist/core/sdd/upgrade-to-codesdd.d.ts +45 -0
  301. package/dist/core/sdd/upgrade-to-codesdd.js +179 -0
  302. package/dist/core/sdd/views.js +17 -0
  303. package/dist/core/sdd/workspace-schemas.d.ts +670 -19
  304. package/dist/core/sdd/workspace-schemas.js +285 -5
  305. package/dist/core/sdd/write-manifest.js +22 -4
  306. package/dist/core/shared/skill-generation.d.ts +1 -1
  307. package/dist/core/shared/skill-generation.js +15 -15
  308. package/dist/core/shared/tool-detection.d.ts +3 -3
  309. package/dist/core/shared/tool-detection.js +14 -14
  310. package/dist/core/specs-apply.js +6 -6
  311. package/dist/core/templates/index.d.ts +1 -1
  312. package/dist/core/templates/index.js +1 -1
  313. package/dist/core/templates/workflows/apply-change.js +14 -14
  314. package/dist/core/templates/workflows/archive-change.js +32 -32
  315. package/dist/core/templates/workflows/bulk-archive-change.js +25 -25
  316. package/dist/core/templates/workflows/continue-change.js +12 -12
  317. package/dist/core/templates/workflows/explore.js +29 -29
  318. package/dist/core/templates/workflows/feedback.js +6 -6
  319. package/dist/core/templates/workflows/ff-change.js +24 -24
  320. package/dist/core/templates/workflows/new-change.js +20 -20
  321. package/dist/core/templates/workflows/onboard.js +33 -33
  322. package/dist/core/templates/workflows/propose.js +23 -23
  323. package/dist/core/templates/workflows/sdd.js +8 -8
  324. package/dist/core/templates/workflows/sync-specs.js +19 -19
  325. package/dist/core/templates/workflows/verify-change.js +17 -17
  326. package/dist/core/update.d.ts +2 -2
  327. package/dist/core/update.js +16 -15
  328. package/dist/core/validation/constants.d.ts +1 -1
  329. package/dist/core/validation/constants.js +1 -1
  330. package/dist/core/view.js +11 -11
  331. package/dist/domains/sdd/index.d.ts +6 -0
  332. package/dist/domains/sdd/index.js +6 -0
  333. package/dist/infrastructures/sdd/index.d.ts +7 -0
  334. package/dist/infrastructures/sdd/index.js +6 -0
  335. package/dist/presentations/cli/sdd/index.d.ts +3 -0
  336. package/dist/presentations/cli/sdd/index.js +3 -0
  337. package/dist/shared/sdd/index.d.ts +3 -0
  338. package/dist/shared/sdd/index.js +2 -0
  339. package/dist/telemetry/config.d.ts +2 -1
  340. package/dist/telemetry/config.js +17 -8
  341. package/dist/telemetry/index.d.ts +10 -2
  342. package/dist/telemetry/index.js +40 -7
  343. package/dist/ui/ascii-patterns.d.ts +2 -2
  344. package/dist/ui/ascii-patterns.js +2 -2
  345. package/dist/ui/welcome-screen.js +2 -2
  346. package/dist/utils/change-metadata.d.ts +4 -4
  347. package/dist/utils/change-metadata.js +6 -6
  348. package/dist/utils/change-utils.d.ts +3 -3
  349. package/dist/utils/change-utils.js +5 -5
  350. package/dist/utils/file-system.js +1 -1
  351. package/dist/utils/interactive.js +1 -1
  352. package/dist/utils/item-discovery.js +4 -4
  353. package/dist/utils/legacy-spec-compat.d.ts +2 -0
  354. package/dist/utils/legacy-spec-compat.js +2 -0
  355. package/dist/utils/shell-detection.d.ts +1 -0
  356. package/dist/utils/shell-detection.js +16 -0
  357. package/package.json +34 -21
  358. package/schemas/sdd/1-spec.schema.json +1 -1
  359. package/schemas/sdd/2-plan.schema.json +280 -3
  360. package/schemas/sdd/3-tasks.schema.json +73 -1
  361. package/schemas/sdd/4-changelog.schema.json +1 -1
  362. package/schemas/sdd/5-quality.schema.json +701 -5
  363. package/schemas/sdd/adr.schema.json +148 -0
  364. package/schemas/sdd/agent-binding-adapter.schema.json +210 -0
  365. package/schemas/sdd/agent-binding-resolution.schema.json +338 -0
  366. package/schemas/sdd/agent-runtime-command-plan.schema.json +212 -0
  367. package/schemas/sdd/agent-runtime-opencode-run-evidence.schema.json +270 -0
  368. package/schemas/sdd/backlog-projection-plan.schema.json +180 -0
  369. package/schemas/sdd/backlog-provider-contract.schema.json +260 -0
  370. package/schemas/sdd/codesdd-plugin.schema.json +645 -0
  371. package/schemas/sdd/debate.schema.json +244 -0
  372. package/schemas/sdd/deepagent-decision-evidence.schema.json +58 -0
  373. package/schemas/sdd/deepagent-env-contract.schema.json +143 -0
  374. package/schemas/sdd/deepagent-quality-evidence.schema.json +108 -0
  375. package/schemas/sdd/deepagent-run-evidence.schema.json +192 -0
  376. package/schemas/sdd/deepagent-run-plan.schema.json +197 -0
  377. package/schemas/sdd/deepagent-run-request.schema.json +637 -0
  378. package/schemas/sdd/deepagent-subagent-evidence.schema.json +110 -0
  379. package/schemas/sdd/deepagent-tool-call-evidence.schema.json +78 -0
  380. package/schemas/sdd/discarded.schema.json +127 -0
  381. package/schemas/sdd/epic.schema.json +147 -0
  382. package/schemas/sdd/insight.schema.json +136 -0
  383. package/schemas/sdd/parallel-feat-automation-plan.schema.json +304 -0
  384. package/schemas/sdd/parallel-feat-automation-request.schema.json +109 -0
  385. package/schemas/sdd/parallel-feat-scheduler-request.schema.json +116 -0
  386. package/schemas/sdd/parallel-feat-scheduler-result.schema.json +404 -0
  387. package/schemas/sdd/plugin-artifact-manifest.schema.json +259 -0
  388. package/schemas/sdd/plugin-artifact-map.schema.json +223 -0
  389. package/schemas/sdd/plugin-compliance-index.schema.json +136 -0
  390. package/schemas/sdd/plugin-dry-run-plan.schema.json +260 -0
  391. package/schemas/sdd/plugin-evidence-manifest.schema.json +678 -0
  392. package/schemas/sdd/plugin-language-runtime.schema.json +103 -0
  393. package/schemas/sdd/plugin-package-governance.schema.json +74 -0
  394. package/schemas/sdd/plugin-policy-evaluation.schema.json +92 -0
  395. package/schemas/sdd/plugin-policy-pack-evaluation.schema.json +94 -0
  396. package/schemas/sdd/plugin-policy-pack.schema.json +196 -0
  397. package/schemas/sdd/plugin-registry.schema.json +729 -0
  398. package/schemas/sdd/plugin-rollback-manifest.schema.json +87 -0
  399. package/schemas/sdd/plugin-runtime-invocation-plan.schema.json +954 -0
  400. package/schemas/sdd/plugin-skill-binding-resolution.schema.json +305 -0
  401. package/schemas/sdd/plugin-skill-binding.schema.json +88 -0
  402. package/schemas/sdd/plugin-validation-manifest.schema.json +123 -0
  403. package/schemas/sdd/quality-architecture-schema.schema.json +216 -0
  404. package/schemas/sdd/quality-evidence-bundle.schema.json +1337 -0
  405. package/schemas/sdd/quality-run.schema.json +197 -0
  406. package/schemas/sdd/quality-scenario.schema.json +252 -0
  407. package/schemas/sdd/sdk-agent-plugin-quality-gate-input.schema.json +168 -0
  408. package/schemas/sdd/sdk-agent-plugin-quality-gate-report.schema.json +160 -0
  409. package/schemas/sdd/workspace-catalog.schema.json +13232 -35
  410. package/schemas/spec-driven/schema.yaml +4 -4
  411. package/schemas/spec-driven/templates/proposal.md +1 -1
  412. package/dist/utils/openspec-compat.d.ts +0 -2
  413. package/dist/utils/openspec-compat.js +0 -2
@@ -0,0 +1,89 @@
1
+ import { backlogProjectionPlanSchema, buildBacklogProjectionItem, createBacklogProviderContract, } from './backlog-provider-contract.js';
2
+ const AZURE_DEVOPS_EXTERNAL_TYPES = {
3
+ epic: 'Epic',
4
+ feature: 'User Story',
5
+ };
6
+ export function builtInAzureDevOpsBacklogContract() {
7
+ return createBacklogProviderContract({
8
+ schema_version: 1,
9
+ provider: 'azure-devops',
10
+ adapter_id: 'azure-devops',
11
+ label: 'Azure DevOps Boards',
12
+ status: 'experimental',
13
+ auth: {
14
+ mode: 'pat',
15
+ required_env: ['AZURE_DEVOPS_EXT_PAT'],
16
+ secret_fields: ['AZURE_DEVOPS_EXT_PAT'],
17
+ },
18
+ capabilities: [
19
+ {
20
+ operation: 'create',
21
+ entity_kinds: ['epic', 'feature'],
22
+ dry_run: true,
23
+ apply: false,
24
+ idempotent: true,
25
+ required_fields: ['System.Title', 'System.State', 'Custom.CodeSDDRef'],
26
+ },
27
+ {
28
+ operation: 'link',
29
+ entity_kinds: ['epic', 'feature'],
30
+ dry_run: true,
31
+ apply: false,
32
+ idempotent: true,
33
+ },
34
+ ],
35
+ mapping: {
36
+ external_project_field: 'System.TeamProject',
37
+ external_id_field: 'System.Id',
38
+ external_url_field: 'System.Url',
39
+ canonical_ref_field: 'Custom.CodeSDDRef',
40
+ parent_ref_field: 'Custom.CodeSDDParentRef',
41
+ entity_type_field: 'Custom.CodeSDDEntityType',
42
+ title_field: 'System.Title',
43
+ status_field: 'System.State',
44
+ },
45
+ canonical_state_boundary: {
46
+ source_of_truth: 'codesdd',
47
+ state_paths: ['.sdd/state/*.yaml'],
48
+ external_state_authoritative: false,
49
+ hidden_state_allowed: false,
50
+ },
51
+ governance: {
52
+ owner: 'platform-architecture',
53
+ sync_requires_dry_run: true,
54
+ mutation_requires_approval: true,
55
+ audit_event: 'codesdd.backlog.projection',
56
+ },
57
+ });
58
+ }
59
+ export function buildAzureDevOpsBacklogProjectionPlan(input) {
60
+ const contract = input.contract
61
+ ? createBacklogProviderContract(input.contract)
62
+ : builtInAzureDevOpsBacklogContract();
63
+ if (contract.provider !== 'azure-devops') {
64
+ throw new Error(`Azure DevOps projection planner requires provider azure-devops, received ${contract.provider}.`);
65
+ }
66
+ const projectedItems = input.items.map((item) => {
67
+ const externalType = AZURE_DEVOPS_EXTERNAL_TYPES[item.kind];
68
+ if (!externalType) {
69
+ throw new Error(`Azure DevOps projection planner supports only epic and feature items, received ${item.kind}.`);
70
+ }
71
+ return buildBacklogProjectionItem({
72
+ contract,
73
+ item,
74
+ external_type: externalType,
75
+ operation: 'create',
76
+ });
77
+ });
78
+ return backlogProjectionPlanSchema.parse({
79
+ schema_version: 1,
80
+ created_at: input.created_at ?? new Date().toISOString(),
81
+ provider: 'azure-devops',
82
+ mode: 'dry-run',
83
+ direction: 'push',
84
+ source_of_truth: 'codesdd',
85
+ items: projectedItems,
86
+ warnings: [],
87
+ });
88
+ }
89
+ //# sourceMappingURL=backlog-projection.js.map
@@ -0,0 +1,252 @@
1
+ import { z } from 'zod';
2
+ export declare const backlogProviderIdSchema: z.ZodEnum<{
3
+ generic: "generic";
4
+ "azure-devops": "azure-devops";
5
+ jira: "jira";
6
+ trello: "trello";
7
+ confluence: "confluence";
8
+ asana: "asana";
9
+ }>;
10
+ export declare const backlogEntityKindSchema: z.ZodEnum<{
11
+ epic: "epic";
12
+ feature: "feature";
13
+ insight: "insight";
14
+ debate: "debate";
15
+ task: "task";
16
+ }>;
17
+ export declare const backlogProviderOperationSchema: z.ZodEnum<{
18
+ link: "link";
19
+ update: "update";
20
+ create: "create";
21
+ query: "query";
22
+ }>;
23
+ export declare const backlogProjectionModeSchema: z.ZodEnum<{
24
+ apply: "apply";
25
+ "dry-run": "dry-run";
26
+ }>;
27
+ export declare const backlogProjectionDirectionSchema: z.ZodEnum<{
28
+ push: "push";
29
+ pull: "pull";
30
+ bidirectional: "bidirectional";
31
+ }>;
32
+ export declare const backlogAuthModeSchema: z.ZodEnum<{
33
+ none: "none";
34
+ pat: "pat";
35
+ oauth: "oauth";
36
+ "managed-identity": "managed-identity";
37
+ "app-installation": "app-installation";
38
+ }>;
39
+ export declare const backlogProviderCapabilitySchema: z.ZodObject<{
40
+ operation: z.ZodEnum<{
41
+ link: "link";
42
+ update: "update";
43
+ create: "create";
44
+ query: "query";
45
+ }>;
46
+ entity_kinds: z.ZodArray<z.ZodEnum<{
47
+ epic: "epic";
48
+ feature: "feature";
49
+ insight: "insight";
50
+ debate: "debate";
51
+ task: "task";
52
+ }>>;
53
+ dry_run: z.ZodDefault<z.ZodBoolean>;
54
+ apply: z.ZodDefault<z.ZodBoolean>;
55
+ idempotent: z.ZodDefault<z.ZodBoolean>;
56
+ required_fields: z.ZodDefault<z.ZodArray<z.ZodString>>;
57
+ }, z.core.$strip>;
58
+ export declare const backlogProviderContractSchema: z.ZodObject<{
59
+ schema_version: z.ZodDefault<z.ZodLiteral<1>>;
60
+ provider: z.ZodEnum<{
61
+ generic: "generic";
62
+ "azure-devops": "azure-devops";
63
+ jira: "jira";
64
+ trello: "trello";
65
+ confluence: "confluence";
66
+ asana: "asana";
67
+ }>;
68
+ adapter_id: z.ZodString;
69
+ label: z.ZodString;
70
+ status: z.ZodDefault<z.ZodEnum<{
71
+ experimental: "experimental";
72
+ disabled: "disabled";
73
+ active: "active";
74
+ }>>;
75
+ auth: z.ZodObject<{
76
+ mode: z.ZodEnum<{
77
+ none: "none";
78
+ pat: "pat";
79
+ oauth: "oauth";
80
+ "managed-identity": "managed-identity";
81
+ "app-installation": "app-installation";
82
+ }>;
83
+ required_env: z.ZodDefault<z.ZodArray<z.ZodString>>;
84
+ secret_fields: z.ZodDefault<z.ZodArray<z.ZodString>>;
85
+ }, z.core.$strip>;
86
+ capabilities: z.ZodArray<z.ZodObject<{
87
+ operation: z.ZodEnum<{
88
+ link: "link";
89
+ update: "update";
90
+ create: "create";
91
+ query: "query";
92
+ }>;
93
+ entity_kinds: z.ZodArray<z.ZodEnum<{
94
+ epic: "epic";
95
+ feature: "feature";
96
+ insight: "insight";
97
+ debate: "debate";
98
+ task: "task";
99
+ }>>;
100
+ dry_run: z.ZodDefault<z.ZodBoolean>;
101
+ apply: z.ZodDefault<z.ZodBoolean>;
102
+ idempotent: z.ZodDefault<z.ZodBoolean>;
103
+ required_fields: z.ZodDefault<z.ZodArray<z.ZodString>>;
104
+ }, z.core.$strip>>;
105
+ mapping: z.ZodObject<{
106
+ external_project_field: z.ZodOptional<z.ZodString>;
107
+ external_id_field: z.ZodString;
108
+ external_url_field: z.ZodOptional<z.ZodString>;
109
+ canonical_ref_field: z.ZodString;
110
+ parent_ref_field: z.ZodOptional<z.ZodString>;
111
+ entity_type_field: z.ZodString;
112
+ title_field: z.ZodString;
113
+ status_field: z.ZodString;
114
+ }, z.core.$strip>;
115
+ canonical_state_boundary: z.ZodObject<{
116
+ source_of_truth: z.ZodLiteral<"codesdd">;
117
+ state_paths: z.ZodDefault<z.ZodArray<z.ZodString>>;
118
+ external_state_authoritative: z.ZodLiteral<false>;
119
+ hidden_state_allowed: z.ZodLiteral<false>;
120
+ }, z.core.$strip>;
121
+ governance: z.ZodObject<{
122
+ owner: z.ZodString;
123
+ sync_requires_dry_run: z.ZodDefault<z.ZodBoolean>;
124
+ mutation_requires_approval: z.ZodDefault<z.ZodBoolean>;
125
+ audit_event: z.ZodDefault<z.ZodString>;
126
+ }, z.core.$strip>;
127
+ }, z.core.$strip>;
128
+ export declare const canonicalBacklogItemSchema: z.ZodObject<{
129
+ ref: z.ZodString;
130
+ kind: z.ZodEnum<{
131
+ epic: "epic";
132
+ feature: "feature";
133
+ insight: "insight";
134
+ debate: "debate";
135
+ }>;
136
+ title: z.ZodString;
137
+ status: z.ZodString;
138
+ parent_ref: z.ZodOptional<z.ZodString>;
139
+ labels: z.ZodDefault<z.ZodArray<z.ZodString>>;
140
+ url: z.ZodOptional<z.ZodString>;
141
+ }, z.core.$strip>;
142
+ export declare const backlogProjectionItemSchema: z.ZodObject<{
143
+ schema_version: z.ZodDefault<z.ZodLiteral<1>>;
144
+ provider: z.ZodEnum<{
145
+ generic: "generic";
146
+ "azure-devops": "azure-devops";
147
+ jira: "jira";
148
+ trello: "trello";
149
+ confluence: "confluence";
150
+ asana: "asana";
151
+ }>;
152
+ canonical_ref: z.ZodString;
153
+ entity_kind: z.ZodEnum<{
154
+ epic: "epic";
155
+ feature: "feature";
156
+ insight: "insight";
157
+ debate: "debate";
158
+ task: "task";
159
+ }>;
160
+ operation: z.ZodEnum<{
161
+ link: "link";
162
+ update: "update";
163
+ create: "create";
164
+ noop: "noop";
165
+ }>;
166
+ idempotency_key: z.ZodString;
167
+ external_type: z.ZodString;
168
+ fields: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
169
+ links: z.ZodDefault<z.ZodArray<z.ZodObject<{
170
+ rel: z.ZodEnum<{
171
+ canonical: "canonical";
172
+ parent: "parent";
173
+ trace: "trace";
174
+ }>;
175
+ target_ref: z.ZodString;
176
+ }, z.core.$strip>>>;
177
+ }, z.core.$strip>;
178
+ export declare const backlogProjectionPlanSchema: z.ZodObject<{
179
+ schema_version: z.ZodDefault<z.ZodLiteral<1>>;
180
+ created_at: z.ZodString;
181
+ provider: z.ZodEnum<{
182
+ generic: "generic";
183
+ "azure-devops": "azure-devops";
184
+ jira: "jira";
185
+ trello: "trello";
186
+ confluence: "confluence";
187
+ asana: "asana";
188
+ }>;
189
+ mode: z.ZodEnum<{
190
+ apply: "apply";
191
+ "dry-run": "dry-run";
192
+ }>;
193
+ direction: z.ZodEnum<{
194
+ push: "push";
195
+ pull: "pull";
196
+ bidirectional: "bidirectional";
197
+ }>;
198
+ source_of_truth: z.ZodLiteral<"codesdd">;
199
+ items: z.ZodDefault<z.ZodArray<z.ZodObject<{
200
+ schema_version: z.ZodDefault<z.ZodLiteral<1>>;
201
+ provider: z.ZodEnum<{
202
+ generic: "generic";
203
+ "azure-devops": "azure-devops";
204
+ jira: "jira";
205
+ trello: "trello";
206
+ confluence: "confluence";
207
+ asana: "asana";
208
+ }>;
209
+ canonical_ref: z.ZodString;
210
+ entity_kind: z.ZodEnum<{
211
+ epic: "epic";
212
+ feature: "feature";
213
+ insight: "insight";
214
+ debate: "debate";
215
+ task: "task";
216
+ }>;
217
+ operation: z.ZodEnum<{
218
+ link: "link";
219
+ update: "update";
220
+ create: "create";
221
+ noop: "noop";
222
+ }>;
223
+ idempotency_key: z.ZodString;
224
+ external_type: z.ZodString;
225
+ fields: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
226
+ links: z.ZodDefault<z.ZodArray<z.ZodObject<{
227
+ rel: z.ZodEnum<{
228
+ canonical: "canonical";
229
+ parent: "parent";
230
+ trace: "trace";
231
+ }>;
232
+ target_ref: z.ZodString;
233
+ }, z.core.$strip>>>;
234
+ }, z.core.$strip>>>;
235
+ warnings: z.ZodDefault<z.ZodArray<z.ZodString>>;
236
+ }, z.core.$strip>;
237
+ export type BacklogProviderId = z.infer<typeof backlogProviderIdSchema>;
238
+ export type BacklogEntityKind = z.infer<typeof backlogEntityKindSchema>;
239
+ export type BacklogProviderCapability = z.infer<typeof backlogProviderCapabilitySchema>;
240
+ export type BacklogProviderContract = z.infer<typeof backlogProviderContractSchema>;
241
+ export type BacklogProviderContractInput = z.input<typeof backlogProviderContractSchema>;
242
+ export type CanonicalBacklogItem = z.infer<typeof canonicalBacklogItemSchema>;
243
+ export type BacklogProjectionItem = z.infer<typeof backlogProjectionItemSchema>;
244
+ export type BacklogProjectionPlan = z.infer<typeof backlogProjectionPlanSchema>;
245
+ export declare function createBacklogProviderContract(input: BacklogProviderContractInput): BacklogProviderContract;
246
+ export declare function buildBacklogProjectionItem(input: {
247
+ contract: BacklogProviderContractInput;
248
+ item: CanonicalBacklogItem;
249
+ external_type: string;
250
+ operation?: BacklogProjectionItem['operation'];
251
+ }): BacklogProjectionItem;
252
+ //# sourceMappingURL=backlog-provider-contract.d.ts.map
@@ -0,0 +1,158 @@
1
+ import { z } from 'zod';
2
+ const SDD_REF_PATTERN = /^(INS|DEB|EPIC|FEAT)-\d{4}$/;
3
+ const PROVIDER_ID_PATTERN = /^[a-z][a-z0-9-]*$/;
4
+ const PROVIDER_FIELD_PATTERN = /^[A-Za-z][A-Za-z0-9_.-]*$/;
5
+ export const backlogProviderIdSchema = z.enum([
6
+ 'azure-devops',
7
+ 'jira',
8
+ 'trello',
9
+ 'confluence',
10
+ 'asana',
11
+ 'generic',
12
+ ]);
13
+ export const backlogEntityKindSchema = z.enum(['insight', 'debate', 'epic', 'feature', 'task']);
14
+ export const backlogProviderOperationSchema = z.enum(['create', 'update', 'link', 'query']);
15
+ export const backlogProjectionModeSchema = z.enum(['dry-run', 'apply']);
16
+ export const backlogProjectionDirectionSchema = z.enum(['push', 'pull', 'bidirectional']);
17
+ export const backlogAuthModeSchema = z.enum(['none', 'pat', 'oauth', 'managed-identity', 'app-installation']);
18
+ export const backlogProviderCapabilitySchema = z
19
+ .object({
20
+ operation: backlogProviderOperationSchema,
21
+ entity_kinds: z.array(backlogEntityKindSchema).min(1),
22
+ dry_run: z.boolean().default(true),
23
+ apply: z.boolean().default(false),
24
+ idempotent: z.boolean().default(true),
25
+ required_fields: z.array(z.string().regex(PROVIDER_FIELD_PATTERN)).default([]),
26
+ })
27
+ .superRefine((capability, context) => {
28
+ if (capability.apply && !capability.dry_run) {
29
+ context.addIssue({
30
+ code: 'custom',
31
+ path: ['dry_run'],
32
+ message: 'Apply-capable backlog provider operations must support dry-run.',
33
+ });
34
+ }
35
+ });
36
+ export const backlogProviderContractSchema = z
37
+ .object({
38
+ schema_version: z.literal(1).default(1),
39
+ provider: backlogProviderIdSchema,
40
+ adapter_id: z.string().regex(PROVIDER_ID_PATTERN),
41
+ label: z.string().min(2),
42
+ status: z.enum(['active', 'experimental', 'disabled']).default('experimental'),
43
+ auth: z.object({
44
+ mode: backlogAuthModeSchema,
45
+ required_env: z.array(z.string().min(1)).default([]),
46
+ secret_fields: z.array(z.string().min(1)).default([]),
47
+ }),
48
+ capabilities: z.array(backlogProviderCapabilitySchema).min(1),
49
+ mapping: z.object({
50
+ external_project_field: z.string().regex(PROVIDER_FIELD_PATTERN).optional(),
51
+ external_id_field: z.string().regex(PROVIDER_FIELD_PATTERN),
52
+ external_url_field: z.string().regex(PROVIDER_FIELD_PATTERN).optional(),
53
+ canonical_ref_field: z.string().regex(PROVIDER_FIELD_PATTERN),
54
+ parent_ref_field: z.string().regex(PROVIDER_FIELD_PATTERN).optional(),
55
+ entity_type_field: z.string().regex(PROVIDER_FIELD_PATTERN),
56
+ title_field: z.string().regex(PROVIDER_FIELD_PATTERN),
57
+ status_field: z.string().regex(PROVIDER_FIELD_PATTERN),
58
+ }),
59
+ canonical_state_boundary: z.object({
60
+ source_of_truth: z.literal('codesdd'),
61
+ state_paths: z.array(z.string().min(1)).default(['.sdd/state/*.yaml']),
62
+ external_state_authoritative: z.literal(false),
63
+ hidden_state_allowed: z.literal(false),
64
+ }),
65
+ governance: z.object({
66
+ owner: z.string().min(2),
67
+ sync_requires_dry_run: z.boolean().default(true),
68
+ mutation_requires_approval: z.boolean().default(true),
69
+ audit_event: z.string().min(1).default('codesdd.backlog.projection'),
70
+ }),
71
+ })
72
+ .superRefine((contract, context) => {
73
+ const seenOperations = new Set();
74
+ for (const [index, capability] of contract.capabilities.entries()) {
75
+ const key = `${capability.operation}:${capability.entity_kinds.sort().join(',')}`;
76
+ if (seenOperations.has(key)) {
77
+ context.addIssue({
78
+ code: 'custom',
79
+ path: ['capabilities', index, 'operation'],
80
+ message: `Duplicate provider capability declaration: ${key}.`,
81
+ });
82
+ }
83
+ seenOperations.add(key);
84
+ }
85
+ if (contract.auth.mode === 'none' && contract.auth.required_env.length > 0) {
86
+ context.addIssue({
87
+ code: 'custom',
88
+ path: ['auth', 'required_env'],
89
+ message: 'Providers using auth mode none must not require credential environment variables.',
90
+ });
91
+ }
92
+ });
93
+ export const canonicalBacklogItemSchema = z.object({
94
+ ref: z.string().regex(SDD_REF_PATTERN),
95
+ kind: backlogEntityKindSchema.exclude(['task']),
96
+ title: z.string().min(1),
97
+ status: z.string().min(1),
98
+ parent_ref: z.string().regex(SDD_REF_PATTERN).optional(),
99
+ labels: z.array(z.string().min(1)).default([]),
100
+ url: z.string().url().optional(),
101
+ });
102
+ export const backlogProjectionItemSchema = z.object({
103
+ schema_version: z.literal(1).default(1),
104
+ provider: backlogProviderIdSchema,
105
+ canonical_ref: z.string().regex(SDD_REF_PATTERN),
106
+ entity_kind: backlogEntityKindSchema,
107
+ operation: z.enum(['create', 'update', 'link', 'noop']),
108
+ idempotency_key: z.string().min(1),
109
+ external_type: z.string().min(1),
110
+ fields: z.record(z.string().regex(PROVIDER_FIELD_PATTERN), z.union([z.string(), z.array(z.string())])),
111
+ links: z
112
+ .array(z.object({
113
+ rel: z.enum(['parent', 'trace', 'canonical']),
114
+ target_ref: z.string().regex(SDD_REF_PATTERN),
115
+ }))
116
+ .default([]),
117
+ });
118
+ export const backlogProjectionPlanSchema = z.object({
119
+ schema_version: z.literal(1).default(1),
120
+ created_at: z.string().datetime(),
121
+ provider: backlogProviderIdSchema,
122
+ mode: backlogProjectionModeSchema,
123
+ direction: backlogProjectionDirectionSchema,
124
+ source_of_truth: z.literal('codesdd'),
125
+ items: z.array(backlogProjectionItemSchema).default([]),
126
+ warnings: z.array(z.string()).default([]),
127
+ });
128
+ export function createBacklogProviderContract(input) {
129
+ return backlogProviderContractSchema.parse(input);
130
+ }
131
+ export function buildBacklogProjectionItem(input) {
132
+ const contract = createBacklogProviderContract(input.contract);
133
+ const item = canonicalBacklogItemSchema.parse(input.item);
134
+ const operation = input.operation ?? 'create';
135
+ const links = item.parent_ref ? [{ rel: 'parent', target_ref: item.parent_ref }] : [];
136
+ return backlogProjectionItemSchema.parse({
137
+ schema_version: 1,
138
+ provider: contract.provider,
139
+ canonical_ref: item.ref,
140
+ entity_kind: item.kind,
141
+ operation,
142
+ idempotency_key: `${contract.provider}:${item.ref}`,
143
+ external_type: input.external_type,
144
+ fields: {
145
+ [contract.mapping.canonical_ref_field]: item.ref,
146
+ [contract.mapping.entity_type_field]: item.kind,
147
+ [contract.mapping.title_field]: item.title,
148
+ [contract.mapping.status_field]: item.status,
149
+ ...(contract.mapping.parent_ref_field && item.parent_ref
150
+ ? { [contract.mapping.parent_ref_field]: item.parent_ref }
151
+ : {}),
152
+ ...(contract.mapping.external_url_field && item.url ? { [contract.mapping.external_url_field]: item.url } : {}),
153
+ labels: item.labels,
154
+ },
155
+ links,
156
+ });
157
+ }
158
+ //# sourceMappingURL=backlog-provider-contract.js.map
@@ -114,7 +114,7 @@ function classifyRootEntry(name) {
114
114
  test: { kind: 'test', notes: 'Testes automatizados' },
115
115
  docs: { kind: 'docs', notes: 'Documentacao' },
116
116
  config: { kind: 'config', notes: 'Configuracoes' },
117
- openspec: { kind: 'openspec', notes: 'Runtime do OpenSpec' },
117
+ codesdd: { kind: 'codesdd', notes: 'Runtime do CodeSDD' },
118
118
  package_json: { kind: 'manifest', notes: 'Manifesto principal' },
119
119
  };
120
120
  return map[name] || { kind: 'directory', notes: 'Diretorio detectado no projeto' };
@@ -131,7 +131,7 @@ async function inferRepoMap(projectRoot, deep) {
131
131
  'test',
132
132
  'docs',
133
133
  'config',
134
- 'openspec',
134
+ 'codesdd',
135
135
  ];
136
136
  for (const candidate of rootCandidates) {
137
137
  if (await fileExists(path.join(projectRoot, candidate))) {
@@ -1,3 +1,5 @@
1
+ import { type BacklogItem, type DiscoveryRecord, type FrontendGapRecord, type TechDebtRecord } from './types.js';
2
+ import { type SddStateSnapshot } from './state.js';
1
3
  export interface SddCheckOptions {
2
4
  render?: boolean;
3
5
  strict?: boolean;
@@ -11,6 +13,8 @@ export interface SddCheckReport {
11
13
  backlog: number;
12
14
  techDebt: number;
13
15
  finalizeQueue: number;
16
+ finalizeQueuePending: number;
17
+ finalizeQueueDone: number;
14
18
  frontendEnabled: boolean;
15
19
  frontendGaps: number;
16
20
  frontendRoutes: number;
@@ -45,6 +49,46 @@ export interface SddCheckReport {
45
49
  };
46
50
  };
47
51
  }
52
+ export declare function checkUniqueIds<T extends {
53
+ id: string;
54
+ }>(items: T[], scope: string, errors: string[]): void;
55
+ export declare function hasForbiddenTitleToken(title: string): string | null;
56
+ export declare function validateDiscoveryRecords(records: DiscoveryRecord[], errors: string[]): void;
57
+ export declare function validateBacklog(items: BacklogItem[], errors: string[], warnings: string[]): void;
58
+ export declare function validateReferentialIntegrity(snapshot: SddStateSnapshot, errors: string[], warnings: string[], isStrict: boolean): void;
59
+ export declare function validateSkillOperationalIntegrity(snapshot: SddStateSnapshot, errors: string[]): void;
60
+ export declare function computeGraphSummary(items: BacklogItem[]): {
61
+ readyForParallel: number;
62
+ blocked: number;
63
+ lockConflicts: number;
64
+ };
65
+ export declare function roundPercent(done: number, total: number): number;
66
+ export declare function computeProgress(items: BacklogItem[]): {
67
+ progressGlobal: {
68
+ done: number;
69
+ total: number;
70
+ percent: number;
71
+ };
72
+ progressByRadar: Array<{
73
+ radar_id: string;
74
+ done: number;
75
+ total: number;
76
+ percent: number;
77
+ }>;
78
+ };
79
+ export declare function validateTechDebt(items: TechDebtRecord[], errors: string[]): void;
80
+ export declare function validateFrontendReferences(gaps: FrontendGapRecord[], backlog: BacklogItem[], errors: string[], warnings: string[]): void;
81
+ export declare function validateActiveTaskChecklist(activeDir: string, items: BacklogItem[], warnings: string[]): Promise<void>;
82
+ export declare function validateWorkspaceCoherence(activeDir: string, archivedDir: string, items: BacklogItem[], warnings: string[]): Promise<void>;
83
+ export declare function isPrivacyComplianceBacklogItem(item: BacklogItem): boolean;
84
+ export declare function validatePrivacySourceRegistry(snapshot: SddStateSnapshot, warnings: string[]): void;
85
+ export declare function validatePrivacyWorkspaceChecklist(activeDir: string, items: BacklogItem[], warnings: string[]): Promise<void>;
86
+ export declare function validateTraceabilityWorkspaceChecklist(projectRoot: string, activeDir: string, items: BacklogItem[], warnings: string[]): Promise<void>;
87
+ export declare function featureRequiresQualityContract(item: BacklogItem): boolean;
88
+ export declare function detectMissingQualityArtifacts(activeDir: string, items: BacklogItem[]): Promise<string[]>;
89
+ export declare function parseRouteToken(value: string): string | null;
90
+ export declare function featureHasMetadataFrontendEvidence(item: BacklogItem): boolean;
91
+ export declare function validateCanonicalSddStructure(memoryRoot: string, errors: string[]): Promise<void>;
48
92
  export declare class SddCheckCommand {
49
93
  execute(projectRoot: string, options?: SddCheckOptions): Promise<SddCheckReport>;
50
94
  }