@devtrack-solution/codesdd 1.2.3 → 1.2.4

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 (213) hide show
  1. package/.sdd/skills/curated/devtrack-api/SKILL.md +98 -12
  2. package/.sdd/skills/curated/devtrack-api/agents/claude-code.yaml +10 -0
  3. package/.sdd/skills/curated/devtrack-api/agents/codex.yaml +10 -0
  4. package/.sdd/skills/curated/devtrack-api/agents/cursor.yaml +10 -0
  5. package/.sdd/skills/curated/devtrack-api/agents/gemini.yaml +10 -0
  6. package/.sdd/skills/curated/devtrack-api/agents/kimi.yaml +10 -0
  7. package/.sdd/skills/curated/devtrack-api/agents/openai.yaml +5 -3
  8. package/.sdd/skills/curated/devtrack-api/agents/opencode.yaml +12 -0
  9. package/.sdd/skills/curated/devtrack-api/references/application-presentation.md +61 -5
  10. package/.sdd/skills/curated/devtrack-api/references/consumer-sync-policy.md +15 -3
  11. package/.sdd/skills/curated/devtrack-api/references/contract-pack.yaml +1951 -0
  12. package/.sdd/skills/curated/devtrack-api/references/domain-modeling.md +16 -14
  13. package/.sdd/skills/curated/devtrack-api/references/field-validation-protocol.md +40 -0
  14. package/.sdd/skills/curated/devtrack-api/references/foundation-layout.md +19 -2
  15. package/.sdd/skills/curated/devtrack-api/references/generated-artifact-invalidation.md +97 -0
  16. package/.sdd/skills/curated/devtrack-api/references/implementation-checklist.md +30 -1
  17. package/.sdd/skills/curated/devtrack-api/references/portable-agent-contract.md +42 -0
  18. package/.sdd/skills/curated/devtrack-api/references/testing-validation.md +22 -1
  19. package/.sdd/skills/curated/devtrack-api/references/typeorm-infrastructure.md +9 -7
  20. package/README.md +280 -29
  21. package/dist/applications/sdd/index.d.ts +16 -0
  22. package/dist/applications/sdd/index.js +16 -0
  23. package/dist/cli/program.js +180 -11
  24. package/dist/commands/config.js +197 -10
  25. package/dist/commands/sdd/execution.js +408 -16
  26. package/dist/commands/sdd/plugin.js +5 -0
  27. package/dist/commands/sdd/shared.d.ts +1 -0
  28. package/dist/commands/sdd/shared.js +10 -0
  29. package/dist/commands/sdd.js +157 -7
  30. package/dist/core/cli/command-matrix.d.ts +18 -0
  31. package/dist/core/cli/command-matrix.js +157 -0
  32. package/dist/core/cli-command-quality.js +11 -0
  33. package/dist/core/completions/command-registry.js +45 -0
  34. package/dist/core/config-schema.d.ts +31 -1
  35. package/dist/core/config-schema.js +79 -5
  36. package/dist/core/config.d.ts +1 -0
  37. package/dist/core/config.js +11 -0
  38. package/dist/core/global-config.d.ts +29 -0
  39. package/dist/core/init.d.ts +2 -2
  40. package/dist/core/init.js +13 -14
  41. package/dist/core/sdd/agent-binding.d.ts +19 -19
  42. package/dist/core/sdd/agent-runtime-contract.d.ts +204 -0
  43. package/dist/core/sdd/agent-runtime-contract.js +200 -0
  44. package/dist/core/sdd/allocator-recovery.d.ts +14 -0
  45. package/dist/core/sdd/allocator-recovery.js +30 -0
  46. package/dist/core/sdd/allocator-security.d.ts +18 -0
  47. package/dist/core/sdd/allocator-security.js +36 -0
  48. package/dist/core/sdd/api-foundation-baseline.d.ts +111 -0
  49. package/dist/core/sdd/api-foundation-baseline.js +151 -0
  50. package/dist/core/sdd/api-foundation-parity.d.ts +114 -0
  51. package/dist/core/sdd/api-foundation-parity.js +131 -0
  52. package/dist/core/sdd/api-profile-catalog.d.ts +36 -0
  53. package/dist/core/sdd/api-profile-catalog.js +132 -0
  54. package/dist/core/sdd/api-profile-dry-run-projection.d.ts +93 -0
  55. package/dist/core/sdd/api-profile-dry-run-projection.js +370 -0
  56. package/dist/core/sdd/api-profile-recipes.d.ts +82 -0
  57. package/dist/core/sdd/api-profile-recipes.js +484 -0
  58. package/dist/core/sdd/artifact-id-allocator.d.ts +368 -0
  59. package/dist/core/sdd/artifact-id-allocator.js +510 -0
  60. package/dist/core/sdd/check.d.ts +52 -1
  61. package/dist/core/sdd/check.js +326 -11
  62. package/dist/core/sdd/coordination/coordination-adapters.d.ts +15 -8
  63. package/dist/core/sdd/coordination/coordination-adapters.js +43 -15
  64. package/dist/core/sdd/coordination/index.d.ts +1 -0
  65. package/dist/core/sdd/coordination/index.js +1 -0
  66. package/dist/core/sdd/coordination/redis-runtime.d.ts +131 -0
  67. package/dist/core/sdd/coordination/redis-runtime.js +698 -0
  68. package/dist/core/sdd/deepagent-contracts.d.ts +99 -5
  69. package/dist/core/sdd/deepagent-contracts.js +62 -0
  70. package/dist/core/sdd/deepagents/reversa-subagents.d.ts +3 -3
  71. package/dist/core/sdd/default-bootstrap-files.d.ts +2 -2
  72. package/dist/core/sdd/default-bootstrap-files.js +14 -10
  73. package/dist/core/sdd/default-skills.js +115 -9
  74. package/dist/core/sdd/devtrack-api-appliance.d.ts +42 -1
  75. package/dist/core/sdd/devtrack-api-appliance.js +159 -32
  76. package/dist/core/sdd/devtrack-api-architecture.d.ts +16 -0
  77. package/dist/core/sdd/devtrack-api-architecture.js +86 -0
  78. package/dist/core/sdd/docs-sync.js +24 -18
  79. package/dist/core/sdd/domain/capability-diff.d.ts +63 -0
  80. package/dist/core/sdd/domain/capability-diff.js +200 -0
  81. package/dist/core/sdd/domain/change-safety-guardrails.d.ts +74 -0
  82. package/dist/core/sdd/domain/change-safety-guardrails.js +333 -0
  83. package/dist/core/sdd/domain/semantic-intent-classifier.d.ts +29 -0
  84. package/dist/core/sdd/domain/semantic-intent-classifier.js +117 -0
  85. package/dist/core/sdd/enterprise-mutating-command-gate.d.ts +27 -0
  86. package/dist/core/sdd/enterprise-mutating-command-gate.js +104 -0
  87. package/dist/core/sdd/enterprise-provenance-gates.d.ts +20 -0
  88. package/dist/core/sdd/enterprise-provenance-gates.js +63 -0
  89. package/dist/core/sdd/enterprise-provisioning-policy.d.ts +26 -0
  90. package/dist/core/sdd/enterprise-provisioning-policy.js +104 -0
  91. package/dist/core/sdd/foundation-artifact-map-validator.d.ts +16 -0
  92. package/dist/core/sdd/foundation-artifact-map-validator.js +71 -0
  93. package/dist/core/sdd/foundation-layer-manifest.d.ts +24 -0
  94. package/dist/core/sdd/foundation-layer-manifest.js +117 -0
  95. package/dist/core/sdd/governance-schemas.d.ts +2 -2
  96. package/dist/core/sdd/governance-schemas.js +11 -2
  97. package/dist/core/sdd/intent-guard.d.ts +22 -0
  98. package/dist/core/sdd/intent-guard.js +67 -0
  99. package/dist/core/sdd/json-schema.js +13 -1
  100. package/dist/core/sdd/legacy-operations.js +169 -5
  101. package/dist/core/sdd/migrate-workspace.js +39 -0
  102. package/dist/core/sdd/package-security-gates.d.ts +21 -0
  103. package/dist/core/sdd/package-security-gates.js +121 -0
  104. package/dist/core/sdd/package-structure-gate.d.ts +85 -3
  105. package/dist/core/sdd/package-structure-gate.js +384 -11
  106. package/dist/core/sdd/parallel-feat-automation.d.ts +185 -7
  107. package/dist/core/sdd/parallel-feat-automation.js +212 -0
  108. package/dist/core/sdd/plugin-broker.d.ts +223 -4
  109. package/dist/core/sdd/plugin-broker.js +10 -0
  110. package/dist/core/sdd/plugin-cli.d.ts +30 -0
  111. package/dist/core/sdd/plugin-cli.js +70 -3
  112. package/dist/core/sdd/plugin-evidence.d.ts +73 -0
  113. package/dist/core/sdd/plugin-manifest.d.ts +69 -1
  114. package/dist/core/sdd/plugin-manifest.js +10 -0
  115. package/dist/core/sdd/plugin-policy-pack.d.ts +1 -1
  116. package/dist/core/sdd/plugin-policy.js +6 -1
  117. package/dist/core/sdd/plugin-registry.d.ts +138 -2
  118. package/dist/core/sdd/plugin-sdk-contract.d.ts +363 -0
  119. package/dist/core/sdd/plugin-sdk-contract.js +268 -0
  120. package/dist/core/sdd/plugin-skill-binding.d.ts +1 -1
  121. package/dist/core/sdd/quality-validation.d.ts +89 -16
  122. package/dist/core/sdd/release-readiness.d.ts +68 -0
  123. package/dist/core/sdd/release-readiness.js +767 -0
  124. package/dist/core/sdd/reversa-architecture-extractor.d.ts +13 -0
  125. package/dist/core/sdd/reversa-architecture-extractor.js +89 -0
  126. package/dist/core/sdd/reversa-artifact-writer.d.ts +18 -0
  127. package/dist/core/sdd/reversa-artifact-writer.js +40 -0
  128. package/dist/core/sdd/reversa-command-policy.d.ts +136 -0
  129. package/dist/core/sdd/reversa-command-policy.js +361 -0
  130. package/dist/core/sdd/reversa-data-extractor.d.ts +11 -0
  131. package/dist/core/sdd/reversa-data-extractor.js +73 -0
  132. package/dist/core/sdd/reversa-equivalence.d.ts +20 -0
  133. package/dist/core/sdd/reversa-equivalence.js +34 -0
  134. package/dist/core/sdd/reversa-evidence.d.ts +298 -0
  135. package/dist/core/sdd/reversa-evidence.js +118 -0
  136. package/dist/core/sdd/reversa-reconstruction.d.ts +29 -0
  137. package/dist/core/sdd/reversa-reconstruction.js +32 -0
  138. package/dist/core/sdd/reversa-rules-extractor.d.ts +12 -0
  139. package/dist/core/sdd/reversa-rules-extractor.js +86 -0
  140. package/dist/core/sdd/reversa-source-safety.d.ts +19 -0
  141. package/dist/core/sdd/reversa-source-safety.js +105 -0
  142. package/dist/core/sdd/reversa-surface-scout.d.ts +13 -0
  143. package/dist/core/sdd/reversa-surface-scout.js +85 -0
  144. package/dist/core/sdd/reversa-ux-mapper.d.ts +11 -0
  145. package/dist/core/sdd/reversa-ux-mapper.js +73 -0
  146. package/dist/core/sdd/runtime-boundary-contract.d.ts +45 -0
  147. package/dist/core/sdd/runtime-boundary-contract.js +90 -0
  148. package/dist/core/sdd/sdk-agent-plugin-quality-gates.d.ts +150 -0
  149. package/dist/core/sdd/sdk-agent-plugin-quality-gates.js +258 -0
  150. package/dist/core/sdd/services/agent-run.service.d.ts +38 -6
  151. package/dist/core/sdd/services/agent-run.service.js +73 -1
  152. package/dist/core/sdd/services/archive-quality-coherence.service.d.ts +17 -0
  153. package/dist/core/sdd/services/archive-quality-coherence.service.js +141 -0
  154. package/dist/core/sdd/services/capability-diff.service.d.ts +18 -0
  155. package/dist/core/sdd/services/capability-diff.service.js +26 -0
  156. package/dist/core/sdd/services/change-safety-preflight.service.d.ts +17 -0
  157. package/dist/core/sdd/services/change-safety-preflight.service.js +17 -0
  158. package/dist/core/sdd/services/context.service.d.ts +43 -340
  159. package/dist/core/sdd/services/context.service.js +323 -9
  160. package/dist/core/sdd/services/decide.service.js +1 -1
  161. package/dist/core/sdd/services/finalize.service.d.ts +27 -0
  162. package/dist/core/sdd/services/finalize.service.js +226 -18
  163. package/dist/core/sdd/services/frontend-impact.service.d.ts +1 -1
  164. package/dist/core/sdd/services/historical-quality-regression.service.d.ts +35 -0
  165. package/dist/core/sdd/services/historical-quality-regression.service.js +228 -0
  166. package/dist/core/sdd/services/ingest-deposito.service.js +1 -1
  167. package/dist/core/sdd/services/planning-execution-coherence.service.d.ts +45 -0
  168. package/dist/core/sdd/services/planning-execution-coherence.service.js +225 -0
  169. package/dist/core/sdd/services/semantic-intent-classifier.service.d.ts +6 -0
  170. package/dist/core/sdd/services/semantic-intent-classifier.service.js +7 -0
  171. package/dist/core/sdd/state.d.ts +1 -0
  172. package/dist/core/sdd/state.js +266 -34
  173. package/dist/core/sdd/store/sdd-stores.js +2 -2
  174. package/dist/core/sdd/structural-health.d.ts +13 -13
  175. package/dist/core/sdd/types.d.ts +30 -15
  176. package/dist/core/sdd/types.js +4 -0
  177. package/dist/core/sdd/views.js +17 -0
  178. package/dist/core/sdd/workspace-schemas.d.ts +428 -7
  179. package/dist/core/sdd/workspace-schemas.js +223 -70
  180. package/dist/core/shared/skill-generation.d.ts +2 -0
  181. package/dist/core/shared/skill-generation.js +19 -2
  182. package/dist/core/shared/tool-detection.d.ts +19 -0
  183. package/dist/core/shared/tool-detection.js +89 -0
  184. package/dist/domains/sdd/index.d.ts +6 -0
  185. package/dist/domains/sdd/index.js +6 -0
  186. package/dist/infrastructures/sdd/index.d.ts +7 -0
  187. package/dist/infrastructures/sdd/index.js +6 -0
  188. package/dist/presentations/cli/sdd/index.d.ts +3 -0
  189. package/dist/presentations/cli/sdd/index.js +3 -0
  190. package/dist/shared/sdd/index.d.ts +3 -0
  191. package/dist/shared/sdd/index.js +2 -0
  192. package/package.json +14 -10
  193. package/schemas/sdd/2-plan.schema.json +207 -2
  194. package/schemas/sdd/5-quality.schema.json +324 -25
  195. package/schemas/sdd/agent-runtime-command-plan.schema.json +212 -0
  196. package/schemas/sdd/agent-runtime-opencode-run-evidence.schema.json +270 -0
  197. package/schemas/sdd/codesdd-plugin.schema.json +171 -0
  198. package/schemas/sdd/deepagent-run-request.schema.json +316 -0
  199. package/schemas/sdd/parallel-feat-automation-plan.schema.json +89 -0
  200. package/schemas/sdd/parallel-feat-scheduler-request.schema.json +116 -0
  201. package/schemas/sdd/parallel-feat-scheduler-result.schema.json +404 -0
  202. package/schemas/sdd/plugin-artifact-manifest.schema.json +109 -0
  203. package/schemas/sdd/plugin-artifact-map.schema.json +223 -0
  204. package/schemas/sdd/plugin-evidence-manifest.schema.json +109 -0
  205. package/schemas/sdd/plugin-language-runtime.schema.json +103 -0
  206. package/schemas/sdd/plugin-package-governance.schema.json +74 -0
  207. package/schemas/sdd/plugin-registry.schema.json +171 -0
  208. package/schemas/sdd/plugin-runtime-invocation-plan.schema.json +109 -0
  209. package/schemas/sdd/quality-evidence-bundle.schema.json +109 -0
  210. package/schemas/sdd/reversa-evidence-bundle.schema.json +466 -0
  211. package/schemas/sdd/sdk-agent-plugin-quality-gate-input.schema.json +168 -0
  212. package/schemas/sdd/sdk-agent-plugin-quality-gate-report.schema.json +160 -0
  213. package/schemas/sdd/workspace-catalog.schema.json +5298 -1409
