@nextsparkjs/ai-workflow 0.1.0-beta.100

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 (272) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +115 -0
  3. package/claude/_docs/workflows-optimizations.md +359 -0
  4. package/claude/agents/api-tester.md +634 -0
  5. package/claude/agents/architecture-supervisor.md +1351 -0
  6. package/claude/agents/backend-developer.md +997 -0
  7. package/claude/agents/backend-validator.md +417 -0
  8. package/claude/agents/bdd-docs-writer.md +737 -0
  9. package/claude/agents/block-developer.md +677 -0
  10. package/claude/agents/code-reviewer.md +1432 -0
  11. package/claude/agents/db-developer.md +721 -0
  12. package/claude/agents/db-validator.md +407 -0
  13. package/claude/agents/demo-video-generator.md +493 -0
  14. package/claude/agents/documentation-writer.md +1268 -0
  15. package/claude/agents/frontend-developer.md +1234 -0
  16. package/claude/agents/frontend-validator.md +777 -0
  17. package/claude/agents/functional-validator.md +630 -0
  18. package/claude/agents/mock-analyst.md +387 -0
  19. package/claude/agents/product-manager.md +963 -0
  20. package/claude/agents/qa-automation.md +1762 -0
  21. package/claude/agents/release-manager.md +634 -0
  22. package/claude/agents/selectors-translator.md +262 -0
  23. package/claude/agents/unit-test-writer.md +785 -0
  24. package/claude/agents/visual-comparator.md +329 -0
  25. package/claude/agents/workflow-maintainer.md +352 -0
  26. package/claude/commands/do/README.md +88 -0
  27. package/claude/commands/do/create-api.md +64 -0
  28. package/claude/commands/do/create-entity.md +66 -0
  29. package/claude/commands/do/create-migration.md +64 -0
  30. package/claude/commands/do/create-plugin.md +56 -0
  31. package/claude/commands/do/create-theme.md +70 -0
  32. package/claude/commands/do/mock-data.md +67 -0
  33. package/claude/commands/do/reset-db.md +71 -0
  34. package/claude/commands/do/setup-scheduled-action.md +75 -0
  35. package/claude/commands/do/sync-code-review.md +117 -0
  36. package/claude/commands/do/update-selectors.md +112 -0
  37. package/claude/commands/do/use-skills.md +90 -0
  38. package/claude/commands/do/validate-blocks.md +69 -0
  39. package/claude/commands/how-to/README.md +261 -0
  40. package/claude/commands/how-to/add-metadata.md +692 -0
  41. package/claude/commands/how-to/add-taxonomies.md +806 -0
  42. package/claude/commands/how-to/add-translations.md +571 -0
  43. package/claude/commands/how-to/create-api.md +577 -0
  44. package/claude/commands/how-to/create-block.md +575 -0
  45. package/claude/commands/how-to/create-child-entities.md +771 -0
  46. package/claude/commands/how-to/create-entity.md +597 -0
  47. package/claude/commands/how-to/create-migrations.md +605 -0
  48. package/claude/commands/how-to/create-plugin.md +654 -0
  49. package/claude/commands/how-to/customize-app.md +481 -0
  50. package/claude/commands/how-to/customize-dashboard.md +553 -0
  51. package/claude/commands/how-to/customize-theme.md +438 -0
  52. package/claude/commands/how-to/define-features-flows.md +632 -0
  53. package/claude/commands/how-to/deploy.md +507 -0
  54. package/claude/commands/how-to/handle-file-uploads.md +746 -0
  55. package/claude/commands/how-to/implement-search.md +1001 -0
  56. package/claude/commands/how-to/install-plugins.md +352 -0
  57. package/claude/commands/how-to/manage-test-coverage.md +984 -0
  58. package/claude/commands/how-to/run-tests.md +400 -0
  59. package/claude/commands/how-to/set-app-languages.md +601 -0
  60. package/claude/commands/how-to/set-plans-and-permissions.md +575 -0
  61. package/claude/commands/how-to/set-scheduled-actions.md +527 -0
  62. package/claude/commands/how-to/set-user-roles-and-permissions.md +550 -0
  63. package/claude/commands/how-to/setup-authentication.md +388 -0
  64. package/claude/commands/how-to/setup-claude-code.md +440 -0
  65. package/claude/commands/how-to/setup-database.md +274 -0
  66. package/claude/commands/how-to/setup-email-providers.md +598 -0
  67. package/claude/commands/how-to/setup-mobile-dev.md +627 -0
  68. package/claude/commands/how-to/start.md +500 -0
  69. package/claude/commands/how-to/use-devtools.md +639 -0
  70. package/claude/commands/how-to/use-superadmin.md +622 -0
  71. package/claude/commands/session/README.md +193 -0
  72. package/claude/commands/session/block-create.md +190 -0
  73. package/claude/commands/session/block-list.md +203 -0
  74. package/claude/commands/session/block-update.md +192 -0
  75. package/claude/commands/session/block-validate.md +218 -0
  76. package/claude/commands/session/changelog.md +115 -0
  77. package/claude/commands/session/close.md +225 -0
  78. package/claude/commands/session/commit.md +174 -0
  79. package/claude/commands/session/db-entity.md +206 -0
  80. package/claude/commands/session/db-fix.md +212 -0
  81. package/claude/commands/session/db-sample.md +206 -0
  82. package/claude/commands/session/demo.md +178 -0
  83. package/claude/commands/session/doc-bdd.md +207 -0
  84. package/claude/commands/session/doc-feature.md +218 -0
  85. package/claude/commands/session/doc-read.md +225 -0
  86. package/claude/commands/session/execute.md +204 -0
  87. package/claude/commands/session/explain.md +202 -0
  88. package/claude/commands/session/fix-bug.md +210 -0
  89. package/claude/commands/session/fix-build.md +182 -0
  90. package/claude/commands/session/fix-test.md +189 -0
  91. package/claude/commands/session/pending.md +232 -0
  92. package/claude/commands/session/refine.md +188 -0
  93. package/claude/commands/session/resume.md +192 -0
  94. package/claude/commands/session/review.md +192 -0
  95. package/claude/commands/session/scope-change.md +181 -0
  96. package/claude/commands/session/start-blocks.md +347 -0
  97. package/claude/commands/session/start.md +604 -0
  98. package/claude/commands/session/status.md +169 -0
  99. package/claude/commands/session/test-fix.md +221 -0
  100. package/claude/commands/session/test-run.md +203 -0
  101. package/claude/commands/session/test-write.md +242 -0
  102. package/claude/commands/session/validate.md +162 -0
  103. package/claude/config/context.json +40 -0
  104. package/claude/config/github.json +69 -0
  105. package/claude/config/github.schema.json +106 -0
  106. package/claude/config/team.json +46 -0
  107. package/claude/config/team.schema.json +106 -0
  108. package/claude/config/workspace.json +43 -0
  109. package/claude/config/workspace.schema.json +75 -0
  110. package/claude/skills/README.md +228 -0
  111. package/claude/skills/accessibility/SKILL.md +573 -0
  112. package/claude/skills/api-bypass-layers/SKILL.md +550 -0
  113. package/claude/skills/asana-integration/SKILL.md +499 -0
  114. package/claude/skills/better-auth/SKILL.md +666 -0
  115. package/claude/skills/billing-subscriptions/SKILL.md +660 -0
  116. package/claude/skills/block-decision-matrix/SKILL.md +359 -0
  117. package/claude/skills/clickup-integration/SKILL.md +434 -0
  118. package/claude/skills/core-theme-responsibilities/SKILL.md +485 -0
  119. package/claude/skills/create-plugin/SKILL.md +425 -0
  120. package/claude/skills/create-theme/SKILL.md +331 -0
  121. package/claude/skills/cypress-api/SKILL.md +511 -0
  122. package/claude/skills/cypress-api/scripts/generate-api-controller.py +329 -0
  123. package/claude/skills/cypress-api/scripts/generate-api-test.py +930 -0
  124. package/claude/skills/cypress-e2e/SKILL.md +526 -0
  125. package/claude/skills/cypress-e2e/scripts/extract-selectors.py +383 -0
  126. package/claude/skills/cypress-e2e/scripts/generate-uat-test.py +788 -0
  127. package/claude/skills/cypress-selectors/SKILL.md +309 -0
  128. package/claude/skills/cypress-selectors/scripts/extract-missing.py +243 -0
  129. package/claude/skills/cypress-selectors/scripts/generate-block-selectors.py +283 -0
  130. package/claude/skills/cypress-selectors/scripts/validate-selectors.py +145 -0
  131. package/claude/skills/database-migrations/SKILL.md +335 -0
  132. package/claude/skills/database-migrations/scripts/generate-sample-data.py +284 -0
  133. package/claude/skills/database-migrations/scripts/validate-migration.py +323 -0
  134. package/claude/skills/design-system/SKILL.md +682 -0
  135. package/claude/skills/documentation/SKILL.md +540 -0
  136. package/claude/skills/entity-api/SKILL.md +482 -0
  137. package/claude/skills/entity-system/SKILL.md +635 -0
  138. package/claude/skills/entity-system/scripts/generate-child-migration.py +298 -0
  139. package/claude/skills/entity-system/scripts/generate-metas-migration.py +233 -0
  140. package/claude/skills/entity-system/scripts/generate-migration.py +382 -0
  141. package/claude/skills/entity-system/scripts/generate-sample-data.py +418 -0
  142. package/claude/skills/entity-system/scripts/scaffold-entity.py +661 -0
  143. package/claude/skills/github/SKILL.md +467 -0
  144. package/claude/skills/i18n-nextintl/SKILL.md +302 -0
  145. package/claude/skills/i18n-nextintl/scripts/add-translation.py +243 -0
  146. package/claude/skills/i18n-nextintl/scripts/extract-hardcoded.py +246 -0
  147. package/claude/skills/i18n-nextintl/scripts/validate-translations.py +260 -0
  148. package/claude/skills/impact-analysis/SKILL.md +203 -0
  149. package/claude/skills/jest-unit/SKILL.md +306 -0
  150. package/claude/skills/jest-unit/references/component-testing.md +371 -0
  151. package/claude/skills/jest-unit/references/mocking-patterns.md +380 -0
  152. package/claude/skills/jest-unit/references/service-hook-testing.md +454 -0
  153. package/claude/skills/jira-integration/SKILL.md +539 -0
  154. package/claude/skills/media-library/SKILL.md +743 -0
  155. package/claude/skills/mock-analysis/SKILL.md +276 -0
  156. package/claude/skills/monorepo-architecture/SKILL.md +162 -0
  157. package/claude/skills/nextjs-api-development/SKILL.md +364 -0
  158. package/claude/skills/nextjs-api-development/scripts/generate-crud-tests.py +456 -0
  159. package/claude/skills/nextjs-api-development/scripts/scaffold-endpoint.py +481 -0
  160. package/claude/skills/nextjs-api-development/scripts/validate-api.py +283 -0
  161. package/claude/skills/notion-integration/SKILL.md +641 -0
  162. package/claude/skills/npm-development-workflow/SKILL.md +480 -0
  163. package/claude/skills/page-builder-blocks/SKILL.md +530 -0
  164. package/claude/skills/page-builder-blocks/scripts/scaffold-block.py +444 -0
  165. package/claude/skills/permissions-system/SKILL.md +619 -0
  166. package/claude/skills/plugins/SKILL.md +340 -0
  167. package/claude/skills/plugins/references/plugin-templates.md +414 -0
  168. package/claude/skills/plugins/references/plugin-testing.md +353 -0
  169. package/claude/skills/plugins/references/plugin-types.md +198 -0
  170. package/claude/skills/plugins/scripts/scaffold-plugin.py +443 -0
  171. package/claude/skills/pom-patterns/SKILL.md +452 -0
  172. package/claude/skills/pom-patterns/scripts/generate-pom.py +392 -0
  173. package/claude/skills/rate-limiting/SKILL.md +342 -0
  174. package/claude/skills/react-best-practices/AGENTS.md +2410 -0
  175. package/claude/skills/react-best-practices/README.md +123 -0
  176. package/claude/skills/react-best-practices/SKILL.md +125 -0
  177. package/claude/skills/react-best-practices/metadata.json +15 -0
  178. package/claude/skills/react-best-practices/rules/_sections.md +46 -0
  179. package/claude/skills/react-best-practices/rules/_template.md +28 -0
  180. package/claude/skills/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  181. package/claude/skills/react-best-practices/rules/advanced-use-latest.md +49 -0
  182. package/claude/skills/react-best-practices/rules/async-api-routes.md +38 -0
  183. package/claude/skills/react-best-practices/rules/async-defer-await.md +80 -0
  184. package/claude/skills/react-best-practices/rules/async-dependencies.md +36 -0
  185. package/claude/skills/react-best-practices/rules/async-parallel.md +28 -0
  186. package/claude/skills/react-best-practices/rules/async-suspense-boundaries.md +99 -0
  187. package/claude/skills/react-best-practices/rules/bundle-barrel-imports.md +59 -0
  188. package/claude/skills/react-best-practices/rules/bundle-conditional.md +31 -0
  189. package/claude/skills/react-best-practices/rules/bundle-defer-third-party.md +49 -0
  190. package/claude/skills/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  191. package/claude/skills/react-best-practices/rules/bundle-preload.md +50 -0
  192. package/claude/skills/react-best-practices/rules/client-event-listeners.md +74 -0
  193. package/claude/skills/react-best-practices/rules/client-localstorage-schema.md +71 -0
  194. package/claude/skills/react-best-practices/rules/client-passive-event-listeners.md +48 -0
  195. package/claude/skills/react-best-practices/rules/client-swr-dedup.md +56 -0
  196. package/claude/skills/react-best-practices/rules/js-batch-dom-css.md +82 -0
  197. package/claude/skills/react-best-practices/rules/js-cache-function-results.md +80 -0
  198. package/claude/skills/react-best-practices/rules/js-cache-property-access.md +28 -0
  199. package/claude/skills/react-best-practices/rules/js-cache-storage.md +70 -0
  200. package/claude/skills/react-best-practices/rules/js-combine-iterations.md +32 -0
  201. package/claude/skills/react-best-practices/rules/js-early-exit.md +50 -0
  202. package/claude/skills/react-best-practices/rules/js-hoist-regexp.md +45 -0
  203. package/claude/skills/react-best-practices/rules/js-index-maps.md +37 -0
  204. package/claude/skills/react-best-practices/rules/js-length-check-first.md +49 -0
  205. package/claude/skills/react-best-practices/rules/js-min-max-loop.md +82 -0
  206. package/claude/skills/react-best-practices/rules/js-set-map-lookups.md +24 -0
  207. package/claude/skills/react-best-practices/rules/js-tosorted-immutable.md +57 -0
  208. package/claude/skills/react-best-practices/rules/rendering-activity.md +26 -0
  209. package/claude/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  210. package/claude/skills/react-best-practices/rules/rendering-conditional-render.md +40 -0
  211. package/claude/skills/react-best-practices/rules/rendering-content-visibility.md +38 -0
  212. package/claude/skills/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  213. package/claude/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  214. package/claude/skills/react-best-practices/rules/rendering-svg-precision.md +28 -0
  215. package/claude/skills/react-best-practices/rules/rerender-defer-reads.md +39 -0
  216. package/claude/skills/react-best-practices/rules/rerender-dependencies.md +45 -0
  217. package/claude/skills/react-best-practices/rules/rerender-derived-state.md +29 -0
  218. package/claude/skills/react-best-practices/rules/rerender-functional-setstate.md +74 -0
  219. package/claude/skills/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  220. package/claude/skills/react-best-practices/rules/rerender-memo.md +44 -0
  221. package/claude/skills/react-best-practices/rules/rerender-transitions.md +40 -0
  222. package/claude/skills/react-best-practices/rules/server-after-nonblocking.md +73 -0
  223. package/claude/skills/react-best-practices/rules/server-cache-lru.md +41 -0
  224. package/claude/skills/react-best-practices/rules/server-cache-react.md +76 -0
  225. package/claude/skills/react-best-practices/rules/server-parallel-fetching.md +83 -0
  226. package/claude/skills/react-best-practices/rules/server-serialization.md +38 -0
  227. package/claude/skills/react-patterns/SKILL.md +688 -0
  228. package/claude/skills/registry-system/SKILL.md +331 -0
  229. package/claude/skills/scheduled-actions/SKILL.md +671 -0
  230. package/claude/skills/scope-enforcement/SKILL.md +542 -0
  231. package/claude/skills/scope-enforcement/scripts/validate-scope.py +357 -0
  232. package/claude/skills/server-actions/SKILL.md +493 -0
  233. package/claude/skills/service-layer/SKILL.md +587 -0
  234. package/claude/skills/session-management/SKILL.md +266 -0
  235. package/claude/skills/session-management/scripts/create-session.py +166 -0
  236. package/claude/skills/session-management/scripts/iteration-close.sh +105 -0
  237. package/claude/skills/session-management/scripts/iteration-init.sh +180 -0
  238. package/claude/skills/session-management/scripts/session-archive.sh +87 -0
  239. package/claude/skills/session-management/scripts/session-close.sh +133 -0
  240. package/claude/skills/session-management/scripts/session-init.sh +225 -0
  241. package/claude/skills/session-management/scripts/session-list.sh +163 -0
  242. package/claude/skills/session-management/scripts/split-plan.sh +116 -0
  243. package/claude/skills/shadcn-components/SKILL.md +586 -0
  244. package/claude/skills/shadcn-theming/SKILL.md +446 -0
  245. package/claude/skills/suspense-loading/SKILL.md +280 -0
  246. package/claude/skills/tailwind-theming/SKILL.md +507 -0
  247. package/claude/skills/tanstack-query/SKILL.md +608 -0
  248. package/claude/skills/test-coverage/SKILL.md +239 -0
  249. package/claude/skills/web-design-guidelines/SKILL.md +39 -0
  250. package/claude/skills/zod-validation/SKILL.md +537 -0
  251. package/claude/templates/blocks/progress.md +86 -0
  252. package/claude/templates/iteration/changes.md +61 -0
  253. package/claude/templates/iteration/progress.md +55 -0
  254. package/claude/templates/log.md +31 -0
  255. package/claude/templates/story/context.md +77 -0
  256. package/claude/templates/story/pendings.md +37 -0
  257. package/claude/templates/story/plan.md +299 -0
  258. package/claude/templates/story/requirements.md +109 -0
  259. package/claude/templates/story/scope.json +10 -0
  260. package/claude/templates/story/tests.md +91 -0
  261. package/claude/templates/task/progress.md +58 -0
  262. package/claude/templates/task/requirements.md +54 -0
  263. package/claude/workflows/README.md +154 -0
  264. package/claude/workflows/blocks.md +614 -0
  265. package/claude/workflows/story.md +1207 -0
  266. package/claude/workflows/task.md +927 -0
  267. package/claude/workflows/tweak.md +527 -0
  268. package/cursor/.gitkeep +0 -0
  269. package/package.json +35 -0
  270. package/scripts/postinstall.mjs +198 -0
  271. package/scripts/setup.mjs +282 -0
  272. package/scripts/sync.mjs +209 -0
