@zigrivers/scaffold 3.1.0 → 3.4.1

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 (198) hide show
  1. package/README.md +366 -40
  2. package/content/knowledge/core/test-skeleton-generation.md +313 -0
  3. package/{knowledge → content/knowledge}/execution/enhancement-workflow.md +1 -1
  4. package/content/knowledge/product/vision-innovation.md +273 -0
  5. package/{knowledge → content/knowledge}/tools/post-implementation-review-methodology.md +1 -1
  6. package/{pipeline → content/pipeline}/consolidation/workflow-audit.md +1 -1
  7. package/{pipeline → content/pipeline}/decisions/review-adrs.md +1 -1
  8. package/{pipeline → content/pipeline}/environment/design-system.md +1 -1
  9. package/{pipeline → content/pipeline}/finalization/implementation-playbook.md +2 -2
  10. package/{pipeline → content/pipeline}/foundation/tech-stack.md +1 -1
  11. package/{pipeline → content/pipeline}/modeling/review-domain-modeling.md +1 -1
  12. package/{pipeline → content/pipeline}/planning/implementation-plan-review.md +2 -1
  13. package/{pipeline → content/pipeline}/quality/review-testing.md +1 -1
  14. package/{pipeline → content/pipeline}/quality/story-tests.md +2 -2
  15. package/{pipeline → content/pipeline}/vision/innovate-vision.md +1 -1
  16. package/content/skills/mmr/SKILL.md +65 -0
  17. package/content/skills/multi-model-dispatch/SKILL.md +327 -0
  18. package/{agent-skills → content/skills}/scaffold-pipeline/SKILL.md +14 -8
  19. package/{agent-skills → content/skills}/scaffold-runner/SKILL.md +64 -19
  20. package/{tools → content/tools}/post-implementation-review.md +2 -2
  21. package/{tools → content/tools}/prompt-pipeline.md +7 -0
  22. package/dist/cli/commands/build.d.ts.map +1 -1
  23. package/dist/cli/commands/build.js +17 -1
  24. package/dist/cli/commands/build.js.map +1 -1
  25. package/dist/cli/commands/build.test.js +6 -5
  26. package/dist/cli/commands/build.test.js.map +1 -1
  27. package/dist/cli/commands/info.test.js +2 -2
  28. package/dist/cli/commands/info.test.js.map +1 -1
  29. package/dist/cli/commands/init.d.ts.map +1 -1
  30. package/dist/cli/commands/init.js +9 -0
  31. package/dist/cli/commands/init.js.map +1 -1
  32. package/dist/cli/commands/init.test.js +6 -0
  33. package/dist/cli/commands/init.test.js.map +1 -1
  34. package/dist/cli/commands/list.test.js +8 -8
  35. package/dist/cli/commands/list.test.js.map +1 -1
  36. package/dist/cli/commands/run.test.js +4 -4
  37. package/dist/cli/commands/run.test.js.map +1 -1
  38. package/dist/cli/commands/skill.d.ts.map +1 -1
  39. package/dist/cli/commands/skill.js +16 -86
  40. package/dist/cli/commands/skill.js.map +1 -1
  41. package/dist/cli/commands/skill.test.js +27 -46
  42. package/dist/cli/commands/skill.test.js.map +1 -1
  43. package/dist/cli/middleware/project-root.d.ts.map +1 -1
  44. package/dist/cli/middleware/project-root.js +16 -0
  45. package/dist/cli/middleware/project-root.js.map +1 -1
  46. package/dist/cli/middleware/project-root.test.js +20 -0
  47. package/dist/cli/middleware/project-root.test.js.map +1 -1
  48. package/dist/core/adapters/gemini.js +2 -2
  49. package/dist/core/adapters/gemini.js.map +1 -1
  50. package/dist/core/adapters/gemini.test.js +1 -1
  51. package/dist/core/adapters/gemini.test.js.map +1 -1
  52. package/dist/core/skills/sync.d.ts +36 -0
  53. package/dist/core/skills/sync.d.ts.map +1 -0
  54. package/dist/core/skills/sync.js +119 -0
  55. package/dist/core/skills/sync.js.map +1 -0
  56. package/dist/core/skills/sync.test.d.ts +2 -0
  57. package/dist/core/skills/sync.test.d.ts.map +1 -0
  58. package/dist/core/skills/sync.test.js +166 -0
  59. package/dist/core/skills/sync.test.js.map +1 -0
  60. package/dist/e2e/commands.test.js +10 -10
  61. package/dist/e2e/commands.test.js.map +1 -1
  62. package/dist/e2e/knowledge.test.js +5 -4
  63. package/dist/e2e/knowledge.test.js.map +1 -1
  64. package/dist/index.js +0 -0
  65. package/dist/project/adopt.test.js +8 -8
  66. package/dist/project/adopt.test.js.map +1 -1
  67. package/dist/utils/fs.d.ts +5 -5
  68. package/dist/utils/fs.d.ts.map +1 -1
  69. package/dist/utils/fs.js +15 -15
  70. package/dist/utils/fs.js.map +1 -1
  71. package/dist/utils/fs.test.js +9 -9
  72. package/dist/utils/fs.test.js.map +1 -1
  73. package/dist/validation/index.test.js +2 -2
  74. package/dist/validation/index.test.js.map +1 -1
  75. package/package.json +3 -6
  76. package/skills/mmr/SKILL.md +65 -0
  77. package/skills/scaffold-pipeline/SKILL.md +3 -3
  78. /package/{knowledge → content/knowledge}/core/adr-craft.md +0 -0
  79. /package/{knowledge → content/knowledge}/core/ai-memory-management.md +0 -0
  80. /package/{knowledge → content/knowledge}/core/api-design.md +0 -0
  81. /package/{knowledge → content/knowledge}/core/automated-review-tooling.md +0 -0
  82. /package/{knowledge → content/knowledge}/core/claude-md-patterns.md +0 -0
  83. /package/{knowledge → content/knowledge}/core/coding-conventions.md +0 -0
  84. /package/{knowledge → content/knowledge}/core/database-design.md +0 -0
  85. /package/{knowledge → content/knowledge}/core/design-system-tokens.md +0 -0
  86. /package/{knowledge → content/knowledge}/core/dev-environment.md +0 -0
  87. /package/{knowledge → content/knowledge}/core/domain-modeling.md +0 -0
  88. /package/{knowledge → content/knowledge}/core/eval-craft.md +0 -0
  89. /package/{knowledge → content/knowledge}/core/git-workflow-patterns.md +0 -0
  90. /package/{knowledge → content/knowledge}/core/multi-model-review-dispatch.md +0 -0
  91. /package/{knowledge → content/knowledge}/core/operations-runbook.md +0 -0
  92. /package/{knowledge → content/knowledge}/core/project-structure-patterns.md +0 -0
  93. /package/{knowledge → content/knowledge}/core/review-step-template.md +0 -0
  94. /package/{knowledge → content/knowledge}/core/security-best-practices.md +0 -0
  95. /package/{knowledge → content/knowledge}/core/system-architecture.md +0 -0
  96. /package/{knowledge → content/knowledge}/core/task-decomposition.md +0 -0
  97. /package/{knowledge → content/knowledge}/core/task-tracking.md +0 -0
  98. /package/{knowledge → content/knowledge}/core/tech-stack-selection.md +0 -0
  99. /package/{knowledge → content/knowledge}/core/testing-strategy.md +0 -0
  100. /package/{knowledge → content/knowledge}/core/user-stories.md +0 -0
  101. /package/{knowledge → content/knowledge}/core/user-story-innovation.md +0 -0
  102. /package/{knowledge → content/knowledge}/core/ux-specification.md +0 -0
  103. /package/{knowledge → content/knowledge}/execution/task-claiming-strategy.md +0 -0
  104. /package/{knowledge → content/knowledge}/execution/tdd-execution-loop.md +0 -0
  105. /package/{knowledge → content/knowledge}/execution/worktree-management.md +0 -0
  106. /package/{knowledge → content/knowledge}/finalization/apply-fixes-and-freeze.md +0 -0
  107. /package/{knowledge → content/knowledge}/finalization/developer-onboarding.md +0 -0
  108. /package/{knowledge → content/knowledge}/finalization/implementation-playbook.md +0 -0
  109. /package/{knowledge → content/knowledge}/product/gap-analysis.md +0 -0
  110. /package/{knowledge → content/knowledge}/product/prd-craft.md +0 -0
  111. /package/{knowledge → content/knowledge}/product/prd-innovation.md +0 -0
  112. /package/{knowledge → content/knowledge}/product/vision-craft.md +0 -0
  113. /package/{knowledge → content/knowledge}/review/review-adr.md +0 -0
  114. /package/{knowledge → content/knowledge}/review/review-api-design.md +0 -0
  115. /package/{knowledge → content/knowledge}/review/review-database-design.md +0 -0
  116. /package/{knowledge → content/knowledge}/review/review-domain-modeling.md +0 -0
  117. /package/{knowledge → content/knowledge}/review/review-implementation-tasks.md +0 -0
  118. /package/{knowledge → content/knowledge}/review/review-methodology.md +0 -0
  119. /package/{knowledge → content/knowledge}/review/review-operations.md +0 -0
  120. /package/{knowledge → content/knowledge}/review/review-prd.md +0 -0
  121. /package/{knowledge → content/knowledge}/review/review-security.md +0 -0
  122. /package/{knowledge → content/knowledge}/review/review-system-architecture.md +0 -0
  123. /package/{knowledge → content/knowledge}/review/review-testing-strategy.md +0 -0
  124. /package/{knowledge → content/knowledge}/review/review-user-stories.md +0 -0
  125. /package/{knowledge → content/knowledge}/review/review-ux-specification.md +0 -0
  126. /package/{knowledge → content/knowledge}/review/review-vision.md +0 -0
  127. /package/{knowledge → content/knowledge}/tools/release-management.md +0 -0
  128. /package/{knowledge → content/knowledge}/tools/session-analysis.md +0 -0
  129. /package/{knowledge → content/knowledge}/tools/version-strategy.md +0 -0
  130. /package/{knowledge → content/knowledge}/validation/critical-path-analysis.md +0 -0
  131. /package/{knowledge → content/knowledge}/validation/cross-phase-consistency.md +0 -0
  132. /package/{knowledge → content/knowledge}/validation/decision-completeness.md +0 -0
  133. /package/{knowledge → content/knowledge}/validation/dependency-validation.md +0 -0
  134. /package/{knowledge → content/knowledge}/validation/implementability-review.md +0 -0
  135. /package/{knowledge → content/knowledge}/validation/scope-management.md +0 -0
  136. /package/{knowledge → content/knowledge}/validation/traceability.md +0 -0
  137. /package/{methodology → content/methodology}/README.md +0 -0
  138. /package/{methodology → content/methodology}/custom-defaults.yml +0 -0
  139. /package/{methodology → content/methodology}/deep.yml +0 -0
  140. /package/{methodology → content/methodology}/mvp.yml +0 -0
  141. /package/{pipeline → content/pipeline}/architecture/review-architecture.md +0 -0
  142. /package/{pipeline → content/pipeline}/architecture/system-architecture.md +0 -0
  143. /package/{pipeline → content/pipeline}/build/multi-agent-resume.md +0 -0
  144. /package/{pipeline → content/pipeline}/build/multi-agent-start.md +0 -0
  145. /package/{pipeline → content/pipeline}/build/new-enhancement.md +0 -0
  146. /package/{pipeline → content/pipeline}/build/quick-task.md +0 -0
  147. /package/{pipeline → content/pipeline}/build/single-agent-resume.md +0 -0
  148. /package/{pipeline → content/pipeline}/build/single-agent-start.md +0 -0
  149. /package/{pipeline → content/pipeline}/consolidation/claude-md-optimization.md +0 -0
  150. /package/{pipeline → content/pipeline}/decisions/adrs.md +0 -0
  151. /package/{pipeline → content/pipeline}/environment/ai-memory-setup.md +0 -0
  152. /package/{pipeline → content/pipeline}/environment/automated-pr-review.md +0 -0
  153. /package/{pipeline → content/pipeline}/environment/dev-env-setup.md +0 -0
  154. /package/{pipeline → content/pipeline}/environment/git-workflow.md +0 -0
  155. /package/{pipeline → content/pipeline}/finalization/apply-fixes-and-freeze.md +0 -0
  156. /package/{pipeline → content/pipeline}/finalization/developer-onboarding-guide.md +0 -0
  157. /package/{pipeline → content/pipeline}/foundation/beads.md +0 -0
  158. /package/{pipeline → content/pipeline}/foundation/coding-standards.md +0 -0
  159. /package/{pipeline → content/pipeline}/foundation/project-structure.md +0 -0
  160. /package/{pipeline → content/pipeline}/foundation/tdd.md +0 -0
  161. /package/{pipeline → content/pipeline}/integration/add-e2e-testing.md +0 -0
  162. /package/{pipeline → content/pipeline}/modeling/domain-modeling.md +0 -0
  163. /package/{pipeline → content/pipeline}/parity/platform-parity-review.md +0 -0
  164. /package/{pipeline → content/pipeline}/planning/implementation-plan.md +0 -0
  165. /package/{pipeline → content/pipeline}/pre/create-prd.md +0 -0
  166. /package/{pipeline → content/pipeline}/pre/innovate-prd.md +0 -0
  167. /package/{pipeline → content/pipeline}/pre/innovate-user-stories.md +0 -0
  168. /package/{pipeline → content/pipeline}/pre/review-prd.md +0 -0
  169. /package/{pipeline → content/pipeline}/pre/review-user-stories.md +0 -0
  170. /package/{pipeline → content/pipeline}/pre/user-stories.md +0 -0
  171. /package/{pipeline → content/pipeline}/quality/create-evals.md +0 -0
  172. /package/{pipeline → content/pipeline}/quality/operations.md +0 -0
  173. /package/{pipeline → content/pipeline}/quality/review-operations.md +0 -0
  174. /package/{pipeline → content/pipeline}/quality/review-security.md +0 -0
  175. /package/{pipeline → content/pipeline}/quality/security.md +0 -0
  176. /package/{pipeline → content/pipeline}/specification/api-contracts.md +0 -0
  177. /package/{pipeline → content/pipeline}/specification/database-schema.md +0 -0
  178. /package/{pipeline → content/pipeline}/specification/review-api.md +0 -0
  179. /package/{pipeline → content/pipeline}/specification/review-database.md +0 -0
  180. /package/{pipeline → content/pipeline}/specification/review-ux.md +0 -0
  181. /package/{pipeline → content/pipeline}/specification/ux-spec.md +0 -0
  182. /package/{pipeline → content/pipeline}/validation/critical-path-walkthrough.md +0 -0
  183. /package/{pipeline → content/pipeline}/validation/cross-phase-consistency.md +0 -0
  184. /package/{pipeline → content/pipeline}/validation/decision-completeness.md +0 -0
  185. /package/{pipeline → content/pipeline}/validation/dependency-graph-validation.md +0 -0
  186. /package/{pipeline → content/pipeline}/validation/implementability-dry-run.md +0 -0
  187. /package/{pipeline → content/pipeline}/validation/scope-creep-check.md +0 -0
  188. /package/{pipeline → content/pipeline}/validation/traceability-matrix.md +0 -0
  189. /package/{pipeline → content/pipeline}/vision/create-vision.md +0 -0
  190. /package/{pipeline → content/pipeline}/vision/review-vision.md +0 -0
  191. /package/{tools → content/tools}/dashboard.md +0 -0
  192. /package/{tools → content/tools}/release.md +0 -0
  193. /package/{tools → content/tools}/review-code.md +0 -0
  194. /package/{tools → content/tools}/review-pr.md +0 -0
  195. /package/{tools → content/tools}/session-analyzer.md +0 -0
  196. /package/{tools → content/tools}/update.md +0 -0
  197. /package/{tools → content/tools}/version-bump.md +0 -0
  198. /package/{tools → content/tools}/version.md +0 -0
