@devtrack-solution/codesdd 1.2.2 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (345) hide show
  1. package/.sdd/skills/curated/api-clean-flask-langgraph/SKILL.md +17 -17
  2. package/.sdd/skills/curated/devtrack-api/SKILL.md +160 -28
  3. package/.sdd/skills/curated/devtrack-api/agents/openai.yaml +1 -1
  4. package/.sdd/skills/curated/devtrack-api/references/architecture-governance.md +8 -7
  5. package/.sdd/skills/curated/devtrack-api/references/consumer-sync-policy.md +93 -0
  6. package/.sdd/skills/curated/devtrack-api/references/contract-pack.yaml +317 -0
  7. package/.sdd/skills/curated/devtrack-api/references/field-validation-protocol.md +95 -0
  8. package/.sdd/skills/curated/devtrack-api/references/foundation-layout.md +295 -0
  9. package/.sdd/skills/curated/devtrack-api/references/implementation-checklist.md +4 -4
  10. package/.sdd/skills/curated/devtrack-api/references/imports-lint.md +4 -0
  11. package/.sdd/skills/curated/devtrack-api/references/testing-validation.md +2 -2
  12. package/LICENSE +1 -1
  13. package/README.md +243 -51
  14. package/bin/codesdd.js +3 -2
  15. package/dist/cli/index.d.ts +2 -2
  16. package/dist/cli/index.js +11 -558
  17. package/dist/cli/program.d.ts +14 -0
  18. package/dist/cli/program.js +645 -0
  19. package/dist/commands/change.js +5 -5
  20. package/dist/commands/completion.d.ts +1 -1
  21. package/dist/commands/completion.js +9 -2
  22. package/dist/commands/config.js +159 -20
  23. package/dist/commands/feedback.js +1 -1
  24. package/dist/commands/schema.d.ts +63 -0
  25. package/dist/commands/schema.js +12 -12
  26. package/dist/commands/sdd/backlog.d.ts +3 -0
  27. package/dist/commands/sdd/backlog.js +54 -0
  28. package/dist/commands/sdd/execution.js +147 -16
  29. package/dist/commands/sdd/plugin.d.ts +3 -0
  30. package/dist/commands/sdd/plugin.js +153 -0
  31. package/dist/commands/sdd/shared.js +2 -23
  32. package/dist/commands/sdd/skills.js +7 -0
  33. package/dist/commands/sdd.js +69 -12
  34. package/dist/commands/spec.js +9 -9
  35. package/dist/commands/validate.js +6 -6
  36. package/dist/commands/workflow/instructions.js +6 -6
  37. package/dist/commands/workflow/new-change.js +3 -3
  38. package/dist/commands/workflow/shared.d.ts +1 -1
  39. package/dist/commands/workflow/shared.js +4 -4
  40. package/dist/core/archive.js +15 -5
  41. package/dist/core/artifact-graph/instruction-loader.d.ts +1 -1
  42. package/dist/core/artifact-graph/instruction-loader.js +3 -3
  43. package/dist/core/artifact-graph/resolver.d.ts +4 -4
  44. package/dist/core/artifact-graph/resolver.js +6 -6
  45. package/dist/core/branding.js +3 -3
  46. package/dist/core/cli/command-matrix.js +10 -1
  47. package/dist/core/cli-command-quality.d.ts +27 -0
  48. package/dist/core/cli-command-quality.js +171 -0
  49. package/dist/core/command-generation/adapters/costrict.d.ts +1 -1
  50. package/dist/core/command-generation/adapters/costrict.js +2 -2
  51. package/dist/core/command-generation/types.d.ts +1 -1
  52. package/dist/core/completions/command-registry.d.ts +1 -1
  53. package/dist/core/completions/command-registry.js +155 -12
  54. package/dist/core/completions/completion-provider.d.ts +14 -1
  55. package/dist/core/completions/completion-provider.js +29 -1
  56. package/dist/core/completions/generators/bash-generator.d.ts +1 -1
  57. package/dist/core/completions/generators/bash-generator.js +20 -12
  58. package/dist/core/completions/generators/fish-generator.d.ts +9 -1
  59. package/dist/core/completions/generators/fish-generator.js +39 -25
  60. package/dist/core/completions/generators/powershell-generator.d.ts +1 -1
  61. package/dist/core/completions/generators/powershell-generator.js +21 -11
  62. package/dist/core/completions/generators/zsh-generator.d.ts +3 -6
  63. package/dist/core/completions/generators/zsh-generator.js +21 -42
  64. package/dist/core/completions/installers/bash-installer.js +6 -6
  65. package/dist/core/completions/installers/fish-installer.js +1 -1
  66. package/dist/core/completions/installers/powershell-installer.js +14 -14
  67. package/dist/core/completions/installers/zsh-installer.d.ts +7 -1
  68. package/dist/core/completions/installers/zsh-installer.js +36 -8
  69. package/dist/core/completions/templates/bash-templates.d.ts +1 -1
  70. package/dist/core/completions/templates/bash-templates.js +12 -6
  71. package/dist/core/completions/templates/fish-templates.d.ts +2 -2
  72. package/dist/core/completions/templates/fish-templates.js +20 -9
  73. package/dist/core/completions/templates/powershell-templates.d.ts +1 -1
  74. package/dist/core/completions/templates/powershell-templates.js +13 -4
  75. package/dist/core/completions/templates/zsh-templates.d.ts +1 -1
  76. package/dist/core/completions/templates/zsh-templates.js +18 -9
  77. package/dist/core/config-schema.d.ts +3 -1
  78. package/dist/core/config-schema.js +26 -1
  79. package/dist/core/config.d.ts +3 -3
  80. package/dist/core/config.js +4 -4
  81. package/dist/core/global-config.d.ts +41 -12
  82. package/dist/core/global-config.js +344 -27
  83. package/dist/core/index.d.ts +1 -1
  84. package/dist/core/index.js +2 -2
  85. package/dist/core/init.d.ts +6 -1
  86. package/dist/core/init.js +99 -77
  87. package/dist/core/legacy-cleanup.d.ts +17 -17
  88. package/dist/core/legacy-cleanup.js +96 -79
  89. package/dist/core/list.js +18 -4
  90. package/dist/core/migration.d.ts +3 -1
  91. package/dist/core/migration.js +7 -8
  92. package/dist/core/parsers/change-parser.js +1 -1
  93. package/dist/core/parsers/markdown-parser.js +2 -2
  94. package/dist/core/profile-sync-drift.d.ts +1 -1
  95. package/dist/core/profile-sync-drift.js +13 -13
  96. package/dist/core/project-config.d.ts +4 -4
  97. package/dist/core/project-config.js +11 -11
  98. package/dist/core/schemas/change.schema.d.ts +1 -1
  99. package/dist/core/schemas/change.schema.js +1 -1
  100. package/dist/core/schemas/spec.schema.d.ts +1 -1
  101. package/dist/core/schemas/spec.schema.js +1 -1
  102. package/dist/core/sdd/adr.js +23 -1
  103. package/dist/core/sdd/agent-binding.d.ts +346 -0
  104. package/dist/core/sdd/agent-binding.js +343 -0
  105. package/dist/core/sdd/backlog-cli.d.ts +16 -0
  106. package/dist/core/sdd/backlog-cli.js +146 -0
  107. package/dist/core/sdd/backlog-conflict-policy.d.ts +58 -0
  108. package/dist/core/sdd/backlog-conflict-policy.js +230 -0
  109. package/dist/core/sdd/backlog-projection.d.ts +8 -0
  110. package/dist/core/sdd/backlog-projection.js +89 -0
  111. package/dist/core/sdd/backlog-provider-contract.d.ts +252 -0
  112. package/dist/core/sdd/backlog-provider-contract.js +158 -0
  113. package/dist/core/sdd/bootstrap.js +2 -2
  114. package/dist/core/sdd/check.d.ts +42 -0
  115. package/dist/core/sdd/check.js +22 -22
  116. package/dist/core/sdd/contract.d.ts +13 -0
  117. package/dist/core/sdd/contract.js +36 -0
  118. package/dist/core/sdd/coordination/coordination-adapters.d.ts +38 -0
  119. package/dist/core/sdd/coordination/coordination-adapters.js +139 -1
  120. package/dist/core/sdd/deepagent-contracts.d.ts +276 -0
  121. package/dist/core/sdd/deepagent-contracts.js +173 -0
  122. package/dist/core/sdd/deepagents/adr-governor.d.ts +2 -0
  123. package/dist/core/sdd/deepagents/adr-governor.js +30 -0
  124. package/dist/core/sdd/deepagents/backend.d.ts +63 -0
  125. package/dist/core/sdd/deepagents/backend.js +174 -0
  126. package/dist/core/sdd/deepagents/codesdd-tools.d.ts +39 -0
  127. package/dist/core/sdd/deepagents/codesdd-tools.js +83 -0
  128. package/dist/core/sdd/deepagents/evidence-mapper.d.ts +86 -0
  129. package/dist/core/sdd/deepagents/evidence-mapper.js +178 -0
  130. package/dist/core/sdd/deepagents/model-provider.d.ts +53 -0
  131. package/dist/core/sdd/deepagents/model-provider.js +379 -0
  132. package/dist/core/sdd/deepagents/policy-enforcement.d.ts +30 -0
  133. package/dist/core/sdd/deepagents/policy-enforcement.js +90 -0
  134. package/dist/core/sdd/deepagents/policy.d.ts +75 -0
  135. package/dist/core/sdd/deepagents/policy.js +358 -0
  136. package/dist/core/sdd/deepagents/quality-witness.d.ts +3 -0
  137. package/dist/core/sdd/deepagents/quality-witness.js +77 -0
  138. package/dist/core/sdd/deepagents/reversa-subagents.d.ts +75 -0
  139. package/dist/core/sdd/deepagents/reversa-subagents.js +182 -0
  140. package/dist/core/sdd/deepagents/runtime-factory.d.ts +90 -0
  141. package/dist/core/sdd/deepagents/runtime-factory.js +231 -0
  142. package/dist/core/sdd/deepagents/runtime-loader.d.ts +16 -0
  143. package/dist/core/sdd/deepagents/runtime-loader.js +65 -0
  144. package/dist/core/sdd/default-bootstrap-files.d.ts +2 -2
  145. package/dist/core/sdd/default-bootstrap-files.js +36 -2
  146. package/dist/core/sdd/default-skills.d.ts +30 -0
  147. package/dist/core/sdd/default-skills.js +181 -5
  148. package/dist/core/sdd/devtrack-api-appliance.d.ts +84 -0
  149. package/dist/core/sdd/devtrack-api-appliance.js +257 -0
  150. package/dist/core/sdd/devtrack-api-architecture.d.ts +31 -0
  151. package/dist/core/sdd/devtrack-api-architecture.js +608 -0
  152. package/dist/core/sdd/devtrack-api-import-boundary.d.ts +19 -0
  153. package/dist/core/sdd/devtrack-api-import-boundary.js +32 -0
  154. package/dist/core/sdd/diagnose.d.ts +59 -0
  155. package/dist/core/sdd/diagnose.js +37 -37
  156. package/dist/core/sdd/docs-sync.js +33 -5
  157. package/dist/core/sdd/domain/post-active-validation.d.ts +7 -0
  158. package/dist/core/sdd/domain/post-active-validation.js +61 -0
  159. package/dist/core/sdd/domain/transition-engine.js +1 -0
  160. package/dist/core/sdd/entity-reference.d.ts +5 -0
  161. package/dist/core/sdd/entity-reference.js +22 -0
  162. package/dist/core/sdd/governance-backfill.d.ts +31 -0
  163. package/dist/core/sdd/governance-backfill.js +359 -0
  164. package/dist/core/sdd/governance-parser.d.ts +21 -0
  165. package/dist/core/sdd/governance-parser.js +91 -0
  166. package/dist/core/sdd/governance-schemas.d.ts +245 -0
  167. package/dist/core/sdd/governance-schemas.js +143 -0
  168. package/dist/core/sdd/{import-openspec.d.ts → import-legacy-spec.d.ts} +7 -7
  169. package/dist/core/sdd/{import-openspec.js → import-legacy-spec.js} +21 -29
  170. package/dist/core/sdd/init.d.ts +3 -0
  171. package/dist/core/sdd/init.js +6 -3
  172. package/dist/core/sdd/json-schema.js +100 -6
  173. package/dist/core/sdd/knowledge-graph.d.ts +45 -0
  174. package/dist/core/sdd/knowledge-graph.js +288 -0
  175. package/dist/core/sdd/legacy-operations.js +431 -43
  176. package/dist/core/sdd/lenses.d.ts +1 -0
  177. package/dist/core/sdd/lenses.js +29 -1
  178. package/dist/core/sdd/migrate-workspace.js +56 -2
  179. package/dist/core/sdd/migrate.d.ts +1 -1
  180. package/dist/core/sdd/migrate.js +36 -2
  181. package/dist/core/sdd/package-structure-gate.d.ts +83 -0
  182. package/dist/core/sdd/package-structure-gate.js +362 -0
  183. package/dist/core/sdd/parallel-feat-automation.d.ts +152 -0
  184. package/dist/core/sdd/parallel-feat-automation.js +212 -0
  185. package/dist/core/sdd/plugin-broker.d.ts +558 -0
  186. package/dist/core/sdd/plugin-broker.js +482 -0
  187. package/dist/core/sdd/plugin-certification.d.ts +79 -0
  188. package/dist/core/sdd/plugin-certification.js +453 -0
  189. package/dist/core/sdd/plugin-cli.d.ts +109 -0
  190. package/dist/core/sdd/plugin-cli.js +198 -0
  191. package/dist/core/sdd/plugin-evidence.d.ts +275 -0
  192. package/dist/core/sdd/plugin-evidence.js +307 -0
  193. package/dist/core/sdd/plugin-manifest.d.ts +164 -0
  194. package/dist/core/sdd/plugin-manifest.js +215 -0
  195. package/dist/core/sdd/plugin-policy-pack.d.ts +88 -0
  196. package/dist/core/sdd/plugin-policy-pack.js +236 -0
  197. package/dist/core/sdd/plugin-policy.d.ts +68 -0
  198. package/dist/core/sdd/plugin-policy.js +212 -0
  199. package/dist/core/sdd/plugin-registry.d.ts +311 -0
  200. package/dist/core/sdd/plugin-registry.js +138 -0
  201. package/dist/core/sdd/plugin-skill-binding.d.ts +151 -0
  202. package/dist/core/sdd/plugin-skill-binding.js +339 -0
  203. package/dist/core/sdd/quality-artifact-manifest-validator.d.ts +28 -0
  204. package/dist/core/sdd/quality-artifact-manifest-validator.js +167 -0
  205. package/dist/core/sdd/quality-evidence-renderer.d.ts +65 -0
  206. package/dist/core/sdd/quality-evidence-renderer.js +218 -0
  207. package/dist/core/sdd/quality-scenario-runner.d.ts +42 -0
  208. package/dist/core/sdd/quality-scenario-runner.js +613 -0
  209. package/dist/core/sdd/quality-validation.d.ts +547 -0
  210. package/dist/core/sdd/quality-validation.js +239 -0
  211. package/dist/core/sdd/resolve-project-root.d.ts +2 -2
  212. package/dist/core/sdd/resolve-project-root.js +11 -5
  213. package/dist/core/sdd/sanitize.d.ts +30 -1
  214. package/dist/core/sdd/sanitize.js +23 -23
  215. package/dist/core/sdd/services/agent-run.service.d.ts +65 -0
  216. package/dist/core/sdd/services/agent-run.service.js +189 -0
  217. package/dist/core/sdd/services/breakdown.service.js +2 -1
  218. package/dist/core/sdd/services/context.service.js +18 -16
  219. package/dist/core/sdd/services/debate.service.js +15 -2
  220. package/dist/core/sdd/services/feature-lint.service.d.ts +22 -0
  221. package/dist/core/sdd/services/feature-lint.service.js +105 -5
  222. package/dist/core/sdd/services/finalize.service.d.ts +80 -0
  223. package/dist/core/sdd/services/finalize.service.js +323 -24
  224. package/dist/core/sdd/services/frontend-gap.service.js +22 -7
  225. package/dist/core/sdd/services/governance-control-plane-runtime-adapters.d.ts +17 -0
  226. package/dist/core/sdd/services/governance-control-plane-runtime-adapters.js +38 -0
  227. package/dist/core/sdd/services/governance-control-plane.service.d.ts +66 -0
  228. package/dist/core/sdd/services/governance-control-plane.service.js +134 -0
  229. package/dist/core/sdd/services/ingest-deposito.service.js +1 -1
  230. package/dist/core/sdd/services/legacy-capability.service.d.ts +10 -7
  231. package/dist/core/sdd/services/legacy-capability.service.js +38 -21
  232. package/dist/core/sdd/services/mcp-runtime.service.d.ts +123 -8
  233. package/dist/core/sdd/services/mcp-runtime.service.js +1085 -33
  234. package/dist/core/sdd/services/onboard.service.js +2 -1
  235. package/dist/core/sdd/services/rebuild.service.js +6 -1
  236. package/dist/core/sdd/services/skills-sync.service.d.ts +17 -5
  237. package/dist/core/sdd/services/skills-sync.service.js +55 -2
  238. package/dist/core/sdd/services/start.service.js +6 -4
  239. package/dist/core/sdd/skill-bundles-curation-schema.d.ts +66 -0
  240. package/dist/core/sdd/skill-bundles-curation-schema.js +52 -0
  241. package/dist/core/sdd/skill-evidence.d.ts +19 -0
  242. package/dist/core/sdd/skill-evidence.js +38 -0
  243. package/dist/core/sdd/skill-policy-pool.d.ts +46 -0
  244. package/dist/core/sdd/skill-policy-pool.js +185 -0
  245. package/dist/core/sdd/state.d.ts +22 -0
  246. package/dist/core/sdd/state.js +66 -41
  247. package/dist/core/sdd/structural-health.d.ts +42 -42
  248. package/dist/core/sdd/types.d.ts +33 -7
  249. package/dist/core/sdd/types.js +17 -0
  250. package/dist/core/sdd/upgrade-to-codesdd.d.ts +45 -0
  251. package/dist/core/sdd/upgrade-to-codesdd.js +179 -0
  252. package/dist/core/sdd/workspace-schemas.d.ts +285 -14
  253. package/dist/core/sdd/workspace-schemas.js +148 -0
  254. package/dist/core/sdd/write-manifest.js +22 -4
  255. package/dist/core/shared/skill-generation.d.ts +1 -1
  256. package/dist/core/shared/skill-generation.js +15 -15
  257. package/dist/core/shared/tool-detection.d.ts +3 -3
  258. package/dist/core/shared/tool-detection.js +14 -14
  259. package/dist/core/specs-apply.js +6 -6
  260. package/dist/core/templates/index.d.ts +1 -1
  261. package/dist/core/templates/index.js +1 -1
  262. package/dist/core/templates/workflows/apply-change.js +14 -14
  263. package/dist/core/templates/workflows/archive-change.js +32 -32
  264. package/dist/core/templates/workflows/bulk-archive-change.js +25 -25
  265. package/dist/core/templates/workflows/continue-change.js +12 -12
  266. package/dist/core/templates/workflows/explore.js +29 -29
  267. package/dist/core/templates/workflows/feedback.js +6 -6
  268. package/dist/core/templates/workflows/ff-change.js +24 -24
  269. package/dist/core/templates/workflows/new-change.js +20 -20
  270. package/dist/core/templates/workflows/onboard.js +33 -33
  271. package/dist/core/templates/workflows/propose.js +23 -23
  272. package/dist/core/templates/workflows/sdd.js +8 -8
  273. package/dist/core/templates/workflows/sync-specs.js +19 -19
  274. package/dist/core/templates/workflows/verify-change.js +17 -17
  275. package/dist/core/update.d.ts +2 -2
  276. package/dist/core/update.js +16 -15
  277. package/dist/core/validation/constants.d.ts +1 -1
  278. package/dist/core/validation/constants.js +1 -1
  279. package/dist/core/view.js +11 -11
  280. package/dist/telemetry/config.d.ts +2 -1
  281. package/dist/telemetry/config.js +17 -8
  282. package/dist/telemetry/index.d.ts +10 -2
  283. package/dist/telemetry/index.js +40 -7
  284. package/dist/ui/ascii-patterns.d.ts +2 -2
  285. package/dist/ui/ascii-patterns.js +2 -2
  286. package/dist/ui/welcome-screen.js +2 -2
  287. package/dist/utils/change-metadata.d.ts +4 -4
  288. package/dist/utils/change-metadata.js +6 -6
  289. package/dist/utils/change-utils.d.ts +3 -3
  290. package/dist/utils/change-utils.js +5 -5
  291. package/dist/utils/file-system.js +1 -1
  292. package/dist/utils/interactive.js +1 -1
  293. package/dist/utils/item-discovery.js +4 -4
  294. package/dist/utils/legacy-spec-compat.d.ts +2 -0
  295. package/dist/utils/legacy-spec-compat.js +2 -0
  296. package/dist/utils/shell-detection.d.ts +1 -0
  297. package/dist/utils/shell-detection.js +16 -0
  298. package/package.json +27 -17
  299. package/schemas/sdd/1-spec.schema.json +1 -1
  300. package/schemas/sdd/2-plan.schema.json +73 -1
  301. package/schemas/sdd/3-tasks.schema.json +73 -1
  302. package/schemas/sdd/4-changelog.schema.json +1 -1
  303. package/schemas/sdd/5-quality.schema.json +442 -2
  304. package/schemas/sdd/adr.schema.json +148 -0
  305. package/schemas/sdd/agent-binding-adapter.schema.json +210 -0
  306. package/schemas/sdd/agent-binding-resolution.schema.json +338 -0
  307. package/schemas/sdd/backlog-projection-plan.schema.json +180 -0
  308. package/schemas/sdd/backlog-provider-contract.schema.json +260 -0
  309. package/schemas/sdd/codesdd-plugin.schema.json +474 -0
  310. package/schemas/sdd/debate.schema.json +244 -0
  311. package/schemas/sdd/deepagent-decision-evidence.schema.json +58 -0
  312. package/schemas/sdd/deepagent-env-contract.schema.json +143 -0
  313. package/schemas/sdd/deepagent-quality-evidence.schema.json +108 -0
  314. package/schemas/sdd/deepagent-run-evidence.schema.json +192 -0
  315. package/schemas/sdd/deepagent-run-plan.schema.json +197 -0
  316. package/schemas/sdd/deepagent-run-request.schema.json +321 -0
  317. package/schemas/sdd/deepagent-subagent-evidence.schema.json +110 -0
  318. package/schemas/sdd/deepagent-tool-call-evidence.schema.json +78 -0
  319. package/schemas/sdd/discarded.schema.json +127 -0
  320. package/schemas/sdd/epic.schema.json +147 -0
  321. package/schemas/sdd/insight.schema.json +136 -0
  322. package/schemas/sdd/parallel-feat-automation-plan.schema.json +215 -0
  323. package/schemas/sdd/parallel-feat-automation-request.schema.json +109 -0
  324. package/schemas/sdd/plugin-artifact-manifest.schema.json +150 -0
  325. package/schemas/sdd/plugin-compliance-index.schema.json +136 -0
  326. package/schemas/sdd/plugin-dry-run-plan.schema.json +260 -0
  327. package/schemas/sdd/plugin-evidence-manifest.schema.json +569 -0
  328. package/schemas/sdd/plugin-policy-evaluation.schema.json +92 -0
  329. package/schemas/sdd/plugin-policy-pack-evaluation.schema.json +94 -0
  330. package/schemas/sdd/plugin-policy-pack.schema.json +196 -0
  331. package/schemas/sdd/plugin-registry.schema.json +558 -0
  332. package/schemas/sdd/plugin-rollback-manifest.schema.json +87 -0
  333. package/schemas/sdd/plugin-runtime-invocation-plan.schema.json +845 -0
  334. package/schemas/sdd/plugin-skill-binding-resolution.schema.json +305 -0
  335. package/schemas/sdd/plugin-skill-binding.schema.json +88 -0
  336. package/schemas/sdd/plugin-validation-manifest.schema.json +123 -0
  337. package/schemas/sdd/quality-architecture-schema.schema.json +216 -0
  338. package/schemas/sdd/quality-evidence-bundle.schema.json +1228 -0
  339. package/schemas/sdd/quality-run.schema.json +197 -0
  340. package/schemas/sdd/quality-scenario.schema.json +252 -0
  341. package/schemas/sdd/workspace-catalog.schema.json +9841 -22
  342. package/schemas/spec-driven/schema.yaml +4 -4
  343. package/schemas/spec-driven/templates/proposal.md +1 -1
  344. package/dist/utils/openspec-compat.d.ts +0 -2
  345. package/dist/utils/openspec-compat.js +0 -2
