@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
@@ -25,6 +25,8 @@ This directory stores the project's operational memory.
25
25
  10. \`${memoryDir}/core/frontend-decisions.md\` (when frontend is enabled)
26
26
 
27
27
  ## How To Operate
28
+ CodeSDD is the official planner for initialized repositories. Any request that implies implementation, file edits, validation, execution, or finalize implicitly requires the CodeSDD flow unless the user explicitly marks it as read-only or outside CodeSDD.
29
+
28
30
  1. Run \`${CLI_NAME} sdd onboard system\` to understand current state.
29
31
  2. Run \`${CLI_NAME} sdd next\` to see what can start now.
30
32
  3. Run \`${CLI_NAME} sdd start <FEAT-ID>\` only when the item is not already active.
@@ -40,7 +42,7 @@ This directory stores the project's operational memory.
40
42
  - \`${planning}/frontend-auditoria.md\`: frontend coverage audit by FEAT.
41
43
  - \`state/\`: canonical YAML source of truth.
42
44
  - \`${skills}/\`: local curation and bundles.
43
- - \`${templates}/\`: base templates for spec, plan, quality, tasks, and changelog.
45
+ - \`${templates}/\`: base YAML templates for spec, plan, quality, tasks, and changelog.
44
46
  - \`${prompts}/\`: recommended prompts for common workflows.
45
47
  - \`${active}/\`: active FEAT workspaces.
46
48
  - \`${archived}/\`: finalized frozen workspaces.
@@ -50,6 +52,7 @@ This directory stores the project's operational memory.
50
52
  - \`state/*.yaml\` is the only canonical operational state for planning, dependencies, blockers, progress, quality, and handoff.
51
53
  - \`core/*.md\` and \`${planning}/*.md\` are operational views derived from canonical state.
52
54
  - External context, memory, workflow, backlog, scratchpad, or handoff stores are not authoritative.
55
+ - Agent-native plans and other planners may only refine execution after \`${CLI_NAME} sdd next\` and \`${CLI_NAME} sdd context <FEAT-ID>\` bind the request to a CodeSDD FEAT.
53
56
 
54
57
  ## Operational Rule
55
58
  Every completed feature must update relevant documentation before \`finalize\`.
@@ -80,11 +83,12 @@ In the terminal, from your project directory:
80
83
  \`\`\`bash
81
84
  codesdd install --tools none --lang en-US --layout en-US
82
85
  codesdd sdd init --frontend --lang en-US --layout en-US
83
- codesdd sdd init-context
86
+ codesdd sdd init-context --frontend --lang en-US --layout en-US
84
87
  codesdd sdd check --render
85
88
  codesdd sdd rebuild --from-disk --dry-run
86
89
  codesdd sdd dedup --apply --dry-run
87
90
  codesdd sdd onboard system
91
+ codesdd reload --tools none --lang en-US --layout en-US
88
92
  \`\`\`
89
93
 
90
94
  ## 2) Understand The Main Folders
@@ -97,6 +101,7 @@ codesdd sdd onboard system
97
101
  - \`.sdd/archived/\`: finalized workspaces.
98
102
 
99
103
  CodeSDD is the only operational memory for the project. Do not use external context, memory, workflow, backlog, scratchpad, or handoff stores as active project state.
104
+ In initialized CodeSDD repositories, requests that imply implementation, edits, validation, execution, or finalize implicitly require CodeSDD planning unless explicitly marked read-only or outside CodeSDD.
100
105
 
101
106
  ## 3) I Have PRDs, Wireframes, Or Stories. What Now?
102
107
 
@@ -207,14 +212,16 @@ Objective:
207
212
  Execute a FEAT without losing traceability.
208
213
 
209
214
  Instructions:
210
- 1. Run \`codesdd sdd context FEAT-0001\`.
211
- 2. Update \`.sdd/active/FEAT-0001/\` (spec, plan, tasks, changelog).
212
- 3. Implement.
213
- 4. Update \`.sdd/active/FEAT-0001/5-quality.yaml\` with evidence or a formal exception; quality contracts are blocking by default.
214
- 5. Update affected canonical docs.
215
- 6. Declare frontend impact with \`codesdd sdd frontend-impact FEAT-0001 ...\`.
216
- 7. Ensure architectural-impact FEATs have an ADR before finalize.
217
- 8. Finish with \`codesdd sdd finalize --ref FEAT-0001\`.
215
+ 1. Treat implementation, edit, validation, execution, and finalize requests as requiring CodeSDD planning unless the user explicitly marks the request as read-only or outside CodeSDD.
216
+ 2. Run \`codesdd sdd next\` and bind the work to the active or ready FEAT returned by CodeSDD.
217
+ 3. Run \`codesdd sdd context FEAT-0001\`.
218
+ 4. Update \`.sdd/active/FEAT-0001/\` (spec, plan, tasks, changelog).
219
+ 5. Implement.
220
+ 6. Update \`.sdd/active/FEAT-0001/5-quality.yaml\` with evidence or a formal exception; quality contracts are blocking by default.
221
+ 7. Update affected canonical docs.
222
+ 8. Declare frontend impact with \`codesdd sdd frontend-impact FEAT-0001 ...\`.
223
+ 9. Ensure architectural-impact FEATs have an ADR before finalize.
224
+ 10. Finish with \`codesdd sdd finalize --ref FEAT-0001\`.
218
225
  `;
