@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
@@ -0,0 +1,317 @@
1
+ schema_version: 1
2
+ contract_id: devtrack-api-contract-pack
3
+ skill_id: devtrack-api
4
+ contract_version: 1
5
+ status: active
6
+ authority:
7
+ codesdd_source: .sdd/skills/curated/devtrack-api/
8
+ foundation_source: devtrack-foundation-api/src/
9
+ source_priority:
10
+ - devtrack-foundation-api source tree
11
+ - .sdd/skills/curated/devtrack-api/references/foundation-layout.md
12
+ - .sdd/skills/curated/devtrack-api/SKILL.md
13
+ - this contract pack
14
+ consumer_rule: Consumer copies are one-way CodeSDD materializations and must not become upstream sources of truth.
15
+ derivation_profiles:
16
+ prototype:
17
+ default: false
18
+ purpose: Explore functionality quickly without claiming Foundation compatibility.
19
+ allowed_only_with: Explicit DEB or ADR exception before implementation.
20
+ enforcement:
21
+ path_conformance: warn
22
+ semantic_conformance: warn
23
+ finalize_blocking: false
24
+ required_evidence:
25
+ - chosen profile and reason
26
+ - accepted architectural risks
27
+ - follow-up path for foundation-compatible validation when needed
28
+ foundation-compatible:
29
+ default: true
30
+ purpose: Produce a derived API that follows Foundation physical layout, NestJS module boundaries, ports, TypeORM runtime, and validation expectations.
31
+ allowed_only_with: No exception required.
32
+ enforcement:
33
+ path_conformance: block_on_p0
34
+ semantic_conformance: block_on_p0
35
+ finalize_blocking: true
36
+ required_evidence:
37
+ - package structure preview approved by human planner
38
+ - policy pool generated from this skill
39
+ - skill provenance and sync evidence
40
+ - semantic architecture validation result
41
+ enterprise-strict:
42
+ default: false
43
+ purpose: Produce a consumer API with audit-grade evidence, no unresolved P0/P1 drift, and formal exception handling for every accepted divergence.
44
+ allowed_only_with: Human approval in DEB or ADR before FEAT execution.
45
+ enforcement:
46
+ path_conformance: block_on_p0_p1
47
+ semantic_conformance: block_on_p0_p1
48
+ finalize_blocking: true
49
+ required_evidence:
50
+ - all foundation-compatible evidence
51
+ - no open P0 or P1 drift
52
+ - ADR-backed exception for every accepted P2 drift
53
+ - field-validation packet plan
54
+ severity_model:
55
+ P0:
56
+ meaning: Must not be finalized for foundation-compatible or enterprise-strict work.
57
+ required_action: Block execution or finalize unless a profile explicitly permits warning-only handling.
58
+ P1:
59
+ meaning: High-risk drift that may compromise Foundation fidelity or enterprise audit evidence.
60
+ required_action: Block in enterprise-strict; require formal exception or remediation in foundation-compatible.
61
+ P2:
62
+ meaning: Lower-risk drift, documentation gap, or profile-specific variance.
63
+ required_action: Record evidence, exception, or follow-up before closure.
64
+ rules:
65
+ - id: DTAPI-P0-PROFILE-001
66
+ severity: P0
67
+ title: Derivation profile must be explicit before implementation.
68
+ applies_to:
69
+ - DEB
70
+ - EPIC
71
+ - FEAT
72
+ detect:
73
+ - missing profile among prototype, foundation-compatible, enterprise-strict
74
+ required_response:
75
+ - ask the human planner to approve the profile
76
+ - record profile in the debate, FEAT workspace, or policy pool
77
+ - id: DTAPI-P0-PREVIEW-001
78
+ severity: P0
79
+ title: Early devtrack-api planning must include package structure preview.
80
+ applies_to:
81
+ - DEB
82
+ - FEAT
83
+ detect:
84
+ - first two or three devtrack-api debates lack a package tree preview
85
+ - package tree is not explicitly human-approved
86
+ required_response:
87
+ - generate package structure preview
88
+ - request human approval before FEAT execution
89
+ - id: DTAPI-P0-PATH-001
90
+ severity: P0
91
+ title: Proposed paths must match canonical Foundation-compatible paths.
92
+ applies_to:
93
+ - DEB
94
+ - FEAT
95
+ - source
96
+ detect:
97
+ - forbidden paths from SKILL.md or foundation-layout.md
98
+ - new domain entities folder outside approved legacy contexts
99
+ - context-owned infrastructure adapters
100
+ - transport-less presentation context folders
101
+ required_response:
102
+ - replace with canonical path
103
+ - or record ADR-backed divergence before execution
104
+ - id: DTAPI-P0-IMPORTS-001
105
+ severity: P0
106
+ title: Source and tests must use Foundation-compatible path aliases instead of relative imports.
107
+ applies_to:
108
+ - DEB
109
+ - FEAT
110
+ - source
111
+ - validator
112
+ detect:
113
+ - missing tsconfig baseUrl or paths for @domain, @application, @presentation, @infrastructure, @shared, or @src
114
+ - relative imports inside src or tests, including same-folder relative imports
115
+ - import aliases diverging from devtrack-foundation-api without ADR
116
+ required_response:
117
+ - add or repair the Foundation alias map before implementation/finalize
118
+ - replace relative imports with canonical aliases
119
+ - or record ADR-backed divergence before execution
120
+ - id: DTAPI-P0-TYPEORM-001
121
+ severity: P0
122
+ title: TypeORM-named repositories must use real TypeORM runtime wiring.
123
+ applies_to:
124
+ - source
125
+ - validator
126
+ detect:
127
+ - files ending in .typeorm-repository.ts without InjectRepository or Repository usage
128
+ - in-memory Map persistence inside TypeORM-named repositories
129
+ - missing TypeOrmModule.forFeature wiring for concrete ORM repositories
130
+ required_response:
131
+ - implement real TypeORM repository wiring
132
+ - rename prototype adapters so they do not claim TypeORM compatibility
133
+ - or downgrade to prototype with explicit exception
134
+ - id: DTAPI-P0-COMPOSITION-001
135
+ severity: P0
136
+ title: Presentation modules must not become composition roots for application and infrastructure.
137
+ applies_to:
138
+ - source
139
+ - validator
140
+ detect:
141
+ - presentation imports concrete infrastructure adapters
142
+ - presentation module instantiates repositories, adapters, services, or use cases directly
143
+ - dependency injection tokens owned by presentation for application ports
144
+ required_response:
145
+ - move provider ownership to application or infrastructure modules
146
+ - keep presentation importing application boundaries only
147
+ - id: DTAPI-P0-MODULES-001
148
+ severity: P0
149
+ title: Aggregate application, infrastructure, and presentation modules are mandatory for compatible APIs.
150
+ applies_to:
151
+ - source
152
+ - validator
153
+ detect:
154
+ - missing src/application/application.module.ts
155
+ - missing src/infrastructure/infrastructure.module.ts
156
+ - missing src/presentation/presentation.module.ts or transport aggregate module
157
+ - module-named files that export constants instead of NestJS modules
158
+ required_response:
159
+ - add or correct aggregate modules before finalization
160
+ - id: DTAPI-P0-PORTS-001
161
+ severity: P0
162
+ title: Ports must have correct ownership and explicit symbols.
163
+ applies_to:
164
+ - source
165
+ - validator
166
+ detect:
167
+ - input use-case ports without exported Symbol (e.g., RegisterUseCasePort missing RegisterUseCasePortSymbol)
168
+ - output ports without exported Symbol
169
+ - multiple unrelated use-case ports grouped into one file
170
+ - BO-pattern repository ports placed in domain repository-ports folders
171
+ required_response:
172
+ - split ports by use case or output contract
173
+ - export Symbol plus interface for both input and output ports
174
+ - wire providers through the owning module
175
+ - id: DTAPI-P1-DOMAIN-001
176
+ severity: P1
177
+ title: New domain contexts must follow BO and VO contracts.
178
+ applies_to:
179
+ - source
180
+ - validator
181
+ detect:
182
+ - new contexts using entity-pattern without ADR
183
+ - BO classes missing the expected Foundation business-object shape
184
+ - VO classes missing normalize, isValid, getValue, toString, or equals when applicable
185
+ required_response:
186
+ - align to BO-pattern
187
+ - record ADR for entity-pattern divergence
188
+ - id: DTAPI-P1-RUNTIME-001
189
+ severity: P1
190
+ title: Persistence runtime artifacts must exist when an API claims operational TypeORM compatibility.
191
+ applies_to:
192
+ - source
193
+ - validator
194
+ detect:
195
+ - missing DataSource or TypeORM root config
196
+ - missing migrations for new persistent tables
197
+ - missing database indexes or uniqueness rules required by the domain contract
198
+ required_response:
199
+ - add runtime config and migrations
200
+ - or explicitly select prototype profile
201
+ - id: DTAPI-P1-APPONLY-001
202
+ severity: P1
203
+ title: Application-only contexts (no domain counterpart) require ADR justification.
204
+ applies_to:
205
+ - source
206
+ - validator
207
+ - DEB
208
+ detect:
209
+ - src/application/business/<context>/ exists without src/domain/<context>/
210
+ - new application-only context introduced without ADR in .sdd/core/adrs/
211
+ - application-only context not enumerated in foundation-layout.md §2.1.1
212
+ required_response:
213
+ - record ADR naming the orchestration responsibility and why no domain artifacts are introduced
214
+ - update foundation-layout.md §2.1.1 with the new entry
215
+ - confirm the context is composition, adaptation, or coordination only — not new business invariants
216
+ grandfathered:
217
+ - aws-integrations
218
+ - foundation
219
+ - id: DTAPI-P1-EVIDENCE-001
220
+ severity: P1
221
+ title: Skill evidence must prove semantic conformance, not only skill usage.
222
+ applies_to:
223
+ - FEAT
224
+ - quality
225
+ detect:
226
+ - skill_evidence only states that devtrack-api shaped the work
227
+ - no policy result, package preview, or semantic validation evidence is attached
228
+ required_response:
229
+ - record applied policy id, profile, validation result, and exception status
230
+ - id: DTAPI-P2-LANGUAGE-001
231
+ severity: P2
232
+ title: Bounded-context language and naming must be explicit.
233
+ applies_to:
234
+ - DEB
235
+ - FEAT
236
+ - source
237
+ detect:
238
+ - mixed Portuguese and English context naming without rationale
239
+ - new context name diverges from Foundation naming convention without decision
240
+ required_response:
241
+ - record naming rationale
242
+ - align context names before implementation when possible
243
+ codesdd_validate_drift_map:
244
+ CVD-01:
245
+ observed: Functional API and passing tests did not prove Foundation fidelity.
246
+ mapped_rules:
247
+ - DTAPI-P0-PROFILE-001
248
+ - DTAPI-P1-EVIDENCE-001
249
+ CVD-02:
250
+ observed: Path and suffix checks were weaker than semantic checks.
251
+ mapped_rules:
252
+ - DTAPI-P0-PATH-001
253
+ - DTAPI-P0-IMPORTS-001
254
+ - DTAPI-P0-TYPEORM-001
255
+ - DTAPI-P0-COMPOSITION-001
256
+ CVD-03:
257
+ observed: TypeORM repository names masked in-memory Map implementations.
258
+ mapped_rules:
259
+ - DTAPI-P0-TYPEORM-001
260
+ - DTAPI-P1-RUNTIME-001
261
+ CVD-04:
262
+ observed: Presentation REST module acted as application and infrastructure composition root.
263
+ mapped_rules:
264
+ - DTAPI-P0-COMPOSITION-001
265
+ - DTAPI-P0-MODULES-001
266
+ CVD-05:
267
+ observed: Ports were grouped and lacked symbols.
268
+ mapped_rules:
269
+ - DTAPI-P0-PORTS-001
270
+ CVD-06:
271
+ observed: BO and VO classes were useful but not Foundation-compatible enough.
272
+ mapped_rules:
273
+ - DTAPI-P1-DOMAIN-001
274
+ CVD-07:
275
+ observed: Runtime persistence artifacts such as DataSource, migrations, and TypeORM module wiring were absent.
276
+ mapped_rules:
277
+ - DTAPI-P1-RUNTIME-001
278
+ CVD-08:
279
+ observed: Skill evidence was declarative, not executable.
280
+ mapped_rules:
281
+ - DTAPI-P1-EVIDENCE-001
282
+ CVD-09:
283
+ observed: Application-only contexts (e.g., aws-integrations, foundation) existed in src/application/business without domain counterparts and without explicit governance, producing false-positive drift in path validators.
284
+ mapped_rules:
285
+ - DTAPI-P1-APPONLY-001
286
+ - DTAPI-P0-PATH-001
287
+ field_evidence_drift_map:
288
+ WCA-01:
289
+ observed: A derived API planned/implemented before devtrack-api became required evidence, then required a later corrective FEAT.
290
+ mapped_rules:
291
+ - DTAPI-P0-PROFILE-001
292
+ - DTAPI-P1-EVIDENCE-001
293
+ WCA-02:
294
+ observed: A derived API used relative imports and lacked Foundation-compatible tsconfig alias paths.
295
+ mapped_rules:
296
+ - DTAPI-P0-IMPORTS-001
297
+ WCA-03:
298
+ observed: A derived API used TypeORM repositories without the Foundation auth module idiom of TypeOrmModule.forFeature and InjectRepository where applicable.
299
+ mapped_rules:
300
+ - DTAPI-P0-TYPEORM-001
301
+ - DTAPI-P1-RUNTIME-001
302
+ early_debate_gate:
303
+ applies_to: first two or three DEBs that plan a new devtrack-api project or major API theme
304
+ required_outputs:
305
+ - selected derivation profile
306
+ - package structure preview
307
+ - human approval or correction
308
+ - exception list with ADR refs when applicable
309
+ - policy pool seed derived from this contract pack
310
+ future_consumers:
311
+ - FEAT-0233 package preview gate
312
+ - FEAT-0234 project-local skill policy pool
313
+ - FEAT-0235 active FEAT workspace policy injection
314
+ - FEAT-0236 semantic architecture validator
315
+ - FEAT-0237 finalize lifecycle gate
316
+ - FEAT-0238 skill provenance and applied-policy evidence
317
+ - FEAT-0239 future field validation protocol
@@ -0,0 +1,95 @@
1
+ # devtrack-api Field Validation Protocol
2
+
3
+ ## Scope
4
+
5
+ This protocol defines the minimum field evidence required before CodeSDD treats the reformed `devtrack-api` skill as proven in a real consumer project.
6
+
7
+ Field evidence belongs in the consumer project's own CodeSDD quality ledger or handoff. CodeSDD may keep the protocol, a summary, and an external reference, but it must not copy private consumer artifacts into this repository.
8
+
9
+ ## Minimum Validation Target
10
+
11
+ A valid field-validation packet must cover:
12
+
13
+ - at least one derived consumer project using the reformed `devtrack-api` skill;
14
+ - at least two consumer `DEB-*` artifacts with detailed implementation plan tables;
15
+ - the CodeSDD commit or release that supplied the consumer skill copy;
16
+ - the Foundation checkout path, commit, or release used as architectural evidence when available;
17
+ - sync evidence from [consumer-sync-policy.md](consumer-sync-policy.md);
18
+ - selected derivation profile and applied policy evidence from [contract-pack.yaml](contract-pack.yaml);
19
+ - a divergence matrix showing D-01 through D-08 closed for each validated debate.
20
+
21
+ ## Divergence Classes
22
+
23
+ | Class | Field check | Closed when |
24
+ | --- | --- | --- |
25
+ | D-01 | New non-legacy domain contexts avoid `entities/` and use `business-objects/*.bo.ts`. | The debate maps each new BO-pattern context to `src/domain/<context>/business-objects/<name>.bo.ts`, or cites an ADR for entity-pattern divergence. |
26
+ | D-02 | Domain exceptions are not invented per context. | The debate uses `src/shared/domain/exceptions/` or records an ADR-backed exception. |
27
+ | D-03 | Value objects use the `.vo.ts` suffix. | The debate uses `<name>.vo.ts` and contains no `.value-object.ts` plan entries. |
28
+ | D-04 | TypeORM persistence stays under centralized `src/infrastructure/adapters/orm/`. | Entities use `*.orm-entity.ts`, repositories use the ORM repository folder, and no `src/infrastructure/<context>/persistence/typeorm/` path remains. |
29
+ | D-05 | Infrastructure repositories use explicit TypeORM repository names. | Concrete repositories use `<name>.typeorm-repository.ts`; ambiguous `<name>.repository.ts` entries are absent or justified by ADR. |
30
+ | D-06 | BO-pattern repository ports live in application `ports/out/`. | New BO-pattern contexts do not add `domain/<context>/repository-ports/`; application outbound ports are listed instead. |
31
+ | D-07 | Presentation is segmented by transport before context. | REST plans use `src/presentation/rest/<context>/...` or another explicit transport folder. |
32
+ | D-08 | Infrastructure adapters are organized by subsystem, not business context. | Plans use `src/infrastructure/adapters/<subsystem>/...`; no `src/infrastructure/<context>/adapters/` entries remain. |
33
+
34
+ ## Required Consumer Evidence
35
+
36
+ For each validated consumer debate, record:
37
+
38
+ 1. consumer project id and repository reference;
39
+ 2. debate id and title;
40
+ 3. whether the debate was created or revised after the reformed `devtrack-api` skill was synchronized;
41
+ 4. path inventory or implementation table location;
42
+ 5. D-01 through D-08 status, using only `closed`, `not_applicable`, or `accepted_exception`;
43
+ 6. ADR reference for every `accepted_exception`;
44
+ 7. validation commands and outcomes from the consumer project, including `codesdd sdd check --render`, `codesdd sdd diagnose`, and relevant backend tests/build commands;
45
+ 8. quality-ledger or handoff reference where the evidence lives.
46
+
47
+ Do not mark field validation complete when any D-class is `open`, undocumented, or only verbally accepted.
48
+
49
+ ## Consumer Packet Template
50
+
51
+ ```yaml
52
+ devtrack_api_field_validation:
53
+ protocol: devtrack-api-field-validation-v1
54
+ consumer_project: "<project-id>"
55
+ consumer_repo_ref: "<path-or-remote-ref>"
56
+ codesdd_source_ref: "<commit-or-release>"
57
+ foundation_source_ref: "<path-commit-or-release>"
58
+ sync_evidence_ref: "<consumer-quality-or-handoff-ref>"
59
+ debates:
60
+ - debate_ref: "DEB-####"
61
+ title: "<debate title>"
62
+ plan_table_ref: "<file#section-or-line>"
63
+ statuses:
64
+ D-01: closed
65
+ D-02: closed
66
+ D-03: closed
67
+ D-04: closed
68
+ D-05: closed
69
+ D-06: closed
70
+ D-07: closed
71
+ D-08: closed
72
+ accepted_exception_refs: []
73
+ validation_commands:
74
+ - command: "codesdd sdd check --render"
75
+ result: "pass"
76
+ - command: "codesdd sdd diagnose"
77
+ result: "pass"
78
+ applied_contract:
79
+ contract_pack_ref: "references/contract-pack.yaml"
80
+ profile: "foundation-compatible"
81
+ open_policy_findings: []
82
+ ```
83
+
84
+ ## CodeSDD Closure Rule
85
+
86
+ CodeSDD may close the field-validation expectation only when:
87
+
88
+ - the consumer packet references at least two detailed debates;
89
+ - all D-01 through D-08 rows are `closed`, `not_applicable`, or `accepted_exception`;
90
+ - every accepted exception has an ADR or explicit consumer SDD decision;
91
+ - the consumer packet records sync-policy evidence;
92
+ - the consumer packet records the selected derivation profile and applied contract-pack evidence;
93
+ - the evidence remains in the consumer repository, with only a summary and reference retained here.
94
+
95
+ If this evidence is not yet available, CodeSDD should keep a follow-up SDD item or formal exception instead of claiming field adoption is proven.