package/README.md CHANGED
@@ -31,6 +31,7 @@ Os documentos canonicos desta fronteira ficam em `docs/`:
31
31
 
32
32
  - [docs/CREDITS.md](docs/CREDITS.md): reconhecimento conceitual e fronteira clean-room (fora do fluxo operacional).
33
33
  - [docs/THIRD_PARTY_NOTICES.md](docs/THIRD_PARTY_NOTICES.md): notices tecnicos/licencas para dependencias runtime.
34
+ - [docs/service-catalog-maturity-epic-0097.md](docs/service-catalog-maturity-epic-0097.md): scorecard e guardrails da maturidade 5 do catalogo de servicos.
34
35
  - [positioning.md](positioning.md): narrativa de posicionamento enterprise do CodeSDD.
35
36
 
36
37
  ## O que o CodeSDD faz
@@ -73,6 +74,10 @@ Para a iniciativa EPIC-0065, o projeto formaliza a seguinte fronteira canonica:
73
74
  - CodeSDD e o control plane soberano: estado canonico (`.sdd/state/*.yaml`), lifecycle, EPIC/FEAT, ADR, politicas, qualidade, evidencia e finalize.
74
75
  - DeepAgents e execution plane governado: planejamento tatico, delegacao de subagentes, execucao em sandbox, memoria tatica controlada e coleta de evidencia estruturada.