219
226
  export const PROMPT_04_CONSOLIDACAO_FINALIZE_MD = `# Prompt: Consolidation And Finalize
220
227
 
@@ -314,6 +321,39 @@ traceability:
314
321
  spec_updated_at: ""
315
322
  changelog_refs: []
316
323
  requirements: []
324
+ q95_ledger:
325
+ threshold: 95
326
+ score: 0
327
+ status: pending
328
+ computed_at: ""
329
+ weights:
330
+ coverage: 30
331
+ traceability: 20
332
+ integrity: 20
333
+ naming: 10
334
+ token: 20
335
+ axes:
336
+ coverage:
337
+ raw_score: 0
338
+ weighted_score: 0
339
+ rationale: Computed during finalize.
340
+ traceability:
341
+ raw_score: 0
342
+ weighted_score: 0
343
+ rationale: Computed during finalize.
344
+ integrity:
345
+ raw_score: 0
346
+ weighted_score: 0
347
+ rationale: Computed during finalize.
348
+ naming:
349
+ raw_score: 0
350
+ weighted_score: 0
351
+ rationale: Computed during finalize.
352
+ token:
353
+ raw_score: 0
354
+ weighted_score: 0
355
+ rationale: Computed during finalize.
356
+ next_best_action: Record missing evidence to raise the lowest weighted axis.
317
357
  security_integrity:
318
358
  endpoint_auth_review: pending
319
359
  sensitive_data_exposure_review: pending
@@ -5,11 +5,41 @@ export interface BuiltInSkillSourceTree {
5
5
  }
6
6
  export type BuiltInSkillTree = Record<string, string>;
7
7
  export type BuiltInSkillDefinition = string | BuiltInSkillTree | BuiltInSkillSourceTree;
8
+ export declare function normalizeSkillManifestContent(content: string): string;
9
+ export declare function computeSkillManifestSha256(content: string): string;
8
10
  export declare const DEFAULT_CURATED_SKILL_CATALOG: SkillCatalogState;
9
11
  export declare const SOURCE_INTAKE_SDD_SKILL_MD = "---\nname: source-intake-sdd\ndescription: Reads the .sdd/sources folder, indexes raw sources, and classifies project intake material.\n---\n\n# Source Intake SDD\n\nUse this skill when the project has raw material in `.sdd/sources/`.\n\n## Objective\n\nTurn a heterogeneous document set into a traceable operational inventory.\n\n## Where To Look\n\n- `.sdd/sources/prds/`\n- `.sdd/sources/rfcs/`\n- `.sdd/sources/briefings/`\n- `.sdd/sources/stories/`\n- `.sdd/sources/wireframes/`\n- `.sdd/sources/html-mocks/`\n- `.sdd/sources/visual-references/`\n- `.sdd/sources/interviews/`\n- `.sdd/sources/attachments/`\n- `.sdd/sources/legacy/`\n\n## Required Flow\n\n1. List existing sources.\n2. Classify each source by type.\n3. Register/update `.sdd/state/source-index.yaml`.\n4. Fill for each item:\n - `type`\n - `path`\n - `title`\n - `status`\n - `summary`\n - `used_by`\n - `consolidation_targets`\n5. Do not generate backlog directly in this step.\n\n## Golden Rule\n\n- Raw source is not canonical source.\n- The goal here is inventory and classification.\n- Backlog is created only after semantic normalization.\n";
10
12
  export declare const BUSINESS_EXTRACTOR_SDD_SKILL_MD = "---\nname: business-extractor-sdd\ndescription: Extracts stories, business rules, actors, integrations, and constraints from source material.\n---\n\n# Business Extractor SDD\n\nUse this skill when the repository already has PRDs, briefings, stories, or consolidated documents.\n\n## Expected Outputs\n\n- canonical context updates:\n - `.sdd/state/architecture.yaml`\n - `.sdd/state/service-catalog.yaml`\n - `.sdd/state/tech-stack.yaml`\n - `.sdd/state/integration-contracts.yaml`\n- suggestions for:\n - EPICs\n - FEATs\n - INSIGHTs only when real ambiguity exists\n\n## How To Decide The Destination\n\n- If the excerpt describes system structure, consolidate it into context.\n- If the excerpt is a large approved decision, normalize it into an EPIC.\n- If the excerpt is already clear and executable, normalize it into a FEAT.\n- If the excerpt is ambiguous, contradictory, or incomplete, normalize it into an INSIGHT.\n\n## Do Not\n\n- Do not turn an entire PRD into a direct task list.\n- Do not invent technical details that are not present in the source.\n";
11
13
  export declare const FRONTEND_EXTRACTOR_SDD_SKILL_MD = "---\nname: frontend-extractor-sdd\ndescription: Extracts frontend surfaces, routes, components, gaps, and decisions from images, HTML, wireframes, and references.\n---\n\n# Frontend Extractor SDD\n\nUse this skill when visual inspiration or UI/UX definitions exist in `.sdd/sources/`.\n\n## Accepted Sources\n\n- wireframes\n- screenshots\n- reference images\n- mocked HTML\n- stories with interface impact\n\n## Expected Outputs\n\n- `.sdd/state/frontend-map.yaml`\n- `.sdd/state/frontend-gaps.yaml`\n- `.sdd/state/frontend-decisions.yaml`\n\n## Classification Criteria\n\n- What is clearly defined as a screen/route goes into frontend-map.\n- What is missing but necessary to cover the journey goes into frontend-gaps.\n- UX rationale, navigation, layout, patterns, and inspiration go into frontend-decisions.\n- If a surface is well-defined and executable, it can become a FEAT.\n";
12
14
  export declare const PLANNING_NORMALIZER_SDD_SKILL_MD = "---\nname: planning-normalizer-sdd\ndescription: Converts extracted source material into the SDD operational backlog, prioritizing context, EPICs, and FEATs.\n---\n\n# Planning Normalizer SDD\n\nUse this skill after inventorying sources and extracting business/frontend context.\n\n## Mission\n\nTurn consolidated knowledge into operational SDD artifacts.\n\n## Normalization Order\n\n1. canonical context\n2. EPICs\n3. FEATs\n4. INSIGHTs only for exceptions\n\n## Rules\n\n- Do not force debate when the source is already consolidated and unambiguous.\n- Use debate only for uncertainty, conflict, ambiguity, or open architecture options.\n- Connect FEATs with `blocked_by`, `lock_domains`, `produces`, and `consumes` when enough evidence exists.\n- Record in `.sdd/state/source-index.yaml` which sources generated each EPIC/FEAT.\n\n## Minimum Result\n\nAt the end, the agent must be able to answer:\n- what is system context;\n- what is already approved for planning;\n- what can enter execution now.\n";
15
+ /**
16
+ * Build the structured YAML form of the curated bundles document.
17
+ * Mirrors the data shown by `buildCuratedBundlesMarkdown` but emits a
18
+ * schema-validated object suitable for programmatic consumption.
19
+ *
20
+ * Introduced by EPIC-0072 wave 1 (FEAT-0284) as the toolchain precursor
21
+ * for the broader frontmatter migration. The shape is governed by
22
+ * `src/core/sdd/skill-bundles-curation-schema.ts`.
23
+ */
24
+ export declare function buildCuratedBundlesCurationData(layout?: 'en-US' | 'pt-BR'): {
25
+ schema_version: 1;
26
+ layout: 'en-US' | 'pt-BR';
27
+ generated_from: 'CURATED_BUNDLES';
28
+ objective: string[];
29
+ bundles: Array<{
30
+ id: string;
31
+ title: string;
32
+ skill_ids: string[];
33
+ }>;
34
+ highlighted: Array<{
35
+ skill_id: string;
36
+ bundle_id: string;
37
+ canonical_path: string;
38
+ notes: string[];
39
+ }>;
40
+ canonical_source: string;
41
+ operational_rule: string[];
42
+ };
13
43
  export declare function buildCuratedBundlesMarkdown(): string;
14
44
  export declare const REPO_CONTEXT_BOOTSTRAP_SKILL_MD: string;
15
45
  export declare const BUILT_IN_SDD_SKILLS: Record<string, BuiltInSkillDefinition>;
@@ -1,24 +1,89 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { existsSync, readFileSync } from 'node:fs';
3
+ import path from 'node:path';
4
+ import { fileURLToPath } from 'node:url';
1
5
  import { CLI_NAME } from '../branding.js';
6
+ import { DEVTRACK_API_APPLIANCE_PLUGIN_ID } from './devtrack-api-appliance.js';
2
7
  const DEFAULT_TOOLS = ['codex', 'cursor', 'claude', 'gemini'];
8
+ const DEVTRACK_PORTABLE_TOOLS = ['codex', 'cursor', 'claude', 'gemini', 'kimi', 'opencode'];
9
+ const DEVTRACK_API_DOMAINS = ['architecture', 'backend', 'api', 'nestjs', 'typeorm', 'devtrack', 'foundation'];
10
+ const DEVTRACK_ANGULAR_DOMAINS = [
11
+ 'admin',
12
+ 'angular-admin',
13
+ 'backoffice',
14
+ 'operational-ui',
15
+ 'dashboard',
16
+ 'crud',
17
+ 'data-grid',
18
+ 'admin-forms',
19
+ 'admin-formly',
20
+ 'admin-state',
21
+ 'ngxs-admin',
22
+ 'permissions',
23
+ 'reports',
24
+ 'workflow',
25
+ 'admin-realtime',
26
+ 'admin-chat',
27
+ ];
28
+ const DEVTRACK_FLUTTER_DOMAINS = [
29
+ 'flutter',
30
+ 'dart',
31
+ 'cross-platform',
32
+ 'flutter-ui',
33
+ 'flutter-layout',
34
+ 'flutter-routing',
35
+ 'flutter-l10n',
36
+ 'flutter-http',
37
+ 'flutter-json',
38
+ 'widget-preview',
39
+ 'widget-test',
40
+ 'integration-test',
41
+ 'go-router',
42
+ 'arb',
43
+ 'l10n',
44
+ ];
3
45
  const DEFAULT_SOURCE_REPO = 'https://github.com/sickn33/antigravity-awesome-skills';
46
+ const PACKAGE_ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../../../');
4
47
  const LOCAL_SDD_SKILL_PATHS = {
5
48
  'api-clean-flask-langgraph': '.sdd/skills/curated/api-clean-flask-langgraph/SKILL.md',
6
49
  'devtrack-api': '.sdd/skills/curated/devtrack-api/SKILL.md',
50
+ 'devtrack-angular': '.sdd/skills/curated/devtrack-angular/SKILL.md',
51
+ 'devtrack-flutter': '.sdd/skills/curated/devtrack-flutter/SKILL.md',
7
52
  'source-intake-sdd': '.sdd/skills/curated/source-intake-sdd/SKILL.md',
8
53
  'business-extractor-sdd': '.sdd/skills/curated/business-extractor-sdd/SKILL.md',
9
54
  'frontend-extractor-sdd': '.sdd/skills/curated/frontend-extractor-sdd/SKILL.md',
10
55
  'planning-normalizer-sdd': '.sdd/skills/curated/planning-normalizer-sdd/SKILL.md',
11
56
  'mobile-design': '.sdd/skills/curated/sdd-curated-mobile-design/SKILL.md',
57
+ 'sdd-reverse-orchestrator': '.sdd/skills/curated/sdd-reverse-orchestrator/SKILL.md',
58
+ 'sdd-reverse-surface-scout': '.sdd/skills/curated/sdd-reverse-surface-scout/SKILL.md',
59
+ 'sdd-reverse-module-archaeologist': '.sdd/skills/curated/sdd-reverse-module-archaeologist/SKILL.md',
60
+ 'sdd-reverse-business-rules-detective': '.sdd/skills/curated/sdd-reverse-business-rules-detective/SKILL.md',
61
+ 'sdd-reverse-spec-writer': '.sdd/skills/curated/sdd-reverse-spec-writer/SKILL.md',
62
+ 'sdd-reverse-domain-essence-extractor': '.sdd/skills/curated/sdd-reverse-domain-essence-extractor/SKILL.md',
63
+ 'sdd-offdev-docs-orchestrator': '.sdd/skills/curated/sdd-offdev-docs-orchestrator/SKILL.md',
64
+ 'sdd-offdev-docs-mapper': '.sdd/skills/curated/sdd-offdev-docs-mapper/SKILL.md',
65
+ 'sdd-offdev-docs-analyst': '.sdd/skills/curated/sdd-offdev-docs-analyst/SKILL.md',
66
+ 'sdd-reverse-forward-planner': '.sdd/skills/curated/sdd-reverse-forward-planner/SKILL.md',
67
+ 'sdd-reverse-migration-planner': '.sdd/skills/curated/sdd-reverse-migration-planner/SKILL.md',
68
+ 'sdd-reverse-reconstructor': '.sdd/skills/curated/sdd-reverse-reconstructor/SKILL.md',
12
69
  };
13
70
  const SKILL_METADATA_OVERRIDES = {
14
71
  'api-clean-flask-langgraph': {
15
72
  title: 'API Clean Flask LangGraph',
16
- description: 'Canonical Python/Flask agentic backend skill with Clean Architecture boundaries, tenant/security authority-source rules, OpenSDD decision support (runtime-safe), production-readiness guidance, and maintainable quality gates.',
73
+ description: 'Canonical Python/Flask agentic backend skill with Clean Architecture boundaries, tenant/security authority-source rules, CodeSDD decision support (runtime-safe), production-readiness guidance, and maintainable quality gates.',
17
74
  },
18
75
  'devtrack-api': {
19
76
  title: 'DevTrack API',
20
77
  description: 'Model-agnostic backend engineering and governance skill for DevTrack APIs using NestJS, TypeORM, DDD/Clean Architecture boundaries, evidence-based validation, and safe operational delivery.',
21
78
  },
79
+ 'devtrack-angular': {
80
+ title: 'DevTrack Angular Admin',
81
+ description: 'Portable Angular Admin engineering and governance skill for DevTrack backoffice surfaces using pages-first architecture, standalone components, lazy admin routes, official Angular skills mapping, Formly, NGXS, data grids, permissions, adapters, accessibility, and multi-agent delivery.',
82
+ },
83
+ 'devtrack-flutter': {
84
+ title: 'DevTrack Flutter',
85
+ description: 'Portable Flutter/Dart engineering and governance skill for DevTrack apps using layered architecture, MVVM/ViewModels, repositories, services, go_router, ARB/l10n, http, JSON mapping, responsive layout, previews, tests, and multi-agent delivery.',
86
+ },
22
87
  };
23
88
  const CURATED_BUNDLES = [
24
89
  {
@@ -83,6 +148,8 @@ const CURATED_BUNDLES = [
83
148
  domains: ['frontend', 'product'],
84
149
  phases: ['plan', 'execute', 'verify'],
85
150
  skillIds: [
151
+ 'devtrack-angular',
152
+ 'devtrack-flutter',
86
153
  'frontend-design',
87
154
  'react-best-practices',
88
155
  'react-patterns',
@@ -149,6 +216,42 @@ const CURATED_BUNDLES = [
149
216
  'incident-responder',
150
217
  ],
151
218
  },
219
+ {
220
+ id: 'reverse-engineering',
221
+ title: 'Reverse Engineering',
222
+ domains: ['reverse-engineering', 'legacy', 'discovery'],
223
+ phases: ['discover', 'plan', 'execute', 'verify'],
224
+ skillIds: [
225
+ 'sdd-reverse-orchestrator',
226
+ 'sdd-reverse-surface-scout',
227
+ 'sdd-reverse-module-archaeologist',
228
+ 'sdd-reverse-business-rules-detective',
229
+ 'sdd-reverse-spec-writer',
230
+ 'sdd-reverse-domain-essence-extractor',
231
+ ],
232
+ },
233
+ {
234
+ id: 'off-development-docs',
235
+ title: 'Off-Development Docs',
236
+ domains: ['documentation', 'legacy', 'discovery'],
237
+ phases: ['discover', 'plan', 'verify', 'finalize'],
238
+ skillIds: [
239
+ 'sdd-offdev-docs-orchestrator',
240
+ 'sdd-offdev-docs-mapper',
241
+ 'sdd-offdev-docs-analyst',
242
+ ],
243
+ },
244
+ {
245
+ id: 'migration-and-forward',
246
+ title: 'Migration and Forward',
247
+ domains: ['migration', 'legacy', 'architecture'],
248
+ phases: ['plan', 'execute', 'verify', 'finalize'],
249
+ skillIds: [
250
+ 'sdd-reverse-forward-planner',
251
+ 'sdd-reverse-migration-planner',
252
+ 'sdd-reverse-reconstructor',
253
+ ],
254
+ },
152
255
  ];
153
256
  function titleFromSkillId(skillId) {
154
257
  return skillId
@@ -160,23 +263,102 @@ function priorityForIndex(index) {
160
263
  const priority = 10 - index;
161
264
  return priority < 6 ? 6 : priority;
162
265
  }
266
+ function priorityForSkill(skillId, index) {
267
+ if (skillId === 'devtrack-api' || skillId === 'devtrack-angular' || skillId === 'devtrack-flutter') {
268
+ return 10;
269
+ }
270
+ return priorityForIndex(index);
271
+ }
272
+ export function normalizeSkillManifestContent(content) {
273
+ return content
274
+ .replaceAll('.sdd/deposito', '.sdd/sources')
275
+ .replaceAll('/historias/', '/stories/')
276
+ .replaceAll('/referencias-visuais/', '/visual-references/')
277
+ .replaceAll('/entrevistas/', '/interviews/')
278
+ .replaceAll('/anexos/', '/attachments/')
279
+ .replaceAll('/legado/', '/legacy/');
280
+ }
281
+ export function computeSkillManifestSha256(content) {
282
+ return createHash('sha256').update(normalizeSkillManifestContent(content), 'utf-8').digest('hex');
283
+ }
284
+ function fallbackSkillMarkdown(entry) {
285
+ const domainLine = entry.domains.length > 0 ? entry.domains.join(', ') : 'geral';
286
+ const phaseLine = entry.phases.length > 0 ? entry.phases.join(', ') : 'all';
287
+ return `---
288
+ name: ${entry.id}
289
+ description: ${entry.description || entry.title}
290
+ ---
291
+
292
+ # ${entry.title}
293
+
294
+ ## Contexto
295
+ - Dominios: ${domainLine}
296
+ - Fases: ${phaseLine}
297
+
298
+ ## Instrucoes
299
+ ${entry.description || 'Aplicar esta skill como apoio especializado durante o planejamento e execucao.'}
300
+ `;
301
+ }
302
+ function seedIntegrityHash(entry) {
303
+ if (entry.source_path?.startsWith('.sdd/skills/')) {
304
+ const sourceFile = path.resolve(PACKAGE_ROOT, entry.source_path);
305
+ if (existsSync(sourceFile)) {
306
+ return computeSkillManifestSha256(readFileSync(sourceFile, 'utf-8'));
307
+ }
308
+ }
309
+ return computeSkillManifestSha256(fallbackSkillMarkdown(entry));
310
+ }
311
+ function toolsForSkill(skillId) {
312
+ return skillId === 'devtrack-api' || skillId === 'devtrack-angular' || skillId === 'devtrack-flutter'
313
+ ? DEVTRACK_PORTABLE_TOOLS
314
+ : DEFAULT_TOOLS;
315
+ }
316
+ function domainsForSkill(bundle, skillId) {
317
+ if (skillId === 'devtrack-api') {
318
+ return DEVTRACK_API_DOMAINS;
319
+ }
320
+ if (skillId === 'devtrack-angular') {
321
+ return DEVTRACK_ANGULAR_DOMAINS;
322
+ }
323
+ if (skillId === 'devtrack-flutter') {
324
+ return DEVTRACK_FLUTTER_DOMAINS;
325
+ }
326
+ return bundle.domains;
327
+ }
163
328
  function buildSkillEntry(bundle, skillId, index) {
164
329
  const localSourcePath = LOCAL_SDD_SKILL_PATHS[skillId];
165
330
  const isLocalSkill = Boolean(localSourcePath);
166
331
  const metadata = SKILL_METADATA_OVERRIDES[skillId] || {};
167
- return {
332
+ const sourceRepo = isLocalSkill ? 'local://CodeSDD/sdd' : DEFAULT_SOURCE_REPO;
333
+ const sourcePath = isLocalSkill ? localSourcePath : `skills/${skillId}/SKILL.md`;
334
+ const deterministicPair = skillId === 'devtrack-api'
335
+ ? { plugin_id: DEVTRACK_API_APPLIANCE_PLUGIN_ID, capability: 'scaffold.project' }
336
+ : undefined;
337
+ const baseEntry = {
168
338
  id: skillId,
169
- source_repo: isLocalSkill ? 'local://opensdd/sdd' : DEFAULT_SOURCE_REPO,
170
- source_path: isLocalSkill ? localSourcePath : `skills/${skillId}/SKILL.md`,
339
+ source_repo: sourceRepo,
340
+ source_path: sourcePath,
171
341
  title: metadata.title || titleFromSkillId(skillId),
172
342
  description: metadata.description || (isLocalSkill
173
343
  ? `Native SDD skill for ${bundle.title.toLowerCase()}.`
174
344
  : `Curated skill for ${bundle.title.toLowerCase()} in the SDD flow.`),
175
345
  phases: bundle.phases,
176
- domains: bundle.domains,
177
- tools: DEFAULT_TOOLS,
346
+ domains: domainsForSkill(bundle, skillId),
347
+ tools: toolsForSkill(skillId),
178
348
  bundle_ids: [bundle.id],
179
- priority: priorityForIndex(index),
349
+ priority: priorityForSkill(skillId, index),
350
+ token_budget: {
351
+ input_max: 12000,
352
+ output_max: 4000,
353
+ thinking_max: 2000,
354
+ },
355
+ deterministic_pair: deterministicPair,
356
+ deprecated_at: undefined,
357
+ superseded_by: undefined,
358
+ };
359
+ return {
360
+ ...baseEntry,
361
+ integrity_hash: seedIntegrityHash(baseEntry),
180
362
  };
181
363
  }
182
364
  export const DEFAULT_CURATED_SKILL_CATALOG = {
@@ -332,6 +514,89 @@ At the end, the agent must be able to answer:
332
514
  - what is already approved for planning;
333
515
  - what can enter execution now.
334
516
  `;
