aw-spec-cli 0.1.4 → 0.1.5

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 (254) hide show
  1. package/assets/.agents/agent.json +28 -0
  2. package/assets/.agents/skills/aw-spec-orch/SKILL.md +56 -0
  3. package/assets/.agents/skills/aw-spec-orch-demo/SKILL.md +59 -0
  4. package/assets/.aw-spec/DESIGN-FORMAT.md +151 -0
  5. package/assets/.aw-spec/ORCH-DIALECT.md +156 -0
  6. package/assets/.aw-spec/RULE-PARTITION.md +126 -0
  7. package/assets/.aw-spec/extensions/agent-context/extension.yml +12 -9
  8. package/assets/.aw-spec/extensions.yml +12 -19
  9. package/assets/.aw-spec/integrations/aw-spec.manifest.json +1 -9
  10. package/assets/.aw-spec/interpreter/run-skill.py +1158 -0
  11. package/assets/.aw-spec/orchestrator/AGENT-PROFILE.md +94 -0
  12. package/assets/.aw-spec/orchestrator/README.md +300 -0
  13. package/assets/.aw-spec/orchestrator/adapters/claude_agent_sdk.py +74 -0
  14. package/assets/.aw-spec/orchestrator/adapters/google_antigravity.py +74 -0
  15. package/assets/.aw-spec/orchestrator/modules/delta-design.orch.yaml +105 -0
  16. package/assets/.aw-spec/orchestrator/modules/delta-spec.orch.yaml +79 -0
  17. package/assets/.aw-spec/orchestrator/modules/domain-select.orch.yaml +81 -0
  18. package/assets/.aw-spec/orchestrator/modules/tech-select.orch.yaml +75 -0
  19. package/assets/.aw-spec/orchestrator/orchestrator.py +1721 -0
  20. package/assets/.aw-spec/orchestrator/rev-templates/ai-rules.reference.md +40 -0
  21. package/assets/.aw-spec/orchestrator/rev-templates/comandrulemap.skeleton.md +59 -0
  22. package/assets/.aw-spec/orchestrator/rev-templates/commandtechrulemap.skeleton.md +97 -0
  23. package/assets/.aw-spec/orchestrator/rev-templates/domain-constitution.skeleton.md +61 -0
  24. package/assets/.aw-spec/orchestrator/rev-templates/domain-requirements.skeleton.md +48 -0
  25. package/assets/.aw-spec/orchestrator/rev-templates/domain-rule-file.skeleton.md +39 -0
  26. package/assets/.aw-spec/orchestrator/rev-templates/technical-constitution.skeleton.md +106 -0
  27. package/assets/.aw-spec/orchestrator/rev-templates/technical-rule-file.skeleton.md +54 -0
  28. package/assets/.aw-spec/orchestrator/workflows/_smoke.orch.yaml +160 -0
  29. package/assets/.aw-spec/orchestrator/workflows/aw-spec-add-component.orch.yaml +244 -0
  30. package/assets/.aw-spec/orchestrator/workflows/aw-spec-adopt.orch.yaml +775 -0
  31. package/assets/.aw-spec/orchestrator/workflows/aw-spec-analyze-delta-design.orch.yaml +248 -0
  32. package/assets/.aw-spec/orchestrator/workflows/aw-spec-analyze-design.orch.yaml +261 -0
  33. package/assets/.aw-spec/orchestrator/workflows/aw-spec-analyze-slice.orch.yaml +425 -0
  34. package/assets/.aw-spec/orchestrator/workflows/aw-spec-build.orch.yaml +188 -0
  35. package/assets/.aw-spec/orchestrator/workflows/aw-spec-characterize.orch.yaml +474 -0
  36. package/assets/.aw-spec/orchestrator/workflows/aw-spec-close-delta.orch.yaml +181 -0
  37. package/assets/.aw-spec/orchestrator/workflows/aw-spec-constitution.orch.yaml +284 -0
  38. package/assets/.aw-spec/orchestrator/workflows/aw-spec-demo.orch.yaml +103 -0
  39. package/assets/.aw-spec/orchestrator/workflows/aw-spec-dependency-tree.orch.yaml +69 -0
  40. package/assets/.aw-spec/orchestrator/workflows/aw-spec-deploy.orch.yaml +85 -0
  41. package/assets/.aw-spec/orchestrator/workflows/aw-spec-design.orch.yaml +382 -0
  42. package/assets/.aw-spec/orchestrator/workflows/aw-spec-finalize-delta.orch.yaml +382 -0
  43. package/assets/.aw-spec/orchestrator/workflows/aw-spec-foundation.orch.yaml +246 -0
  44. package/assets/.aw-spec/orchestrator/workflows/aw-spec-implement-delta.orch.yaml +231 -0
  45. package/assets/.aw-spec/orchestrator/workflows/aw-spec-implement.orch.yaml +258 -0
  46. package/assets/.aw-spec/orchestrator/workflows/aw-spec-inventory.orch.yaml +236 -0
  47. package/assets/.aw-spec/orchestrator/workflows/aw-spec-onboard.orch.yaml +949 -0
  48. package/assets/.aw-spec/orchestrator/workflows/aw-spec-parity.orch.yaml +293 -0
  49. package/assets/.aw-spec/orchestrator/workflows/aw-spec-run.orch.yaml +177 -0
  50. package/assets/.aw-spec/orchestrator/workflows/aw-spec-select-domain.orch.yaml +79 -0
  51. package/assets/.aw-spec/orchestrator/workflows/aw-spec-select-feature.orch.yaml +128 -0
  52. package/assets/.aw-spec/orchestrator/workflows/aw-spec-specify.orch.yaml +412 -0
  53. package/assets/.aw-spec/scripts/bash/aw-inventory.sh +14 -0
  54. package/assets/.aw-spec/scripts/bash/aw-parity.sh +13 -0
  55. package/assets/.aw-spec/scripts/bash/aw-rev-constitution.sh +13 -0
  56. package/assets/.aw-spec/scripts/bash/aw-spec-actions.sh +1899 -0
  57. package/assets/.aw-spec/scripts/bash/aw-xref.sh +15 -0
  58. package/assets/.aw-spec/scripts/bash/common.sh +11 -60
  59. package/assets/.aw-spec/scripts/powershell/aw-inventory.ps1 +14 -0
  60. package/assets/.aw-spec/scripts/powershell/aw-parity.ps1 +13 -0
  61. package/assets/.aw-spec/scripts/powershell/aw-rev-constitution.ps1 +13 -0
  62. package/assets/.aw-spec/scripts/powershell/aw-spec-actions.ps1 +1563 -0
  63. package/assets/.aw-spec/scripts/powershell/aw-xref.ps1 +15 -0
  64. package/assets/.aw-spec/scripts/python/aw-inventory.py +683 -0
  65. package/assets/.aw-spec/scripts/python/aw-parity.py +380 -0
  66. package/assets/.aw-spec/scripts/python/aw-rev-constitution.py +312 -0
  67. package/assets/.aw-spec/scripts/python/aw-xref.py +1330 -0
  68. package/assets/.aw-spec/scripts/python/validate_okf.py +349 -0
  69. package/assets/.aw-spec/templates/constitution-domain-template.md +75 -0
  70. package/assets/.aw-spec/templates/constitution-technical-template.md +70 -0
  71. package/assets/.aw-spec/templates/delta-design-template.md +69 -0
  72. package/assets/.aw-spec/templates/delta-spec-template.md +60 -0
  73. package/assets/.aw-spec/templates/design-template.md +383 -0
  74. package/assets/.aw-spec/templates/okf-concept-template.md +103 -0
  75. package/assets/.aw-spec/templates/parity-manifest-template.json +49 -0
  76. package/assets/.aw-spec/templates/source-map-template.md +85 -0
  77. package/assets/.aw-spec/templates/spec-template.md +192 -71
  78. package/assets/.claude/agent.json +27 -0
  79. package/assets/.claude/skills/aw-spec-orch/SKILL.md +55 -0
  80. package/assets/.claude/skills/aw-spec-orch-demo/SKILL.md +59 -0
  81. package/assets/.kilocode/agent.json +28 -0
  82. package/assets/.kilocode/workflows/aw-spec-orch-demo.md +59 -0
  83. package/assets/.kilocode/workflows/aw-spec-orch.md +55 -0
  84. package/assets/docs/architecture/clean-architecture.md +1 -1
  85. package/assets/docs/architecture/cqrs.md +1 -1
  86. package/assets/docs/architecture/eventing.md +1 -1
  87. package/assets/docs/architecture/folder-structure.md +1 -1
  88. package/assets/docs/architecture/modular-monolith.md +1 -1
  89. package/assets/docs/architecture/persistence.md +1 -1
  90. package/assets/docs/architecture/testing.md +1 -1
  91. package/assets/docs/architecture/vertical-slices.md +1 -1
  92. package/assets/docs/components/Email/README.md +1 -1
  93. package/assets/docs/components/Jobs/README.md +1 -1
  94. package/assets/docs/components/QrGenerator/README.md +1 -1
  95. package/assets/docs/components/README.md +1 -1
  96. package/assets/docs/domain/domain-driven-design.md +1 -1
  97. package/assets/docs/domainspecs/healthcare/api-versioning.domain.md +1 -1
  98. package/assets/docs/domainspecs/healthcare/auditing.domain.md +86 -18
  99. package/assets/docs/domainspecs/healthcare/authorization.domain.md +1 -1
  100. package/assets/docs/domainspecs/healthcare/clinical-terms.md +1 -1
  101. package/assets/docs/domainspecs/healthcare/coding-standards.domain.md +1 -1
  102. package/assets/docs/domainspecs/healthcare/comandrulemap.md +58 -124
  103. package/assets/docs/domainspecs/healthcare/commandtechrulemap.md +119 -0
  104. package/assets/docs/domainspecs/healthcare/consent.md +1 -1
  105. package/assets/docs/domainspecs/healthcare/cqrs.domain.md +1 -1
  106. package/assets/docs/domainspecs/healthcare/data-classification.domain.md +1 -1
  107. package/assets/docs/domainspecs/healthcare/dependency-policy.domain.md +1 -1
  108. package/assets/docs/domainspecs/healthcare/dicom.md +1 -1
  109. package/assets/docs/domainspecs/healthcare/domain-driven-design.domain.md +1 -1
  110. package/assets/docs/domainspecs/healthcare/eventing.domain.md +1 -1
  111. package/assets/docs/domainspecs/healthcare/fhir.md +1 -1
  112. package/assets/docs/domainspecs/healthcare/folder-structure.domain.md +1 -1
  113. package/assets/docs/domainspecs/healthcare/hipaa.md +1 -1
  114. package/assets/docs/domainspecs/healthcare/hl7.md +1 -1
  115. package/assets/docs/domainspecs/healthcare/integration-terms.md +1 -1
  116. package/assets/docs/domainspecs/healthcare/persistence.domain.md +1 -1
  117. package/assets/docs/domainspecs/healthcare/terminology.md +1 -1
  118. package/assets/docs/domainspecs/healthcare/testing.domain.md +1 -1
  119. package/assets/docs/domainspecs/healthcare/vertical-slices.domain.md +1 -1
  120. package/assets/docs/domainspecs/healthcare/zero-trust.domain.md +1 -1
  121. package/assets/docs/domainspecs/pharma/api-versioning.domain.md +1 -1
  122. package/assets/docs/domainspecs/pharma/atc.md +1 -1
  123. package/assets/docs/domainspecs/pharma/auditing.domain.md +80 -16
  124. package/assets/docs/domainspecs/pharma/authorization.domain.md +1 -1
  125. package/assets/docs/domainspecs/pharma/coding-standards.domain.md +1 -1
  126. package/assets/docs/domainspecs/pharma/comandrulemap.md +64 -142
  127. package/assets/docs/domainspecs/pharma/commandtechrulemap.md +119 -0
  128. package/assets/docs/domainspecs/pharma/cqrs.domain.md +1 -1
  129. package/assets/docs/domainspecs/pharma/data-classification.domain.md +1 -1
  130. package/assets/docs/domainspecs/pharma/data-provenance.md +1 -1
  131. package/assets/docs/domainspecs/pharma/dependency-policy.domain.md +1 -1
  132. package/assets/docs/domainspecs/pharma/domain-driven-design.domain.md +1 -1
  133. package/assets/docs/domainspecs/pharma/eventing.domain.md +1 -1
  134. package/assets/docs/domainspecs/pharma/fhir.md +1 -1
  135. package/assets/docs/domainspecs/pharma/folder-structure.domain.md +1 -1
  136. package/assets/docs/domainspecs/pharma/hl7.md +1 -1
  137. package/assets/docs/domainspecs/pharma/idmp.md +1 -1
  138. package/assets/docs/domainspecs/pharma/integration-terms.md +1 -1
  139. package/assets/docs/domainspecs/pharma/ndc.md +1 -1
  140. package/assets/docs/domainspecs/pharma/persistence.domain.md +1 -1
  141. package/assets/docs/domainspecs/pharma/pharma-terms.md +1 -1
  142. package/assets/docs/domainspecs/pharma/product-lifecycle.domain.md +1 -1
  143. package/assets/docs/domainspecs/pharma/regulatory-compliance.md +1 -1
  144. package/assets/docs/domainspecs/pharma/terminology.md +1 -1
  145. package/assets/docs/domainspecs/pharma/testing.domain.md +1 -1
  146. package/assets/docs/domainspecs/pharma/vertical-slices.domain.md +1 -1
  147. package/assets/docs/domainspecs/pharma/zero-trust.domain.md +1 -1
  148. package/assets/docs/governance/api-versioning.md +1 -1
  149. package/assets/docs/governance/coding-standards.md +1 -1
  150. package/assets/docs/governance/dependency-policy.md +1 -1
  151. package/assets/docs/requirement-spec.txt +27 -0
  152. package/assets/docs/security/auditing.md +54 -11
  153. package/assets/docs/security/authorization.md +1 -1
  154. package/assets/docs/security/data-classification.md +1 -1
  155. package/assets/docs/security/zero-trust.md +1 -1
  156. package/dist/commands/init.d.ts.map +1 -1
  157. package/dist/commands/init.js +7 -54
  158. package/dist/commands/init.js.map +1 -1
  159. package/dist/index.js +0 -2
  160. package/dist/index.js.map +1 -1
  161. package/dist/utils/paths.js +2 -2
  162. package/dist/utils/paths.js.map +1 -1
  163. package/package.json +1 -1
  164. package/assets/.agents/skills/aw-spec-addcomponent/SKILL.md +0 -129
  165. package/assets/.agents/skills/aw-spec-agent-context-update/SKILL.md +0 -31
  166. package/assets/.agents/skills/aw-spec-analyze/SKILL.md +0 -296
  167. package/assets/.agents/skills/aw-spec-checklist/SKILL.md +0 -374
  168. package/assets/.agents/skills/aw-spec-clarify/SKILL.md +0 -320
  169. package/assets/.agents/skills/aw-spec-constitution/SKILL.md +0 -194
  170. package/assets/.agents/skills/aw-spec-fast-implement/SKILL.md +0 -268
  171. package/assets/.agents/skills/aw-spec-foundation/SKILL.md +0 -358
  172. package/assets/.agents/skills/aw-spec-implement/SKILL.md +0 -279
  173. package/assets/.agents/skills/aw-spec-minimal-implementation/SKILL.md +0 -209
  174. package/assets/.agents/skills/aw-spec-plan/SKILL.md +0 -221
  175. package/assets/.agents/skills/aw-spec-select-domain/SKILL.md +0 -73
  176. package/assets/.agents/skills/aw-spec-specify/SKILL.md +0 -382
  177. package/assets/.agents/skills/aw-spec-tasks/SKILL.md +0 -259
  178. package/assets/.agents/skills/aw-spec-taskstoissues/SKILL.md +0 -107
  179. package/assets/.aw-spec/integrations/claude.manifest.json +0 -17
  180. package/assets/.aw-spec/scripts/bash/check-prerequisites.sh +0 -189
  181. package/assets/.aw-spec/scripts/bash/create-new-feature.sh +0 -299
  182. package/assets/.aw-spec/scripts/bash/setup-plan.sh +0 -84
  183. package/assets/.aw-spec/scripts/bash/setup-tasks.sh +0 -91
  184. package/assets/.aw-spec/templates/checklist-template.md +0 -40
  185. package/assets/.aw-spec/templates/constitution-template.md +0 -57
  186. package/assets/.aw-spec/templates/plan-template.md +0 -113
  187. package/assets/.aw-spec/templates/tasks-template.md +0 -252
  188. package/assets/.aw-spec/workflows/aw-spec/workflow.yml +0 -77
  189. package/assets/.aw-spec/workflows/workflow-registry.json +0 -13
  190. package/assets/.claude/skills/aw-spec-addcomponent/SKILL.md +0 -129
  191. package/assets/.claude/skills/aw-spec-agent-context-update/SKILL.md +0 -31
  192. package/assets/.claude/skills/aw-spec-analyze/SKILL.md +0 -296
  193. package/assets/.claude/skills/aw-spec-checklist/SKILL.md +0 -374
  194. package/assets/.claude/skills/aw-spec-clarify/SKILL.md +0 -320
  195. package/assets/.claude/skills/aw-spec-constitution/SKILL.md +0 -194
  196. package/assets/.claude/skills/aw-spec-fast-implement/SKILL.md +0 -268
  197. package/assets/.claude/skills/aw-spec-foundation/SKILL.md +0 -358
  198. package/assets/.claude/skills/aw-spec-implement/SKILL.md +0 -279
  199. package/assets/.claude/skills/aw-spec-minimal-implementation/SKILL.md +0 -209
  200. package/assets/.claude/skills/aw-spec-plan/SKILL.md +0 -221
  201. package/assets/.claude/skills/aw-spec-select-domain/SKILL.md +0 -73
  202. package/assets/.claude/skills/aw-spec-specify/SKILL.md +0 -382
  203. package/assets/.claude/skills/aw-spec-tasks/SKILL.md +0 -259
  204. package/assets/.claude/skills/aw-spec-taskstoissues/SKILL.md +0 -107
  205. package/assets/.kilocode/rules/specify-rules.md +0 -4
  206. package/assets/.kilocode/workflows/aw-spec-addcomponent.md +0 -129
  207. package/assets/.kilocode/workflows/aw-spec-agent-context.update.md +0 -31
  208. package/assets/.kilocode/workflows/aw-spec-analyze.md +0 -296
  209. package/assets/.kilocode/workflows/aw-spec-checklist.md +0 -374
  210. package/assets/.kilocode/workflows/aw-spec-clarify.md +0 -320
  211. package/assets/.kilocode/workflows/aw-spec-constitution.md +0 -194
  212. package/assets/.kilocode/workflows/aw-spec-fast-implement.md +0 -263
  213. package/assets/.kilocode/workflows/aw-spec-foundation.md +0 -358
  214. package/assets/.kilocode/workflows/aw-spec-implement.md +0 -279
  215. package/assets/.kilocode/workflows/aw-spec-minimal-implementation.md +0 -204
  216. package/assets/.kilocode/workflows/aw-spec-plan.md +0 -221
  217. package/assets/.kilocode/workflows/aw-spec-select-domain.md +0 -73
  218. package/assets/.kilocode/workflows/aw-spec-specify.md +0 -382
  219. package/assets/.kilocode/workflows/aw-spec-tasks.md +0 -259
  220. package/assets/.kilocode/workflows/aw-spec-taskstoissues.md +0 -107
  221. package/assets/docs/UI.Visualization/PACKAGING.md +0 -191
  222. package/assets/docs/UI.Visualization/UI.Visualization.Reference.pack.txt +0 -11768
  223. package/assets/docs/UI.Visualization/UI.Visualization.pack.txt +0 -11214
  224. package/assets/docs/UI.Visualization/pack-foundation.ps1 +0 -165
  225. package/assets/docs/UI.Visualization/pack-foundation.sh +0 -206
  226. package/assets/docs/UI.Visualization/pack-reference-foundation.ps1 +0 -159
  227. package/assets/docs/UI.Visualization/pack-reference-foundation.sh +0 -205
  228. package/assets/docs/UI.Visualization/unpack-foundation.ps1 +0 -126
  229. package/assets/docs/UI.Visualization/unpack-foundation.sh +0 -217
  230. package/assets/docs/UI.Visualization/unpack-reference-foundation.ps1 +0 -129
  231. package/assets/docs/UI.Visualization/unpack-reference-foundation.sh +0 -218
  232. package/assets/docs/command.txt +0 -295
  233. package/assets/docs/domainspecs/UIVisualization/chart-bubble.md +0 -70
  234. package/assets/docs/domainspecs/UIVisualization/chart-dimred.md +0 -58
  235. package/assets/docs/domainspecs/UIVisualization/chart-heatmap.md +0 -62
  236. package/assets/docs/domainspecs/UIVisualization/chart-network.md +0 -69
  237. package/assets/docs/domainspecs/UIVisualization/chart-parallel.md +0 -75
  238. package/assets/docs/domainspecs/UIVisualization/chart-scurve.md +0 -66
  239. package/assets/docs/domainspecs/UIVisualization/chart-survival.md +0 -69
  240. package/assets/docs/domainspecs/UIVisualization/chart-trellis.md +0 -68
  241. package/assets/docs/domainspecs/UIVisualization/chart-violin.md +0 -61
  242. package/assets/docs/domainspecs/UIVisualization/chart-volcano.md +0 -63
  243. package/assets/docs/domainspecs/UIVisualization/charting-standards.domain.md +0 -80
  244. package/assets/docs/domainspecs/UIVisualization/clean-architecture.domain.md +0 -87
  245. package/assets/docs/domainspecs/UIVisualization/coding-standards.domain.md +0 -47
  246. package/assets/docs/domainspecs/UIVisualization/comandrulemap.md +0 -130
  247. package/assets/docs/domainspecs/UIVisualization/component-contracts.domain.md +0 -67
  248. package/assets/docs/domainspecs/UIVisualization/data-source.domain.md +0 -68
  249. package/assets/docs/domainspecs/UIVisualization/domain-requirements.md +0 -110
  250. package/assets/docs/domainspecs/UIVisualization/folder-structure.domain.md +0 -55
  251. package/assets/docs/domainspecs/UIVisualization/state-management.domain.md +0 -67
  252. package/assets/docs/domainspecs/UIVisualization/testing.domain.md +0 -52
  253. package/assets/docs/domainspecs/UIVisualization/ui-viz-terms.md +0 -39
  254. package/assets/docs/pharma-constitution.my-ref.md +0 -86