75
76
  - Plugins operam como plano de construcao deterministico via broker e envelopes; Reversa opera como pipeline especializado de engenharia reversa.
77
+ - Reversa URL opera como superficie governada de frontend renderizado: `codesdd sdd reversa url <url>` exige aceite legal, escopo de autorizacao, intake guiado, stack alvo, limites de volumetria, politica de assets, boundary frontend-only e, quando solicitado, inventario redigido de contratos backend observados. Ele nao copia backend, bancos, credenciais, regras servidoras ou infraestrutura.
78
+ - Planos de plugin standalone validam `package_governance`, runtime de linguagem e fronteira de storage antes de qualquer adaptador tratar a operacao como executavel.
79
+ - O core agora possui uma casca Foundation-like incremental em `src/domains`, `src/applications`, `src/infrastructures`, `src/presentations` e `src/shared`; detalhes em `docs/codesdd-foundation-layer-migration.md`.
80
+ - Gates de qualidade para SDK/agentes/plugins agregam governanca de pacote, runtime de linguagem, artifact map, planos DeepAgents/Codex/OpenCode, compliance de plugin e cobertura por escopo em `src/core/sdd/sdk-agent-plugin-quality-gates.ts`.
76
81
  - Nenhum runtime de agente pode virar fonte paralela de verdade para o estado operacional do projeto.
77
82
 
78
83
  Pacote ADR obrigatorio da iniciativa:
@@ -116,6 +121,14 @@ bloqueado sem instanciar agente; no modo `fake`, executa o adapter
116
121
  deterministico sem credenciais; e no modo `deepagents-js`, so materializa o
117
122
  adapter nativo quando os feature toggles, modelo, credencial de launcher e
118
123
  politicas passam. Falhas de prontidao viram evidencia estruturada fail-closed.
124
+ Para validar uma mudanca antes de invocar runtime, use
125
+ `codesdd sdd preflight <FEAT-ID> --intent-operation <op> --write-scope <glob> --planned-writes <path> --json`.
126
+ Esse comando executa os mesmos guardrails de mutacao com `runtime_skipped: true`
127
+ e emite telemetria segura em `evidence.guardrail_telemetry`, contendo apenas
128
+ decisao, status por gate, nivel de risco e classificacoes agregadas, sem paths
129
+ brutos, texto de objetivo ou valores de override. Os cenarios golden de
130
+ EPIC-0078 cobrem catalogo aditivo permitido, substituicao bloqueada, override
131
+ valido, override invalido e refactor amplo legitimo.
119
132
  O smoke operacional padrao esta em `pnpm run test:deepagents-smoke`, cobrindo
120
133
  `disabled` e `fake` sem segredos nem rede; o smoke real de provedor so roda com
121
134
  `CODESDD_DEEPAGENTS_PROVIDER_SMOKE=1`, modelo, chave de launcher e dominio de
@@ -144,7 +157,7 @@ a precedencia valida usa `AZURE_OPENAI_DEPLOYMENT_NAME`, depois
144
157
 
145
158
  Redis e uma fronteira opcional para coordenacao tecnica de locks, cache, filas e eventos. Ele nao substitui a autoridade operacional de `.sdd/state/*.yaml`.
146
159
 
147
- Por padrao, CodeSDD usa locks em filesystem, cache L1 em memoria e cache L2 em `~/.codesdd/cache/projects/<fingerprint>/coordination`. A fabrica `createFilesystemFirstCoordinationAdapters` em `src/core/sdd/coordination/` mantem esse comportamento mesmo quando Redis e solicitado, ate que um adaptador Redis real seja instalado.
160
+ Por padrao, CodeSDD usa locks em filesystem, cache L1 em memoria e cache L2 em `~/.codesdd/cache/projects/<fingerprint>/coordination`. Quando Redis esta configurado e responde a ping, o runtime usa o cliente oficial `redis` para operar em modo `hybrid`: L1 em memoria, Redis como acelerador/coordenador distribuido e filesystem como fallback descartavel.
148
161
 
149
162
  Variaveis reconhecidas:
150
163
 
@@ -152,10 +165,80 @@ Variaveis reconhecidas:
152
165
  - `REDIS_URL`: fallback quando `CODESDD_REDIS_URL` nao estiver definida.
153
166
  - `CODESDD_REDIS_ENABLED=true`: marca Redis como solicitado mesmo sem URL.
154
167
  - `CODESDD_REDIS_NAMESPACE`: namespace logico; padrao `codesdd`.
