@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.
- package/.sdd/skills/curated/devtrack-api/SKILL.md +98 -12
- package/.sdd/skills/curated/devtrack-api/agents/claude-code.yaml +10 -0
- package/.sdd/skills/curated/devtrack-api/agents/codex.yaml +10 -0
- package/.sdd/skills/curated/devtrack-api/agents/cursor.yaml +10 -0
- package/.sdd/skills/curated/devtrack-api/agents/gemini.yaml +10 -0
- package/.sdd/skills/curated/devtrack-api/agents/kimi.yaml +10 -0
- package/.sdd/skills/curated/devtrack-api/agents/openai.yaml +5 -3
- package/.sdd/skills/curated/devtrack-api/agents/opencode.yaml +12 -0
- package/.sdd/skills/curated/devtrack-api/references/application-presentation.md +61 -5
- package/.sdd/skills/curated/devtrack-api/references/consumer-sync-policy.md +15 -3
- package/.sdd/skills/curated/devtrack-api/references/contract-pack.yaml +1951 -0
- package/.sdd/skills/curated/devtrack-api/references/domain-modeling.md +16 -14
- package/.sdd/skills/curated/devtrack-api/references/field-validation-protocol.md +40 -0
- package/.sdd/skills/curated/devtrack-api/references/foundation-layout.md +19 -2
- package/.sdd/skills/curated/devtrack-api/references/generated-artifact-invalidation.md +97 -0
- package/.sdd/skills/curated/devtrack-api/references/implementation-checklist.md +30 -1
- package/.sdd/skills/curated/devtrack-api/references/portable-agent-contract.md +42 -0
- package/.sdd/skills/curated/devtrack-api/references/testing-validation.md +22 -1
- package/.sdd/skills/curated/devtrack-api/references/typeorm-infrastructure.md +9 -7
- package/README.md +280 -29
- package/dist/applications/sdd/index.d.ts +16 -0
- package/dist/applications/sdd/index.js +16 -0
- package/dist/cli/program.js +180 -11
- package/dist/commands/config.js +197 -10
- package/dist/commands/sdd/execution.js +408 -16
- package/dist/commands/sdd/plugin.js +5 -0
- package/dist/commands/sdd/shared.d.ts +1 -0
- package/dist/commands/sdd/shared.js +10 -0
- package/dist/commands/sdd.js +157 -7
- package/dist/core/cli/command-matrix.d.ts +18 -0
- package/dist/core/cli/command-matrix.js +157 -0
- package/dist/core/cli-command-quality.js +11 -0
- package/dist/core/completions/command-registry.js +45 -0
- package/dist/core/config-schema.d.ts +31 -1
- package/dist/core/config-schema.js +79 -5
- package/dist/core/config.d.ts +1 -0
- package/dist/core/config.js +11 -0
- package/dist/core/global-config.d.ts +29 -0
- package/dist/core/init.d.ts +2 -2
- package/dist/core/init.js +13 -14
- package/dist/core/sdd/agent-binding.d.ts +19 -19
- package/dist/core/sdd/agent-runtime-contract.d.ts +204 -0
- package/dist/core/sdd/agent-runtime-contract.js +200 -0
- package/dist/core/sdd/allocator-recovery.d.ts +14 -0
- package/dist/core/sdd/allocator-recovery.js +30 -0
- package/dist/core/sdd/allocator-security.d.ts +18 -0
- package/dist/core/sdd/allocator-security.js +36 -0
- package/dist/core/sdd/api-foundation-baseline.d.ts +111 -0
- package/dist/core/sdd/api-foundation-baseline.js +151 -0
- package/dist/core/sdd/api-foundation-parity.d.ts +114 -0
- package/dist/core/sdd/api-foundation-parity.js +131 -0
- package/dist/core/sdd/api-profile-catalog.d.ts +36 -0
- package/dist/core/sdd/api-profile-catalog.js +132 -0
- package/dist/core/sdd/api-profile-dry-run-projection.d.ts +93 -0
- package/dist/core/sdd/api-profile-dry-run-projection.js +370 -0
- package/dist/core/sdd/api-profile-recipes.d.ts +82 -0
- package/dist/core/sdd/api-profile-recipes.js +484 -0
- package/dist/core/sdd/artifact-id-allocator.d.ts +368 -0
- package/dist/core/sdd/artifact-id-allocator.js +510 -0
- package/dist/core/sdd/check.d.ts +52 -1
- package/dist/core/sdd/check.js +326 -11
- package/dist/core/sdd/coordination/coordination-adapters.d.ts +15 -8
- package/dist/core/sdd/coordination/coordination-adapters.js +43 -15
- package/dist/core/sdd/coordination/index.d.ts +1 -0
- package/dist/core/sdd/coordination/index.js +1 -0
- package/dist/core/sdd/coordination/redis-runtime.d.ts +131 -0
- package/dist/core/sdd/coordination/redis-runtime.js +698 -0
- package/dist/core/sdd/deepagent-contracts.d.ts +99 -5
- package/dist/core/sdd/deepagent-contracts.js +62 -0
- package/dist/core/sdd/deepagents/reversa-subagents.d.ts +3 -3
- package/dist/core/sdd/default-bootstrap-files.d.ts +2 -2
- package/dist/core/sdd/default-bootstrap-files.js +14 -10
- package/dist/core/sdd/default-skills.js +115 -9
- package/dist/core/sdd/devtrack-api-appliance.d.ts +42 -1
- package/dist/core/sdd/devtrack-api-appliance.js +159 -32
- package/dist/core/sdd/devtrack-api-architecture.d.ts +16 -0
- package/dist/core/sdd/devtrack-api-architecture.js +86 -0
- package/dist/core/sdd/docs-sync.js +24 -18
- package/dist/core/sdd/domain/capability-diff.d.ts +63 -0
- package/dist/core/sdd/domain/capability-diff.js +200 -0
- package/dist/core/sdd/domain/change-safety-guardrails.d.ts +74 -0
- package/dist/core/sdd/domain/change-safety-guardrails.js +333 -0
- package/dist/core/sdd/domain/semantic-intent-classifier.d.ts +29 -0
- package/dist/core/sdd/domain/semantic-intent-classifier.js +117 -0
- package/dist/core/sdd/enterprise-mutating-command-gate.d.ts +27 -0
- package/dist/core/sdd/enterprise-mutating-command-gate.js +104 -0
- package/dist/core/sdd/enterprise-provenance-gates.d.ts +20 -0
- package/dist/core/sdd/enterprise-provenance-gates.js +63 -0
- package/dist/core/sdd/enterprise-provisioning-policy.d.ts +26 -0
- package/dist/core/sdd/enterprise-provisioning-policy.js +104 -0
- package/dist/core/sdd/foundation-artifact-map-validator.d.ts +16 -0
- package/dist/core/sdd/foundation-artifact-map-validator.js +71 -0
- package/dist/core/sdd/foundation-layer-manifest.d.ts +24 -0
- package/dist/core/sdd/foundation-layer-manifest.js +117 -0
- package/dist/core/sdd/governance-schemas.d.ts +2 -2
- package/dist/core/sdd/governance-schemas.js +11 -2
- package/dist/core/sdd/intent-guard.d.ts +22 -0
- package/dist/core/sdd/intent-guard.js +67 -0
- package/dist/core/sdd/json-schema.js +13 -1
- package/dist/core/sdd/legacy-operations.js +169 -5
- package/dist/core/sdd/migrate-workspace.js +39 -0
- package/dist/core/sdd/package-security-gates.d.ts +21 -0
- package/dist/core/sdd/package-security-gates.js +121 -0
- package/dist/core/sdd/package-structure-gate.d.ts +85 -3
- package/dist/core/sdd/package-structure-gate.js +384 -11
- package/dist/core/sdd/parallel-feat-automation.d.ts +185 -7
- package/dist/core/sdd/parallel-feat-automation.js +212 -0
- package/dist/core/sdd/plugin-broker.d.ts +223 -4
- package/dist/core/sdd/plugin-broker.js +10 -0
- package/dist/core/sdd/plugin-cli.d.ts +30 -0
- package/dist/core/sdd/plugin-cli.js +70 -3
- package/dist/core/sdd/plugin-evidence.d.ts +73 -0
- package/dist/core/sdd/plugin-manifest.d.ts +69 -1
- package/dist/core/sdd/plugin-manifest.js +10 -0
- package/dist/core/sdd/plugin-policy-pack.d.ts +1 -1
- package/dist/core/sdd/plugin-policy.js +6 -1
- package/dist/core/sdd/plugin-registry.d.ts +138 -2
- package/dist/core/sdd/plugin-sdk-contract.d.ts +363 -0
- package/dist/core/sdd/plugin-sdk-contract.js +268 -0
- package/dist/core/sdd/plugin-skill-binding.d.ts +1 -1
- package/dist/core/sdd/quality-validation.d.ts +89 -16
- package/dist/core/sdd/release-readiness.d.ts +68 -0
- package/dist/core/sdd/release-readiness.js +767 -0
- package/dist/core/sdd/reversa-architecture-extractor.d.ts +13 -0
- package/dist/core/sdd/reversa-architecture-extractor.js +89 -0
- package/dist/core/sdd/reversa-artifact-writer.d.ts +18 -0
- package/dist/core/sdd/reversa-artifact-writer.js +40 -0
- package/dist/core/sdd/reversa-command-policy.d.ts +136 -0
- package/dist/core/sdd/reversa-command-policy.js +361 -0
- package/dist/core/sdd/reversa-data-extractor.d.ts +11 -0
- package/dist/core/sdd/reversa-data-extractor.js +73 -0
- package/dist/core/sdd/reversa-equivalence.d.ts +20 -0
- package/dist/core/sdd/reversa-equivalence.js +34 -0
- package/dist/core/sdd/reversa-evidence.d.ts +298 -0
- package/dist/core/sdd/reversa-evidence.js +118 -0
- package/dist/core/sdd/reversa-reconstruction.d.ts +29 -0
- package/dist/core/sdd/reversa-reconstruction.js +32 -0
- package/dist/core/sdd/reversa-rules-extractor.d.ts +12 -0
- package/dist/core/sdd/reversa-rules-extractor.js +86 -0
- package/dist/core/sdd/reversa-source-safety.d.ts +19 -0
- package/dist/core/sdd/reversa-source-safety.js +105 -0
- package/dist/core/sdd/reversa-surface-scout.d.ts +13 -0
- package/dist/core/sdd/reversa-surface-scout.js +85 -0
- package/dist/core/sdd/reversa-ux-mapper.d.ts +11 -0
- package/dist/core/sdd/reversa-ux-mapper.js +73 -0
- package/dist/core/sdd/runtime-boundary-contract.d.ts +45 -0
- package/dist/core/sdd/runtime-boundary-contract.js +90 -0
- package/dist/core/sdd/sdk-agent-plugin-quality-gates.d.ts +150 -0
- package/dist/core/sdd/sdk-agent-plugin-quality-gates.js +258 -0
- package/dist/core/sdd/services/agent-run.service.d.ts +38 -6
- package/dist/core/sdd/services/agent-run.service.js +73 -1
- package/dist/core/sdd/services/archive-quality-coherence.service.d.ts +17 -0
- package/dist/core/sdd/services/archive-quality-coherence.service.js +141 -0
- package/dist/core/sdd/services/capability-diff.service.d.ts +18 -0
- package/dist/core/sdd/services/capability-diff.service.js +26 -0
- package/dist/core/sdd/services/change-safety-preflight.service.d.ts +17 -0
- package/dist/core/sdd/services/change-safety-preflight.service.js +17 -0
- package/dist/core/sdd/services/context.service.d.ts +43 -340
- package/dist/core/sdd/services/context.service.js +323 -9
- package/dist/core/sdd/services/decide.service.js +1 -1
- package/dist/core/sdd/services/finalize.service.d.ts +27 -0
- package/dist/core/sdd/services/finalize.service.js +226 -18
- package/dist/core/sdd/services/frontend-impact.service.d.ts +1 -1
- package/dist/core/sdd/services/historical-quality-regression.service.d.ts +35 -0
- package/dist/core/sdd/services/historical-quality-regression.service.js +228 -0
- package/dist/core/sdd/services/ingest-deposito.service.js +1 -1
- package/dist/core/sdd/services/planning-execution-coherence.service.d.ts +45 -0
- package/dist/core/sdd/services/planning-execution-coherence.service.js +225 -0
- package/dist/core/sdd/services/semantic-intent-classifier.service.d.ts +6 -0
- package/dist/core/sdd/services/semantic-intent-classifier.service.js +7 -0
- package/dist/core/sdd/state.d.ts +1 -0
- package/dist/core/sdd/state.js +266 -34
- package/dist/core/sdd/store/sdd-stores.js +2 -2
- package/dist/core/sdd/structural-health.d.ts +13 -13
- package/dist/core/sdd/types.d.ts +30 -15
- package/dist/core/sdd/types.js +4 -0
- package/dist/core/sdd/views.js +17 -0
- package/dist/core/sdd/workspace-schemas.d.ts +428 -7
- package/dist/core/sdd/workspace-schemas.js +223 -70
- package/dist/core/shared/skill-generation.d.ts +2 -0
- package/dist/core/shared/skill-generation.js +19 -2
- package/dist/core/shared/tool-detection.d.ts +19 -0
- package/dist/core/shared/tool-detection.js +89 -0
- package/dist/domains/sdd/index.d.ts +6 -0
- package/dist/domains/sdd/index.js +6 -0
- package/dist/infrastructures/sdd/index.d.ts +7 -0
- package/dist/infrastructures/sdd/index.js +6 -0
- package/dist/presentations/cli/sdd/index.d.ts +3 -0
- package/dist/presentations/cli/sdd/index.js +3 -0
- package/dist/shared/sdd/index.d.ts +3 -0
- package/dist/shared/sdd/index.js +2 -0
- package/package.json +14 -10
- package/schemas/sdd/2-plan.schema.json +207 -2
- package/schemas/sdd/5-quality.schema.json +324 -25
- package/schemas/sdd/agent-runtime-command-plan.schema.json +212 -0
- package/schemas/sdd/agent-runtime-opencode-run-evidence.schema.json +270 -0
- package/schemas/sdd/codesdd-plugin.schema.json +171 -0
- package/schemas/sdd/deepagent-run-request.schema.json +316 -0
- package/schemas/sdd/parallel-feat-automation-plan.schema.json +89 -0
- package/schemas/sdd/parallel-feat-scheduler-request.schema.json +116 -0
- package/schemas/sdd/parallel-feat-scheduler-result.schema.json +404 -0
- package/schemas/sdd/plugin-artifact-manifest.schema.json +109 -0
- package/schemas/sdd/plugin-artifact-map.schema.json +223 -0
- package/schemas/sdd/plugin-evidence-manifest.schema.json +109 -0
- package/schemas/sdd/plugin-language-runtime.schema.json +103 -0
- package/schemas/sdd/plugin-package-governance.schema.json +74 -0
- package/schemas/sdd/plugin-registry.schema.json +171 -0
- package/schemas/sdd/plugin-runtime-invocation-plan.schema.json +109 -0
- package/schemas/sdd/quality-evidence-bundle.schema.json +109 -0
- package/schemas/sdd/reversa-evidence-bundle.schema.json +466 -0
- package/schemas/sdd/sdk-agent-plugin-quality-gate-input.schema.json +168 -0
- package/schemas/sdd/sdk-agent-plugin-quality-gate-report.schema.json +160 -0
- 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`.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
463
|
+
Se quiser fixar idioma/layout em portugues:
|
|
342
464
|
|
|
343
465
|
```bash
|
|
344
|
-
codesdd
|
|
466
|
+
codesdd sdd init-context --lang pt-BR --layout pt-BR
|
|
345
467
|
```
|
|
346
468
|
|
|
347
|
-
Se quiser
|
|
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
|
-
|
|
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
|
|
490
|
+
Se voce nao quiser habilitar frontend na inicializacao de contexto:
|
|
371
491
|
|
|
372
492
|
```bash
|
|
373
|
-
codesdd
|
|
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
|
|
506
|
+
Se o projeto ja esta em andamento, rode o mesmo comando na raiz:
|
|
387
507
|
|
|
388
508
|
```bash
|
|
389
|
-
codesdd sdd init-context
|
|
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`
|
|
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
|
|
627
|
-
|
|
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
|
|
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`,
|
|
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`
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
-
|
|
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
|