@@ -40,7 +40,7 @@ This directory stores the project's operational memory.
40
40
  - \`${planning}/frontend-auditoria.md\`: frontend coverage audit by FEAT.
41
41
  - \`state/\`: canonical YAML source of truth.
42
42
  - \`${skills}/\`: local curation and bundles.
43
- - \`${templates}/\`: base templates for spec, plan, quality, tasks, and changelog.
43
+ - \`${templates}/\`: base YAML templates for spec, plan, quality, tasks, and changelog.
44
44
  - \`${prompts}/\`: recommended prompts for common workflows.
45
45
  - \`${active}/\`: active FEAT workspaces.
46
46
  - \`${archived}/\`: finalized frozen workspaces.
@@ -80,11 +80,12 @@ In the terminal, from your project directory:
80
80
  \`\`\`bash
81
81
  codesdd install --tools none --lang en-US --layout en-US
82
82
  codesdd sdd init --frontend --lang en-US --layout en-US
83
- codesdd sdd init-context
83
+ codesdd sdd init-context --frontend --lang en-US --layout en-US
84
84
  codesdd sdd check --render
85
85
  codesdd sdd rebuild --from-disk --dry-run
86
86
  codesdd sdd dedup --apply --dry-run
87
87
  codesdd sdd onboard system
88
+ codesdd reload --tools none --lang en-US --layout en-US
88
89
  \`\`\`
89
90
 
90
91
  ## 2) Understand The Main Folders
@@ -314,6 +315,39 @@ traceability:
314
315
  spec_updated_at: ""
315
316
  changelog_refs: []
316
317
  requirements: []
318
+ q95_ledger:
319
+ threshold: 95
320
+ score: 0
321
+ status: pending
322
+ computed_at: ""
323
+ weights:
324
+ coverage: 30
325
+ traceability: 20
326
+ integrity: 20
327
+ naming: 10
328
+ token: 20
329
+ axes:
330
+ coverage:
331
+ raw_score: 0
332
+ weighted_score: 0
333
+ rationale: Computed during finalize.
334
+ traceability:
335
+ raw_score: 0
336
+ weighted_score: 0
337
+ rationale: Computed during finalize.
338
+ integrity:
339
+ raw_score: 0
340
+ weighted_score: 0
341
+ rationale: Computed during finalize.
342
+ naming:
343
+ raw_score: 0
344
+ weighted_score: 0
345
+ rationale: Computed during finalize.
346
+ token:
347
+ raw_score: 0
348
+ weighted_score: 0
349
+ rationale: Computed during finalize.
350
+ next_best_action: Record missing evidence to raise the lowest weighted axis.
317
351
  security_integrity:
318
352
  endpoint_auth_review: pending
319
353
  sensitive_data_exposure_review: pending
@@ -5,11 +5,41 @@ export interface BuiltInSkillSourceTree {
5
5
  }
6
6
  export type BuiltInSkillTree = Record<string, string>;
7
7
  export type BuiltInSkillDefinition = string | BuiltInSkillTree | BuiltInSkillSourceTree;
8
+ export declare function normalizeSkillManifestContent(content: string): string;
9
+ export declare function computeSkillManifestSha256(content: string): string;
8
10
  export declare const DEFAULT_CURATED_SKILL_CATALOG: SkillCatalogState;
9
11
  export declare const SOURCE_INTAKE_SDD_SKILL_MD = "---\nname: source-intake-sdd\ndescription: Reads the .sdd/sources folder, indexes raw sources, and classifies project intake material.\n---\n\n# Source Intake SDD\n\nUse this skill when the project has raw material in `.sdd/sources/`.\n\n## Objective\n\nTurn a heterogeneous document set into a traceable operational inventory.\n\n## Where To Look\n\n- `.sdd/sources/prds/`\n- `.sdd/sources/rfcs/`\n- `.sdd/sources/briefings/`\n- `.sdd/sources/stories/`\n- `.sdd/sources/wireframes/`\n- `.sdd/sources/html-mocks/`\n- `.sdd/sources/visual-references/`\n- `.sdd/sources/interviews/`\n- `.sdd/sources/attachments/`\n- `.sdd/sources/legacy/`\n\n## Required Flow\n\n1. List existing sources.\n2. Classify each source by type.\n3. Register/update `.sdd/state/source-index.yaml`.\n4. Fill for each item:\n - `type`\n - `path`\n - `title`\n - `status`\n - `summary`\n - `used_by`\n - `consolidation_targets`\n5. Do not generate backlog directly in this step.\n\n## Golden Rule\n\n- Raw source is not canonical source.\n- The goal here is inventory and classification.\n- Backlog is created only after semantic normalization.\n";
10
12
  export declare const BUSINESS_EXTRACTOR_SDD_SKILL_MD = "---\nname: business-extractor-sdd\ndescription: Extracts stories, business rules, actors, integrations, and constraints from source material.\n---\n\n# Business Extractor SDD\n\nUse this skill when the repository already has PRDs, briefings, stories, or consolidated documents.\n\n## Expected Outputs\n\n- canonical context updates:\n - `.sdd/state/architecture.yaml`\n - `.sdd/state/service-catalog.yaml`\n - `.sdd/state/tech-stack.yaml`\n - `.sdd/state/integration-contracts.yaml`\n- suggestions for:\n - EPICs\n - FEATs\n - INSIGHTs only when real ambiguity exists\n\n## How To Decide The Destination\n\n- If the excerpt describes system structure, consolidate it into context.\n- If the excerpt is a large approved decision, normalize it into an EPIC.\n- If the excerpt is already clear and executable, normalize it into a FEAT.\n- If the excerpt is ambiguous, contradictory, or incomplete, normalize it into an INSIGHT.\n\n## Do Not\n\n- Do not turn an entire PRD into a direct task list.\n- Do not invent technical details that are not present in the source.\n";
11
13
  export declare const FRONTEND_EXTRACTOR_SDD_SKILL_MD = "---\nname: frontend-extractor-sdd\ndescription: Extracts frontend surfaces, routes, components, gaps, and decisions from images, HTML, wireframes, and references.\n---\n\n# Frontend Extractor SDD\n\nUse this skill when visual inspiration or UI/UX definitions exist in `.sdd/sources/`.\n\n## Accepted Sources\n\n- wireframes\n- screenshots\n- reference images\n- mocked HTML\n- stories with interface impact\n\n## Expected Outputs\n\n- `.sdd/state/frontend-map.yaml`\n- `.sdd/state/frontend-gaps.yaml`\n- `.sdd/state/frontend-decisions.yaml`\n\n## Classification Criteria\n\n- What is clearly defined as a screen/route goes into frontend-map.\n- What is missing but necessary to cover the journey goes into frontend-gaps.\n- UX rationale, navigation, layout, patterns, and inspiration go into frontend-decisions.\n- If a surface is well-defined and executable, it can become a FEAT.\n";
12
14
  export declare const PLANNING_NORMALIZER_SDD_SKILL_MD = "---\nname: planning-normalizer-sdd\ndescription: Converts extracted source material into the SDD operational backlog, prioritizing context, EPICs, and FEATs.\n---\n\n# Planning Normalizer SDD\n\nUse this skill after inventorying sources and extracting business/frontend context.\n\n## Mission\n\nTurn consolidated knowledge into operational SDD artifacts.\n\n## Normalization Order\n\n1. canonical context\n2. EPICs\n3. FEATs\n4. INSIGHTs only for exceptions\n\n## Rules\n\n- Do not force debate when the source is already consolidated and unambiguous.\n- Use debate only for uncertainty, conflict, ambiguity, or open architecture options.\n- Connect FEATs with `blocked_by`, `lock_domains`, `produces`, and `consumes` when enough evidence exists.\n- Record in `.sdd/state/source-index.yaml` which sources generated each EPIC/FEAT.\n\n## Minimum Result\n\nAt the end, the agent must be able to answer:\n- what is system context;\n- what is already approved for planning;\n- what can enter execution now.\n";
15
+ /**
16
+ * Build the structured YAML form of the curated bundles document.
17
+ * Mirrors the data shown by `buildCuratedBundlesMarkdown` but emits a
18
+ * schema-validated object suitable for programmatic consumption.
19
+ *
20
+ * Introduced by EPIC-0072 wave 1 (FEAT-0284) as the toolchain precursor
21
+ * for the broader frontmatter migration. The shape is governed by
22
+ * `src/core/sdd/skill-bundles-curation-schema.ts`.
23
+ */
24
+ export declare function buildCuratedBundlesCurationData(layout?: 'en-US' | 'pt-BR'): {
25
+ schema_version: 1;
26
+ layout: 'en-US' | 'pt-BR';
27
+ generated_from: 'CURATED_BUNDLES';
28
+ objective: string[];
29
+ bundles: Array<{
30
+ id: string;
31
+ title: string;
32
+ skill_ids: string[];
33
+ }>;
34
+ highlighted: Array<{
35
+ skill_id: string;
36
+ bundle_id: string;
37
+ canonical_path: string;
38
+ notes: string[];
39
+ }>;
40
+ canonical_source: string;
41
+ operational_rule: string[];
42
+ };
13
43
  export declare function buildCuratedBundlesMarkdown(): string;
14
44
  export declare const REPO_CONTEXT_BOOTSTRAP_SKILL_MD: string;
15
45
  export declare const BUILT_IN_SDD_SKILLS: Record<string, BuiltInSkillDefinition>;
@@ -1,6 +1,12 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { existsSync, readFileSync } from 'node:fs';
3
+ import path from 'node:path';
4
+ import { fileURLToPath } from 'node:url';
1
5
  import { CLI_NAME } from '../branding.js';
6
+ import { DEVTRACK_API_APPLIANCE_PLUGIN_ID } from './devtrack-api-appliance.js';
2
7
  const DEFAULT_TOOLS = ['codex', 'cursor', 'claude', 'gemini'];
3
8
  const DEFAULT_SOURCE_REPO = 'https://github.com/sickn33/antigravity-awesome-skills';
9
+ const PACKAGE_ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../../../');
4
10
  const LOCAL_SDD_SKILL_PATHS = {
5
11
  'api-clean-flask-langgraph': '.sdd/skills/curated/api-clean-flask-langgraph/SKILL.md',
6
12
  'devtrack-api': '.sdd/skills/curated/devtrack-api/SKILL.md',
@@ -9,11 +15,23 @@ const LOCAL_SDD_SKILL_PATHS = {
9
15
  'frontend-extractor-sdd': '.sdd/skills/curated/frontend-extractor-sdd/SKILL.md',
10
16
  'planning-normalizer-sdd': '.sdd/skills/curated/planning-normalizer-sdd/SKILL.md',
11
17
  'mobile-design': '.sdd/skills/curated/sdd-curated-mobile-design/SKILL.md',
18
+ 'sdd-reverse-orchestrator': '.sdd/skills/curated/sdd-reverse-orchestrator/SKILL.md',
19
+ 'sdd-reverse-surface-scout': '.sdd/skills/curated/sdd-reverse-surface-scout/SKILL.md',
20
+ 'sdd-reverse-module-archaeologist': '.sdd/skills/curated/sdd-reverse-module-archaeologist/SKILL.md',
21
+ 'sdd-reverse-business-rules-detective': '.sdd/skills/curated/sdd-reverse-business-rules-detective/SKILL.md',
22
+ 'sdd-reverse-spec-writer': '.sdd/skills/curated/sdd-reverse-spec-writer/SKILL.md',
23
+ 'sdd-reverse-domain-essence-extractor': '.sdd/skills/curated/sdd-reverse-domain-essence-extractor/SKILL.md',
24
+ 'sdd-offdev-docs-orchestrator': '.sdd/skills/curated/sdd-offdev-docs-orchestrator/SKILL.md',
25
+ 'sdd-offdev-docs-mapper': '.sdd/skills/curated/sdd-offdev-docs-mapper/SKILL.md',
26
+ 'sdd-offdev-docs-analyst': '.sdd/skills/curated/sdd-offdev-docs-analyst/SKILL.md',
27
+ 'sdd-reverse-forward-planner': '.sdd/skills/curated/sdd-reverse-forward-planner/SKILL.md',
28
+ 'sdd-reverse-migration-planner': '.sdd/skills/curated/sdd-reverse-migration-planner/SKILL.md',
29
+ 'sdd-reverse-reconstructor': '.sdd/skills/curated/sdd-reverse-reconstructor/SKILL.md',
12
30
  };
13
31
  const SKILL_METADATA_OVERRIDES = {
14
32
  'api-clean-flask-langgraph': {
15
33
  title: 'API Clean Flask LangGraph',
16
- description: 'Canonical Python/Flask agentic backend skill with Clean Architecture boundaries, tenant/security authority-source rules, OpenSDD decision support (runtime-safe), production-readiness guidance, and maintainable quality gates.',
34
+ description: 'Canonical Python/Flask agentic backend skill with Clean Architecture boundaries, tenant/security authority-source rules, CodeSDD decision support (runtime-safe), production-readiness guidance, and maintainable quality gates.',
17
35
  },
18
36
  'devtrack-api': {
19
37
  title: 'DevTrack API',
@@ -149,6 +167,42 @@ const CURATED_BUNDLES = [
149
167
  'incident-responder',
150
168
  ],
151
169
  },
170
+ {
171
+ id: 'reverse-engineering',
172
+ title: 'Reverse Engineering',
173
+ domains: ['reverse-engineering', 'legacy', 'discovery'],
174
+ phases: ['discover', 'plan', 'execute', 'verify'],
175
+ skillIds: [
176
+ 'sdd-reverse-orchestrator',
177
+ 'sdd-reverse-surface-scout',
178
+ 'sdd-reverse-module-archaeologist',
179
+ 'sdd-reverse-business-rules-detective',
180
+ 'sdd-reverse-spec-writer',
181
+ 'sdd-reverse-domain-essence-extractor',
182
+ ],
183
+ },
184
+ {
185
+ id: 'off-development-docs',
186
+ title: 'Off-Development Docs',
187
+ domains: ['documentation', 'legacy', 'discovery'],
188
+ phases: ['discover', 'plan', 'verify', 'finalize'],
189
+ skillIds: [
190
+ 'sdd-offdev-docs-orchestrator',
191
+ 'sdd-offdev-docs-mapper',
192
+ 'sdd-offdev-docs-analyst',
193
+ ],
194
+ },
195
+ {
196
+ id: 'migration-and-forward',
197
+ title: 'Migration and Forward',
198
+ domains: ['migration', 'legacy', 'architecture'],
199
+ phases: ['plan', 'execute', 'verify', 'finalize'],
200
+ skillIds: [
201
+ 'sdd-reverse-forward-planner',
202
+ 'sdd-reverse-migration-planner',
203
+ 'sdd-reverse-reconstructor',
204
+ ],
205
+ },
152
206
  ];
153
207
  function titleFromSkillId(skillId) {
154
208
  return skillId
@@ -160,14 +214,58 @@ function priorityForIndex(index) {
160
214
  const priority = 10 - index;
161
215
  return priority < 6 ? 6 : priority;
162
216
  }
217
+ export function normalizeSkillManifestContent(content) {
218
+ return content
219
+ .replaceAll('.sdd/deposito', '.sdd/sources')
220
+ .replaceAll('/historias/', '/stories/')
221
+ .replaceAll('/referencias-visuais/', '/visual-references/')
222
+ .replaceAll('/entrevistas/', '/interviews/')
223
+ .replaceAll('/anexos/', '/attachments/')
224
+ .replaceAll('/legado/', '/legacy/');
225
+ }
226
+ export function computeSkillManifestSha256(content) {
227
+ return createHash('sha256').update(normalizeSkillManifestContent(content), 'utf-8').digest('hex');
228
+ }
229
+ function fallbackSkillMarkdown(entry) {
230
+ const domainLine = entry.domains.length > 0 ? entry.domains.join(', ') : 'geral';
231
+ const phaseLine = entry.phases.length > 0 ? entry.phases.join(', ') : 'all';
232
+ return `---
233
+ name: ${entry.id}
234
+ description: ${entry.description || entry.title}
235
+ ---
236
+
237
+ # ${entry.title}
238
+
239
+ ## Contexto
240
+ - Dominios: ${domainLine}
241
+ - Fases: ${phaseLine}
242
+
243
+ ## Instrucoes
244
+ ${entry.description || 'Aplicar esta skill como apoio especializado durante o planejamento e execucao.'}
245
+ `;
246
+ }
247
+ function seedIntegrityHash(entry) {
248
+ if (entry.source_path?.startsWith('.sdd/skills/')) {
249
+ const sourceFile = path.resolve(PACKAGE_ROOT, entry.source_path);
250
+ if (existsSync(sourceFile)) {
251
+ return computeSkillManifestSha256(readFileSync(sourceFile, 'utf-8'));
252
+ }
253
+ }
254
+ return computeSkillManifestSha256(fallbackSkillMarkdown(entry));
255
+ }
163
256
  function buildSkillEntry(bundle, skillId, index) {
164
257
  const localSourcePath = LOCAL_SDD_SKILL_PATHS[skillId];
165
258
  const isLocalSkill = Boolean(localSourcePath);
166
259
  const metadata = SKILL_METADATA_OVERRIDES[skillId] || {};
167
- return {
260
+ const sourceRepo = isLocalSkill ? 'local://legacy-spec/sdd' : DEFAULT_SOURCE_REPO;
261
+ const sourcePath = isLocalSkill ? localSourcePath : `skills/${skillId}/SKILL.md`;
262
+ const deterministicPair = skillId === 'devtrack-api'
263
+ ? { plugin_id: DEVTRACK_API_APPLIANCE_PLUGIN_ID, capability: 'scaffold.project' }
264
+ : undefined;
265
+ const baseEntry = {
168
266
  id: skillId,
169
- source_repo: isLocalSkill ? 'local://opensdd/sdd' : DEFAULT_SOURCE_REPO,
170
- source_path: isLocalSkill ? localSourcePath : `skills/${skillId}/SKILL.md`,
267
+ source_repo: sourceRepo,
268
+ source_path: sourcePath,
171
269
  title: metadata.title || titleFromSkillId(skillId),
172
270
  description: metadata.description || (isLocalSkill
173
271
  ? `Native SDD skill for ${bundle.title.toLowerCase()}.`
@@ -177,6 +275,18 @@ function buildSkillEntry(bundle, skillId, index) {
177
275
  tools: DEFAULT_TOOLS,
178
276
  bundle_ids: [bundle.id],
179
277
  priority: priorityForIndex(index),
278
+ token_budget: {
279
+ input_max: 12000,
280
+ output_max: 4000,
281
+ thinking_max: 2000,
282
+ },
283
+ deterministic_pair: deterministicPair,
284
+ deprecated_at: undefined,
285
+ superseded_by: undefined,
286
+ };
287
+ return {
288
+ ...baseEntry,
289
+ integrity_hash: seedIntegrityHash(baseEntry),
180
290
  };
181
291
  }
182
292
  export const DEFAULT_CURATED_SKILL_CATALOG = {
@@ -332,6 +442,71 @@ At the end, the agent must be able to answer:
332
442
  - what is already approved for planning;
333
443
  - what can enter execution now.
334
444
  `;
