@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
package/README.md ADDED
@@ -0,0 +1,842 @@
1
+ # CodeSDD
2
+
3
+ CodeSDD e uma evolucao do OpenSpec focada em memoria operacional, planejamento rastreavel e handoff entre agentes.
4
+
5
+ O objetivo nao e apenas criar specs. O objetivo e permitir que um projeto grande continue compreensivel ao longo do tempo, mesmo quando:
6
+ - novas ideias aparecem no meio da implementacao;
7
+ - existem varios agentes trabalhando em paralelo;
8
+ - o frontend fica defasado em relacao ao backend;
9
+ - um agente novo entra no repositorio sem contexto previo;
10
+ - o sistema ja existe e precisa ser absorvido sem reler todo o codigo.
11
+
12
+ ## O que o CodeSDD faz
13
+
14
+ O CodeSDD organiza o desenvolvimento em 4 camadas:
15
+
16
+ 1. Descoberta
17
+ - `INSIGHT`: ideia bruta
18
+ - `DEBATE`: discussao estruturada
19
+ - `EPIC`: ideia aprovada para futuro planejamento
20
+ - `DISCARDED`: ideia rejeitada com motivo registrado
21
+
22
+ 2. Planejamento
23
+ - `EPIC` pode ser quebrado em `FEATs` (`RAD` segue como alias legado)
24
+ - `FEAT` vira unidade executavel
25
+ - o backlog registra dependencias, bloqueios e paralelizacao
26
+
27
+ 3. Execucao
28
+ - cada `FEAT` ganha um workspace proprio em `.sdd/active/FEAT-0001/`
29
+ - esse workspace tem `spec`, `plan`, `tasks` e `changelog`
30
+
31
+ 4. Memoria operacional
32
+ - `.sdd/state/*.yaml` e a fonte canonica
33
+ - `.sdd/core/*.md` sao views operacionais geradas a partir do estado
34
+ - `README.md`, `AGENTS.md`, `AGENT.md` e `.sdd/AGENT.md` orientam humanos e agentes
35
+ - nenhum outro armazenamento de contexto, memoria, workflow, backlog, scratchpad ou handoff e fonte operacional do projeto
36
+
37
+ ## Autoridade operacional
38
+
39
+ - Estado, progresso, dependencias, bloqueios, qualidade e handoff vivem em `.sdd/state/*.yaml`.
40
+ - `.sdd/core/*.md` e `.sdd/planning/*.md` sao views operacionais derivadas.
41
+ - Workspaces em execucao vivem em `.sdd/active/<FEAT-ID>/`.
42
+ - Artefatos tecnicos de compatibilidade, historicos ou produto nao substituem o estado CodeSDD.
43
+ - Se uma anotacao legada tiver informacao util, migre a decisao para CodeSDD e remova ou depreque o legado.
44
+
45
+ ## Coordenacao opcional com Redis
46
+
47
+ Redis e uma fronteira opcional para coordenacao tecnica de locks, cache, filas e eventos. Ele nao substitui a autoridade operacional de `.sdd/state/*.yaml`.
48
+
49
+ Por padrao, CodeSDD usa locks em filesystem e adaptadores em memoria para cache, filas e eventos. A fabrica `createFilesystemFirstCoordinationAdapters` em `src/core/sdd/coordination/` mantem esse comportamento mesmo quando Redis e solicitado, ate que um adaptador Redis real seja instalado.
50
+
51
+ Variaveis reconhecidas:
52
+
53
+ - `CODESDD_REDIS_URL`: URL Redis especifica do CodeSDD.
54
+ - `REDIS_URL`: fallback quando `CODESDD_REDIS_URL` nao estiver definida.
55
+ - `CODESDD_REDIS_ENABLED=true`: marca Redis como solicitado mesmo sem URL.
56
+ - `CODESDD_REDIS_NAMESPACE`: namespace logico; padrao `codesdd`.
57
+
58
+ Enquanto o cliente Redis nao existir no runtime, o status exposto e `requested-unavailable` e os defaults filesystem-first continuam autoritativos.
59
+
60
+ ## Contrato de nomenclatura
61
+
62
+ O contrato canonico de identidade do produto vive em `.sdd/state/naming-contract.yaml`.
63
+ Ele declara a identidade atual, a identidade alvo, as regras de rename por fase e
64
+ o gate de residuo zero usado por `codesdd sdd scan-naming`.
65
+
66
+ Durante a migracao para CodeSDD, esse contrato permite manter uma janela de
67
+ compatibilidade rastreavel sem perder o objetivo final: remover termos legados
68
+ fora das allowlists temporarias e registrar cada excecao com owner e fase de
69
+ remocao.
70
+
71
+ ## Fronteira com a DevTrack Foundation API
72
+
73
+ Para o backend padrao oficial, o CodeSDD deve operar com uma fronteira clara:
74
+
75
+ - `devtrack-foundation-api` e a fonte canonica de arquitetura backend, bundles/skills `foundation-*` e eventual starter backend.
76
+ - `devtrack-tools-codesdd` e a camada de distribuicao que instala runtime SDD, perfis, templates e materializacao controlada dessa referencia em projetos derivados.
77
+ - Este repositorio nao deve passar a manter um backend canonico paralelo; quando houver adocao da Foundation, ela deve acontecer por profile/bootstrap/distribuicao.
78
+ - O mapa derivado da arvore de pacotes da referencia backend fica em [docs/foundation-backend-reference-structure.md](docs/foundation-backend-reference-structure.md) e deve ser tratado como referencia operacional, nao como nova fonte canonica.
79
+
80
+ ## O que fica instalado no projeto
81
+
82
+ Depois do bootstrap, o projeto passa a ter:
83
+
84
+ - `README.md`
85
+ - `AGENTS.md`
86
+ - `AGENT.md`
87
+ - `.sdd/`
88
+ - `.sdd/config.yaml`
89
+ - `.sdd/state/`
90
+ - `.sdd/core/`
91
+ - `.sdd/discovery/`
92
+ - `.sdd/planning/`
93
+ - `.sdd/active/`
94
+ - `.sdd/archived/`
95
+ - `.sdd/templates/`
96
+ - `.sdd/skills/curated/`
97
+ - `.sdd/sources/`
98
+ - `.sdd/prompts/`
99
+
100
+ Projetos CodeSDD-native nao devem criar `openspec/` como estrutura operacional.
101
+ Quando um projeto legado ainda tiver `openspec/`, importe o corpus para
102
+ `.sdd/sources/legacy/spec-corpus` com `codesdd sdd import-openspec` antes de
103
+ remover a pasta antiga. O acesso de compatibilidade a esse corpus deve passar
104
+ pelo servico CodeSDD de legacy capability em
105
+ `src/core/sdd/services/legacy-capability.service.ts`; utilitarios antigos, como
106
+ `src/utils/openspec-compat.ts`, existem apenas como shim.
107
+
108
+ Dentro de `.sdd/` ficam:
109
+
110
+ - memoria operacional do projeto
111
+ - backlog executavel
112
+ - debates e epics
113
+ - gaps e decisoes de frontend
114
+ - skills curadas
115
+ - documentacao viva do sistema
116
+
117
+ ## Instalacao global
118
+
119
+ Requer:
120
+
121
+ - Node.js `20.19.0` ou superior
122
+ - `npm`
123
+
124
+ A instalacao global oficial e feita via npm:
125
+
126
+ ```bash
127
+ npm install -g @devtrack-solution/codesdd
128
+ ```
129
+
130
+ O binario oficial publicado pelo pacote e `codesdd`. Durante a janela de
131
+ compatibilidade, `codesdd` continua publicado como shim. Depois de instalar,
132
+ confira:
133
+
134
+ ```bash
135
+ codesdd --version
136
+ ```
137
+
138
+ Se o terminal nao encontrar `codesdd`, a instalacao provavelmente foi concluida, mas o diretorio global do npm nao esta no `PATH` da sua sessao. Nesses casos, adicione o alias abaixo para o seu sistema operacional.
139
+
140
+ ### Windows PowerShell
141
+
142
+ ```powershell
143
+ npm install -g @devtrack-solution/codesdd
144
+ $target = Join-Path (npm config get prefix) "codesdd.cmd"
145
+ New-Item -ItemType File -Force $PROFILE
146
+ Add-Content $PROFILE "`nfunction codesdd { & '$target' @args }"
147
+ . $PROFILE
148
+ codesdd --version
149
+ ```
150
+
151
+ Se voce tambem precisar manter scripts legados que chamam `openspec`, adicione o alias de compatibilidade no mesmo perfil:
152
+
153
+ ```powershell
154
+ Add-Content $PROFILE "`nfunction openspec { codesdd @args }"
155
+ . $PROFILE
156
+ ```
157
+
158
+ ### Linux
159
+
160
+ Para Bash:
161
+
162
+ ```bash
163
+ npm install -g @devtrack-solution/codesdd
164
+ printf "\nalias codesdd='%s'\n" "$(npm prefix -g)/bin/codesdd" >> ~/.bashrc
165
+ . ~/.bashrc
166
+ codesdd --version
167
+ ```
168
+
169
+ Para Zsh:
170
+
171
+ ```bash
172
+ npm install -g @devtrack-solution/codesdd
173
+ printf "\nalias codesdd='%s'\n" "$(npm prefix -g)/bin/codesdd" >> ~/.zshrc
174
+ . ~/.zshrc
175
+ codesdd --version
176
+ ```
177
+
178
+ Alias legado opcional:
179
+
180
+ ```bash
181
+ printf "\nalias openspec='codesdd'\n" >> ~/.bashrc
182
+ # ou, se usar Zsh:
183
+ printf "\nalias openspec='codesdd'\n" >> ~/.zshrc
184
+ ```
185
+
186
+ ### macOS / MacBook
187
+
188
+ O shell padrao atual do macOS e Zsh:
189
+
190
+ ```bash
191
+ npm install -g @devtrack-solution/codesdd
192
+ printf "\nalias codesdd='%s'\n" "$(npm prefix -g)/bin/codesdd" >> ~/.zshrc
193
+ . ~/.zshrc
194
+ codesdd --version
195
+ ```
196
+
197
+ Alias legado opcional para comandos antigos:
198
+
199
+ ```bash
200
+ printf "\nalias openspec='codesdd'\n" >> ~/.zshrc
201
+ ```
202
+
203
+ Se voce estiver desenvolvendo este fork localmente:
204
+
205
+ ```bash
206
+ pnpm install
207
+ pnpm run build
208
+ npm install -g .
209
+ ```
210
+
211
+ Atalhos uteis de manutencao local:
212
+
213
+ ```bash
214
+ pnpm run cleanup
215
+ pnpm run cleanup:install
216
+ ```
217
+
218
+ - `cleanup`: remove artefatos de build/cache local, rastros de ambiente (`.DS_Store`, `.idea/`, `.claude/`), stores legados de contexto local e logs de falha de compilacao/execucao.
219
+ - `cleanup:install`: faz a limpeza acima e tambem remove `node_modules/` e lockfiles alternativos locais (`package-lock.json`, `yarn.lock`, `bun.lock*`), preservando o `pnpm-lock.yaml` versionado.
220
+
221
+ ## Como iniciar em um projeto novo
222
+
223
+ Entre no repositorio onde voce quer usar o sistema e rode:
224
+
225
+ ```bash
226
+ codesdd install --tools none
227
+ ```
228
+
229
+ Para ja nascer com nomenclatura mais intuitiva em portugues nas pastas do SDD:
230
+
231
+ ```bash
232
+ codesdd install --tools none --lang pt-BR --layout pt-BR
233
+ ```
234
+
235
+ Se quiser integrar ferramentas suportadas no bootstrap:
236
+
237
+ ```bash
238
+ codesdd install --tools all
239
+ ```
240
+
241
+ Ou somente algumas:
242
+
243
+ ```bash
244
+ codesdd install --tools codex,cursor,claude
245
+ ```
246
+
247
+ Esse comando instala de uma vez:
248
+
249
+ - a base do runtime
250
+ - `.sdd/config.yaml`
251
+ - `.sdd/`
252
+ - skills curadas
253
+ - prompts recomendados por workflow
254
+ - templates
255
+ - estados YAML canonicos
256
+ - documentos iniciais do projeto
257
+
258
+ Se voce nao quiser habilitar frontend no bootstrap:
259
+
260
+ ```bash
261
+ codesdd install --tools none --no-frontend
262
+ ```
263
+
264
+ Atalhos em portugues no CLI:
265
+
266
+ - `codesdd instalar` (alias de `codesdd install`)
267
+ - `codesdd sdd iniciar` (alias de `codesdd sdd init`)
268
+ - `codesdd sdd iniciar-contexto` (alias de `codesdd sdd init-context`)
269
+ - `codesdd sdd ideia`, `debater`, `decidir`, `desdobrar`, `iniciar-execucao`, `aprovar`, `contexto`, `orientar`, `consolidar`, `proximo`, `checar`, `ingestao-deposito`
270
+ - `codesdd arquivar` (alias em portugues para `codesdd archive`)
271
+
272
+ ## Como absorver um projeto que ja existe
273
+
274
+ Se o projeto ja esta em andamento, o primeiro passo depois do `install` e inicializar o contexto:
275
+
276
+ ```bash
277
+ codesdd sdd init-context
278
+ codesdd sdd check --render
279
+ codesdd sdd onboard system
280
+ ```
281
+
282
+ O `init-context` serve para:
283
+
284
+ - inspecionar a base existente
285
+ - preencher contexto inicial de arquitetura, stack, servicos e mapa do repositorio
286
+ - gerar a memoria inicial do sistema
287
+ - preparar onboarding para agentes novos
288
+
289
+ Em projetos grandes, esse bootstrap inicial nao substitui consolidacao progressiva. Ele cria uma base inicial para que o processo passe a evoluir de forma rastreavel.
290
+
291
+ ## Como usar no dia a dia
292
+
293
+ Fluxo principal:
294
+
295
+ 1. Ver o sistema como um todo
296
+
297
+ ```bash
298
+ codesdd sdd onboard system
299
+ ```
300
+
301
+ Antes de executar comandos operacionais do SDD, a CLI verifica se existe estado legado em `.sdd/state/`.
302
+ Quando detecta migracao pendente, ela executa a conversao mandatória para o formato canonico atual antes de seguir.
303
+ This primarily normalizes legacy IDs (`RAD-*`, `FEAT-*`, `SRC-*` without four-digit padding), migrates legacy workspace Markdown docs to YAML when needed, and persists `state_version: 2` in `.sdd/config.yaml`.
304
+
305
+ Para inspecionar ou aplicar a migracao de workspaces manualmente:
306
+
307
+ ```bash
308
+ codesdd sdd migrate-workspace --dry-run
309
+ codesdd sdd migrate-workspace --feat FEAT-0001
310
+ ```
311
+
312
+ O comando converte documentos conhecidos em `.sdd/active/<FEAT-ID>/` e `.sdd/archived/<FEAT-ID>/` de `.md` para `.yaml`, valida o resultado com os schemas Zod e marca lacunas com `# MIGRATION: field required but source had no content`. A migracao manual de estado via `codesdd sdd migrate` exige confirmacao interativa ou `--yes`.
313
+
314
+ Para reconstruir estado canonico quando os arquivos YAML em `.sdd/state/` perderem
315
+ sincronia com os artefatos no disco:
316
+
317
+ ```bash
318
+ codesdd sdd rebuild --from-disk --dry-run
319
+ codesdd sdd rebuild --from-disk --json
320
+ ```
321
+
322
+ O `rebuild --from-disk` reconcilia `discovery-index.yaml` e `backlog.yaml` a
323
+ partir de `.sdd/discovery/`, `.sdd/planned/`, `.sdd/active/` e
324
+ `.sdd/archived/`. Ele preserva campos ricos já existentes, recria registros
325
+ ausentes quando consegue derivar `FEAT`/`EPIC` de documentos validos, atualiza
326
+ contadores e pode ser executado em `--dry-run` antes de gravar.
327
+
328
+ Para absorver o corpus legado de especificacoes antes da remocao da pasta formal:
329
+
330
+ ```bash
331
+ codesdd sdd import-openspec --dry-run
332
+ codesdd sdd import-openspec
333
+ codesdd sdd import-openspec --remove --yes
334
+ ```
335
+
336
+ O `import-openspec` copia todos os arquivos de `openspec/` para
337
+ `.sdd/sources/legacy/spec-corpus`, calcula SHA-256 e tamanho de cada fonte,
338
+ registra cada item em `.sdd/state/source-index.yaml` e grava um relatorio em
339
+ `.sdd/sources/legacy/spec-corpus/_codesdd-import-report.yaml`. A opcao `--remove`
340
+ so e aceita junto de `--yes` e remove `openspec/` apenas depois de concluir a
341
+ copia e a verificacao de checksum.
342
+
343
+ If there is no ready FEAT, onboarding now returns guided steps such as creating an insight, opening a debate, deciding, and breaking down an EPIC instead of leaving `next_steps` empty.
344
+
345
+ 2. Ver o que pode comecar agora
346
+
347
+ ```bash
348
+ codesdd sdd next
349
+ ```
350
+
351
+ Auditar a saude de evolucao do proprio processo SDD (ciclo recomendado: semestral):
352
+
353
+ ```bash
354
+ codesdd sdd audit
355
+ codesdd sdd audit --json
356
+ ```
357
+
358
+ Cada execucao de `audit` anexa um snapshot em `.sdd/state/audit-history.yaml`
359
+ com score, saude, metricas principais e recomendacao, permitindo comparar
360
+ tendencia entre ciclos sem depender de memoria externa.
361
+
362
+ Contratos de qualidade novos usam enforcement `blocking` por padrao. Para nao
363
+ bloquear uma finalizacao, registre uma excecao formal com escopo, risco aceito,
364
+ controle compensatorio, prazo de revisao e aprovador; sem excecao, ausencia de
365
+ evidencia continua bloqueando o finalize.
366
+
367
+ Medir fluxo operacional a partir do transition log:
368
+
369
+ ```bash
370
+ codesdd sdd metrics --since 7d
371
+ codesdd sdd metrics --since 24h --json
372
+ ```
373
+
374
+ O `metrics` calcula lead time de FEATs finalizadas, aging de FEATs em progresso
375
+ e throughput por dia usando `.sdd/state/transition-log.yaml`. A janela aceita
376
+ formatos relativos (`7d`, `24h`, `2w`) ou timestamp ISO.
377
+
378
+ Reconciliar duplicatas historicas registradas por `warning_links`:
379
+
380
+ ```bash
381
+ codesdd sdd dedup --apply --dry-run
382
+ codesdd sdd dedup --apply --json
383
+ ```
384
+
385
+ O `dedup --apply` consome `warning_links` de registros historicos/terminais em
386
+ `backlog.yaml` e `discovery-index.yaml`, transfere rastreabilidade para o item
387
+ canonico, atualiza referencias simples como `blocked_by` e limpa apenas os links
388
+ reconciliados. Itens ativos continuam intactos e aparecem como warnings para
389
+ decisao manual.
390
+
391
+ Avaliar se uma FEAT esta ampla demais antes de avançar:
392
+
393
+ ```bash
394
+ codesdd sdd lint feature FEAT-0001
395
+ codesdd sdd lint feature FEAT-0001 --strict --json
396
+ ```
397
+
398
+ O lint de feature usa o workspace YAML e o backlog para verificar quantidade de
399
+ tasks, `lock_domains`, superficies frontend e modulos tocados. Sem `--strict`,
400
+ warnings documentam risco sem falhar; com `--strict`, qualquer warning retorna
401
+ exit code diferente de zero.
402
+
403
+ Diagnosticar a estrutura SDD com relatorio canonico, sem aplicar correcoes:
404
+
405
+ ```bash
406
+ codesdd sdd diagnose
407
+ codesdd sdd diagnose --json
408
+ codesdd sdd diagnose --strict --output .sdd/reports/diagnose.json
409
+ ```
410
+
411
+ O `diagnose` verifica diretórios canonicos, estado YAML, referencias, workspaces
412
+ ativos/arquivados, views geradas e fronteiras de path dentro de `.sdd`. O comando
413
+ retorna exit code `0` para saudavel, `1` para erros, `2` para bloqueadores,
414
+ `3` para opcoes invalidas e `4` para falha interna.
415
+
416
+ Planejar saneamento com classificacao safe/manual/blocked sem gravar alteracoes:
417
+
418
+ ```bash
419
+ codesdd sdd sanitize --dry-run
420
+ codesdd sdd sanitize --from-report .sdd/reports/diagnose.json
421
+ codesdd sdd sanitize --dry-run --json
422
+ codesdd sdd sanitize --from-report .sdd/reports/diagnose.json --apply --yes
423
+ codesdd sdd sanitize rollback SAN-20260422T100000Z-ABCDEF12 --reason "restore before migration"
424
+ ```
425
+
426
+ O `sanitize` transforma findings do `diagnose` em um plano deterministico de acoes
427
+ `mkdir`, `render`, `move`, `register`, `manual_review` ou `skip`, incluindo
428
+ candidatos de quarentena para casos inseguros e acoes bloqueadas separadas.
429
+ Quando executado com `--apply --yes`, aplica apenas acoes `safe` em transacao,
430
+ gera manifest em `.sdd/reports/sanitize/`, grava trilha de auditoria (`jsonl`) e
431
+ permite rollback pelo `transaction_id`.
432
+
433
+ 3. Iniciar uma feature
434
+
435
+ ```bash
436
+ codesdd sdd start FEAT-0001 --fluxo padrao
437
+ ```
438
+
439
+ Se a `FEAT` no backlog tiver `requires_adr: true`, ou se declarar impacto
440
+ arquitetural em superficies como `cli`, `validation`, `schema`, `state`, `sdd`
441
+ ou `contract`, o `start` cria automaticamente `.sdd/core/adrs/ADR-FEAT-####.md`
442
+ (sem sobrescrever ADR já existente) e injeta a referência no `1-spec.yaml` da
443
+ workspace ativa.
444
+
445
+ 4. Ler o contexto da feature
446
+
447
+ ```bash
448
+ codesdd sdd context FEAT-0001
449
+ ```
450
+
451
+ 4.1 Expor o bridge MCP para agentes externos
452
+
453
+ ```bash
454
+ codesdd sdd mcp-manifest --provider codex --json
455
+ codesdd sdd mcp-call codesdd.next --provider claude-code --json
456
+ codesdd sdd mcp-call codesdd.context --provider open-code --ref FEAT-0001 --json
457
+ codesdd sdd mcp-call codesdd.finalize --provider kimmy-code --ref FEAT-0001 --json
458
+ ```
459
+
460
+ O bridge MCP do CodeSDD e agnóstico a provedor e publica um envelope estável
461
+ para `codesdd.next`, `codesdd.context` e `codesdd.finalize`, cobrindo Codex,
462
+ Claude Code, Kimmy Code, Kilo Code, Open Code e clientes genéricos sem criar
463
+ um estado paralelo fora do workspace canônico.
464
+
465
+ 5. Implementar
466
+
467
+ 6. Consolidar memoria ao final
468
+
469
+ ```bash
470
+ codesdd sdd finalize --ref FEAT-0001
471
+ ```
472
+
473
+ Se você já estiver dentro de `.sdd/active/FEAT-####/`, o `finalize` também pode
474
+ inferir a FEAT alvo sem `--ref`, priorizando o workspace ativo atual antes de
475
+ cair para a fila pendente padrão.
476
+
477
+ Quando `requires_adr: true` ou o `2-plan.yaml` ativo declara impacto
478
+ arquitetural sensivel, o `finalize` exige ADR existente e válido pela lente `adr`
479
+ (seções `Contexto`, `Decisão`, `Consequências` e sem frase proibida de
480
+ placeholder). Em caso de violação, o fluxo é bloqueado.
481
+
482
+ Para features vinculadas a `EPIC-0020`/`EPIC-0021`, os YAMLs da workspace ativa
483
+ devem registrar `compliance_context`, `privacy_controls` e
484
+ `security_integrity`. O `finalize` valida esses gates e bloqueia a transição
485
+ sem esses campos, exceto com `--force-transition`.
486
+
487
+ Quando a feature tiver `recommended_skills`, o `5-quality.yaml` também vira o
488
+ contrato operacional das skills: registre uma entrada em
489
+ `skill_evidence.evidence[]` para cada skill requerida antes do `finalize`.
490
+ Sem esse rastro, o fluxo fica bloqueado como qualquer outra evidência de
491
+ qualidade obrigatória.
492
+
493
+ O `5-quality.yaml` agora também precisa fechar a rastreabilidade viva da
494
+ workspace: preencha `traceability.spec_anchor` com o `updated_at` atual do
495
+ `1-spec.yaml`, referencie a entrada correspondente do `4-changelog.yaml`, e
496
+ registre ao menos um mapeamento em `traceability.requirements[]` ligando
497
+ requisito -> `code_refs` -> `test_refs` -> `evidence_refs`. O `finalize`,
498
+ `check` e `diagnose` passam a bloquear ou sinalizar drift quando a spec muda e
499
+ esse vínculo não é revisitado.
500
+
501
+ O `finalize` também executa validação pós-active de lifecycle: a FEAT não pode
502
+ ter cópia semântica em `.sdd/archive/<FEAT-ID>`, deve sair de `.sdd/active/` e
503
+ deve aparecer uma única vez em `.sdd/archived/<FEAT-ID>`. `sdd check` e
504
+ `sdd diagnose` reportam `.sdd/archive/FEAT-*` como estrutura não canônica; use
505
+ `.sdd/archived/` para workspaces concluídos.
506
+
507
+ Regra operacional central:
508
+
509
+ uma feature so esta realmente concluida quando a documentacao afetada foi atualizada antes do `finalize`.
510
+
511
+ Isso inclui, quando houver impacto:
512
+
513
+ - `README.md`
514
+ - `AGENTS.md`
515
+ - `AGENT.md`
516
+ - `.sdd/README.md`
517
+ - `.sdd/AGENT.md`
518
+ - `.sdd/core/*.md`
519
+ - gaps e decisoes de frontend
520
+
521
+ ## Saúde Estrutural, Ciclo de Vida e Garantias de Segurança (Structural Health)
522
+
523
+ O CodeSDD implementa uma plataforma determinística de saúde estrutural (`sdd diagnose` e `sdd sanitize`) para garantir que o projeto evolua sem corrupção de estado, garantindo **segurança transacional**, **fuga de root boundary** e **invariância de idioma**.
524
+
525
+ ### 1. Modelo Conceitual e Ciclo de Vida (Lifecycle Semantics)
526
+ O ciclo de vida das features transita obrigatoriamente pelas raízes canônicas:
527
+ - **`planned`** (`.sdd/planned/`): Feature aprovada e desdobrada (estado `READY` ou `BLOCKED`), aguardando início.
528
+ - **`active`** (`.sdd/active/`): Feature em execução (estado `IN_PROGRESS`). Mudanças ocorrem no código e contratos de qualidade.
529
+ - **`archived`** (`.sdd/archived/`): Feature entregue e consolidada (estado `DONE`).
530
+
531
+ `.sdd/archive/` não é raiz de lifecycle canônica. Se ela contiver diretórios
532
+ `FEAT-*`, `check`, `diagnose` e `finalize` tratam isso como duplicidade
533
+ `archive`/`archived` e bloqueiam a conclusão até a evidência ser revisada e
534
+ consolidada em `.sdd/archived/`.
535
+
536
+ ### 2. Diagnóstico e Saneamento
537
+ - **Diagnóstico (`sdd diagnose`)**: Inspeciona a coerência entre o YAML canônico, referências (links/âncoras), workspaces, views geradas e fronteiras de *path*.
538
+ - **Saneamento (`sdd sanitize`)**: Gera um plano determinístico (`safe`, `manual`, `blocked`) para corrigir os achados do diagnóstico. Operações `safe` podem ser aplicadas (`--apply --yes`) dentro de uma transação.
539
+ - **Rollback**: Toda aplicação de saneamento gera um manifesto em `.sdd/reports/sanitize/` permitindo reversão (`codesdd sdd sanitize rollback <SAN-ID>`).
540
+
541
+ ### 3. Garantias de Fuga de Diretório (Root-Boundary Containment)
542
+ Nenhum comando gerenciado pelo CodeSDD (geração de plano, relatórios, views, etc.) tem permissão para escrever fora da raiz `.sdd` ativa.
543
+ - **Path Traversal / Absolute Paths**: Resolvidos e bloqueados imediatamente se apontarem para fora do diretório do projeto ou `.sdd`.
544
+ - **Symlink Escapes**: Links simbólicos são inspecionados via `realpath` antes de qualquer gravação.
545
+ Esta garantia aplica-se estritamente tanto à interface CLI quanto aos agentes operando via chamadas de função (function calls).
546
+
547
+ ### 4. Invariância de Idioma (Language Invariance)
548
+ - A prosa narrativa e conteúdo (ex. descrições em markdown, documentação humana) podem ser localizados.
549
+ - **Tokens estruturais, metadados YAML e diretórios operacionais (ex: `planned`, `active`, `archived`) são fixos em inglês.** Não utilize traduções para criar esses diretórios.
550
+ - Alias legados podem ser suportados pontualmente na CLI, mas a estrutura física deve respeitar a canonicidade.
551
+
552
+ ### 5. Guia de Migração e Troubleshooting
553
+ Projetos legados podem apresentar:
554
+ - **Pastas traduzidas** (ex: `pendencias` ao invés de `planned`, ou `arquivados` ao invés de `archived`). O comando `sdd check --render` ou a própria inicialização (`sdd start`) podem mapear esses desvios. Recomenda-se rodar `sdd diagnose` e `sdd sanitize` para regularizar esses *paths*.
555
+ - **Features presas em `active`**: Rode `codesdd sdd finalize --ref <FEAT-ID>` se a feature estiver concluída, ou migre para `planned` se estiver pausada.
556
+ - **Índices Duplicados**: Rode `sdd diagnose`. Achados apontarão identidades conflitantes (IDs duplicados) exigindo resolução manual.
557
+
558
+ ### 6. Function Calls para Agentes
559
+ Além da CLI, as mesmas primitivas de saúde e segurança estão expostas para integrações (ex. agentes rodando em TypeScript):
560
+ - `diagnoseSddRoot(payload)`: Promise<DiagnosticReport>
561
+ - `sanitizeSddRoot(payload)`: Promise<SanitizationReport>
562
+ - `verifySddBoundary(payload)`: Promise<BoundaryReport>
563
+ Essas funções compartilham o exato motor Zod de validação, regras de *boundary* e auditoria.
564
+
565
+ ## Como lidar com ideias novas durante a implementacao
566
+
567
+ Quando surgir uma ideia no meio do desenvolvimento:
568
+
569
+ ```bash
570
+ codesdd sdd insight "descricao da ideia"
571
+ codesdd sdd debate INS-0001
572
+ codesdd sdd decide DEB-0001 --outcome epic
573
+ codesdd sdd breakdown EPIC-0001 --mode graph --incremental
574
+ ```
575
+
576
+ Esse fluxo serve para nao enfiar no backlog algo que ainda nao foi pensado.
577
+
578
+ ## Como lidar com PRD, wireframe, HTML e material bruto
579
+
580
+ O CodeSDD separa descoberta de ingestao de documentos consolidados.
581
+
582
+ Se voce ja possui:
583
+
584
+ - PRD
585
+ - RFC
586
+ - historias do usuario
587
+ - wireframes
588
+ - imagens
589
+ - html mockado
590
+ - referencias visuais
591
+
592
+ these materials should go to:
593
+
594
+ ```text
595
+ .sdd/sources/
596
+ ```
597
+
598
+ Estrutura:
599
+
600
+ ```text
601
+ .sdd/sources/
602
+ ├── prds/
603
+ ├── rfcs/
604
+ ├── stories/
605
+ ├── wireframes/
606
+ ├── html-mocks/
607
+ ├── visual-references/
608
+ ├── interviews/
609
+ ├── attachments/
610
+ └── legacy/
611
+ ```
612
+
613
+ Depois disso, rode:
614
+
615
+ ```bash
616
+ codesdd sdd ingest-deposito --source-dir .sdd/sources --title "Initial system planning"
617
+ ```
618
+
619
+ This command scans sources, indexes raw material, creates or reuses an EPIC, breaks down FEATs, and tries to start the first ready FEAT.
620
+
621
+ Depois disso, o sistema usa o indice de fontes e as skills curadas para transformar esse material em:
622
+
623
+ - canonical context
624
+ - EPIC
625
+ - features
626
+ - pending and resolved frontend gaps
627
+ - consolidated frontend sitemap
628
+ - insights only when real ambiguity exists
629
+
630
+ ## Skills incluidas no bootstrap
631
+
632
+ The SDD bootstrap installs local curation in:
633
+
634
+ ```text
635
+ .sdd/skills/curated/
636
+ ```
637
+
638
+ The default curation currently includes 66 skills across 8 bundles (canonical source: `.sdd/state/skill-catalog.yaml`).
639
+
640
+ Entre elas:
641
+
642
+ - `repo-context-bootstrap`
643
+ - `source-intake-sdd`
644
+ - `business-extractor-sdd`
645
+ - `frontend-extractor-sdd`
646
+ - `planning-normalizer-sdd`
647
+ - `api-clean-flask-langgraph` (bundle `python-agentic-backend`)
648
+ - `devtrack-api` (bundle `architecture-backend`, canonical DevTrack/NestJS/TypeORM API architecture)
649
+
650
+ Skill routing is operational, not decorative. When `codesdd sdd context <FEAT-ID>` returns `recommended_skills`, or when a user explicitly directs a skill, the agent must read and follow that skill before implementation and record one `skill_evidence` entry per required skill in `.sdd/active/<FEAT-ID>/5-quality.yaml` before finalize. For DevTrack/Foundation backend API work, `devtrack-api` is the canonical architecture and naming source.
651
+
652
+ Prompts recomendados tambem sao instalados em:
653
+
654
+ ```text
655
+ .sdd/prompts/
656
+ ```
657
+
658
+ Tambem sao instaladas skills curadas de apoio para execucao e planejamento.
659
+
660
+ Para explorar bundles e sugestoes de adocao:
661
+
662
+ - `codesdd sdd skills bundles`
663
+ - `codesdd sdd skills suggest --phase plan --domains backend,api`
664
+
665
+ ## Arquivos importantes para onboarding
666
+
667
+ Um agente novo deve seguir esta ordem:
668
+
669
+ 1. `README.md`
670
+ 2. `.sdd/AGENT.md`
671
+ 3. `.sdd/core/index.md`
672
+ 4. `.sdd/core/arquitetura.md`
673
+ 5. `.sdd/core/servicos.md`
674
+ 6. `.sdd/core/spec-tecnologica.md`
675
+ 7. `.sdd/core/repo-map.md`
676
+ 8. `.sdd/core/fontes.md`
677
+ 9. `.sdd/core/frontend-decisions.md`
678
+
679
+ ## Comandos principais
680
+
681
+ Bootstrap:
682
+
683
+ - `codesdd install --tools none`
684
+ - `codesdd install --tools all`
685
+ - `codesdd sdd init-context`
686
+ - `codesdd sdd check --render`
687
+ - `codesdd sdd check --render --strict`
688
+ - `codesdd sdd diagnose`
689
+ - `codesdd sdd diagnose --json`
690
+ - `codesdd sdd diagnose --strict --output .sdd/reports/diagnose.json`
691
+ - `codesdd sdd rebuild --from-disk --dry-run`
692
+ - `codesdd sdd rebuild --from-disk --json`
693
+ - `codesdd sdd sanitize --dry-run`
694
+ - `codesdd sdd sanitize --from-report .sdd/reports/diagnose.json`
695
+ - `codesdd sdd sanitize --dry-run --json`
696
+ - `codesdd sdd sanitize --from-report .sdd/reports/diagnose.json --apply --yes`
697
+ - `codesdd sdd sanitize rollback SAN-20260422T100000Z-ABCDEF12 --reason "restore before migration"`
698
+ - `codesdd sdd audit`
699
+ - `codesdd sdd metrics --since 7d`
700
+ - `codesdd sdd metrics --since 24h --json`
701
+ - `codesdd sdd dedup --apply --dry-run`
702
+ - `codesdd sdd dedup --apply --json`
703
+ - `codesdd sdd lint feature FEAT-0001`
704
+ - `codesdd sdd lint feature FEAT-0001 --strict --json`
705
+ - `codesdd sdd ingest-deposito`
706
+
707
+ Onboarding e operacao:
708
+
709
+ - `codesdd sdd onboard system`
710
+ - `codesdd sdd orientar system`
711
+ - `codesdd sdd next`
712
+ - `codesdd sdd next --max-agents <N>` (limita o tamanho da primeira onda e lista itens adiados)
713
+ - `codesdd sdd start FEAT-0001 --fluxo direto|padrao|rigoroso`
714
+ - `codesdd sdd aprovar FEAT-0001 --etapa proposta|planejamento|tarefas`
715
+ - `codesdd sdd context FEAT-0001`
716
+ - `codesdd sdd audit`
717
+ - `codesdd sdd finalize --ref FEAT-0001`
718
+
719
+ Descoberta:
720
+
721
+ - `codesdd sdd insight "..."`
722
+ - `codesdd sdd debate INS-0001`
723
+ - `codesdd sdd decide DEB-0001 --outcome epic|discard`
724
+ - `codesdd sdd desdobrar EPIC-0001 --mode graph --incremental`
725
+
726
+ ## Documentacao
727
+
728
+ Guia detalhado em portugues:
729
+
730
+ - [Manual SDD PT-BR](docs/sdd-manual-pt-br.md)
731
+ - [Historia da Marina (uso pratico)](docs/historia-marina-uso-pratico.md)
732
+ - [Release e Rollback](docs/release.md)
733
+ - [Kit estatico do SDD](kits/codesdd-static-kit/README.md)
734
+ - [Guia de contribuicao](CONTRIBUTING.md)
735
+ - [Politica de seguranca](SECURITY.md)
736
+ - [Codigo de conduta](CODE_OF_CONDUCT.md)
737
+ - [Suporte](SUPPORT.md)
738
+
739
+ Guia interno do sistema:
740
+
741
+ - [.sdd/README.md](.sdd/README.md)
742
+ - [.sdd/AGENT.md](.sdd/AGENT.md)
743
+
744
+ ## Desenvolvimento local
745
+
746
+ ```bash
747
+ pnpm install
748
+ pnpm run build
749
+ pnpm test
750
+ pnpm run lint
751
+ pnpm run sdd:validate
752
+ ```
753
+
754
+ Loop local do CLI:
755
+
756
+ ```bash
757
+ pnpm run dev:cli
758
+ ```
759
+
760
+ O repositório instala automaticamente um hook de `pre-commit` local via `.githooks/` durante `pnpm install`. Esse hook chama `node scripts/pre-commit-sdd-fast.mjs`, inspeciona arquivos staged e roda `codesdd sdd check --strict` somente quando houver arquivos `.sdd/` no commit. Para a validacao completa antes de PR/release, rode `pnpm run sdd:validate`.
761
+
762
+ A matriz autoritativa de cobertura da CLI fica em `src/core/cli/command-matrix.ts`. Sempre que um novo leaf command for registrado, atualize a matriz junto para explicitar se a cobertura esperada e `contract`, `spawned-e2e` ou `exception`.
763
+
764
+ ## Estado atual da distribuicao
765
+
766
+ O comando global oficial deste fork e:
767
+
768
+ ```bash
769
+ codesdd
770
+ ```
771
+
772
+ O caminho de distribuicao oficial deste repositorio e npm. Veja a secao [Instalacao global](#instalacao-global) para instalar globalmente e configurar o alias por sistema operacional.
773
+
774
+ ```bash
775
+ npm install -g @devtrack-solution/codesdd
776
+ ```
777
+
778
+ Fallback suportado:
779
+ - instalacao por tarball (`npm pack` + `npm install -g ./devtrack-solution-codesdd-<versao>.tgz`)
780
+
781
+ ## Colaboracao
782
+
783
+ Para contribuir com seguranca e previsibilidade:
784
+
785
+ - siga [CONTRIBUTING.md](CONTRIBUTING.md);
786
+ - reporte vulnerabilidades por [SECURITY.md](SECURITY.md);
787
+ - respeite o [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md);
788
+ - use [SUPPORT.md](SUPPORT.md) para escolher o canal certo.
789
+
790
+ Este repositório foi preparado para ser público com foco em:
791
+
792
+ - licença MIT explícita;
793
+ - automação de CI e smoke test de instalação;
794
+ - templates de issue e PR;
795
+ - atualização automática de dependências;
796
+ - hygiene de versionamento para evitar artefatos locais e arquivos sensíveis no repositório.
797
+
798
+ ## Telemetria e privacidade
799
+
800
+ O CLI possui telemetria anônima de uso com desenho privacy-first:
801
+
802
+ - sem captura de argumentos, conteúdo ou caminhos de arquivos;
803
+ - desabilitada em CI;
804
+ - opt-out via `OPENSPEC_TELEMETRY=0` ou `DO_NOT_TRACK=1`.
805
+ - opt-out explícito por execução com `--no-telemetry`;
806
+ - eventos de conclusão incluem `duration_ms` estruturado para observabilidade sem
807
+ enviar argumentos ou conteúdo.
808
+
809
+ Se você identificar comportamento diferente disso, reporte via [SECURITY.md](SECURITY.md).
810
+
811
+ ## Licenca
812
+
813
+ MIT
814
+
815
+ <!-- SDD:ONBOARDING:START -->
816
+ ## Onboarding SDD
817
+
818
+ Operational authority:
819
+ - Canonical operational state, planning, dependencies, blockers, and handoff live only in `.sdd/state/*.yaml`.
820
+ - Human-readable operational views are derived from `.sdd/core/*.md` and `.sdd/planning/*.md`.
821
+ - Do not use external context, memory, workflow, or backlog tools as a project source of truth.
822
+
823
+ Read order for any new agent:
824
+ 1. `README.md` (this block)
825
+ 2. `.sdd/AGENT.md`
826
+ 3. `.sdd/core/index.md`
827
+ 4. `.sdd/core/arquitetura.md`
828
+ 5. `.sdd/core/servicos.md`
829
+ 6. `.sdd/core/spec-tecnologica.md`
830
+ 7. `.sdd/core/repo-map.md`
831
+ 8. `.sdd/core/fontes.md`
832
+ 9. `.sdd/core/frontend-sitemap.md` (when frontend is enabled)
833
+ 10. `.sdd/core/frontend-decisions.md` (when frontend is enabled)
834
+
835
+ Essential commands:
836
+ - `codesdd sdd onboard system`
837
+ - `codesdd sdd next`
838
+ - `codesdd sdd context <FEAT-ID>`
839
+ - update `.sdd/active/<FEAT-ID>/5-quality.yaml`
840
+ - `codesdd sdd frontend-impact <FEAT-ID> --status required|none --reason "..."`
841
+ - `codesdd sdd finalize --ref <FEAT-ID>`
842
+ <!-- SDD:ONBOARDING:END -->