168
+ - `CODESDD_REDIS_TLS=true`: ativa TLS quando a URL nao usar `rediss://`.
169
+ - `CODESDD_REDIS_FALLBACK=filesystem|none`: controla degradacao quando Redis falha.
170
+ - `CODESDD_REDIS_CONNECT_TIMEOUT_MS`, `CODESDD_REDIS_COMMAND_TIMEOUT_MS`, `CODESDD_REDIS_MAX_RETRIES`, `CODESDD_REDIS_CACHE_TTL_MS`, `CODESDD_REDIS_LOCK_TTL_MS`.
171
+
172
+ Exemplo seguro em `~/.codesdd/config.toml`:
173
+
174
+ ```toml
175
+ [redis]
176
+ enabled = true
177
+ url_env = "CODESDD_REDIS_URL"
178
+ namespace = "codesdd"
179
+ fallback = "filesystem"
180
+ connect_timeout_ms = 500
181
+ command_timeout_ms = 1000
182
+ max_retries = 2
183
+ cache_default_ttl_ms = 300000
184
+ lock_ttl_ms = 30000
185
+ stream_max_len = 10000
186
+ ```
187
+
188
+ Mantenha a URL real no shell, password manager ou secret store do CI:
189
+
190
+ ```bash
191
+ export CODESDD_REDIS_URL="redis://localhost:6379"
192
+ ```
193
+
194
+ `codesdd config doctor --json` e `codesdd config redis status --json` reportam `disabled`, `requested-unavailable`, `ready`, `degraded` ou `blocked` sem imprimir usuario, senha ou token da URL. Operacoes adicionais:
195
+
196
+ - `codesdd config redis ping`
197
+ - `codesdd config redis bench --iterations 20`
198
+ - `codesdd config redis flush-namespace --yes`
199
+
200
+ Redis nunca deve armazenar estado canonico do projeto, chaves de API, tokens, senhas, respostas cruas de providers ou dados pessoais. Use `docs/redis-operations.md` para o runbook completo.
201
+
202
+ ### Provisionamento Enterprise de itens numerados
203
+
204
+ Em modo Enterprise multiagente, DEB, INS, EPIC, FEAT e demais artefatos numerados devem usar uma autoridade online de provisionamento antes de qualquer escrita canonica. O modo local/single-agent continua usando o estado versionado em `.sdd` sem contato remoto obrigatorio.
205
+
206
+ Configure a identidade do projeto e a autoridade em `~/.codesdd/config.toml`:
207
+
208
+ ```toml
209
+ [enterprise.provisioning]
210
+ mode = "enterprise"
211
+ project_id = "proj_devtrack_tools"
212
+ tenant_id = "tenant-main"
213
+ authority_url_env = "CODESDD_ALLOCATOR_URL"
214
+ required_for_numbered_artifacts = true
215
+ ```
216
+
217
+ Mantenha a URL real no shell, password manager ou secret store:
218
+
219
+ ```bash
220
+ export CODESDD_ALLOCATOR_URL="https://allocator.example.test"
221
+ ```
222
+
223
+ `codesdd config doctor --json` expoe `enterprise_provisioning` com `disabled`, `ready` ou `blocked`. Quando Enterprise esta solicitado e falta `project_id` ou autoridade, o doctor bloqueia; quando a autoridade estiver indisponivel em execucao, agentes Enterprise devem criar apenas drafts nao canonicos ate uma reserva online posterior.
224
+
225
+ O contrato inicial do allocator vive em `src/core/sdd/artifact-id-allocator.ts`. Ele define requests/responses versionados para reservar IDs canonicos (`INS`, `DEB`, `EPIC`, `FEAT`, `FGAP`, `TD`), gera idempotency keys deterministicas, retorna `reserved` na primeira reserva e `replayed` quando a mesma chave/payload e repetida. Reuso da mesma idempotency key com outro payload e conflito bloqueante.
226
+
227
+ O mesmo contrato tambem define leases de allocator com TTL, fencing token monotônico e audit trail. Uma lease ativa bloqueia outra lease concorrente para o mesmo projeto/tipo de artefato; replay da mesma idempotency key retorna a lease original; fencing token expirado ou divergente falha antes de ser usado por gates de escrita nos FEATs seguintes.
155
228
 
156
- Enquanto o cliente Redis nao existir no runtime, o status exposto e `requested-unavailable` e os defaults filesystem-first continuam autoritativos.
229
+ CAS de escrita canonica tambem e modelado no contrato: `commitCanonicalArtifactWrite` exige lease existente, fencing token valido e `expected_revision` igual a revisao atual do artefato. Repetir a mesma idempotency key/payload retorna `replayed`; token vencido, token divergente ou revisao stale gera rejeicao auditavel.
157
230
 
158
- `codesdd config list` exibe o status atual da fronteira Redis e o namespace efetivo sem imprimir segredos.
231
+ O gate Enterprise de comandos mutantes vive em `src/core/sdd/enterprise-mutating-command-gate.ts`. Ele permite comandos read-only, bloqueia mutacoes numeradas Enterprise sem lease/fencing valido e marca tentativas de bypass como `bypass-detected` antes de avaliar o lease.
232
+
233
+ Modo draft nao canonico tambem vive no contrato do allocator. `createNoncanonicalDraft` cria um identificador `draft_<tipo>_<hash>` que nunca entra na sequencia canonica; `convertDraftToCanonicalArtifact` exige uma reserva real do allocator, vincula o draft ao ID canonico e retorna `replayed` se a conversao ja tiver sido aplicada.
234
+
235
+ Gates de provenance vivem em `src/core/sdd/enterprise-provenance-gates.ts`. Eles verificam se reservas, leases, writes canonicos e conversoes de draft possuem audit/provenance suficiente para `diagnose`, `check`, `finalize` e CI bloquearem estados sem trilha.
236
+
237
+ Recovery do allocator vive em `src/core/sdd/allocator-recovery.ts`. Ele reconstrói counters a partir do histórico de reservas e reporta branch lag quando uma revisão local está atrás da revisão canônica observada.
238
+
239
+ Segurança do allocator vive em `src/core/sdd/allocator-security.ts`, com decisões determinísticas para quota por tenant/tipo de artefato e replay fora da janela permitida.
240
+
241
+ A carta arquitetural de EPIC-0084 vive em `.sdd/core/adrs/ADR-FEAT-0363.md` e mapeia cada FEAT do fechamento para seu contrato, evidencia primaria e risco residual. Use essa matriz como trilha de auditoria antes de adicionar transporte remoto, persistencia ou wiring de comandos mutantes.
159
242
 
160
243
  ## Contrato de nomenclatura
161
244
 
@@ -247,6 +330,12 @@ Se o terminal nao encontrar `codesdd`, a instalacao provavelmente foi concluida,
247
330
  - O tier `projects` usa fingerprint por raiz de projeto para evitar colisao de cache entre repositorios.
248
331
  - `codesdd config init` cria/normaliza `~/.codesdd/config.toml`, `~/.codesdd/cache/**` e `~/.codesdd/env.zsh` com conteudo nao secreto.
249
332
  - Em shell Zsh, `codesdd config init` garante um bloco idempotente no `~/.zshrc` para `source ~/.codesdd/env.zsh`.
333
+ - A fronteira funcional e validavel: estado versionado do projeto fica em `.sdd`; config/runtime/cache comum fica em `~/.codesdd`; `.codesdd` dentro do repositorio e invalido para novo estado.
334
+ - `codesdd config doctor --json` expoe `storage_boundary` com `project_state_dir`, `global_runtime_dir`, `global_cache_dir`, tiers de cache e regras de separacao.
335
+ - `codesdd config doctor --json` tambem expoe `generated_instructions`, que aponta skills/prompts gerados sem o anuncio `CodeSDD Canonical Workflow`; quando `status=stale`, rode `codesdd update` ou reinstale as ferramentas afetadas.
336
+ - `codesdd config doctor --json` tambem expoe `enterprise_provisioning`, que valida identidade de projeto e autoridade online obrigatoria para artefatos numerados em modo Enterprise multiagente.
337
+ - O contrato de reserva de IDs canonicos fica em `src/core/sdd/artifact-id-allocator.ts`; ele e propositalmente puro/testavel e ainda nao substitui os gates de lease/CAS/mutating commands dos FEATs dependentes.
338
+ - `codesdd sdd plugin plan --project-root <path>` reutiliza essa fronteira para bloquear writes de plugin em `.codesdd` local e expor `workcell_runner.standalone.storage_boundary`.
250
339
  - O perfil gerado por `codesdd config init` e fail-closed: DeepAgents fica