@@ -0,0 +1,212 @@
1
+ # /session:db:fix
2
+
3
+ Test and fix database migrations iteratively until success.
4
+
5
+ ---
6
+
7
+ ## Syntax
8
+
9
+ ```
10
+ /session:db:fix [--migration <name>]
11
+ ```
12
+
13
+ ---
14
+
15
+ ## Behavior
16
+
17
+ Runs migrations, detects errors, fixes them, and retries until successful.
18
+
19
+ ---
20
+
21
+ ## Flow
22
+
23
+ ```
24
+ ┌─────────────────────────────────────────────────────────────────┐
25
+ │ /session:db:fix │
26
+ ├─────────────────────────────────────────────────────────────────┤
27
+ │ │
28
+ │ 1. Run pending migrations │
29
+ │ ↓ │
30
+ │ 2. Check for errors │
31
+ │ │ │
32
+ │ ├─► No errors: Done │
33
+ │ │ │
34
+ │ └─► Errors found: │
35
+ │ ↓ │
36
+ │ 3. Analyze error │
37
+ │ - Syntax error? │
38
+ │ - Missing reference? │
39
+ │ - Type mismatch? │
40
+ │ ↓ │
41
+ │ 4. Apply fix │
42
+ │ ↓ │
43
+ │ 5. Go to step 1 │
44
+ │ │
45
+ └─────────────────────────────────────────────────────────────────┘
46
+ ```
47
+
48
+ ---
49
+
50
+ ## Example Output
51
+
52
+ ```
53
+ 🗃️ FIX DATABASE MIGRATIONS
54
+
55
+ ─────────────────────────────────────────
56
+
57
+ 📋 ITERATION 1
58
+
59
+ Running migrations...
60
+
61
+ ❌ Migration failed: 008_products.sql
62
+
63
+ Error:
64
+ ERROR: relation "categories" does not exist
65
+ LINE 10: categoryId UUID REFERENCES categories(id),
66
+
67
+ ─────────────────────────────────────────
68
+
69
+ 🔍 ANALYZING ERROR
70
+
71
+ Type: Missing foreign key reference
72
+ Table: categories
73
+ Required by: products.categoryId
74
+
75
+ Analysis:
76
+ - categories table not created yet
77
+ - Need to create categories before products
78
+ - Or make categoryId nullable without FK constraint
79
+
80
+ Options:
81
+ [1] Create categories migration first
82
+ [2] Make categoryId nullable (no FK)
83
+ [3] Remove categoryId field
84
+
85
+ > 1
86
+
87
+ ─────────────────────────────────────────
88
+
89
+ 🔧 APPLYING FIX
90
+
91
+ Creating: 007_categories.sql
92
+
93
+ ```sql
94
+ CREATE TABLE categories (
95
+ id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
96
+ name VARCHAR(255) NOT NULL,
97
+ teamId UUID NOT NULL REFERENCES teams(id),
98
+ createdAt TIMESTAMPTZ NOT NULL DEFAULT NOW()
99
+ );
100
+
101
+ ALTER TABLE categories ENABLE ROW LEVEL SECURITY;
102
+
103
+ CREATE POLICY categories_team_isolation ON categories
104
+ USING (teamId = current_setting('app.current_team_id')::UUID);
105
+ ```
106
+
107
+ ✓ Migration created
108
+
109
+ Renumbering: 008_products.sql → 008_products.sql (unchanged)
110
+
111
+ ─────────────────────────────────────────
112
+
113
+ 📋 ITERATION 2
114
+
115
+ Running migrations...
116
+
117
+ ✓ 007_categories.sql executed
118
+ ✓ 008_products.sql executed
119
+
120
+ ─────────────────────────────────────────
121
+
122
+ 📊 SUMMARY
123
+
124
+ Iterations: 2
125
+ Migrations fixed: 1
126
+ Migrations created: 1
127
+
128
+ Database is now up to date.
129
+ ```
130
+
131
+ ---
132
+
133
+ ## Common Error Fixes
134
+
135
+ | Error | Auto-Fix |
136
+ |-------|----------|
137
+ | Missing table reference | Create migration or reorder |
138
+ | Syntax error | Fix SQL syntax |
139
+ | Type mismatch | Cast or change type |
140
+ | Duplicate key | Update or skip |
141
+ | RLS policy error | Fix policy syntax |
142
+
143
+ ---
144
+
145
+ ## With Specific Migration
146
+
147
+ ```
148
+ /session:db:fix --migration 008_products
149
+ ```
150
+
151
+ Output:
152
+
153
+ ```
154
+ 🗃️ FIX MIGRATION: 008_products.sql
155
+
156
+ ─────────────────────────────────────────
157
+
158
+ Running 008_products.sql...
159
+
160
+ ⚠️ Warning: Migration partially applied
161
+
162
+ Issues:
163
+ 1. Table created
164
+ 2. Indexes created
165
+ 3. ❌ RLS policy failed
166
+
167
+ Error:
168
+ ERROR: policy "products_team_isolation" already exists
169
+
170
+ ─────────────────────────────────────────
171
+
172
+ 🔧 FIX OPTIONS
173
+
174
+ [1] Drop and recreate policy
175
+ [2] Skip policy (already exists)
176
+ [3] Rename new policy
177
+
178
+ > 2
179
+
180
+ Skipping existing policy...
181
+ ✓ Migration completed with skip
182
+
183
+ ─────────────────────────────────────────
184
+
185
+ Verifying database state...
186
+ ✓ Table: products exists
187
+ ✓ Columns: 9 columns correct
188
+ ✓ Indexes: 3 indexes present
189
+ ✓ RLS: Enabled with policies
190
+
191
+ Database is consistent.
192
+ ```
193
+
194
+ ---
195
+
196
+ ## Options
197
+
198
+ | Option | Description |
199
+ |--------|-------------|
200
+ | `--migration <name>` | Fix specific migration |
201
+ | `--max-iterations <n>` | Max fix attempts (default: 5) |
202
+ | `--dry-run` | Show fixes without applying |
203
+ | `--reset` | Drop and recreate tables |
204
+
205
+ ---
206
+
207
+ ## Related Commands
208
+
209
+ | Command | Action |
210
+ |---------|--------|
211
+ | `/session:db:entity` | Create entity migration |
212
+ | `/session:db:sample` | Generate sample data |
@@ -0,0 +1,206 @@
1
+ # /session:db:sample
2
+
3
+ Generate coherent sample data for database entities.
4
+
5
+ ---
6
+
7
+ ## Required Skills
8
+
9
+ **[MANDATORY]** Read before executing:
10
+ - `.claude/skills/database-migrations/SKILL.md` - Understand sample data patterns
11
+
12
+ ---
13
+
14
+ ## Syntax
15
+
16
+ ```
17
+ /session:db:sample <entity-name> [--count <n>]
18
+ ```
19
+
20
+ ---
21
+
22
+ ## Behavior
23
+
24
+ Creates realistic sample data that respects foreign keys and business rules.
25
+
26
+ ---
27
+
28
+ ## Flow
29
+
30
+ ```
31
+ ┌─────────────────────────────────────────────────────────────────┐
32
+ │ /session:db:sample │
33
+ ├─────────────────────────────────────────────────────────────────┤
34
+ │ │
35
+ │ 1. Read entity schema │
36
+ │ - Fields and types │
37
+ │ - Foreign key relationships │
38
+ │ ↓ │
39
+ │ 2. Analyze existing data │
40
+ │ - Reference tables for FKs │
41
+ │ - Available team/user IDs │
42
+ │ ↓ │
43
+ │ 3. Generate sample data │
44
+ │ - Realistic names/values │
45
+ │ - Valid FK references │
46
+ │ - Varied data distribution │
47
+ │ ↓ │
48
+ │ 4. Create SQL insert statements │
49
+ │ ↓ │
50
+ │ 5. Add to migration or seed file │
51
+ │ │
52
+ └─────────────────────────────────────────────────────────────────┘
53
+ ```
54
+
55
+ ---
56
+
57
+ ## Example Output
58
+
59
+ ```
60
+ 🌱 GENERATE SAMPLE DATA
61
+
62
+ Entity: products
63
+ Count: 20 records
64
+
65
+ ─────────────────────────────────────────
66
+
67
+ 🔍 ANALYZING SCHEMA
68
+
69
+ Fields:
70
+ ├─ name: VARCHAR(255) NOT NULL
71
+ ├─ description: TEXT
72
+ ├─ price: DECIMAL(10,2) NOT NULL
73
+ ├─ categoryId: UUID FK → categories
74
+ ├─ isActive: BOOLEAN
75
+ ├─ teamId: UUID FK → teams
76
+ └─ createdById: UUID FK → user
77
+
78
+ Foreign Keys:
79
+ ├─ categories: 5 existing records
80
+ ├─ teams: 3 existing records
81
+ └─ user: 10 existing records
82
+
83
+ ─────────────────────────────────────────
84
+
85
+ 📝 GENERATED DATA
86
+
87
+ File: core/db/seeds/008_products_sample.sql
88
+
89
+ ```sql
90
+ -- ============================================
91
+ -- Sample Data: products
92
+ -- Count: 20 records
93
+ -- Generated: 2026-01-11
94
+ -- ============================================
95
+
96
+ -- Using existing references
97
+ -- Teams: team_alpha, team_beta, team_gamma
98
+ -- Categories: Electronics, Clothing, Home, Sports, Books
99
+
100
+ INSERT INTO products (
101
+ id, name, description, price, categoryId,
102
+ isActive, teamId, createdById
103
+ ) VALUES
104
+ -- Team Alpha products (Electronics focus)
105
+ (
106
+ 'prod-001-uuid',
107
+ 'Wireless Bluetooth Headphones',
108
+ 'Premium noise-cancelling headphones with 30h battery',
109
+ 149.99,
110
+ (SELECT id FROM categories WHERE name = 'Electronics'),
111
+ true,
112
+ (SELECT id FROM teams WHERE name = 'Team Alpha'),
113
+ (SELECT id FROM "user" WHERE email = 'admin@test.com')
114
+ ),
115
+ (
116
+ 'prod-002-uuid',
117
+ 'Smart Watch Pro',
118
+ 'Fitness tracker with heart rate monitor',
119
+ 299.99,
120
+ (SELECT id FROM categories WHERE name = 'Electronics'),
121
+ true,
122
+ (SELECT id FROM teams WHERE name = 'Team Alpha'),
123
+ (SELECT id FROM "user" WHERE email = 'admin@test.com')
124
+ ),
125
+ -- ... 18 more records with varied data
126
+ (
127
+ 'prod-020-uuid',
128
+ 'Yoga Mat Premium',
129
+ 'Non-slip eco-friendly yoga mat',
130
+ 45.00,
131
+ (SELECT id FROM categories WHERE name = 'Sports'),
132
+ true,
133
+ (SELECT id FROM teams WHERE name = 'Team Gamma'),
134
+ (SELECT id FROM "user" WHERE email = 'member@test.com')
135
+ );
136
+ ```
137
+
138
+ ─────────────────────────────────────────
139
+
140
+ 📊 DATA DISTRIBUTION
141
+
142
+ By Team:
143
+ ├─ Team Alpha: 8 products
144
+ ├─ Team Beta: 7 products
145
+ └─ Team Gamma: 5 products
146
+
147
+ By Category:
148
+ ├─ Electronics: 6 products
149
+ ├─ Clothing: 4 products
150
+ ├─ Home: 4 products
151
+ ├─ Sports: 4 products
152
+ └─ Books: 2 products
153
+
154
+ Price Range: $15.00 - $499.99
155
+ Active: 18 | Inactive: 2
156
+
157
+ ─────────────────────────────────────────
158
+
159
+ ✓ Sample data created: 008_products_sample.sql
160
+
161
+ Run migration to insert data.
162
+ ```
163
+
164
+ ---
165
+
166
+ ## With Test Users
167
+
168
+ Generates data distributed across test users from devKeyring:
169
+
170
+ ```
171
+ /session:db:sample products --with-devkeyring
172
+ ```
173
+
174
+ ```sql
175
+ -- Data for DevKeyring users
176
+ INSERT INTO products (teamId, createdById, ...)
177
+ VALUES
178
+ -- superadmin@test.com (sees all)
179
+ (..., (SELECT id FROM "user" WHERE email = 'superadmin@test.com')),
180
+
181
+ -- admin@test.com (Team Alpha)
182
+ (..., (SELECT id FROM "user" WHERE email = 'admin@test.com')),
183
+
184
+ -- member@test.com (Team Beta, limited role)
185
+ (..., (SELECT id FROM "user" WHERE email = 'member@test.com'));
186
+ ```
187
+
188
+ ---
189
+
190
+ ## Options
191
+
192
+ | Option | Description |
193
+ |--------|-------------|
194
+ | `--count <n>` | Number of records (default: 20) |
195
+ | `--with-devkeyring` | Use test users from devKeyring |
196
+ | `--append` | Add to existing seed file |
197
+ | `--dry-run` | Show SQL without creating |
198
+
199
+ ---
200
+
201
+ ## Related Commands
202
+
203
+ | Command | Action |
204
+ |---------|--------|
205
+ | `/session:db:entity` | Create entity migration |
206
+ | `/session:db:fix` | Fix data issues |
@@ -0,0 +1,178 @@
1
+ # /session:demo
2
+
3
+ Run a live visual demo of the implemented feature.
4
+
5
+ ---
6
+
7
+ ## Syntax
8
+
9
+ ```
10
+ /session:demo [--record]
11
+ ```
12
+
13
+ ---
14
+
15
+ ## Behavior
16
+
17
+ Opens a browser and demonstrates the implemented feature visually using Playwright.
18
+
19
+ ---
20
+
21
+ ## Flow
22
+
23
+ ```
24
+ ┌─────────────────────────────────────────────────────────────────┐
25
+ │ /session:demo │
26
+ ├─────────────────────────────────────────────────────────────────┤
27
+ │ │
28
+ │ 1. Load session context │
29
+ │ - Read requirements.md (ACs) │
30
+ │ - Read plan.md (features) │
31
+ │ ↓ │
32
+ │ 2. Start dev server (if not running) │
33
+ │ ↓ │
34
+ │ 3. Launch browser with Playwright │
35
+ │ ↓ │
36
+ │ 4. Execute demo flow │
37
+ │ - Navigate to relevant pages │
38
+ │ - Demonstrate each AC │
39
+ │ - Explain what's happening │
40
+ │ ↓ │
41
+ │ 5. Generate demo summary │
42
+ │ │
43
+ └─────────────────────────────────────────────────────────────────┘
44
+ ```
45
+
46
+ ---
47
+
48
+ ## Example Output
49
+
50
+ ```
51
+ 🎬 SESSION DEMO
52
+
53
+ Session: stories/2026-01-11-new-products-entity
54
+ ACs to demonstrate: 5
55
+
56
+ ─────────────────────────────────────────
57
+
58
+ 🚀 STARTING DEMO
59
+
60
+ Starting dev server...
61
+ ✓ Server running at http://localhost:3000
62
+
63
+ Launching browser...
64
+ ✓ Browser ready
65
+
66
+ ─────────────────────────────────────────
67
+
68
+ 📋 DEMO: AC1 - Create Product
69
+
70
+ [Browser] Navigating to /dashboard/products
71
+ [Browser] Clicking "New Product" button
72
+ [Browser] Filling form:
73
+ - Name: "Demo Product"
74
+ - Price: 99.99
75
+ - Description: "Test product for demo"
76
+ [Browser] Clicking "Save"
77
+
78
+ ✓ Product created successfully
79
+
80
+ ─────────────────────────────────────────
81
+
82
+ 📋 DEMO: AC2 - Upload Images
83
+
84
+ [Browser] Clicking "Add Images"
85
+ [Browser] Selecting test image
86
+ [Browser] Uploading...
87
+
88
+ ✓ Image uploaded and displayed
89
+
90
+ ─────────────────────────────────────────
91
+
92
+ 📋 DEMO: AC3 - Assign Categories
93
+
94
+ [Browser] Opening category selector
95
+ [Browser] Selecting "Electronics"
96
+ [Browser] Saving changes
97
+
98
+ ✓ Category assigned
99
+
100
+ ─────────────────────────────────────────
101
+
102
+ 📊 DEMO SUMMARY
103
+
104
+ ACs Demonstrated: 5/5
105
+ Issues Found: 0
106
+ Screenshots: 5 saved to _tmp/demo/
107
+
108
+ Demo complete!
109
+ ```
110
+
111
+ ---
112
+
113
+ ## With Recording
114
+
115
+ ```
116
+ /session:demo --record
117
+ ```
118
+
119
+ Output:
120
+
121
+ ```
122
+ 🎬 SESSION DEMO (RECORDING)
123
+
124
+ Recording to: _tmp/demo/2026-01-11-products-demo.mp4
125
+
126
+ [Recording started]
127
+ ...
128
+ [Recording stopped]
129
+
130
+ ✓ Video saved: _tmp/demo/2026-01-11-products-demo.mp4
131
+ Duration: 2:34
132
+ ```
133
+
134
+ ---
135
+
136
+ ## Options
137
+
138
+ | Option | Description |
139
+ |--------|-------------|
140
+ | `--record` | Record demo as video |
141
+ | `--ac <number>` | Demo specific AC only |
142
+ | `--mobile` | Demo in mobile viewport |
143
+ | `--slow` | Slow down actions for visibility |
144
+
145
+ ---
146
+
147
+ ## Demo Configuration
148
+
149
+ In session's `demo.config.json`:
150
+
151
+ ```json
152
+ {
153
+ "baseUrl": "http://localhost:3000",
154
+ "credentials": {
155
+ "email": "admin@test.com",
156
+ "password": "Test1234"
157
+ },
158
+ "flows": [
159
+ {
160
+ "ac": "AC1",
161
+ "steps": [
162
+ { "action": "navigate", "path": "/dashboard/products" },
163
+ { "action": "click", "selector": "[data-cy=new-product]" }
164
+ ]
165
+ }
166
+ ]
167
+ }
168
+ ```
169
+
170
+ ---
171
+
172
+ ## Related Commands
173
+
174
+ | Command | Action |
175
+ |---------|--------|
176
+ | `/session:explain` | Explain code implementation |
177
+ | `/session:validate` | Validate before demo |
178
+ | `/session:close` | Close session |