aw-spec-cli 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/assets/.agents/skills/aw-spec-addcomponent/SKILL.md +129 -0
  2. package/assets/.agents/skills/aw-spec-agent-context-update/SKILL.md +31 -0
  3. package/assets/.agents/skills/aw-spec-analyze/SKILL.md +296 -0
  4. package/assets/.agents/skills/aw-spec-checklist/SKILL.md +374 -0
  5. package/assets/.agents/skills/aw-spec-clarify/SKILL.md +320 -0
  6. package/assets/.agents/skills/aw-spec-constitution/SKILL.md +194 -0
  7. package/assets/.agents/skills/aw-spec-fast-implement/SKILL.md +268 -0
  8. package/assets/.agents/skills/aw-spec-foundation/SKILL.md +358 -0
  9. package/assets/.agents/skills/aw-spec-implement/SKILL.md +279 -0
  10. package/assets/.agents/skills/aw-spec-minimal-implementation/SKILL.md +209 -0
  11. package/assets/.agents/skills/aw-spec-plan/SKILL.md +221 -0
  12. package/assets/.agents/skills/aw-spec-select-domain/SKILL.md +73 -0
  13. package/assets/.agents/skills/aw-spec-specify/SKILL.md +382 -0
  14. package/assets/.agents/skills/aw-spec-tasks/SKILL.md +259 -0
  15. package/assets/.agents/skills/aw-spec-taskstoissues/SKILL.md +107 -0
  16. package/assets/.aw-spec/domain.json +3 -0
  17. package/assets/.aw-spec/extensions/.registry +19 -0
  18. package/assets/.aw-spec/extensions/agent-context/README.md +57 -0
  19. package/assets/.aw-spec/extensions/agent-context/agent-context-config.yml +4 -0
  20. package/assets/.aw-spec/extensions/agent-context/commands/aw-spec.agent-context.update.md +26 -0
  21. package/assets/.aw-spec/extensions/agent-context/extension.yml +34 -0
  22. package/assets/.aw-spec/extensions/agent-context/scripts/bash/update-agent-context.sh +201 -0
  23. package/assets/.aw-spec/extensions/agent-context/scripts/powershell/update-agent-context.ps1 +237 -0
  24. package/assets/.aw-spec/extensions.yml +23 -0
  25. package/assets/.aw-spec/feature.json +3 -0
  26. package/assets/.aw-spec/init-options.json +9 -0
  27. package/assets/.aw-spec/integration.json +15 -0
  28. package/assets/.aw-spec/integrations/aw-spec.manifest.json +17 -0
  29. package/assets/.aw-spec/integrations/claude.manifest.json +17 -0
  30. package/assets/.aw-spec/memory/constitution.md +50 -0
  31. package/assets/.aw-spec/scripts/bash/check-prerequisites.sh +189 -0
  32. package/assets/.aw-spec/scripts/bash/common.sh +582 -0
  33. package/assets/.aw-spec/scripts/bash/create-new-feature.sh +299 -0
  34. package/assets/.aw-spec/scripts/bash/setup-plan.sh +84 -0
  35. package/assets/.aw-spec/scripts/bash/setup-tasks.sh +91 -0
  36. package/assets/.aw-spec/templates/checklist-template.md +40 -0
  37. package/assets/.aw-spec/templates/constitution-template.md +57 -0
  38. package/assets/.aw-spec/templates/plan-template.md +113 -0
  39. package/assets/.aw-spec/templates/spec-template.md +131 -0
  40. package/assets/.aw-spec/templates/tasks-template.md +252 -0
  41. package/assets/.aw-spec/workflows/aw-spec/workflow.yml +77 -0
  42. package/assets/.aw-spec/workflows/workflow-registry.json +13 -0
  43. package/assets/.claude/skills/aw-spec-addcomponent/SKILL.md +129 -0
  44. package/assets/.claude/skills/aw-spec-agent-context-update/SKILL.md +31 -0
  45. package/assets/.claude/skills/aw-spec-analyze/SKILL.md +296 -0
  46. package/assets/.claude/skills/aw-spec-checklist/SKILL.md +374 -0
  47. package/assets/.claude/skills/aw-spec-clarify/SKILL.md +320 -0
  48. package/assets/.claude/skills/aw-spec-constitution/SKILL.md +194 -0
  49. package/assets/.claude/skills/aw-spec-fast-implement/SKILL.md +268 -0
  50. package/assets/.claude/skills/aw-spec-foundation/SKILL.md +358 -0
  51. package/assets/.claude/skills/aw-spec-implement/SKILL.md +279 -0
  52. package/assets/.claude/skills/aw-spec-minimal-implementation/SKILL.md +209 -0
  53. package/assets/.claude/skills/aw-spec-plan/SKILL.md +221 -0
  54. package/assets/.claude/skills/aw-spec-select-domain/SKILL.md +73 -0
  55. package/assets/.claude/skills/aw-spec-specify/SKILL.md +382 -0
  56. package/assets/.claude/skills/aw-spec-tasks/SKILL.md +259 -0
  57. package/assets/.claude/skills/aw-spec-taskstoissues/SKILL.md +107 -0
  58. package/assets/.kilocode/rules/specify-rules.md +4 -0
  59. package/assets/.kilocode/workflows/aw-spec-addcomponent.md +129 -0
  60. package/assets/.kilocode/workflows/aw-spec-agent-context.update.md +31 -0
  61. package/assets/.kilocode/workflows/aw-spec-analyze.md +296 -0
  62. package/assets/.kilocode/workflows/aw-spec-checklist.md +374 -0
  63. package/assets/.kilocode/workflows/aw-spec-clarify.md +320 -0
  64. package/assets/.kilocode/workflows/aw-spec-constitution.md +194 -0
  65. package/assets/.kilocode/workflows/aw-spec-fast-implement.md +263 -0
  66. package/assets/.kilocode/workflows/aw-spec-foundation.md +358 -0
  67. package/assets/.kilocode/workflows/aw-spec-implement.md +279 -0
  68. package/assets/.kilocode/workflows/aw-spec-minimal-implementation.md +204 -0
  69. package/assets/.kilocode/workflows/aw-spec-plan.md +221 -0
  70. package/assets/.kilocode/workflows/aw-spec-select-domain.md +73 -0
  71. package/assets/.kilocode/workflows/aw-spec-specify.md +382 -0
  72. package/assets/.kilocode/workflows/aw-spec-tasks.md +259 -0
  73. package/assets/.kilocode/workflows/aw-spec-taskstoissues.md +107 -0
  74. package/assets/docs/README.md +106 -0
  75. package/assets/docs/VerticalSlice/PACKAGING.md +185 -0
  76. package/assets/docs/VerticalSlice/VerticalSlice.pack.txt +2833 -0
  77. package/assets/docs/VerticalSlice/pack-foundation.ps1 +145 -0
  78. package/assets/docs/VerticalSlice/pack-foundation.sh +196 -0
  79. package/assets/docs/VerticalSlice/unpack-foundation.ps1 +126 -0
  80. package/assets/docs/VerticalSlice/unpack-foundation.sh +217 -0
  81. package/assets/docs/architecture/clean-architecture.md +71 -0
  82. package/assets/docs/architecture/cqrs.md +141 -0
  83. package/assets/docs/architecture/eventing.md +83 -0
  84. package/assets/docs/architecture/folder-structure.md +61 -0
  85. package/assets/docs/architecture/modular-monolith.md +47 -0
  86. package/assets/docs/architecture/persistence.md +269 -0
  87. package/assets/docs/architecture/testing.md +55 -0
  88. package/assets/docs/architecture/vertical-slices.md +201 -0
  89. package/assets/docs/command.txt +295 -0
  90. package/assets/docs/components/Email/README.md +112 -0
  91. package/assets/docs/components/Email/integration.md +260 -0
  92. package/assets/docs/components/Jobs/README.md +113 -0
  93. package/assets/docs/components/Jobs/integration.md +245 -0
  94. package/assets/docs/components/QrGenerator/README.md +78 -0
  95. package/assets/docs/components/QrGenerator/integration.md +185 -0
  96. package/assets/docs/components/README.md +57 -0
  97. package/assets/docs/domain/domain-driven-design.md +212 -0
  98. package/assets/docs/domainspecs/healthcare/ai-rules.domain.md +34 -0
  99. package/assets/docs/domainspecs/healthcare/api-versioning.domain.md +17 -0
  100. package/assets/docs/domainspecs/healthcare/auditing.domain.md +29 -0
  101. package/assets/docs/domainspecs/healthcare/authorization.domain.md +26 -0
  102. package/assets/docs/domainspecs/healthcare/clinical-terms.md +20 -0
  103. package/assets/docs/domainspecs/healthcare/coding-standards.domain.md +26 -0
  104. package/assets/docs/domainspecs/healthcare/comandrulemap.md +119 -0
  105. package/assets/docs/domainspecs/healthcare/consent.md +19 -0
  106. package/assets/docs/domainspecs/healthcare/cqrs.domain.md +12 -0
  107. package/assets/docs/domainspecs/healthcare/data-classification.domain.md +28 -0
  108. package/assets/docs/domainspecs/healthcare/dependency-policy.domain.md +11 -0
  109. package/assets/docs/domainspecs/healthcare/dicom.md +15 -0
  110. package/assets/docs/domainspecs/healthcare/domain-driven-design.domain.md +28 -0
  111. package/assets/docs/domainspecs/healthcare/domain-requirements.md +55 -0
  112. package/assets/docs/domainspecs/healthcare/eventing.domain.md +18 -0
  113. package/assets/docs/domainspecs/healthcare/fhir.md +36 -0
  114. package/assets/docs/domainspecs/healthcare/folder-structure.domain.md +23 -0
  115. package/assets/docs/domainspecs/healthcare/hipaa.md +34 -0
  116. package/assets/docs/domainspecs/healthcare/hl7.md +15 -0
  117. package/assets/docs/domainspecs/healthcare/integration-terms.md +21 -0
  118. package/assets/docs/domainspecs/healthcare/persistence.domain.md +20 -0
  119. package/assets/docs/domainspecs/healthcare/terminology.md +30 -0
  120. package/assets/docs/domainspecs/healthcare/testing.domain.md +15 -0
  121. package/assets/docs/domainspecs/healthcare/vertical-slices.domain.md +18 -0
  122. package/assets/docs/domainspecs/healthcare/zero-trust.domain.md +12 -0
  123. package/assets/docs/domainspecs/pharma/ai-rules.domain.md +32 -0
  124. package/assets/docs/domainspecs/pharma/api-versioning.domain.md +20 -0
  125. package/assets/docs/domainspecs/pharma/atc.md +22 -0
  126. package/assets/docs/domainspecs/pharma/auditing.domain.md +26 -0
  127. package/assets/docs/domainspecs/pharma/authorization.domain.md +25 -0
  128. package/assets/docs/domainspecs/pharma/coding-standards.domain.md +28 -0
  129. package/assets/docs/domainspecs/pharma/comandrulemap.md +136 -0
  130. package/assets/docs/domainspecs/pharma/cqrs.domain.md +16 -0
  131. package/assets/docs/domainspecs/pharma/data-classification.domain.md +24 -0
  132. package/assets/docs/domainspecs/pharma/data-provenance.md +21 -0
  133. package/assets/docs/domainspecs/pharma/dependency-policy.domain.md +11 -0
  134. package/assets/docs/domainspecs/pharma/domain-driven-design.domain.md +36 -0
  135. package/assets/docs/domainspecs/pharma/domain-requirements.md +99 -0
  136. package/assets/docs/domainspecs/pharma/eventing.domain.md +18 -0
  137. package/assets/docs/domainspecs/pharma/fhir.md +31 -0
  138. package/assets/docs/domainspecs/pharma/folder-structure.domain.md +24 -0
  139. package/assets/docs/domainspecs/pharma/hl7.md +17 -0
  140. package/assets/docs/domainspecs/pharma/idmp.md +26 -0
  141. package/assets/docs/domainspecs/pharma/integration-terms.md +21 -0
  142. package/assets/docs/domainspecs/pharma/ndc.md +28 -0
  143. package/assets/docs/domainspecs/pharma/persistence.domain.md +23 -0
  144. package/assets/docs/domainspecs/pharma/pharma-terms.md +27 -0
  145. package/assets/docs/domainspecs/pharma/product-lifecycle.domain.md +30 -0
  146. package/assets/docs/domainspecs/pharma/regulatory-compliance.md +19 -0
  147. package/assets/docs/domainspecs/pharma/terminology.md +32 -0
  148. package/assets/docs/domainspecs/pharma/testing.domain.md +19 -0
  149. package/assets/docs/domainspecs/pharma/vertical-slices.domain.md +17 -0
  150. package/assets/docs/domainspecs/pharma/zero-trust.domain.md +12 -0
  151. package/assets/docs/glossary/ai-rules.md +59 -0
  152. package/assets/docs/governance/api-versioning.md +99 -0
  153. package/assets/docs/governance/coding-standards.md +87 -0
  154. package/assets/docs/governance/dependency-policy.md +40 -0
  155. package/assets/docs/interop/ihe-conformance.md +31 -0
  156. package/assets/docs/pharma-constitution.my-ref.md +86 -0
  157. package/assets/docs/requirement-spec.txt +15 -0
  158. package/assets/docs/security/auditing.md +117 -0
  159. package/assets/docs/security/authorization-matrix.md +14 -0
  160. package/assets/docs/security/authorization.md +87 -0
  161. package/assets/docs/security/data-classification.md +38 -0
  162. package/assets/docs/security/zero-trust.md +76 -0
  163. package/assets/docs/technology-constitution.md +172 -0
  164. package/dist/commands/init.d.ts.map +1 -1
  165. package/dist/commands/init.js +3 -2
  166. package/dist/commands/init.js.map +1 -1
  167. package/dist/utils/copy-assets.d.ts +8 -1
  168. package/dist/utils/copy-assets.d.ts.map +1 -1
  169. package/dist/utils/copy-assets.js +1 -0
  170. package/dist/utils/copy-assets.js.map +1 -1
  171. package/dist/utils/paths.js +1 -1
  172. package/dist/utils/paths.js.map +1 -1
  173. package/package.json +1 -1
