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