251
340
  desabilitado, runtime `disabled`, provider smoke `0` e rede `disabled` ate
252
341
  que um operador habilite explicitamente um provedor live.
@@ -330,21 +419,54 @@ pnpm run quality:review
330
419
  - `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.
331
420
  - `quality:review`: executa build, lint, testes, cobertura, validacao SDD e pack-version sem remover `node_modules/` nem executar `pnpm install`; use em revisoes/auditorias que nao devem limpar o workspace.
332
421
 
422
+ Antes de release, gere o resumo nao mutante de prontidao:
423
+
424
+ ```bash
425
+ codesdd sdd release-readiness --strict
426
+ ```
427
+
428
+ O comando verifica saude SDD, FEATs ativos, scripts de CI parity, metadata do
429
+ pacote, fronteira de `.npmrc`, allowlist de publicacao, varredura de segredos
430
+ de alta confianca, proveniencia/SBOM, smoke de instalacao via tarball com
431
+ bootstrap da CLI, plano de rollback com `npm deprecate`, schemas essenciais e
432
+ docs de release/seguranca.
433
+
333
434
  ## Como iniciar em um projeto novo
334
435
 
335
436
  Entre no repositorio onde voce quer usar o sistema e rode:
336
437
 
337
438
  ```bash
338
- codesdd install --tools none
439
+ codesdd sdd init-context
440
+ ```
441
+
442
+ O `init-context` e o primeiro comando de capacidade CodeSDD dentro do projeto: ele inspeciona a base, cria/atualiza `.sdd/`, preenche contexto inicial de arquitetura, stack, servicos e mapa do repositorio, e deixa o projeto pronto para operar com estado canonico. Em um projeto recem-inicializado, valide e leia o onboarding antes do primeiro trabalho:
443
+
444
+ ```bash
445
+ codesdd sdd check --render
446
+ codesdd sdd onboard system
447
+ ```
448
+
449
+ O `sdd check --render` separa ruido historico de pendencia real. Para frontend,
450
+ use `Gaps de frontend abertos` como indicador operacional de trabalho pendente;
451
+ `Gaps de frontend resolvidos/historicos` e `Gaps de frontend total historico`
452
+ preservam auditoria de FGAPs ja fechados. Para lock domains, apenas
453
+ `Lock domains compartilhados ativos` indica risco de paralelizacao atual;
454
+ locks compartilhados historicos/mistos sao contexto de auditoria e nao devem
455
+ ser tratados como blocker por si so.
456
+
457
+ Depois disso, o primeiro trabalho normalmente comeca assim:
458
+
459
+ ```bash
460
+ codesdd sdd insight "descreva a mudanca ou iniciativa"
339
461
  ```
340
462
 
341
- Para ja nascer com nomenclatura mais intuitiva em portugues nas pastas do SDD:
463
+ Se quiser fixar idioma/layout em portugues:
342
464
 
343
465
  ```bash
344
- codesdd install --tools none --lang pt-BR --layout pt-BR
466
+ codesdd sdd init-context --lang pt-BR --layout pt-BR
345
467
  ```
346
468
 
347
- Se quiser integrar ferramentas suportadas no bootstrap:
469
+ Se quiser gerar assets de assistente explicitamente para agentes como Codex, Claude, Cursor ou OpenCode, use `install --tools` depois que o projeto tiver contexto CodeSDD:
348
470
 
349
471
  ```bash
350
472
  codesdd install --tools all
@@ -356,21 +478,19 @@ Ou somente algumas:
356
478
  codesdd install --tools codex,cursor,claude
357
479
  ```
358
480
 
359
- Esse comando instala de uma vez:
481
+ Para OpenCode, use `--tools opencode` para instalar skills/prompts gerados. O provider MCP do bridge SDD usa outro id: `--provider open-code`.
482
+
483
+ O `init-context` prepara a base CodeSDD do projeto:
360
484
 
361
- - a base do runtime
362
485
  - `.sdd/config.yaml`
363
486
  - `.sdd/`
364
- - skills curadas
365
- - prompts recomendados por workflow
366
- - templates
367
487
  - estados YAML canonicos
368
488
  - documentos iniciais do projeto
369
489
 
370
- Se voce nao quiser habilitar frontend no bootstrap:
490
+ Se voce nao quiser habilitar frontend na inicializacao de contexto:
371
491
 
372
492
  ```bash
373
- codesdd install --tools none --no-frontend
493
+ codesdd sdd init-context --no-frontend
374
494
  ```
375
495
 
376
496
  Atalhos em portugues no CLI:
@@ -383,15 +503,21 @@ Atalhos em portugues no CLI:
383
503
 
384
504
  ## Como absorver um projeto que ja existe
385
505
 
386
- Se o projeto ja esta em andamento, o primeiro passo depois do `install` e inicializar o contexto:
506
+ Se o projeto ja esta em andamento, rode o mesmo comando na raiz:
387
507
 
388
508
  ```bash
389
- codesdd sdd init-context --frontend --lang en-US --layout en-US
509
+ codesdd sdd init-context
390
510
  codesdd sdd check --render
391
511
  codesdd sdd onboard system
392
512
  ```
393
513
 
394
- O `init-context` serve para:
514
+ O `init-context` detecta marcadores de codigo existente e executa a absorcao inicial de contexto. Para reabsorver de forma controlada depois que o projeto ja estiver governado, rode o mesmo comando com as opcoes necessarias:
515
+
516
+ ```bash
517
+ codesdd sdd init-context --frontend --lang en-US --layout en-US
518
+ ```
519
+
520
+ Esse comando serve para:
395
521
 
396
522
  - inspecionar a base existente
397
523
  - preencher contexto inicial de arquitetura, stack, servicos e mapa do repositorio
@@ -467,6 +593,19 @@ If there is no ready FEAT, onboarding now returns guided steps such as creating
467
593
  codesdd sdd next
468
594
  ```
469
595
 
596
+ Para operar o plano sem adivinhar, use:
597
+
598
+ ```bash
599
+ codesdd sdd plan-status
600
+ codesdd sdd execute-next --dry-run
601
+ codesdd sdd execute-next
602
+ ```
603
+
604
+ `plan-status` mostra FEATs ativas, a proxima lista ranqueada e a acao
605
+ recomendada. `execute-next` usa o mesmo ranking de `next` e chama `sdd start`
606
+ para a primeira FEAT pronta; use `--dry-run` para auditar a escolha sem mudar
607
+ estado.
608
+
470
609
  Auditar a saude de evolucao do proprio processo SDD (ciclo recomendado: semestral):
471
610
 
472
611
  ```bash
@@ -567,6 +706,42 @@ workspace ativa.
567
706
  codesdd sdd context FEAT-0001
568
707
  ```
569
708
 