@@ -0,0 +1,131 @@
1
+ # Feature Specification: [FEATURE NAME]
2
+
3
+ **Feature Branch**: `[###-feature-name]`
4
+
5
+ **Created**: [DATE]
6
+
7
+ **Status**: Draft
8
+
9
+ **Input**: User description: "$ARGUMENTS"
10
+
11
+ ## User Scenarios & Testing *(mandatory)*
12
+
13
+ <!--
14
+ IMPORTANT: User stories should be PRIORITIZED as user journeys ordered by importance.
15
+ Each user story/journey must be INDEPENDENTLY TESTABLE - meaning if you implement just ONE of them,
16
+ you should still have a viable MVP (Minimum Viable Product) that delivers value.
17
+
18
+ Assign priorities (P1, P2, P3, etc.) to each story, where P1 is the most critical.
19
+ Think of each story as a standalone slice of functionality that can be:
20
+ - Developed independently
21
+ - Tested independently
22
+ - Deployed independently
23
+ - Demonstrated to users independently
24
+ -->
25
+
26
+ ### User Story 1 - [Brief Title] (Priority: P1)
27
+
28
+ [Describe this user journey in plain language]
29
+
30
+ **Why this priority**: [Explain the value and why it has this priority level]
31
+
32
+ **Independent Test**: [Describe how this can be tested independently - e.g., "Can be fully tested by [specific action] and delivers [specific value]"]
33
+
34
+ **Acceptance Scenarios**:
35
+
36
+ 1. **Given** [initial state], **When** [action], **Then** [expected outcome]
37
+ 2. **Given** [initial state], **When** [action], **Then** [expected outcome]
38
+
39
+ ---
40
+
41
+ ### User Story 2 - [Brief Title] (Priority: P2)
42
+
43
+ [Describe this user journey in plain language]
44
+
45
+ **Why this priority**: [Explain the value and why it has this priority level]
46
+
47
+ **Independent Test**: [Describe how this can be tested independently]
48
+
49
+ **Acceptance Scenarios**:
50
+
51
+ 1. **Given** [initial state], **When** [action], **Then** [expected outcome]
52
+
53
+ ---
54
+
55
+ ### User Story 3 - [Brief Title] (Priority: P3)
56
+
57
+ [Describe this user journey in plain language]
58
+
59
+ **Why this priority**: [Explain the value and why it has this priority level]
60
+
61
+ **Independent Test**: [Describe how this can be tested independently]
62
+
63
+ **Acceptance Scenarios**:
64
+
65
+ 1. **Given** [initial state], **When** [action], **Then** [expected outcome]
66
+
67
+ ---
68
+
69
+ [Add more user stories as needed, each with an assigned priority]
70
+
71
+ ### Edge Cases
72
+
73
+ <!--
74
+ ACTION REQUIRED: The content in this section represents placeholders.
75
+ Fill them out with the right edge cases.
76
+ -->
77
+
78
+ - What happens when [boundary condition]?
79
+ - How does system handle [error scenario]?
80
+
81
+ ## Requirements *(mandatory)*
82
+
83
+ <!--
84
+ ACTION REQUIRED: The content in this section represents placeholders.
85
+ Fill them out with the right functional requirements.
86
+ -->
87
+
88
+ ### Functional Requirements
89
+
90
+ - **FR-001**: System MUST [specific capability, e.g., "allow users to create accounts"]
91
+ - **FR-002**: System MUST [specific capability, e.g., "validate email addresses"]
92
+ - **FR-003**: Users MUST be able to [key interaction, e.g., "reset their password"]
93
+ - **FR-004**: System MUST [data requirement, e.g., "persist user preferences"]
94
+ - **FR-005**: System MUST [behavior, e.g., "log all security events"]
95
+
96
+ *Example of marking unclear requirements:*
97
+
98
+ - **FR-006**: System MUST authenticate users via [NEEDS CLARIFICATION: auth method not specified - email/password, SSO, OAuth?]
99
+ - **FR-007**: System MUST retain user data for [NEEDS CLARIFICATION: retention period not specified]
100
+
101
+ ### Key Entities *(include if feature involves data)*
102
+
103
+ - **[Entity 1]**: [What it represents, key attributes without implementation]
104
+ - **[Entity 2]**: [What it represents, relationships to other entities]
105
+
106
+ ## Success Criteria *(mandatory)*
107
+
108
+ <!--
109
+ ACTION REQUIRED: Define measurable success criteria.
110
+ These must be technology-agnostic and measurable.
111
+ -->
112
+
113
+ ### Measurable Outcomes
114
+
115
+ - **SC-001**: [Measurable metric, e.g., "Users can complete account creation in under 2 minutes"]
116
+ - **SC-002**: [Measurable metric, e.g., "System handles 1000 concurrent users without degradation"]
117
+ - **SC-003**: [User satisfaction metric, e.g., "90% of users successfully complete primary task on first attempt"]
118
+ - **SC-004**: [Business metric, e.g., "Reduce support tickets related to [X] by 50%"]
119
+
120
+ ## Assumptions
121
+
122
+ <!--
123
+ ACTION REQUIRED: The content in this section represents placeholders.
124
+ Fill them out with the right assumptions based on reasonable defaults
125
+ chosen when the feature description did not specify certain details.
126
+ -->
127
+
128
+ - [Assumption about target users, e.g., "Users have stable internet connectivity"]
129
+ - [Assumption about scope boundaries, e.g., "Mobile support is out of scope for v1"]
130
+ - [Assumption about data/environment, e.g., "Existing authentication system will be reused"]
131
+ - [Dependency on existing system/service, e.g., "Requires access to the existing user profile API"]
@@ -0,0 +1,252 @@
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
@@ -0,0 +1,77 @@
1
+ schema_version: "1.0"
2
+ workflow:
3
+ id: "aw-spec"
4
+ name: "Full SDD Cycle"
5
+ version: "1.0.0"
6
+ author: "GitHub"
7
+ description: "Runs specify → plan → tasks → implement with review gates"
8
+
9
+ requires:
10
+ # 0.8.5 is the first release with engine-side resolution of the
11
+ # ``integration: "auto"`` default. Older versions would treat "auto"
12
+ # as a literal integration key and fail at dispatch.
13
+ aw-spec_version: ">=0.8.5"
14
+ integrations:
15
+ # The four commands below (specify, plan, tasks, implement) are core
16
+ # aw-spec commands provided by every integration. The list here is an
17
+ # advisory, non-exhaustive compatibility hint following the documented
18
+ # ``any: [...]`` schema -- it is NOT a closed set. The workflow runs
19
+ # against any integration the project was initialized with, including
20
+ # ones not listed below, as long as that integration provides the four
21
+ # core commands referenced in ``steps``.
22
+ any:
23
+ - "claude"
24
+ - "copilot"
25
+ - "gemini"
26
+ - "opencode"
27
+
28
+ inputs:
29
+ spec:
30
+ type: string
31
+ required: true
32
+ prompt: "Describe what you want to build"
33
+ integration:
34
+ type: string
35
+ default: "auto"
36
+ prompt: "Integration to use (e.g. claude, copilot, gemini; 'auto' uses the project's initialized integration)"
37
+ scope:
38
+ type: string
39
+ default: "full"
40
+ enum: ["full", "backend-only", "frontend-only"]
41
+
42
+ steps:
43
+ - id: specify
44
+ command: aw-spec.aw-spec
45
+ integration: "{{ inputs.integration }}"
46
+ input:
47
+ args: "{{ inputs.spec }}"
48
+
49
+ - id: review-spec
50
+ type: gate
51
+ message: "Review the generated spec before planning."
52
+ options: [approve, reject]
53
+ on_reject: abort
54
+
55
+ - id: plan
56
+ command: aw-spec.plan
57
+ integration: "{{ inputs.integration }}"
58
+ input:
59
+ args: "{{ inputs.spec }}"
60
+
61
+ - id: review-plan
62
+ type: gate
63
+ message: "Review the plan before generating tasks."
64
+ options: [approve, reject]
65
+ on_reject: abort
66
+
67
+ - id: tasks
68
+ command: aw-spec.tasks
69
+ integration: "{{ inputs.integration }}"
70
+ input:
71
+ args: "{{ inputs.spec }}"
72
+
73
+ - id: implement
74
+ command: aw-spec.implement
75
+ integration: "{{ inputs.integration }}"
76
+ input:
77
+ args: "{{ inputs.spec }}"
@@ -0,0 +1,13 @@
1
+ {
2
+ "schema_version": "1.0",
3
+ "workflows": {
4
+ "aw-spec": {
5
+ "name": "Full SDD Cycle",
6
+ "version": "1.0.0",
7
+ "description": "Runs specify \u2192 plan \u2192 tasks \u2192 implement with review gates",
8
+ "source": "bundled",
9
+ "installed_at": "2026-06-10T07:39:01.977990+00:00",
10
+ "updated_at": "2026-06-10T07:39:01.977996+00:00"
11
+ }
12
+ }
13
+ }
@@ -0,0 +1,129 @@
1
+ ---
2
+ name: "aw-spec-addcomponent"
3
+ description: "Add an opt-in AppWeaver framework component to the project: pick a component from docs/components/, choose one or more implementations from its integration.md catalog, and wire the matching code in."
4
+ argument-hint: "Optional component folder name to select directly (e.g. Email)"
5
+ compatibility: "Requires aw-spec project structure with a docs/components/ directory whose subfolders each contain an integration.md runbook"
6
+ metadata:
7
+ author: "github-aw-spec"
8
+ source: "local"
9
+ user-invocable: true
10
+ disable-model-invocation: false
11
+ ---
12
+
13
+
14
+ ## User Input
15
+
16
+ ```text
17
+ $ARGUMENTS
18
+ ```
19
+
20
+ The text the user typed after `/aw-spec-addcomponent` (if any) is an optional component folder name
21
+ to select directly (e.g. `Email`). If it matches a folder under `docs/components/`, skip the
22
+ component-selection prompt; otherwise fall through to interactive selection.
23
+
24
+ ## Purpose
25
+
26
+ Add an **opt-in AppWeaver framework component** (Email, Jobs, QrGenerator, …) to the current
27
+ project. Each component lives in its own folder under `docs/components/` and ships two
28
+ agent-readable files: `README.md` (the contract) and `integration.md` (an **ordered agent
29
+ runbook**). This command discovers the available components, lets the developer pick **one**, then
30
+ lets them pick **one or more implementations** from that component's catalog, and finally executes
31
+ the component's own `integration.md` runbook to add the required code.
32
+
33
+ This command is the entry point; the per-component `integration.md` is the authority on *what code
34
+ to add*. Always defer to the selected component's runbook for the actual edits, package versions,
35
+ registration scaffold, and verification steps — do not invent integration steps from memory.
36
+
37
+ ## Outline
38
+
39
+ 1. **Discover candidate components.** List the immediate **subdirectories** of `docs/components/`
40
+ (directories only — ignore loose files such as `README.md`). This is the set of selectable
41
+ components.
42
+ - If `docs/components/` does not exist or has **no** subdirectories, report that no components
43
+ are available, point the user at `docs/components/README.md` for the expected layout, and
44
+ **stop** without changing anything.
45
+ - A component folder is only valid if it contains an `integration.md`. Skip (and note) any
46
+ subfolder missing one.
47
+
48
+ 2. **Direct argument (optional).** If the user passed an argument:
49
+ - If it exactly matches one of the discovered folder names, treat that as the chosen component
50
+ and skip to step 4.
51
+ - If it does not match any folder, note the mismatch, list the available names, and fall through
52
+ to the interactive selection in step 3.
53
+
54
+ 3. **Select the component (single-select).** Present the candidate components with the
55
+ `AskUserQuestion` tool (single-select, `multiSelect: false`). Use each folder name as the option
56
+ label and, if cheaply available, the one-line "Use when…" summary from
57
+ `docs/components/README.md` as the option description.
58
+ - If **more than 4** components exist, split across multiple `AskUserQuestion` questions/calls
59
+ (≤4 options per question).
60
+ - If **exactly one** component exists, ask a confirmation — *"Add component '<name>'?"* with
61
+ options **"Add '<name>'"** and **"Cancel"**.
62
+ - If the user cancels (or interactive questions cannot be asked and no valid argument was given),
63
+ **stop** without changing anything.
64
+
65
+ 4. **Load the component runbook.** Read `docs/components/<chosen>/integration.md` and, when it
66
+ references it, `docs/components/<chosen>/README.md`. Locate the **"Implementation catalog
67
+ (selection list)"** section — its table rows are the selectable implementations. Each row's
68
+ `Key` is the implementation identifier; capture each Key plus its human description for the
69
+ prompt.
70
+ - If `integration.md` is missing or has no implementation catalog, report that the component is
71
+ not integrable via this command and **stop**.
72
+
73
+ 5. **Select implementation(s) (multi-select).** Present the catalog rows with `AskUserQuestion`,
74
+ `multiSelect: true`. Use the `Key` as the option label and the row's "Implementation"/"Best for"
75
+ text as the description.
76
+ - If the catalog has a **single** row, tell the user it is the only available implementation and
77
+ ask them to confirm it (do not invent others).
78
+ - Honor any **grouping / selection rules** the component's `integration.md` states for reading
79
+ the answer (e.g. Jobs: pick exactly one Group A store, optionally one Group B status store).
80
+ If more rows exist than fit one prompt, split across multiple `AskUserQuestion` calls.
81
+
82
+ 6. **Empty selection → exit cleanly.** If the user submits with **nothing selected** (or cancels
83
+ the implementation prompt), do **not** modify the project. Report that no implementation was
84
+ chosen, name the component, and tell them they can re-run `/aw-spec-addcomponent` any time. Then
85
+ **stop**.
86
+
87
+ 7. **Add the code (one or more selected).** Execute the chosen component's `integration.md` runbook
88
+ **in order** for the selected implementation(s):
89
+ - Resolve the **host/startup project** the runbook targets — the single project that owns
90
+ `Program.cs` + the ASP.NET Core web SDK (`<App>.Service` for the Vertical Slice foundation,
91
+ `<App>.API` for the Modular Monolith foundation, or another name in a future template). **Find it
92
+ by locating `Program.cs`, not by assuming a fixed name.** These foundations have **no** separate
93
+ `…Application` / `…Infrastructure` project — package references, registration, and
94
+ `appsettings.json` all target this one project.
95
+ - Apply the runbook's **"Common steps"** once.
96
+ - Apply each selected implementation's **block** (package version in
97
+ `Directory.Packages.props`, `PackageReference` without `Version=`, registration line, config).
98
+ - Set `options.Provider` per the runbook (when multiple implementations are selected, follow the
99
+ runbook's rule for choosing the default/active provider — ask a single-select follow-up if it
100
+ requires one).
101
+ - Honor the cross-cutting rules in `docs/components/README.md` (R0.1–R0.5, incl. R0.2a): versions
102
+ only in `Directory.Packages.props`; register in the host/startup project resolved via `Program.cs`
103
+ (R0.2 — its `Extensions/InfrastructureServiceRegistration.cs`/`AddInfrastructure` if present,
104
+ else `Program.cs`); inject the abstraction; always set `options.Provider`; never commit secrets.
105
+ - **Register in both startup paths when they exist (R0.2a).** If the host project splits
106
+ registration into `AddInfrastructure` (`Extensions/InfrastructureServiceRegistration.cs`) **and**
107
+ `AddAspireInfrastructure` (`Extensions/AspireInfrastructureExtensions.cs`) — the
108
+ `if (isAspire) AddAspireInfrastructure(...) else AddInfrastructure(...)` switch in `Program.cs` —
109
+ add the component's registration to **both** methods, not just `AddInfrastructure`. The block is
110
+ the same in each, differing only in provider-specific calls (connection strings, `UseSqlite` vs
111
+ `UseNpgsql`) that must match that method's existing provider. Registering in only one leaves the
112
+ component missing whenever the app runs in the other mode.
113
+ - Run any optional usage/feature-slice and schema steps only if the runbook calls for them or the
114
+ user asks.
115
+
116
+ 8. **Verify and report.** Run the component runbook's **Verification** checklist (at minimum
117
+ `dotnet build`). Then report:
118
+ - the component added and which implementation key(s) were wired,
119
+ - the active provider,
120
+ - the files changed,
121
+ - any follow-ups the developer must do out-of-band (secrets, migrations, DDL).
122
+
123
+ ## Done When
124
+
125
+ - [ ] A component was chosen, or nothing was changed (no components available, or the user
126
+ cancelled).
127
+ - [ ] If implementations were selected, the component's `integration.md` runbook was executed for
128
+ each, the project builds, and the changes were reported.
129
+ - [ ] If **no** implementation was selected, the project was left untouched and the user was told so.
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: aw-spec-agent-context-update
3
+ description: Refresh the managed AW-Spec section in the coding agent context file
4
+ compatibility: Requires aw-spec project structure with .aw-spec/ directory
5
+ metadata:
6
+ author: github-aw-spec
7
+ source: agent-context:commands/aw-spec.agent-context.update.md
8
+ ---
9
+
10
+ # Update Coding Agent Context
11
+
12
+ Refresh the managed AW-Spec section inside the active coding agent's context/instruction file (e.g. `CLAUDE.md`, `.github/copilot-instructions.md`, `AGENTS.md`).
13
+
14
+ ## Behavior
15
+
16
+ The script reads the agent-context extension config at
17
+ `.aw-spec/extensions/agent-context/agent-context-config.yml` to discover:
18
+
19
+ - `context_file` — the path of the coding agent context file to manage.
20
+ - `context_markers.start` / `.end` — the delimiters surrounding the managed section. Defaults to `<!-- AW-SPEC START -->` and `<!-- AW-SPEC END -->` when the field is missing.
21
+
22
+ It then creates, replaces, or appends the managed block so that the section points at the most recent plan path when one can be discovered (`specs/<feature>/plan.md`).
23
+
24
+ If `context_file` is empty or the file cannot be located, the command reports nothing to do and exits successfully.
25
+
26
+ ## Execution
27
+
28
+ - **Bash**: `.aw-spec/extensions/agent-context/scripts/bash/update-agent-context.sh [plan_path]`
29
+ - **PowerShell**: `.aw-spec/extensions/agent-context/scripts/powershell/update-agent-context.ps1 [plan_path]`
30
+
31
+ When `plan_path` is omitted, the script auto-detects the most recently modified `specs/*/plan.md`.