517
+ /**
518
+ * Build the structured YAML form of the curated bundles document.
519
+ * Mirrors the data shown by `buildCuratedBundlesMarkdown` but emits a
520
+ * schema-validated object suitable for programmatic consumption.
521
+ *
522
+ * Introduced by EPIC-0072 wave 1 (FEAT-0284) as the toolchain precursor
523
+ * for the broader frontmatter migration. The shape is governed by
524
+ * `src/core/sdd/skill-bundles-curation-schema.ts`.
525
+ */
526
+ export function buildCuratedBundlesCurationData(layout = 'en-US') {
527
+ const objective = layout === 'en-US'
528
+ ? [
529
+ 'Reduce the 900+ skill universe to a practical set.',
530
+ 'Accelerate planning, execution, and validation.',
531
+ 'Make delegation between agents easier in English.',
532
+ ]
533
+ : [
534
+ 'Reduzir o universo de 900+ skills para um conjunto pratico.',
535
+ 'Acelerar planejamento, execucao e validacao.',
536
+ 'Facilitar a delegacao entre agentes em portugues.',
537
+ ];
538
+ const bundles = CURATED_BUNDLES.map((bundle) => ({
539
+ id: bundle.id,
540
+ title: bundle.title,
541
+ skill_ids: [...bundle.skillIds],
542
+ }));
543
+ const highlighted = [
544
+ {
545
+ skill_id: 'api-clean-flask-langgraph',
546
+ bundle_id: 'python-agentic-backend',
547
+ canonical_path: '.sdd/skills/curated/api-clean-flask-langgraph/SKILL.md',
548
+ notes: [
549
+ 'Canonical local reference for Python/Flask Clean Architecture, CodeSDD decision support (without runtime dependency), production-readiness guidance, and quality gates.',
550
+ ],
551
+ },
552
+ {
553
+ skill_id: 'devtrack-api',
554
+ bundle_id: 'architecture-backend',
555
+ canonical_path: '.sdd/skills/curated/devtrack-api/',
556
+ notes: [
557
+ 'Canonical directory for the DevTrack API skill; includes agents/ and references/.',
558
+ 'Operational default: API/backend work uses devtrack-api unless an explicit skill/profile overrides it; Python/Flask API work uses api-clean-flask-langgraph.',
559
+ ],
560
+ },
561
+ {
562
+ skill_id: 'devtrack-angular',
563
+ bundle_id: 'frontend-product',
564
+ canonical_path: '.sdd/skills/curated/devtrack-angular/',
565
+ notes: [
566
+ 'Canonical directory for the DevTrack Angular Admin skill; includes agents/ and references/.',
567
+ 'Operational default: Angular Admin/backoffice work that names admin pages, dashboards, CRUD, data grids, admin Formly, admin NGXS/state, official Angular framework patterns, permissions, reports, workflow, admin realtime, or admin chat should use devtrack-angular unless an explicit skill/profile overrides it.',
568
+ ],
569
+ },
570
+ {
571
+ skill_id: 'devtrack-flutter',
572
+ bundle_id: 'frontend-product',
573
+ canonical_path: '.sdd/skills/curated/devtrack-flutter/',
574
+ notes: [
575
+ 'Canonical directory for the DevTrack Flutter skill; includes agents/ and references/.',
576
+ 'Operational default: Flutter/Dart work that names Flutter apps, widgets, routing, localization, responsive layout, JSON, HTTP, previews, widget tests, integration tests, go_router, ARB, or l10n should use devtrack-flutter unless an explicit skill/profile overrides it.',
577
+ ],
578
+ },
579
+ ];
580
+ const operational_rule = layout === 'en-US'
581
+ ? [
582
+ 'The skills in this document are a curation reference.',
583
+ 'Official skills and bundles state must be edited only in canonical YAML.',
584
+ ]
585
+ : [
586
+ 'As skills neste documento sao uma referencia de curadoria.',
587
+ 'O estado oficial de skills e bundles deve ser editado apenas no YAML canonico.',
588
+ ];
589
+ return {
590
+ schema_version: 1,
591
+ layout,
592
+ generated_from: 'CURATED_BUNDLES',
593
+ objective,
594
+ bundles,
595
+ highlighted,
596
+ canonical_source: '.sdd/state/skill-catalog.yaml',
597
+ operational_rule,
598
+ };
599
+ }
335
600
  export function buildCuratedBundlesMarkdown() {
336
601
  const lines = [
337
602
  '# Skill Curation (en-US)',
@@ -351,10 +616,17 @@ export function buildCuratedBundlesMarkdown() {
351
616
  });
352
617
  lines.push('## Highlighted Local Skill');
353
618
  lines.push('- `api-clean-flask-langgraph` belongs to bundle `python-agentic-backend`.');
354
- lines.push('- It is the canonical local reference for Python/Flask Clean Architecture, OpenSDD decision support (without runtime dependency), production-readiness guidance, and quality gates.');
619
+ lines.push('- It is the canonical local reference for Python/Flask Clean Architecture, CodeSDD decision support (without runtime dependency), production-readiness guidance, and quality gates.');
355
620
  lines.push('- Canonical file: `.sdd/skills/curated/api-clean-flask-langgraph/SKILL.md`.');
356
621
  lines.push('- `devtrack-api` belongs to bundle `architecture-backend`.');
357
622
  lines.push('- Canonical directory: `.sdd/skills/curated/devtrack-api/` (includes `agents/` and `references/`).');
623
+ lines.push('- Operational default: API/backend work uses `devtrack-api` unless an explicit skill/profile overrides it; Python/Flask API work uses `api-clean-flask-langgraph`.');
624
+ lines.push('- `devtrack-angular` belongs to bundle `frontend-product` as the Angular Admin/backoffice skill.');
625
+ lines.push('- Canonical directory: `.sdd/skills/curated/devtrack-angular/` (includes `agents/` and `references/`).');
626
+ lines.push('- Operational default: Angular Admin/backoffice work that names admin pages, dashboards, CRUD, data grids, admin Formly, admin NGXS/state, official Angular framework patterns, permissions, reports, workflow, admin realtime, or admin chat should use `devtrack-angular` unless an explicit skill/profile overrides it.');
627
+ lines.push('- `devtrack-flutter` belongs to bundle `frontend-product` as the Flutter/Dart product skill.');
628
+ lines.push('- Canonical directory: `.sdd/skills/curated/devtrack-flutter/` (includes `agents/` and `references/`).');
629
+ lines.push('- Operational default: Flutter/Dart work that names Flutter apps, widgets, routing, localization, responsive layout, JSON, HTTP, previews, widget tests, integration tests, go_router, ARB, or l10n should use `devtrack-flutter` unless an explicit skill/profile overrides it.');
358
630
  lines.push('');
359
631
  lines.push('## Canonical Source');
360
632
  lines.push('- `.sdd/state/skill-catalog.yaml`');
@@ -423,5 +695,13 @@ export const BUILT_IN_SDD_SKILLS = {
423
695
  kind: 'source-tree',
424
696
  sourceRoot: '.sdd/skills/curated/devtrack-api',
425
697
  },
698
+ 'devtrack-angular': {
699
+ kind: 'source-tree',
700
+ sourceRoot: '.sdd/skills/curated/devtrack-angular',
701
+ },
702
+ 'devtrack-flutter': {
703
+ kind: 'source-tree',
704
+ sourceRoot: '.sdd/skills/curated/devtrack-flutter',
705
+ },
426
706
  };
