@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,372 @@
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
+ foundation_wins_rule: If devtrack-api guidance conflicts with devtrack-foundation-api source or Foundation layout evidence, Foundation wins unless a governed ADR or contract-pack exception records the divergence.
16
+ isolation_rule: devtrack-api governs backend/API work only; devtrack-angular remains the isolated Angular Admin/backoffice skill and devtrack-flutter remains the isolated Flutter/Dart skill.
17
+ portable_agents:
18
+ canonical_targets:
19
+ - openai
20
+ - codex
21
+ - claude
22
+ - cursor
23
+ - gemini
24
+ - kimi
25
+ - opencode
26
+ - generic-markdown-cli
27
+ aliases:
28
+ claude-code: claude
29
+ kimmy-code: kimi
30
+ kilo-code: generic-markdown-cli
31
+ open-code: opencode
32
+ OpenCode: opencode
33
+ Kimi: kimi
34
+ artifact_map:
35
+ openai: agents/openai.yaml
36
+ codex: agents/codex.yaml
37
+ claude: agents/claude-code.yaml
38
+ cursor: agents/cursor.yaml
39
+ gemini: agents/gemini.yaml
40
+ kimi: agents/kimi.yaml
41
+ opencode: agents/opencode.yaml
42
+ generic-markdown-cli: SKILL.md
43
+ required_artifacts:
44
+ - SKILL.md
45
+ - agents/openai.yaml
46
+ - agents/codex.yaml
47
+ - agents/claude-code.yaml
48
+ - agents/cursor.yaml
49
+ - agents/gemini.yaml
50
+ - agents/kimi.yaml
51
+ - agents/opencode.yaml
52
+ - references/portable-agent-contract.md
53
+ derivation_profiles:
54
+ prototype:
55
+ default: false
56
+ purpose: Explore functionality quickly without claiming Foundation compatibility.
57
+ allowed_only_with: Explicit DEB or ADR exception before implementation.
58
+ enforcement:
59
+ path_conformance: warn
60
+ semantic_conformance: warn
61
+ finalize_blocking: false
62
+ required_evidence:
63
+ - chosen profile and reason
64
+ - accepted architectural risks
65
+ - follow-up path for foundation-compatible validation when needed
66
+ foundation-compatible:
67
+ default: true
68
+ purpose: Produce a derived API that follows Foundation physical layout, NestJS module boundaries, ports, TypeORM runtime, and validation expectations.
69
+ allowed_only_with: No exception required.
70
+ enforcement:
71
+ path_conformance: block_on_p0
72
+ semantic_conformance: block_on_p0
73
+ finalize_blocking: true
74
+ required_evidence:
75
+ - package structure preview approved by human planner
76
+ - policy pool generated from this skill
77
+ - skill provenance and sync evidence
78
+ - semantic architecture validation result
79
+ enterprise-strict:
80
+ default: false
81
+ purpose: Produce a consumer API with audit-grade evidence, no unresolved P0/P1 drift, and formal exception handling for every accepted divergence.
82
+ allowed_only_with: Human approval in DEB or ADR before FEAT execution.
83
+ enforcement:
84
+ path_conformance: block_on_p0_p1
85
+ semantic_conformance: block_on_p0_p1
86
+ finalize_blocking: true
87
+ required_evidence:
88
+ - all foundation-compatible evidence
89
+ - no open P0 or P1 drift
90
+ - ADR-backed exception for every accepted P2 drift
91
+ - field-validation packet plan
92
+ severity_model:
93
+ P0:
94
+ meaning: Must not be finalized for foundation-compatible or enterprise-strict work.
95
+ required_action: Block execution or finalize unless a profile explicitly permits warning-only handling.
96
+ P1:
97
+ meaning: High-risk drift that may compromise Foundation fidelity or enterprise audit evidence.
98
+ required_action: Block in enterprise-strict; require formal exception or remediation in foundation-compatible.
99
+ P2:
100
+ meaning: Lower-risk drift, documentation gap, or profile-specific variance.
101
+ required_action: Record evidence, exception, or follow-up before closure.
102
+ rules:
103
+ - id: DTAPI-P0-FOUNDATION-001
104
+ severity: P0
105
+ title: Foundation evidence wins over generated or adapter-specific guidance.
106
+ applies_to:
107
+ - DEB
108
+ - EPIC
109
+ - FEAT
110
+ - source
111
+ - validator
112
+ detect:
113
+ - plan, code, or agent adapter diverges from devtrack-foundation-api source without ADR
114
+ - generated path, module, import, or TypeORM rule conflicts with foundation-layout.md
115
+ required_response:
116
+ - align with devtrack-foundation-api source or foundation-layout.md
117
+ - or record an ADR-backed and profile-compatible exception before execution or finalize
118
+ - id: DTAPI-P0-PROFILE-001
119
+ severity: P0
120
+ title: Derivation profile must be explicit before implementation.
121
+ applies_to:
122
+ - DEB
123
+ - EPIC
124
+ - FEAT
125
+ detect:
126
+ - missing profile among prototype, foundation-compatible, enterprise-strict
127
+ required_response:
128
+ - ask the human planner to approve the profile
129
+ - record profile in the debate, FEAT workspace, or policy pool
130
+ - id: DTAPI-P0-PREVIEW-001
131
+ severity: P0
132
+ title: Early devtrack-api planning must include package structure preview.
133
+ applies_to:
134
+ - DEB
135
+ - FEAT
136
+ detect:
137
+ - first two or three devtrack-api debates lack a package tree preview
138
+ - package tree is not explicitly human-approved
139
+ required_response:
140
+ - generate package structure preview
141
+ - request human approval before FEAT execution
142
+ - id: DTAPI-P0-PATH-001
143
+ severity: P0
144
+ title: Proposed paths must match canonical Foundation-compatible paths.
145
+ applies_to:
146
+ - DEB
147
+ - FEAT
148
+ - source
149
+ detect:
150
+ - forbidden paths from SKILL.md or foundation-layout.md
151
+ - new domain entities folder outside approved legacy contexts
152
+ - context-owned infrastructure adapters
153
+ - per-context or per-entity TypeORM modules under src/infrastructure/adapters/orm
154
+ - transport-less presentation context folders
155
+ required_response:
156
+ - replace with canonical path
157
+ - or record ADR-backed divergence before execution
158
+ - id: DTAPI-P0-IMPORTS-001
159
+ severity: P0
160
+ title: Source and tests must use Foundation-compatible path aliases instead of relative imports.
161
+ applies_to:
162
+ - DEB
163
+ - FEAT
164
+ - source
165
+ - validator
166
+ detect:
167
+ - missing tsconfig baseUrl or paths for @domain, @application, @presentation, @infrastructure, @shared, or @src
168
+ - relative imports inside src or tests, including same-folder relative imports
169
+ - import aliases diverging from devtrack-foundation-api without ADR
170
+ required_response:
171
+ - add or repair the Foundation alias map before implementation/finalize
172
+ - replace relative imports with canonical aliases
173
+ - or record ADR-backed divergence before execution
174
+ - id: DTAPI-P0-TYPEORM-001
175
+ severity: P0
176
+ title: TypeORM-named repositories must use real TypeORM runtime wiring.
177
+ applies_to:
178
+ - source
179
+ - validator
180
+ detect:
181
+ - files ending in .typeorm-repository.ts without InjectRepository or Repository usage
182
+ - in-memory Map persistence inside TypeORM-named repositories
183
+ - missing TypeOrmModule.forFeature wiring for concrete ORM repositories
184
+ - concrete ORM repositories not provided and exported through src/infrastructure/adapters/orm/orm.module.ts
185
+ required_response:
186
+ - implement real TypeORM repository wiring
187
+ - rename prototype adapters so they do not claim TypeORM compatibility
188
+ - or downgrade to prototype with explicit exception
189
+ - id: DTAPI-P0-COMPOSITION-001
190
+ severity: P0
191
+ title: Presentation modules must not become composition roots for application and infrastructure.
192
+ applies_to:
193
+ - source
194
+ - validator
195
+ detect:
196
+ - presentation imports concrete infrastructure adapters
197
+ - presentation module instantiates repositories, adapters, services, or use cases directly
198
+ - dependency injection tokens owned by presentation for application ports
199
+ required_response:
200
+ - move provider ownership to application or infrastructure modules
201
+ - keep presentation importing application boundaries only
202
+ - id: DTAPI-P0-MODULES-001
203
+ severity: P0
204
+ title: Aggregate application, infrastructure, and presentation modules are mandatory for compatible APIs.
205
+ applies_to:
206
+ - source
207
+ - validator
208
+ detect:
209
+ - missing src/application/application.module.ts
210
+ - missing src/infrastructure/infrastructure.module.ts
211
+ - missing src/presentation/presentation.module.ts or transport aggregate module
212
+ - module-named files that export constants instead of NestJS modules
213
+ required_response:
214
+ - add or correct aggregate modules before finalization
215
+ - id: DTAPI-P0-PORTS-001
216
+ severity: P0
217
+ title: Ports must have correct ownership and explicit symbols.
218
+ applies_to:
219
+ - source
220
+ - validator
221
+ detect:
222
+ - input use-case ports without exported Symbol (e.g., RegisterUseCasePort missing RegisterUseCasePortSymbol)
223
+ - output ports without exported Symbol
224
+ - multiple unrelated use-case ports grouped into one file
225
+ - BO-pattern repository ports placed in domain repository-ports folders
226
+ required_response:
227
+ - split ports by use case or output contract
228
+ - export Symbol plus interface for both input and output ports
229
+ - wire providers through the owning module
230
+ - id: DTAPI-P1-DOMAIN-001
231
+ severity: P1
232
+ title: New domain contexts must follow BO and VO contracts.
233
+ applies_to:
234
+ - source
235
+ - validator
236
+ detect:
237
+ - new contexts using entity-pattern without ADR
238
+ - BO classes missing the expected Foundation business-object shape
239
+ - VO classes missing normalize, isValid, getValue, toString, or equals when applicable
240
+ required_response:
241
+ - align to BO-pattern
242
+ - record ADR for entity-pattern divergence
243
+ - id: DTAPI-P1-RUNTIME-001
244
+ severity: P1
245
+ title: Persistence runtime artifacts must exist when an API claims operational TypeORM compatibility.
246
+ applies_to:
247
+ - source
248
+ - validator
249
+ detect:
250
+ - missing DataSource or TypeORM root config
251
+ - missing migrations for new persistent tables
252
+ - missing database indexes or uniqueness rules required by the domain contract
253
+ required_response:
254
+ - add runtime config and migrations
255
+ - or explicitly select prototype profile
256
+ - id: DTAPI-P1-APPONLY-001
257
+ severity: P1
258
+ title: Application-only contexts (no domain counterpart) require ADR justification.
259
+ applies_to:
260
+ - source
261
+ - validator
262
+ - DEB
263
+ detect:
264
+ - src/application/business/<context>/ exists without src/domain/<context>/
265
+ - new application-only context introduced without ADR in .sdd/core/adrs/
266
+ - application-only context not enumerated in foundation-layout.md §2.1.1
267
+ required_response:
268
+ - record ADR naming the orchestration responsibility and why no domain artifacts are introduced
269
+ - update foundation-layout.md §2.1.1 with the new entry
270
+ - confirm the context is composition, adaptation, or coordination only — not new business invariants
271
+ grandfathered:
272
+ - aws-integrations
273
+ - foundation
274
+ - id: DTAPI-P1-EVIDENCE-001
275
+ severity: P1
276
+ title: Skill evidence must prove semantic conformance, not only skill usage.
277
+ applies_to:
278
+ - FEAT
279
+ - quality
280
+ detect:
281
+ - skill_evidence only states that devtrack-api shaped the work
282
+ - no policy result, package preview, or semantic validation evidence is attached
283
+ required_response:
284
+ - record applied policy id, profile, validation result, and exception status
285
+ - id: DTAPI-P2-LANGUAGE-001
286
+ severity: P2
287
+ title: Bounded-context language and naming must be explicit.
288
+ applies_to:
289
+ - DEB
290
+ - FEAT
291
+ - source
292
+ detect:
293
+ - mixed Portuguese and English context naming without rationale
294
+ - new context name diverges from Foundation naming convention without decision
295
+ required_response:
296
+ - record naming rationale
297
+ - align context names before implementation when possible
298
+ codesdd_validate_drift_map:
299
+ CVD-01:
300
+ observed: Functional API and passing tests did not prove Foundation fidelity.
301
+ mapped_rules:
302
+ - DTAPI-P0-PROFILE-001
303
+ - DTAPI-P1-EVIDENCE-001
304
+ CVD-02:
305
+ observed: Path and suffix checks were weaker than semantic checks.
306
+ mapped_rules:
307
+ - DTAPI-P0-PATH-001
308
+ - DTAPI-P0-IMPORTS-001
309
+ - DTAPI-P0-TYPEORM-001
310
+ - DTAPI-P0-COMPOSITION-001
311
+ CVD-03:
312
+ observed: TypeORM repository names masked in-memory Map implementations.
313
+ mapped_rules:
314
+ - DTAPI-P0-TYPEORM-001
315
+ - DTAPI-P1-RUNTIME-001
316
+ CVD-04:
317
+ observed: Presentation REST module acted as application and infrastructure composition root.
318
+ mapped_rules:
319
+ - DTAPI-P0-COMPOSITION-001
320
+ - DTAPI-P0-MODULES-001
321
+ CVD-05:
322
+ observed: Ports were grouped and lacked symbols.
323
+ mapped_rules:
324
+ - DTAPI-P0-PORTS-001
325
+ CVD-06:
326
+ observed: BO and VO classes were useful but not Foundation-compatible enough.
327
+ mapped_rules:
328
+ - DTAPI-P1-DOMAIN-001
329
+ CVD-07:
330
+ observed: Runtime persistence artifacts such as DataSource, migrations, and TypeORM module wiring were absent.
331
+ mapped_rules:
332
+ - DTAPI-P1-RUNTIME-001
333
+ CVD-08:
334
+ observed: Skill evidence was declarative, not executable.
335
+ mapped_rules:
336
+ - DTAPI-P1-EVIDENCE-001
337
+ CVD-09:
338
+ 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.
339
+ mapped_rules:
340
+ - DTAPI-P1-APPONLY-001
341
+ - DTAPI-P0-PATH-001
342
+ field_evidence_drift_map:
343
+ WCA-01:
344
+ observed: A derived API planned/implemented before devtrack-api became required evidence, then required a later corrective FEAT.
345
+ mapped_rules:
346
+ - DTAPI-P0-PROFILE-001
347
+ - DTAPI-P1-EVIDENCE-001
348
+ WCA-02:
349
+ observed: A derived API used relative imports and lacked Foundation-compatible tsconfig alias paths.
350
+ mapped_rules:
351
+ - DTAPI-P0-IMPORTS-001
352
+ WCA-03:
353
+ observed: A derived API used TypeORM repositories without the Foundation auth module idiom of TypeOrmModule.forFeature and InjectRepository where applicable.
354
+ mapped_rules:
355
+ - DTAPI-P0-TYPEORM-001
356
+ - DTAPI-P1-RUNTIME-001
357
+ early_debate_gate:
358
+ applies_to: first two or three DEBs that plan a new devtrack-api project or major API theme
359
+ required_outputs:
360
+ - selected derivation profile
361
+ - package structure preview
362
+ - human approval or correction
363
+ - exception list with ADR refs when applicable
364
+ - policy pool seed derived from this contract pack
365
+ future_consumers:
366
+ - FEAT-0233 package preview gate
367
+ - FEAT-0234 project-local skill policy pool
368
+ - FEAT-0235 active FEAT workspace policy injection
369
+ - FEAT-0236 semantic architecture validator
370
+ - FEAT-0237 finalize lifecycle gate
371
+ - FEAT-0238 skill provenance and applied-policy evidence
372
+ - FEAT-0239 future field validation protocol
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Domain Intent
4
4
 