@@ -0,0 +1,313 @@
1
+ ---
2
+ name: test-skeleton-generation
3
+ description: Patterns for translating acceptance criteria into framework-specific test skeleton files
4
+ topics: [testing, test-generation, acceptance-criteria, tdd, test-skeletons]
5
+ ---
6
+
7
+ # Test Skeleton Generation
8
+
9
+ This knowledge covers the translation of user story acceptance criteria (Given/When/Then format) into framework-specific test skeleton files. Skeletons are pending/skipped test stubs — they document expected behavior and provide a TDD starting point, but contain no implementation logic.
10
+
11
+ This is distinct from testing strategy (`testing-strategy`), which covers overall test architecture, and user stories (`user-stories`), which covers story authoring. This knowledge bridges the two: given well-written ACs and a chosen test framework, produce a complete set of traceable test skeletons.
12
+
13
+ ## Summary
14
+
15
+ - **Purpose**: Translate user story acceptance criteria (Given/When/Then) into pending test cases in the project's test framework, one test per AC.
16
+ - **Output format**: One test file per story (or per epic), with each AC as a pending/skipped test case that documents the expected behavior without implementing it.
17
+ - **Framework mapping**: `describe` = story, `it`/`test` = AC criterion. For frameworks without pending support, use `it.skip` or `@pytest.mark.skip` with the AC text as the test name.
18
+ - **Layer assignment**: Each test skeleton is tagged with its execution layer (unit, integration, e2e) based on what the AC tests — data validation = unit, API flow = integration, user workflow = e2e.
19
+ - **ID tracing**: Every test name includes the story ID and criterion ID (e.g., `US-3.2: Given a logged-in user...`) so implementation agents can trace tests back to requirements.
20
+ - **Story-tests-map**: A traceability matrix (`docs/story-tests-map.md`) maps every story to its test files, every AC to its test case, and assigns execution layers.
21
+
22
+ ## Deep Guidance
23
+
24
+ ### Scope Boundary
25
+
26
+ **In scope:**
27
+ - Translating GWT acceptance criteria into pending test stubs
28
+ - Assigning test execution layers (unit, integration, e2e)
29
+ - Creating the story-tests-map traceability matrix
30
+ - Framework-specific skeleton patterns (vitest, pytest, bats, Go, etc.)
31
+ - Test file naming and directory conventions
32
+
33
+ **Out of scope:**
34
+ - Implementing test logic (skeletons are stubs only)
35
+ - Choosing the test framework (read `docs/tech-stack.md`)
36
+ - Writing acceptance criteria (that's the user stories step)
37
+ - Test infrastructure setup (that's the TDD standards step)
38
+
39
+ ---
40
+
41
+ ### Translation Rules
42
+
43
+ **Given/When/Then to Test Structure:**
44
+
45
+ The GWT format maps directly to the Arrange/Act/Assert pattern used in every test framework:
46
+
47
+ ```
48
+ Given [precondition] -> test setup / arrange
49
+ When [action] -> act / trigger
50
+ Then [expected outcome] -> assert / verify
51
+ And [additional outcome] -> additional assertion
52
+ ```
53
+
54
+ Multiple `Given` clauses become multiple setup steps. Multiple `Then` clauses become multiple assertions in the same test. `And` following a `Given` is another precondition; `And` following a `Then` is another assertion.
55
+
56
+ **Compound ACs:**
57
+
58
+ When an AC has multiple `When` clauses, each `When` is a separate test case. The common `Given` preconditions are shared setup (a `beforeEach` or fixture), and each `When/Then` pair becomes its own test.
59
+
60
+ ---
61
+
62
+ ### Framework-Specific Patterns
63
+
64
+ #### vitest / jest (TypeScript/JavaScript)
65
+
66
+ ```typescript
67
+ import { describe, it } from 'vitest';
68
+
69
+ describe('US-3: User can reset their password', () => {
70
+ it.skip('AC-3.1: Given a registered user, when they request a password reset, then a reset email is sent', () => {
71
+ // Arrange: registered user exists
72
+ // Act: request password reset
73
+ // Assert: reset email sent
74
+ });
75
+
76
+ it.skip('AC-3.2: Given a valid reset token, when the user submits a new password, then the password is updated', () => {
77
+ // Arrange: valid reset token exists
78
+ // Act: submit new password
79
+ // Assert: password updated in database
80
+ });
81
+
82
+ it.skip('AC-3.3: Given an expired reset token, when the user submits a new password, then an error is shown', () => {
83
+ // Arrange: expired reset token
84
+ // Act: submit new password
85
+ // Assert: error message displayed, password unchanged
86
+ });
87
+ });
88
+ ```
89
+
90
+ #### pytest (Python)
91
+
92
+ ```python
93
+ import pytest
94
+
95
+ class TestUS3UserCanResetPassword:
96
+ """US-3: User can reset their password"""
97
+
98
+ @pytest.mark.skip(reason="skeleton")
99
+ def test_ac_3_1_given_registered_user_when_request_reset_then_email_sent(self):
100
+ """AC-3.1: Given a registered user, when they request a password reset, then a reset email is sent"""
101
+ # Arrange: registered user exists
102
+ # Act: request password reset
103
+ # Assert: reset email sent
104
+ pass
105
+
106
+ @pytest.mark.skip(reason="skeleton")
107
+ def test_ac_3_2_given_valid_token_when_submit_password_then_updated(self):
108
+ """AC-3.2: Given a valid reset token, when the user submits a new password, then the password is updated"""
109
+ # Arrange: valid reset token exists
110
+ # Act: submit new password
111
+ # Assert: password updated in database
112
+ pass
113
+ ```
114
+
115
+ #### bats (Bash)
116
+
117
+ ```bash
118
+ # US-3: User can reset their password
119
+
120
+ @test "AC-3.1: Given a registered user, when they request a password reset, then a reset email is sent" {
121
+ skip "skeleton"
122
+ # Arrange: registered user exists
123
+ # Act: request password reset
124
+ # Assert: reset email sent
125
+ }
126
+
127
+ @test "AC-3.2: Given a valid reset token, when the user submits a new password, then the password is updated" {
128
+ skip "skeleton"
129
+ # Arrange: valid reset token exists
130
+ # Act: submit new password
131
+ # Assert: password updated in database
132
+ }
133
+ ```
134
+
135
+ #### Go testing
136
+
137
+ ```go
138
+ func TestUS3_UserCanResetPassword(t *testing.T) {
139
+ t.Run("AC-3.1: Given a registered user, when they request a password reset, then a reset email is sent", func(t *testing.T) {
140
+ t.Skip("skeleton")
141
+ // Arrange: registered user exists
142
+ // Act: request password reset
143
+ // Assert: reset email sent
144
+ })
145
+
146
+ t.Run("AC-3.2: Given a valid reset token, when the user submits a new password, then the password is updated", func(t *testing.T) {
147
+ t.Skip("skeleton")
148
+ // Arrange: valid reset token exists
149
+ // Act: submit new password
150
+ // Assert: password updated in database
151
+ })
152
+ }
153
+ ```
154
+
155
+ ### Framework-Specific Summary Table
156
+
157
+ | Framework | Story Group | Test Case | Pending Marker |
158
+ |-----------|------------|-----------|----------------|
159
+ | vitest/jest | `describe('US-3: Story title')` | `it('AC-3.1: Given X when Y then Z')` | `it.skip(...)` or `it.todo(...)` |
160
+ | pytest | `class TestUS3StoryTitle:` | `def test_ac_3_1_given_x_when_y_then_z(self):` | `@pytest.mark.skip(reason='skeleton')` |
161
+ | bats | comment block with story ID | `@test "AC-3.1: Given X when Y then Z"` | `skip "skeleton"` |
162
+ | Go testing | `func TestUS3_StoryTitle(t *testing.T)` | `t.Run("AC-3.1: Given X when Y then Z", ...)` | `t.Skip("skeleton")` |
163
+ | RSpec | `describe 'US-3: Story title'` | `it 'AC-3.1: ...'` | `xit 'AC-3.1: ...'` or `pending` |
164
+ | JUnit 5 | `@Nested class US3_StoryTitle` | `@Test @Disabled("skeleton")` | `@Disabled("skeleton")` |
165
+
166
+ ---
167
+
168
+ ### Layer Assignment Heuristic
169
+
170
+ Each test skeleton is tagged with its execution layer. This determines where the test runs in CI and what infrastructure it requires.
171
+
172
+ | AC Pattern | Layer | Example |
173
+ |------------|-------|---------|
174
+ | Validates input/output of a single function | Unit | "Then the email format is validated" |
175
+ | Tests interaction between components | Integration | "Then the order is saved to the database" |
176
+ | Tests a user-visible workflow end-to-end | E2E | "Then the user sees a confirmation page" |
177
+ | Tests error handling at a boundary | Integration | "Then a 400 error is returned with details" |
178
+ | Tests a non-functional requirement | Varies | Perf = benchmark, security = integration |
179
+
180
+ #### Layer Decision Rules
181
+
182
+ When the layer is ambiguous, apply these rules in order:
183
+
184
+ 1. **Does the AC mention a UI element or user-visible state?** → E2E
185
+ 2. **Does the AC cross a service or component boundary?** → Integration
186
+ 3. **Does the AC test a single function's behavior with known inputs/outputs?** → Unit
187
+ 4. **Does the AC test data persistence or retrieval?** → Integration
188
+ 5. **Does the AC test an external service interaction?** → Integration (with mocks)
189
+
190
+ #### Layer Tags in Test Files
191
+
192
+ Add layer tags as comments or test metadata so CI can filter by layer:
193
+
194
+ ```typescript
195
+ // @layer: integration
196
+ describe('US-3: User can reset their password', () => { ... });
197
+ ```
198
+
199
+ ```python
200
+ @pytest.mark.integration
201
+ class TestUS3UserCanResetPassword:
202
+ ...
203
+ ```
204
+
205
+ ---
206
+
207
+ ### Test File Naming and Organization
208
+
209
+ #### File Naming Convention
210
+
211
+ Test files follow the pattern: `{story-id}-{slug}.test.{ext}`
212
+
213
+ Examples:
214
+ - `us-1-user-registration.test.ts`
215
+ - `us-2-password-reset.test.ts`
216
+ - `us-3-profile-management.test.ts`
217
+
218
+ The story ID prefix ensures files sort in story order. The slug provides human-readable context.
219
+
220
+ #### Directory Structure
221
+
222
+ Test skeletons go in the acceptance test directory defined in `docs/project-structure.md`. If no convention exists, default to:
223
+
224
+ ```
225
+ tests/
226
+ acceptance/
227
+ us-1-user-registration.test.ts
228
+ us-2-password-reset.test.ts
229
+ us-3-profile-management.test.ts
230
+ ```
231
+
232
+ For projects that split tests by layer:
233
+
234
+ ```
235
+ tests/
236
+ unit/
237
+ us-1-user-registration.unit.test.ts
238
+ integration/
239
+ us-1-user-registration.integration.test.ts
240
+ e2e/
241
+ us-1-user-registration.e2e.test.ts
242
+ ```
243
+
244
+ ---
245
+
246
+ ### Story-Tests-Map Format
247
+
248
+ The `docs/story-tests-map.md` output maps every story to its test files. This is the primary traceability artifact.
249
+
250
+ ```markdown
251
+ # Story-Tests Map
252
+
253
+ ## Coverage Summary
254
+
255
+ | Metric | Value |
256
+ |--------|-------|
257
+ | Total stories | 12 |
258
+ | Stories with tests | 12 |
259
+ | Total ACs | 47 |
260
+ | ACs with test cases | 47 |
261
+ | Coverage | 100% |
262
+
263
+ ## Traceability Matrix
264
+
265
+ | Story ID | Story Title | Test File | Layer | AC Count |
266
+ |----------|------------|-----------|-------|----------|
267
+ | US-1 | User registration | tests/acceptance/us-1-registration.test.ts | integration | 4 |
268
+ | US-2 | Password reset | tests/acceptance/us-2-password-reset.test.ts | e2e | 3 |
269
+ | US-3 | Profile management | tests/acceptance/us-3-profile.test.ts | unit | 5 |
270
+ ```
271
+
272
+ The map must be updated whenever stories are added, removed, or have ACs changed. In update mode, new rows are appended and the coverage summary is recalculated.
273
+
274
+ ---
275
+
276
+ ### Handling Edge Cases
277
+
278
+ #### Stories Without GWT Format
279
+
280
+ If acceptance criteria are not in Given/When/Then format, convert them:
281
+ - "Users can search by keyword" → "Given a user on the search page, when they enter a keyword and submit, then matching results are displayed"
282
+ - Preserve the original AC text as a comment in the test case
283
+
284
+ #### Stories With Many ACs
285
+
286
+ Stories with more than 10 ACs may indicate the story is too large. Flag this in the story-tests-map but generate all skeletons regardless — the story decomposition is a separate concern.
287
+
288
+ #### Shared Preconditions
289
+
290
+ When multiple ACs share the same `Given` precondition, use the framework's shared setup:
291
+ - vitest/jest: `beforeEach` or `beforeAll`
292
+ - pytest: `@pytest.fixture`
293
+ - bats: `setup()`
294
+ - Go: helper function called at the start of each subtest
295
+
296
+ #### Negative Test Cases
297
+
298
+ For deep methodology, generate negative test cases for each happy-path AC:
299
+ - "Given X, when Y, then Z" → also generate "Given NOT X, when Y, then error"
300
+ - Negative cases get their own AC IDs: `AC-3.1-NEG`
301
+
302
+ ---
303
+
304
+ ### Anti-Patterns
305
+
306
+ - Don't implement test logic — skeletons are pending/skipped stubs only
307
+ - Don't combine multiple ACs into one test — one AC = one test case
308
+ - Don't omit the story/criterion ID from test names — traceability is the point
309
+ - Don't guess the test framework — read `docs/tech-stack.md` and `docs/tdd-standards.md`
310
+ - Don't create test files outside the project's test directory convention
311
+ - Don't add assertion logic to skeletons — that's the implementation agent's job
312
+ - Don't generate skeletons for non-functional requirements unless they have explicit ACs
313
+ - Don't skip the story-tests-map — it's the verification artifact that proves coverage
@@ -42,7 +42,7 @@ Read these documents in order before proposing any changes:
42
42
  1. **Product vision** (`docs/vision.md` or equivalent) — understand the project's purpose and direction
43
43
  2. **PRD** (`docs/prd.md`) — understand existing requirements and constraints
44
44
  3. **User stories** (`docs/user-stories.md`) — understand who uses the system and how
45
- 4. **Architecture** (`docs/architecture.md` or ADRs) — understand the technical structure
45
+ 4. **Architecture** (`docs/system-architecture.md` or ADRs) — understand the technical structure
46
46
  5. **Coding standards** (`docs/coding-standards.md`) — understand conventions you must follow
47
47
  6. **TDD standards** (`docs/tdd-standards.md`) — understand testing expectations
48
48
  7. **Project structure** (`docs/project-structure.md`) — understand where code lives
@@ -0,0 +1,273 @@
1
+ ---
2
+ name: vision-innovation
3
+ description: Techniques for discovering strategic innovation opportunities in product vision
4
+ topics: [innovation, vision, strategy, competitive-positioning, ecosystem, market-opportunities]
5
+ ---
6
+
7
+ # Vision Innovation
8
+
9
+ This knowledge covers strategic-level innovation — discovering market positioning opportunities, ecosystem plays, contrarian bets, and AI-native rethinking that belong in the product vision. It operates at the strategic scope level: how should this product be positioned in the market?
10
+
11
+ This is distinct from PRD innovation (`prd-innovation`), which covers feature-level gaps, and user story innovation (`user-story-innovation`), which covers UX-level enhancements. If an idea is about a specific feature or UX improvement, it belongs in those respective knowledge entries, not here.
12
+
13
+ ## Summary
14
+
15
+ - **Scope**: Strategic-level innovation (market positioning, ecosystem plays, contrarian bets, AI-native capabilities). Feature-level innovation belongs in PRD innovation (`prd-innovation`); UX-level improvements belong in user story innovation (`user-story-innovation`).
16
+ - **Adjacent market discovery**: Look for underserved segments adjacent to the primary target — same problem in different industries, same users with upstream/downstream needs, or existing users with unmet complementary needs.
17
+ - **Ecosystem thinking**: Identify integration points, platform plays, and data network effects — where does the product become more valuable as usage grows or connections multiply?
18
+ - **Contrarian positioning**: Challenge assumptions the market takes for granted — what would a solution look like if you ignored the dominant UX pattern, pricing model, or distribution channel?
19
+ - **AI-native opportunities**: Capabilities only possible with AI (real-time personalization, natural language interfaces, predictive workflows, automated quality feedback) that would be impractical to build conventionally.
20
+ - **Evaluation framework**: Strategic fit x Defensibility x Timing. Must-have for vision = high strategic fit with defensibility, achievable in v1 timeline.
21
+
22
+ ## Deep Guidance
23
+
24
+ ### Scope Boundary
25
+
26
+ **In scope:**
27
+ - Market positioning and competitive strategy
28
+ - Adjacent market and segment identification
29
+ - Ecosystem and platform plays
30
+ - Network effect opportunities
31
+ - Contrarian bets and assumption challenges
32
+ - AI-native strategic rethinking of the product concept
33
+ - Business model innovation (pricing, distribution, partnerships)
34
+
35
+ **Out of scope:**
36
+ - Specific feature ideas (belongs in PRD innovation)
37
+ - UX improvements to existing features (belongs in user story innovation)
38
+ - Implementation details (belongs in ADRs and architecture docs)
39
+ - Operational concerns (belongs in operations planning)
40
+
41
+ ---
42
+
43
+ ### Strategic Innovation Framework
44
+
45
+ Apply these lenses sequentially. Each builds on the previous:
46
+
47
+ **1. Market Landscape Scan**
48
+ - Who are the 3-5 closest competitors? What do they all assume?
49
+ - Which customer segments are poorly served by existing solutions?
50
+ - What friction points exist in the current adoption/onboarding flow industry-wide?
51
+ - Are there geographic, regulatory, or industry verticals where existing solutions don't work?
52
+ - What recent market shifts (technology, regulation, cultural) create new openings?
53
+
54
+ **2. Ecosystem & Platform Analysis**
55
+ - What data does this product generate that others would find valuable?
56
+ - What integrations would make this product "sticky" (hard to leave)?
57
+ - Could this product become a platform that others build on?
58
+ - What network effects are possible (direct: more users = more value; indirect: more content/data = better product)?
59
+ - Where could partnerships create mutual value that neither party could achieve alone?
60
+
61
+ **3. Contrarian & Blue Ocean Opportunities**
62
+ - What would the product look like if it cost 10x less? 10x more?
63
+ - What if the primary interface were voice? Chat? No interface at all?
64
+ - What if the product solved the problem *before* the user knew they had it?
65
+ - Which "table stakes" features could be dropped entirely for a specific segment?
66
+ - What assumptions about the target user are untested?
67
+
68
+ **4. AI-Native Capabilities**
69
+ - Where can the product anticipate user intent rather than waiting for commands?
70
+ - What manual steps could be eliminated with LLM-powered analysis?
71
+ - Where can the product learn from usage patterns without explicit configuration?
72
+ - What would a "copilot" experience look like for this domain?
73
+ - Which competitive advantages become possible only with AI at the core?
74
+
75
+ ---
76
+
77
+ ### Adjacent Market Discovery
78
+
79
+ Adjacent markets are the highest-value innovation targets because they leverage existing product capabilities for new audiences.
80
+
81
+ #### Discovery Techniques
82
+
83
+ **Same problem, different industry:**
84
+ The product solves a problem for industry A. Which other industries have the same problem with slightly different constraints? Example: project management for software teams → project management for construction, legal, or healthcare teams.
85
+
86
+ **Same users, upstream/downstream needs:**
87
+ The product's target users have needs before and after they use the product. What happens before they arrive? What do they do with the output? Example: a reporting tool's users need data collection upstream and presentation downstream.
88
+
89
+ **Existing users, unmet complementary needs:**
90
+ What do current target users also struggle with that the product could address? Example: a CRM user also needs contract management, scheduling, and billing.
91
+
92
+ #### Evaluation
93
+
94
+ For each adjacent market:
95
+ - Size: Is the adjacent market large enough to justify the positioning shift?
96
+ - Overlap: How much of the existing product applies without modification?
97
+ - Competition: Is the adjacent market underserved or already crowded?
98
+ - Brand stretch: Can the product credibly serve both the original and adjacent markets?
99
+
100
+ ---
101
+
102
+ ### Ecosystem & Platform Thinking
103
+
104
+ Products that become platforms or ecosystem hubs are harder to displace and grow more valuable over time.
105
+
106
+ #### Integration Strategy
107
+
108
+ Identify the top 5-10 tools in the target user's workflow. For each:
109
+ - Does integrating with this tool make the product more valuable?
110
+ - Does the integration create switching costs (data flows that are hard to replicate)?
111
+ - Is the integration bidirectional (data flows both ways)?
112
+
113
+ #### Data Network Effects
114
+
115
+ The most defensible products generate data that makes the product better:
116
+ - Usage data that improves recommendations or predictions
117
+ - Aggregated data that provides benchmarks or insights
118
+ - Content created by users that attracts other users
119
+ - Training data that improves AI capabilities over time
120
+
121
+ #### Platform Potential
122
+
123
+ Could third parties build on this product? Signs of platform potential:
124
+ - The product has a natural extension point (plugins, templates, integrations)
125
+ - Users want to customize the product beyond what's built-in
126
+ - The product generates data or output that others want to consume
127
+ - There's a community of practitioners who would build for peers
128
+
129
+ ---
130
+
131
+ ### Contrarian Positioning
132
+
133
+ The most differentiated products challenge at least one industry assumption. Contrarian positioning creates separation from competitors who all look the same.
134
+
135
+ #### Assumption Mapping
136
+
137
+ List the 5-10 things "everyone knows" about the product category:
138
+ - The standard pricing model (subscription, per-seat, usage-based)
139
+ - The standard distribution channel (direct sales, self-serve, marketplace)
140
+ - The standard UX pattern (dashboard, wizard, chat, forms)
141
+ - The standard feature set (what every competitor has)
142
+ - The standard target user (who everyone is selling to)
143
+
144
+ For each assumption, ask: "What if the opposite were true?" Most answers will be absurd. One or two will be genuinely interesting.
145
+
146
+ #### Blue Ocean Signals
147
+
148
+ A blue ocean opportunity exists when:
149
+ - Competitors are converging on identical positioning
150
+ - Users are forced to choose based on price because products are indistinguishable
151
+ - A significant user segment is overserved (paying for features they don't use)
152
+ - A significant user segment is underserved (can't afford or can't find a solution)
153
+
154
+ ---
155
+
156
+ ### AI-Native Rethinking
157
+
158
+ If this product were conceived today with AI capabilities assumed from day one, what changes fundamentally?
159
+
160
+ #### Categories of AI-Native Innovation
161
+
162
+ **Anticipatory experiences:**
163
+ The product acts before the user asks. Instead of "search for X," the product surfaces X when the user is likely to need it. This requires understanding user intent from context.
164
+
165
+ **Natural language as primary interface:**
166
+ Instead of forms, menus, and buttons, the user describes what they want in natural language. The product interprets intent, executes actions, and confirms results. This isn't a chatbot bolted on — it's a fundamentally different interaction model.
167
+
168
+ **Automated quality and feedback:**
169
+ The product continuously evaluates its own output and the user's work, providing real-time feedback, suggestions, and corrections without being asked.
170
+
171
+ **Personalization without configuration:**
172
+ The product adapts to each user's patterns, preferences, and context without requiring explicit settings or preferences. The more the user uses it, the better it gets.
173
+
174
+ #### AI-Native vs. AI-Augmented
175
+
176
+ - **AI-native**: The product could not exist without AI. The core value proposition depends on AI capabilities.
177
+ - **AI-augmented**: The product exists without AI, but AI makes it better. AI is a feature, not the foundation.
178
+
179
+ Vision innovation should prioritize AI-native opportunities over AI-augmented ones. AI-augmented features are better suited for PRD innovation.
180
+
181
+ ---
182
+
183
+ ### Evaluation Criteria
184
+
185
+ For each innovation opportunity, evaluate on four dimensions:
186
+
187
+ #### Strategic Fit
188
+ - Does it reinforce the vision's core thesis?
189
+ - Does it serve the same target users or adjacent ones?
190
+ - Does it align with the stated guiding principles?
191
+ - Would including it make the vision more coherent or less?
192
+
193
+ #### Defensibility
194
+ - Is this hard for competitors to replicate?
195
+ - Does it create switching costs, network effects, or data advantages?
196
+ - Does it require capabilities or relationships that take time to build?
197
+ - Would a well-funded competitor need more than money to catch up?
198
+
199
+ #### Timing
200
+ - Is this a v1 differentiator or a future roadmap item?
201
+ - Are the enabling technologies mature enough to deliver reliably?
202
+ - Is the market ready for this approach, or would it need education?
203
+ - Does this need to be first-mover or can it be fast-follower?
204
+
205
+ #### Feasibility
206
+ - Can current AI capabilities deliver this reliably?
207
+ - Does the team have the expertise to execute this?
208
+ - Are the required data sources and integrations available?
209
+ - What's the minimum viable version of this innovation?
210
+
211
+ ### Decision Framework
212
+
213
+ | | High Defensibility | Low Defensibility |
214
+ |---|---|---|
215
+ | **High Strategic Fit** | Must-have for vision | Evaluate timing — good if early-mover |
216
+ | **Low Strategic Fit** | Backlog — may pivot into relevance | Reject — distraction |
217
+
218
+ ---
219
+
220
+ ### Presenting Strategic Innovations
221
+
222
+ Group innovations by dimension (market, ecosystem, contrarian, AI-native) for structured decision-making. For each innovation:
223
+
224
+ 1. **What**: The strategic innovation in one sentence
225
+ 2. **Why**: Strategic rationale tied to the vision's goals or gaps
226
+ 3. **Impact**: How much stronger the product positioning becomes (high / medium / low)
227
+ 4. **Defensibility**: How hard this is to replicate (high / medium / low)
228
+ 5. **Timing**: v1 differentiator or future roadmap
229
+ 6. **Recommendation**: Must-have for vision, backlog, or reject
230
+
231
+ ### Example Innovation Finding
232
+
233
+ ```markdown
234
+ ## Innovation Finding: Ecosystem Data Benchmark Play
235
+
236
+ **Dimension:** Ecosystem & Platform
237
+ **Applies to:** Vision section "Market Positioning"
238
+
239
+ **Current positioning:** The product is a standalone tool for individual teams.
240
+
241
+ **Proposed strategic shift:** Position as an ecosystem hub that aggregates
242
+ anonymized usage data across customers to provide industry benchmarks.
243
+ Individual teams get better by seeing how they compare to peers.
244
+
245
+ **Strategic rationale:** Competitors are standalone tools competing on features.
246
+ An ecosystem play creates a data network effect — each new customer makes the
247
+ benchmarks more valuable for all customers, creating a defensibility moat that
248
+ feature competition cannot replicate.
249
+
250
+ **Impact:** High — transforms positioning from "better tool" to "smarter tool
251
+ that gets better with scale."
252
+
253
+ **Defensibility:** High — requires critical mass of data that a new entrant
254
+ cannot shortcut.
255
+
256
+ **Timing:** v1 foundation, v2+ full realization. v1 needs data collection
257
+ infrastructure and basic benchmarks. Full benchmarking suite is a roadmap item.
258
+
259
+ **Recommendation:** Must-have for vision. Include data collection and basic
260
+ benchmarks in v1 scope. Full benchmark platform is backlog.
261
+ ```
262
+
263
+ ---
264
+
265
+ ### Anti-Patterns
266
+
267
+ - Don't innovate on commodity features (auth, billing, CRUD) — these should be standard
268
+ - Don't propose innovations that require the product to be successful first (network effects for a product with zero users need a bootstrap strategy)
269
+ - Don't confuse "technically interesting" with "strategically valuable"
270
+ - Don't ignore the user's stated vision — innovations should extend it, not replace it
271
+ - Don't conflate strategic innovation with feature requests — "add a dashboard" is a feature, "position as the intelligence layer for the industry" is strategic
272
+ - Don't propose more than 5-7 innovations — decision fatigue reduces quality of choices
273
+ - Don't present all innovations as must-haves — honest triage builds trust and produces better decisions
@@ -44,7 +44,7 @@ Review the whole codebase for systemic concerns:
44
44
  Codex and Gemini cannot read files directly. Build a context bundle:
45
45
 
46
46
  1. Full file tree (excluding node_modules, .git, dist, build, coverage)
47
- 2. Architecture docs (docs/architecture.md, docs/adrs/*.md if present)
47
+ 2. Architecture docs (docs/system-architecture.md, docs/adrs/*.md if present)
48
48
  3. Coding standards (docs/coding-standards.md)
49
49
  4. Up to 15 strategically selected files:
50
50
  - Entry points (main.*, index.*, app.*, server.* at root/src level)
@@ -5,7 +5,7 @@ summary: "Audits every document that mentions workflow (CLAUDE.md, git-workflow,
5
5
  phase: "consolidation"
6
6
  order: 1120
7
7
  dependencies: [claude-md-optimization]
8
- outputs: [CLAUDE.md, docs/git-workflow.md]
8
+ outputs: [CLAUDE.md, docs/git-workflow.md, docs/coding-standards.md, tasks/lessons.md]
9
9
  conditional: null
10
10
  reads: [operations]
11
11
  knowledge-base: [cross-phase-consistency, claude-md-patterns, git-workflow-patterns]
@@ -31,7 +31,7 @@ independent review validation.
31
31
  - docs/reviews/adrs/gemini-review.json (depth 4+, if available) — raw Gemini findings
32
32
 
33
33
  ## Quality Criteria
34
- - (mvp) All ADR-specific review passes executed
34
+ - (mvp) Contradiction check executed with findings documented
35
35
  - (mvp) Every finding categorized P0-P3 with specific ADR number, section, and issue. Severity definitions: P0 = Breaks downstream work. P1 = Prevents quality milestone. P2 = Known tech debt. P3 = Polish.
36
36
  - (deep) Missing decisions identified and documented
37
37
  - (mvp) Contradictions resolved
@@ -5,7 +5,7 @@ summary: "Creates a visual language — color palette (WCAG-compliant), typograp
5
5
  phase: "environment"
6
6
  order: 320
7
7
  dependencies: [dev-env-setup]
8
- outputs: [docs/design-system.md, tailwind.config.js, docs/coding-standards.md]
8
+ outputs: [docs/design-system.md, docs/coding-standards.md]
9
9
  reads: [create-prd]
10
10
  conditional: "if-needed"
11
11
  knowledge-base: [design-system-tokens]
@@ -4,9 +4,9 @@ description: Create the playbook that AI agents follow during implementation
4
4
  summary: "Writes the playbook agents reference during every coding session — task execution order, which docs to read before each task, the TDD loop to follow, quality gates to pass, and the handoff format between agents."
5
5
  phase: "finalization"
6
6
  order: 1430
7
- dependencies: [developer-onboarding-guide]
7
+ dependencies: [developer-onboarding-guide, implementation-plan]
8
8
  outputs: [docs/implementation-playbook.md]
9
- reads: [story-tests, create-evals, implementation-plan, database-schema, api-contracts, ux-spec, design-system, system-architecture, tdd, coding-standards, security, operations, domain-modeling, adrs, create-prd, project-structure]
9
+ reads: [story-tests, create-evals, implementation-plan, database-schema, api-contracts, ux-spec, design-system, system-architecture, tdd, coding-standards, security, operations, domain-modeling, adrs, create-prd, project-structure, git-workflow, user-stories]
10
10
  conditional: null
11
11
  knowledge-base: [implementation-playbook]
12
12
  ---
@@ -41,7 +41,7 @@ about ecosystem maturity, alternatives, and gotchas.
41
41
  - (mvp) Every choice is a decision, not a menu of options
42
42
  - (mvp) Quick Reference section lists every dependency with version
43
43
  - (deep) Each technology choice documents AI compatibility assessment (training data availability, convention strength); total direct dependencies counted and justified
44
- - (depth 4+) Multi-model recommendations synthesized: Consensus (all models agree), Majority (2+ models agree), or Divergent (models disagree — present to user for decision)
44
+ - (depth 4+) Multi-model findings synthesized: Consensus (all models agree), Majority (2+ models agree), or Divergent (models disagree — present to user for decision)
45
45
 
46
46
  ## Methodology Scaling
47
47
  - **deep**: Comprehensive research with competitive analysis for each category.
@@ -30,7 +30,7 @@ independent review validation.
30
30
  - docs/reviews/domain-modeling/gemini-review.json (depth 4+, if available) — raw Gemini findings
31
31
 
32
32
  ## Quality Criteria
33
- - (mvp) All review passes executed with findings documented
33
+ - (mvp) Consistency check executed with blocking issues documented
34
34
  - (mvp) Every finding categorized by severity (P0-P3). Severity definitions: P0 = Breaks downstream work. P1 = Prevents quality milestone. P2 = Known tech debt. P3 = Polish.
35
35
  - (mvp) Fix plan created for P0 and P1 findings
36
36
  - (mvp) Fixes applied and re-validated