sddflow 2.7.58__tar.gz → 2.7.59__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.58 → sddflow-2.7.59}/PKG-INFO +1 -1
- {sddflow-2.7.58 → sddflow-2.7.59}/pyproject.toml +1 -1
- sddflow-2.7.59/sdd/__init__.py +1 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/commands/dashboard.py +1 -1
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/commands/review.py +102 -39
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/commands/upgrade.py +36 -0
- {sddflow-2.7.58/sdd/packs/sdd-frontend-spa → sddflow-2.7.59/sdd/packs/sdd-backend-service}/.specify/integrations.yml.example +7 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/manifest.yml +1 -1
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/HOW-TO-USE.md +4 -0
- {sddflow-2.7.58/sdd/packs/sdd-fullstack → sddflow-2.7.59/sdd/packs/sdd-frontend-spa}/.specify/integrations.yml.example +7 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/manifest.yml +1 -1
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/HOW-TO-USE.md +4 -0
- {sddflow-2.7.58/sdd/packs/sdd-backend-service → sddflow-2.7.59/sdd/packs/sdd-fullstack}/.specify/integrations.yml.example +7 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/manifest.yml +1 -1
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/HOW-TO-USE.md +4 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/integrations.yml.example +7 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/manifest.yml +1 -1
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/HOW-TO-USE.md +4 -0
- sddflow-2.7.59/sdd/packs/sdd-universal/.specify/integrations.yml.example +464 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/manifest.yml +1 -1
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/HOW-TO-USE.md +4 -0
- sddflow-2.7.58/sdd/__init__.py +0 -1
- sddflow-2.7.58/sdd/packs/sdd-universal/.specify/integrations.yml.example +0 -457
- {sddflow-2.7.58 → sddflow-2.7.59}/.gitignore +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/README.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/__main__.py +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/commands/__init__.py +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/commands/config.py +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/commands/confluence.py +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/commands/cr.py +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/commands/init.py +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/commands/jira.py +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/commands/pr.py +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/address-review.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/analyze.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/ava.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/bug-assess.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/bug-fix.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/change.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/check-review.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/checklist.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/clarify.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/create-context.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/implement.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/jira-push.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/kai.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/leo.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/maya.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/morgan.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/orchestrate.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/plan-adr.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/plan-arch.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/plan-design.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/plan-hld.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/plan-lld.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/pre-review.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/quinn.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/release.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/rex.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/riley.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/specify-brd.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/specify-doc.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/specify-srd.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/specify-uc.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/specify.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/start.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/submit-review.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/task.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/taskstoissues.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/validate.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.cursor/rules/sdd-framework.mdc +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/copilot-instructions.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/instructions/api.instructions.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/instructions/domain.instructions.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/instructions/java.instructions.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/instructions/tests.instructions.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/address-review.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/analyze.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/ava.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/bug-assess.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/bug-fix.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/change.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/check-review.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/checklist.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/clarify.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/create-context.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/implement.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/jira-push.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/kai.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/leo.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/maya.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/morgan.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/orchestrate.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/plan-adr.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/plan-arch.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/plan-design.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/plan-hld.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/plan-lld.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/pre-review.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/quinn.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/release.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/rex.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/riley.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/specify-brd.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/specify-doc.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/specify-srd.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/specify-uc.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/specify.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/submit-review.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/task.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/taskstoissues.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/validate.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/workflows/quality-gate.yml +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.gitignore +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.gitlab-ci.yml +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/contexts/CONTEXT-GUIDE.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/memory/change-rules.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/memory/constitution.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/memory/roles.yml +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/memory/summary-rules.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/memory/token-pricing.yml.example +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/adr-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/analyze-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/api-spec-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/arch-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/brd-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/changeset-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/checklist-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/clarify-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/constitution-amendment-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/context-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/data-model-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/design-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/docker-config-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/feature-story-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/hld-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/investigation-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/jira-export-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/k8s-manifest-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/lld-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/openapi-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/plan-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/qa-testcases-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/release-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/resilience-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/runbook-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/security-design-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/srd-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/tasks-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/token-usage-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/use-cases-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/validate-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.vscode/extensions.json +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.windsurfrules +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/CHANGE-GUIDE.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/CLAUDE.local.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/CLAUDE.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/FLOW-ROLES-GATES.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/IMPROVEMENT-BACKLOG.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/PROMPT-GUIDE.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/QUICKSTART.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/README.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/SDLC-COMPLETE-GUIDE.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/WHY-SDD.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/azure-pipelines.yml +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/bitbucket-pipelines.yml +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/docs/SUMMARY-GUIDE.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/setup.ps1 +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/setup.sh +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/address-review.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/analyze.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/ava.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/bug-assess.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/bug-fix.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/change.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/check-review.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/checklist.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/clarify.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/create-context.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/implement.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/jira-push.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/kai.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/leo.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/maya.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/morgan.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/orchestrate.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/plan-adr.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/plan-arch.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/plan-design.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/plan-hld.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/plan-lld.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/pre-review.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/quinn.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/release.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/rex.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/riley.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/specify-brd.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/specify-doc.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/specify-srd.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/specify-uc.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/specify.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/start.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/submit-review.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/task.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/taskstoissues.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/validate.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.cursor/rules/sdd-framework.mdc +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/copilot-instructions.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/instructions/components.instructions.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/instructions/services.instructions.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/instructions/tests.instructions.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/address-review.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/analyze.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/ava.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/bug-assess.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/bug-fix.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/change.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/check-review.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/checklist.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/clarify.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/create-context.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/implement.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/jira-push.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/kai.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/leo.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/maya.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/morgan.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/orchestrate.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/plan-adr.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/plan-arch.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/plan-design.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/plan-hld.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/plan-lld.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/pre-review.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/quinn.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/release.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/rex.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/riley.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/specify-brd.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/specify-doc.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/specify-srd.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/specify-uc.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/specify.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/submit-review.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/task.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/taskstoissues.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/validate.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/workflows/quality-gate.yml +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.gitignore +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.gitlab-ci.yml +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/contexts/CONTEXT-GUIDE.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/memory/change-rules.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/memory/constitution.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/memory/roles.yml +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/memory/summary-rules.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/memory/token-pricing.yml.example +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/adr-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/analyze-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/api-spec-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/arch-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/brd-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/changeset-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/checklist-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/clarify-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/component-library-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/component-spec-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/constitution-amendment-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/context-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/data-model-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/design-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/docker-config-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/feature-story-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/hld-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/investigation-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/jira-export-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/lld-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/plan-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/qa-testcases-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/release-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/resilience-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/runbook-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/security-design-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/srd-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/tasks-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/token-usage-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/use-cases-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/ux-flow-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/validate-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.vscode/extensions.json +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.windsurfrules +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/CHANGE-GUIDE.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/CLAUDE.local.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/CLAUDE.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/FLOW-ROLES-GATES.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/IMPROVEMENT-BACKLOG.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/PROMPT-GUIDE.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/QUICKSTART.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/README.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/SDLC-COMPLETE-GUIDE.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/WHY-SDD.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/azure-pipelines.yml +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/bitbucket-pipelines.yml +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/docs/SUMMARY-GUIDE.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/setup.ps1 +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/setup.sh +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/address-review.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/analyze.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/ava.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/bug-assess.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/bug-fix.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/change.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/check-review.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/checklist.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/clarify.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/create-context.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/implement.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/jira-push.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/kai.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/leo.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/maya.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/morgan.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/orchestrate.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/plan-adr.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/plan-arch.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/plan-design.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/plan-hld.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/plan-lld.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/pre-review.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/quinn.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/release.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/rex.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/riley.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/specify-brd.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/specify-doc.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/specify-srd.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/specify-uc.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/specify.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/start.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/submit-review.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/task.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/taskstoissues.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/validate.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.cursor/rules/sdd-framework.mdc +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/copilot-instructions.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/instructions/backend-tests.instructions.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/instructions/components.instructions.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/instructions/domain.instructions.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/instructions/frontend-services.instructions.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/instructions/java.instructions.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/address-review.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/analyze.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/ava.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/bug-assess.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/bug-fix.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/change.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/check-review.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/checklist.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/clarify.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/create-context.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/implement.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/jira-push.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/kai.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/leo.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/maya.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/morgan.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/orchestrate.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/plan-adr.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/plan-arch.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/plan-design.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/plan-hld.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/plan-lld.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/pre-review.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/quinn.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/release.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/rex.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/riley.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/specify-brd.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/specify-doc.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/specify-srd.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/specify-uc.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/specify.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/submit-review.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/task.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/taskstoissues.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/validate.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/workflows/quality-gate.yml +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.gitignore +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.gitlab-ci.yml +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/contexts/CONTEXT-GUIDE.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/memory/change-rules.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/memory/constitution.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/memory/roles.yml +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/memory/summary-rules.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/memory/token-pricing.yml.example +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/adr-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/analyze-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/api-spec-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/arch-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/brd-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/changeset-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/checklist-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/clarify-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/component-library-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/component-spec-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/constitution-amendment-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/context-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/data-model-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/design-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/docker-config-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/feature-story-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/hld-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/investigation-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/jira-export-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/lld-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/openapi-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/plan-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/qa-testcases-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/release-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/resilience-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/runbook-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/screen-spec-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/security-design-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/srd-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/tasks-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/token-usage-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/use-cases-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/ux-flow-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/validate-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.vscode/extensions.json +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.windsurfrules +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/CHANGE-GUIDE.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/CLAUDE.local.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/CLAUDE.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/FLOW-ROLES-GATES.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/PROMPT-GUIDE.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/QUICKSTART.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/README.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/SDLC-COMPLETE-GUIDE.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/WHY-SDD.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/azure-pipelines.yml +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/bitbucket-pipelines.yml +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/docs/SUMMARY-GUIDE.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/setup.ps1 +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/setup.sh +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-micro/.claude/commands/create-context.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-micro/.claude/commands/implement.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-micro/.claude/commands/specify.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-micro/.claude/commands/start.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-micro/.claude/commands/task.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-micro/.cursor/rules/sdd-framework.mdc +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-micro/.github/copilot-instructions.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-micro/.github/prompts/create-context.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-micro/.github/prompts/implement.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-micro/.github/prompts/specify.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-micro/.github/prompts/task.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-micro/.specify/contexts/CONTEXT-GUIDE.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-micro/.specify/manifest.yml +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-micro/.specify/memory/constitution.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-micro/.specify/templates/context-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-micro/.specify/templates/tasks-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-micro/.windsurfrules +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-micro/CLAUDE.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-micro/QUICKSTART.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-micro/README.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-micro/WHY-SDD.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-micro/setup.ps1 +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-micro/setup.sh +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/address-review.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/analyze.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/ava.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/bug-assess.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/bug-fix.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/change.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/check-review.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/checklist.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/clarify.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/create-context.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/implement.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/jira-push.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/kai.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/leo.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/maya.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/morgan.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/orchestrate.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/plan-adr.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/plan-arch.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/plan-design.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/plan-hld.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/plan-lld.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/pre-review.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/quinn.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/release.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/rex.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/riley.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/specify-brd.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/specify-doc.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/specify-srd.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/specify-uc.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/specify.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/start.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/submit-review.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/task.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/taskstoissues.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/validate.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.cursor/rules/sdd-framework.mdc +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/copilot-instructions.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/instructions/screens.instructions.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/instructions/services.instructions.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/instructions/tests.instructions.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/address-review.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/analyze.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/ava.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/bug-assess.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/bug-fix.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/change.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/check-review.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/checklist.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/clarify.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/create-context.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/implement.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/jira-push.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/kai.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/leo.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/maya.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/morgan.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/orchestrate.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/plan-adr.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/plan-arch.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/plan-design.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/plan-hld.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/plan-lld.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/pre-review.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/quinn.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/release.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/rex.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/riley.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/specify-brd.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/specify-doc.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/specify-srd.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/specify-uc.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/specify.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/submit-review.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/task.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/taskstoissues.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/validate.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/workflows/quality-gate.yml +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.gitignore +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.gitlab-ci.yml +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/contexts/CONTEXT-GUIDE.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/memory/change-rules.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/memory/constitution.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/memory/roles.yml +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/memory/summary-rules.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/memory/token-pricing.yml.example +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/adr-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/analyze-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/api-spec-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/arch-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/brd-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/changeset-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/checklist-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/clarify-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/constitution-amendment-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/context-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/data-model-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/design-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/docker-config-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/feature-story-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/hld-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/investigation-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/jira-export-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/lld-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/plan-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/qa-testcases-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/release-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/resilience-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/runbook-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/screen-spec-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/security-design-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/srd-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/tasks-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/token-usage-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/use-cases-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/ux-flow-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/validate-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.vscode/extensions.json +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.windsurfrules +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/CHANGE-GUIDE.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/CLAUDE.local.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/CLAUDE.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/FLOW-ROLES-GATES.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/IMPROVEMENT-BACKLOG.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/PROMPT-GUIDE.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/QUICKSTART.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/README.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/SDLC-COMPLETE-GUIDE.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/WHY-SDD.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/azure-pipelines.yml +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/bitbucket-pipelines.yml +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/docs/SUMMARY-GUIDE.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/setup.ps1 +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-mobile/setup.sh +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/address-review.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/analyze.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/ava.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/bug-assess.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/bug-fix.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/change.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/check-review.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/checklist.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/clarify.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/create-context.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/implement.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/jira-push.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/kai.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/leo.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/maya.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/morgan.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/orchestrate.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/plan-adr.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/plan-arch.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/plan-design.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/plan-hld.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/plan-lld.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/pre-review.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/quinn.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/release.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/rex.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/riley.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/specify-brd.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/specify-doc.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/specify-srd.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/specify-uc.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/specify.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/start.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/submit-review.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/task.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/taskstoissues.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/validate.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.cursor/rules/sdd-framework.mdc +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/copilot-instructions.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/instructions/domain.instructions.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/instructions/entrypoints.instructions.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/instructions/tests.instructions.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/address-review.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/analyze.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/ava.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/bug-assess.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/bug-fix.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/change.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/check-review.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/checklist.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/clarify.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/create-context.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/implement.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/jira-push.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/kai.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/leo.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/maya.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/morgan.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/orchestrate.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/plan-adr.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/plan-arch.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/plan-design.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/plan-hld.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/plan-lld.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/pre-review.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/quinn.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/release.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/rex.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/riley.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/specify-brd.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/specify-doc.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/specify-srd.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/specify-uc.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/specify.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/submit-review.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/task.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/taskstoissues.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/validate.prompt.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/workflows/quality-gate.yml +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.gitignore +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.gitlab-ci.yml +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/contexts/CONTEXT-GUIDE.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/memory/change-rules.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/memory/constitution.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/memory/roles.yml +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/memory/summary-rules.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/memory/token-pricing.yml.example +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/adr-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/analyze-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/api-spec-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/arch-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/brd-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/changeset-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/checklist-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/clarify-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/constitution-amendment-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/context-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/data-model-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/design-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/docker-config-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/feature-story-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/hld-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/investigation-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/jira-export-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/k8s-manifest-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/lld-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/openapi-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/plan-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/qa-testcases-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/release-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/resilience-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/runbook-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/security-design-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/srd-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/tasks-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/token-usage-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/use-cases-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/validate-template.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.vscode/extensions.json +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/.windsurfrules +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/CHANGE-GUIDE.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/CLAUDE.local.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/CLAUDE.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/FLOW-ROLES-GATES.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/IMPROVEMENT-BACKLOG.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/PROMPT-GUIDE.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/QUICKSTART.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/README.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/SDLC-COMPLETE-GUIDE.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/WHY-SDD.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/azure-pipelines.yml +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/bitbucket-pipelines.yml +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/docs/SUMMARY-GUIDE.md +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/setup.ps1 +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/packs/sdd-universal/setup.sh +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/utils/__init__.py +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/utils/atlassian_auth.py +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/utils/cf_to_md.py +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/utils/confluence_client.py +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/utils/dashboard_comments.py +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/utils/detect.py +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/utils/git_host.py +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/utils/integrations.py +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/utils/jira_client.py +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/utils/manifest.py +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/utils/md_to_cf.py +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/utils/mermaid_render.py +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/utils/scaffold.py +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/utils/sdd_parser.py +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/utils/status.py +0 -0
- {sddflow-2.7.58 → sddflow-2.7.59}/sdd/utils/validate.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.59
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "2.7.59"
|
|
@@ -682,7 +682,7 @@ def _fetch_review_links(feature: str) -> dict:
|
|
|
682
682
|
try:
|
|
683
683
|
issue = jira_client.find_by_label(cfg.jira.key_for("review"), f"sdd-doc:{feature}:{doc_key}")
|
|
684
684
|
if issue:
|
|
685
|
-
review_status, comments = _get_review_status(
|
|
685
|
+
review_status, comments, _ = _get_review_status(
|
|
686
686
|
doc_key, jira_client, cfg.jira.key_for("review"), cfg, feature,
|
|
687
687
|
)
|
|
688
688
|
entry["jira"] = {
|
|
@@ -115,13 +115,40 @@ def _mark_md_approved(md_path: Path) -> bool:
|
|
|
115
115
|
return True
|
|
116
116
|
|
|
117
117
|
|
|
118
|
-
def
|
|
119
|
-
"""
|
|
118
|
+
def _jira_status_banner(issue_key: str, issue_url: str, status: str, role: str) -> str:
|
|
119
|
+
"""Confluence storage-format panel summarizing the Jira review ticket's
|
|
120
|
+
link and current status, prepended to the page body on every push so a
|
|
121
|
+
reviewer can see review state without leaving Confluence."""
|
|
122
|
+
macro_type = {"APPROVED": "success", "NEEDS_REVISION": "warning"}.get(status, "info")
|
|
123
|
+
label = {
|
|
124
|
+
"APPROVED": "Approved",
|
|
125
|
+
"NEEDS_REVISION": "Needs Revision",
|
|
126
|
+
"PENDING": "Pending review",
|
|
127
|
+
}.get(status, status)
|
|
128
|
+
return (
|
|
129
|
+
f'<ac:structured-macro ac:name="{macro_type}">'
|
|
130
|
+
f'<ac:rich-text-body><p>'
|
|
131
|
+
f'<strong>Jira review:</strong> '
|
|
132
|
+
f'<a href="{issue_url}">{issue_key}</a> — <strong>{label}</strong>'
|
|
133
|
+
f' (assigned: {role})'
|
|
134
|
+
f'</p></ac:rich-text-body>'
|
|
135
|
+
f'</ac:structured-macro>'
|
|
136
|
+
)
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
def _push_doc_page(doc: str, md_path: Path, feature_name: str) -> tuple[str, str] | None:
|
|
140
|
+
"""Upsert the document's Confluence page so it reflects the current .md.
|
|
120
141
|
|
|
121
|
-
Returns
|
|
122
|
-
configured. Raises on push errors — callers decide how fatal that
|
|
123
|
-
Page title resolution matches `sdd review submit`: document_reviews
|
|
124
|
-
first, then the confluence page_map, then a sensible default.
|
|
142
|
+
Returns (page_title, page_url) on success, or None when Confluence is
|
|
143
|
+
not configured. Raises on push errors — callers decide how fatal that
|
|
144
|
+
is. Page title resolution matches `sdd review submit`: document_reviews
|
|
145
|
+
entry first, then the confluence page_map, then a sensible default.
|
|
146
|
+
|
|
147
|
+
When a Jira review ticket already exists for this doc (jira: configured
|
|
148
|
+
and document_reviews has an entry for it), a status banner linking to
|
|
149
|
+
that ticket is prepended to the page body -- this is what lets a
|
|
150
|
+
reviewer see the Jira link + current status directly on Confluence
|
|
151
|
+
instead of having to check Jira separately."""
|
|
125
152
|
try:
|
|
126
153
|
cfg = load_integrations()
|
|
127
154
|
except FileNotFoundError:
|
|
@@ -147,16 +174,33 @@ def _push_doc_page(doc: str, md_path: Path, feature_name: str) -> str | None:
|
|
|
147
174
|
prof = load_profile(cfg.profile)
|
|
148
175
|
session = build_session(prof)
|
|
149
176
|
cf_client = ConfluenceClient(session, prof.base_url)
|
|
177
|
+
|
|
178
|
+
banner = ""
|
|
179
|
+
if cfg.jira and doc in cfg.document_reviews:
|
|
180
|
+
try:
|
|
181
|
+
jira_client = JiraClient(session, prof.base_url)
|
|
182
|
+
status, _, issue = _get_review_status(
|
|
183
|
+
doc, jira_client, cfg.jira.key_for("review"), cfg, feature_name,
|
|
184
|
+
)
|
|
185
|
+
if issue:
|
|
186
|
+
issue_url = f"{prof.base_url}/browse/{issue['key']}"
|
|
187
|
+
banner = _jira_status_banner(
|
|
188
|
+
issue["key"], issue_url, status, cfg.document_reviews[doc].reviewer_role,
|
|
189
|
+
)
|
|
190
|
+
except Exception:
|
|
191
|
+
pass # banner is a best-effort addition -- never blocks the page push itself
|
|
192
|
+
|
|
150
193
|
body_html, attachments, diagram_warnings = md_to_storage(md_path.read_text(), cfg.confluence.diagrams)
|
|
151
194
|
from sdd.commands.confluence import resolve_doc_parent_id, upload_diagram_attachments
|
|
152
195
|
parent_id = resolve_doc_parent_id(cf_client, cfg.confluence, project_name, feature_name, doc)
|
|
153
196
|
page, _created = cf_client.upsert_page(
|
|
154
|
-
cfg.confluence.space_key, title, body_html, parent_id,
|
|
197
|
+
cfg.confluence.space_key, title, banner + body_html, parent_id,
|
|
155
198
|
)
|
|
156
199
|
upload_diagram_attachments(cf_client, page["id"], attachments)
|
|
157
200
|
for w in diagram_warnings:
|
|
158
201
|
console.print(f" [yellow]! {w}[/yellow]")
|
|
159
|
-
|
|
202
|
+
page_url = f"{prof.base_url}/wiki{page.get('_links', {}).get('webui', '')}"
|
|
203
|
+
return title, page_url
|
|
160
204
|
|
|
161
205
|
|
|
162
206
|
# ── Text extraction ────────────────────────────────────────────────────────────
|
|
@@ -231,29 +275,32 @@ def _get_review_status(
|
|
|
231
275
|
project_key: str,
|
|
232
276
|
cfg: IntegrationsConfig,
|
|
233
277
|
feature_name: str,
|
|
234
|
-
) -> tuple[str, list[dict]]:
|
|
235
|
-
"""Return (status, comments).
|
|
278
|
+
) -> tuple[str, list[dict], dict | None]:
|
|
279
|
+
"""Return (status, comments, issue).
|
|
236
280
|
status: APPROVED | NEEDS_REVISION | PENDING | NOT_SUBMITTED
|
|
281
|
+
issue is the raw Jira issue dict (or None if never submitted) -- callers
|
|
282
|
+
that also need the issue key/link (e.g. the Confluence status banner)
|
|
283
|
+
reuse this instead of a second find_by_label lookup.
|
|
237
284
|
|
|
238
285
|
Label is feature-qualified — must match the label `review_submit` writes,
|
|
239
286
|
or a submitted review would never be found again.
|
|
240
287
|
"""
|
|
241
288
|
issue = client.find_by_label(project_key, f"sdd-doc:{feature_name}:{doc_key}")
|
|
242
289
|
if not issue:
|
|
243
|
-
return "NOT_SUBMITTED", []
|
|
290
|
+
return "NOT_SUBMITTED", [], None
|
|
244
291
|
|
|
245
292
|
jira_status = issue.get("fields", {}).get("status", {}).get("name", "")
|
|
246
293
|
comments = client.get_comments(issue["key"])
|
|
247
294
|
|
|
248
295
|
if jira_status in cfg.approved_statuses:
|
|
249
|
-
return "APPROVED", comments
|
|
296
|
+
return "APPROVED", comments, issue
|
|
250
297
|
|
|
251
298
|
for c in comments:
|
|
252
299
|
text = _extract_text(c.get("body", "")).lower()
|
|
253
300
|
if any(kw in text for kw in cfg.approved_keywords):
|
|
254
|
-
return "APPROVED", comments
|
|
301
|
+
return "APPROVED", comments, issue
|
|
255
302
|
|
|
256
|
-
return ("NEEDS_REVISION" if comments else "PENDING"), comments
|
|
303
|
+
return ("NEEDS_REVISION" if comments else "PENDING"), comments, issue
|
|
257
304
|
|
|
258
305
|
|
|
259
306
|
def _check_predecessor(
|
|
@@ -275,7 +322,7 @@ def _check_predecessor(
|
|
|
275
322
|
if not preds:
|
|
276
323
|
return True, None
|
|
277
324
|
pred_key = preds[0]
|
|
278
|
-
status, _ = _get_review_status(pred_key, client, cfg.jira.key_for("review"), cfg, feature_name)
|
|
325
|
+
status, _, _ = _get_review_status(pred_key, client, cfg.jira.key_for("review"), cfg, feature_name)
|
|
279
326
|
return (status == "APPROVED"), (None if status == "APPROVED" else pred_key)
|
|
280
327
|
|
|
281
328
|
|
|
@@ -688,6 +735,16 @@ def review_submit(doc, profile, feature):
|
|
|
688
735
|
|
|
689
736
|
_record_review_link(doc, story_key)
|
|
690
737
|
|
|
738
|
+
# ── Re-push Confluence with the now-existing Jira link/status banner ──────
|
|
739
|
+
# The first push above (before the ticket existed) couldn't include this --
|
|
740
|
+
# _push_doc_page's own find-by-label lookup will now find the ticket just
|
|
741
|
+
# created/updated and prepend a banner showing its link + live status, so
|
|
742
|
+
# a reviewer sees Jira state without leaving Confluence.
|
|
743
|
+
try:
|
|
744
|
+
_push_doc_page(doc, md_path, feature_name)
|
|
745
|
+
except Exception as e:
|
|
746
|
+
console.print(f" [yellow]! Could not stamp Jira status onto Confluence: {e}[/yellow]")
|
|
747
|
+
|
|
691
748
|
if epic_key:
|
|
692
749
|
_link_review_story_to_epic(jira_client, story_key, epic_key, cfg.jira)
|
|
693
750
|
|
|
@@ -774,7 +831,9 @@ def review_push_questions(doc, profile, feature):
|
|
|
774
831
|
page_title = None
|
|
775
832
|
if cfg.confluence:
|
|
776
833
|
try:
|
|
777
|
-
|
|
834
|
+
pushed = _push_doc_page(doc, md_path, feature_name)
|
|
835
|
+
if pushed:
|
|
836
|
+
page_title, _page_url = pushed
|
|
778
837
|
except Exception as e:
|
|
779
838
|
console.print(f" [yellow]! Confluence push failed: {e}[/yellow]")
|
|
780
839
|
|
|
@@ -973,8 +1032,9 @@ def review_pull_answers(doc, profile, feature):
|
|
|
973
1032
|
if cfg.confluence:
|
|
974
1033
|
for doc_key, loc_path in patched_paths.items():
|
|
975
1034
|
try:
|
|
976
|
-
|
|
977
|
-
if
|
|
1035
|
+
pushed = _push_doc_page(doc_key, loc_path, feature_name)
|
|
1036
|
+
if pushed:
|
|
1037
|
+
title, _page_url = pushed
|
|
978
1038
|
console.print(f" [green]✓[/green] Confluence page refreshed: [cyan]{title}[/cyan]")
|
|
979
1039
|
except Exception as e:
|
|
980
1040
|
console.print(f" [yellow]! Could not refresh Confluence page for {doc_key}: {e}[/yellow]")
|
|
@@ -1030,10 +1090,22 @@ def review_check(doc, profile, feature):
|
|
|
1030
1090
|
raise SystemExit(3)
|
|
1031
1091
|
|
|
1032
1092
|
client = JiraClient(session, prof.base_url)
|
|
1033
|
-
status, comments = _get_review_status(doc, client, cfg.jira.key_for("review"), cfg, feature_name)
|
|
1093
|
+
status, comments, _ = _get_review_status(doc, client, cfg.jira.key_for("review"), cfg, feature_name)
|
|
1034
1094
|
doc_cfg = cfg.document_reviews.get(doc)
|
|
1035
1095
|
role = doc_cfg.reviewer_role if doc_cfg else "reviewer"
|
|
1036
1096
|
|
|
1097
|
+
# ── Refresh the Confluence status banner to match what we just polled ─────
|
|
1098
|
+
# Best-effort: a reviewer who only looks at Confluence (never Jira
|
|
1099
|
+
# directly) should see the same status this command just printed, without
|
|
1100
|
+
# having to wait for the next `sdd review submit`/`apply`/`approve`.
|
|
1101
|
+
if cfg.confluence:
|
|
1102
|
+
try:
|
|
1103
|
+
md_path = resolve_doc_path(doc, feature_name)
|
|
1104
|
+
if md_path.exists():
|
|
1105
|
+
_push_doc_page(doc, md_path, feature_name)
|
|
1106
|
+
except Exception:
|
|
1107
|
+
pass
|
|
1108
|
+
|
|
1037
1109
|
if status == "APPROVED":
|
|
1038
1110
|
console.print(f" [green]✓ {doc.upper()} — APPROVED[/green]")
|
|
1039
1111
|
console.print()
|
|
@@ -1164,8 +1236,9 @@ def review_approve(doc, local, by, note, feature, no_confluence):
|
|
|
1164
1236
|
try:
|
|
1165
1237
|
manifest = read_manifest() or {}
|
|
1166
1238
|
feature_name = feature or (manifest.get("project") or {}).get("feature", "")
|
|
1167
|
-
|
|
1168
|
-
if
|
|
1239
|
+
pushed = _push_doc_page(doc, md_path, feature_name)
|
|
1240
|
+
if pushed:
|
|
1241
|
+
title, _page_url = pushed
|
|
1169
1242
|
console.print(f" [green]✓[/green] Confluence page updated: [cyan]{title}[/cyan]")
|
|
1170
1243
|
else:
|
|
1171
1244
|
console.print(" [dim]· Confluence not configured — page not updated[/dim]")
|
|
@@ -1234,31 +1307,21 @@ def review_apply(doc, profile, feature):
|
|
|
1234
1307
|
console.print(f" [red]✗ '{doc}' not found in document_reviews[/red]")
|
|
1235
1308
|
raise SystemExit(1)
|
|
1236
1309
|
|
|
1237
|
-
project_name = proj.get("name", "Project")
|
|
1238
|
-
|
|
1239
1310
|
jira_client = JiraClient(session, prof.base_url)
|
|
1240
|
-
cf_client = ConfluenceClient(session, prof.base_url)
|
|
1241
1311
|
|
|
1242
|
-
# Re-push updated doc
|
|
1312
|
+
# Re-push updated doc (picks up the Jira link/status banner automatically,
|
|
1313
|
+
# since the review ticket from the original `sdd review submit` already exists)
|
|
1243
1314
|
try:
|
|
1244
1315
|
md_path = resolve_doc_path(doc, feature_name)
|
|
1245
1316
|
except ValueError as e:
|
|
1246
1317
|
console.print(f" [red]✗ {e}[/red]")
|
|
1247
1318
|
raise SystemExit(1)
|
|
1248
|
-
page_url
|
|
1319
|
+
page_url = ""
|
|
1249
1320
|
if md_path.exists():
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
page, _ = cf_client.upsert_page(
|
|
1255
|
-
cfg.confluence.space_key, page_title, body_html, parent_id,
|
|
1256
|
-
)
|
|
1257
|
-
upload_diagram_attachments(cf_client, page["id"], attachments)
|
|
1258
|
-
page_url = f"{prof.base_url}/wiki{page.get('_links', {}).get('webui', '')}"
|
|
1259
|
-
console.print(f" [green]✓[/green] Confluence updated: [cyan]{page_title}[/cyan]")
|
|
1260
|
-
for w in diagram_warnings:
|
|
1261
|
-
console.print(f" [yellow]! {w}[/yellow]")
|
|
1321
|
+
pushed = _push_doc_page(doc, md_path, feature_name)
|
|
1322
|
+
if pushed:
|
|
1323
|
+
page_title, page_url = pushed
|
|
1324
|
+
console.print(f" [green]✓[/green] Confluence updated: [cyan]{page_title}[/cyan]")
|
|
1262
1325
|
else:
|
|
1263
1326
|
console.print(f" [dim]·[/dim] {md_path} not found — skipping Confluence update")
|
|
1264
1327
|
|
|
@@ -1338,7 +1401,7 @@ def review_status(profile, feature):
|
|
|
1338
1401
|
icon, label, style = "🔒", "Blocked", "dim"
|
|
1339
1402
|
all_statuses[key] = "BLOCKED"
|
|
1340
1403
|
else:
|
|
1341
|
-
st, _ = _get_review_status(key, client, cfg.jira.key_for("review"), cfg, feature_name)
|
|
1404
|
+
st, _, _ = _get_review_status(key, client, cfg.jira.key_for("review"), cfg, feature_name)
|
|
1342
1405
|
all_statuses[key] = st
|
|
1343
1406
|
if st == "APPROVED":
|
|
1344
1407
|
icon, label, style = "✓ ", "Approved", "green"
|
|
@@ -2306,6 +2306,42 @@ MIGRATIONS = [
|
|
|
2306
2306
|
],
|
|
2307
2307
|
"migrate": lambda m: {**m, "sdd_version": "2.7.58"},
|
|
2308
2308
|
},
|
|
2309
|
+
{
|
|
2310
|
+
"from": "2.7.58",
|
|
2311
|
+
"to": "2.7.59",
|
|
2312
|
+
"description": "Feature: Confluence pages for documents under Jira review now show a live Jira link + status banner, and page_map covers every generated doc type (qa-testcases, tasks, checklist, and the living/service docs) -- no manifest schema changes",
|
|
2313
|
+
"notes": [
|
|
2314
|
+
"User asked why a doc pushed to Jira for review didn't also "
|
|
2315
|
+
"get its Confluence page stamped with the ticket link/status "
|
|
2316
|
+
"so a reviewer could see it without leaving Confluence -- the "
|
|
2317
|
+
"page only ever mirrored the .md content, never the Jira "
|
|
2318
|
+
"state, since the two pushes happened in unrelated code paths",
|
|
2319
|
+
"sdd review submit/check/apply now prepend a small info/"
|
|
2320
|
+
"success/warning panel (via the new _push_doc_page banner) "
|
|
2321
|
+
"showing the ticket key, link, and live status (Pending/"
|
|
2322
|
+
"Needs Revision/Approved) -- refreshed every time the CLI "
|
|
2323
|
+
"touches that document's review state, so it never goes "
|
|
2324
|
+
"stale between submit and the reviewer's eventual decision",
|
|
2325
|
+
"Only applies to doc keys with a document_reviews entry (i.e. "
|
|
2326
|
+
"actually under Jira review) -- docs pushed via the page_map "
|
|
2327
|
+
"fallback alone (no Jira gate configured) get a plain page, "
|
|
2328
|
+
"same as before",
|
|
2329
|
+
"User also asked for a Confluence page for 'QA test case etc "
|
|
2330
|
+
"-- whatever there in local md file' -- page_map in "
|
|
2331
|
+
"integrations.yml.example now also covers qa-testcases, "
|
|
2332
|
+
"tasks, checklist, and the 4 living/service-level docs "
|
|
2333
|
+
"(data-model, security-design, api-spec, component-library), "
|
|
2334
|
+
"so `sdd confluence push --doc <key>` works for all of them, "
|
|
2335
|
+
"not just the phase-gated documents",
|
|
2336
|
+
"6 new tests: banner HTML per status, submit stamps a Pending "
|
|
2337
|
+
"banner once the ticket exists, check refreshes an existing "
|
|
2338
|
+
"page to Approved, and the page_map fallback path (no Jira "
|
|
2339
|
+
"gate) omits the banner entirely",
|
|
2340
|
+
"This migration only bumps sdd_version -- no manifest.yml "
|
|
2341
|
+
"field changes for any pack",
|
|
2342
|
+
],
|
|
2343
|
+
"migrate": lambda m: {**m, "sdd_version": "2.7.59"},
|
|
2344
|
+
},
|
|
2309
2345
|
]
|
|
2310
2346
|
|
|
2311
2347
|
|
|
@@ -198,6 +198,13 @@ confluence:
|
|
|
198
198
|
validate: "{feature} — Validation Report"
|
|
199
199
|
analyze: "{feature} — Analysis Report"
|
|
200
200
|
clarify: "{feature} — Clarifications"
|
|
201
|
+
tasks: "{feature} — Tasks"
|
|
202
|
+
checklist: "{feature} — QA Checklist"
|
|
203
|
+
qa-testcases: "{feature} — QA Test Cases"
|
|
204
|
+
data-model: "Data Model" # living — no {feature}, nests under {project}
|
|
205
|
+
security-design: "Security Design" # living — no {feature}, nests under {project}
|
|
206
|
+
api-spec: "API Specification" # living — no {feature}, nests under {project}
|
|
207
|
+
component-library: "Component Library" # living — no {feature}, nests under {project}
|
|
201
208
|
# release: "{feature} — Release Notes"
|
|
202
209
|
|
|
203
210
|
# Diagram rendering: Confluence has NO native Mermaid or PlantUML
|
|
@@ -43,5 +43,5 @@ testing_style: "paired"
|
|
|
43
43
|
# If using sdd-universal instead, set project_type: "backend-service" in its manifest.yml
|
|
44
44
|
# project_type: "backend-service"
|
|
45
45
|
|
|
46
|
-
sdd_version: "2.7.
|
|
46
|
+
sdd_version: "2.7.59" # set by sdd init; used by sdd upgrade
|
|
47
47
|
ai_tool: "" # set by sdd init: claude-code | copilot | cursor | windsurf | other
|
|
@@ -679,6 +679,8 @@ sdd confluence push --all # push all documents listed in integrations.yml
|
|
|
679
679
|
```
|
|
680
680
|
Page titles come from `integrations.yml → confluence.page_map`. Re-running updates the existing page.
|
|
681
681
|
|
|
682
|
+
`page_map` covers every generated doc type by default, not just the phase-gated ones — `qa-testcases`, `tasks`, `checklist`, and the living/service-level docs (`data-model`, `security-design`, `api-spec`, `component-library`) all have an entry, so `sdd confluence push --doc qa-testcases` (for example) works out of the box even though QA test cases have no Jira review gate.
|
|
683
|
+
|
|
682
684
|
**On a multi-feature project — living docs get ONE page, per-feature docs get one page each.** Living/service-level documents (`data-model`, `security-design`, `api-spec`, `component-library`) always resolve to a single shared page regardless of which feature is active — that's correct, since the underlying document itself is shared. Per-feature documents (`brd`, `use-cases`, `srd`, `design`/`arch`/`hld`/`adr`, `lld`, `validate`, `analyze`, `clarify`, `release`) need `{feature}` in their `page_map` title template to get a separate page per feature — the shipped `integrations.yml.example` already includes it. If your `integrations.yml` predates this and its titles don't have `{feature}`, every feature pushing the same doc type will silently overwrite the same page — add `{feature}` to those entries to fix it.
|
|
683
685
|
|
|
684
686
|
---
|
|
@@ -706,6 +708,8 @@ sdd review apply --doc brd # re-push after addressing reviewer comments
|
|
|
706
708
|
sdd review status # dashboard: all documents + their current review state
|
|
707
709
|
```
|
|
708
710
|
|
|
711
|
+
**The Confluence page shows the Jira link + status too.** `submit`/`check`/`apply` prepend a small panel to the top of the page — the ticket key (linked), its live status (Pending review / Needs Revision / Approved), and the assigned reviewer role — refreshed every time one of those commands runs, so a reviewer never has to leave Confluence to see where a document stands. Only shown for docs with a `document_reviews` entry; a doc pushed via `page_map` alone (no Jira gate) gets a plain page.
|
|
712
|
+
|
|
709
713
|
**`sdd review status` needs Jira configured.** For a status view that works
|
|
710
714
|
in **every** review mode (chat, local, or jira), run `sdd dashboard`
|
|
711
715
|
instead — a local web UI with pipeline progress, task status, and token
|
|
@@ -198,6 +198,13 @@ confluence:
|
|
|
198
198
|
validate: "{feature} — Validation Report"
|
|
199
199
|
analyze: "{feature} — Analysis Report"
|
|
200
200
|
clarify: "{feature} — Clarifications"
|
|
201
|
+
tasks: "{feature} — Tasks"
|
|
202
|
+
checklist: "{feature} — QA Checklist"
|
|
203
|
+
qa-testcases: "{feature} — QA Test Cases"
|
|
204
|
+
data-model: "Data Model" # living — no {feature}, nests under {project}
|
|
205
|
+
security-design: "Security Design" # living — no {feature}, nests under {project}
|
|
206
|
+
api-spec: "API Specification" # living — no {feature}, nests under {project}
|
|
207
|
+
component-library: "Component Library" # living — no {feature}, nests under {project}
|
|
201
208
|
# release: "{feature} — Release Notes"
|
|
202
209
|
|
|
203
210
|
# Diagram rendering: Confluence has NO native Mermaid or PlantUML
|
|
@@ -32,5 +32,5 @@ testing_style: "paired"
|
|
|
32
32
|
# If using sdd-universal instead, set project_type: "frontend-spa" in its manifest.yml
|
|
33
33
|
# project_type: "frontend-spa"
|
|
34
34
|
|
|
35
|
-
sdd_version: "2.7.
|
|
35
|
+
sdd_version: "2.7.59" # set by sdd init; used by sdd upgrade
|
|
36
36
|
ai_tool: "" # set by sdd init: claude-code | copilot | cursor | windsurf | other
|
|
@@ -683,6 +683,8 @@ sdd confluence push --all # push all documents listed in integrations.yml
|
|
|
683
683
|
```
|
|
684
684
|
Page titles come from `integrations.yml → confluence.page_map`. Re-running updates the existing page.
|
|
685
685
|
|
|
686
|
+
`page_map` covers every generated doc type by default, not just the phase-gated ones — `qa-testcases`, `tasks`, `checklist`, and the living/service-level docs (`data-model`, `security-design`, `api-spec`, `component-library`) all have an entry, so `sdd confluence push --doc qa-testcases` (for example) works out of the box even though QA test cases have no Jira review gate.
|
|
687
|
+
|
|
686
688
|
**On a multi-feature project — living docs get ONE page, per-feature docs get one page each.** Living/service-level documents (`data-model`, `security-design`, `api-spec`, `component-library`) always resolve to a single shared page regardless of which feature is active — that's correct, since the underlying document itself is shared. Per-feature documents (`brd`, `use-cases`, `srd`, `design`/`arch`/`hld`/`adr`, `lld`, `validate`, `analyze`, `clarify`, `release`) need `{feature}` in their `page_map` title template to get a separate page per feature — the shipped `integrations.yml.example` already includes it. If your `integrations.yml` predates this and its titles don't have `{feature}`, every feature pushing the same doc type will silently overwrite the same page — add `{feature}` to those entries to fix it.
|
|
687
689
|
|
|
688
690
|
---
|
|
@@ -710,6 +712,8 @@ sdd review apply --doc brd # re-push after addressing reviewer comments
|
|
|
710
712
|
sdd review status # dashboard: all documents + their current review state
|
|
711
713
|
```
|
|
712
714
|
|
|
715
|
+
**The Confluence page shows the Jira link + status too.** `submit`/`check`/`apply` prepend a small panel to the top of the page — the ticket key (linked), its live status (Pending review / Needs Revision / Approved), and the assigned reviewer role — refreshed every time one of those commands runs, so a reviewer never has to leave Confluence to see where a document stands. Only shown for docs with a `document_reviews` entry; a doc pushed via `page_map` alone (no Jira gate) gets a plain page.
|
|
716
|
+
|
|
713
717
|
**`sdd review status` needs Jira configured.** For a status view that works
|
|
714
718
|
in **every** review mode (chat, local, or jira), run `sdd dashboard`
|
|
715
719
|
instead — a local web UI with pipeline progress, task status, and token
|
|
@@ -198,6 +198,13 @@ confluence:
|
|
|
198
198
|
validate: "{feature} — Validation Report"
|
|
199
199
|
analyze: "{feature} — Analysis Report"
|
|
200
200
|
clarify: "{feature} — Clarifications"
|
|
201
|
+
tasks: "{feature} — Tasks"
|
|
202
|
+
checklist: "{feature} — QA Checklist"
|
|
203
|
+
qa-testcases: "{feature} — QA Test Cases"
|
|
204
|
+
data-model: "Data Model" # living — no {feature}, nests under {project}
|
|
205
|
+
security-design: "Security Design" # living — no {feature}, nests under {project}
|
|
206
|
+
api-spec: "API Specification" # living — no {feature}, nests under {project}
|
|
207
|
+
component-library: "Component Library" # living — no {feature}, nests under {project}
|
|
201
208
|
# release: "{feature} — Release Notes"
|
|
202
209
|
|
|
203
210
|
# Diagram rendering: Confluence has NO native Mermaid or PlantUML
|
|
@@ -32,5 +32,5 @@ testing_style: "paired"
|
|
|
32
32
|
# If using sdd-universal instead, set project_type: "fullstack" in its manifest.yml
|
|
33
33
|
# project_type: "fullstack"
|
|
34
34
|
|
|
35
|
-
sdd_version: "2.7.
|
|
35
|
+
sdd_version: "2.7.59" # set by sdd init; used by sdd upgrade
|
|
36
36
|
ai_tool: "" # set by sdd init: claude-code | copilot | cursor | windsurf | other
|
|
@@ -685,6 +685,8 @@ sdd confluence push --all # push all documents listed in integrations.yml
|
|
|
685
685
|
```
|
|
686
686
|
Page titles come from `integrations.yml → confluence.page_map`. Re-running updates the existing page.
|
|
687
687
|
|
|
688
|
+
`page_map` covers every generated doc type by default, not just the phase-gated ones — `qa-testcases`, `tasks`, `checklist`, and the living/service-level docs (`data-model`, `security-design`, `api-spec`, `component-library`) all have an entry, so `sdd confluence push --doc qa-testcases` (for example) works out of the box even though QA test cases have no Jira review gate.
|
|
689
|
+
|
|
688
690
|
**On a multi-feature project — living docs get ONE page, per-feature docs get one page each.** Living/service-level documents (`data-model`, `security-design`, `api-spec`, `component-library`) always resolve to a single shared page regardless of which feature is active — that's correct, since the underlying document itself is shared. Per-feature documents (`brd`, `use-cases`, `srd`, `design`/`arch`/`hld`/`adr`, `lld`, `validate`, `analyze`, `clarify`, `release`) need `{feature}` in their `page_map` title template to get a separate page per feature — the shipped `integrations.yml.example` already includes it. If your `integrations.yml` predates this and its titles don't have `{feature}`, every feature pushing the same doc type will silently overwrite the same page — add `{feature}` to those entries to fix it.
|
|
689
691
|
|
|
690
692
|
---
|
|
@@ -712,6 +714,8 @@ sdd review apply --doc brd # re-push after addressing reviewer comments
|
|
|
712
714
|
sdd review status # dashboard: all documents + their current review state
|
|
713
715
|
```
|
|
714
716
|
|
|
717
|
+
**The Confluence page shows the Jira link + status too.** `submit`/`check`/`apply` prepend a small panel to the top of the page — the ticket key (linked), its live status (Pending review / Needs Revision / Approved), and the assigned reviewer role — refreshed every time one of those commands runs, so a reviewer never has to leave Confluence to see where a document stands. Only shown for docs with a `document_reviews` entry; a doc pushed via `page_map` alone (no Jira gate) gets a plain page.
|
|
718
|
+
|
|
715
719
|
**`sdd review status` needs Jira configured.** For a status view that works
|
|
716
720
|
in **every** review mode (chat, local, or jira), run `sdd dashboard`
|
|
717
721
|
instead — a local web UI with pipeline progress, task status, and token
|
|
@@ -198,6 +198,13 @@ confluence:
|
|
|
198
198
|
validate: "{feature} — Validation Report"
|
|
199
199
|
analyze: "{feature} — Analysis Report"
|
|
200
200
|
clarify: "{feature} — Clarifications"
|
|
201
|
+
tasks: "{feature} — Tasks"
|
|
202
|
+
checklist: "{feature} — QA Checklist"
|
|
203
|
+
qa-testcases: "{feature} — QA Test Cases"
|
|
204
|
+
data-model: "Data Model" # living — no {feature}, nests under {project}
|
|
205
|
+
security-design: "Security Design" # living — no {feature}, nests under {project}
|
|
206
|
+
api-spec: "API Specification" # living — no {feature}, nests under {project}
|
|
207
|
+
component-library: "Component Library" # living — no {feature}, nests under {project}
|
|
201
208
|
# release: "{feature} — Release Notes"
|
|
202
209
|
|
|
203
210
|
# Diagram rendering: Confluence has NO native Mermaid or PlantUML
|
|
@@ -32,5 +32,5 @@ testing_style: "paired"
|
|
|
32
32
|
# If using sdd-universal instead, set project_type: "mobile" in its manifest.yml
|
|
33
33
|
# project_type: "mobile"
|
|
34
34
|
|
|
35
|
-
sdd_version: "2.7.
|
|
35
|
+
sdd_version: "2.7.59" # set by sdd init; used by sdd upgrade
|
|
36
36
|
ai_tool: "" # set by sdd init: claude-code | copilot | cursor | windsurf | other
|
|
@@ -683,6 +683,8 @@ sdd confluence push --all # push all documents listed in integrations.yml
|
|
|
683
683
|
```
|
|
684
684
|
Page titles come from `integrations.yml → confluence.page_map`. Re-running updates the existing page.
|
|
685
685
|
|
|
686
|
+
`page_map` covers every generated doc type by default, not just the phase-gated ones — `qa-testcases`, `tasks`, `checklist`, and the living/service-level docs (`data-model`, `security-design`, `api-spec`, `component-library`) all have an entry, so `sdd confluence push --doc qa-testcases` (for example) works out of the box even though QA test cases have no Jira review gate.
|
|
687
|
+
|
|
686
688
|
**On a multi-feature project — living docs get ONE page, per-feature docs get one page each.** Living/service-level documents (`data-model`, `security-design`, `api-spec`, `component-library`) always resolve to a single shared page regardless of which feature is active — that's correct, since the underlying document itself is shared. Per-feature documents (`brd`, `use-cases`, `srd`, `design`/`arch`/`hld`/`adr`, `lld`, `validate`, `analyze`, `clarify`, `release`) need `{feature}` in their `page_map` title template to get a separate page per feature — the shipped `integrations.yml.example` already includes it. If your `integrations.yml` predates this and its titles don't have `{feature}`, every feature pushing the same doc type will silently overwrite the same page — add `{feature}` to those entries to fix it.
|
|
687
689
|
|
|
688
690
|
---
|
|
@@ -710,6 +712,8 @@ sdd review apply --doc brd # re-push after addressing reviewer comments
|
|
|
710
712
|
sdd review status # dashboard: all documents + their current review state
|
|
711
713
|
```
|
|
712
714
|
|
|
715
|
+
**The Confluence page shows the Jira link + status too.** `submit`/`check`/`apply` prepend a small panel to the top of the page — the ticket key (linked), its live status (Pending review / Needs Revision / Approved), and the assigned reviewer role — refreshed every time one of those commands runs, so a reviewer never has to leave Confluence to see where a document stands. Only shown for docs with a `document_reviews` entry; a doc pushed via `page_map` alone (no Jira gate) gets a plain page.
|
|
716
|
+
|
|
713
717
|
**`sdd review status` needs Jira configured.** For a status view that works
|
|
714
718
|
in **every** review mode (chat, local, or jira), run `sdd dashboard`
|
|
715
719
|
instead — a local web UI with pipeline progress, task status, and token
|