@devtrack-solution/codesdd 1.2.2

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 (433) hide show
  1. package/.sdd/skills/curated/api-clean-flask-langgraph/SKILL.md +2751 -0
  2. package/.sdd/skills/curated/devtrack-api/SKILL.md +137 -0
  3. package/.sdd/skills/curated/devtrack-api/agents/openai.yaml +4 -0
  4. package/.sdd/skills/curated/devtrack-api/references/application-presentation.md +381 -0
  5. package/.sdd/skills/curated/devtrack-api/references/architecture-governance.md +219 -0
  6. package/.sdd/skills/curated/devtrack-api/references/domain-modeling.md +359 -0
  7. package/.sdd/skills/curated/devtrack-api/references/implementation-checklist.md +127 -0
  8. package/.sdd/skills/curated/devtrack-api/references/imports-lint.md +207 -0
  9. package/.sdd/skills/curated/devtrack-api/references/testing-validation.md +167 -0
  10. package/.sdd/skills/curated/devtrack-api/references/typeorm-infrastructure.md +334 -0
  11. package/LICENSE +21 -0
  12. package/README.md +842 -0
  13. package/bin/codesdd.js +10 -0
  14. package/dist/cli/index.d.ts +3 -0
  15. package/dist/cli/index.js +560 -0
  16. package/dist/commands/change.d.ts +35 -0
  17. package/dist/commands/change.js +296 -0
  18. package/dist/commands/completion.d.ts +72 -0
  19. package/dist/commands/completion.js +258 -0
  20. package/dist/commands/config.d.ts +36 -0
  21. package/dist/commands/config.js +552 -0
  22. package/dist/commands/feedback.d.ts +9 -0
  23. package/dist/commands/feedback.js +184 -0
  24. package/dist/commands/schema.d.ts +6 -0
  25. package/dist/commands/schema.js +870 -0
  26. package/dist/commands/sdd/execution.d.ts +3 -0
  27. package/dist/commands/sdd/execution.js +409 -0
  28. package/dist/commands/sdd/shared.d.ts +9 -0
  29. package/dist/commands/sdd/shared.js +84 -0
  30. package/dist/commands/sdd/skills.d.ts +3 -0
  31. package/dist/commands/sdd/skills.js +154 -0
  32. package/dist/commands/sdd.d.ts +3 -0
  33. package/dist/commands/sdd.js +769 -0
  34. package/dist/commands/show.d.ts +14 -0
  35. package/dist/commands/show.js +133 -0
  36. package/dist/commands/spec.d.ts +15 -0
  37. package/dist/commands/spec.js +228 -0
  38. package/dist/commands/validate.d.ts +24 -0
  39. package/dist/commands/validate.js +295 -0
  40. package/dist/commands/workflow/index.d.ts +17 -0
  41. package/dist/commands/workflow/index.js +12 -0
  42. package/dist/commands/workflow/instructions.d.ts +29 -0
  43. package/dist/commands/workflow/instructions.js +383 -0
  44. package/dist/commands/workflow/new-change.d.ts +11 -0
  45. package/dist/commands/workflow/new-change.js +45 -0
  46. package/dist/commands/workflow/schemas.d.ts +10 -0
  47. package/dist/commands/workflow/schemas.js +34 -0
  48. package/dist/commands/workflow/shared.d.ts +57 -0
  49. package/dist/commands/workflow/shared.js +117 -0
  50. package/dist/commands/workflow/status.d.ts +14 -0
  51. package/dist/commands/workflow/status.js +76 -0
  52. package/dist/commands/workflow/templates.d.ts +16 -0
  53. package/dist/commands/workflow/templates.js +68 -0
  54. package/dist/core/archive.d.ts +16 -0
  55. package/dist/core/archive.js +487 -0
  56. package/dist/core/artifact-graph/graph.d.ts +56 -0
  57. package/dist/core/artifact-graph/graph.js +141 -0
  58. package/dist/core/artifact-graph/index.d.ts +7 -0
  59. package/dist/core/artifact-graph/index.js +13 -0
  60. package/dist/core/artifact-graph/instruction-loader.d.ts +143 -0
  61. package/dist/core/artifact-graph/instruction-loader.js +215 -0
  62. package/dist/core/artifact-graph/resolver.d.ts +81 -0
  63. package/dist/core/artifact-graph/resolver.js +258 -0
  64. package/dist/core/artifact-graph/schema.d.ts +13 -0
  65. package/dist/core/artifact-graph/schema.js +108 -0
  66. package/dist/core/artifact-graph/state.d.ts +12 -0
  67. package/dist/core/artifact-graph/state.js +54 -0
  68. package/dist/core/artifact-graph/types.d.ts +45 -0
  69. package/dist/core/artifact-graph/types.js +43 -0
  70. package/dist/core/available-tools.d.ts +16 -0
  71. package/dist/core/available-tools.js +30 -0
  72. package/dist/core/branding.d.ts +8 -0
  73. package/dist/core/branding.js +12 -0
  74. package/dist/core/cli/command-matrix.d.ts +23 -0
  75. package/dist/core/cli/command-matrix.js +123 -0
  76. package/dist/core/command-generation/adapters/amazon-q.d.ts +13 -0
  77. package/dist/core/command-generation/adapters/amazon-q.js +26 -0
  78. package/dist/core/command-generation/adapters/antigravity.d.ts +13 -0
  79. package/dist/core/command-generation/adapters/antigravity.js +26 -0
  80. package/dist/core/command-generation/adapters/auggie.d.ts +13 -0
  81. package/dist/core/command-generation/adapters/auggie.js +27 -0
  82. package/dist/core/command-generation/adapters/claude.d.ts +13 -0
  83. package/dist/core/command-generation/adapters/claude.js +50 -0
  84. package/dist/core/command-generation/adapters/cline.d.ts +14 -0
  85. package/dist/core/command-generation/adapters/cline.js +27 -0
  86. package/dist/core/command-generation/adapters/codebuddy.d.ts +13 -0
  87. package/dist/core/command-generation/adapters/codebuddy.js +28 -0
  88. package/dist/core/command-generation/adapters/codex.d.ts +16 -0
  89. package/dist/core/command-generation/adapters/codex.js +39 -0
  90. package/dist/core/command-generation/adapters/continue.d.ts +13 -0
  91. package/dist/core/command-generation/adapters/continue.js +28 -0
  92. package/dist/core/command-generation/adapters/costrict.d.ts +13 -0
  93. package/dist/core/command-generation/adapters/costrict.js +27 -0
  94. package/dist/core/command-generation/adapters/crush.d.ts +13 -0
  95. package/dist/core/command-generation/adapters/crush.js +30 -0
  96. package/dist/core/command-generation/adapters/cursor.d.ts +14 -0
  97. package/dist/core/command-generation/adapters/cursor.js +44 -0
  98. package/dist/core/command-generation/adapters/factory.d.ts +13 -0
  99. package/dist/core/command-generation/adapters/factory.js +27 -0
  100. package/dist/core/command-generation/adapters/gemini.d.ts +13 -0
  101. package/dist/core/command-generation/adapters/gemini.js +26 -0
  102. package/dist/core/command-generation/adapters/github-copilot.d.ts +13 -0
  103. package/dist/core/command-generation/adapters/github-copilot.js +26 -0
  104. package/dist/core/command-generation/adapters/iflow.d.ts +13 -0
  105. package/dist/core/command-generation/adapters/iflow.js +29 -0
  106. package/dist/core/command-generation/adapters/index.d.ts +29 -0
  107. package/dist/core/command-generation/adapters/index.js +29 -0
  108. package/dist/core/command-generation/adapters/kilocode.d.ts +14 -0
  109. package/dist/core/command-generation/adapters/kilocode.js +23 -0
  110. package/dist/core/command-generation/adapters/kiro.d.ts +13 -0
  111. package/dist/core/command-generation/adapters/kiro.js +26 -0
  112. package/dist/core/command-generation/adapters/opencode.d.ts +13 -0
  113. package/dist/core/command-generation/adapters/opencode.js +29 -0
  114. package/dist/core/command-generation/adapters/pi.d.ts +14 -0
  115. package/dist/core/command-generation/adapters/pi.js +41 -0
  116. package/dist/core/command-generation/adapters/qoder.d.ts +13 -0
  117. package/dist/core/command-generation/adapters/qoder.js +30 -0
  118. package/dist/core/command-generation/adapters/qwen.d.ts +13 -0
  119. package/dist/core/command-generation/adapters/qwen.js +26 -0
  120. package/dist/core/command-generation/adapters/roocode.d.ts +14 -0
  121. package/dist/core/command-generation/adapters/roocode.js +27 -0
  122. package/dist/core/command-generation/adapters/windsurf.d.ts +14 -0
  123. package/dist/core/command-generation/adapters/windsurf.js +51 -0
  124. package/dist/core/command-generation/generator.d.ts +21 -0
  125. package/dist/core/command-generation/generator.js +27 -0
  126. package/dist/core/command-generation/index.d.ts +22 -0
  127. package/dist/core/command-generation/index.js +24 -0
  128. package/dist/core/command-generation/registry.d.ts +36 -0
  129. package/dist/core/command-generation/registry.js +92 -0
  130. package/dist/core/command-generation/types.d.ts +56 -0
  131. package/dist/core/command-generation/types.js +8 -0
  132. package/dist/core/completions/command-registry.d.ts +7 -0
  133. package/dist/core/completions/command-registry.js +461 -0
  134. package/dist/core/completions/completion-provider.d.ts +60 -0
  135. package/dist/core/completions/completion-provider.js +102 -0
  136. package/dist/core/completions/factory.d.ts +64 -0
  137. package/dist/core/completions/factory.js +75 -0
  138. package/dist/core/completions/generators/bash-generator.d.ts +32 -0
  139. package/dist/core/completions/generators/bash-generator.js +174 -0
  140. package/dist/core/completions/generators/fish-generator.d.ts +32 -0
  141. package/dist/core/completions/generators/fish-generator.js +157 -0
  142. package/dist/core/completions/generators/powershell-generator.d.ts +33 -0
  143. package/dist/core/completions/generators/powershell-generator.js +207 -0
  144. package/dist/core/completions/generators/zsh-generator.d.ts +44 -0
  145. package/dist/core/completions/generators/zsh-generator.js +250 -0
  146. package/dist/core/completions/installers/bash-installer.d.ts +87 -0
  147. package/dist/core/completions/installers/bash-installer.js +318 -0
  148. package/dist/core/completions/installers/fish-installer.d.ts +43 -0
  149. package/dist/core/completions/installers/fish-installer.js +143 -0
  150. package/dist/core/completions/installers/powershell-installer.d.ts +88 -0
  151. package/dist/core/completions/installers/powershell-installer.js +327 -0
  152. package/dist/core/completions/installers/zsh-installer.d.ts +125 -0
  153. package/dist/core/completions/installers/zsh-installer.js +452 -0
  154. package/dist/core/completions/templates/bash-templates.d.ts +6 -0
  155. package/dist/core/completions/templates/bash-templates.js +24 -0
  156. package/dist/core/completions/templates/fish-templates.d.ts +7 -0
  157. package/dist/core/completions/templates/fish-templates.js +39 -0
  158. package/dist/core/completions/templates/powershell-templates.d.ts +6 -0
  159. package/dist/core/completions/templates/powershell-templates.js +25 -0
  160. package/dist/core/completions/templates/zsh-templates.d.ts +6 -0
  161. package/dist/core/completions/templates/zsh-templates.js +36 -0
  162. package/dist/core/completions/types.d.ts +79 -0
  163. package/dist/core/completions/types.js +2 -0
  164. package/dist/core/config-prompts.d.ts +9 -0
  165. package/dist/core/config-prompts.js +34 -0
  166. package/dist/core/config-schema.d.ts +86 -0
  167. package/dist/core/config-schema.js +213 -0
  168. package/dist/core/config.d.ts +17 -0
  169. package/dist/core/config.js +33 -0
  170. package/dist/core/converters/json-converter.d.ts +6 -0
  171. package/dist/core/converters/json-converter.js +51 -0
  172. package/dist/core/global-config.d.ts +44 -0
  173. package/dist/core/global-config.js +125 -0
  174. package/dist/core/index.d.ts +2 -0
  175. package/dist/core/index.js +3 -0
  176. package/dist/core/init.d.ts +36 -0
  177. package/dist/core/init.js +576 -0
  178. package/dist/core/legacy-cleanup.d.ts +162 -0
  179. package/dist/core/legacy-cleanup.js +512 -0
  180. package/dist/core/list.d.ts +9 -0
  181. package/dist/core/list.js +173 -0
  182. package/dist/core/migration.d.ts +23 -0
  183. package/dist/core/migration.js +108 -0
  184. package/dist/core/parsers/change-parser.d.ts +13 -0
  185. package/dist/core/parsers/change-parser.js +193 -0
  186. package/dist/core/parsers/markdown-parser.d.ts +22 -0
  187. package/dist/core/parsers/markdown-parser.js +187 -0
  188. package/dist/core/parsers/requirement-blocks.d.ts +37 -0
  189. package/dist/core/parsers/requirement-blocks.js +201 -0
  190. package/dist/core/profile-sync-drift.d.ts +38 -0
  191. package/dist/core/profile-sync-drift.js +201 -0
  192. package/dist/core/profiles.d.ts +26 -0
  193. package/dist/core/profiles.js +41 -0
  194. package/dist/core/project-config.d.ts +64 -0
  195. package/dist/core/project-config.js +223 -0
  196. package/dist/core/schemas/base.schema.d.ts +13 -0
  197. package/dist/core/schemas/base.schema.js +13 -0
  198. package/dist/core/schemas/change.schema.d.ts +73 -0
  199. package/dist/core/schemas/change.schema.js +31 -0
  200. package/dist/core/schemas/index.d.ts +4 -0
  201. package/dist/core/schemas/index.js +4 -0
  202. package/dist/core/schemas/spec.schema.d.ts +18 -0
  203. package/dist/core/schemas/spec.schema.js +15 -0
  204. package/dist/core/sdd/adr-policy.d.ts +7 -0
  205. package/dist/core/sdd/adr-policy.js +47 -0
  206. package/dist/core/sdd/adr.d.ts +4 -0
  207. package/dist/core/sdd/adr.js +27 -0
  208. package/dist/core/sdd/bootstrap.d.ts +28 -0
  209. package/dist/core/sdd/bootstrap.js +353 -0
  210. package/dist/core/sdd/check.d.ts +51 -0
  211. package/dist/core/sdd/check.js +831 -0
  212. package/dist/core/sdd/coordination/coordination-adapters.d.ts +73 -0
  213. package/dist/core/sdd/coordination/coordination-adapters.js +87 -0
  214. package/dist/core/sdd/coordination/index.d.ts +2 -0
  215. package/dist/core/sdd/coordination/index.js +2 -0
  216. package/dist/core/sdd/dedup.d.ts +23 -0
  217. package/dist/core/sdd/dedup.js +62 -0
  218. package/dist/core/sdd/default-bootstrap-files.d.ts +23 -0
  219. package/dist/core/sdd/default-bootstrap-files.js +385 -0
  220. package/dist/core/sdd/default-skills.d.ts +16 -0
  221. package/dist/core/sdd/default-skills.js +427 -0
  222. package/dist/core/sdd/diagnose.d.ts +25 -0
  223. package/dist/core/sdd/diagnose.js +1312 -0
  224. package/dist/core/sdd/docs-sync.d.ts +21 -0
  225. package/dist/core/sdd/docs-sync.js +231 -0
  226. package/dist/core/sdd/domain/helpers.d.ts +6 -0
  227. package/dist/core/sdd/domain/helpers.js +37 -0
  228. package/dist/core/sdd/domain/lifecycle-guardrails.d.ts +22 -0
  229. package/dist/core/sdd/domain/lifecycle-guardrails.js +31 -0
  230. package/dist/core/sdd/domain/lifecycle-hooks.d.ts +16 -0
  231. package/dist/core/sdd/domain/lifecycle-hooks.js +27 -0
  232. package/dist/core/sdd/domain/post-active-validation.d.ts +15 -0
  233. package/dist/core/sdd/domain/post-active-validation.js +71 -0
  234. package/dist/core/sdd/domain/traceability.d.ts +8 -0
  235. package/dist/core/sdd/domain/traceability.js +83 -0
  236. package/dist/core/sdd/domain/transition-engine.d.ts +49 -0
  237. package/dist/core/sdd/domain/transition-engine.js +120 -0
  238. package/dist/core/sdd/fingerprint.d.ts +23 -0
  239. package/dist/core/sdd/fingerprint.js +146 -0
  240. package/dist/core/sdd/import-openspec.d.ts +31 -0
  241. package/dist/core/sdd/import-openspec.js +232 -0
  242. package/dist/core/sdd/init.d.ts +36 -0
  243. package/dist/core/sdd/init.js +65 -0
  244. package/dist/core/sdd/json-schema.d.ts +6 -0
  245. package/dist/core/sdd/json-schema.js +59 -0
  246. package/dist/core/sdd/legacy-operations.d.ts +286 -0
  247. package/dist/core/sdd/legacy-operations.js +2175 -0
  248. package/dist/core/sdd/lenses.d.ts +14 -0
  249. package/dist/core/sdd/lenses.js +97 -0
  250. package/dist/core/sdd/merge-catalog.d.ts +9 -0
  251. package/dist/core/sdd/merge-catalog.js +70 -0
  252. package/dist/core/sdd/migrate-workspace.d.ts +36 -0
  253. package/dist/core/sdd/migrate-workspace.js +344 -0
  254. package/dist/core/sdd/migrate.d.ts +24 -0
  255. package/dist/core/sdd/migrate.js +385 -0
  256. package/dist/core/sdd/resolve-project-root.d.ts +15 -0
  257. package/dist/core/sdd/resolve-project-root.js +46 -0
  258. package/dist/core/sdd/root-resolver.d.ts +16 -0
  259. package/dist/core/sdd/root-resolver.js +62 -0
  260. package/dist/core/sdd/sanitize.d.ts +35 -0
  261. package/dist/core/sdd/sanitize.js +750 -0
  262. package/dist/core/sdd/services/approve.service.d.ts +20 -0
  263. package/dist/core/sdd/services/approve.service.js +82 -0
  264. package/dist/core/sdd/services/audit.service.d.ts +53 -0
  265. package/dist/core/sdd/services/audit.service.js +136 -0
  266. package/dist/core/sdd/services/breakdown.service.d.ts +35 -0
  267. package/dist/core/sdd/services/breakdown.service.js +185 -0
  268. package/dist/core/sdd/services/context.service.d.ts +346 -0
  269. package/dist/core/sdd/services/context.service.js +278 -0
  270. package/dist/core/sdd/services/debate.service.d.ts +16 -0
  271. package/dist/core/sdd/services/debate.service.js +73 -0
  272. package/dist/core/sdd/services/decide.service.d.ts +23 -0
  273. package/dist/core/sdd/services/decide.service.js +81 -0
  274. package/dist/core/sdd/services/dedup-apply.service.d.ts +39 -0
  275. package/dist/core/sdd/services/dedup-apply.service.js +259 -0
  276. package/dist/core/sdd/services/feature-lint.service.d.ts +29 -0
  277. package/dist/core/sdd/services/feature-lint.service.js +146 -0
  278. package/dist/core/sdd/services/finalize.service.d.ts +33 -0
  279. package/dist/core/sdd/services/finalize.service.js +707 -0
  280. package/dist/core/sdd/services/frontend-gap.service.d.ts +23 -0
  281. package/dist/core/sdd/services/frontend-gap.service.js +117 -0
  282. package/dist/core/sdd/services/frontend-impact.service.d.ts +19 -0
  283. package/dist/core/sdd/services/frontend-impact.service.js +46 -0
  284. package/dist/core/sdd/services/ingest-deposito.service.d.ts +32 -0
  285. package/dist/core/sdd/services/ingest-deposito.service.js +231 -0
  286. package/dist/core/sdd/services/insight.service.d.ts +21 -0
  287. package/dist/core/sdd/services/insight.service.js +81 -0
  288. package/dist/core/sdd/services/legacy-capability.service.d.ts +24 -0
  289. package/dist/core/sdd/services/legacy-capability.service.js +59 -0
  290. package/dist/core/sdd/services/mcp-runtime.service.d.ts +42 -0
  291. package/dist/core/sdd/services/mcp-runtime.service.js +144 -0
  292. package/dist/core/sdd/services/metrics.service.d.ts +49 -0
  293. package/dist/core/sdd/services/metrics.service.js +181 -0
  294. package/dist/core/sdd/services/next.service.d.ts +35 -0
  295. package/dist/core/sdd/services/next.service.js +54 -0
  296. package/dist/core/sdd/services/onboard.service.d.ts +9 -0
  297. package/dist/core/sdd/services/onboard.service.js +165 -0
  298. package/dist/core/sdd/services/rebuild.service.d.ts +31 -0
  299. package/dist/core/sdd/services/rebuild.service.js +482 -0
  300. package/dist/core/sdd/services/scan-naming.service.d.ts +43 -0
  301. package/dist/core/sdd/services/scan-naming.service.js +246 -0
  302. package/dist/core/sdd/services/skills-invoke.service.d.ts +24 -0
  303. package/dist/core/sdd/services/skills-invoke.service.js +63 -0
  304. package/dist/core/sdd/services/skills-sync.service.d.ts +15 -0
  305. package/dist/core/sdd/services/skills-sync.service.js +117 -0
  306. package/dist/core/sdd/services/start.service.d.ts +26 -0
  307. package/dist/core/sdd/services/start.service.js +237 -0
  308. package/dist/core/sdd/skills.d.ts +15 -0
  309. package/dist/core/sdd/skills.js +46 -0
  310. package/dist/core/sdd/state-lock.d.ts +19 -0
  311. package/dist/core/sdd/state-lock.js +144 -0
  312. package/dist/core/sdd/state.d.ts +155 -0
  313. package/dist/core/sdd/state.js +1000 -0
  314. package/dist/core/sdd/store/in-memory-adapter.d.ts +12 -0
  315. package/dist/core/sdd/store/in-memory-adapter.js +27 -0
  316. package/dist/core/sdd/store/index.d.ts +5 -0
  317. package/dist/core/sdd/store/index.js +5 -0
  318. package/dist/core/sdd/store/sdd-stores.d.ts +25 -0
  319. package/dist/core/sdd/store/sdd-stores.js +59 -0
  320. package/dist/core/sdd/store/state-store.d.ts +32 -0
  321. package/dist/core/sdd/store/state-store.js +2 -0
  322. package/dist/core/sdd/store/yaml-file-adapter.d.ts +12 -0
  323. package/dist/core/sdd/store/yaml-file-adapter.js +43 -0
  324. package/dist/core/sdd/structural-health.d.ts +557 -0
  325. package/dist/core/sdd/structural-health.js +187 -0
  326. package/dist/core/sdd/transaction.d.ts +14 -0
  327. package/dist/core/sdd/transaction.js +100 -0
  328. package/dist/core/sdd/types.d.ts +1570 -0
  329. package/dist/core/sdd/types.js +617 -0
  330. package/dist/core/sdd/views.d.ts +3 -0
  331. package/dist/core/sdd/views.js +560 -0
  332. package/dist/core/sdd/workspace-schemas.d.ts +620 -0
  333. package/dist/core/sdd/workspace-schemas.js +254 -0
  334. package/dist/core/sdd/write-manifest.d.ts +25 -0
  335. package/dist/core/sdd/write-manifest.js +353 -0
  336. package/dist/core/shared/index.d.ts +8 -0
  337. package/dist/core/shared/index.js +8 -0
  338. package/dist/core/shared/skill-generation.d.ts +49 -0
  339. package/dist/core/shared/skill-generation.js +106 -0
  340. package/dist/core/shared/tool-detection.d.ts +71 -0
  341. package/dist/core/shared/tool-detection.js +158 -0
  342. package/dist/core/specs-apply.d.ts +73 -0
  343. package/dist/core/specs-apply.js +385 -0
  344. package/dist/core/styles/palette.d.ts +7 -0
  345. package/dist/core/styles/palette.js +8 -0
  346. package/dist/core/templates/index.d.ts +8 -0
  347. package/dist/core/templates/index.js +9 -0
  348. package/dist/core/templates/skill-templates.d.ts +20 -0
  349. package/dist/core/templates/skill-templates.js +19 -0
  350. package/dist/core/templates/types.d.ts +19 -0
  351. package/dist/core/templates/types.js +5 -0
  352. package/dist/core/templates/workflows/apply-change.d.ts +10 -0
  353. package/dist/core/templates/workflows/apply-change.js +308 -0
  354. package/dist/core/templates/workflows/archive-change.d.ts +10 -0
  355. package/dist/core/templates/workflows/archive-change.js +277 -0
  356. package/dist/core/templates/workflows/bulk-archive-change.d.ts +10 -0
  357. package/dist/core/templates/workflows/bulk-archive-change.js +502 -0
  358. package/dist/core/templates/workflows/continue-change.d.ts +10 -0
  359. package/dist/core/templates/workflows/continue-change.js +232 -0
  360. package/dist/core/templates/workflows/explore.d.ts +10 -0
  361. package/dist/core/templates/workflows/explore.js +475 -0
  362. package/dist/core/templates/workflows/feedback.d.ts +9 -0
  363. package/dist/core/templates/workflows/feedback.js +108 -0
  364. package/dist/core/templates/workflows/ff-change.d.ts +10 -0
  365. package/dist/core/templates/workflows/ff-change.js +206 -0
  366. package/dist/core/templates/workflows/new-change.d.ts +10 -0
  367. package/dist/core/templates/workflows/new-change.js +151 -0
  368. package/dist/core/templates/workflows/onboard.d.ts +10 -0
  369. package/dist/core/templates/workflows/onboard.js +573 -0
  370. package/dist/core/templates/workflows/propose.d.ts +10 -0
  371. package/dist/core/templates/workflows/propose.js +224 -0
  372. package/dist/core/templates/workflows/sdd.d.ts +10 -0
  373. package/dist/core/templates/workflows/sdd.js +107 -0
  374. package/dist/core/templates/workflows/sync-specs.d.ts +10 -0
  375. package/dist/core/templates/workflows/sync-specs.js +286 -0
  376. package/dist/core/templates/workflows/verify-change.d.ts +10 -0
  377. package/dist/core/templates/workflows/verify-change.js +346 -0
  378. package/dist/core/update.d.ts +77 -0
  379. package/dist/core/update.js +538 -0
  380. package/dist/core/validation/constants.d.ts +34 -0
  381. package/dist/core/validation/constants.js +40 -0
  382. package/dist/core/validation/types.d.ts +18 -0
  383. package/dist/core/validation/types.js +2 -0
  384. package/dist/core/validation/validator.d.ts +33 -0
  385. package/dist/core/validation/validator.js +409 -0
  386. package/dist/core/view.d.ts +8 -0
  387. package/dist/core/view.js +170 -0
  388. package/dist/index.d.ts +3 -0
  389. package/dist/index.js +3 -0
  390. package/dist/prompts/searchable-multi-select.d.ts +28 -0
  391. package/dist/prompts/searchable-multi-select.js +159 -0
  392. package/dist/telemetry/config.d.ts +32 -0
  393. package/dist/telemetry/config.js +68 -0
  394. package/dist/telemetry/index.d.ts +44 -0
  395. package/dist/telemetry/index.js +207 -0
  396. package/dist/ui/ascii-patterns.d.ts +16 -0
  397. package/dist/ui/ascii-patterns.js +133 -0
  398. package/dist/ui/welcome-screen.d.ts +10 -0
  399. package/dist/ui/welcome-screen.js +146 -0
  400. package/dist/utils/change-metadata.d.ts +51 -0
  401. package/dist/utils/change-metadata.js +147 -0
  402. package/dist/utils/change-utils.d.ts +62 -0
  403. package/dist/utils/change-utils.js +121 -0
  404. package/dist/utils/command-references.d.ts +18 -0
  405. package/dist/utils/command-references.js +20 -0
  406. package/dist/utils/file-system.d.ts +36 -0
  407. package/dist/utils/file-system.js +281 -0
  408. package/dist/utils/index.d.ts +6 -0
  409. package/dist/utils/index.js +9 -0
  410. package/dist/utils/interactive.d.ts +18 -0
  411. package/dist/utils/interactive.js +21 -0
  412. package/dist/utils/item-discovery.d.ts +4 -0
  413. package/dist/utils/item-discovery.js +73 -0
  414. package/dist/utils/match.d.ts +3 -0
  415. package/dist/utils/match.js +22 -0
  416. package/dist/utils/openspec-compat.d.ts +2 -0
  417. package/dist/utils/openspec-compat.js +2 -0
  418. package/dist/utils/shell-detection.d.ts +20 -0
  419. package/dist/utils/shell-detection.js +41 -0
  420. package/dist/utils/task-progress.d.ts +8 -0
  421. package/dist/utils/task-progress.js +36 -0
  422. package/package.json +111 -0
  423. package/schemas/sdd/1-spec.schema.json +221 -0
  424. package/schemas/sdd/2-plan.schema.json +199 -0
  425. package/schemas/sdd/3-tasks.schema.json +102 -0
  426. package/schemas/sdd/4-changelog.schema.json +55 -0
  427. package/schemas/sdd/5-quality.schema.json +427 -0
  428. package/schemas/sdd/workspace-catalog.schema.json +1012 -0
  429. package/schemas/spec-driven/schema.yaml +153 -0
  430. package/schemas/spec-driven/templates/design.md +19 -0
  431. package/schemas/spec-driven/templates/proposal.md +23 -0
  432. package/schemas/spec-driven/templates/spec.md +8 -0
  433. package/schemas/spec-driven/templates/tasks.md +9 -0