709
+ Para reduzir consumo de contexto, `sdd context` aceita modos de budget:
710
+ `--budget compact`, `--budget standard` e `--budget full` (`--compact` e
711
+ `--full` sao atalhos). O modo `compact` preserva os campos principais e reduz
712
+ listas grandes como `read_order`, `core_docs`, contratos, servicos e
713
+ predecessores; a resposta inclui `context_budget` com estimativa de caracteres
714
+ e campos truncados. Antes de truncar, listas conhecidas passam por dedupe
715
+ deterministico, preservando a primeira ocorrencia e registrando a reducao em
716
+ `context_budget.deduped_fields`.
717
+
718
+ Quando o budget omite itens, a resposta tambem inclui
719
+ `progressive_disclosure`, com contagem por campo e um `reveal_command` para
720
+ reemitir o contexto completo (`codesdd sdd context <REF> --full --json`). Isso
721
+ permite usar o pacote compacto como plano inicial sem perder a trilha de como
722
+ expandir detalhes sob demanda.
723
+
724
+ O pacote budgetado tambem usa cache descartavel em
725
+ `~/.codesdd/cache/projects/<project-fingerprint>/context-summary`, isolado pelo
726
+ fingerprint do projeto e por um fingerprint dos arquivos `.sdd/state` e da
727
+ workspace da entidade. A resposta inclui `context_cache` com `hit`, `key`,
728
+ `project_fingerprint` e `source_fingerprint`; quando a fonte muda, a chave muda
729
+ e o pacote e recalculado.
730
+
731
+ Quando a tarefa depende de economia de contexto, registre a medicao em
732
+ `5-quality.yaml` usando `token_budget_gates.telemetry`. O gate aceita
733
+ `budget_chars`, `actual_chars`, `efficiency_percent`, `gate` e `evidence_ref`;
734
+ o Q95 usa a pior eficiencia estruturada e trata `gate: fail` ou eficiencia
735
+ abaixo de `fail_below_percent` como bloqueio de qualidade.
736
+
737
+ Para estabilizar validacoes longas, `5-quality.yaml` tambem aceita
738
+ `runtime_quality_gates`. Use `performance[]` para registrar duracao, p95,
739
+ memoria ou CPU com `threshold`, `actual` e `gate`; use `flakiness[]` para
740
+ registrar `attempts`, `failures` ou `failure_rate_percent`. Quando houver
741
+ telemetria, o Q95 incorpora o pior sinal de performance/flakiness no eixo de
742
+ integridade; sem telemetria, o score permanece neutro para manter compatibilidade
743
+ com workspaces antigos.
744
+
570
745
  4.1 Expor a fundacao MCP para agentes externos
571
746
 
572
747
  No repositorio local, use o entrypoint versionado do checkout atual para validar
@@ -621,10 +796,19 @@ A fundacao MCP do CodeSDD e agnostica a provedor e publica o envelope
621
796
  `codesdd.context`, `codesdd.query`, `codesdd.read` e os demais nomes
622
797
  `codesdd.*` documentados pelo manifest.
623
798
 
799
+ Agent Runtime v2 exporta planos de comando para DeepAgents, Codex exec e
800
+ OpenCode run. Para OpenCode, o contrato
801
+ `agent-runtime-opencode-run-evidence.schema.json` registra execucao,
802
+ artefatos, validacoes e trechos redigidos sem permitir escrita direta em
803
+ estado SDD; o `finalize` do CodeSDD continua sendo o unico escritor canonico
804
+ do ciclo de vida.
805
+
624
806
  Perfis aceitos por `--provider`: `codex`, `claude-code`, `kimmy-code`,
625
807
  `kilo-code`, `open-code` e `generic`. Para OpenCode/Open Code, o bridge MCP usa
626
- o identificador `open-code`; `opencode` aparece em contratos antigos de
627
- agent-binding e nao e aceito por `sdd mcp-manifest` neste runtime.
808
+ o identificador `open-code`. Use `opencode` apenas como id tecnico de assets
809
+ gerados por `codesdd install --tools opencode` e em contratos de runtime
810
+ OpenCode que executam o binario `opencode`; esse id nao e aceito por
811
+ `sdd mcp-manifest` neste runtime.
628
812
 
629
813
  Matriz de provedores: consulte
630
814
  [docs/mcp-provider-compatibility.md](docs/mcp-provider-compatibility.md),
@@ -643,6 +827,16 @@ Se você já estiver dentro de `.sdd/active/FEAT-####/`, o `finalize` também po
643
827
  inferir a FEAT alvo sem `--ref`, priorizando o workspace ativo atual antes de
644
828
  cair para a fila pendente padrão.
645
829
 
830
+ Após consolidar uma FEAT, o resultado de `sdd finalize` inclui
831
+ `post_finalize_replan` com as próximas FEATs prontas, ondas e contagens de
832
+ bloqueios/conflitos recalculadas a partir do estado canônico. Em saída texto, o
833
+ CLI mostra as primeiras próximas FEATs para orientar execução encadeada.
834
+
835
+ `.sdd/state/finalize-queue.yaml` separa fila ativa de historico: `items` guarda
836
+ somente finalizacoes `PENDING`, enquanto `history` guarda finalizacoes `DONE`.
837
+ O `check` reporta pendentes e concluidas separadamente, e a view
838
+ `.sdd/planning/finalize-queue.md` mostra a fila ativa mais o historico recente.
839
+
646
840
  Quando `requires_adr: true` ou o `2-plan.yaml` ativo declara impacto
647
841
  arquitetural sensivel, o `finalize` exige ADR existente e válido pela lente `adr`