@@ -1,84 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- set -e
4
-
5
- # Parse command line arguments
6
- JSON_MODE=false
7
- ARGS=()
8
-
9
- for arg in "$@"; do
10
- case "$arg" in
11
- --json)
12
- JSON_MODE=true
13
- ;;
14
- --help|-h)
15
- echo "Usage: $0 [--json]"
16
- echo " --json Output results in JSON format"
17
- echo " --help Show this help message"
18
- exit 0
19
- ;;
20
- *)
21
- ARGS+=("$arg")
22
- ;;
23
- esac
24
- done
25
-
26
- # Get script directory and load common functions
27
- SCRIPT_DIR="$(CDPATH="" cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
28
- source "$SCRIPT_DIR/common.sh"
29
-
30
- # Get all paths and variables from common functions
31
- _paths_output=$(get_feature_paths) || { echo "ERROR: Failed to resolve feature paths" >&2; exit 1; }
32
- eval "$_paths_output"
33
- unset _paths_output
34
-
35
- # Ensure the feature directory exists
36
- mkdir -p "$FEATURE_DIR"
37
-
38
- # Copy plan template if plan doesn't already exist
39
- if [[ -f "$IMPL_PLAN" ]]; then
40
- if $JSON_MODE; then
41
- echo "Plan already exists at $IMPL_PLAN, skipping template copy" >&2
42
- else
43
- echo "Plan already exists at $IMPL_PLAN, skipping template copy"
44
- fi
45
- else
46
- TEMPLATE=$(resolve_template "plan-template" "$REPO_ROOT") || true
47
- if [[ -n "$TEMPLATE" ]] && [[ -f "$TEMPLATE" ]]; then
48
- cp "$TEMPLATE" "$IMPL_PLAN"
49
- if $JSON_MODE; then
50
- echo "Copied plan template to $IMPL_PLAN" >&2
51
- else
52
- echo "Copied plan template to $IMPL_PLAN"
53
- fi
54
- else
55
- if $JSON_MODE; then
56
- echo "Warning: Plan template not found" >&2
57
- else
58
- echo "Warning: Plan template not found"
59
- fi
60
- # Create a basic plan file if template doesn't exist
61
- touch "$IMPL_PLAN"
62
- fi
63
- fi
64
-
65
- # Output results
66
- if $JSON_MODE; then
67
- if has_jq; then
68
- jq -cn \
69
- --arg feature_spec "$FEATURE_SPEC" \
70
- --arg impl_plan "$IMPL_PLAN" \
71
- --arg specs_dir "$FEATURE_DIR" \
72
- --arg branch "$CURRENT_BRANCH" \
73
- '{FEATURE_SPEC:$feature_spec,IMPL_PLAN:$impl_plan,SPECS_DIR:$specs_dir,BRANCH:$branch}'
74
- else
75
- printf '{"FEATURE_SPEC":"%s","IMPL_PLAN":"%s","SPECS_DIR":"%s","BRANCH":"%s"}\n' \
76
- "$(json_escape "$FEATURE_SPEC")" "$(json_escape "$IMPL_PLAN")" "$(json_escape "$FEATURE_DIR")" "$(json_escape "$CURRENT_BRANCH")"
77
- fi
78
- else
79
- echo "FEATURE_SPEC: $FEATURE_SPEC"
80
- echo "IMPL_PLAN: $IMPL_PLAN"
81
- echo "SPECS_DIR: $FEATURE_DIR"
82
- echo "BRANCH: $CURRENT_BRANCH"
83
- fi
84
-
@@ -1,91 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- set -e
4
-
5
- # Parse command line arguments
6
- JSON_MODE=false
7
-
8
- for arg in "$@"; do
9
- case "$arg" in
10
- --json) JSON_MODE=true ;;
11
- --help|-h)
12
- echo "Usage: $0 [--json]"
13
- echo " --json Output results in JSON format"
14
- echo " --help Show this help message"
15
- exit 0
16
- ;;
17
- *) echo "ERROR: Unknown option '$arg'" >&2; exit 1 ;;
18
- esac
19
- done
20
-
21
- # Source common functions
22
- SCRIPT_DIR="$(CDPATH="" cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
23
- source "$SCRIPT_DIR/common.sh"
24
-
25
- # Get feature paths
26
- _paths_output=$(get_feature_paths) || { echo "ERROR: Failed to resolve feature paths" >&2; exit 1; }
27
- eval "$_paths_output"
28
- unset _paths_output
29
-
30
- # Validate required files
31
- if [[ ! -f "$IMPL_PLAN" ]]; then
32
- echo "ERROR: plan.md not found in $FEATURE_DIR" >&2
33
- echo "Run /aw-spec-plan first to create the implementation plan." >&2
34
- exit 1
35
- fi
36
-
37
- if [[ ! -f "$FEATURE_SPEC" ]]; then
38
- echo "ERROR: spec.md not found in $FEATURE_DIR" >&2
39
- echo "Run /aw-spec-specify first to create the feature structure." >&2
40
- exit 1
41
- fi
42
-
43
- # Build available docs list
44
- docs=()
45
- [[ -f "$RESEARCH" ]] && docs+=("research.md")
46
- [[ -f "$DATA_MODEL" ]] && docs+=("data-model.md")
47
- if [[ -d "$CONTRACTS_DIR" ]] && [[ -n "$(ls -A "$CONTRACTS_DIR" 2>/dev/null)" ]]; then
48
- docs+=("contracts/")
49
- fi
50
- [[ -f "$QUICKSTART" ]] && docs+=("quickstart.md")
51
-
52
- # Resolve tasks template through override stack
53
- TASKS_TEMPLATE=$(resolve_template "tasks-template" "$REPO_ROOT") || true
54
- if [[ -z "$TASKS_TEMPLATE" ]] || [[ ! -f "$TASKS_TEMPLATE" ]]; then
55
- echo "ERROR: Could not resolve required tasks-template from the template override stack for $REPO_ROOT" >&2
56
- echo "Template 'tasks-template' was not found in any supported location (overrides, presets, extensions, or shared core). Add an override at .aw-spec/templates/overrides/tasks-template.md, or run 'specify init' / reinstall shared infra to restore the core .aw-spec/templates/tasks-template.md template." >&2
57
- exit 1
58
- fi
59
-
60
- # Output results
61
- if $JSON_MODE; then
62
- if has_jq; then
63
- if [[ ${#docs[@]} -eq 0 ]]; then
64
- json_docs="[]"
65
- else
66
- json_docs=$(printf '%s\n' "${docs[@]}" | jq -R . | jq -s .)
67
- fi
68
- jq -cn \
69
- --arg feature_dir "$FEATURE_DIR" \
70
- --argjson docs "$json_docs" \
71
- --arg tasks_template "${TASKS_TEMPLATE:-}" \
72
- '{FEATURE_DIR:$feature_dir,AVAILABLE_DOCS:$docs,TASKS_TEMPLATE:$tasks_template}'
73
- else
74
- if [[ ${#docs[@]} -eq 0 ]]; then
75
- json_docs="[]"
76
- else
77
- json_docs=$(for d in "${docs[@]}"; do printf '"%s",' "$(json_escape "$d")"; done)
78
- json_docs="[${json_docs%,}]"
79
- fi
80
- printf '{"FEATURE_DIR":"%s","AVAILABLE_DOCS":%s,"TASKS_TEMPLATE":"%s"}\n' \
81
- "$(json_escape "$FEATURE_DIR")" "$json_docs" "$(json_escape "${TASKS_TEMPLATE:-}")"
82
- fi
83
- else
84
- echo "FEATURE_DIR: $FEATURE_DIR"
85
- echo "TASKS_TEMPLATE: ${TASKS_TEMPLATE:-not found}"
86
- echo "AVAILABLE_DOCS:"
87
- check_file "$RESEARCH" "research.md"
88
- check_file "$DATA_MODEL" "data-model.md"
89
- check_dir "$CONTRACTS_DIR" "contracts/"
90
- check_file "$QUICKSTART" "quickstart.md"
91
- fi
@@ -1,40 +0,0 @@
1
- # [CHECKLIST TYPE] Checklist: [FEATURE NAME]
2
-
3
- **Purpose**: [Brief description of what this checklist covers]
4
- **Created**: [DATE]
5
- **Feature**: [Link to spec.md or relevant documentation]
6
-
7
- **Note**: This checklist is generated by the `/aw-spec-checklist` command based on feature context and requirements.
8
-
9
- <!--
10
- ============================================================================
11
- IMPORTANT: The checklist items below are SAMPLE ITEMS for illustration only.
12
-
13
- The /aw-spec-checklist command MUST replace these with actual items based on:
14
- - User's specific checklist request
15
- - Feature requirements from spec.md
16
- - Technical context from plan.md
17
- - Implementation details from tasks.md
18
-
19
- DO NOT keep these sample items in the generated checklist file.
20
- ============================================================================
21
- -->
22
-
23
- ## [Category 1]
24
-
25
- - [ ] CHK001 First checklist item with clear action
26
- - [ ] CHK002 Second checklist item
27
- - [ ] CHK003 Third checklist item
28
-
29
- ## [Category 2]
30
-
31
- - [ ] CHK004 Another category item
32
- - [ ] CHK005 Item with specific criteria
33
- - [ ] CHK006 Final item in this category
34
-
35
- ## Notes
36
-
37
- - Check items off as completed: `[x]`
38
- - Add comments or findings inline
39
- - Link to relevant resources or documentation
40
- - Items are numbered sequentially for easy reference
@@ -1,57 +0,0 @@
1
- # [PROJECT_NAME] Constitution
2
- <!-- Example: Acme Billing Constitution, Medicinal Product Registry Constitution -->
3
- <!--
4
- AppWeaver compose model: this constitution is ratified from a technology base
5
- (docs/technology-constitution.md → Core Principles I–XV, governance, folder/convention
6
- pointers) composed with ONE domain addenda (docs/<domain>-constitution.md → domain
7
- principles XVI+, identity, regulatory regime). Expand the principle slots below to the
8
- full set from those inputs — the five shown are a scaffold, not a limit.
9
- -->
10
-
11
- ## Core Principles
12
-
13
- ### [PRINCIPLE_1_NAME]
14
- <!-- Example: I. Modular Monolith with Vertical Slices (NON-NEGOTIABLE) -->
15
- [PRINCIPLE_1_DESCRIPTION]
16
- <!-- Example: Single deployable service partitioned into modules; each module = Domain/Features/Persistence/Shared; each feature is a self-contained vertical slice; no cross-module Domain coupling; no horizontal service layers. -->
17
-
18
- ### [PRINCIPLE_2_NAME]
19
- <!-- Example: II. Clean Architecture Dependency Rule (NON-NEGOTIABLE) -->
20
- [PRINCIPLE_2_DESCRIPTION]
21
- <!-- Example: Dependencies flow inward: API → Application → Domain ← Infrastructure; Domain is framework-agnostic; endpoints call IMediator, never repositories/DbContext. -->
22
-
23
- ### [PRINCIPLE_3_NAME]
24
- <!-- Example: III. Domain-Driven Design with Rich Aggregates (NON-NEGOTIABLE) -->
25
- [PRINCIPLE_3_DESCRIPTION]
26
- <!-- Example: Access entities through aggregate roots; strongly-typed Vogen IDs; sealed validating value objects; immutable domain events; invariants enforced in the aggregate; transaction boundary = aggregate boundary. -->
27
-
28
- ### [PRINCIPLE_4_NAME]
29
- <!-- Example: IV. CQRS via Mediator with Result Pattern (NON-NEGOTIABLE) -->
30
- [PRINCIPLE_4_DESCRIPTION]
31
- <!-- Example: All logic dispatched via the mediator; commands/queries return Result<T>; errors are Result.Failure (not exceptions); writes run in a transaction and publish domain events. -->
32
-
33
- ### [PRINCIPLE_5_NAME]
34
- <!-- Example: Continue V–XV from the technology base (Specification-Driven Persistence, Optimistic Concurrency, Multi-Tenant Persistence, Security by Default, Observability, Aspire, REST API Standards, Test-First, Data Integration / Single Source of Truth, Evolutionary Path to Microservices), then domain principles XVI+ from the domain addenda (e.g. interop, terminology, regulatory/compliance). Add one '### ' block per principle. -->
35
- [PRINCIPLE_5_DESCRIPTION]
36
- <!-- Example: Keep each principle declarative and testable; mark NON-NEGOTIABLE ones explicitly; the rules live in docs/ — cite the source (technology-constitution.md or <domain>-constitution.md). -->
37
-
38
- ## [SECTION_2_NAME]
39
- <!-- Example: Mandatory Folder Structure -->
40
-
41
- [SECTION_2_CONTENT]
42
- <!-- Example: Module = Domain/Features/Persistence/Shared; cross-cutting files stay at the AppWeaver template level; domain folder additions (Interop adapters, fixtures, controls) per the domain addenda. See docs/architecture/folder-structure.md + docs/domainspecs/<domain>/folder-structure.domain.md. -->
43
-
44
- ## [SECTION_3_NAME]
45
- <!-- Example: Conventions, Forbidden Patterns, AI Rules & Quality Gates -->
46
-
47
- [SECTION_3_CONTENT]
48
- <!-- Example: Naming/coding conventions, the Forbidden Patterns, CI Quality Gates (docs/governance/coding-standards.md); package governance (docs/governance/dependency-policy.md); AI operational rules (docs/glossary/ai-rules.md + the domain ai-rules.domain.md). -->
49
-
50
- ## Governance
51
- <!-- Example: Constitution supersedes README/CLAUDE.md/AGENTS.md; amendments via PR with a migration plan + SemVer bump + the domain's mandatory approver; reviewers cite the principle number. -->
52
-
53
- [GOVERNANCE_RULES]
54
- <!-- Example: Amendment procedure; SemVer-for-governance (MAJOR = weaken a NON-NEGOTIABLE or break the folder structure / interop surface; MINOR = new principle or bounded context; PATCH = clarifications); compliance review on every PR; quarterly audit. -->
55
-
56
- **Version**: [CONSTITUTION_VERSION] | **Ratified**: [RATIFICATION_DATE] | **Last Amended**: [LAST_AMENDED_DATE]
57
- <!-- Example: Version: 1.0.0 | Ratified: 2026-06-13 | Last Amended: 2026-06-13 -->
@@ -1,113 +0,0 @@
1
- # Implementation Plan: [FEATURE]
2
-
3
- **Branch**: `[###-feature-name]` | **Date**: [DATE] | **Spec**: [link]
4
-
5
- **Input**: Feature specification from `specs/[Aggregate]/[Feature]/spec.md`
6
-
7
- **Note**: This template is filled in by the `/aw-spec-plan` command. See `.aw-spec/templates/plan-template.md` for the execution workflow.
8
-
9
- ## Summary
10
-
11
- [Extract from feature spec: primary requirement + technical approach from research]
12
-
13
- ## Technical Context
14
-
15
- <!--
16
- ACTION REQUIRED: Replace the content in this section with the technical details
17
- for the project. The structure here is presented in advisory capacity to guide
18
- the iteration process.
19
- -->
20
-
21
- **Language/Version**: [e.g., Python 3.11, Swift 5.9, Rust 1.75 or NEEDS CLARIFICATION]
22
-
23
- **Primary Dependencies**: [e.g., FastAPI, UIKit, LLVM or NEEDS CLARIFICATION]
24
-
25
- **Storage**: [if applicable, e.g., PostgreSQL, CoreData, files or N/A]
26
-
27
- **Testing**: [e.g., pytest, XCTest, cargo test or NEEDS CLARIFICATION]
28
-
29
- **Target Platform**: [e.g., Linux server, iOS 15+, WASM or NEEDS CLARIFICATION]
30
-
31
- **Project Type**: [e.g., library/cli/web-service/mobile-app/compiler/desktop-app or NEEDS CLARIFICATION]
32
-
33
- **Performance Goals**: [domain-specific, e.g., 1000 req/s, 10k lines/sec, 60 fps or NEEDS CLARIFICATION]
34
-
35
- **Constraints**: [domain-specific, e.g., <200ms p95, <100MB memory, offline-capable or NEEDS CLARIFICATION]
36
-
37
- **Scale/Scope**: [domain-specific, e.g., 10k users, 1M LOC, 50 screens or NEEDS CLARIFICATION]
38
-
39
- ## Constitution Check
40
-
41
- *GATE: Must pass before Phase 0 research. Re-check after Phase 1 design.*
42
-
43
- [Gates determined based on constitution file]
44
-
45
- ## Project Structure
46
-
47
- ### Documentation (this feature)
48
-
49
- ```text
50
- specs/[Aggregate]/[Feature]/
51
- ├── plan.md # This file (/aw-spec-plan command output)
52
- ├── research.md # Phase 0 output (/aw-spec-plan command)
53
- ├── data-model.md # Phase 1 output (/aw-spec-plan command)
54
- ├── quickstart.md # Phase 1 output (/aw-spec-plan command)
55
- ├── contracts/ # Phase 1 output (/aw-spec-plan command)
56
- └── tasks.md # Phase 2 output (/aw-spec-tasks command - NOT created by /aw-spec-plan)
57
- ```
58
-
59
- ### Source Code (repository root)
60
- <!--
61
- ACTION REQUIRED: Replace the placeholder tree below with the concrete layout
62
- for this feature. Delete unused options and expand the chosen structure with
63
- real paths (e.g., apps/admin, packages/something). The delivered plan must
64
- not include Option labels.
65
- -->
66
-
67
- ```text
68
- # [REMOVE IF UNUSED] Option 1: Single project (DEFAULT)
69
- src/
70
- ├── models/
71
- ├── services/
72
- ├── cli/
73
- └── lib/
74
-
75
- tests/
76
- ├── contract/
77
- ├── integration/
78
- └── unit/
79
-
80
- # [REMOVE IF UNUSED] Option 2: Web application (when "frontend" + "backend" detected)
81
- backend/
82
- ├── src/
83
- │ ├── models/
84
- │ ├── services/
85
- │ └── api/
86
- └── tests/
87
-
88
- frontend/
89
- ├── src/
90
- │ ├── components/
91
- │ ├── pages/
92
- │ └── services/
93
- └── tests/
94
-
95
- # [REMOVE IF UNUSED] Option 3: Mobile + API (when "iOS/Android" detected)
96
- api/
97
- └── [same as backend above]
98
-
99
- ios/ or android/
100
- └── [platform-specific structure: feature modules, UI flows, platform tests]
101
- ```
102
-
103
- **Structure Decision**: [Document the selected structure and reference the real
104
- directories captured above]
105
-
106
- ## Complexity Tracking
107
-
108
- > **Fill ONLY if Constitution Check has violations that must be justified**
109
-
110
- | Violation | Why Needed | Simpler Alternative Rejected Because |
111
- |-----------|------------|-------------------------------------|
112
- | [e.g., 4th project] | [current need] | [why 3 projects insufficient] |
113
- | [e.g., Repository pattern] | [specific problem] | [why direct DB access insufficient] |
@@ -1,252 +0,0 @@
1
- ---
2
-
3
- description: "Task list template for feature implementation"
4
- ---
5
-
6
- # Tasks: [FEATURE NAME]
7
-
8
- **Input**: Design documents from `specs/[Aggregate]/[Feature]/`
9
-
10
- **Prerequisites**: plan.md (required), spec.md (required for user stories), research.md, data-model.md, contracts/
11
-
12
- **Tests**: The examples below include test tasks. Tests are OPTIONAL - only include them if explicitly requested in the feature specification.
13
-
14
- **Organization**: Tasks are grouped by user story to enable independent implementation and testing of each story.
15
-
16
- ## Format: `[ID] [P?] [Story] Description`
17
-
18
- - **[P]**: Can run in parallel (different files, no dependencies)
19
- - **[Story]**: Which user story this task belongs to (e.g., US1, US2, US3)
20
- - Include exact file paths in descriptions
21
-
22
- ## Path Conventions
23
-
24
- - **Single project**: `src/`, `tests/` at repository root
25
- - **Web app**: `backend/src/`, `frontend/src/`
26
- - **Mobile**: `api/src/`, `ios/src/` or `android/src/`
27
- - Paths shown below assume single project - adjust based on plan.md structure
28
-
29
- <!--
30
- ============================================================================
31
- IMPORTANT: The tasks below are SAMPLE TASKS for illustration purposes only.
32
-
33
- The /aw-spec-tasks command MUST replace these with actual tasks based on:
34
- - User stories from spec.md (with their priorities P1, P2, P3...)
35
- - Feature requirements from plan.md
36
- - Entities from data-model.md
37
- - Endpoints from contracts/
38
-
39
- Tasks MUST be organized by user story so each story can be:
40
- - Implemented independently
41
- - Tested independently
42
- - Delivered as an MVP increment
43
-
44
- DO NOT keep these sample tasks in the generated tasks.md file.
45
- ============================================================================
46
- -->
47
-
48
- ## Phase 1: Setup (Shared Infrastructure)
49
-
50
- **Purpose**: Project initialization and basic structure
51
-
52
- - [ ] T001 Create project structure per implementation plan
53
- - [ ] T002 Initialize [language] project with [framework] dependencies
54
- - [ ] T003 [P] Configure linting and formatting tools
55
-
56
- ---
57
-
58
- ## Phase 2: Foundational (Blocking Prerequisites)
59
-
60
- **Purpose**: Core infrastructure that MUST be complete before ANY user story can be implemented
61
-
62
- **⚠️ CRITICAL**: No user story work can begin until this phase is complete
63
-
64
- Examples of foundational tasks (adjust based on your project):
65
-
66
- - [ ] T004 Setup database schema and migrations framework
67
- - [ ] T005 [P] Implement authentication/authorization framework
68
- - [ ] T006 [P] Setup API routing and middleware structure
69
- - [ ] T007 Create base models/entities that all stories depend on
70
- - [ ] T008 Configure error handling and logging infrastructure
71
- - [ ] T009 Setup environment configuration management
72
-
73
- **Checkpoint**: Foundation ready - user story implementation can now begin in parallel
74
-
75
- ---
76
-
77
- ## Phase 3: User Story 1 - [Title] (Priority: P1) 🎯 MVP
78
-
79
- **Goal**: [Brief description of what this story delivers]
80
-
81
- **Independent Test**: [How to verify this story works on its own]
82
-
83
- ### Tests for User Story 1 (OPTIONAL - only if tests requested) ⚠️
84
-
85
- > **NOTE: Write these tests FIRST, ensure they FAIL before implementation**
86
-
87
- - [ ] T010 [P] [US1] Contract test for [endpoint] in tests/contract/test_[name].py
88
- - [ ] T011 [P] [US1] Integration test for [user journey] in tests/integration/test_[name].py
89
-
90
- ### Implementation for User Story 1
91
-
92
- - [ ] T012 [P] [US1] Create [Entity1] model in src/models/[entity1].py
93
- - [ ] T013 [P] [US1] Create [Entity2] model in src/models/[entity2].py
94
- - [ ] T014 [US1] Implement [Service] in src/services/[service].py (depends on T012, T013)
95
- - [ ] T015 [US1] Implement [endpoint/feature] in src/[location]/[file].py
96
- - [ ] T016 [US1] Add validation and error handling
97
- - [ ] T017 [US1] Add logging for user story 1 operations
98
-
99
- **Checkpoint**: At this point, User Story 1 should be fully functional and testable independently
100
-
101
- ---
102
-
103
- ## Phase 4: User Story 2 - [Title] (Priority: P2)
104
-
105
- **Goal**: [Brief description of what this story delivers]
106
-
107
- **Independent Test**: [How to verify this story works on its own]
108
-
109
- ### Tests for User Story 2 (OPTIONAL - only if tests requested) ⚠️
110
-
111
- - [ ] T018 [P] [US2] Contract test for [endpoint] in tests/contract/test_[name].py
112
- - [ ] T019 [P] [US2] Integration test for [user journey] in tests/integration/test_[name].py
113
-
114
- ### Implementation for User Story 2
115
-
116
- - [ ] T020 [P] [US2] Create [Entity] model in src/models/[entity].py
117
- - [ ] T021 [US2] Implement [Service] in src/services/[service].py
118
- - [ ] T022 [US2] Implement [endpoint/feature] in src/[location]/[file].py
119
- - [ ] T023 [US2] Integrate with User Story 1 components (if needed)
120
-
121
- **Checkpoint**: At this point, User Stories 1 AND 2 should both work independently
122
-
123
- ---
124
-
125
- ## Phase 5: User Story 3 - [Title] (Priority: P3)
126
-
127
- **Goal**: [Brief description of what this story delivers]
128
-
129
- **Independent Test**: [How to verify this story works on its own]
130
-
131
- ### Tests for User Story 3 (OPTIONAL - only if tests requested) ⚠️
132
-
133
- - [ ] T024 [P] [US3] Contract test for [endpoint] in tests/contract/test_[name].py
134
- - [ ] T025 [P] [US3] Integration test for [user journey] in tests/integration/test_[name].py
135
-
136
- ### Implementation for User Story 3
137
-
138
- - [ ] T026 [P] [US3] Create [Entity] model in src/models/[entity].py
139
- - [ ] T027 [US3] Implement [Service] in src/services/[service].py
140
- - [ ] T028 [US3] Implement [endpoint/feature] in src/[location]/[file].py
141
-
142
- **Checkpoint**: All user stories should now be independently functional
143
-
144
- ---
145
-
146
- [Add more user story phases as needed, following the same pattern]
147
-
148
- ---
149
-
150
- ## Phase N: Polish & Cross-Cutting Concerns
151
-
152
- **Purpose**: Improvements that affect multiple user stories
153
-
154
- - [ ] TXXX [P] Documentation updates in docs/
155
- - [ ] TXXX Code cleanup and refactoring
156
- - [ ] TXXX Performance optimization across all stories
157
- - [ ] TXXX [P] Additional unit tests (if requested) in tests/unit/
158
- - [ ] TXXX Security hardening
159
- - [ ] TXXX Run quickstart.md validation
160
-
161
- ---
162
-
163
- ## Dependencies & Execution Order
164
-
165
- ### Phase Dependencies
166
-
167
- - **Setup (Phase 1)**: No dependencies - can start immediately
168
- - **Foundational (Phase 2)**: Depends on Setup completion - BLOCKS all user stories
169
- - **User Stories (Phase 3+)**: All depend on Foundational phase completion
170
- - User stories can then proceed in parallel (if staffed)
171
- - Or sequentially in priority order (P1 → P2 → P3)
172
- - **Polish (Final Phase)**: Depends on all desired user stories being complete
173
-
174
- ### User Story Dependencies
175
-
176
- - **User Story 1 (P1)**: Can start after Foundational (Phase 2) - No dependencies on other stories
177
- - **User Story 2 (P2)**: Can start after Foundational (Phase 2) - May integrate with US1 but should be independently testable
178
- - **User Story 3 (P3)**: Can start after Foundational (Phase 2) - May integrate with US1/US2 but should be independently testable
179
-
180
- ### Within Each User Story
181
-
182
- - Tests (if included) MUST be written and FAIL before implementation
183
- - Models before services
184
- - Services before endpoints
185
- - Core implementation before integration
186
- - Story complete before moving to next priority
187
-
188
- ### Parallel Opportunities
189
-
190
- - All Setup tasks marked [P] can run in parallel
191
- - All Foundational tasks marked [P] can run in parallel (within Phase 2)
192
- - Once Foundational phase completes, all user stories can start in parallel (if team capacity allows)
193
- - All tests for a user story marked [P] can run in parallel
194
- - Models within a story marked [P] can run in parallel
195
- - Different user stories can be worked on in parallel by different team members
196
-
197
- ---
198
-
199
- ## Parallel Example: User Story 1
200
-
201
- ```bash
202
- # Launch all tests for User Story 1 together (if tests requested):
203
- Task: "Contract test for [endpoint] in tests/contract/test_[name].py"
204
- Task: "Integration test for [user journey] in tests/integration/test_[name].py"
205
-
206
- # Launch all models for User Story 1 together:
207
- Task: "Create [Entity1] model in src/models/[entity1].py"
208
- Task: "Create [Entity2] model in src/models/[entity2].py"
209
- ```
210
-
211
- ---
212
-
213
- ## Implementation Strategy
214
-
215
- ### MVP First (User Story 1 Only)
216
-
217
- 1. Complete Phase 1: Setup
218
- 2. Complete Phase 2: Foundational (CRITICAL - blocks all stories)
219
- 3. Complete Phase 3: User Story 1
220
- 4. **STOP and VALIDATE**: Test User Story 1 independently
221
- 5. Deploy/demo if ready
222
-
223
- ### Incremental Delivery
224
-
225
- 1. Complete Setup + Foundational → Foundation ready
226
- 2. Add User Story 1 → Test independently → Deploy/Demo (MVP!)
227
- 3. Add User Story 2 → Test independently → Deploy/Demo
228
- 4. Add User Story 3 → Test independently → Deploy/Demo
229
- 5. Each story adds value without breaking previous stories
230
-
231
- ### Parallel Team Strategy
232
-
233
- With multiple developers:
234
-
235
- 1. Team completes Setup + Foundational together
236
- 2. Once Foundational is done:
237
- - Developer A: User Story 1
238
- - Developer B: User Story 2
239
- - Developer C: User Story 3
240
- 3. Stories complete and integrate independently
241
-
242
- ---
243
-
244
- ## Notes
245
-
246
- - [P] tasks = different files, no dependencies
247
- - [Story] label maps task to specific user story for traceability
248
- - Each user story should be independently completable and testable
249
- - Verify tests fail before implementing
250
- - Commit after each task or logical group
251
- - Stop at any checkpoint to validate story independently
252
- - Avoid: vague tasks, same file conflicts, cross-story dependencies that break independence