445
+ /**
446
+ * Build the structured YAML form of the curated bundles document.
447
+ * Mirrors the data shown by `buildCuratedBundlesMarkdown` but emits a
448
+ * schema-validated object suitable for programmatic consumption.
449
+ *
450
+ * Introduced by EPIC-0072 wave 1 (FEAT-0284) as the toolchain precursor
451
+ * for the broader frontmatter migration. The shape is governed by
452
+ * `src/core/sdd/skill-bundles-curation-schema.ts`.
453
+ */
454
+ export function buildCuratedBundlesCurationData(layout = 'en-US') {
455
+ const objective = layout === 'en-US'
456
+ ? [
457
+ 'Reduce the 900+ skill universe to a practical set.',
458
+ 'Accelerate planning, execution, and validation.',
459
+ 'Make delegation between agents easier in English.',
460
+ ]
461
+ : [
462
+ 'Reduzir o universo de 900+ skills para um conjunto pratico.',
463
+ 'Acelerar planejamento, execucao e validacao.',
464
+ 'Facilitar a delegacao entre agentes em portugues.',
465
+ ];
466
+ const bundles = CURATED_BUNDLES.map((bundle) => ({
467
+ id: bundle.id,
468
+ title: bundle.title,
469
+ skill_ids: [...bundle.skillIds],
470
+ }));
471
+ const highlighted = [
472
+ {
473
+ skill_id: 'api-clean-flask-langgraph',
474
+ bundle_id: 'python-agentic-backend',
475
+ canonical_path: '.sdd/skills/curated/api-clean-flask-langgraph/SKILL.md',
476
+ notes: [
477
+ 'Canonical local reference for Python/Flask Clean Architecture, CodeSDD decision support (without runtime dependency), production-readiness guidance, and quality gates.',
478
+ ],
479
+ },
480
+ {
481
+ skill_id: 'devtrack-api',
482
+ bundle_id: 'architecture-backend',
483
+ canonical_path: '.sdd/skills/curated/devtrack-api/',
484
+ notes: [
485
+ 'Canonical directory for the DevTrack API skill; includes agents/ and references/.',
486
+ 'Operational default: API/backend work uses devtrack-api unless an explicit skill/profile overrides it; Python/Flask API work uses api-clean-flask-langgraph.',
487
+ ],
488
+ },
489
+ ];
490
+ const operational_rule = layout === 'en-US'
491
+ ? [
492
+ 'The skills in this document are a curation reference.',
493
+ 'Official skills and bundles state must be edited only in canonical YAML.',
494
+ ]
495
+ : [
496
+ 'As skills neste documento sao uma referencia de curadoria.',
497
+ 'O estado oficial de skills e bundles deve ser editado apenas no YAML canonico.',
498
+ ];
499
+ return {
500
+ schema_version: 1,
501
+ layout,
502
+ generated_from: 'CURATED_BUNDLES',
503
+ objective,
504
+ bundles,
505
+ highlighted,
506
+ canonical_source: '.sdd/state/skill-catalog.yaml',
507
+ operational_rule,
508
+ };
509
+ }
335
510
  export function buildCuratedBundlesMarkdown() {
336
511
  const lines = [
337
512
  '# Skill Curation (en-US)',
@@ -351,10 +526,11 @@ export function buildCuratedBundlesMarkdown() {
351
526
  });
352
527
  lines.push('## Highlighted Local Skill');
353
528
  lines.push('- `api-clean-flask-langgraph` belongs to bundle `python-agentic-backend`.');
354
- lines.push('- It is the canonical local reference for Python/Flask Clean Architecture, OpenSDD decision support (without runtime dependency), production-readiness guidance, and quality gates.');
529
+ lines.push('- It is the canonical local reference for Python/Flask Clean Architecture, CodeSDD decision support (without runtime dependency), production-readiness guidance, and quality gates.');
355
530
  lines.push('- Canonical file: `.sdd/skills/curated/api-clean-flask-langgraph/SKILL.md`.');
356
531
  lines.push('- `devtrack-api` belongs to bundle `architecture-backend`.');
357
532
  lines.push('- Canonical directory: `.sdd/skills/curated/devtrack-api/` (includes `agents/` and `references/`).');
533
+ lines.push('- Operational default: API/backend work uses `devtrack-api` unless an explicit skill/profile overrides it; Python/Flask API work uses `api-clean-flask-langgraph`.');
358
534
  lines.push('');
359
535
  lines.push('## Canonical Source');
360
536
  lines.push('- `.sdd/state/skill-catalog.yaml`');
@@ -0,0 +1,84 @@
1
+ import { type PluginArtifactManifest, type PluginRuntimeInvocationPlan } from './plugin-broker.js';
2
+ import { type PluginManifest } from './plugin-manifest.js';
3
+ export declare const DEVTRACK_API_APPLIANCE_PLUGIN_ID = "codesdd-plugin-devtrack-api";
4
+ export declare const DEVTRACK_API_APPLIANCE_CAPABILITIES: readonly ["scaffold.project", "generate.domain", "generate.crud", "validate.structure", "evidence.emit"];
5
+ declare const DEVTRACK_API_SCAFFOLD_CAPABILITY = "scaffold.project";
6
+ type DevTrackApiScaffoldLayer = 'root' | 'application' | 'domain' | 'infrastructure' | 'presentation' | 'shared' | 'tests' | 'docs';
7
+ export interface DevTrackApiScaffoldArtifact {
8
+ path: string;
9
+ layer: DevTrackApiScaffoldLayer;
10
+ operation: 'planned';
11
+ content_type: string;
12
+ reason: string;
13
+ source_reference: string;
14
+ }
15
+ export interface DevTrackApiScaffoldDryRunInput {
16
+ feature_ref: string;
17
+ project_name: string;
18
+ package_name?: string;
19
+ created_at?: string;
20
+ operation_id?: string;
21
+ requested_write_scope?: string[];
22
+ }
23
+ export interface DevTrackApiScaffoldEvidenceManifest {
24
+ schema_version: 1;
25
+ operation_id: string;
26
+ generated_at: string;
27
+ feature_ref: string;
28
+ plugin_ref: {
29
+ id: string;
30
+ version: string;
31
+ };
32
+ capability: typeof DEVTRACK_API_SCAFFOLD_CAPABILITY;
33
+ status: 'planned';
34
+ project_name: string;
35
+ package_name: string;
36
+ foundation_reference: {
37
+ repository: string;
38
+ architecture_doc: string;
39
+ derived_structure_doc: string;
40
+ skill_ref: string;
41
+ };
42
+ validation_commands: Array<{
43
+ command: string;
44
+ status: 'pending';
45
+ }>;
46
+ quality_gates: string[];
47
+ }
48
+ export type DevTrackApiScaffoldDryRunPlan = {
49
+ schema_version: 1;
50
+ status: 'planned';
51
+ created_at: string;
52
+ operation_id: string;
53
+ project_name: string;
54
+ package_name: string;
55
+ runtime_plan: PluginRuntimeInvocationPlan;
56
+ artifacts: DevTrackApiScaffoldArtifact[];
57
+ artifact_manifest: PluginArtifactManifest;
58
+ evidence_manifest: DevTrackApiScaffoldEvidenceManifest;
59
+ issues: [];
60
+ } | {
61
+ schema_version: 1;
62
+ status: 'invalid' | 'blocked' | 'unresolved';
63
+ created_at: string;
64
+ operation_id?: string;
65
+ project_name: string;
66
+ package_name: string;
67
+ runtime_plan?: PluginRuntimeInvocationPlan;
68
+ artifacts: [];
69
+ issues: string[];
70
+ };
71
+ export interface DevTrackApiApplianceConformance {
72
+ valid: boolean;
73
+ plugin_id: string;
74
+ capability_names: string[];
75
+ missing_capabilities: string[];
76
+ missing_artifact_writes: string[];
77
+ missing_forbidden_writes: string[];
78
+ typeorm_only: boolean;
79
+ issues: string[];
80
+ }
81
+ export declare function evaluateDevTrackApiApplianceConformance(manifest: PluginManifest): DevTrackApiApplianceConformance;
82
+ export declare function buildDevTrackApiScaffoldDryRunPlan(manifest: PluginManifest, input: DevTrackApiScaffoldDryRunInput): DevTrackApiScaffoldDryRunPlan;
83
+ export {};
84
+ //# sourceMappingURL=devtrack-api-appliance.d.ts.map