sddflow 2.7.74__tar.gz → 2.7.82__tar.gz
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.
- {sddflow-2.7.74 → sddflow-2.7.82}/PKG-INFO +2 -1
- {sddflow-2.7.74 → sddflow-2.7.82}/README.md +1 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/pyproject.toml +1 -1
- sddflow-2.7.82/sdd/__init__.py +1 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/commands/confluence.py +12 -11
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/commands/dashboard.py +41 -1
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/commands/review.py +3 -3
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/commands/upgrade.py +340 -0
- sddflow-2.7.82/sdd/packs/sdd-backend-service/.github/prompts/implement.prompt.md +231 -0
- sddflow-2.7.82/sdd/packs/sdd-backend-service/.github/prompts/release.prompt.md +223 -0
- {sddflow-2.7.74/sdd/packs/sdd-fullstack → sddflow-2.7.82/sdd/packs/sdd-backend-service}/.github/prompts/specify-brd.prompt.md +5 -0
- {sddflow-2.7.74/sdd/packs/sdd-fullstack → sddflow-2.7.82/sdd/packs/sdd-backend-service}/.github/prompts/specify-doc.prompt.md +22 -2
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/workflows/quality-gate.yml +16 -4
- {sddflow-2.7.74/sdd/packs/sdd-frontend-spa → sddflow-2.7.82/sdd/packs/sdd-backend-service}/.specify/integrations.yml.example +1 -1
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/manifest.yml +1 -1
- {sddflow-2.7.74/sdd/packs/sdd-universal → sddflow-2.7.82/sdd/packs/sdd-backend-service}/.specify/templates/brd-template.md +9 -4
- {sddflow-2.7.74/sdd/packs/sdd-mobile → sddflow-2.7.82/sdd/packs/sdd-backend-service}/.specify/templates/design-template.md +1 -1
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/templates/release-template.md +15 -1
- {sddflow-2.7.74/sdd/packs/sdd-universal → sddflow-2.7.82/sdd/packs/sdd-backend-service}/.specify/templates/security-design-template.md +7 -1
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/CLAUDE.md +13 -0
- sddflow-2.7.82/sdd/packs/sdd-frontend-spa/.github/prompts/implement.prompt.md +217 -0
- sddflow-2.7.82/sdd/packs/sdd-frontend-spa/.github/prompts/release.prompt.md +230 -0
- {sddflow-2.7.74/sdd/packs/sdd-backend-service → sddflow-2.7.82/sdd/packs/sdd-frontend-spa}/.github/prompts/specify-brd.prompt.md +5 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/prompts/specify-doc.prompt.md +22 -2
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/workflows/quality-gate.yml +20 -4
- {sddflow-2.7.74/sdd/packs/sdd-fullstack → sddflow-2.7.82/sdd/packs/sdd-frontend-spa}/.specify/integrations.yml.example +1 -1
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/manifest.yml +1 -1
- {sddflow-2.7.74/sdd/packs/sdd-backend-service → sddflow-2.7.82/sdd/packs/sdd-frontend-spa}/.specify/templates/brd-template.md +36 -8
- {sddflow-2.7.74/sdd/packs/sdd-fullstack → sddflow-2.7.82/sdd/packs/sdd-frontend-spa}/.specify/templates/component-spec-template.md +8 -2
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/templates/data-model-template.md +6 -0
- {sddflow-2.7.74/sdd/packs/sdd-backend-service → sddflow-2.7.82/sdd/packs/sdd-frontend-spa}/.specify/templates/design-template.md +1 -1
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/templates/release-template.md +13 -2
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/templates/runbook-template.md +7 -1
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/templates/security-design-template.md +18 -9
- sddflow-2.7.82/sdd/packs/sdd-frontend-spa/.specify/templates/ux-flow-template.md +45 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/CLAUDE.md +13 -0
- sddflow-2.7.82/sdd/packs/sdd-fullstack/.github/prompts/implement.prompt.md +219 -0
- sddflow-2.7.82/sdd/packs/sdd-fullstack/.github/prompts/release.prompt.md +230 -0
- {sddflow-2.7.74/sdd/packs/sdd-frontend-spa → sddflow-2.7.82/sdd/packs/sdd-fullstack}/.github/prompts/specify-brd.prompt.md +5 -0
- {sddflow-2.7.74/sdd/packs/sdd-mobile → sddflow-2.7.82/sdd/packs/sdd-fullstack}/.github/prompts/specify-doc.prompt.md +22 -2
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/workflows/quality-gate.yml +36 -8
- {sddflow-2.7.74/sdd/packs/sdd-backend-service → sddflow-2.7.82/sdd/packs/sdd-fullstack}/.specify/integrations.yml.example +1 -1
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/manifest.yml +1 -1
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/templates/api-spec-template.md +6 -0
- {sddflow-2.7.74/sdd/packs/sdd-mobile → sddflow-2.7.82/sdd/packs/sdd-fullstack}/.specify/templates/brd-template.md +41 -8
- {sddflow-2.7.74/sdd/packs/sdd-frontend-spa → sddflow-2.7.82/sdd/packs/sdd-fullstack}/.specify/templates/component-spec-template.md +8 -2
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/templates/data-model-template.md +6 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/templates/design-template.md +1 -1
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/templates/release-template.md +14 -1
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/templates/runbook-template.md +8 -1
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/templates/screen-spec-template.md +11 -5
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/templates/security-design-template.md +24 -15
- sddflow-2.7.82/sdd/packs/sdd-fullstack/.specify/templates/ux-flow-template.md +45 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/CLAUDE.md +13 -0
- sddflow-2.7.82/sdd/packs/sdd-mobile/.github/prompts/implement.prompt.md +217 -0
- sddflow-2.7.82/sdd/packs/sdd-mobile/.github/prompts/release.prompt.md +226 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/prompts/specify-brd.prompt.md +5 -0
- {sddflow-2.7.74/sdd/packs/sdd-backend-service → sddflow-2.7.82/sdd/packs/sdd-mobile}/.github/prompts/specify-doc.prompt.md +22 -2
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/workflows/quality-gate.yml +22 -5
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/integrations.yml.example +1 -1
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/manifest.yml +1 -1
- {sddflow-2.7.74/sdd/packs/sdd-frontend-spa → sddflow-2.7.82/sdd/packs/sdd-mobile}/.specify/templates/brd-template.md +41 -8
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/templates/data-model-template.md +6 -0
- {sddflow-2.7.74/sdd/packs/sdd-frontend-spa → sddflow-2.7.82/sdd/packs/sdd-mobile}/.specify/templates/design-template.md +1 -1
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/templates/release-template.md +13 -2
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/templates/runbook-template.md +7 -1
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/templates/screen-spec-template.md +11 -5
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/templates/security-design-template.md +18 -9
- sddflow-2.7.82/sdd/packs/sdd-mobile/.specify/templates/ux-flow-template.md +45 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/CLAUDE.md +13 -0
- sddflow-2.7.82/sdd/packs/sdd-universal/.github/prompts/implement.prompt.md +228 -0
- sddflow-2.7.82/sdd/packs/sdd-universal/.github/prompts/release.prompt.md +225 -0
- sddflow-2.7.82/sdd/packs/sdd-universal/.github/prompts/specify-brd.prompt.md +232 -0
- sddflow-2.7.82/sdd/packs/sdd-universal/.github/prompts/specify-doc.prompt.md +333 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/workflows/quality-gate.yml +16 -4
- sddflow-2.7.82/sdd/packs/sdd-universal/.specify/integrations.yml.example +483 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/manifest.yml +1 -1
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/templates/api-spec-template.md +7 -1
- sddflow-2.7.82/sdd/packs/sdd-universal/.specify/templates/brd-template.md +116 -0
- sddflow-2.7.82/sdd/packs/sdd-universal/.specify/templates/component-library-template.md +44 -0
- sddflow-2.7.82/sdd/packs/sdd-universal/.specify/templates/component-spec-template.md +60 -0
- sddflow-2.7.82/sdd/packs/sdd-universal/.specify/templates/data-model-template-frontend.md +130 -0
- sddflow-2.7.82/sdd/packs/sdd-universal/.specify/templates/data-model-template-mobile.md +160 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/templates/data-model-template.md +6 -0
- sddflow-2.7.82/sdd/packs/sdd-universal/.specify/templates/design-template.md +279 -0
- sddflow-2.7.82/sdd/packs/sdd-universal/.specify/templates/runbook-template-frontend.md +122 -0
- sddflow-2.7.82/sdd/packs/sdd-universal/.specify/templates/runbook-template-mobile.md +128 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/templates/runbook-template.md +7 -1
- sddflow-2.7.82/sdd/packs/sdd-universal/.specify/templates/screen-spec-template.md +46 -0
- sddflow-2.7.82/sdd/packs/sdd-universal/.specify/templates/security-design-template-frontend.md +127 -0
- sddflow-2.7.82/sdd/packs/sdd-universal/.specify/templates/security-design-template-mobile.md +134 -0
- {sddflow-2.7.74/sdd/packs/sdd-backend-service → sddflow-2.7.82/sdd/packs/sdd-universal}/.specify/templates/security-design-template.md +12 -9
- sddflow-2.7.82/sdd/packs/sdd-universal/.specify/templates/ux-flow-template.md +45 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/CLAUDE.md +13 -0
- sddflow-2.7.82/sdd/utils/sdd_parser.py +334 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/utils/status.py +342 -15
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/utils/validate.py +14 -0
- sddflow-2.7.74/sdd/__init__.py +0 -1
- sddflow-2.7.74/sdd/packs/sdd-backend-service/.github/prompts/implement.prompt.md +0 -104
- sddflow-2.7.74/sdd/packs/sdd-backend-service/.github/prompts/release.prompt.md +0 -100
- sddflow-2.7.74/sdd/packs/sdd-frontend-spa/.github/prompts/implement.prompt.md +0 -90
- sddflow-2.7.74/sdd/packs/sdd-frontend-spa/.github/prompts/release.prompt.md +0 -107
- sddflow-2.7.74/sdd/packs/sdd-frontend-spa/.specify/templates/ux-flow-template.md +0 -36
- sddflow-2.7.74/sdd/packs/sdd-fullstack/.github/prompts/implement.prompt.md +0 -92
- sddflow-2.7.74/sdd/packs/sdd-fullstack/.github/prompts/release.prompt.md +0 -107
- sddflow-2.7.74/sdd/packs/sdd-fullstack/.specify/templates/brd-template.md +0 -83
- sddflow-2.7.74/sdd/packs/sdd-fullstack/.specify/templates/ux-flow-template.md +0 -36
- sddflow-2.7.74/sdd/packs/sdd-mobile/.github/prompts/implement.prompt.md +0 -90
- sddflow-2.7.74/sdd/packs/sdd-mobile/.github/prompts/release.prompt.md +0 -103
- sddflow-2.7.74/sdd/packs/sdd-mobile/.specify/templates/ux-flow-template.md +0 -36
- sddflow-2.7.74/sdd/packs/sdd-universal/.github/prompts/implement.prompt.md +0 -93
- sddflow-2.7.74/sdd/packs/sdd-universal/.github/prompts/release.prompt.md +0 -102
- sddflow-2.7.74/sdd/packs/sdd-universal/.github/prompts/specify-brd.prompt.md +0 -227
- sddflow-2.7.74/sdd/packs/sdd-universal/.github/prompts/specify-doc.prompt.md +0 -313
- sddflow-2.7.74/sdd/packs/sdd-universal/.specify/integrations.yml.example +0 -483
- sddflow-2.7.74/sdd/packs/sdd-universal/.specify/templates/design-template.md +0 -279
- sddflow-2.7.74/sdd/utils/sdd_parser.py +0 -234
- {sddflow-2.7.74 → sddflow-2.7.82}/.gitignore +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/__main__.py +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/commands/__init__.py +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/commands/config.py +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/commands/cr.py +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/commands/init.py +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/commands/jira.py +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/commands/pr.py +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/commands/token_log.py +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/address-review.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/analyze.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/ava.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/bug-assess.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/bug-fix.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/change.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/check-review.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/checklist.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/clarify.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/create-context.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/implement.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/jira-push.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/kai.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/leo.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/maya.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/morgan.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/orchestrate.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/plan-adr.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/plan-arch.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/plan-design.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/plan-hld.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/plan-lld.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/pre-review.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/quinn.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/release.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/rex.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/riley.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/specify-brd.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/specify-doc.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/specify-srd.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/specify-uc.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/specify.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/start.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/submit-review.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/task.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/taskstoissues.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.claude/commands/validate.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.cursor/rules/sdd-framework.mdc +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/copilot-instructions.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/instructions/api.instructions.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/instructions/domain.instructions.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/instructions/java.instructions.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/instructions/tests.instructions.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/prompts/address-review.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/prompts/analyze.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/prompts/ava.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/prompts/bug-assess.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/prompts/bug-fix.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/prompts/change.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/prompts/check-review.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/prompts/checklist.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/prompts/clarify.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/prompts/create-context.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/prompts/jira-push.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/prompts/kai.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/prompts/leo.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/prompts/maya.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/prompts/morgan.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/prompts/orchestrate.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/prompts/plan-adr.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/prompts/plan-arch.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/prompts/plan-design.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/prompts/plan-hld.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/prompts/plan-lld.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/prompts/pre-review.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/prompts/quinn.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/prompts/rex.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/prompts/riley.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/prompts/specify-srd.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/prompts/specify-uc.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/prompts/specify.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/prompts/submit-review.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/prompts/task.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/prompts/taskstoissues.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.github/prompts/validate.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.gitignore +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.gitlab-ci.yml +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/contexts/CONTEXT-GUIDE.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/memory/change-rules.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/memory/constitution.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/memory/roles.yml +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/memory/summary-rules.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/memory/token-pricing.yml.example +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/templates/adr-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/templates/analyze-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/templates/api-spec-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/templates/arch-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/templates/changeset-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/templates/checklist-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/templates/clarify-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/templates/constitution-amendment-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/templates/context-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/templates/data-model-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/templates/docker-config-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/templates/feature-story-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/templates/hld-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/templates/investigation-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/templates/jira-export-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/templates/k8s-manifest-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/templates/lld-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/templates/openapi-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/templates/plan-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/templates/qa-testcases-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/templates/resilience-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/templates/runbook-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/templates/srd-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/templates/tasks-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/templates/token-usage-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/templates/use-cases-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.specify/templates/validate-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.vscode/extensions.json +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/.windsurfrules +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/CHANGE-GUIDE.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/CLAUDE.local.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/FLOW-ROLES-GATES.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/HOW-TO-USE.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/IMPROVEMENT-BACKLOG.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/PROMPT-GUIDE.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/QUICKSTART.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/README.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/SDLC-COMPLETE-GUIDE.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/WHY-SDD.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/azure-pipelines.yml +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/bitbucket-pipelines.yml +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/docs/SUMMARY-GUIDE.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/setup.ps1 +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-backend-service/setup.sh +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/address-review.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/analyze.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/ava.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/bug-assess.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/bug-fix.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/change.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/check-review.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/checklist.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/clarify.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/create-context.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/implement.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/jira-push.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/kai.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/leo.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/maya.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/morgan.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/orchestrate.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/plan-adr.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/plan-arch.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/plan-design.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/plan-hld.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/plan-lld.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/pre-review.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/quinn.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/release.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/rex.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/riley.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/specify-brd.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/specify-doc.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/specify-srd.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/specify-uc.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/specify.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/start.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/submit-review.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/task.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/taskstoissues.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.claude/commands/validate.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.cursor/rules/sdd-framework.mdc +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/copilot-instructions.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/instructions/components.instructions.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/instructions/services.instructions.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/instructions/tests.instructions.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/prompts/address-review.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/prompts/analyze.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/prompts/ava.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/prompts/bug-assess.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/prompts/bug-fix.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/prompts/change.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/prompts/check-review.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/prompts/checklist.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/prompts/clarify.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/prompts/create-context.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/prompts/jira-push.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/prompts/kai.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/prompts/leo.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/prompts/maya.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/prompts/morgan.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/prompts/orchestrate.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/prompts/plan-adr.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/prompts/plan-arch.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/prompts/plan-design.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/prompts/plan-hld.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/prompts/plan-lld.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/prompts/pre-review.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/prompts/quinn.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/prompts/rex.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/prompts/riley.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/prompts/specify-srd.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/prompts/specify-uc.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/prompts/specify.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/prompts/submit-review.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/prompts/task.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/prompts/taskstoissues.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.github/prompts/validate.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.gitignore +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.gitlab-ci.yml +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/contexts/CONTEXT-GUIDE.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/memory/change-rules.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/memory/constitution.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/memory/roles.yml +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/memory/summary-rules.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/memory/token-pricing.yml.example +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/templates/adr-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/templates/analyze-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/templates/api-spec-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/templates/arch-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/templates/changeset-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/templates/checklist-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/templates/clarify-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/templates/component-library-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/templates/constitution-amendment-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/templates/context-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/templates/docker-config-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/templates/feature-story-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/templates/hld-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/templates/investigation-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/templates/jira-export-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/templates/lld-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/templates/plan-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/templates/qa-testcases-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/templates/resilience-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/templates/srd-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/templates/tasks-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/templates/token-usage-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/templates/use-cases-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.specify/templates/validate-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.vscode/extensions.json +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/.windsurfrules +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/CHANGE-GUIDE.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/CLAUDE.local.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/FLOW-ROLES-GATES.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/HOW-TO-USE.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/IMPROVEMENT-BACKLOG.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/PROMPT-GUIDE.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/QUICKSTART.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/README.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/SDLC-COMPLETE-GUIDE.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/WHY-SDD.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/azure-pipelines.yml +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/bitbucket-pipelines.yml +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/docs/SUMMARY-GUIDE.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/setup.ps1 +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-frontend-spa/setup.sh +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/address-review.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/analyze.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/ava.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/bug-assess.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/bug-fix.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/change.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/check-review.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/checklist.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/clarify.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/create-context.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/implement.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/jira-push.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/kai.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/leo.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/maya.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/morgan.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/orchestrate.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/plan-adr.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/plan-arch.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/plan-design.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/plan-hld.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/plan-lld.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/pre-review.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/quinn.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/release.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/rex.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/riley.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/specify-brd.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/specify-doc.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/specify-srd.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/specify-uc.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/specify.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/start.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/submit-review.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/task.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/taskstoissues.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.claude/commands/validate.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.cursor/rules/sdd-framework.mdc +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/copilot-instructions.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/instructions/backend-tests.instructions.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/instructions/components.instructions.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/instructions/domain.instructions.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/instructions/frontend-services.instructions.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/instructions/java.instructions.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/prompts/address-review.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/prompts/analyze.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/prompts/ava.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/prompts/bug-assess.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/prompts/bug-fix.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/prompts/change.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/prompts/check-review.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/prompts/checklist.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/prompts/clarify.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/prompts/create-context.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/prompts/jira-push.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/prompts/kai.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/prompts/leo.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/prompts/maya.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/prompts/morgan.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/prompts/orchestrate.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/prompts/plan-adr.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/prompts/plan-arch.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/prompts/plan-design.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/prompts/plan-hld.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/prompts/plan-lld.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/prompts/pre-review.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/prompts/quinn.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/prompts/rex.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/prompts/riley.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/prompts/specify-srd.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/prompts/specify-uc.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/prompts/specify.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/prompts/submit-review.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/prompts/task.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/prompts/taskstoissues.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.github/prompts/validate.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.gitignore +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.gitlab-ci.yml +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/contexts/CONTEXT-GUIDE.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/memory/change-rules.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/memory/constitution.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/memory/roles.yml +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/memory/summary-rules.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/memory/token-pricing.yml.example +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/templates/adr-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/templates/analyze-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/templates/arch-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/templates/changeset-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/templates/checklist-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/templates/clarify-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/templates/component-library-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/templates/constitution-amendment-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/templates/context-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/templates/docker-config-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/templates/feature-story-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/templates/hld-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/templates/investigation-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/templates/jira-export-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/templates/lld-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/templates/openapi-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/templates/plan-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/templates/qa-testcases-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/templates/resilience-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/templates/srd-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/templates/tasks-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/templates/token-usage-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/templates/use-cases-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.specify/templates/validate-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.vscode/extensions.json +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/.windsurfrules +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/CHANGE-GUIDE.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/CLAUDE.local.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/FLOW-ROLES-GATES.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/HOW-TO-USE.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/PROMPT-GUIDE.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/QUICKSTART.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/README.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/SDLC-COMPLETE-GUIDE.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/WHY-SDD.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/azure-pipelines.yml +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/bitbucket-pipelines.yml +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/docs/SUMMARY-GUIDE.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/setup.ps1 +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-fullstack/setup.sh +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-micro/.claude/commands/create-context.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-micro/.claude/commands/implement.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-micro/.claude/commands/specify.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-micro/.claude/commands/start.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-micro/.claude/commands/task.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-micro/.cursor/rules/sdd-framework.mdc +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-micro/.github/copilot-instructions.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-micro/.github/prompts/create-context.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-micro/.github/prompts/implement.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-micro/.github/prompts/specify.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-micro/.github/prompts/task.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-micro/.specify/contexts/CONTEXT-GUIDE.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-micro/.specify/manifest.yml +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-micro/.specify/memory/constitution.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-micro/.specify/templates/context-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-micro/.specify/templates/tasks-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-micro/.windsurfrules +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-micro/CLAUDE.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-micro/QUICKSTART.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-micro/README.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-micro/WHY-SDD.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-micro/setup.ps1 +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-micro/setup.sh +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/address-review.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/analyze.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/ava.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/bug-assess.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/bug-fix.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/change.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/check-review.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/checklist.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/clarify.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/create-context.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/implement.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/jira-push.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/kai.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/leo.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/maya.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/morgan.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/orchestrate.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/plan-adr.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/plan-arch.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/plan-design.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/plan-hld.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/plan-lld.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/pre-review.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/quinn.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/release.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/rex.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/riley.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/specify-brd.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/specify-doc.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/specify-srd.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/specify-uc.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/specify.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/start.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/submit-review.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/task.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/taskstoissues.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.claude/commands/validate.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.cursor/rules/sdd-framework.mdc +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/copilot-instructions.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/instructions/screens.instructions.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/instructions/services.instructions.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/instructions/tests.instructions.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/prompts/address-review.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/prompts/analyze.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/prompts/ava.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/prompts/bug-assess.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/prompts/bug-fix.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/prompts/change.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/prompts/check-review.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/prompts/checklist.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/prompts/clarify.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/prompts/create-context.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/prompts/jira-push.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/prompts/kai.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/prompts/leo.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/prompts/maya.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/prompts/morgan.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/prompts/orchestrate.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/prompts/plan-adr.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/prompts/plan-arch.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/prompts/plan-design.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/prompts/plan-hld.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/prompts/plan-lld.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/prompts/pre-review.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/prompts/quinn.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/prompts/rex.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/prompts/riley.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/prompts/specify-srd.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/prompts/specify-uc.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/prompts/specify.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/prompts/submit-review.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/prompts/task.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/prompts/taskstoissues.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.github/prompts/validate.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.gitignore +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.gitlab-ci.yml +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/contexts/CONTEXT-GUIDE.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/memory/change-rules.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/memory/constitution.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/memory/roles.yml +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/memory/summary-rules.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/memory/token-pricing.yml.example +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/templates/adr-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/templates/analyze-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/templates/api-spec-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/templates/arch-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/templates/changeset-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/templates/checklist-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/templates/clarify-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/templates/constitution-amendment-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/templates/context-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/templates/docker-config-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/templates/feature-story-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/templates/hld-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/templates/investigation-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/templates/jira-export-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/templates/lld-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/templates/plan-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/templates/qa-testcases-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/templates/resilience-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/templates/srd-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/templates/tasks-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/templates/token-usage-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/templates/use-cases-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.specify/templates/validate-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.vscode/extensions.json +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/.windsurfrules +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/CHANGE-GUIDE.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/CLAUDE.local.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/FLOW-ROLES-GATES.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/HOW-TO-USE.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/IMPROVEMENT-BACKLOG.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/PROMPT-GUIDE.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/QUICKSTART.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/README.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/SDLC-COMPLETE-GUIDE.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/WHY-SDD.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/azure-pipelines.yml +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/bitbucket-pipelines.yml +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/docs/SUMMARY-GUIDE.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/setup.ps1 +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-mobile/setup.sh +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/address-review.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/analyze.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/ava.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/bug-assess.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/bug-fix.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/change.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/check-review.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/checklist.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/clarify.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/create-context.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/implement.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/jira-push.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/kai.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/leo.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/maya.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/morgan.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/orchestrate.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/plan-adr.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/plan-arch.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/plan-design.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/plan-hld.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/plan-lld.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/pre-review.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/quinn.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/release.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/rex.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/riley.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/specify-brd.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/specify-doc.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/specify-srd.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/specify-uc.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/specify.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/start.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/submit-review.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/task.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/taskstoissues.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.claude/commands/validate.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.cursor/rules/sdd-framework.mdc +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/copilot-instructions.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/instructions/domain.instructions.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/instructions/entrypoints.instructions.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/instructions/tests.instructions.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/prompts/address-review.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/prompts/analyze.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/prompts/ava.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/prompts/bug-assess.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/prompts/bug-fix.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/prompts/change.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/prompts/check-review.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/prompts/checklist.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/prompts/clarify.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/prompts/create-context.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/prompts/jira-push.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/prompts/kai.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/prompts/leo.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/prompts/maya.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/prompts/morgan.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/prompts/orchestrate.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/prompts/plan-adr.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/prompts/plan-arch.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/prompts/plan-design.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/prompts/plan-hld.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/prompts/plan-lld.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/prompts/pre-review.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/prompts/quinn.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/prompts/rex.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/prompts/riley.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/prompts/specify-srd.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/prompts/specify-uc.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/prompts/specify.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/prompts/submit-review.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/prompts/task.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/prompts/taskstoissues.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.github/prompts/validate.prompt.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.gitignore +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.gitlab-ci.yml +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/contexts/CONTEXT-GUIDE.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/memory/change-rules.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/memory/constitution.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/memory/roles.yml +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/memory/summary-rules.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/memory/token-pricing.yml.example +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/templates/adr-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/templates/analyze-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/templates/arch-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/templates/changeset-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/templates/checklist-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/templates/clarify-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/templates/constitution-amendment-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/templates/context-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/templates/docker-config-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/templates/feature-story-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/templates/hld-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/templates/investigation-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/templates/jira-export-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/templates/k8s-manifest-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/templates/lld-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/templates/openapi-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/templates/plan-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/templates/qa-testcases-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/templates/release-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/templates/resilience-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/templates/srd-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/templates/tasks-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/templates/token-usage-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/templates/use-cases-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.specify/templates/validate-template.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.vscode/extensions.json +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/.windsurfrules +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/CHANGE-GUIDE.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/CLAUDE.local.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/FLOW-ROLES-GATES.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/HOW-TO-USE.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/IMPROVEMENT-BACKLOG.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/PROMPT-GUIDE.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/QUICKSTART.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/README.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/SDLC-COMPLETE-GUIDE.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/WHY-SDD.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/azure-pipelines.yml +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/bitbucket-pipelines.yml +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/docs/SUMMARY-GUIDE.md +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/setup.ps1 +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/packs/sdd-universal/setup.sh +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/utils/__init__.py +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/utils/atlassian_auth.py +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/utils/cf_to_md.py +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/utils/claude_code_transcript.py +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/utils/confluence_client.py +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/utils/dashboard_comments.py +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/utils/detect.py +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/utils/git_host.py +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/utils/integrations.py +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/utils/jira_client.py +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/utils/manifest.py +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/utils/md_to_cf.py +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/utils/mermaid_render.py +0 -0
- {sddflow-2.7.74 → sddflow-2.7.82}/sdd/utils/scaffold.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sddflow
|
|
3
|
-
Version: 2.7.
|
|
3
|
+
Version: 2.7.82
|
|
4
4
|
Summary: SDD Framework CLI — initialize and upgrade Spec-Driven Development packs
|
|
5
5
|
Project-URL: Homepage, https://github.com/sunil1983us/universalguide
|
|
6
6
|
Project-URL: Repository, https://github.com/sunil1983us/universalguide
|
|
@@ -574,6 +574,7 @@ Shows, per feature under `.specify/features/`:
|
|
|
574
574
|
BRD"), which would misleadingly suggest the doc doesn't exist yet.
|
|
575
575
|
sdd-micro has no Virtual Team, so none of this ever appears there.
|
|
576
576
|
- **Documents** — every generated doc and its `Status:` (Draft/Approved/etc.), with a best-effort "what's next" guess, including the same persona ask shown on the Full Pipeline's Next box when the next doc has an owner. Each doc has a **View** button that reads the raw `.md` straight from disk into the page — no need to leave the browser to check content.
|
|
577
|
+
- **Business Objectives** — chains `brd.md` §2 Business Objectives → §5's `Serves BO` column → `srd.md`'s Functional Requirements → `tasks.md`'s completion status, so each `BO-NNN` shows which `UC-NNN`s implement it and how much of that work is actually done (0% → Not Started, partial → In Progress, 100% → Done). Shown per-feature, plus a **cross-feature rollup card** above all the feature blocks — "of these business objectives across all features, which are met, which are pending, and where." Empty until `brd.md` §5 rows cite a `Serves BO`.
|
|
577
578
|
- **Tasks** — parsed from `tasks.md` (works with both the full packs' checkbox-based tasks and sdd-micro's `**Status:**` field)
|
|
578
579
|
- **Token Usage** — the running totals from `token-usage.md`, if token usage logging is enabled for that feature
|
|
579
580
|
- **Jira Export** — the Epic/Story/Task links from the progressive export (`docs/jira/{feature}/keys.yml`), if you've run `/jira-push` or `sdd jira push`
|
|
@@ -539,6 +539,7 @@ Shows, per feature under `.specify/features/`:
|
|
|
539
539
|
BRD"), which would misleadingly suggest the doc doesn't exist yet.
|
|
540
540
|
sdd-micro has no Virtual Team, so none of this ever appears there.
|
|
541
541
|
- **Documents** — every generated doc and its `Status:` (Draft/Approved/etc.), with a best-effort "what's next" guess, including the same persona ask shown on the Full Pipeline's Next box when the next doc has an owner. Each doc has a **View** button that reads the raw `.md` straight from disk into the page — no need to leave the browser to check content.
|
|
542
|
+
- **Business Objectives** — chains `brd.md` §2 Business Objectives → §5's `Serves BO` column → `srd.md`'s Functional Requirements → `tasks.md`'s completion status, so each `BO-NNN` shows which `UC-NNN`s implement it and how much of that work is actually done (0% → Not Started, partial → In Progress, 100% → Done). Shown per-feature, plus a **cross-feature rollup card** above all the feature blocks — "of these business objectives across all features, which are met, which are pending, and where." Empty until `brd.md` §5 rows cite a `Serves BO`.
|
|
542
543
|
- **Tasks** — parsed from `tasks.md` (works with both the full packs' checkbox-based tasks and sdd-micro's `**Status:**` field)
|
|
543
544
|
- **Token Usage** — the running totals from `token-usage.md`, if token usage logging is enabled for that feature
|
|
544
545
|
- **Jira Export** — the Epic/Story/Task links from the progressive export (`docs/jira/{feature}/keys.yml`), if you've run `/jira-push` or `sdd jira push`
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "2.7.82"
|
|
@@ -10,7 +10,7 @@ from sdd.utils.confluence_client import ConfluenceClient
|
|
|
10
10
|
from sdd.utils.md_to_cf import md_to_storage
|
|
11
11
|
from sdd.utils.cf_to_md import cf_to_md
|
|
12
12
|
from sdd.utils.manifest import read_manifest
|
|
13
|
-
from sdd.utils.validate import resolve_doc_path, LIVING_SERVICE_DOCS
|
|
13
|
+
from sdd.utils.validate import resolve_doc_path, LIVING_SERVICE_DOCS, PROJECT_SCOPED_DOCS
|
|
14
14
|
|
|
15
15
|
console = Console()
|
|
16
16
|
|
|
@@ -63,11 +63,11 @@ def resolve_feature_parent_id(client: ConfluenceClient, cf_cfg, project_name: st
|
|
|
63
63
|
|
|
64
64
|
def resolve_doc_parent_id(client: ConfluenceClient, cf_cfg, project_name: str,
|
|
65
65
|
feature_name: str, doc: str) -> str:
|
|
66
|
-
"""Like resolve_feature_parent_id(), except living/service-level docs
|
|
67
|
-
|
|
68
|
-
Project page instead of a Feature page, since they're
|
|
69
|
-
every feature, not per-feature."""
|
|
70
|
-
if doc in
|
|
66
|
+
"""Like resolve_feature_parent_id(), except living/service-level docs,
|
|
67
|
+
"constitution", and "runbook" (PROJECT_SCOPED_DOCS) nest directly
|
|
68
|
+
under the Project page instead of a Feature page, since they're
|
|
69
|
+
shared across every feature, not per-feature."""
|
|
70
|
+
if doc in PROJECT_SCOPED_DOCS:
|
|
71
71
|
return _ensure_container_page(client, cf_cfg.space_key, project_name, cf_cfg.parent_page_id)
|
|
72
72
|
return resolve_feature_parent_id(client, cf_cfg, project_name, feature_name)
|
|
73
73
|
|
|
@@ -122,10 +122,11 @@ def _resolve_page_title(doc: str, project_name: str, feature: str,
|
|
|
122
122
|
page_map: dict) -> str:
|
|
123
123
|
"""Build the Confluence page title for a doc key.
|
|
124
124
|
|
|
125
|
-
Living/service-level docs
|
|
126
|
-
|
|
127
|
-
the
|
|
128
|
-
|
|
125
|
+
Living/service-level docs and "runbook" (PROJECT_SCOPED_DOCS, minus
|
|
126
|
+
"constitution" which is handled separately above) always resolve to
|
|
127
|
+
ONE page for the whole project — {feature} is stripped even if
|
|
128
|
+
present in the template, since these documents are shared across
|
|
129
|
+
every feature, never per-feature.
|
|
129
130
|
|
|
130
131
|
Per-feature docs substitute {feature} into the title ONLY if the
|
|
131
132
|
user's own page_map template contains that placeholder. This is
|
|
@@ -143,7 +144,7 @@ def _resolve_page_title(doc: str, project_name: str, feature: str,
|
|
|
143
144
|
return _CONSTITUTION_PAGE_TITLE.replace("{project}", project_name)
|
|
144
145
|
template = page_map.get(doc, f"{{project}} — {doc.upper()}")
|
|
145
146
|
title = template.replace("{project}", project_name)
|
|
146
|
-
if doc in LIVING_SERVICE_DOCS:
|
|
147
|
+
if doc in LIVING_SERVICE_DOCS or doc == "runbook":
|
|
147
148
|
title = title.replace(" — {feature}", "").replace("{feature}", "")
|
|
148
149
|
return title.strip().rstrip("—").strip()
|
|
149
150
|
return title.replace("{feature}", feature)
|
|
@@ -350,6 +350,44 @@ function renderTasks(tasks) {
|
|
|
350
350
|
`;
|
|
351
351
|
}
|
|
352
352
|
|
|
353
|
+
function renderBusinessObjectives(bos, opts) {
|
|
354
|
+
opts = opts || {};
|
|
355
|
+
if (!bos || bos.length === 0) {
|
|
356
|
+
return '<div class="empty">No BO-NNN rows in brd.md yet, or its Business Requirements section doesn’t cite a Serves BO column.</div>';
|
|
357
|
+
}
|
|
358
|
+
const rows = bos.map(bo => {
|
|
359
|
+
const ucCell = (bo.uc_ids && bo.uc_ids.length) ? escapeHtml(bo.uc_ids.join(', ')) : '<span class="sub">none linked</span>';
|
|
360
|
+
const progressCell = bo.task_count
|
|
361
|
+
? `${bo.percent_done}% <span class="sub">(${bo.tasks_done}/${bo.task_count})</span>`
|
|
362
|
+
: '<span class="sub">no tasks linked</span>';
|
|
363
|
+
const featureCell = opts.showFeature
|
|
364
|
+
? `<td><a href="#${featureAnchorId(bo.feature)}">${escapeHtml(bo.feature)}</a></td>`
|
|
365
|
+
: '';
|
|
366
|
+
return `
|
|
367
|
+
<tr>
|
|
368
|
+
<td>${bo.bo_id}</td>
|
|
369
|
+
<td>${escapeHtml(bo.objective)}${bo.metric ? `<div class="sub">${escapeHtml(bo.metric)}</div>` : ''}</td>
|
|
370
|
+
${featureCell}
|
|
371
|
+
<td>${ucCell}</td>
|
|
372
|
+
<td>${badge(bo.status, 'task')}</td>
|
|
373
|
+
<td>${progressCell}</td>
|
|
374
|
+
</tr>`;
|
|
375
|
+
}).join('');
|
|
376
|
+
const featureHeader = opts.showFeature ? '<th>Feature</th>' : '';
|
|
377
|
+
return `
|
|
378
|
+
<table><thead><tr><th>BO</th><th>Objective</th>${featureHeader}<th>Use Cases</th><th>Status</th><th>Progress</th></tr></thead><tbody>${rows}</tbody></table>`;
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
function renderBusinessObjectivesOverview(businessObjectives) {
|
|
382
|
+
if (!businessObjectives || businessObjectives.length === 0) return '';
|
|
383
|
+
return `
|
|
384
|
+
<div class="card card-wide" style="margin-bottom:1.5rem">
|
|
385
|
+
<h2>Business Objectives</h2>
|
|
386
|
+
<div class="sub" style="margin-bottom:.5rem">Rolled up from each feature's brd.md (§2 Business Objectives → §5 Serves BO) through srd.md and tasks.md — which use cases implement each objective, and how much of that work is done.</div>
|
|
387
|
+
${renderBusinessObjectives(businessObjectives, {showFeature: true})}
|
|
388
|
+
</div>`;
|
|
389
|
+
}
|
|
390
|
+
|
|
353
391
|
function linkPill(kind, link) {
|
|
354
392
|
if (!link) return '';
|
|
355
393
|
if (link.error) return `<span class="pill pill-bad" title="${escapeHtml(link.error)}">${kind} ⚠</span>`;
|
|
@@ -673,6 +711,7 @@ function renderFeature(f, project) {
|
|
|
673
711
|
<div class="grid feature-grid">
|
|
674
712
|
<div class="card card-wide"><h2>Full Pipeline</h2>${renderPipelineFlow(f, project)}</div>
|
|
675
713
|
<div class="card card-wide"><h2>Documents</h2>${renderDocs(f.docs, f.current_stage, f.name, local.confluence, local.jira_review)}</div>
|
|
714
|
+
<div class="card card-wide"><h2>Business Objectives</h2>${renderBusinessObjectives(f.business_objectives)}</div>
|
|
676
715
|
<div class="card"><h2>Tasks</h2>${renderTasks(f.tasks)}</div>
|
|
677
716
|
<div class="card"><h2>Token Usage</h2>${renderTokenUsage(f.token_usage)}</div>
|
|
678
717
|
<div class="card"><h2>Jira Export</h2>${renderJiraExport(local.jira, exportEntry)}</div>
|
|
@@ -712,6 +751,7 @@ function render() {
|
|
|
712
751
|
const data = lastData;
|
|
713
752
|
document.getElementById('generated-at').textContent = 'Generated ' + data.generated_at;
|
|
714
753
|
const overview = renderFeatureOverview(data.features);
|
|
754
|
+
const boOverview = renderBusinessObjectivesOverview(data.business_objectives);
|
|
715
755
|
const features = data.features.length
|
|
716
756
|
? data.features.map(f => renderFeature(f, data.project)).join('')
|
|
717
757
|
: '<div class="empty">No features under .specify/features/ yet — run <code>/specify</code> (or <code>sdd specify</code>) to create your first one.</div>';
|
|
@@ -737,7 +777,7 @@ function render() {
|
|
|
737
777
|
};
|
|
738
778
|
}
|
|
739
779
|
|
|
740
|
-
root.innerHTML = renderProject(data.project, data.constitution) + overview + features;
|
|
780
|
+
root.innerHTML = renderProject(data.project, data.constitution) + overview + boOverview + features;
|
|
741
781
|
|
|
742
782
|
if (focus) {
|
|
743
783
|
const selector = `.${focus.cls}[data-feature="${CSS.escape(focus.feature)}"][data-doc="${CSS.escape(focus.doc)}"]`;
|
|
@@ -14,7 +14,7 @@ from sdd.utils.confluence_client import ConfluenceClient
|
|
|
14
14
|
from sdd.utils.md_to_cf import md_to_storage
|
|
15
15
|
from sdd.utils.manifest import read_manifest
|
|
16
16
|
from sdd.utils.status import persona_for
|
|
17
|
-
from sdd.utils.validate import resolve_doc_path,
|
|
17
|
+
from sdd.utils.validate import resolve_doc_path, PROJECT_SCOPED_DOCS
|
|
18
18
|
from sdd.utils.dashboard_comments import unacknowledged, acknowledge
|
|
19
19
|
|
|
20
20
|
console = Console()
|
|
@@ -52,10 +52,10 @@ def _is_locally_approved(doc: str) -> bool:
|
|
|
52
52
|
def _doc_md_path(doc: str, feature: str | None) -> Path | None:
|
|
53
53
|
"""Resolve the on-disk path for a doc key, or None if unresolvable.
|
|
54
54
|
|
|
55
|
-
"constitution" and living/service-level docs (data-model,
|
|
55
|
+
"constitution", "runbook", and living/service-level docs (data-model,
|
|
56
56
|
security-design, api-spec) resolve to a fixed path regardless of
|
|
57
57
|
feature. Everything else resolves to .specify/features/{feature}/{doc}.md."""
|
|
58
|
-
if doc
|
|
58
|
+
if doc in PROJECT_SCOPED_DOCS:
|
|
59
59
|
return resolve_doc_path(doc, "")
|
|
60
60
|
manifest = read_manifest() or {}
|
|
61
61
|
proj = manifest.get("project") or {}
|
|
@@ -2880,6 +2880,346 @@ MIGRATIONS = [
|
|
|
2880
2880
|
],
|
|
2881
2881
|
"migrate": lambda m: {**m, "sdd_version": "2.7.74"},
|
|
2882
2882
|
},
|
|
2883
|
+
{
|
|
2884
|
+
"from": "2.7.74",
|
|
2885
|
+
"to": "2.7.75",
|
|
2886
|
+
"description": "Fix: sdd_parser.py never matched the actual shipped stories.md/tasks.md templates -- sdd jira push and sdd pr create --task silently found zero stories/tasks for every real generated feature",
|
|
2887
|
+
"notes": [
|
|
2888
|
+
"Found while helping a user debug why 'sdd jira push' created "
|
|
2889
|
+
"nothing even after fixing Jira/Confluence credentials -- "
|
|
2890
|
+
"traced it to sdd_parser.py's regexes expecting a heading/"
|
|
2891
|
+
"field format ('### STORY-NNN — Title' em-dash, "
|
|
2892
|
+
"'**As a**'/'**Satisfies:**' bold fields, '## TASK-NNN' H2) "
|
|
2893
|
+
"that the shipped feature-story-template.md/tasks-template.md "
|
|
2894
|
+
"have not used for some time (they use '### STORY-NNN: "
|
|
2895
|
+
"Title' colon, '**As**'/'**Linked FRs:**' for stories, and "
|
|
2896
|
+
"'### TASK-NNN' H3 with entirely plain/unbolded fields for "
|
|
2897
|
+
"tasks) -- parse_stories()/parse_tasks() returned an empty "
|
|
2898
|
+
"list for every correctly-generated document",
|
|
2899
|
+
"This silently broke 'sdd jira push --level story/task' "
|
|
2900
|
+
"(reported 'No stories or tasks found') and 'sdd pr create "
|
|
2901
|
+
"--task TASK-NNN' (reported 'TASK-NNN not found in "
|
|
2902
|
+
"tasks.md') for every project using the current templates "
|
|
2903
|
+
"-- both are on the framework's golden path",
|
|
2904
|
+
"sdd_parser.py rewritten to match the current templates "
|
|
2905
|
+
"while still accepting the older em-dash/bold-field style "
|
|
2906
|
+
"found in this repo's own worked examples, so already-"
|
|
2907
|
+
"generated docs in either style parse correctly",
|
|
2908
|
+
"Also fixed: _normalize_moscow() required an exact 'must "
|
|
2909
|
+
"have' string match, but the shipped template's bucket "
|
|
2910
|
+
"headers are 'Must Have Stories' (trailing word) -- every "
|
|
2911
|
+
"story silently fell through to the could-have default, "
|
|
2912
|
+
"mapping every Jira Story to Low priority regardless of "
|
|
2913
|
+
"its actual MoSCoW bucket",
|
|
2914
|
+
"New golden-template tests parse the actual shipped "
|
|
2915
|
+
"feature-story-template.md/tasks-template.md files directly "
|
|
2916
|
+
"(not just hand-written fixtures) so a future template edit "
|
|
2917
|
+
"that breaks the parser fails CI instead of shipping silently "
|
|
2918
|
+
"broken again",
|
|
2919
|
+
"This migration only bumps sdd_version -- no manifest.yml "
|
|
2920
|
+
"field changes for any pack",
|
|
2921
|
+
],
|
|
2922
|
+
"migrate": lambda m: {**m, "sdd_version": "2.7.75"},
|
|
2923
|
+
},
|
|
2924
|
+
{
|
|
2925
|
+
"from": "2.7.75",
|
|
2926
|
+
"to": "2.7.76",
|
|
2927
|
+
"description": "Fix: /release and /implement's runbook never went through Jira/Confluence review despite document_reviews.runbook/.release being fully documented and configurable",
|
|
2928
|
+
"notes": [
|
|
2929
|
+
"Prompted by a user asking for a full audit of every pipeline "
|
|
2930
|
+
"step's Jira/Confluence coverage, after the sdd_parser.py fix "
|
|
2931
|
+
"above -- release.prompt.md had ZERO Jira/Confluence wiring "
|
|
2932
|
+
"for release.md (only an informal chat sign-off), and "
|
|
2933
|
+
"implement.prompt.md never submitted the runbook "
|
|
2934
|
+
"(docs/runbook/local-setup.md) for review at all -- not even "
|
|
2935
|
+
"chat-mode approval -- despite CLAUDE.md's own Jira-mode "
|
|
2936
|
+
"sequence table documenting 'release phase: Runbook -> "
|
|
2937
|
+
"Release, reviewer: DevOps -> Release Manager' and the "
|
|
2938
|
+
"shipped integrations.yml.example already configuring both "
|
|
2939
|
+
"document_reviews.runbook and .release with sequence numbers",
|
|
2940
|
+
"Backend bug found in the same sweep: resolve_doc_path() had "
|
|
2941
|
+
"no case for 'runbook' -- 'sdd review submit --doc runbook' "
|
|
2942
|
+
"would have resolved to the nonexistent "
|
|
2943
|
+
".specify/features/{feature}/runbook.md instead of the real "
|
|
2944
|
+
"docs/runbook/local-setup.md, and confluence.py's page-"
|
|
2945
|
+
"nesting/title logic didn't treat 'runbook' as project-"
|
|
2946
|
+
"scoped (living) the way data-model/security-design/api-spec/"
|
|
2947
|
+
"constitution already are -- new PROJECT_SCOPED_DOCS constant "
|
|
2948
|
+
"in validate.py fixes both",
|
|
2949
|
+
"release.prompt.md and implement.prompt.md now submit "
|
|
2950
|
+
"release.md/runbook.md through the same Submit-for-Review + "
|
|
2951
|
+
"review-decision-step flow every other document uses, across "
|
|
2952
|
+
"all 5 packs",
|
|
2953
|
+
"integrations.yml.example's page_map.release entry was also "
|
|
2954
|
+
"commented out by default even though document_reviews.release "
|
|
2955
|
+
"was already active -- a user copying the example as-is would "
|
|
2956
|
+
"have hit a missing-page_map-entry error the first time this "
|
|
2957
|
+
"new wiring ran; uncommented to match runbook's existing "
|
|
2958
|
+
"active entry",
|
|
2959
|
+
"This migration only bumps sdd_version -- no manifest.yml "
|
|
2960
|
+
"field changes for any pack",
|
|
2961
|
+
],
|
|
2962
|
+
"migrate": lambda m: {**m, "sdd_version": "2.7.76"},
|
|
2963
|
+
},
|
|
2964
|
+
{
|
|
2965
|
+
"from": "2.7.76",
|
|
2966
|
+
"to": "2.7.77",
|
|
2967
|
+
"description": "Fix: self-approval risk undocumented, coverage gate was a bare echo, no test caught either -- verified all three with grep before fixing, per external review of the sdd_parser.py/release.md audit",
|
|
2968
|
+
"notes": [
|
|
2969
|
+
"An external agent reviewed the two prior fixes (sdd_parser.py, "
|
|
2970
|
+
"release.md/runbook wiring) and raised several concerns. "
|
|
2971
|
+
"Re-checked every claim with grep/read against the actual "
|
|
2972
|
+
"repo instead of accepting either the review's or this "
|
|
2973
|
+
"agent's own prior assessment on faith -- some held up, some "
|
|
2974
|
+
"didn't (e.g. the review's '245 tests' figure was stale; "
|
|
2975
|
+
"actual count was 592 at the time). Three confirmed, real "
|
|
2976
|
+
"gaps were fixed",
|
|
2977
|
+
"review-gates.md now explicitly states the self-approval "
|
|
2978
|
+
"risk in chat mode: nothing stops the same conversation that "
|
|
2979
|
+
"drafted a document from also being the one that approves "
|
|
2980
|
+
"it -- no independent reviewer identity check exists. This "
|
|
2981
|
+
"was previously only implicit in the scope-based mode "
|
|
2982
|
+
"guidance",
|
|
2983
|
+
"quality-gate.yml's 'Enforce coverage gate' step was a bare "
|
|
2984
|
+
"`echo` in every pack (confirmed by reading the actual "
|
|
2985
|
+
"workflow file) -- it always printed a success-sounding "
|
|
2986
|
+
"message regardless of whether coverage was configured at "
|
|
2987
|
+
"all. Replaced with a real tripwire: the step now greps "
|
|
2988
|
+
"pom.xml for jacoco-maven-plugin's <rules> block (Java packs) "
|
|
2989
|
+
"or vitest/jest config for coverageThreshold/thresholds (Node "
|
|
2990
|
+
"packs), and fails the CI job with actionable guidance if "
|
|
2991
|
+
"the configuration is missing -- across all 5 packs, "
|
|
2992
|
+
"including fullstack's separate backend+frontend jobs",
|
|
2993
|
+
"New test_prompt_review_coverage.py: for every doc key with "
|
|
2994
|
+
"an active document_reviews entry in the shipped "
|
|
2995
|
+
"integrations.yml.example, asserts the owning .prompt.md "
|
|
2996
|
+
"file actually contains a 'sdd review submit --doc {key}' "
|
|
2997
|
+
"call, across all 5 packs (56 cases). This is the cheap, "
|
|
2998
|
+
"buildable version of 'run the pipeline against a mocked "
|
|
2999
|
+
"Jira/Confluence' -- prompts are AI instructions, not "
|
|
3000
|
+
"executable code, so a structural presence check is what's "
|
|
3001
|
+
"actually feasible in CI. Verified by temporarily reverting "
|
|
3002
|
+
"release.prompt.md to its pre-fix state and confirming the "
|
|
3003
|
+
"new test fails exactly where the real bug was, then passes "
|
|
3004
|
+
"again once restored",
|
|
3005
|
+
"This migration only bumps sdd_version -- no manifest.yml "
|
|
3006
|
+
"field changes for any pack",
|
|
3007
|
+
],
|
|
3008
|
+
"migrate": lambda m: {**m, "sdd_version": "2.7.77"},
|
|
3009
|
+
},
|
|
3010
|
+
{
|
|
3011
|
+
"from": "2.7.77",
|
|
3012
|
+
"to": "2.7.78",
|
|
3013
|
+
"description": "Fix: sdd-universal missing UI templates, brd-template.md drift, design-template.md numbering gap -- template quality review found real gaps beyond docs/CI",
|
|
3014
|
+
"notes": [
|
|
3015
|
+
"sdd-universal was missing ux-flow-template.md, "
|
|
3016
|
+
"screen-spec-template.md, component-spec-template.md, and "
|
|
3017
|
+
"component-library-template.md even though its own "
|
|
3018
|
+
"specify-doc.prompt.md documents /specify-doc "
|
|
3019
|
+
"component-spec|ux-flow|screen-spec as valid commands and "
|
|
3020
|
+
"reads .specify/templates/{doc}-template.md directly -- a "
|
|
3021
|
+
"broken reference for exactly the mobile/frontend project "
|
|
3022
|
+
"types sdd-universal auto-detects. Added all four",
|
|
3023
|
+
"ux-flow-template.md, screen-spec-template.md, and "
|
|
3024
|
+
"component-spec-template.md had no ID scheme or Version "
|
|
3025
|
+
"History table, unlike every other template in the system. "
|
|
3026
|
+
"Added FLOW/ERR/EDGE-NNN, SCR-NNN, and COMP-NNN respectively, "
|
|
3027
|
+
"plus Version History to all three. Enrolled into "
|
|
3028
|
+
"_shared/full/ since they were already byte-identical across "
|
|
3029
|
+
"every pack that ships them",
|
|
3030
|
+
"brd-template.md had drifted uncoordinated: sdd-universal's "
|
|
3031
|
+
"copy had a Section 9 Investment Summary and domain-aware "
|
|
3032
|
+
"regulation pre-seeding (PCI/HIPAA/GDPR) the other four packs "
|
|
3033
|
+
"(byte-identical to each other) never received. Unlike "
|
|
3034
|
+
"api-spec/data-model/security-design/runbook -- which "
|
|
3035
|
+
"legitimately vary by project type -- BRD content has no "
|
|
3036
|
+
"such reason to differ. Enrolled into _shared/full/ using "
|
|
3037
|
+
"sdd-universal's fuller version as canonical",
|
|
3038
|
+
"design-template.md Section 3 skipped from 3.2 to 3.5 with "
|
|
3039
|
+
"no 3.3/3.4 content anywhere in the file -- renumbered to "
|
|
3040
|
+
"3.3",
|
|
3041
|
+
"Known gaps NOT fixed in this pass: sdd-universal's "
|
|
3042
|
+
"specify-doc.prompt.md has no project-type branching for "
|
|
3043
|
+
"which flavor of data-model/security-design template to use "
|
|
3044
|
+
"(a detected frontend/mobile project would get the "
|
|
3045
|
+
"DB-schema/server-side flavor); sdd-universal's api-spec, "
|
|
3046
|
+
"data-model, runbook, and openapi templates are each missing "
|
|
3047
|
+
"content sdd-backend-service's same-flavor copies already "
|
|
3048
|
+
"have; security-design-template.md has a structural (not "
|
|
3049
|
+
"content) mismatch between backend and universal",
|
|
3050
|
+
"This migration only bumps sdd_version -- no manifest.yml "
|
|
3051
|
+
"field changes for any pack",
|
|
3052
|
+
],
|
|
3053
|
+
"migrate": lambda m: {**m, "sdd_version": "2.7.78"},
|
|
3054
|
+
},
|
|
3055
|
+
{
|
|
3056
|
+
"from": "2.7.78",
|
|
3057
|
+
"to": "2.7.79",
|
|
3058
|
+
"description": "Fix: runbook-template.md missing living-doc framing in 4 packs, security-design/data-model/api-spec inconsistencies across packs, release-template.md pilot-scope broken rollback reference, sdd-universal had no project-type flavor branching for data-model/security/runbook",
|
|
3059
|
+
"notes": [
|
|
3060
|
+
"runbook-template.md was missing its 'Living artifact' framing "
|
|
3061
|
+
"paragraph and used '# Feature: {Feature Name}' instead of "
|
|
3062
|
+
"'# Service:'/'# App:' in frontend-spa, mobile, fullstack, and "
|
|
3063
|
+
"sdd-universal (only sdd-backend-service had it correct) -- an "
|
|
3064
|
+
"agent following the template literally would treat the "
|
|
3065
|
+
"runbook as a fresh per-feature doc instead of extending the "
|
|
3066
|
+
"living one, silently dropping a prior feature's additions. "
|
|
3067
|
+
"Fixed all four",
|
|
3068
|
+
"security-design-template.md was inconsistent across packs: "
|
|
3069
|
+
"only sdd-backend-service had a Version History table; only "
|
|
3070
|
+
"sdd-universal had the CVSS scoring column and the 2-row "
|
|
3071
|
+
"Security Officer/Tech Lead Approvals table. Reconciled all "
|
|
3072
|
+
"five packs to have all three",
|
|
3073
|
+
"data-model-template.md and api-spec-template.md were missing "
|
|
3074
|
+
"Version History tables in sdd-universal (both docs) and "
|
|
3075
|
+
"sdd-fullstack (api-spec only). Added. Also fixed "
|
|
3076
|
+
"sdd-universal's api-spec-template.md References row, which "
|
|
3077
|
+
"cited 'arch.summary.md ... ports/adapters' -- leftover text "
|
|
3078
|
+
"that didn't match how api-spec.md is actually fed (per "
|
|
3079
|
+
"plan-design.prompt.md Section 3: design.summary.md, which "
|
|
3080
|
+
"feature added/changed which endpoints)",
|
|
3081
|
+
"release-template.md Section 7 Rollback Plan pointed to "
|
|
3082
|
+
"docs/runbook/local-setup.md in sdd-backend-service, "
|
|
3083
|
+
"frontend-spa, mobile, and fullstack even at pilot scope, "
|
|
3084
|
+
"where the runbook is never generated -- a broken reference. "
|
|
3085
|
+
"Backported sdd-universal's pilot-scope fallback rollback "
|
|
3086
|
+
"table (already correct there) to all four packs, plus two "
|
|
3087
|
+
"extra Post-Deploy Smoke Test monitoring rows sdd-universal "
|
|
3088
|
+
"already had",
|
|
3089
|
+
"sdd-universal's specify-doc.prompt.md read one single "
|
|
3090
|
+
"template flavor for data-model and security-design "
|
|
3091
|
+
"regardless of detected project_type -- a frontend-spa or "
|
|
3092
|
+
"mobile project would get the DB-schema/server-side flavor "
|
|
3093
|
+
"instead of state/storage-model or local-cache-model content. "
|
|
3094
|
+
"Added project_type branching (frontend-spa/desktop -> "
|
|
3095
|
+
"*-template-frontend.md, mobile -> *-template-mobile.md, "
|
|
3096
|
+
"else -> default) to the shared specify-doc.prompt.md source "
|
|
3097
|
+
"(safe no-op for the other four packs, which have no "
|
|
3098
|
+
"project_type field) and shipped the new frontend/mobile "
|
|
3099
|
+
"flavor template files for sdd-universal. Same fix applied to "
|
|
3100
|
+
"runbook generation in implement.prompt.md",
|
|
3101
|
+
"Verified: sync-blocks.sh clean, cli-python pytest 648/648, "
|
|
3102
|
+
"assert-output.sh 33/33 on both worked examples, setup smoke "
|
|
3103
|
+
"tests 15/15",
|
|
3104
|
+
],
|
|
3105
|
+
"migrate": lambda m: {**m, "sdd_version": "2.7.79"},
|
|
3106
|
+
},
|
|
3107
|
+
{
|
|
3108
|
+
"from": "2.7.79",
|
|
3109
|
+
"to": "2.7.80",
|
|
3110
|
+
"description": "Fix: data-model-template.md missing Version History in frontend-spa/mobile/fullstack, security-design-template.md STRIDE column wording inconsistency in sdd-universal -- found while verifying the v2.7.79 fix batch's own consistency",
|
|
3111
|
+
"notes": [
|
|
3112
|
+
"data-model-template.md was missing '## Version History' in "
|
|
3113
|
+
"sdd-frontend-spa, sdd-mobile, and sdd-fullstack -- only "
|
|
3114
|
+
"sdd-backend-service and (as of 2.7.79) sdd-universal had it. "
|
|
3115
|
+
"Found because sdd-universal's new data-model-template-frontend.md/"
|
|
3116
|
+
"-mobile.md flavor files (copied verbatim from those packs' own "
|
|
3117
|
+
"templates) diffed non-empty against their source -- the "
|
|
3118
|
+
"source packs were the ones missing content, not the copies. "
|
|
3119
|
+
"Added Version History to all three",
|
|
3120
|
+
"security-design-template.md's STRIDE threat table column was "
|
|
3121
|
+
"'Threat (STRIDE)' in sdd-universal but 'Threat (STRIDE "
|
|
3122
|
+
"category)' in the other four packs -- pre-existing wording "
|
|
3123
|
+
"drift, not something the 2.7.79 CVSS-column fix introduced. "
|
|
3124
|
+
"Normalized sdd-universal to match",
|
|
3125
|
+
"Verified: sync-blocks.sh clean, cli-python pytest 648/648, "
|
|
3126
|
+
"assert-output.sh 33/33",
|
|
3127
|
+
],
|
|
3128
|
+
"migrate": lambda m: {**m, "sdd_version": "2.7.80"},
|
|
3129
|
+
},
|
|
3130
|
+
{
|
|
3131
|
+
"from": "2.7.80",
|
|
3132
|
+
"to": "2.7.81",
|
|
3133
|
+
"description": "Fix: sdd-micro/setup.sh had zero test coverage -- test-setup.sh only ever tested sdd-universal's setup.sh (hardcoded PACK_DIR); no manifest.yml field changes for any pack, including sdd-micro (this is a CI/test-harness fix, not a pack-content change)",
|
|
3134
|
+
"notes": [
|
|
3135
|
+
"Found while reviewing sdd-micro end-to-end: "
|
|
3136
|
+
"packs/_shared/tests/test-setup.sh's own header says 'Smoke "
|
|
3137
|
+
"tests for sdd-universal/setup.sh' and hardcodes "
|
|
3138
|
+
"PACK_DIR=packs/sdd-universal -- sdd-micro/setup.sh (a "
|
|
3139
|
+
"materially different script: --project/--feature only, no "
|
|
3140
|
+
"--type/--scope, its own non-interactive default fallback to "
|
|
3141
|
+
"'untitled-project'/'main') was never exercised by CI despite "
|
|
3142
|
+
"root CLAUDE.md describing the smoke-test suite as covering "
|
|
3143
|
+
"'injection-class names, all project types, and "
|
|
3144
|
+
"non-interactive execution' in a way that read as a blanket "
|
|
3145
|
+
"guarantee",
|
|
3146
|
+
"Added packs/_shared/tests/test-setup-micro.sh, mirroring "
|
|
3147
|
+
"test-setup.sh's ok()/nok() structure and covering the same "
|
|
3148
|
+
"injection classes (quotes, backslash, ampersand, slash, "
|
|
3149
|
+
"unicode) plus two cases specific to this script: the "
|
|
3150
|
+
"no-args non-interactive default path, and the 'unknown "
|
|
3151
|
+
"option' rejection (sdd-micro's setup.sh has no --type flag, "
|
|
3152
|
+
"unlike sdd-universal's)",
|
|
3153
|
+
"Wired into .github/workflows/ci.yml's existing "
|
|
3154
|
+
"setup-smoke-tests job as a second step, and documented in "
|
|
3155
|
+
"root CLAUDE.md's Testing Setup Scripts section",
|
|
3156
|
+
"Verified the new test actually has teeth: temporarily "
|
|
3157
|
+
"disabled sdd-micro/setup.sh's double-quote validation guard, "
|
|
3158
|
+
"confirmed the 2 double-quote-rejection cases failed as "
|
|
3159
|
+
"expected (exit 1), then restored the original file (git "
|
|
3160
|
+
"diff clean) and re-ran clean (12/12)",
|
|
3161
|
+
"Deliberately kept sdd-micro's own manifest.yml sdd_version "
|
|
3162
|
+
"untouched (still 2.7.41) -- this fix only adds test/CI "
|
|
3163
|
+
"infrastructure in this repo, it does not change any file "
|
|
3164
|
+
"sdd-micro itself ships to a user's project via `sdd init "
|
|
3165
|
+
"--pack sdd-micro`",
|
|
3166
|
+
],
|
|
3167
|
+
"migrate": lambda m: {**m, "sdd_version": "2.7.81"},
|
|
3168
|
+
},
|
|
3169
|
+
{
|
|
3170
|
+
"from": "2.7.81",
|
|
3171
|
+
"to": "2.7.82",
|
|
3172
|
+
"description": "Feature: Business Objectives traceability + dashboard rollup -- brd.md's Business Objectives (§2) and Business Requirements (§5) were previously unlinked siblings; adds a 'Serves BO' column to §5 and rolls BO -> BR -> FR -> TASK up into a per-feature and cross-feature Business Objectives view in `sdd dashboard`",
|
|
3173
|
+
"notes": [
|
|
3174
|
+
"Added 'Serves BO' column to brd-template.md's §5 Business "
|
|
3175
|
+
"Requirements table (all 5 non-micro packs) -- every BR-NNN "
|
|
3176
|
+
"must now cite which BO-NNN from §2 it serves. Updated "
|
|
3177
|
+
"specify-brd.prompt.md with fill instructions",
|
|
3178
|
+
"Added status.py parsers: _parse_brd_bo (brd.md §2/§5, "
|
|
3179
|
+
"tolerant of 3- or 4-column Business Objectives tables and "
|
|
3180
|
+
"legacy 'Satisfies' column headers), _parse_uc_traces "
|
|
3181
|
+
"(use-cases.md Use Case Index table, falls back to scanning "
|
|
3182
|
+
"narrative '### UC-NNN' sections' '**Trace:**'/'**BR "
|
|
3183
|
+
"Traces:**' lines when no Index table exists), _parse_srd_fr "
|
|
3184
|
+
"(srd.md Functional Requirements table, tolerant of the "
|
|
3185
|
+
"5-column canonical shape and a 4-column 'Satisfies' "
|
|
3186
|
+
"variant, plus §4 Use Case Coverage as a UC-link fallback)",
|
|
3187
|
+
"Added build_bo_rollup(): chains BO -> BR (brd.md 'Serves "
|
|
3188
|
+
"BO') -> FR (srd.md 'Source'/'Satisfies', the reliable "
|
|
3189
|
+
"bridge since use-cases.md's FR Traces column is only "
|
|
3190
|
+
"backfilled by a manual /specify-srd re-run and is often "
|
|
3191
|
+
"skipped in practice) -> TASK (tasks.md 'Satisfies:' field + "
|
|
3192
|
+
"completion status). UC-NNN is gathered from both "
|
|
3193
|
+
"use-cases.md and srd.md for display, but status/percent-done "
|
|
3194
|
+
"is computed from the BR->FR->TASK bridge only",
|
|
3195
|
+
"Wired into build_feature_status() (per-feature "
|
|
3196
|
+
"'business_objectives' key) and build_project_status() (flat "
|
|
3197
|
+
"cross-feature 'business_objectives' list, each row tagged "
|
|
3198
|
+
"with its feature name -- BO-NNN numbering is local to each "
|
|
3199
|
+
"feature's brd.md, same as the existing Actor Registry "
|
|
3200
|
+
"pattern)",
|
|
3201
|
+
"Added a 'Business Objectives' card to `sdd dashboard`: a "
|
|
3202
|
+
"cross-feature rollup card (BO, Objective, Feature, Use "
|
|
3203
|
+
"Cases, Status, Progress) shown above the per-feature blocks, "
|
|
3204
|
+
"plus a per-feature card in each feature's block",
|
|
3205
|
+
"Status computed by task completion percentage (0 done -> "
|
|
3206
|
+
"Not Started, some done or in-progress -> In Progress, all "
|
|
3207
|
+
"done -> Done), not release.md's BO closure field -- picked "
|
|
3208
|
+
"so the dashboard reflects live task state rather than a "
|
|
3209
|
+
"field only updated at /release time",
|
|
3210
|
+
"Verified end-to-end against examples/todo-api's real "
|
|
3211
|
+
"brd.md/use-cases.md/srd.md/tasks.md (which deviate from the "
|
|
3212
|
+
"raw templates in exactly the ways the tolerant parsing "
|
|
3213
|
+
"above accounts for) via the dashboard's live HTTP server, "
|
|
3214
|
+
"screenshotted in both light and dark mode",
|
|
3215
|
+
"Added 20 pytest cases covering 3-vs-4-column BO tables, "
|
|
3216
|
+
"legacy 'Satisfies' headers, unfilled template placeholders, "
|
|
3217
|
+
"the Use Case Index fallback, orphaned BRs, and the flattened "
|
|
3218
|
+
"cross-feature rollup",
|
|
3219
|
+
"Verified: sync-blocks.sh clean, cli-python pytest 664/664",
|
|
3220
|
+
],
|
|
3221
|
+
"migrate": lambda m: {**m, "sdd_version": "2.7.82"},
|
|
3222
|
+
},
|
|
2883
3223
|
]
|
|
2884
3224
|
|
|
2885
3225
|
|