5
- Domain code expresses business language, invariants, state transitions, and persistence contracts for aggregates. It must remain framework-free and portable.
5
+ Domain code expresses business language, invariants, and state transitions. It must remain framework-free and portable.
6
6
 
7
7
  Domain is the last place where business truth should be guessed. When a rule is unclear, inspect existing domain objects, tests, use cases, and SDD context before adding a new invariant.
8
8
 
@@ -14,14 +14,10 @@ Use these folders by intent:
14
14
  src/domain/<context>/types
15
15
  src/domain/<context>/business-objects
16
16
  src/domain/<context>/value-objects
17
- src/domain/<context>/entities
18
- src/domain/<context>/validators
19
- src/domain/<context>/events
20
- src/domain/<context>/repository-ports
21
17
  src/domain/<context>/constants
22
18
  ```
23
19
 
24
- Use `business-objects/` and `value-objects/` for new canonical aggregate work, especially intelligence. Use `entities/` when extending a context that already uses domain entities, such as `pessoas` or `wallets`.
20
+ Use `business-objects/` and `value-objects/` for new canonical aggregate work. Use `entities/`, `validators/`, `events/`, and `repository-ports/` only when extending a context that already uses the legacy entity-pattern, currently `pessoas` or `wallets`.
25
21
 
26
22
  Do not create domain folders for transport, database, provider, prompt, SDK, queue, cache, HTTP, or UI concerns.
27
23
 
@@ -31,7 +27,7 @@ Before adding a domain artifact, decide:
31
27
 
32
28
  - Is this a durable business concept or just transport/persistence shape?
33
29
  - Does it own invariants or only type information?
34
- - Is it an aggregate/business object, value object, legacy entity, validator, event, constant, or repository port?
30
+ - Is it a business object, value object, type, constant, or an ADR-backed extension to a legacy entity-pattern context?
35
31
  - Does existing domain language already cover it?
36
32
  - Which tests should prove normalization, invalid paths, and immutability?
37
33
 
@@ -291,16 +287,18 @@ export class PessoaValidator {
291
287
  }
292
288
  ```