648
842
  (seções `Contexto`, `Decisão`, `Consequências` e sem frase proibida de
@@ -659,6 +853,24 @@ contrato operacional das skills: registre uma entrada em
659
853
  Sem esse rastro, o fluxo fica bloqueado como qualquer outra evidência de
660
854
  qualidade obrigatória.
661
855
 
856
+ O `2-plan.yaml` gerado inclui `governance`, que declara a fronteira canônica
857
+ `codesdd-canonical-sdd-state`, os artefatos de planejamento envolvidos, refs de
858
+ decisão, escritas de estado previstas, plano de rollback e gates de validação.
859
+ O schema aceita workspaces históricos sem esse bloco por compatibilidade, mas
860
+ novos planos devem manter esse contrato preenchido.
861
+
862
+ O mesmo `2-plan.yaml` também inclui `execution_plan`, que explicita se a FEAT
863
+ roda como `single-feature`, `parallel-wave` ou `chained-features`, sempre com
864
+ `state_boundary_ref: codesdd-canonical-sdd-state`. O plano lista comandos,
865
+ quais passos podem escrever estado, `allowed_state_writes`, escritas proibidas
866
+ como `.codesdd/**` e os artefatos de handoff esperados. Planos de automação
867
+ paralela exportados em `schemas/sdd/parallel-feat-automation-plan.schema.json`
868
+ carregam a mesma fronteira para que execução encadeada não crie estado oculto.
869
+ O scheduler encadeado consome FEATs com `blocked_by`, `status` e `lock_domains`,
870
+ trata predecessores `DONE` como âncoras já satisfeitas, divide ondas para evitar
871
+ locks concorrentes e reporta dependências não agendáveis no resultado exportado
872
+ em `schemas/sdd/parallel-feat-scheduler-result.schema.json`.
873
+
662
874
  O `5-quality.yaml` agora também precisa fechar a rastreabilidade viva da
663
875
  workspace: preencha `traceability.spec_anchor` com o `updated_at` atual do
664
876
  `1-spec.yaml`, referencie a entrada correspondente do `4-changelog.yaml`, e
@@ -667,6 +879,11 @@ requisito -> `code_refs` -> `test_refs` -> `evidence_refs`. O `finalize`,
667
879
  `check` e `diagnose` passam a bloquear ou sinalizar drift quando a spec muda e
668
880
  esse vínculo não é revisitado.
669
881
 
882
+ O ledger `q95_ledger` limita todos os percentuais a `0..100`, exige pesos que
883
+ somam `100` e impede `status: pass` quando `score` fica abaixo de `threshold`.
884
+ Isso mantém o Q95 auditável antes de qualquer automação de release ou execução
885
+ encadeada consumir o resultado.
886
+
670
887
  O `finalize` também executa validação pós-active de lifecycle: a FEAT não pode
671
888
  ter cópia semântica em `.sdd/archive/<FEAT-ID>`, deve sair de `.sdd/active/` e
672
889
  deve aparecer uma única vez em `.sdd/archived/<FEAT-ID>`. `sdd check` e
@@ -804,7 +1021,7 @@ The SDD bootstrap installs local curation in:
804
1021
  .sdd/skills/curated/
805
1022
  ```
806
1023
 
807
- The default curation currently includes 66 skills across 8 bundles (canonical source: `.sdd/state/skill-catalog.yaml`).
1024
+ The default curation currently includes 79 skills across 11 bundles (canonical source: `.sdd/state/skill-catalog.yaml`).
808
1025
  Skill catalog entries now follow the v2 metadata contract with `token_budget`, `integrity_hash`, `deterministic_pair`, `deprecated_at`, and `superseded_by` for routing governance and lifecycle traceability.
809
1026
  `codesdd sdd skills sync` now enforces SHA-256 drift detection by layer: canonical curated skills block sync on `missing/modified` manifest hash, while user-extension skills emit non-blocking alerts so local customization remains possible.
810
1027
 
@@ -816,18 +1033,30 @@ Entre elas:
816
1033
  - `frontend-extractor-sdd`
817
1034
  - `planning-normalizer-sdd`
818
1035
  - `api-clean-flask-langgraph` (bundle `python-agentic-backend`)
819
- - `devtrack-api` (bundle `architecture-backend`, canonical DevTrack/NestJS/TypeORM API architecture)
1036
+ - `devtrack-api` (bundle `architecture-backend`, compatibility binding for Foundation-derived CodeSDD API profiles)
1037
+ - `devtrack-angular` (bundle `frontend-product`, canonical DevTrack Angular Admin architecture)
1038
+ - `devtrack-flutter` (bundle `frontend-product`, canonical DevTrack Flutter/Dart architecture)
820
1039
 
821
- 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 API/backend work without an explicit alternative skill/profile, `devtrack-api` is the default architecture and naming source. Explicit Python/Flask API work remains routed to `api-clean-flask-langgraph`.
1040
+ 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 API/backend work without an explicit alternative skill/profile, select one CodeSDD API profile: `minimal-rest`, `rest-auth-rbac`, `rest-crud-typeorm`, `evented-api`, `ai-agent-api`, or `full-foundation-compatible`; `devtrack-api` remains the compatibility skill/alias. Angular Admin/backoffice work that names admin pages, dashboards, CRUD, data grids, admin Formly, admin NGXS/state, official Angular framework patterns, permissions, reports, workflow, admin realtime, or admin chat uses `devtrack-angular`. Flutter/Dart work that names Flutter apps, widgets, routing, localization, responsive layout, JSON, HTTP, previews, widget tests, integration tests, go_router, ARB, or l10n uses `devtrack-flutter`. Explicit Python/Flask API work remains routed to `api-clean-flask-langgraph`.
822
1041
 
823
1042
  The `devtrack-api` skill has a Foundation-layout conformance test. When the Foundation checkout is not at `/Volumes/WORKSPACE/DEVTRACK_TOOLS/devtrack-foundation-api`, set `CODESDD_FOUNDATION_API_ROOT=/path/to/devtrack-foundation-api` before running `pnpm test -- test/specs/devtrack-api-foundation-layout.test.ts`.
824
1043
 
825
- The executable `devtrack-api` contract pack lives in `.sdd/skills/curated/devtrack-api/references/contract-pack.yaml`. It defines the `prototype`, `foundation-compatible`, and `enterprise-strict` profiles, P0/P1/P2 severity semantics, early package-preview expectations, import/alias and TypeORM drift rules, and the `codesdd-validate` plus field-evidence drift maps consumed by later governance gates.
1044
+ That conformance test now checks the live Foundation BO and TypeORM topology: aggregate `.bo.ts` files must use `extends GenericBusinessObject<T>` followed by `implements <Name>Interface, IValidator`, and persistence wiring must use `src/infrastructure/adapters/orm/typeorm.module.ts` plus context modules such as `<context>-orm.module.ts`.
1045
+
1046
+ The executable `devtrack-api` contract pack lives in `.sdd/skills/curated/devtrack-api/references/contract-pack.yaml`. It defines the `prototype`, `foundation-compatible`, and `enterprise-strict` profiles, P0/P1/P2 severity semantics, early package-preview expectations, import/alias and TypeORM drift rules, mandatory `cleanup`/`cleanup:install` plus port-safe `start`/`start:dev` bootstrap scripts for linked/generated API projects, and the `codesdd-validate` plus field-evidence drift maps consumed by later governance gates.
1047
+
1048
+ The EPIC-0080 dual-boundary charter lives in `.sdd/core/adrs/ADR-FEAT-0373.md`. It freezes the rule that CodeSDD keeps plural internal layer roots for this CLI repository while every `devtrack-api` preview, artifact map, validator, and generated output must target singular Foundation-compatible roots. For this EPIC, `human_validation_gate.status` is limited to `approved`, `corrected`, `pending`, or `rejected`; any material source, profile, exception, or validator change invalidates prior approval back to `pending` until a human re-approves it.
1049
+
1050
+ The executable `devtrack-angular` contract pack lives in `.sdd/skills/curated/devtrack-angular/references/contract-pack.yaml`. It defines portable agent adapters, `prototype`, `production-admin`, and `enterprise-admin` profiles, pages-first Angular Admin architecture rules, Formly/NGXS/realtime/admin gates, official Angular skills mapping, and evidence expectations for Angular Admin delivery.
1051
+
1052
+ The executable `devtrack-flutter` contract pack lives in `.sdd/skills/curated/devtrack-flutter/references/contract-pack.yaml`. It defines portable agent adapters, `prototype`, `production-flutter`, and `enterprise-flutter` profiles, layered Flutter architecture rules, routing/localization/layout/data/test gates, official Flutter skills mapping, and evidence expectations for Flutter/Dart delivery.
826
1053
 
827
1054
  Consumer copies of `devtrack-api` are one-way CodeSDD materializations, not durable edit targets. The sync policy lives in `.sdd/skills/curated/devtrack-api/references/consumer-sync-policy.md`: update the consumer project through its CodeSDD update/bootstrap flow, compare the consumer copy with the canonical CodeSDD source, and record source version plus diff evidence in the consumer FEAT quality or handoff.
828
1055
 
829
1056
  Field validation for `devtrack-api` is governed by `.sdd/skills/curated/devtrack-api/references/field-validation-protocol.md`. A consumer project must keep its own evidence showing at least two detailed implementation debates and closure of divergence classes D-01 through D-08; CodeSDD keeps the protocol and external reference, not private consumer ledgers.
830
1057
 
1058
+ Legacy generated `devtrack-api` previews, scaffold dry-runs, caches, artifact maps, validator results, and evidence bundles are governed by `.sdd/skills/curated/devtrack-api/references/generated-artifact-invalidation.md`. Pre-EPIC-0080 generated artifacts are noncanonical by default and must be classified as `revalidated`, `invalidated`, `grandfathered`, or `not_applicable` before supporting any Foundation-compatible claim.
1059
+
831
1060
  Prompts recomendados tambem sao instalados em:
832
1061
 
833
1062
  ```text
@@ -857,13 +1086,11 @@ Um agente novo deve seguir esta ordem:
857
1086
 
858
1087
  ## Comandos principais
859
1088
 
860
- Bootstrap:
1089
+ Inicializacao e reparo de projeto:
861
1090
 
862
- - `codesdd install --tools none`
863
- - `codesdd install --tools all`
864
- - `codesdd reload --tools none`
865
1091
  - `codesdd sdd init-context`
866
1092
  - `codesdd sdd init-context --frontend --lang en-US --layout en-US`
1093
+ - `codesdd reload --tools none`
867
1094
  - `codesdd sdd check --render`
868
1095
  - `codesdd sdd check --render --strict`
869
1096
  - `codesdd sdd diagnose`
@@ -885,18 +1112,31 @@ Bootstrap:
885
1112
  - `codesdd sdd lint feature FEAT-0001 --strict --json`
886
1113
  - `codesdd sdd ingest-deposito`
887
1114
 
1115
+ Assets de agentes:
1116
+
1117
+ - `codesdd install --tools none` (nao gera assets de agentes)
1118
+ - `codesdd install --tools all`
1119
+ - `codesdd install --tools opencode` (assets OpenCode; MCP continua `--provider open-code`)
1120
+
888
1121
  Onboarding e operacao:
889
1122
 
890
1123
  - `codesdd sdd onboard system`
891
1124
  - `codesdd sdd orientar system`
892
1125
  - `codesdd sdd next`
893
1126
  - `codesdd sdd next --max-agents <N>` (limita o tamanho da primeira onda e lista itens adiados)
1127
+ - `codesdd sdd plan-status`
1128
+ - `codesdd sdd execute-next --dry-run`
894
1129
  - `codesdd sdd start FEAT-0001 --fluxo direto|padrao|rigoroso`
895
1130
  - `codesdd sdd aprovar FEAT-0001 --etapa proposta|planejamento|tarefas`
896
1131
  - `codesdd sdd context FEAT-0001`
897
1132
  - `codesdd sdd audit`
898
1133
  - `codesdd sdd finalize --ref FEAT-0001`
899
1134
 
1135
+ Absorcao de contexto:
1136
+
1137
+ - `codesdd sdd init-context`
1138
+ - `codesdd sdd init-context --frontend --lang en-US --layout en-US`
1139
+
900
1140
  Descoberta:
901
1141
 
902
1142
  - `codesdd sdd insight "..."`
@@ -940,7 +1180,16 @@ pnpm run dev:cli
940
1180
 
941
1181
  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`.
942
1182
 
943
- 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`.
1183
+ A matriz autoritativa de cobertura e taxonomia publica 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`, e classifique o comando como lifecycle canonico, bootstrap/repair, compatibilidade, migracao, diagnostico/governanca ou interno.
1184
+
1185
+ Harness pratico de comandos:
1186
+
1187
+ ```bash
1188
+ pnpm exec vitest run test/helpers/practical-api-fixture.test.ts
1189
+ pnpm exec vitest run --testTimeout 120000 test/e2e/practical-api-command-system.test.ts
1190
+ ```
1191
+
1192
+ Esse harness cria uma API ficticia `proposal-builder-api` em diretorio temporario, isola `HOME`, `USERPROFILE`, `XDG_*`, `CODEX_HOME` e flags de runtime, e valida um ciclo real do CodeSDD com exatamente um `INS`, um `DEB`, um `EPIC` e um `FEAT`. A cobertura da matriz publica deve terminar sem comandos faltantes: cada caminho fica marcado como `executed`, `dry_run`, `alias_covered` ou `skipped_external` com motivo explicito.
944
1193
 
945
1194
  ## Estado atual da distribuicao
946
1195
 
@@ -1004,7 +1253,9 @@ Operational authority:
1004
1253
 
1005
1254
  Initial operational directives:
1006
1255
  - CodeSDD is the official planner for any build request; other planners or agent-native plans are secondary execution aids only.
1007
- - For API/backend work, use `devtrack-api` by default unless the user or SDD context explicitly selects another skill/profile; Python/Flask API work stays routed to `api-clean-flask-langgraph`.
1256
+ - In initialized CodeSDD repositories, any user request that implies implementation, file edits, validation, execution, or finalize must be treated as requiring CodeSDD planning unless the user explicitly marks it as read-only or outside CodeSDD.
1257
+ - For change requests, agents must bind the work to an active or ready FEAT through `codesdd sdd next` and `codesdd sdd context <FEAT-ID>` before implementation; agent-native plans may only decompose execution after that CodeSDD context exists.
1258
+ - For API/backend work, select a CodeSDD API profile (`minimal-rest`, `rest-auth-rbac`, `rest-crud-typeorm`, `evented-api`, `ai-agent-api`, or `full-foundation-compatible`); `devtrack-api` remains the compatibility skill/alias and Python/Flask API work stays routed to `api-clean-flask-langgraph`.
1008
1259
  - During init, onboard, insight, and debate flows, CodeSDD-managed agent instruction blocks must be inspected and reconfigured when they drift from this contract.
1009
1260
  - Commit requests must follow Conventional Commits, selective staging, and grouping by modified directory plus change protocol (`src`, `.sdd`, docs, config, infra, dependencies, or generated files).
1010
1261
 
@@ -0,0 +1,16 @@
1
+ export { ApproveService } from '../../core/sdd/services/approve.service.js';
2
+ export { BreakdownService } from '../../core/sdd/services/breakdown.service.js';
3
+ export { ContextService } from '../../core/sdd/services/context.service.js';
4
+ export { DebateService } from '../../core/sdd/services/debate.service.js';
5
+ export { DecideService } from '../../core/sdd/services/decide.service.js';
6
+ export { DeepAgentsRunService, type DeepAgentsRunRequest, type DeepAgentsRunResult } from '../../core/sdd/services/agent-run.service.js';
7
+ export { FeatureLintService, collectTaskCommands, formatFeatureLintReport, isFoundationPrescriptiveFeature, type FeatureLintFinding, type FeatureLintOptions, type FeatureLintReport, } from '../../core/sdd/services/feature-lint.service.js';
8
+ export { FinalizeService } from '../../core/sdd/services/finalize.service.js';
9
+ export { FrontendGapService } from '../../core/sdd/services/frontend-gap.service.js';
10
+ export { FrontendImpactService } from '../../core/sdd/services/frontend-impact.service.js';
11
+ export { GovernanceControlPlaneService } from '../../core/sdd/services/governance-control-plane.service.js';
12
+ export { InsightService } from '../../core/sdd/services/insight.service.js';
13
+ export { NextService } from '../../core/sdd/services/next.service.js';
14
+ export { OnboardService } from '../../core/sdd/services/onboard.service.js';
15
+ export { StartService } from '../../core/sdd/services/start.service.js';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,16 @@
1
+ export { ApproveService } from '../../core/sdd/services/approve.service.js';
2
+ export { BreakdownService } from '../../core/sdd/services/breakdown.service.js';
3
+ export { ContextService } from '../../core/sdd/services/context.service.js';
4
+ export { DebateService } from '../../core/sdd/services/debate.service.js';
5
+ export { DecideService } from '../../core/sdd/services/decide.service.js';
6
+ export { DeepAgentsRunService } from '../../core/sdd/services/agent-run.service.js';
7
+ export { FeatureLintService, collectTaskCommands, formatFeatureLintReport, isFoundationPrescriptiveFeature, } from '../../core/sdd/services/feature-lint.service.js';
8
+ export { FinalizeService } from '../../core/sdd/services/finalize.service.js';
9
+ export { FrontendGapService } from '../../core/sdd/services/frontend-gap.service.js';
10
+ export { FrontendImpactService } from '../../core/sdd/services/frontend-impact.service.js';
11
+ export { GovernanceControlPlaneService } from '../../core/sdd/services/governance-control-plane.service.js';
12
+ export { InsightService } from '../../core/sdd/services/insight.service.js';
13
+ export { NextService } from '../../core/sdd/services/next.service.js';
14
+ export { OnboardService } from '../../core/sdd/services/onboard.service.js';
15
+ export { StartService } from '../../core/sdd/services/start.service.js';
16
+ //# sourceMappingURL=index.js.map