427
707
  //# sourceMappingURL=default-skills.js.map
@@ -0,0 +1,91 @@
1
+ import { type PluginArtifactManifest, type PluginRuntimeInvocationPlan } from './plugin-broker.js';
2
+ import { type PluginManifest } from './plugin-manifest.js';
3
+ import type { PluginArtifactKind, PluginArtifactMapEntry, PluginArtifactRole } from './plugin-sdk-contract.js';
4
+ export declare const DEVTRACK_API_APPLIANCE_PLUGIN_ID = "codesdd-plugin-devtrack-api";
5
+ export declare const DEVTRACK_API_APPLIANCE_CAPABILITIES: readonly ["scaffold.project", "generate.domain", "generate.crud", "validate.structure", "evidence.emit"];
6
+ declare const DEVTRACK_API_SCAFFOLD_CAPABILITY = "scaffold.project";
7
+ type DevTrackApiScaffoldLayer = 'root' | 'application' | 'domain' | 'infrastructure' | 'presentation' | 'shared' | 'tests' | 'docs' | 'config' | 'sdd' | 'assets';
8
+ export interface DevTrackApiScaffoldArtifact {
9
+ path: string;
10
+ layer: DevTrackApiScaffoldLayer;
11
+ operation: 'planned';
12
+ artifact_kind: PluginArtifactKind;
13
+ role: PluginArtifactRole;
14
+ content_type: string;
15
+ reason: string;
16
+ source_reference: string;
17
+ language?: PluginArtifactMapEntry['language'];
18
+ implementation: PluginArtifactMapEntry['implementation'];
19
+ decision_refs: string[];
20
+ tags: string[];
21
+ }
22
+ export interface DevTrackApiScaffoldDryRunInput {
23
+ feature_ref: string;
24
+ project_name: string;
25
+ package_name?: string;
26
+ created_at?: string;
27
+ operation_id?: string;
28
+ requested_write_scope?: string[];
29
+ }
30
+ export interface DevTrackApiScaffoldEvidenceManifest {
31
+ schema_version: 1;
32
+ operation_id: string;
33
+ generated_at: string;
34
+ feature_ref: string;
35
+ plugin_ref: {
36
+ id: string;
37
+ version: string;
38
+ };
39
+ capability: typeof DEVTRACK_API_SCAFFOLD_CAPABILITY;
40
+ status: 'planned';
41
+ project_name: string;
42
+ package_name: string;
43
+ foundation_reference: {
44
+ repository: string;
45
+ architecture_doc: string;
46
+ derived_structure_doc: string;
47
+ skill_ref: string;
48
+ };
49
+ validation_commands: Array<{
50
+ command: string;
51
+ status: 'pending';
52
+ }>;
53
+ quality_gates: string[];
54
+ }
55
+ export type DevTrackApiScaffoldDryRunPlan = {
56
+ schema_version: 1;
57
+ status: 'planned';
58
+ created_at: string;
59
+ operation_id: string;
60
+ project_name: string;
61
+ package_name: string;
62
+ runtime_plan: PluginRuntimeInvocationPlan;
63
+ artifacts: DevTrackApiScaffoldArtifact[];
64
+ artifact_manifest: PluginArtifactManifest;
65
+ evidence_manifest: DevTrackApiScaffoldEvidenceManifest;
66
+ issues: [];
67
+ } | {
68
+ schema_version: 1;
69
+ status: 'invalid' | 'blocked' | 'unresolved';
70
+ created_at: string;
71
+ operation_id?: string;
72
+ project_name: string;
73
+ package_name: string;
74
+ runtime_plan?: PluginRuntimeInvocationPlan;
75
+ artifacts: [];
76
+ issues: string[];
77
+ };
78
+ export interface DevTrackApiApplianceConformance {
79
+ valid: boolean;
80
+ plugin_id: string;
81
+ capability_names: string[];
82
+ missing_capabilities: string[];
83
+ missing_artifact_writes: string[];
84
+ missing_forbidden_writes: string[];
85
+ typeorm_only: boolean;
86
+ issues: string[];
87
+ }
88
+ export declare function evaluateDevTrackApiApplianceConformance(manifest: PluginManifest): DevTrackApiApplianceConformance;
89
+ export declare function buildDevTrackApiScaffoldDryRunPlan(manifest: PluginManifest, input: DevTrackApiScaffoldDryRunInput): DevTrackApiScaffoldDryRunPlan;
90
+ export {};
91
+ //# sourceMappingURL=devtrack-api-appliance.d.ts.map