293
289
 
294
- Presentation validators must not replace domain validators. Presentation validates request shape; domain validates business invariants.
290
+ Presentation validators must not replace domain invariants. Presentation validates request shape; BO-pattern contexts validate inside BOs and VOs. Domain validators are limited to existing entity-pattern contexts.
295
291
 
296
292
  ## Repository Ports
297
293
 
298
- Repository ports belong in domain when they represent domain aggregate persistence:
294
+ For BO-pattern contexts, repository ports belong in application `ports/out`:
299
295
 
300
296
  ```text
301
- src/domain/<context>/repository-ports/<name>-repository.port.ts
297
+ src/application/business/<context>/ports/out/<name>-repository.port.ts
302
298
  ```
303
299
 
300
+ Domain `repository-ports/` exists only when extending the closed legacy entity-pattern contexts already present in Foundation (`pessoas`, `wallets`).
301
+
304
302
  Pattern:
305
303
 
306
304
  ```ts
@@ -319,17 +317,19 @@ Rules:
319
317
  - Export a `Symbol` and an interface.
320
318
  - Return domain objects, not ORM entities.
321
319
  - Keep persistence technology out of the port name, except implementation names in infrastructure.
322
- - Application ports can also describe repositories when the persistence need is application-specific rather than aggregate-owned. Follow existing module patterns.
323
- - Do not expose query builders, transactions, connection objects, ORM entities, or provider SDK types through domain ports.
320
+ - For BO-pattern contexts, this port is an application outbound port even when it returns a domain BO.
321
+ - Do not expose query builders, transactions, connection objects, ORM entities, or provider SDK types through ports.
324
322
 
325
323
  ## Domain Events
326
324
 
327
- Use domain events for business facts:
325
+ Use domain events for business facts only when extending an existing entity-pattern context:
328
326
 
329
327
  ```text
330
328
  src/domain/<context>/events/<name>-created.event.ts
331
329
  ```
332
330
 
331
+ For BO-pattern contexts, emit integration or domain-like events from application handlers unless an ADR deliberately extends the pattern.
332
+
333
333
  Keep events serializable and framework-free:
334
334
 
335
335
  ```ts
@@ -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.