@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
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { type AcquireOptions } from '../state-lock.js';
|
|
2
|
+
export interface CoordinationLockAdapter {
|
|
3
|
+
withLock<T>(scope: string, fn: () => Promise<T>, options?: AcquireOptions): Promise<T>;
|
|
4
|
+
}
|
|
5
|
+
export interface CoordinationCacheAdapter {
|
|
6
|
+
get<T>(key: string): Promise<T | undefined>;
|
|
7
|
+
set<T>(key: string, value: T, options?: {
|
|
8
|
+
ttlMs?: number;
|
|
9
|
+
}): Promise<void>;
|
|
10
|
+
delete(key: string): Promise<void>;
|
|
11
|
+
clear(): Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
export interface CoordinationQueueAdapter<T = unknown> {
|
|
14
|
+
enqueue(topic: string, item: T): Promise<void>;
|
|
15
|
+
dequeue(topic: string): Promise<T | undefined>;
|
|
16
|
+
size(topic: string): Promise<number>;
|
|
17
|
+
}
|
|
18
|
+
export interface CoordinationEvent {
|
|
19
|
+
type: string;
|
|
20
|
+
payload?: unknown;
|
|
21
|
+
created_at: string;
|
|
22
|
+
}
|
|
23
|
+
export interface CoordinationEventBusAdapter {
|
|
24
|
+
publish(event: CoordinationEvent): Promise<void>;
|
|
25
|
+
drain(): Promise<CoordinationEvent[]>;
|
|
26
|
+
}
|
|
27
|
+
export interface RedisBoundaryConfig {
|
|
28
|
+
requested: boolean;
|
|
29
|
+
namespace: string;
|
|
30
|
+
url?: string;
|
|
31
|
+
}
|
|
32
|
+
export interface SddCoordinationAdapters {
|
|
33
|
+
mode: 'filesystem';
|
|
34
|
+
redis: RedisBoundaryConfig & {
|
|
35
|
+
status: 'disabled' | 'requested-unavailable';
|
|
36
|
+
reason: string;
|
|
37
|
+
};
|
|
38
|
+
locks: CoordinationLockAdapter;
|
|
39
|
+
cache: CoordinationCacheAdapter;
|
|
40
|
+
queues: CoordinationQueueAdapter;
|
|
41
|
+
events: CoordinationEventBusAdapter;
|
|
42
|
+
}
|
|
43
|
+
export declare class FileSystemLockAdapter implements CoordinationLockAdapter {
|
|
44
|
+
private readonly stateDir;
|
|
45
|
+
constructor(stateDir: string);
|
|
46
|
+
withLock<T>(_scope: string, fn: () => Promise<T>, options?: AcquireOptions): Promise<T>;
|
|
47
|
+
}
|
|
48
|
+
export declare class InMemoryCoordinationCache implements CoordinationCacheAdapter {
|
|
49
|
+
private readonly entries;
|
|
50
|
+
get<T>(key: string): Promise<T | undefined>;
|
|
51
|
+
set<T>(key: string, value: T, options?: {
|
|
52
|
+
ttlMs?: number;
|
|
53
|
+
}): Promise<void>;
|
|
54
|
+
delete(key: string): Promise<void>;
|
|
55
|
+
clear(): Promise<void>;
|
|
56
|
+
}
|
|
57
|
+
export declare class InMemoryCoordinationQueue<T = unknown> implements CoordinationQueueAdapter<T> {
|
|
58
|
+
private readonly topics;
|
|
59
|
+
enqueue(topic: string, item: T): Promise<void>;
|
|
60
|
+
dequeue(topic: string): Promise<T | undefined>;
|
|
61
|
+
size(topic: string): Promise<number>;
|
|
62
|
+
}
|
|
63
|
+
export declare class InMemoryCoordinationEventBus implements CoordinationEventBusAdapter {
|
|
64
|
+
private readonly events;
|
|
65
|
+
publish(event: CoordinationEvent): Promise<void>;
|
|
66
|
+
drain(): Promise<CoordinationEvent[]>;
|
|
67
|
+
}
|
|
68
|
+
export declare function resolveRedisBoundaryConfig(env?: NodeJS.ProcessEnv): RedisBoundaryConfig;
|
|
69
|
+
export declare function createFilesystemFirstCoordinationAdapters(options: {
|
|
70
|
+
stateDir: string;
|
|
71
|
+
env?: NodeJS.ProcessEnv;
|
|
72
|
+
}): SddCoordinationAdapters;
|
|
73
|
+
//# sourceMappingURL=coordination-adapters.d.ts.map
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { withStateLock } from '../state-lock.js';
|
|
2
|
+
export class FileSystemLockAdapter {
|
|
3
|
+
stateDir;
|
|
4
|
+
constructor(stateDir) {
|
|
5
|
+
this.stateDir = stateDir;
|
|
6
|
+
}
|
|
7
|
+
async withLock(_scope, fn, options) {
|
|
8
|
+
return withStateLock(this.stateDir, fn, options);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export class InMemoryCoordinationCache {
|
|
12
|
+
entries = new Map();
|
|
13
|
+
async get(key) {
|
|
14
|
+
const entry = this.entries.get(key);
|
|
15
|
+
if (!entry)
|
|
16
|
+
return undefined;
|
|
17
|
+
if (entry.expiresAt && Date.now() >= entry.expiresAt) {
|
|
18
|
+
this.entries.delete(key);
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
return entry.value;
|
|
22
|
+
}
|
|
23
|
+
async set(key, value, options = {}) {
|
|
24
|
+
const expiresAt = options.ttlMs ? Date.now() + options.ttlMs : undefined;
|
|
25
|
+
this.entries.set(key, { value, expiresAt });
|
|
26
|
+
}
|
|
27
|
+
async delete(key) {
|
|
28
|
+
this.entries.delete(key);
|
|
29
|
+
}
|
|
30
|
+
async clear() {
|
|
31
|
+
this.entries.clear();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export class InMemoryCoordinationQueue {
|
|
35
|
+
topics = new Map();
|
|
36
|
+
async enqueue(topic, item) {
|
|
37
|
+
const queue = this.topics.get(topic) ?? [];
|
|
38
|
+
queue.push(item);
|
|
39
|
+
this.topics.set(topic, queue);
|
|
40
|
+
}
|
|
41
|
+
async dequeue(topic) {
|
|
42
|
+
const queue = this.topics.get(topic);
|
|
43
|
+
if (!queue || queue.length === 0)
|
|
44
|
+
return undefined;
|
|
45
|
+
return queue.shift();
|
|
46
|
+
}
|
|
47
|
+
async size(topic) {
|
|
48
|
+
return this.topics.get(topic)?.length ?? 0;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
export class InMemoryCoordinationEventBus {
|
|
52
|
+
events = [];
|
|
53
|
+
async publish(event) {
|
|
54
|
+
this.events.push(event);
|
|
55
|
+
}
|
|
56
|
+
async drain() {
|
|
57
|
+
return this.events.splice(0, this.events.length);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
export function resolveRedisBoundaryConfig(env = process.env) {
|
|
61
|
+
const url = env.CODESDD_REDIS_URL?.trim() || env.REDIS_URL?.trim() || undefined;
|
|
62
|
+
const requestedByFlag = env.CODESDD_REDIS_ENABLED === 'true';
|
|
63
|
+
const namespace = env.CODESDD_REDIS_NAMESPACE?.trim() || 'codesdd';
|
|
64
|
+
return {
|
|
65
|
+
requested: Boolean(url || requestedByFlag),
|
|
66
|
+
namespace,
|
|
67
|
+
url,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
export function createFilesystemFirstCoordinationAdapters(options) {
|
|
71
|
+
const redis = resolveRedisBoundaryConfig(options.env);
|
|
72
|
+
return {
|
|
73
|
+
mode: 'filesystem',
|
|
74
|
+
redis: {
|
|
75
|
+
...redis,
|
|
76
|
+
status: redis.requested ? 'requested-unavailable' : 'disabled',
|
|
77
|
+
reason: redis.requested
|
|
78
|
+
? 'Redis adapter boundary is configured but no Redis client adapter is installed; filesystem-first defaults remain authoritative.'
|
|
79
|
+
: 'Redis is optional and disabled; filesystem-first defaults are authoritative.',
|
|
80
|
+
},
|
|
81
|
+
locks: new FileSystemLockAdapter(options.stateDir),
|
|
82
|
+
cache: new InMemoryCoordinationCache(),
|
|
83
|
+
queues: new InMemoryCoordinationQueue(),
|
|
84
|
+
events: new InMemoryCoordinationEventBus(),
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=coordination-adapters.js.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface SimilarityCandidate {
|
|
2
|
+
id: string;
|
|
3
|
+
title: string;
|
|
4
|
+
score: number;
|
|
5
|
+
}
|
|
6
|
+
export interface WarnAndLinkResult {
|
|
7
|
+
severity: 'none' | 'warning';
|
|
8
|
+
candidates: SimilarityCandidate[];
|
|
9
|
+
warningLinks: string[];
|
|
10
|
+
}
|
|
11
|
+
export interface WarnAndLinkOptions {
|
|
12
|
+
maxCandidates?: number;
|
|
13
|
+
minScore?: number;
|
|
14
|
+
}
|
|
15
|
+
export declare function normalizeSemanticText(value: string): string;
|
|
16
|
+
export declare function extractNGrams(value: string, size: number): Set<string>;
|
|
17
|
+
export declare function jaccardSimilarity(a: Set<string>, b: Set<string>): number;
|
|
18
|
+
export declare function semanticSimilarity(a: string, b: string): number;
|
|
19
|
+
export declare function warnAndLink(entityType: string, title: string, candidates: Array<{
|
|
20
|
+
id: string;
|
|
21
|
+
title: string;
|
|
22
|
+
}>, options?: WarnAndLinkOptions): WarnAndLinkResult;
|
|
23
|
+
//# sourceMappingURL=dedup.d.ts.map
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
const DEFAULT_THRESHOLDS = {
|
|
2
|
+
INS: 0.58,
|
|
3
|
+
DEB: 0.62,
|
|
4
|
+
FEAT: 0.6,
|
|
5
|
+
};
|
|
6
|
+
export function normalizeSemanticText(value) {
|
|
7
|
+
return value
|
|
8
|
+
.normalize('NFD')
|
|
9
|
+
.replace(/[\u0300-\u036f]/g, '')
|
|
10
|
+
.toLowerCase()
|
|
11
|
+
.replace(/[^a-z0-9\s]/g, ' ')
|
|
12
|
+
.replace(/\s+/g, ' ')
|
|
13
|
+
.trim();
|
|
14
|
+
}
|
|
15
|
+
export function extractNGrams(value, size) {
|
|
16
|
+
const normalized = normalizeSemanticText(value).replace(/\s/g, '');
|
|
17
|
+
if (!normalized)
|
|
18
|
+
return new Set();
|
|
19
|
+
if (normalized.length <= size)
|
|
20
|
+
return new Set([normalized]);
|
|
21
|
+
const grams = new Set();
|
|
22
|
+
for (let index = 0; index <= normalized.length - size; index += 1) {
|
|
23
|
+
grams.add(normalized.slice(index, index + size));
|
|
24
|
+
}
|
|
25
|
+
return grams;
|
|
26
|
+
}
|
|
27
|
+
export function jaccardSimilarity(a, b) {
|
|
28
|
+
if (a.size === 0 || b.size === 0)
|
|
29
|
+
return 0;
|
|
30
|
+
const intersection = [...a].filter((token) => b.has(token)).length;
|
|
31
|
+
const union = new Set([...a, ...b]).size;
|
|
32
|
+
return union === 0 ? 0 : intersection / union;
|
|
33
|
+
}
|
|
34
|
+
export function semanticSimilarity(a, b) {
|
|
35
|
+
const normalizedA = normalizeSemanticText(a);
|
|
36
|
+
const normalizedB = normalizeSemanticText(b);
|
|
37
|
+
if (!normalizedA || !normalizedB)
|
|
38
|
+
return 0;
|
|
39
|
+
if (normalizedA === normalizedB)
|
|
40
|
+
return 1;
|
|
41
|
+
const bigrams = jaccardSimilarity(extractNGrams(normalizedA, 2), extractNGrams(normalizedB, 2));
|
|
42
|
+
const trigrams = jaccardSimilarity(extractNGrams(normalizedA, 3), extractNGrams(normalizedB, 3));
|
|
43
|
+
return Number((bigrams * 0.45 + trigrams * 0.55).toFixed(4));
|
|
44
|
+
}
|
|
45
|
+
export function warnAndLink(entityType, title, candidates, options) {
|
|
46
|
+
const threshold = options?.minScore ?? DEFAULT_THRESHOLDS[entityType] ?? 0.65;
|
|
47
|
+
const ranked = candidates
|
|
48
|
+
.map((candidate) => ({
|
|
49
|
+
id: candidate.id,
|
|
50
|
+
title: candidate.title,
|
|
51
|
+
score: semanticSimilarity(title, candidate.title),
|
|
52
|
+
}))
|
|
53
|
+
.filter((candidate) => candidate.score >= threshold)
|
|
54
|
+
.sort((left, right) => right.score - left.score)
|
|
55
|
+
.slice(0, options?.maxCandidates ?? 3);
|
|
56
|
+
return {
|
|
57
|
+
severity: ranked.length > 0 ? 'warning' : 'none',
|
|
58
|
+
candidates: ranked,
|
|
59
|
+
warningLinks: ranked.map((candidate) => candidate.id),
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=dedup.js.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface SddReadmeFolders {
|
|
2
|
+
discovery?: string;
|
|
3
|
+
planning?: string;
|
|
4
|
+
skills?: string;
|
|
5
|
+
templates?: string;
|
|
6
|
+
active?: string;
|
|
7
|
+
archived?: string;
|
|
8
|
+
deposito?: string;
|
|
9
|
+
prompts?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function buildSddInternalReadme(memoryDir?: string, folders?: SddReadmeFolders): string;
|
|
12
|
+
export declare const PROMPTS_README_MD = "# Recommended SDD Prompts\n\nUse these prompts to speed up agent workflows without losing the SDD standard.\n\n## Recommended Order For Raw Material\n1. `00-start-here.md`\n2. `01-source-intake.md`\n3. `02-normalize-planning.md`\n4. `03-feature-execution.md`\n5. `04-finalize-consolidation.md`\n\nRule: prompts guide the agent, but the canonical state remains in `.sdd/state/*.yaml`.\nDo not persist project memory, workflow state, backlog, or handoff in external context stores.\n";
|
|
13
|
+
export declare const PROMPT_00_COMECE_POR_AQUI_MD = "# Start Here (First Use)\n\nIf you have never used CodeSDD, follow this order.\n\n## 1) Install And Initialize The Project\n\nIn the terminal, from your project directory:\n\n```bash\ncodesdd install --tools none --lang en-US --layout en-US\ncodesdd sdd init --frontend --lang en-US --layout en-US\ncodesdd sdd init-context\ncodesdd sdd check --render\ncodesdd sdd rebuild --from-disk --dry-run\ncodesdd sdd dedup --apply --dry-run\ncodesdd sdd onboard system\n```\n\n## 2) Understand The Main Folders\n\n- `.sdd/sources/`: raw material such as PRDs, wireframes, stories, and references.\n- `.sdd/state/`: canonical YAML source of truth.\n- `.sdd/core/`: generated human-readable system overview.\n- `.sdd/planning/`: backlog, progress, and finalize queue.\n- `.sdd/active/`: active FEAT workspaces.\n- `.sdd/archived/`: finalized workspaces.\n\nCodeSDD is the only operational memory for the project. Do not use external context, memory, workflow, backlog, scratchpad, or handoff stores as active project state.\n\n## 3) I Have PRDs, Wireframes, Or Stories. What Now?\n\n1. Place the files under `.sdd/sources/` in the appropriate subfolders.\n2. Run:\n\n```bash\ncodesdd sdd ingest-deposito --source-dir .sdd/sources --title \"Initial system planning\"\n```\n\n3. Review:\n\n```bash\ncodesdd sdd check --render\ncodesdd sdd next\n```\n\nExpected result:\n- sources indexed in `.sdd/state/source-index.yaml`\n- EPIC created or reused\n- FEATs generated in the backlog\n- first ready FEAT started automatically when possible\n\n## 4) Execute A Feature\n\n```bash\ncodesdd sdd start FEAT-0001 --flow-mode standard\ncodesdd sdd context FEAT-0001\ncodesdd sdd frontend-impact FEAT-0001 --status required --reason \"New route and UI components\"\n```\n\nImplement and update the FEAT package:\n- `1-spec.yaml`\n- `2-plan.yaml`\n- `5-quality.yaml`\n- `3-tasks.yaml`\n- `4-changelog.yaml`\n\n## 5) Finalize Without Losing Context\n\n```bash\ncodesdd sdd finalize --ref FEAT-0001\ncodesdd sdd check --render\ncodesdd sdd onboard system\n```\n\nGolden rule:\n- A FEAT is only truly complete after documentation consolidation.\n\n## 6) Short Usage Story\n\nThe team placed a PRD and a wireframe in `.sdd/sources/`.\nThey ran `codesdd sdd ingest-deposito --source-dir .sdd/sources` and got an EPIC plus ready FEATs.\nThey started the priority FEAT with `codesdd sdd start FEAT-0001`.\nBefore coding, they ran `codesdd sdd context FEAT-0001`.\nAfter implementation, they ran `codesdd sdd finalize --ref FEAT-0001`.\nResult: backlog updated, docs synchronized, and the next FEAT released without guesswork.\n\n## 7) Essential Commands\n\n- `codesdd sdd onboard system`: understand the current state.\n- `codesdd sdd ingest-deposito --source-dir .sdd/sources`: turn raw material into an executable trail.\n- `codesdd sdd rebuild --from-disk --dry-run`: preview state reconciliation from disk artifacts.\n- `codesdd sdd audit --json`: persist an audit snapshot in `.sdd/state/audit-history.yaml`.\n- `codesdd sdd metrics --since 7d`: inspect lead time, aging, and throughput.\n- `codesdd sdd dedup --apply --dry-run`: preview historical warning_links reconciliation.\n- `codesdd sdd lint feature FEAT-0001`: inspect feature scope before execution.\n- `codesdd sdd next`: see what can start now.\n- `codesdd sdd start FEAT-0001`: open feature execution.\n- `codesdd sdd context FEAT-0001`: generate focused context.\n- `codesdd sdd frontend-impact FEAT-0001 --status required|none --reason \"...\"`: declare frontend impact.\n- `codesdd sdd finalize --ref FEAT-0001`: consolidate memory and close.\n";
|
|
14
|
+
export declare const PROMPT_01_INGESTAO_DEPOSITO_MD = "# Prompt: Source Intake\n\nUse the skills:\n- source-intake-sdd\n- business-extractor-sdd\n- frontend-extractor-sdd\n- planning-normalizer-sdd\n\nObjective:\n1. Scan `.sdd/sources/`.\n2. Update `.sdd/state/source-index.yaml`.\n3. Consolidate canonical context (`architecture`, `service-catalog`, `tech-stack`, `integration-contracts`, and frontend when enabled).\n4. Generate an executable trail (EPIC plus FEATs) with source traceability.\n\nRequired output:\n- summary of sources read;\n- IDs created or updated (EPIC/FEAT/FGAP/INS when ambiguity exists);\n- recommended next CLI commands.\n";
|
|
15
|
+
export declare const PROMPT_02_NORMALIZAR_PLANEJAMENTO_MD = "# Prompt: Normalize Planning\n\nObjective:\nTurn consolidated material into an executable plan with clear dependencies.\n\nInstructions:\n1. Start from `.sdd/state/source-index.yaml` and `.sdd/core/*.md`.\n2. Propose EPICs and FEATs with clear English names.\n3. Define dependencies (`blocked_by`) and conflicts (`lock_domains`).\n4. List what can run in parallel.\n5. End with a documentation consolidation checklist per feature.\n";
|
|
16
|
+
export declare const PROMPT_03_EXECUCAO_FEATURE_MD = "# Prompt: Feature Execution\n\nObjective:\nExecute a FEAT without losing traceability.\n\nInstructions:\n1. Run `codesdd sdd context FEAT-0001`.\n2. Update `.sdd/active/FEAT-0001/` (spec, plan, tasks, changelog).\n3. Implement.\n4. Update `.sdd/active/FEAT-0001/5-quality.yaml` with evidence or a formal exception; quality contracts are blocking by default.\n5. Update affected canonical docs.\n6. Declare frontend impact with `codesdd sdd frontend-impact FEAT-0001 ...`.\n7. Ensure architectural-impact FEATs have an ADR before finalize.\n8. Finish with `codesdd sdd finalize --ref FEAT-0001`.\n";
|
|
17
|
+
export declare const PROMPT_04_CONSOLIDACAO_FINALIZE_MD = "# Prompt: Consolidation And Finalize\n\nObjective:\nClose a feature with complete operational memory.\n\nChecklist:\n1. Review the FEAT technical diff.\n2. Update central documentation (`README.md`, `.sdd/AGENT.md`, `.sdd/core/*.md`, `AGENTS.md`, `AGENT.md`).\n3. Ensure frontend gaps or decisions are recorded when applicable.\n4. Declare frontend impact with `codesdd sdd frontend-impact FEAT-0001 --status required|none --reason \"...\"`.\n5. Run `codesdd sdd check --render`.\n6. Run `codesdd sdd finalize --ref FEAT-0001` and report updated docs.\n";
|
|
18
|
+
export declare const TEMPLATE_1_SPEC_MD = "schema_version: 1\nfeature_id: FEAT-0001\ntitle: Example workspace specification\norigin:\n type: direct\n ref: FEAT-0001\nobjective: This YAML specification records the feature objective with enough detail for agents to understand the expected implementation scope, user or system value, dependencies, and validation intent before source changes begin.\nexpected_outcome: The feature reaches a verifiable done state with its implementation, documentation, and quality evidence synchronized in CodeSDD.\nsystem_impact: The workspace keeps canonical state, generated views, and operational handoff aligned with the implementation.\nacceptance_refs:\n - FEAT-0001\ngates:\n proposta:\n status: rascunho\n planejamento:\n status: rascunho\n tarefas:\n status: rascunho\ncompliance_context:\n jurisdictions:\n - BR-LGPD\n data_classes:\n - personal_data\n source_refs:\n - SRC-0001\n legal_review_required: false\n legal_review_notes: \"\"\ncreated_at: 2026-01-01T00:00:00.000Z\nupdated_at: 2026-01-01T00:00:00.000Z\n";
|
|
19
|
+
export declare const TEMPLATE_2_PLAN_MD: string;
|
|
20
|
+
export declare const TEMPLATE_QUALITY_MD = "schema_version: 1\nfeature_id: FEAT-0001\ncoverage_targets:\n unit: 95\n integration: 95\nvalidation_strategies:\n - name: Targeted tests\n command: pnpm test\n expected: Tests pass for the touched scope.\nevidence_log: []\nskill_evidence:\n required_skill_ids: []\n evidence: []\n verification_rule: No skill evidence required for this feature.\nacceptance_matrix:\n - criterion: requirements\n status: not_met\n evidence: Add validation evidence before finalize.\nexceptions: []\nremediation_policy:\n on_coverage_miss: block\n max_rounds: 3\ntraceability:\n spec_anchor:\n spec_updated_at: \"\"\n changelog_refs: []\n requirements: []\nsecurity_integrity:\n endpoint_auth_review: pending\n sensitive_data_exposure_review: pending\n incident_response_review: pending\n notes: Record endpoint/data exposure evidence before finalize when privacy impact exists.\n";
|
|
21
|
+
export declare const TEMPLATE_3_TASKS_MD: string;
|
|
22
|
+
export declare const TEMPLATE_4_CHANGELOG_MD = "schema_version: 1\nfeature_id: FEAT-0001\nentries:\n - timestamp: 2026-01-01T00:00:00.000Z\n action: created\n details: Workspace changelog initialized.\n";
|
|
23
|
+
//# sourceMappingURL=default-bootstrap-files.d.ts.map
|
|
@@ -0,0 +1,385 @@
|
|
|
1
|
+
import { CLI_NAME } from '../branding.js';
|
|
2
|
+
export function buildSddInternalReadme(memoryDir = '.sdd', folders = {}) {
|
|
3
|
+
const discovery = folders.discovery || 'discovery';
|
|
4
|
+
const planning = folders.planning || 'planning';
|
|
5
|
+
const skills = folders.skills || 'skills';
|
|
6
|
+
const templates = folders.templates || 'templates';
|
|
7
|
+
const active = folders.active || 'active';
|
|
8
|
+
const archived = folders.archived || 'archived';
|
|
9
|
+
const deposito = folders.deposito || 'sources';
|
|
10
|
+
const prompts = folders.prompts || 'prompts';
|
|
11
|
+
return `# SDD README
|
|
12
|
+
|
|
13
|
+
This directory stores the project's operational memory.
|
|
14
|
+
|
|
15
|
+
## Read First
|
|
16
|
+
1. \`README.md\`
|
|
17
|
+
2. \`${memoryDir}/AGENT.md\`
|
|
18
|
+
3. \`${memoryDir}/core/index.md\`
|
|
19
|
+
4. \`${memoryDir}/core/arquitetura.md\`
|
|
20
|
+
5. \`${memoryDir}/core/servicos.md\`
|
|
21
|
+
6. \`${memoryDir}/core/spec-tecnologica.md\`
|
|
22
|
+
7. \`${memoryDir}/core/repo-map.md\`
|
|
23
|
+
8. \`${memoryDir}/core/fontes.md\`
|
|
24
|
+
9. \`${memoryDir}/core/frontend-sitemap.md\` (when frontend is enabled)
|
|
25
|
+
10. \`${memoryDir}/core/frontend-decisions.md\` (when frontend is enabled)
|
|
26
|
+
|
|
27
|
+
## How To Operate
|
|
28
|
+
1. Run \`${CLI_NAME} sdd onboard system\` to understand current state.
|
|
29
|
+
2. Run \`${CLI_NAME} sdd next\` to see what can start now.
|
|
30
|
+
3. Run \`${CLI_NAME} sdd start <FEAT-ID>\` only when the item is not already active.
|
|
31
|
+
4. Run \`${CLI_NAME} sdd context <FEAT-ID>\` before implementation.
|
|
32
|
+
5. Record validation evidence in \`${active}/<FEAT-ID>/5-quality.yaml\`.
|
|
33
|
+
6. Declare frontend impact with \`${CLI_NAME} sdd frontend-impact <FEAT-ID> --status required|none --reason "..."\`.
|
|
34
|
+
7. Run \`${CLI_NAME} sdd finalize --ref <FEAT-ID>\` when consolidating the feature.
|
|
35
|
+
|
|
36
|
+
## Main Folders
|
|
37
|
+
- \`core/\`: current system overview.
|
|
38
|
+
- \`${discovery}/\`: insights, debates, epics, and discarded items.
|
|
39
|
+
- \`${planning}/\`: backlog, progress, gaps, and finalize queue.
|
|
40
|
+
- \`${planning}/frontend-auditoria.md\`: frontend coverage audit by FEAT.
|
|
41
|
+
- \`state/\`: canonical YAML source of truth.
|
|
42
|
+
- \`${skills}/\`: local curation and bundles.
|
|
43
|
+
- \`${templates}/\`: base templates for spec, plan, quality, tasks, and changelog.
|
|
44
|
+
- \`${prompts}/\`: recommended prompts for common workflows.
|
|
45
|
+
- \`${active}/\`: active FEAT workspaces.
|
|
46
|
+
- \`${archived}/\`: finalized frozen workspaces.
|
|
47
|
+
- \`${deposito}/\`: raw documents, PRDs, wireframes, and external references.
|
|
48
|
+
|
|
49
|
+
## Operational Authority
|
|
50
|
+
- \`state/*.yaml\` is the only canonical operational state for planning, dependencies, blockers, progress, quality, and handoff.
|
|
51
|
+
- \`core/*.md\` and \`${planning}/*.md\` are operational views derived from canonical state.
|
|
52
|
+
- External context, memory, workflow, backlog, scratchpad, or handoff stores are not authoritative.
|
|
53
|
+
|
|
54
|
+
## Operational Rule
|
|
55
|
+
Every completed feature must update relevant documentation before \`finalize\`.
|
|
56
|
+
`;
|
|
57
|
+
}
|
|
58
|
+
export const PROMPTS_README_MD = `# Recommended SDD Prompts
|
|
59
|
+
|
|
60
|
+
Use these prompts to speed up agent workflows without losing the SDD standard.
|
|
61
|
+
|
|
62
|
+
## Recommended Order For Raw Material
|
|
63
|
+
1. \`00-start-here.md\`
|
|
64
|
+
2. \`01-source-intake.md\`
|
|
65
|
+
3. \`02-normalize-planning.md\`
|
|
66
|
+
4. \`03-feature-execution.md\`
|
|
67
|
+
5. \`04-finalize-consolidation.md\`
|
|
68
|
+
|
|
69
|
+
Rule: prompts guide the agent, but the canonical state remains in \`.sdd/state/*.yaml\`.
|
|
70
|
+
Do not persist project memory, workflow state, backlog, or handoff in external context stores.
|
|
71
|
+
`;
|
|
72
|
+
export const PROMPT_00_COMECE_POR_AQUI_MD = `# Start Here (First Use)
|
|
73
|
+
|
|
74
|
+
If you have never used CodeSDD, follow this order.
|
|
75
|
+
|
|
76
|
+
## 1) Install And Initialize The Project
|
|
77
|
+
|
|
78
|
+
In the terminal, from your project directory:
|
|
79
|
+
|
|
80
|
+
\`\`\`bash
|
|
81
|
+
codesdd install --tools none --lang en-US --layout en-US
|
|
82
|
+
codesdd sdd init --frontend --lang en-US --layout en-US
|
|
83
|
+
codesdd sdd init-context
|
|
84
|
+
codesdd sdd check --render
|
|
85
|
+
codesdd sdd rebuild --from-disk --dry-run
|
|
86
|
+
codesdd sdd dedup --apply --dry-run
|
|
87
|
+
codesdd sdd onboard system
|
|
88
|
+
\`\`\`
|
|
89
|
+
|
|
90
|
+
## 2) Understand The Main Folders
|
|
91
|
+
|
|
92
|
+
- \`.sdd/sources/\`: raw material such as PRDs, wireframes, stories, and references.
|
|
93
|
+
- \`.sdd/state/\`: canonical YAML source of truth.
|
|
94
|
+
- \`.sdd/core/\`: generated human-readable system overview.
|
|
95
|
+
- \`.sdd/planning/\`: backlog, progress, and finalize queue.
|
|
96
|
+
- \`.sdd/active/\`: active FEAT workspaces.
|
|
97
|
+
- \`.sdd/archived/\`: finalized workspaces.
|
|
98
|
+
|
|
99
|
+
CodeSDD is the only operational memory for the project. Do not use external context, memory, workflow, backlog, scratchpad, or handoff stores as active project state.
|
|
100
|
+
|
|
101
|
+
## 3) I Have PRDs, Wireframes, Or Stories. What Now?
|
|
102
|
+
|
|
103
|
+
1. Place the files under \`.sdd/sources/\` in the appropriate subfolders.
|
|
104
|
+
2. Run:
|
|
105
|
+
|
|
106
|
+
\`\`\`bash
|
|
107
|
+
codesdd sdd ingest-deposito --source-dir .sdd/sources --title "Initial system planning"
|
|
108
|
+
\`\`\`
|
|
109
|
+
|
|
110
|
+
3. Review:
|
|
111
|
+
|
|
112
|
+
\`\`\`bash
|
|
113
|
+
codesdd sdd check --render
|
|
114
|
+
codesdd sdd next
|
|
115
|
+
\`\`\`
|
|
116
|
+
|
|
117
|
+
Expected result:
|
|
118
|
+
- sources indexed in \`.sdd/state/source-index.yaml\`
|
|
119
|
+
- EPIC created or reused
|
|
120
|
+
- FEATs generated in the backlog
|
|
121
|
+
- first ready FEAT started automatically when possible
|
|
122
|
+
|
|
123
|
+
## 4) Execute A Feature
|
|
124
|
+
|
|
125
|
+
\`\`\`bash
|
|
126
|
+
codesdd sdd start FEAT-0001 --flow-mode standard
|
|
127
|
+
codesdd sdd context FEAT-0001
|
|
128
|
+
codesdd sdd frontend-impact FEAT-0001 --status required --reason "New route and UI components"
|
|
129
|
+
\`\`\`
|
|
130
|
+
|
|
131
|
+
Implement and update the FEAT package:
|
|
132
|
+
- \`1-spec.yaml\`
|
|
133
|
+
- \`2-plan.yaml\`
|
|
134
|
+
- \`5-quality.yaml\`
|
|
135
|
+
- \`3-tasks.yaml\`
|
|
136
|
+
- \`4-changelog.yaml\`
|
|
137
|
+
|
|
138
|
+
## 5) Finalize Without Losing Context
|
|
139
|
+
|
|
140
|
+
\`\`\`bash
|
|
141
|
+
codesdd sdd finalize --ref FEAT-0001
|
|
142
|
+
codesdd sdd check --render
|
|
143
|
+
codesdd sdd onboard system
|
|
144
|
+
\`\`\`
|
|
145
|
+
|
|
146
|
+
Golden rule:
|
|
147
|
+
- A FEAT is only truly complete after documentation consolidation.
|
|
148
|
+
|
|
149
|
+
## 6) Short Usage Story
|
|
150
|
+
|
|
151
|
+
The team placed a PRD and a wireframe in \`.sdd/sources/\`.
|
|
152
|
+
They ran \`codesdd sdd ingest-deposito --source-dir .sdd/sources\` and got an EPIC plus ready FEATs.
|
|
153
|
+
They started the priority FEAT with \`codesdd sdd start FEAT-0001\`.
|
|
154
|
+
Before coding, they ran \`codesdd sdd context FEAT-0001\`.
|
|
155
|
+
After implementation, they ran \`codesdd sdd finalize --ref FEAT-0001\`.
|
|
156
|
+
Result: backlog updated, docs synchronized, and the next FEAT released without guesswork.
|
|
157
|
+
|
|
158
|
+
## 7) Essential Commands
|
|
159
|
+
|
|
160
|
+
- \`codesdd sdd onboard system\`: understand the current state.
|
|
161
|
+
- \`codesdd sdd ingest-deposito --source-dir .sdd/sources\`: turn raw material into an executable trail.
|
|
162
|
+
- \`codesdd sdd rebuild --from-disk --dry-run\`: preview state reconciliation from disk artifacts.
|
|
163
|
+
- \`codesdd sdd audit --json\`: persist an audit snapshot in \`.sdd/state/audit-history.yaml\`.
|
|
164
|
+
- \`codesdd sdd metrics --since 7d\`: inspect lead time, aging, and throughput.
|
|
165
|
+
- \`codesdd sdd dedup --apply --dry-run\`: preview historical warning_links reconciliation.
|
|
166
|
+
- \`codesdd sdd lint feature FEAT-0001\`: inspect feature scope before execution.
|
|
167
|
+
- \`codesdd sdd next\`: see what can start now.
|
|
168
|
+
- \`codesdd sdd start FEAT-0001\`: open feature execution.
|
|
169
|
+
- \`codesdd sdd context FEAT-0001\`: generate focused context.
|
|
170
|
+
- \`codesdd sdd frontend-impact FEAT-0001 --status required|none --reason "..."\`: declare frontend impact.
|
|
171
|
+
- \`codesdd sdd finalize --ref FEAT-0001\`: consolidate memory and close.
|
|
172
|
+
`;
|
|
173
|
+
export const PROMPT_01_INGESTAO_DEPOSITO_MD = `# Prompt: Source Intake
|
|
174
|
+
|
|
175
|
+
Use the skills:
|
|
176
|
+
- source-intake-sdd
|
|
177
|
+
- business-extractor-sdd
|
|
178
|
+
- frontend-extractor-sdd
|
|
179
|
+
- planning-normalizer-sdd
|
|
180
|
+
|
|
181
|
+
Objective:
|
|
182
|
+
1. Scan \`.sdd/sources/\`.
|
|
183
|
+
2. Update \`.sdd/state/source-index.yaml\`.
|
|
184
|
+
3. Consolidate canonical context (\`architecture\`, \`service-catalog\`, \`tech-stack\`, \`integration-contracts\`, and frontend when enabled).
|
|
185
|
+
4. Generate an executable trail (EPIC plus FEATs) with source traceability.
|
|
186
|
+
|
|
187
|
+
Required output:
|
|
188
|
+
- summary of sources read;
|
|
189
|
+
- IDs created or updated (EPIC/FEAT/FGAP/INS when ambiguity exists);
|
|
190
|
+
- recommended next CLI commands.
|
|
191
|
+
`;
|
|
192
|
+
export const PROMPT_02_NORMALIZAR_PLANEJAMENTO_MD = `# Prompt: Normalize Planning
|
|
193
|
+
|
|
194
|
+
Objective:
|
|
195
|
+
Turn consolidated material into an executable plan with clear dependencies.
|
|
196
|
+
|
|
197
|
+
Instructions:
|
|
198
|
+
1. Start from \`.sdd/state/source-index.yaml\` and \`.sdd/core/*.md\`.
|
|
199
|
+
2. Propose EPICs and FEATs with clear English names.
|
|
200
|
+
3. Define dependencies (\`blocked_by\`) and conflicts (\`lock_domains\`).
|
|
201
|
+
4. List what can run in parallel.
|
|
202
|
+
5. End with a documentation consolidation checklist per feature.
|
|
203
|
+
`;
|
|
204
|
+
export const PROMPT_03_EXECUCAO_FEATURE_MD = `# Prompt: Feature Execution
|
|
205
|
+
|
|
206
|
+
Objective:
|
|
207
|
+
Execute a FEAT without losing traceability.
|
|
208
|
+
|
|
209
|
+
Instructions:
|
|
210
|
+
1. Run \`codesdd sdd context FEAT-0001\`.
|
|
211
|
+
2. Update \`.sdd/active/FEAT-0001/\` (spec, plan, tasks, changelog).
|
|
212
|
+
3. Implement.
|
|
213
|
+
4. Update \`.sdd/active/FEAT-0001/5-quality.yaml\` with evidence or a formal exception; quality contracts are blocking by default.
|
|
214
|
+
5. Update affected canonical docs.
|
|
215
|
+
6. Declare frontend impact with \`codesdd sdd frontend-impact FEAT-0001 ...\`.
|
|
216
|
+
7. Ensure architectural-impact FEATs have an ADR before finalize.
|
|
217
|
+
8. Finish with \`codesdd sdd finalize --ref FEAT-0001\`.
|
|
218
|
+
`;
|
|
219
|
+
export const PROMPT_04_CONSOLIDACAO_FINALIZE_MD = `# Prompt: Consolidation And Finalize
|
|
220
|
+
|
|
221
|
+
Objective:
|
|
222
|
+
Close a feature with complete operational memory.
|
|
223
|
+
|
|
224
|
+
Checklist:
|
|
225
|
+
1. Review the FEAT technical diff.
|
|
226
|
+
2. Update central documentation (\`README.md\`, \`.sdd/AGENT.md\`, \`.sdd/core/*.md\`, \`AGENTS.md\`, \`AGENT.md\`).
|
|
227
|
+
3. Ensure frontend gaps or decisions are recorded when applicable.
|
|
228
|
+
4. Declare frontend impact with \`codesdd sdd frontend-impact FEAT-0001 --status required|none --reason "..."\`.
|
|
229
|
+
5. Run \`codesdd sdd check --render\`.
|
|
230
|
+
6. Run \`codesdd sdd finalize --ref FEAT-0001\` and report updated docs.
|
|
231
|
+
`;
|
|
232
|
+
export const TEMPLATE_1_SPEC_MD = `schema_version: 1
|
|
233
|
+
feature_id: FEAT-0001
|
|
234
|
+
title: Example workspace specification
|
|
235
|
+
origin:
|
|
236
|
+
type: direct
|
|
237
|
+
ref: FEAT-0001
|
|
238
|
+
objective: This YAML specification records the feature objective with enough detail for agents to understand the expected implementation scope, user or system value, dependencies, and validation intent before source changes begin.
|
|
239
|
+
expected_outcome: The feature reaches a verifiable done state with its implementation, documentation, and quality evidence synchronized in CodeSDD.
|
|
240
|
+
system_impact: The workspace keeps canonical state, generated views, and operational handoff aligned with the implementation.
|
|
241
|
+
acceptance_refs:
|
|
242
|
+
- FEAT-0001
|
|
243
|
+
gates:
|
|
244
|
+
proposta:
|
|
245
|
+
status: rascunho
|
|
246
|
+
planejamento:
|
|
247
|
+
status: rascunho
|
|
248
|
+
tarefas:
|
|
249
|
+
status: rascunho
|
|
250
|
+
compliance_context:
|
|
251
|
+
jurisdictions:
|
|
252
|
+
- BR-LGPD
|
|
253
|
+
data_classes:
|
|
254
|
+
- personal_data
|
|
255
|
+
source_refs:
|
|
256
|
+
- SRC-0001
|
|
257
|
+
legal_review_required: false
|
|
258
|
+
legal_review_notes: ""
|
|
259
|
+
created_at: 2026-01-01T00:00:00.000Z
|
|
260
|
+
updated_at: 2026-01-01T00:00:00.000Z
|
|
261
|
+
`;
|
|
262
|
+
export const TEMPLATE_2_PLAN_MD = `schema_version: 1
|
|
263
|
+
feature_id: FEAT-0001
|
|
264
|
+
architectural_impact:
|
|
265
|
+
description: This plan describes the implementation approach, affected modules, and integration boundaries for the feature.
|
|
266
|
+
affected_modules:
|
|
267
|
+
- src
|
|
268
|
+
frontend_impact:
|
|
269
|
+
status: unknown
|
|
270
|
+
description: Declare none or required before finalize with ${CLI_NAME} sdd frontend-impact.
|
|
271
|
+
affected_contracts:
|
|
272
|
+
- name: workspace-documents
|
|
273
|
+
change_type: example
|
|
274
|
+
quality_strategy:
|
|
275
|
+
unit_target: 95
|
|
276
|
+
integration_target: 95
|
|
277
|
+
approach: hybrid
|
|
278
|
+
suggested_skills:
|
|
279
|
+
- architecture
|
|
280
|
+
privacy_controls:
|
|
281
|
+
source_registry_refs:
|
|
282
|
+
- SRC-0001
|
|
283
|
+
jurisdiction_profiles:
|
|
284
|
+
- JP-BR-LGPD
|
|
285
|
+
control_ids:
|
|
286
|
+
- CTRL-TRANSPARENCY-001
|
|
287
|
+
legal_review_gate: conditional
|
|
288
|
+
unresolved_legal_questions: []
|
|
289
|
+
`;
|
|
290
|
+
export const TEMPLATE_QUALITY_MD = `schema_version: 1
|
|
291
|
+
feature_id: FEAT-0001
|
|
292
|
+
coverage_targets:
|
|
293
|
+
unit: 95
|
|
294
|
+
integration: 95
|
|
295
|
+
validation_strategies:
|
|
296
|
+
- name: Targeted tests
|
|
297
|
+
command: pnpm test
|
|
298
|
+
expected: Tests pass for the touched scope.
|
|
299
|
+
evidence_log: []
|
|
300
|
+
skill_evidence:
|
|
301
|
+
required_skill_ids: []
|
|
302
|
+
evidence: []
|
|
303
|
+
verification_rule: No skill evidence required for this feature.
|
|
304
|
+
acceptance_matrix:
|
|
305
|
+
- criterion: requirements
|
|
306
|
+
status: not_met
|
|
307
|
+
evidence: Add validation evidence before finalize.
|
|
308
|
+
exceptions: []
|
|
309
|
+
remediation_policy:
|
|
310
|
+
on_coverage_miss: block
|
|
311
|
+
max_rounds: 3
|
|
312
|
+
traceability:
|
|
313
|
+
spec_anchor:
|
|
314
|
+
spec_updated_at: ""
|
|
315
|
+
changelog_refs: []
|
|
316
|
+
requirements: []
|
|
317
|
+
security_integrity:
|
|
318
|
+
endpoint_auth_review: pending
|
|
319
|
+
sensitive_data_exposure_review: pending
|
|
320
|
+
incident_response_review: pending
|
|
321
|
+
notes: Record endpoint/data exposure evidence before finalize when privacy impact exists.
|
|
322
|
+
`;
|
|
323
|
+
export const TEMPLATE_3_TASKS_MD = `schema_version: 1
|
|
324
|
+
feature_id: FEAT-0001
|
|
325
|
+
tasks:
|
|
326
|
+
- id: FEAT-0001-T1
|
|
327
|
+
phase: preparation
|
|
328
|
+
title: Load feature context
|
|
329
|
+
description: Run ${CLI_NAME} sdd context FEAT-0001 and review YAML workspace fields before editing.
|
|
330
|
+
files_touched: []
|
|
331
|
+
test_scripts: []
|
|
332
|
+
acceptance: Context and constraints are understood.
|
|
333
|
+
status: pending
|
|
334
|
+
- id: FEAT-0001-T2
|
|
335
|
+
phase: implementation
|
|
336
|
+
title: Implement scoped change
|
|
337
|
+
description: Apply the implementation while preserving CodeSDD state and workspace YAML contracts.
|
|
338
|
+
files_touched: []
|
|
339
|
+
test_scripts: []
|
|
340
|
+
acceptance: The implementation is limited to feature scope.
|
|
341
|
+
status: pending
|
|
342
|
+
- id: FEAT-0001-T3
|
|
343
|
+
phase: testing
|
|
344
|
+
title: Validate behavior
|
|
345
|
+
description: Run targeted validation and record results in 5-quality.yaml.
|
|
346
|
+
files_touched:
|
|
347
|
+
- .sdd/active/FEAT-0001/5-quality.yaml
|
|
348
|
+
test_scripts:
|
|
349
|
+
- command: pnpm test
|
|
350
|
+
type: unit
|
|
351
|
+
expected: Tests pass.
|
|
352
|
+
acceptance: Validation evidence is recorded.
|
|
353
|
+
status: pending
|
|
354
|
+
- id: FEAT-0001-T4
|
|
355
|
+
phase: documentation
|
|
356
|
+
title: Synchronize documentation
|
|
357
|
+
description: Update README.md, AGENTS.md, .sdd/AGENT.md, and affected .sdd/core docs when behavior changes.
|
|
358
|
+
files_touched:
|
|
359
|
+
- README.md
|
|
360
|
+
- AGENTS.md
|
|
361
|
+
- .sdd/AGENT.md
|
|
362
|
+
test_scripts: []
|
|
363
|
+
acceptance: Documentation reflects the change or records no-doc-impact.
|
|
364
|
+
status: pending
|
|
365
|
+
- id: FEAT-0001-T5
|
|
366
|
+
phase: finalization
|
|
367
|
+
title: Finalize feature
|
|
368
|
+
description: Declare frontend impact, complete 5-quality.yaml evidence, and run ${CLI_NAME} sdd finalize --ref FEAT-0001.
|
|
369
|
+
files_touched:
|
|
370
|
+
- .sdd/active/FEAT-0001/5-quality.yaml
|
|
371
|
+
test_scripts:
|
|
372
|
+
- command: pnpm run build
|
|
373
|
+
type: build
|
|
374
|
+
expected: Build completes successfully.
|
|
375
|
+
acceptance: The feature finalizes cleanly.
|
|
376
|
+
status: pending
|
|
377
|
+
`;
|
|
378
|
+
export const TEMPLATE_4_CHANGELOG_MD = `schema_version: 1
|
|
379
|
+
feature_id: FEAT-0001
|
|
380
|
+
entries:
|
|
381
|
+
- timestamp: 2026-01-01T00:00:00.000Z
|
|
382
|
+
action: created
|
|
383
|
+
details: Workspace changelog initialized.
|
|
384
|
+
`;
|
|
385
|
+
//# sourceMappingURL=default-bootstrap-files.js.map
|