@@ -0,0 +1,346 @@
1
+ import { SddStores } from "../store/sdd-stores.js";
2
+ export declare class ContextService {
3
+ private readonly stores;
4
+ constructor(stores: SddStores);
5
+ execute(projectRoot: string, ref: string): Promise<{
6
+ sdd_pack_version: number;
7
+ target_id: string;
8
+ target_type: "FEAT";
9
+ summary: string;
10
+ objective: string;
11
+ expected_outcome: string;
12
+ system_impact: string;
13
+ architectural_impact: {
14
+ description: string;
15
+ affected_modules: string[];
16
+ } | null;
17
+ workspace_frontend_impact: {
18
+ status: "unknown" | "none" | "required";
19
+ description: string;
20
+ } | null;
21
+ affected_contracts: {
22
+ name: string;
23
+ change_type: string;
24
+ }[];
25
+ quality_strategy: {
26
+ unit_target: number;
27
+ integration_target: number;
28
+ approach: string;
29
+ } | null;
30
+ workspace: {
31
+ path: string;
32
+ state: "" | "active" | "planned" | "archived";
33
+ docs: string[];
34
+ schema_errors: string[];
35
+ };
36
+ origin: {
37
+ type: "radar" | "epic" | "direct" | "fast_track" | "frontend_gap" | "tech_debt";
38
+ ref: string;
39
+ };
40
+ related_discovery: string[];
41
+ related_gaps: string[];
42
+ recommended_skills: string[];
43
+ recommended_bundles: string[];
44
+ skill_execution_contract: {
45
+ required: boolean;
46
+ required_skill_ids: string[];
47
+ verification_location: string;
48
+ verification_rule: string;
49
+ };
50
+ change_name: string;
51
+ blocked_by: string[];
52
+ lock_domains: string[];
53
+ parallel_group: string | undefined;
54
+ planning_mode: "local_plan" | "direct_tasks";
55
+ flow_mode: "direto" | "padrao" | "rigoroso";
56
+ current_stage: "proposta" | "planejamento" | "tarefas" | "execucao" | "consolidacao";
57
+ gates: {
58
+ proposta: {
59
+ status: "nao_exigida" | "rascunho" | "pronta" | "aprovada";
60
+ approved_at?: string | undefined;
61
+ approved_by?: string | undefined;
62
+ note?: string | undefined;
63
+ };
64
+ planejamento: {
65
+ status: "nao_exigida" | "rascunho" | "pronta" | "aprovada";
66
+ approved_at?: string | undefined;
67
+ approved_by?: string | undefined;
68
+ note?: string | undefined;
69
+ };
70
+ tarefas: {
71
+ status: "nao_exigida" | "rascunho" | "pronta" | "aprovada";
72
+ approved_at?: string | undefined;
73
+ approved_by?: string | undefined;
74
+ note?: string | undefined;
75
+ };
76
+ };
77
+ frontend_impact_status: "unknown" | "none" | "required";
78
+ frontend_impact_reason: string;
79
+ frontend_impact_declared_at: string;
80
+ frontend_surface_tokens: string[];
81
+ quality_contract: {
82
+ version: 1;
83
+ enabled: boolean;
84
+ scope: string;
85
+ unit_target_percent: number;
86
+ integration_target_percent: number;
87
+ evidence_mode: "coverage" | "equivalence" | "hybrid";
88
+ enforcement: "advisory" | "blocking";
89
+ stack_profile: string;
90
+ required_axes: string[];
91
+ required_evidence: {
92
+ kind: string;
93
+ required: boolean;
94
+ status: "planned" | "provided" | "waived";
95
+ command?: string | undefined;
96
+ artifact?: string | undefined;
97
+ notes?: string | undefined;
98
+ }[];
99
+ exceptions: {
100
+ id: string;
101
+ scope: string;
102
+ reason: string;
103
+ accepted_risk: string;
104
+ compensating_control: string;
105
+ review_deadline: string;
106
+ approved_by: string;
107
+ approved_at?: string | undefined;
108
+ }[];
109
+ inherited_from?: string | undefined;
110
+ updated_at?: string | undefined;
111
+ } | null;
112
+ quality_artifact: string;
113
+ start_commit_sha: string;
114
+ next_action: string;
115
+ execution_kind: "documentation" | "feature" | "infra" | "migration" | "frontend_coverage";
116
+ produces: string[];
117
+ consumes: string[];
118
+ predecessor_outputs: {
119
+ feature_id: string;
120
+ status: "ARCHIVED" | "READY" | "IN_PROGRESS" | "DONE" | "BLOCKED" | "SYNC_REQUIRED" | "VERIFY_FAILED";
121
+ produces: string[];
122
+ summary: string;
123
+ }[];
124
+ relevant_adrs: string[];
125
+ relevant_services: {
126
+ id: string;
127
+ name: string;
128
+ contracts: string[];
129
+ }[];
130
+ relevant_contracts: string[];
131
+ relevant_frontend_decisions: {
132
+ id: string;
133
+ title: string;
134
+ status: "APPROVED" | "DISCARDED" | "SUPERSEDED" | "PROPOSED";
135
+ route_refs: string[];
136
+ }[];
137
+ read_order: string[];
138
+ active_path: string;
139
+ unresolved_blocked_by: string[];
140
+ lock_conflicts_with: string[];
141
+ readiness: "READY" | "BLOCKED" | "LOCK_CONFLICT";
142
+ core_docs: string[];
143
+ related_features?: undefined;
144
+ related_debates?: undefined;
145
+ source_feature?: undefined;
146
+ resolved_by_feature?: undefined;
147
+ routes?: undefined;
148
+ related_refs?: undefined;
149
+ } | {
150
+ sdd_pack_version: number;
151
+ target_id: string;
152
+ target_type: "RAD" | "EPIC";
153
+ summary: string;
154
+ quality_contract: {
155
+ version: 1;
156
+ enabled: boolean;
157
+ scope: string;
158
+ unit_target_percent: number;
159
+ integration_target_percent: number;
160
+ evidence_mode: "coverage" | "equivalence" | "hybrid";
161
+ enforcement: "advisory" | "blocking";
162
+ stack_profile: string;
163
+ required_axes: string[];
164
+ required_evidence: {
165
+ kind: string;
166
+ required: boolean;
167
+ status: "planned" | "provided" | "waived";
168
+ command?: string | undefined;
169
+ artifact?: string | undefined;
170
+ notes?: string | undefined;
171
+ }[];
172
+ exceptions: {
173
+ id: string;
174
+ scope: string;
175
+ reason: string;
176
+ accepted_risk: string;
177
+ compensating_control: string;
178
+ review_deadline: string;
179
+ approved_by: string;
180
+ approved_at?: string | undefined;
181
+ }[];
182
+ inherited_from?: string | undefined;
183
+ updated_at?: string | undefined;
184
+ } | null;
185
+ related_features: string[];
186
+ related_debates: string[];
187
+ read_order: string[];
188
+ core_docs: string[];
189
+ objective?: undefined;
190
+ expected_outcome?: undefined;
191
+ system_impact?: undefined;
192
+ architectural_impact?: undefined;
193
+ workspace_frontend_impact?: undefined;
194
+ affected_contracts?: undefined;
195
+ quality_strategy?: undefined;
196
+ workspace?: undefined;
197
+ origin?: undefined;
198
+ related_discovery?: undefined;
199
+ related_gaps?: undefined;
200
+ recommended_skills?: undefined;
201
+ recommended_bundles?: undefined;
202
+ skill_execution_contract?: undefined;
203
+ change_name?: undefined;
204
+ blocked_by?: undefined;
205
+ lock_domains?: undefined;
206
+ parallel_group?: undefined;
207
+ planning_mode?: undefined;
208
+ flow_mode?: undefined;
209
+ current_stage?: undefined;
210
+ gates?: undefined;
211
+ frontend_impact_status?: undefined;
212
+ frontend_impact_reason?: undefined;
213
+ frontend_impact_declared_at?: undefined;
214
+ frontend_surface_tokens?: undefined;
215
+ quality_artifact?: undefined;
216
+ start_commit_sha?: undefined;
217
+ next_action?: undefined;
218
+ execution_kind?: undefined;
219
+ produces?: undefined;
220
+ consumes?: undefined;
221
+ predecessor_outputs?: undefined;
222
+ relevant_adrs?: undefined;
223
+ relevant_services?: undefined;
224
+ relevant_contracts?: undefined;
225
+ relevant_frontend_decisions?: undefined;
226
+ active_path?: undefined;
227
+ unresolved_blocked_by?: undefined;
228
+ lock_conflicts_with?: undefined;
229
+ readiness?: undefined;
230
+ source_feature?: undefined;
231
+ resolved_by_feature?: undefined;
232
+ routes?: undefined;
233
+ related_refs?: undefined;
234
+ } | {
235
+ sdd_pack_version: number;
236
+ target_id: string;
237
+ target_type: "FGAP";
238
+ summary: string;
239
+ source_feature: string;
240
+ resolved_by_feature: string;
241
+ routes: string[];
242
+ read_order: string[];
243
+ core_docs: string[];
244
+ objective?: undefined;
245
+ expected_outcome?: undefined;
246
+ system_impact?: undefined;
247
+ architectural_impact?: undefined;
248
+ workspace_frontend_impact?: undefined;
249
+ affected_contracts?: undefined;
250
+ quality_strategy?: undefined;
251
+ workspace?: undefined;
252
+ origin?: undefined;
253
+ related_discovery?: undefined;
254
+ related_gaps?: undefined;
255
+ recommended_skills?: undefined;
256
+ recommended_bundles?: undefined;
257
+ skill_execution_contract?: undefined;
258
+ change_name?: undefined;
259
+ blocked_by?: undefined;
260
+ lock_domains?: undefined;
261
+ parallel_group?: undefined;
262
+ planning_mode?: undefined;
263
+ flow_mode?: undefined;
264
+ current_stage?: undefined;
265
+ gates?: undefined;
266
+ frontend_impact_status?: undefined;
267
+ frontend_impact_reason?: undefined;
268
+ frontend_impact_declared_at?: undefined;
269
+ frontend_surface_tokens?: undefined;
270
+ quality_contract?: undefined;
271
+ quality_artifact?: undefined;
272
+ start_commit_sha?: undefined;
273
+ next_action?: undefined;
274
+ execution_kind?: undefined;
275
+ produces?: undefined;
276
+ consumes?: undefined;
277
+ predecessor_outputs?: undefined;
278
+ relevant_adrs?: undefined;
279
+ relevant_services?: undefined;
280
+ relevant_contracts?: undefined;
281
+ relevant_frontend_decisions?: undefined;
282
+ active_path?: undefined;
283
+ unresolved_blocked_by?: undefined;
284
+ lock_conflicts_with?: undefined;
285
+ readiness?: undefined;
286
+ related_features?: undefined;
287
+ related_debates?: undefined;
288
+ related_refs?: undefined;
289
+ } | {
290
+ sdd_pack_version: number;
291
+ target_id: string;
292
+ target_type: "TD";
293
+ summary: string;
294
+ related_refs: string[];
295
+ read_order: string[];
296
+ core_docs: string[];
297
+ objective?: undefined;
298
+ expected_outcome?: undefined;
299
+ system_impact?: undefined;
300
+ architectural_impact?: undefined;
301
+ workspace_frontend_impact?: undefined;
302
+ affected_contracts?: undefined;
303
+ quality_strategy?: undefined;
304
+ workspace?: undefined;
305
+ origin?: undefined;
306
+ related_discovery?: undefined;
307
+ related_gaps?: undefined;
308
+ recommended_skills?: undefined;
309
+ recommended_bundles?: undefined;
310
+ skill_execution_contract?: undefined;
311
+ change_name?: undefined;
312
+ blocked_by?: undefined;
313
+ lock_domains?: undefined;
314
+ parallel_group?: undefined;
315
+ planning_mode?: undefined;
316
+ flow_mode?: undefined;
317
+ current_stage?: undefined;
318
+ gates?: undefined;
319
+ frontend_impact_status?: undefined;
320
+ frontend_impact_reason?: undefined;
321
+ frontend_impact_declared_at?: undefined;
322
+ frontend_surface_tokens?: undefined;
323
+ quality_contract?: undefined;
324
+ quality_artifact?: undefined;
325
+ start_commit_sha?: undefined;
326
+ next_action?: undefined;
327
+ execution_kind?: undefined;
328
+ produces?: undefined;
329
+ consumes?: undefined;
330
+ predecessor_outputs?: undefined;
331
+ relevant_adrs?: undefined;
332
+ relevant_services?: undefined;
333
+ relevant_contracts?: undefined;
334
+ relevant_frontend_decisions?: undefined;
335
+ active_path?: undefined;
336
+ unresolved_blocked_by?: undefined;
337
+ lock_conflicts_with?: undefined;
338
+ readiness?: undefined;
339
+ related_features?: undefined;
340
+ related_debates?: undefined;
341
+ source_feature?: undefined;
342
+ resolved_by_feature?: undefined;
343
+ routes?: undefined;
344
+ }>;
345
+ }
346
+ //# sourceMappingURL=context.service.d.ts.map
@@ -0,0 +1,278 @@
1
+ import path from "node:path";
2
+ import { existsSync, promises as fs } from "node:fs";
3
+ import { parse } from "yaml";
4
+ import { CLI_NAME } from "../../branding.js";
5
+ import { loadStateSnapshot } from "../state.js";
6
+ import { bundlesForSkills, getRuntime, relProjectPath, coreDocRef, planningDocRef, featureActiveDir, activeDocNamesForLayout, unresolvedDependencies, lockConflictWithActive, featureReadiness, gateSatisfied, detectContextType, pathExists, listAdrRefs } from "../legacy-operations.js";
7
+ import { workspacePlanSchema, workspaceSpecSchema } from "../workspace-schemas.js";
8
+ async function readYamlWorkspaceDoc(filePath, schema) {
9
+ const content = await fs.readFile(filePath, 'utf-8').catch(() => '');
10
+ if (!content.trim())
11
+ return { data: null, error: null };
12
+ try {
13
+ const result = schema.safeParse(parse(content));
14
+ if (result.success)
15
+ return { data: result.data, error: null };
16
+ return { data: null, error: result.error.message };
17
+ }
18
+ catch (error) {
19
+ return { data: null, error: error.message };
20
+ }
21
+ }
22
+ async function loadFeatureWorkspaceContext(paths, config, featureId) {
23
+ const names = activeDocNamesForLayout(config);
24
+ const roots = [
25
+ { state: 'active', dir: paths.activeDir },
26
+ { state: 'planned', dir: paths.plannedDir },
27
+ { state: 'archived', dir: paths.archivedDir },
28
+ ];
29
+ const root = roots.find((candidate) => existsSync(path.join(candidate.dir, featureId)));
30
+ if (!root) {
31
+ return { workspace_path: '', workspace_state: '', docs: [], spec: null, plan: null, schema_errors: [] };
32
+ }
33
+ const workspacePath = path.join(root.dir, featureId);
34
+ const canonicalDocs = [names.spec, names.plan, names.quality, names.tasks, names.changelog];
35
+ const docs = canonicalDocs
36
+ .map((name) => path.join(workspacePath, name))
37
+ .filter((filePath) => existsSync(filePath))
38
+ .map((filePath) => relProjectPath(paths, filePath));
39
+ const schemaErrors = [];
40
+ const specPath = path.join(workspacePath, names.spec);
41
+ const planPath = path.join(workspacePath, names.plan);
42
+ const spec = await readYamlWorkspaceDoc(specPath, workspaceSpecSchema);
43
+ const plan = await readYamlWorkspaceDoc(planPath, workspacePlanSchema);
44
+ if (spec.error)
45
+ schemaErrors.push(`${names.spec}: ${spec.error}`);
46
+ if (plan.error)
47
+ schemaErrors.push(`${names.plan}: ${plan.error}`);
48
+ return {
49
+ workspace_path: relProjectPath(paths, workspacePath),
50
+ workspace_state: root.state,
51
+ docs,
52
+ spec: spec.data,
53
+ plan: plan.data,
54
+ schema_errors: schemaErrors,
55
+ };
56
+ }
57
+ export class ContextService {
58
+ stores;
59
+ constructor(stores) {
60
+ this.stores = stores;
61
+ }
62
+ async execute(projectRoot, ref) {
63
+ const { config, paths } = await getRuntime(projectRoot);
64
+ const snapshot = await loadStateSnapshot(paths, config);
65
+ const type = detectContextType(ref);
66
+ if (!type) {
67
+ throw new Error(`Referencia ${ref} invalida. Use FEAT/EPIC/RAD/FGAP/TD.`);
68
+ }
69
+ const coreDocs = [
70
+ coreDocRef(paths, 'index.md'),
71
+ coreDocRef(paths, 'arquitetura.md'),
72
+ coreDocRef(paths, 'servicos.md'),
73
+ coreDocRef(paths, 'spec-tecnologica.md'),
74
+ coreDocRef(paths, 'repo-map.md'),
75
+ ];
76
+ if (config.frontend.enabled) {
77
+ coreDocs.push(coreDocRef(paths, 'frontend-map.md'));
78
+ coreDocs.push(coreDocRef(paths, 'frontend-sitemap.md'));
79
+ coreDocs.push(coreDocRef(paths, 'frontend-decisions.md'));
80
+ coreDocs.push(planningDocRef(paths, 'frontend-auditoria.md'));
81
+ }
82
+ if (type === 'FEAT') {
83
+ const item = snapshot.backlog.items.find((entry) => entry.id === ref);
84
+ if (!item)
85
+ throw new Error(`Feature ${ref} nao encontrada.`);
86
+ const unresolved = unresolvedDependencies(item, snapshot.backlog.items);
87
+ const lockConflicts = lockConflictWithActive(item, snapshot.backlog.items);
88
+ const predecessorOutputs = item.blocked_by
89
+ .map((depId) => snapshot.backlog.items.find((entry) => entry.id === depId))
90
+ .filter((dep) => Boolean(dep))
91
+ .map((dep) => ({
92
+ feature_id: dep.id,
93
+ status: dep.status,
94
+ produces: dep.produces,
95
+ summary: dep.summary || '',
96
+ }));
97
+ const relevantServices = snapshot.serviceCatalog.services
98
+ .filter((service) => item.touches.includes(service.id) || item.title.includes(service.name))
99
+ .map((service) => ({
100
+ id: service.id,
101
+ name: service.name,
102
+ contracts: service.contracts,
103
+ }));
104
+ const relevantContracts = snapshot.integrationContracts.contracts.filter((contract) => [item.id, ...item.consumes, ...item.produces].some((token) => contract.includes(token)));
105
+ const frontendDecisionRefs = [item.id, item.origin_ref].filter((v) => Boolean(v));
106
+ const relevantFrontendDecisions = (snapshot.frontendDecisions?.items ?? [])
107
+ .filter((decision) => decision.related_refs.some((refId) => frontendDecisionRefs.includes(refId)))
108
+ .map((decision) => ({
109
+ id: decision.id,
110
+ title: decision.title,
111
+ status: decision.status,
112
+ route_refs: decision.route_refs,
113
+ }));
114
+ const relevantAdrs = await listAdrRefs(paths, [item.id, item.origin_ref || '', ...item.blocked_by]);
115
+ const workspace = await loadFeatureWorkspaceContext(paths, config, item.id);
116
+ const activePathAbs = featureActiveDir(paths, item.id);
117
+ const activePath = (await pathExists(activePathAbs))
118
+ ? relProjectPath(paths, activePathAbs)
119
+ : '';
120
+ const nextAction = item.status === 'IN_PROGRESS'
121
+ ? `${CLI_NAME} sdd finalize --ref ${item.id}`
122
+ : item.status === 'DONE'
123
+ ? `${CLI_NAME} sdd next`
124
+ : item.flow_mode === 'rigoroso' && !gateSatisfied(item.gates.proposta.status)
125
+ ? `${CLI_NAME} sdd aprovar ${item.id} --etapa proposta`
126
+ : item.flow_mode === 'rigoroso' && !gateSatisfied(item.gates.planejamento.status)
127
+ ? `${CLI_NAME} sdd aprovar ${item.id} --etapa planejamento`
128
+ : item.flow_mode === 'rigoroso' && !gateSatisfied(item.gates.tarefas.status)
129
+ ? `${CLI_NAME} sdd aprovar ${item.id} --etapa tarefas`
130
+ : `${CLI_NAME} sdd start ${item.id}`;
131
+ const readOrder = [
132
+ 'README.md',
133
+ relProjectPath(paths, path.join(paths.memoryRoot, 'AGENT.md')),
134
+ coreDocRef(paths, 'index.md'),
135
+ coreDocRef(paths, 'arquitetura.md'),
136
+ coreDocRef(paths, 'servicos.md'),
137
+ coreDocRef(paths, 'spec-tecnologica.md'),
138
+ coreDocRef(paths, 'repo-map.md'),
139
+ ...relevantAdrs,
140
+ ...coreDocs.filter((doc) => doc.includes('frontend')),
141
+ ...workspace.docs,
142
+ ];
143
+ const docNames = activeDocNamesForLayout(config);
144
+ const qualityArtifact = workspace.workspace_path
145
+ ? relProjectPath(paths, path.join(paths.projectRoot, workspace.workspace_path, docNames.quality))
146
+ : '';
147
+ const requiredSkillEvidence = item.recommended_skills.filter(Boolean);
148
+ return {
149
+ sdd_pack_version: 1,
150
+ target_id: ref,
151
+ target_type: type,
152
+ summary: `${item.title} [${item.status}]`,
153
+ objective: workspace.spec?.objective || item.summary || '',
154
+ expected_outcome: workspace.spec?.expected_outcome || '',
155
+ system_impact: workspace.spec?.system_impact || '',
156
+ architectural_impact: workspace.plan?.architectural_impact || null,
157
+ workspace_frontend_impact: workspace.plan?.frontend_impact || null,
158
+ affected_contracts: workspace.plan?.affected_contracts || [],
159
+ quality_strategy: workspace.plan?.quality_strategy || null,
160
+ workspace: {
161
+ path: workspace.workspace_path,
162
+ state: workspace.workspace_state,
163
+ docs: workspace.docs,
164
+ schema_errors: workspace.schema_errors,
165
+ },
166
+ origin: { type: item.origin_type, ref: item.origin_ref || '' },
167
+ related_discovery: item.origin_ref
168
+ ? snapshot.discoveryIndex.records
169
+ .filter((record) => record.id === item.origin_ref || record.related_ids.includes(ref))
170
+ .map((record) => record.id)
171
+ : [],
172
+ related_gaps: item.frontend_gap_refs,
173
+ recommended_skills: item.recommended_skills,
174
+ recommended_bundles: bundlesForSkills(snapshot.skillCatalog, item.recommended_skills),
175
+ skill_execution_contract: {
176
+ required: requiredSkillEvidence.length > 0,
177
+ required_skill_ids: requiredSkillEvidence,
178
+ verification_location: qualityArtifact,
179
+ verification_rule: requiredSkillEvidence.length > 0
180
+ ? 'Record one skill_evidence entry per required skill before finalize.'
181
+ : 'No skill evidence required for this feature.',
182
+ },
183
+ change_name: item.change_name || '',
184
+ blocked_by: item.blocked_by,
185
+ lock_domains: item.lock_domains,
186
+ parallel_group: item.parallel_group,
187
+ planning_mode: item.planning_mode,
188
+ flow_mode: item.flow_mode,
189
+ current_stage: item.current_stage,
190
+ gates: item.gates,
191
+ frontend_impact_status: item.frontend_impact_status,
192
+ frontend_impact_reason: item.frontend_impact_reason || '',
193
+ frontend_impact_declared_at: item.frontend_impact_declared_at || '',
194
+ frontend_surface_tokens: item.frontend_surface_tokens,
195
+ quality_contract: item.quality_contract || null,
196
+ quality_artifact: qualityArtifact,
197
+ start_commit_sha: item.start_commit_sha || '',
198
+ next_action: nextAction,
199
+ execution_kind: item.execution_kind,
200
+ produces: item.produces,
201
+ consumes: item.consumes,
202
+ predecessor_outputs: predecessorOutputs,
203
+ relevant_adrs: relevantAdrs,
204
+ relevant_services: relevantServices,
205
+ relevant_contracts: relevantContracts,
206
+ relevant_frontend_decisions: relevantFrontendDecisions,
207
+ read_order: Array.from(new Set(readOrder)),
208
+ active_path: activePath,
209
+ unresolved_blocked_by: unresolved,
210
+ lock_conflicts_with: lockConflicts,
211
+ readiness: featureReadiness(item, snapshot.backlog.items),
212
+ core_docs: coreDocs,
213
+ };
214
+ }
215
+ if (type === 'RAD' || type === 'EPIC') {
216
+ const radar = snapshot.discoveryIndex.records.find((record) => record.id === ref && (record.type === 'RAD' || record.type === 'EPIC'));
217
+ if (!radar)
218
+ throw new Error(`Epic/Radar ${ref} nao encontrado.`);
219
+ const relatedFeatures = snapshot.backlog.items.filter((item) => (item.origin_type === 'radar' || item.origin_type === 'epic') && item.origin_ref === ref);
220
+ return {
221
+ sdd_pack_version: 1,
222
+ target_id: ref,
223
+ target_type: type,
224
+ summary: `${radar.title} [${radar.status}]`,
225
+ quality_contract: radar.quality_contract || null,
226
+ related_features: relatedFeatures.map((item) => item.id),
227
+ related_debates: snapshot.discoveryIndex.records
228
+ .filter((record) => record.type === 'DEB' && record.related_ids.includes(ref))
229
+ .map((record) => record.id),
230
+ read_order: [
231
+ 'README.md',
232
+ relProjectPath(paths, path.join(paths.memoryRoot, 'AGENT.md')),
233
+ coreDocRef(paths, 'index.md'),
234
+ planningDocRef(paths, 'backlog-graph.md'),
235
+ ],
236
+ core_docs: coreDocs,
237
+ };
238
+ }
239
+ if (type === 'FGAP') {
240
+ const gap = snapshot.frontendGaps?.items.find((item) => item.id === ref);
241
+ if (!gap)
242
+ throw new Error(`Gap de frontend ${ref} nao encontrado.`);
243
+ return {
244
+ sdd_pack_version: 1,
245
+ target_id: ref,
246
+ target_type: type,
247
+ summary: `${gap.title} [${gap.status}]`,
248
+ source_feature: gap.origin_feature || '',
249
+ resolved_by_feature: gap.resolved_by_feature || '',
250
+ routes: gap.route_targets,
251
+ read_order: [
252
+ 'README.md',
253
+ relProjectPath(paths, path.join(paths.memoryRoot, 'AGENT.md')),
254
+ coreDocRef(paths, 'frontend-map.md'),
255
+ planningDocRef(paths, 'frontend-gaps.md'),
256
+ ],
257
+ core_docs: coreDocs,
258
+ };
259
+ }
260
+ const debt = snapshot.techDebt.items.find((item) => item.id === ref);
261
+ if (!debt)
262
+ throw new Error(`Divida tecnica ${ref} nao encontrada.`);
263
+ return {
264
+ sdd_pack_version: 1,
265
+ target_id: ref,
266
+ target_type: type,
267
+ summary: `${debt.title} [${debt.status}]`,
268
+ related_refs: debt.related_refs,
269
+ read_order: [
270
+ 'README.md',
271
+ relProjectPath(paths, path.join(paths.memoryRoot, 'AGENT.md')),
272
+ planningDocRef(paths, 'tech-debt.md'),
273
+ ],
274
+ core_docs: coreDocs,
275
+ };
276
+ }
277
+ }
278
+ //# sourceMappingURL=context.service.js.map
@@ -0,0 +1,16 @@
1
+ import { SddStores } from "../store/sdd-stores.js";
2
+ export declare class DebateService {
3
+ private readonly stores;
4
+ constructor(stores: SddStores);
5
+ execute(projectRoot: string, insightId: string, options?: {
6
+ title?: string;
7
+ render?: boolean;
8
+ agent?: string;
9
+ }): Promise<{
10
+ id: string;
11
+ title: string;
12
+ filePath: string;
13
+ reused: boolean;
14
+ }>;
15
+ }
16
+ //# sourceMappingURL=debate.service.d.ts.map