sddflow 2.7.55__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.
Files changed (754) hide show
  1. {sddflow-2.7.55 → sddflow-2.7.59}/PKG-INFO +7 -2
  2. {sddflow-2.7.55 → sddflow-2.7.59}/README.md +6 -1
  3. {sddflow-2.7.55 → sddflow-2.7.59}/pyproject.toml +1 -1
  4. sddflow-2.7.59/sdd/__init__.py +1 -0
  5. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/commands/dashboard.py +1 -1
  6. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/commands/review.py +122 -39
  7. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/commands/upgrade.py +138 -0
  8. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/analyze.prompt.md +49 -1
  9. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/clarify.prompt.md +47 -0
  10. {sddflow-2.7.55/sdd/packs/sdd-universal → sddflow-2.7.59/sdd/packs/sdd-backend-service}/.github/prompts/validate.prompt.md +13 -0
  11. {sddflow-2.7.55/sdd/packs/sdd-frontend-spa → sddflow-2.7.59/sdd/packs/sdd-backend-service}/.specify/integrations.yml.example +43 -5
  12. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/manifest.yml +1 -1
  13. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/clarify-template.md +2 -2
  14. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/CLAUDE.md +10 -1
  15. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/HOW-TO-USE.md +41 -1
  16. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/PROMPT-GUIDE.md +13 -1
  17. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/analyze.prompt.md +49 -1
  18. {sddflow-2.7.55/sdd/packs/sdd-fullstack → sddflow-2.7.59/sdd/packs/sdd-frontend-spa}/.github/prompts/clarify.prompt.md +47 -0
  19. {sddflow-2.7.55/sdd/packs/sdd-mobile → sddflow-2.7.59/sdd/packs/sdd-frontend-spa}/.github/prompts/validate.prompt.md +13 -0
  20. {sddflow-2.7.55/sdd/packs/sdd-fullstack → sddflow-2.7.59/sdd/packs/sdd-frontend-spa}/.specify/integrations.yml.example +43 -5
  21. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/manifest.yml +1 -1
  22. {sddflow-2.7.55/sdd/packs/sdd-fullstack → sddflow-2.7.59/sdd/packs/sdd-frontend-spa}/.specify/templates/clarify-template.md +2 -2
  23. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/CLAUDE.md +10 -1
  24. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/HOW-TO-USE.md +41 -1
  25. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/PROMPT-GUIDE.md +13 -1
  26. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/analyze.prompt.md +49 -1
  27. {sddflow-2.7.55/sdd/packs/sdd-frontend-spa → sddflow-2.7.59/sdd/packs/sdd-fullstack}/.github/prompts/clarify.prompt.md +47 -0
  28. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/validate.prompt.md +13 -0
  29. {sddflow-2.7.55/sdd/packs/sdd-backend-service → sddflow-2.7.59/sdd/packs/sdd-fullstack}/.specify/integrations.yml.example +43 -5
  30. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/manifest.yml +1 -1
  31. {sddflow-2.7.55/sdd/packs/sdd-mobile → sddflow-2.7.59/sdd/packs/sdd-fullstack}/.specify/templates/clarify-template.md +2 -2
  32. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/CLAUDE.md +10 -1
  33. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/HOW-TO-USE.md +41 -1
  34. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/PROMPT-GUIDE.md +12 -1
  35. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/analyze.prompt.md +49 -1
  36. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/clarify.prompt.md +47 -0
  37. {sddflow-2.7.55/sdd/packs/sdd-frontend-spa → sddflow-2.7.59/sdd/packs/sdd-mobile}/.github/prompts/validate.prompt.md +13 -0
  38. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/integrations.yml.example +43 -5
  39. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/manifest.yml +1 -1
  40. {sddflow-2.7.55/sdd/packs/sdd-frontend-spa → sddflow-2.7.59/sdd/packs/sdd-mobile}/.specify/templates/clarify-template.md +2 -2
  41. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/CLAUDE.md +10 -1
  42. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/HOW-TO-USE.md +41 -1
  43. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/PROMPT-GUIDE.md +12 -1
  44. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/analyze.prompt.md +49 -1
  45. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/clarify.prompt.md +47 -0
  46. {sddflow-2.7.55/sdd/packs/sdd-backend-service → sddflow-2.7.59/sdd/packs/sdd-universal}/.github/prompts/validate.prompt.md +13 -0
  47. sddflow-2.7.59/sdd/packs/sdd-universal/.specify/integrations.yml.example +464 -0
  48. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/manifest.yml +1 -1
  49. sddflow-2.7.59/sdd/packs/sdd-universal/.specify/templates/clarify-template.md +94 -0
  50. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/CLAUDE.md +10 -1
  51. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/HOW-TO-USE.md +41 -1
  52. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/PROMPT-GUIDE.md +12 -1
  53. sddflow-2.7.55/sdd/__init__.py +0 -1
  54. sddflow-2.7.55/sdd/packs/sdd-universal/.specify/integrations.yml.example +0 -426
  55. sddflow-2.7.55/sdd/packs/sdd-universal/.specify/templates/clarify-template.md +0 -94
  56. {sddflow-2.7.55 → sddflow-2.7.59}/.gitignore +0 -0
  57. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/__main__.py +0 -0
  58. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/commands/__init__.py +0 -0
  59. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/commands/config.py +0 -0
  60. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/commands/confluence.py +0 -0
  61. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/commands/cr.py +0 -0
  62. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/commands/init.py +0 -0
  63. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/commands/jira.py +0 -0
  64. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/commands/pr.py +0 -0
  65. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/address-review.md +0 -0
  66. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/analyze.md +0 -0
  67. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/ava.md +0 -0
  68. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/bug-assess.md +0 -0
  69. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/bug-fix.md +0 -0
  70. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/change.md +0 -0
  71. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/check-review.md +0 -0
  72. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/checklist.md +0 -0
  73. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/clarify.md +0 -0
  74. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/create-context.md +0 -0
  75. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/implement.md +0 -0
  76. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/jira-push.md +0 -0
  77. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/kai.md +0 -0
  78. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/leo.md +0 -0
  79. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/maya.md +0 -0
  80. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/morgan.md +0 -0
  81. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/orchestrate.md +0 -0
  82. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/plan-adr.md +0 -0
  83. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/plan-arch.md +0 -0
  84. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/plan-design.md +0 -0
  85. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/plan-hld.md +0 -0
  86. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/plan-lld.md +0 -0
  87. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/pre-review.md +0 -0
  88. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/quinn.md +0 -0
  89. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/release.md +0 -0
  90. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/rex.md +0 -0
  91. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/riley.md +0 -0
  92. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/specify-brd.md +0 -0
  93. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/specify-doc.md +0 -0
  94. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/specify-srd.md +0 -0
  95. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/specify-uc.md +0 -0
  96. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/specify.md +0 -0
  97. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/start.md +0 -0
  98. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/submit-review.md +0 -0
  99. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/task.md +0 -0
  100. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/taskstoissues.md +0 -0
  101. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.claude/commands/validate.md +0 -0
  102. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.cursor/rules/sdd-framework.mdc +0 -0
  103. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/copilot-instructions.md +0 -0
  104. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/instructions/api.instructions.md +0 -0
  105. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/instructions/domain.instructions.md +0 -0
  106. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/instructions/java.instructions.md +0 -0
  107. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/instructions/tests.instructions.md +0 -0
  108. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/address-review.prompt.md +0 -0
  109. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/ava.prompt.md +0 -0
  110. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/bug-assess.prompt.md +0 -0
  111. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/bug-fix.prompt.md +0 -0
  112. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/change.prompt.md +0 -0
  113. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/check-review.prompt.md +0 -0
  114. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/checklist.prompt.md +0 -0
  115. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/create-context.prompt.md +0 -0
  116. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/implement.prompt.md +0 -0
  117. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/jira-push.prompt.md +0 -0
  118. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/kai.prompt.md +0 -0
  119. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/leo.prompt.md +0 -0
  120. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/maya.prompt.md +0 -0
  121. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/morgan.prompt.md +0 -0
  122. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/orchestrate.prompt.md +0 -0
  123. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/plan-adr.prompt.md +0 -0
  124. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/plan-arch.prompt.md +0 -0
  125. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/plan-design.prompt.md +0 -0
  126. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/plan-hld.prompt.md +0 -0
  127. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/plan-lld.prompt.md +0 -0
  128. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/pre-review.prompt.md +0 -0
  129. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/quinn.prompt.md +0 -0
  130. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/release.prompt.md +0 -0
  131. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/rex.prompt.md +0 -0
  132. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/riley.prompt.md +0 -0
  133. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/specify-brd.prompt.md +0 -0
  134. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/specify-doc.prompt.md +0 -0
  135. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/specify-srd.prompt.md +0 -0
  136. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/specify-uc.prompt.md +0 -0
  137. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/specify.prompt.md +0 -0
  138. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/submit-review.prompt.md +0 -0
  139. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/task.prompt.md +0 -0
  140. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/prompts/taskstoissues.prompt.md +0 -0
  141. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.github/workflows/quality-gate.yml +0 -0
  142. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.gitignore +0 -0
  143. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.gitlab-ci.yml +0 -0
  144. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/contexts/CONTEXT-GUIDE.md +0 -0
  145. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/memory/change-rules.md +0 -0
  146. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/memory/constitution.md +0 -0
  147. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/memory/roles.yml +0 -0
  148. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/memory/summary-rules.md +0 -0
  149. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/memory/token-pricing.yml.example +0 -0
  150. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/adr-template.md +0 -0
  151. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/analyze-template.md +0 -0
  152. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/api-spec-template.md +0 -0
  153. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/arch-template.md +0 -0
  154. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/brd-template.md +0 -0
  155. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/changeset-template.md +0 -0
  156. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/checklist-template.md +0 -0
  157. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/constitution-amendment-template.md +0 -0
  158. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/context-template.md +0 -0
  159. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/data-model-template.md +0 -0
  160. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/design-template.md +0 -0
  161. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/docker-config-template.md +0 -0
  162. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/feature-story-template.md +0 -0
  163. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/hld-template.md +0 -0
  164. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/investigation-template.md +0 -0
  165. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/jira-export-template.md +0 -0
  166. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/k8s-manifest-template.md +0 -0
  167. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/lld-template.md +0 -0
  168. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/openapi-template.md +0 -0
  169. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/plan-template.md +0 -0
  170. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/qa-testcases-template.md +0 -0
  171. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/release-template.md +0 -0
  172. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/resilience-template.md +0 -0
  173. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/runbook-template.md +0 -0
  174. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/security-design-template.md +0 -0
  175. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/srd-template.md +0 -0
  176. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/tasks-template.md +0 -0
  177. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/token-usage-template.md +0 -0
  178. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/use-cases-template.md +0 -0
  179. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.specify/templates/validate-template.md +0 -0
  180. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.vscode/extensions.json +0 -0
  181. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/.windsurfrules +0 -0
  182. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/CHANGE-GUIDE.md +0 -0
  183. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/CLAUDE.local.md +0 -0
  184. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/FLOW-ROLES-GATES.md +0 -0
  185. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/IMPROVEMENT-BACKLOG.md +0 -0
  186. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/QUICKSTART.md +0 -0
  187. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/README.md +0 -0
  188. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/SDLC-COMPLETE-GUIDE.md +0 -0
  189. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/WHY-SDD.md +0 -0
  190. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/azure-pipelines.yml +0 -0
  191. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/bitbucket-pipelines.yml +0 -0
  192. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/docs/SUMMARY-GUIDE.md +0 -0
  193. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/setup.ps1 +0 -0
  194. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-backend-service/setup.sh +0 -0
  195. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/address-review.md +0 -0
  196. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/analyze.md +0 -0
  197. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/ava.md +0 -0
  198. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/bug-assess.md +0 -0
  199. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/bug-fix.md +0 -0
  200. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/change.md +0 -0
  201. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/check-review.md +0 -0
  202. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/checklist.md +0 -0
  203. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/clarify.md +0 -0
  204. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/create-context.md +0 -0
  205. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/implement.md +0 -0
  206. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/jira-push.md +0 -0
  207. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/kai.md +0 -0
  208. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/leo.md +0 -0
  209. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/maya.md +0 -0
  210. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/morgan.md +0 -0
  211. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/orchestrate.md +0 -0
  212. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/plan-adr.md +0 -0
  213. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/plan-arch.md +0 -0
  214. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/plan-design.md +0 -0
  215. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/plan-hld.md +0 -0
  216. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/plan-lld.md +0 -0
  217. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/pre-review.md +0 -0
  218. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/quinn.md +0 -0
  219. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/release.md +0 -0
  220. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/rex.md +0 -0
  221. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/riley.md +0 -0
  222. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/specify-brd.md +0 -0
  223. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/specify-doc.md +0 -0
  224. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/specify-srd.md +0 -0
  225. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/specify-uc.md +0 -0
  226. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/specify.md +0 -0
  227. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/start.md +0 -0
  228. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/submit-review.md +0 -0
  229. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/task.md +0 -0
  230. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/taskstoissues.md +0 -0
  231. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.claude/commands/validate.md +0 -0
  232. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.cursor/rules/sdd-framework.mdc +0 -0
  233. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/copilot-instructions.md +0 -0
  234. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/instructions/components.instructions.md +0 -0
  235. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/instructions/services.instructions.md +0 -0
  236. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/instructions/tests.instructions.md +0 -0
  237. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/address-review.prompt.md +0 -0
  238. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/ava.prompt.md +0 -0
  239. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/bug-assess.prompt.md +0 -0
  240. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/bug-fix.prompt.md +0 -0
  241. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/change.prompt.md +0 -0
  242. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/check-review.prompt.md +0 -0
  243. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/checklist.prompt.md +0 -0
  244. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/create-context.prompt.md +0 -0
  245. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/implement.prompt.md +0 -0
  246. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/jira-push.prompt.md +0 -0
  247. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/kai.prompt.md +0 -0
  248. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/leo.prompt.md +0 -0
  249. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/maya.prompt.md +0 -0
  250. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/morgan.prompt.md +0 -0
  251. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/orchestrate.prompt.md +0 -0
  252. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/plan-adr.prompt.md +0 -0
  253. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/plan-arch.prompt.md +0 -0
  254. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/plan-design.prompt.md +0 -0
  255. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/plan-hld.prompt.md +0 -0
  256. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/plan-lld.prompt.md +0 -0
  257. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/pre-review.prompt.md +0 -0
  258. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/quinn.prompt.md +0 -0
  259. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/release.prompt.md +0 -0
  260. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/rex.prompt.md +0 -0
  261. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/riley.prompt.md +0 -0
  262. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/specify-brd.prompt.md +0 -0
  263. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/specify-doc.prompt.md +0 -0
  264. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/specify-srd.prompt.md +0 -0
  265. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/specify-uc.prompt.md +0 -0
  266. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/specify.prompt.md +0 -0
  267. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/submit-review.prompt.md +0 -0
  268. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/task.prompt.md +0 -0
  269. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/prompts/taskstoissues.prompt.md +0 -0
  270. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.github/workflows/quality-gate.yml +0 -0
  271. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.gitignore +0 -0
  272. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.gitlab-ci.yml +0 -0
  273. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/contexts/CONTEXT-GUIDE.md +0 -0
  274. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/memory/change-rules.md +0 -0
  275. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/memory/constitution.md +0 -0
  276. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/memory/roles.yml +0 -0
  277. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/memory/summary-rules.md +0 -0
  278. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/memory/token-pricing.yml.example +0 -0
  279. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/adr-template.md +0 -0
  280. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/analyze-template.md +0 -0
  281. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/api-spec-template.md +0 -0
  282. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/arch-template.md +0 -0
  283. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/brd-template.md +0 -0
  284. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/changeset-template.md +0 -0
  285. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/checklist-template.md +0 -0
  286. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/component-library-template.md +0 -0
  287. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/component-spec-template.md +0 -0
  288. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/constitution-amendment-template.md +0 -0
  289. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/context-template.md +0 -0
  290. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/data-model-template.md +0 -0
  291. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/design-template.md +0 -0
  292. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/docker-config-template.md +0 -0
  293. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/feature-story-template.md +0 -0
  294. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/hld-template.md +0 -0
  295. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/investigation-template.md +0 -0
  296. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/jira-export-template.md +0 -0
  297. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/lld-template.md +0 -0
  298. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/plan-template.md +0 -0
  299. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/qa-testcases-template.md +0 -0
  300. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/release-template.md +0 -0
  301. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/resilience-template.md +0 -0
  302. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/runbook-template.md +0 -0
  303. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/security-design-template.md +0 -0
  304. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/srd-template.md +0 -0
  305. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/tasks-template.md +0 -0
  306. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/token-usage-template.md +0 -0
  307. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/use-cases-template.md +0 -0
  308. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/ux-flow-template.md +0 -0
  309. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.specify/templates/validate-template.md +0 -0
  310. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.vscode/extensions.json +0 -0
  311. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/.windsurfrules +0 -0
  312. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/CHANGE-GUIDE.md +0 -0
  313. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/CLAUDE.local.md +0 -0
  314. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/FLOW-ROLES-GATES.md +0 -0
  315. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/IMPROVEMENT-BACKLOG.md +0 -0
  316. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/QUICKSTART.md +0 -0
  317. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/README.md +0 -0
  318. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/SDLC-COMPLETE-GUIDE.md +0 -0
  319. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/WHY-SDD.md +0 -0
  320. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/azure-pipelines.yml +0 -0
  321. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/bitbucket-pipelines.yml +0 -0
  322. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/docs/SUMMARY-GUIDE.md +0 -0
  323. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/setup.ps1 +0 -0
  324. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-frontend-spa/setup.sh +0 -0
  325. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/address-review.md +0 -0
  326. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/analyze.md +0 -0
  327. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/ava.md +0 -0
  328. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/bug-assess.md +0 -0
  329. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/bug-fix.md +0 -0
  330. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/change.md +0 -0
  331. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/check-review.md +0 -0
  332. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/checklist.md +0 -0
  333. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/clarify.md +0 -0
  334. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/create-context.md +0 -0
  335. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/implement.md +0 -0
  336. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/jira-push.md +0 -0
  337. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/kai.md +0 -0
  338. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/leo.md +0 -0
  339. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/maya.md +0 -0
  340. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/morgan.md +0 -0
  341. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/orchestrate.md +0 -0
  342. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/plan-adr.md +0 -0
  343. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/plan-arch.md +0 -0
  344. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/plan-design.md +0 -0
  345. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/plan-hld.md +0 -0
  346. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/plan-lld.md +0 -0
  347. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/pre-review.md +0 -0
  348. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/quinn.md +0 -0
  349. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/release.md +0 -0
  350. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/rex.md +0 -0
  351. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/riley.md +0 -0
  352. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/specify-brd.md +0 -0
  353. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/specify-doc.md +0 -0
  354. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/specify-srd.md +0 -0
  355. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/specify-uc.md +0 -0
  356. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/specify.md +0 -0
  357. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/start.md +0 -0
  358. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/submit-review.md +0 -0
  359. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/task.md +0 -0
  360. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/taskstoissues.md +0 -0
  361. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.claude/commands/validate.md +0 -0
  362. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.cursor/rules/sdd-framework.mdc +0 -0
  363. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/copilot-instructions.md +0 -0
  364. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/instructions/backend-tests.instructions.md +0 -0
  365. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/instructions/components.instructions.md +0 -0
  366. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/instructions/domain.instructions.md +0 -0
  367. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/instructions/frontend-services.instructions.md +0 -0
  368. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/instructions/java.instructions.md +0 -0
  369. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/address-review.prompt.md +0 -0
  370. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/ava.prompt.md +0 -0
  371. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/bug-assess.prompt.md +0 -0
  372. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/bug-fix.prompt.md +0 -0
  373. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/change.prompt.md +0 -0
  374. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/check-review.prompt.md +0 -0
  375. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/checklist.prompt.md +0 -0
  376. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/create-context.prompt.md +0 -0
  377. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/implement.prompt.md +0 -0
  378. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/jira-push.prompt.md +0 -0
  379. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/kai.prompt.md +0 -0
  380. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/leo.prompt.md +0 -0
  381. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/maya.prompt.md +0 -0
  382. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/morgan.prompt.md +0 -0
  383. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/orchestrate.prompt.md +0 -0
  384. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/plan-adr.prompt.md +0 -0
  385. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/plan-arch.prompt.md +0 -0
  386. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/plan-design.prompt.md +0 -0
  387. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/plan-hld.prompt.md +0 -0
  388. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/plan-lld.prompt.md +0 -0
  389. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/pre-review.prompt.md +0 -0
  390. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/quinn.prompt.md +0 -0
  391. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/release.prompt.md +0 -0
  392. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/rex.prompt.md +0 -0
  393. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/riley.prompt.md +0 -0
  394. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/specify-brd.prompt.md +0 -0
  395. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/specify-doc.prompt.md +0 -0
  396. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/specify-srd.prompt.md +0 -0
  397. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/specify-uc.prompt.md +0 -0
  398. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/specify.prompt.md +0 -0
  399. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/submit-review.prompt.md +0 -0
  400. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/task.prompt.md +0 -0
  401. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/prompts/taskstoissues.prompt.md +0 -0
  402. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.github/workflows/quality-gate.yml +0 -0
  403. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.gitignore +0 -0
  404. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.gitlab-ci.yml +0 -0
  405. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/contexts/CONTEXT-GUIDE.md +0 -0
  406. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/memory/change-rules.md +0 -0
  407. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/memory/constitution.md +0 -0
  408. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/memory/roles.yml +0 -0
  409. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/memory/summary-rules.md +0 -0
  410. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/memory/token-pricing.yml.example +0 -0
  411. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/adr-template.md +0 -0
  412. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/analyze-template.md +0 -0
  413. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/api-spec-template.md +0 -0
  414. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/arch-template.md +0 -0
  415. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/brd-template.md +0 -0
  416. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/changeset-template.md +0 -0
  417. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/checklist-template.md +0 -0
  418. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/component-library-template.md +0 -0
  419. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/component-spec-template.md +0 -0
  420. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/constitution-amendment-template.md +0 -0
  421. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/context-template.md +0 -0
  422. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/data-model-template.md +0 -0
  423. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/design-template.md +0 -0
  424. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/docker-config-template.md +0 -0
  425. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/feature-story-template.md +0 -0
  426. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/hld-template.md +0 -0
  427. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/investigation-template.md +0 -0
  428. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/jira-export-template.md +0 -0
  429. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/lld-template.md +0 -0
  430. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/openapi-template.md +0 -0
  431. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/plan-template.md +0 -0
  432. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/qa-testcases-template.md +0 -0
  433. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/release-template.md +0 -0
  434. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/resilience-template.md +0 -0
  435. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/runbook-template.md +0 -0
  436. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/screen-spec-template.md +0 -0
  437. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/security-design-template.md +0 -0
  438. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/srd-template.md +0 -0
  439. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/tasks-template.md +0 -0
  440. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/token-usage-template.md +0 -0
  441. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/use-cases-template.md +0 -0
  442. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/ux-flow-template.md +0 -0
  443. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.specify/templates/validate-template.md +0 -0
  444. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.vscode/extensions.json +0 -0
  445. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/.windsurfrules +0 -0
  446. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/CHANGE-GUIDE.md +0 -0
  447. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/CLAUDE.local.md +0 -0
  448. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/FLOW-ROLES-GATES.md +0 -0
  449. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/QUICKSTART.md +0 -0
  450. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/README.md +0 -0
  451. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/SDLC-COMPLETE-GUIDE.md +0 -0
  452. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/WHY-SDD.md +0 -0
  453. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/azure-pipelines.yml +0 -0
  454. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/bitbucket-pipelines.yml +0 -0
  455. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/docs/SUMMARY-GUIDE.md +0 -0
  456. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/setup.ps1 +0 -0
  457. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-fullstack/setup.sh +0 -0
  458. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-micro/.claude/commands/create-context.md +0 -0
  459. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-micro/.claude/commands/implement.md +0 -0
  460. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-micro/.claude/commands/specify.md +0 -0
  461. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-micro/.claude/commands/start.md +0 -0
  462. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-micro/.claude/commands/task.md +0 -0
  463. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-micro/.cursor/rules/sdd-framework.mdc +0 -0
  464. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-micro/.github/copilot-instructions.md +0 -0
  465. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-micro/.github/prompts/create-context.prompt.md +0 -0
  466. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-micro/.github/prompts/implement.prompt.md +0 -0
  467. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-micro/.github/prompts/specify.prompt.md +0 -0
  468. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-micro/.github/prompts/task.prompt.md +0 -0
  469. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-micro/.specify/contexts/CONTEXT-GUIDE.md +0 -0
  470. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-micro/.specify/manifest.yml +0 -0
  471. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-micro/.specify/memory/constitution.md +0 -0
  472. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-micro/.specify/templates/context-template.md +0 -0
  473. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-micro/.specify/templates/tasks-template.md +0 -0
  474. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-micro/.windsurfrules +0 -0
  475. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-micro/CLAUDE.md +0 -0
  476. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-micro/QUICKSTART.md +0 -0
  477. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-micro/README.md +0 -0
  478. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-micro/WHY-SDD.md +0 -0
  479. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-micro/setup.ps1 +0 -0
  480. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-micro/setup.sh +0 -0
  481. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/address-review.md +0 -0
  482. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/analyze.md +0 -0
  483. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/ava.md +0 -0
  484. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/bug-assess.md +0 -0
  485. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/bug-fix.md +0 -0
  486. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/change.md +0 -0
  487. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/check-review.md +0 -0
  488. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/checklist.md +0 -0
  489. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/clarify.md +0 -0
  490. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/create-context.md +0 -0
  491. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/implement.md +0 -0
  492. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/jira-push.md +0 -0
  493. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/kai.md +0 -0
  494. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/leo.md +0 -0
  495. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/maya.md +0 -0
  496. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/morgan.md +0 -0
  497. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/orchestrate.md +0 -0
  498. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/plan-adr.md +0 -0
  499. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/plan-arch.md +0 -0
  500. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/plan-design.md +0 -0
  501. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/plan-hld.md +0 -0
  502. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/plan-lld.md +0 -0
  503. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/pre-review.md +0 -0
  504. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/quinn.md +0 -0
  505. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/release.md +0 -0
  506. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/rex.md +0 -0
  507. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/riley.md +0 -0
  508. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/specify-brd.md +0 -0
  509. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/specify-doc.md +0 -0
  510. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/specify-srd.md +0 -0
  511. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/specify-uc.md +0 -0
  512. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/specify.md +0 -0
  513. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/start.md +0 -0
  514. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/submit-review.md +0 -0
  515. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/task.md +0 -0
  516. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/taskstoissues.md +0 -0
  517. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.claude/commands/validate.md +0 -0
  518. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.cursor/rules/sdd-framework.mdc +0 -0
  519. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/copilot-instructions.md +0 -0
  520. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/instructions/screens.instructions.md +0 -0
  521. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/instructions/services.instructions.md +0 -0
  522. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/instructions/tests.instructions.md +0 -0
  523. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/address-review.prompt.md +0 -0
  524. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/ava.prompt.md +0 -0
  525. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/bug-assess.prompt.md +0 -0
  526. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/bug-fix.prompt.md +0 -0
  527. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/change.prompt.md +0 -0
  528. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/check-review.prompt.md +0 -0
  529. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/checklist.prompt.md +0 -0
  530. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/create-context.prompt.md +0 -0
  531. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/implement.prompt.md +0 -0
  532. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/jira-push.prompt.md +0 -0
  533. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/kai.prompt.md +0 -0
  534. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/leo.prompt.md +0 -0
  535. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/maya.prompt.md +0 -0
  536. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/morgan.prompt.md +0 -0
  537. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/orchestrate.prompt.md +0 -0
  538. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/plan-adr.prompt.md +0 -0
  539. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/plan-arch.prompt.md +0 -0
  540. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/plan-design.prompt.md +0 -0
  541. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/plan-hld.prompt.md +0 -0
  542. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/plan-lld.prompt.md +0 -0
  543. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/pre-review.prompt.md +0 -0
  544. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/quinn.prompt.md +0 -0
  545. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/release.prompt.md +0 -0
  546. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/rex.prompt.md +0 -0
  547. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/riley.prompt.md +0 -0
  548. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/specify-brd.prompt.md +0 -0
  549. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/specify-doc.prompt.md +0 -0
  550. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/specify-srd.prompt.md +0 -0
  551. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/specify-uc.prompt.md +0 -0
  552. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/specify.prompt.md +0 -0
  553. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/submit-review.prompt.md +0 -0
  554. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/task.prompt.md +0 -0
  555. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/prompts/taskstoissues.prompt.md +0 -0
  556. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.github/workflows/quality-gate.yml +0 -0
  557. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.gitignore +0 -0
  558. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.gitlab-ci.yml +0 -0
  559. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/contexts/CONTEXT-GUIDE.md +0 -0
  560. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/memory/change-rules.md +0 -0
  561. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/memory/constitution.md +0 -0
  562. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/memory/roles.yml +0 -0
  563. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/memory/summary-rules.md +0 -0
  564. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/memory/token-pricing.yml.example +0 -0
  565. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/adr-template.md +0 -0
  566. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/analyze-template.md +0 -0
  567. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/api-spec-template.md +0 -0
  568. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/arch-template.md +0 -0
  569. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/brd-template.md +0 -0
  570. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/changeset-template.md +0 -0
  571. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/checklist-template.md +0 -0
  572. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/constitution-amendment-template.md +0 -0
  573. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/context-template.md +0 -0
  574. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/data-model-template.md +0 -0
  575. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/design-template.md +0 -0
  576. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/docker-config-template.md +0 -0
  577. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/feature-story-template.md +0 -0
  578. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/hld-template.md +0 -0
  579. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/investigation-template.md +0 -0
  580. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/jira-export-template.md +0 -0
  581. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/lld-template.md +0 -0
  582. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/plan-template.md +0 -0
  583. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/qa-testcases-template.md +0 -0
  584. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/release-template.md +0 -0
  585. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/resilience-template.md +0 -0
  586. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/runbook-template.md +0 -0
  587. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/screen-spec-template.md +0 -0
  588. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/security-design-template.md +0 -0
  589. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/srd-template.md +0 -0
  590. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/tasks-template.md +0 -0
  591. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/token-usage-template.md +0 -0
  592. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/use-cases-template.md +0 -0
  593. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/ux-flow-template.md +0 -0
  594. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.specify/templates/validate-template.md +0 -0
  595. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.vscode/extensions.json +0 -0
  596. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/.windsurfrules +0 -0
  597. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/CHANGE-GUIDE.md +0 -0
  598. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/CLAUDE.local.md +0 -0
  599. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/FLOW-ROLES-GATES.md +0 -0
  600. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/IMPROVEMENT-BACKLOG.md +0 -0
  601. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/QUICKSTART.md +0 -0
  602. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/README.md +0 -0
  603. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/SDLC-COMPLETE-GUIDE.md +0 -0
  604. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/WHY-SDD.md +0 -0
  605. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/azure-pipelines.yml +0 -0
  606. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/bitbucket-pipelines.yml +0 -0
  607. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/docs/SUMMARY-GUIDE.md +0 -0
  608. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/setup.ps1 +0 -0
  609. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-mobile/setup.sh +0 -0
  610. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/address-review.md +0 -0
  611. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/analyze.md +0 -0
  612. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/ava.md +0 -0
  613. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/bug-assess.md +0 -0
  614. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/bug-fix.md +0 -0
  615. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/change.md +0 -0
  616. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/check-review.md +0 -0
  617. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/checklist.md +0 -0
  618. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/clarify.md +0 -0
  619. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/create-context.md +0 -0
  620. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/implement.md +0 -0
  621. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/jira-push.md +0 -0
  622. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/kai.md +0 -0
  623. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/leo.md +0 -0
  624. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/maya.md +0 -0
  625. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/morgan.md +0 -0
  626. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/orchestrate.md +0 -0
  627. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/plan-adr.md +0 -0
  628. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/plan-arch.md +0 -0
  629. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/plan-design.md +0 -0
  630. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/plan-hld.md +0 -0
  631. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/plan-lld.md +0 -0
  632. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/pre-review.md +0 -0
  633. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/quinn.md +0 -0
  634. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/release.md +0 -0
  635. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/rex.md +0 -0
  636. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/riley.md +0 -0
  637. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/specify-brd.md +0 -0
  638. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/specify-doc.md +0 -0
  639. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/specify-srd.md +0 -0
  640. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/specify-uc.md +0 -0
  641. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/specify.md +0 -0
  642. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/start.md +0 -0
  643. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/submit-review.md +0 -0
  644. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/task.md +0 -0
  645. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/taskstoissues.md +0 -0
  646. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.claude/commands/validate.md +0 -0
  647. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.cursor/rules/sdd-framework.mdc +0 -0
  648. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/copilot-instructions.md +0 -0
  649. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/instructions/domain.instructions.md +0 -0
  650. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/instructions/entrypoints.instructions.md +0 -0
  651. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/instructions/tests.instructions.md +0 -0
  652. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/address-review.prompt.md +0 -0
  653. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/ava.prompt.md +0 -0
  654. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/bug-assess.prompt.md +0 -0
  655. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/bug-fix.prompt.md +0 -0
  656. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/change.prompt.md +0 -0
  657. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/check-review.prompt.md +0 -0
  658. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/checklist.prompt.md +0 -0
  659. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/create-context.prompt.md +0 -0
  660. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/implement.prompt.md +0 -0
  661. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/jira-push.prompt.md +0 -0
  662. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/kai.prompt.md +0 -0
  663. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/leo.prompt.md +0 -0
  664. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/maya.prompt.md +0 -0
  665. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/morgan.prompt.md +0 -0
  666. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/orchestrate.prompt.md +0 -0
  667. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/plan-adr.prompt.md +0 -0
  668. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/plan-arch.prompt.md +0 -0
  669. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/plan-design.prompt.md +0 -0
  670. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/plan-hld.prompt.md +0 -0
  671. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/plan-lld.prompt.md +0 -0
  672. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/pre-review.prompt.md +0 -0
  673. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/quinn.prompt.md +0 -0
  674. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/release.prompt.md +0 -0
  675. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/rex.prompt.md +0 -0
  676. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/riley.prompt.md +0 -0
  677. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/specify-brd.prompt.md +0 -0
  678. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/specify-doc.prompt.md +0 -0
  679. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/specify-srd.prompt.md +0 -0
  680. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/specify-uc.prompt.md +0 -0
  681. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/specify.prompt.md +0 -0
  682. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/submit-review.prompt.md +0 -0
  683. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/task.prompt.md +0 -0
  684. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/prompts/taskstoissues.prompt.md +0 -0
  685. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.github/workflows/quality-gate.yml +0 -0
  686. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.gitignore +0 -0
  687. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.gitlab-ci.yml +0 -0
  688. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/contexts/CONTEXT-GUIDE.md +0 -0
  689. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/memory/change-rules.md +0 -0
  690. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/memory/constitution.md +0 -0
  691. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/memory/roles.yml +0 -0
  692. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/memory/summary-rules.md +0 -0
  693. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/memory/token-pricing.yml.example +0 -0
  694. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/adr-template.md +0 -0
  695. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/analyze-template.md +0 -0
  696. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/api-spec-template.md +0 -0
  697. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/arch-template.md +0 -0
  698. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/brd-template.md +0 -0
  699. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/changeset-template.md +0 -0
  700. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/checklist-template.md +0 -0
  701. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/constitution-amendment-template.md +0 -0
  702. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/context-template.md +0 -0
  703. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/data-model-template.md +0 -0
  704. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/design-template.md +0 -0
  705. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/docker-config-template.md +0 -0
  706. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/feature-story-template.md +0 -0
  707. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/hld-template.md +0 -0
  708. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/investigation-template.md +0 -0
  709. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/jira-export-template.md +0 -0
  710. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/k8s-manifest-template.md +0 -0
  711. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/lld-template.md +0 -0
  712. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/openapi-template.md +0 -0
  713. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/plan-template.md +0 -0
  714. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/qa-testcases-template.md +0 -0
  715. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/release-template.md +0 -0
  716. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/resilience-template.md +0 -0
  717. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/runbook-template.md +0 -0
  718. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/security-design-template.md +0 -0
  719. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/srd-template.md +0 -0
  720. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/tasks-template.md +0 -0
  721. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/token-usage-template.md +0 -0
  722. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/use-cases-template.md +0 -0
  723. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.specify/templates/validate-template.md +0 -0
  724. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.vscode/extensions.json +0 -0
  725. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/.windsurfrules +0 -0
  726. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/CHANGE-GUIDE.md +0 -0
  727. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/CLAUDE.local.md +0 -0
  728. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/FLOW-ROLES-GATES.md +0 -0
  729. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/IMPROVEMENT-BACKLOG.md +0 -0
  730. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/QUICKSTART.md +0 -0
  731. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/README.md +0 -0
  732. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/SDLC-COMPLETE-GUIDE.md +0 -0
  733. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/WHY-SDD.md +0 -0
  734. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/azure-pipelines.yml +0 -0
  735. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/bitbucket-pipelines.yml +0 -0
  736. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/docs/SUMMARY-GUIDE.md +0 -0
  737. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/setup.ps1 +0 -0
  738. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/packs/sdd-universal/setup.sh +0 -0
  739. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/utils/__init__.py +0 -0
  740. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/utils/atlassian_auth.py +0 -0
  741. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/utils/cf_to_md.py +0 -0
  742. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/utils/confluence_client.py +0 -0
  743. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/utils/dashboard_comments.py +0 -0
  744. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/utils/detect.py +0 -0
  745. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/utils/git_host.py +0 -0
  746. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/utils/integrations.py +0 -0
  747. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/utils/jira_client.py +0 -0
  748. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/utils/manifest.py +0 -0
  749. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/utils/md_to_cf.py +0 -0
  750. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/utils/mermaid_render.py +0 -0
  751. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/utils/scaffold.py +0 -0
  752. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/utils/sdd_parser.py +0 -0
  753. {sddflow-2.7.55 → sddflow-2.7.59}/sdd/utils/status.py +0 -0
  754. {sddflow-2.7.55 → 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.55
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
@@ -447,7 +447,12 @@ History` row. A question asked in more than one document (the table's
447
447
  `Locations` column lists more than one ID, e.g. `brd:NC-003, srd:NC-001`)
448
448
  gets the same answer applied everywhere at once. Safe to call
449
449
  unconditionally (e.g. at the top of every `/validate` run) — it exits
450
- quietly whenever there's nothing to do.
450
+ quietly whenever there's nothing to do. If a document predates
451
+ `[NEEDS CLARIFICATION-NNN]` numbering and still has the old unnumbered
452
+ `[NEEDS CLARIFICATION: ...]` form, `pull-answers` retroactively numbers it
453
+ first, in order of appearance, before patching. Each patched document's
454
+ own Confluence page (when `confluence:` is configured) is also re-pushed
455
+ immediately, so it never goes stale relative to the answered `.md`.
451
456
 
452
457
  ---
453
458
 
@@ -412,7 +412,12 @@ History` row. A question asked in more than one document (the table's
412
412
  `Locations` column lists more than one ID, e.g. `brd:NC-003, srd:NC-001`)
413
413
  gets the same answer applied everywhere at once. Safe to call
414
414
  unconditionally (e.g. at the top of every `/validate` run) — it exits
415
- quietly whenever there's nothing to do.
415
+ quietly whenever there's nothing to do. If a document predates
416
+ `[NEEDS CLARIFICATION-NNN]` numbering and still has the old unnumbered
417
+ `[NEEDS CLARIFICATION: ...]` form, `pull-answers` retroactively numbers it
418
+ first, in order of appearance, before patching. Each patched document's
419
+ own Confluence page (when `confluence:` is configured) is also re-pushed
420
+ immediately, so it never goes stale relative to the answered `.md`.
416
421
 
417
422
  ---
418
423
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "sddflow"
7
- version = "2.7.55"
7
+ version = "2.7.59"
8
8
  description = "SDD Framework CLI — initialize and upgrade Spec-Driven Development packs"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -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 _push_doc_page(doc: str, md_path: Path, feature_name: str) -> str | None:
119
- """Upsert the document's Confluence page so it reflects the approved .md.
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 the page title on success, or None when Confluence is not
122
- configured. Raises on push errors — callers decide how fatal that is.
123
- Page title resolution matches `sdd review submit`: document_reviews entry
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
- return title
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
 
@@ -527,7 +574,7 @@ def review_command():
527
574
 
528
575
  @review_command.command("submit")
529
576
  @click.option("--doc", required=True,
530
- help="Document key: brd, use-cases, srd, design (unified) / arch, hld, adr (separate), lld, tasks, runbook, release")
577
+ help="Document key: brd, use-cases, srd, design (unified) / arch, hld, adr (separate), validate, analyze, clarify, lld, tasks, runbook, release")
531
578
  @click.option("--profile", default=None)
532
579
  @click.option("--feature", default=None)
533
580
  def review_submit(doc, profile, feature):
@@ -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
- page_title = _push_doc_page(doc, md_path, feature_name)
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
 
@@ -932,6 +991,7 @@ def review_pull_answers(doc, profile, feature):
932
991
  raise SystemExit(0)
933
992
 
934
993
  patched_docs: dict[str, int] = {}
994
+ patched_paths: dict[str, Path] = {}
935
995
  for item in items:
936
996
  # The reviewer only ever cites the row's primary ID (item["id"]) --
937
997
  # that single answer must propagate to every location listed for
@@ -950,6 +1010,7 @@ def review_pull_answers(doc, profile, feature):
950
1010
  continue
951
1011
  if _patch_marker(loc_path, nnn, answer_text):
952
1012
  patched_docs[doc_key] = patched_docs.get(doc_key, 0) + 1
1013
+ patched_paths[doc_key] = loc_path
953
1014
  console.print(f" [green]✓[/green] {loc_id} resolved in {loc_path.name}")
954
1015
 
955
1016
  if patched_docs:
@@ -960,6 +1021,25 @@ def review_pull_answers(doc, profile, feature):
960
1021
  )
961
1022
  console.print()
962
1023
 
1024
+ # Re-push each patched doc's own Confluence page so it doesn't go
1025
+ # stale relative to the .md file we just edited. Until now,
1026
+ # pull-answers only ever wrote the local file -- BRD/SRD/UC's
1027
+ # Confluence pages (created back at their own /specify-brd ->
1028
+ # `sdd review submit` time) kept showing the pre-answer
1029
+ # [NEEDS CLARIFICATION] markers even after every question was
1030
+ # resolved here. Best-effort per doc: one page's failure doesn't
1031
+ # block the others or the patching that already succeeded.
1032
+ if cfg.confluence:
1033
+ for doc_key, loc_path in patched_paths.items():
1034
+ try:
1035
+ pushed = _push_doc_page(doc_key, loc_path, feature_name)
1036
+ if pushed:
1037
+ title, _page_url = pushed
1038
+ console.print(f" [green]✓[/green] Confluence page refreshed: [cyan]{title}[/cyan]")
1039
+ except Exception as e:
1040
+ console.print(f" [yellow]! Could not refresh Confluence page for {doc_key}: {e}[/yellow]")
1041
+ console.print()
1042
+
963
1043
 
964
1044
  # ── sdd review check ───────────────────────────────────────────────────────────
965
1045
 
@@ -1010,10 +1090,22 @@ def review_check(doc, profile, feature):
1010
1090
  raise SystemExit(3)
1011
1091
 
1012
1092
  client = JiraClient(session, prof.base_url)
1013
- 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)
1014
1094
  doc_cfg = cfg.document_reviews.get(doc)
1015
1095
  role = doc_cfg.reviewer_role if doc_cfg else "reviewer"
1016
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
+
1017
1109
  if status == "APPROVED":
1018
1110
  console.print(f" [green]✓ {doc.upper()} — APPROVED[/green]")
1019
1111
  console.print()
@@ -1095,7 +1187,7 @@ def review_comments(doc, feature, ack):
1095
1187
 
1096
1188
  @review_command.command("approve")
1097
1189
  @click.option("--doc", required=True,
1098
- help="Document key: brd, use-cases, srd, design (unified) / arch, hld, adr (separate), lld, ...")
1190
+ help="Document key: brd, use-cases, srd, design (unified) / arch, hld, adr (separate), validate, analyze, clarify, lld, ...")
1099
1191
  @click.option("--local", is_flag=True, required=True,
1100
1192
  help="Write a local approval record (fallback when Jira is not configured)")
1101
1193
  @click.option("--by", default="chat",
@@ -1144,8 +1236,9 @@ def review_approve(doc, local, by, note, feature, no_confluence):
1144
1236
  try:
1145
1237
  manifest = read_manifest() or {}
1146
1238
  feature_name = feature or (manifest.get("project") or {}).get("feature", "")
1147
- title = _push_doc_page(doc, md_path, feature_name)
1148
- if title:
1239
+ pushed = _push_doc_page(doc, md_path, feature_name)
1240
+ if pushed:
1241
+ title, _page_url = pushed
1149
1242
  console.print(f" [green]✓[/green] Confluence page updated: [cyan]{title}[/cyan]")
1150
1243
  else:
1151
1244
  console.print(" [dim]· Confluence not configured — page not updated[/dim]")
@@ -1214,31 +1307,21 @@ def review_apply(doc, profile, feature):
1214
1307
  console.print(f" [red]✗ '{doc}' not found in document_reviews[/red]")
1215
1308
  raise SystemExit(1)
1216
1309
 
1217
- project_name = proj.get("name", "Project")
1218
-
1219
1310
  jira_client = JiraClient(session, prof.base_url)
1220
- cf_client = ConfluenceClient(session, prof.base_url)
1221
1311
 
1222
- # 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)
1223
1314
  try:
1224
1315
  md_path = resolve_doc_path(doc, feature_name)
1225
1316
  except ValueError as e:
1226
1317
  console.print(f" [red]✗ {e}[/red]")
1227
1318
  raise SystemExit(1)
1228
- page_url = ""
1319
+ page_url = ""
1229
1320
  if md_path.exists():
1230
- page_title = doc_cfg.confluence_page.replace("{project}", project_name).replace("{feature}", feature_name)
1231
- body_html, attachments, diagram_warnings = md_to_storage(md_path.read_text(), cfg.confluence.diagrams)
1232
- from sdd.commands.confluence import resolve_doc_parent_id, upload_diagram_attachments
1233
- parent_id = resolve_doc_parent_id(cf_client, cfg.confluence, project_name, feature_name, doc)
1234
- page, _ = cf_client.upsert_page(
1235
- cfg.confluence.space_key, page_title, body_html, parent_id,
1236
- )
1237
- upload_diagram_attachments(cf_client, page["id"], attachments)
1238
- page_url = f"{prof.base_url}/wiki{page.get('_links', {}).get('webui', '')}"
1239
- console.print(f" [green]✓[/green] Confluence updated: [cyan]{page_title}[/cyan]")
1240
- for w in diagram_warnings:
1241
- 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]")
1242
1325
  else:
1243
1326
  console.print(f" [dim]·[/dim] {md_path} not found — skipping Confluence update")
1244
1327
 
@@ -1318,7 +1401,7 @@ def review_status(profile, feature):
1318
1401
  icon, label, style = "🔒", "Blocked", "dim"
1319
1402
  all_statuses[key] = "BLOCKED"
1320
1403
  else:
1321
- 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)
1322
1405
  all_statuses[key] = st
1323
1406
  if st == "APPROVED":
1324
1407
  icon, label, style = "✓ ", "Approved", "green"
@@ -2204,6 +2204,144 @@ MIGRATIONS = [
2204
2204
  ],
2205
2205
  "migrate": lambda m: {**m, "sdd_version": "2.7.55"},
2206
2206
  },
2207
+ {
2208
+ "from": "2.7.55",
2209
+ "to": "2.7.56",
2210
+ "description": "Fix: sdd review pull-answers patched BRD/SRD/UC locally but never refreshed their existing Confluence pages, leaving them showing stale pre-answer [NEEDS CLARIFICATION] markers -- no manifest schema changes",
2211
+ "notes": [
2212
+ "User-reported: after /validate's push-questions/pull-answers "
2213
+ "round-trip resolved every open question, brd.md/srd.md/"
2214
+ "use-cases.md were updated on disk and their versions bumped, "
2215
+ "but their Confluence pages (created back at their own "
2216
+ "/specify-brd -> sdd review submit time) still showed the old "
2217
+ "unresolved markers -- only validate.md's own page was ever "
2218
+ "touched by push-questions/pull-answers",
2219
+ "review_pull_answers now tracks the on-disk path of every doc "
2220
+ "it successfully patches, and after the patch loop, re-pushes "
2221
+ "each one's Confluence page via the same _push_doc_page() "
2222
+ "helper sdd review approve already uses -- best-effort per "
2223
+ "doc, so one page's failure never blocks the others or the "
2224
+ "patching that already succeeded",
2225
+ "Only runs when confluence: is configured in integrations.yml; "
2226
+ "silently skipped otherwise, matching the rest of "
2227
+ "pull-answers' safe-to-call-unconditionally contract",
2228
+ "1 new test: push-questions -> answer -> pull-answers, "
2229
+ "confirming both patched docs' Confluence pages are created/"
2230
+ "updated with the expected page-map titles",
2231
+ "This migration only bumps sdd_version -- no manifest.yml "
2232
+ "field changes for any pack",
2233
+ ],
2234
+ "migrate": lambda m: {**m, "sdd_version": "2.7.56"},
2235
+ },
2236
+ {
2237
+ "from": "2.7.56",
2238
+ "to": "2.7.57",
2239
+ "description": "Guardrail: validate.prompt.md Step C no longer lets a document-level approval auto-check per-item §1-§4 confirmation checkboxes -- no manifest schema changes",
2240
+ "notes": [
2241
+ "User-reported (from a live project's /analyze run): a prior "
2242
+ "agent session, chasing the analyze.prompt.md verify gate's "
2243
+ "literal 'VALIDATE complete' string, bulk-checked every "
2244
+ "unchecked box in validate.md's §1 (Reviewer Confirms), §2 "
2245
+ "(BA/PO Confirms), §3 (assumption Correct?), §3a (UC Business "
2246
+ "Scenario Correct?), and §4 (Scope Confirmation) -- inferring "
2247
+ "itemized per-line business sign-off purely from the "
2248
+ "document's overall Jira ticket having been closed after a "
2249
+ "Q&A comment thread, which is not the same as a named "
2250
+ "reviewer actually addressing that specific item",
2251
+ "validate.prompt.md's own Step C only ever specified updating "
2252
+ "the header (Status: Draft -> Approved) and the §5 Approvals "
2253
+ "table -- the agent's bulk-check of §1-§4 was not something "
2254
+ "the prompt told it to do; this migration tightens the "
2255
+ "wording to explicitly forbid it and to say what to do "
2256
+ "instead (leave unchecked with a note, or point to the "
2257
+ "specific reviewer statement that confirmed that exact item)",
2258
+ "This matters most for regulated/financial-transfer features "
2259
+ "where §1-§4's checkboxes are meant to be a traceable, "
2260
+ "defensible audit trail of actual line-item business review "
2261
+ "-- not a formality that gets rubber-stamped to satisfy a "
2262
+ "downstream gate's string match",
2263
+ "Applied identically to validate.prompt.md in all 5 packs "
2264
+ "(not a shared/blocks file -- each pack's copy edited "
2265
+ "individually, same wording)",
2266
+ "This migration only bumps sdd_version -- no manifest.yml "
2267
+ "field changes for any pack",
2268
+ ],
2269
+ "migrate": lambda m: {**m, "sdd_version": "2.7.57"},
2270
+ },
2271
+ {
2272
+ "from": "2.7.57",
2273
+ "to": "2.7.58",
2274
+ "description": "Feature: analyze.md and clarify.md can now go through the same Jira/Confluence review-gate flow as brd/srd/etc (a new 'validate' phase) -- no manifest schema changes",
2275
+ "notes": [
2276
+ "User asked why /analyze and /clarify never got pushed to "
2277
+ "Confluence/Jira the way /validate does -- by design they "
2278
+ "were chat-only working documents, but nothing in "
2279
+ "resolve_doc_path/review_submit/review_approve actually "
2280
+ "required that; they're fully generic by doc key",
2281
+ "Added document_reviews.validate/.analyze/.clarify entries "
2282
+ "to integrations.yml.example (phase: validate, sequence "
2283
+ "1/2/3 -- validate before analyze before clarify, enforced "
2284
+ "by the same predecessor-sequence gate every other phase "
2285
+ "already uses), plus matching page_map entries",
2286
+ "analyze.prompt.md and clarify.prompt.md (all 5 packs) gained "
2287
+ "the same Stakeholder Review and Approval Step B/C section "
2288
+ "validate.prompt.md already has -- sdd review submit/check/"
2289
+ "approve, same approval-signal handling, same guardrail "
2290
+ "against inferring per-section findings as individually "
2291
+ "confirmed by a document-level approval",
2292
+ "Fixed clarify-template.md's header, which said "
2293
+ "'Status: OPEN' instead of 'Status: Draft' -- "
2294
+ "_mark_md_approved's regex only recognizes Draft/Proposed, "
2295
+ "so the approval flip would have silently never updated the "
2296
+ "header for clarify.md without this fix",
2297
+ "Each of validate/analyze/clarify is optional individually -- "
2298
+ "add only the ones you want routed through Jira/Confluence; "
2299
+ "the rest stay chat-only, per review-gates.md",
2300
+ "4 new tests: generic submit works for analyze/clarify doc "
2301
+ "keys, the validate-phase sequence gate blocks analyze until "
2302
+ "validate is approved, and the clarify.md header fix is "
2303
+ "confirmed to make the approval flow work end-to-end",
2304
+ "This migration only bumps sdd_version -- no manifest.yml "
2305
+ "field changes for any pack",
2306
+ ],
2307
+ "migrate": lambda m: {**m, "sdd_version": "2.7.58"},
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
+ },
2207
2345
  ]
2208
2346
 
2209
2347
 
@@ -79,6 +79,54 @@ CF-NNN IDs. Include in analyze.summary.md:
79
79
 
80
80
  - Save to: .specify/features/{manifest.project.feature}/analyze.md
81
81
  - Save summary to: analyze.summary.md (max SUMMARY_MAX_LINES)
82
+ - Present the report.
83
+
84
+ ### Stakeholder Review and Approval
85
+
86
+ **Step B — Formal submission**
87
+
88
+ If `.specify/integrations.yml` has `document_reviews.analyze` configured:
89
+ ```bash
90
+ sdd review submit --doc analyze
91
+ ```
92
+ If the command succeeds, tell the user:
93
+ > "Analysis report submitted for Jira review. Reply **'approved'** (or 'yes', 'LGTM', 'looks good') once the Tech Lead approves."
94
+
95
+ If the CLI fails or is not configured, present the document and ask:
96
+ > "Analysis report generated. Review §1–§9 above and reply **'approved'** (or 'yes', 'LGTM', 'looks good') to continue, or provide feedback:"
97
+
98
+ **Step C — On approval (any path: Jira or chat)**
99
+
100
+ When the user replies with any approval signal — **'approved'**, **'approve'**, **'yes'**, **'LGTM'**, **'looks good'**, **'go ahead'**, **'confirmed'**, or any similar affirmative (case-insensitive):
101
+ 1. Run `sdd review check --doc analyze` to verify:
102
+ - Exit 0 → confirmed. Proceed.
103
+ - Non-0 and CLI is configured → warn: "Jira shows not yet approved. Confirm you want to proceed? (yes/no)" — wait for response.
104
+ - CLI not available → skip check and proceed.
105
+ 2. Update `analyze.md`:
106
+ - Header: `Status: Draft` → `Status: Approved`, date → today.
107
+ - Approvals table: all Pending rows → `Approved` + today's date.
108
+ - Version History: append a row using the document's **current**
109
+ version (a pure approval doesn't bump it):
110
+ `| {current version} | {today} | {jira or chat} | Approved | — |`
111
+ - **Never** use this document-level approval signal to also check any
112
+ of the per-item risk/dependency/complexity findings in §1–§9 as
113
+ resolved — approval here means "the analysis is sound and complete
114
+ enough to proceed," not that every CF-NNN finding or R-NNN risk has
115
+ been individually addressed. Those are tracked to closure by
116
+ /clarify and /task, not by this approval.
117
+ 3. Re-save `analyze.md` and regenerate `analyze.summary.md`.
118
+ 4. Ask once: "Recording the approval — approver name/role and an optional comment?"
119
+ (defaults: the accountable role for this gate in roles.yml; "approved in chat")
120
+ 5. Record locally and sync Confluence:
121
+ ```bash
122
+ sdd review approve --doc analyze --local --by "{approver}" --note "{comment}"
123
+ ```
124
+ This also updates the document's existing Confluence page when a `confluence:`
125
+ section exists in `.specify/integrations.yml`.
126
+ If the command fails or the CLI is not installed, note: "Analyze approved ✓
127
+ (Confluence page not updated)" and continue — the `Status: Approved` header is
128
+ the authoritative gate.
129
+
82
130
  <!-- shared:token-usage-log-step:start -->
83
131
  ## Token Usage Logging (this command)
84
132
  Check now, with a fresh file read — not a memory of whether
@@ -93,4 +141,4 @@ update its Running Totals table. If the file still doesn't exist, skip
93
141
  this silently — do not create it and do not mention it.
94
142
  <!-- shared:token-usage-log-step:end -->
95
143
 
96
- - Wait for review before CLARIFY.
144
+ - Do NOT proceed to /clarify until the approval above is recorded.
@@ -81,6 +81,53 @@ For each spec document with content affected by a resolved item:
81
81
 
82
82
  Write `.specify/features/{manifest.project.feature}/clarify.summary.md` — confirm all items RESOLVED. If any items were resolved by best guess, list them so the Plan-Design reviewer is aware.
83
83
 
84
+ ### Step 6 — Stakeholder Review and Approval
85
+
86
+ **Step B — Formal submission**
87
+
88
+ If `.specify/integrations.yml` has `document_reviews.clarify` configured:
89
+ ```bash
90
+ sdd review submit --doc clarify
91
+ ```
92
+ If the command succeeds, tell the user:
93
+ > "Clarification report submitted for Jira review. Reply **'approved'** (or 'yes', 'LGTM', 'looks good') once the Architect approves."
94
+
95
+ If the CLI fails or is not configured, present the document and ask:
96
+ > "Clarification report generated — all items resolved. Review the answers above and reply **'approved'** (or 'yes', 'LGTM', 'looks good') to continue, or provide feedback:"
97
+
98
+ **Step C — On approval (any path: Jira or chat)**
99
+
100
+ When the user replies with any approval signal — **'approved'**, **'approve'**, **'yes'**, **'LGTM'**, **'looks good'**, **'go ahead'**, **'confirmed'**, or any similar affirmative (case-insensitive):
101
+ 1. Run `sdd review check --doc clarify` to verify:
102
+ - Exit 0 → confirmed. Proceed.
103
+ - Non-0 and CLI is configured → warn: "Jira shows not yet approved. Confirm you want to proceed? (yes/no)" — wait for response.
104
+ - CLI not available → skip check and proceed.
105
+ 2. Update `clarify.md`:
106
+ - Header: `Status: Draft` → `Status: Approved`, date → today.
107
+ - Approvals table: all Pending rows → `Approved` + today's date.
108
+ - Version History: append a row using the document's **current**
109
+ version (a pure approval doesn't bump it — Step 3 above already
110
+ bumped it when the items were resolved):
111
+ `| {current version} | {today} | {jira or chat} | Approved | — |`
112
+ - This approval confirms the Architect has reviewed the resolved
113
+ answers (including any best-guess items) and is satisfied to
114
+ proceed to /plan-design — it does not re-open, and must not be
115
+ used to silently overwrite, the per-item RESOLVED/CONFIRMED/
116
+ DECIDED/CORRECTED status already recorded in the STATUS TABLE at
117
+ Step 3.
118
+ 3. Re-save `clarify.md` and regenerate `clarify.summary.md`.
119
+ 4. Ask once: "Recording the approval — approver name/role and an optional comment?"
120
+ (defaults: the accountable role for this gate in roles.yml; "approved in chat")
121
+ 5. Record locally and sync Confluence:
122
+ ```bash
123
+ sdd review approve --doc clarify --local --by "{approver}" --note "{comment}"
124
+ ```
125
+ This also updates the document's existing Confluence page when a `confluence:`
126
+ section exists in `.specify/integrations.yml`.
127
+ If the command fails or the CLI is not installed, note: "Clarify approved ✓
128
+ (Confluence page not updated)" and continue — the `Status: Approved` header is
129
+ the authoritative gate.
130
+
84
131
  <!-- shared:token-usage-log-step:start -->
85
132
  ## Token Usage Logging (this command)
86
133
  Check now, with a fresh file read — not a memory of whether
@@ -155,6 +155,19 @@ When the user replies with any approval signal — **'approved'**, **'approve'**
155
155
  version (a pure approval doesn't bump it — only an assumption
156
156
  correction in §3 above does):
157
157
  `| {current version} | {today} | {jira or chat} | Approved | — |`
158
+ - **Never** use this document-level approval signal to also check any
159
+ of the per-item confirmation checkboxes in §1 (Reviewer Confirms),
160
+ §2 (BA Confirms / PO Confirms), §3 (Correct?), §3a (Business
161
+ Scenario Correct?), or §4 (Scope Confirmation). Those require the
162
+ named reviewer to have actually addressed that *specific* item —
163
+ a blanket "approved" reply, a Jira status flip to Done/Closed, or a
164
+ comment thread that only answered NEEDS CLARIFICATION questions is
165
+ not itemized evidence for them. If any of those boxes are still
166
+ `[ ]` when the header flips to Approved, leave them `[ ]` and add a
167
+ note under §5: "Approved as a whole document; items in §1–§4 were
168
+ not itemized during review." Only check a specific box when you can
169
+ point to the actual reviewer statement that confirmed that exact
170
+ item.
158
171
  3. Re-save `validate.md` and regenerate `validate.summary.md`.
159
172
  4. Ask once: "Recording the approval — approver name/role and an optional comment?"
160
173
  (defaults: the accountable role for this gate in roles.yml; "approved in chat")