@nextsparkjs/ai-workflow 0.1.0-beta.86

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 (271) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +86 -0
  3. package/claude/_docs/workflows-optimizations.md +359 -0
  4. package/claude/agents/api-tester.md +636 -0
  5. package/claude/agents/architecture-supervisor.md +1381 -0
  6. package/claude/agents/backend-developer.md +1021 -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 +1460 -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 +1291 -0
  15. package/claude/agents/frontend-developer.md +1259 -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 +971 -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 +373 -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 +681 -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 +512 -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 +455 -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/close.md +146 -0
  77. package/claude/commands/session/commit.md +174 -0
  78. package/claude/commands/session/db-entity.md +206 -0
  79. package/claude/commands/session/db-fix.md +212 -0
  80. package/claude/commands/session/db-sample.md +206 -0
  81. package/claude/commands/session/demo.md +178 -0
  82. package/claude/commands/session/doc-bdd.md +207 -0
  83. package/claude/commands/session/doc-feature.md +218 -0
  84. package/claude/commands/session/doc-read.md +225 -0
  85. package/claude/commands/session/execute.md +204 -0
  86. package/claude/commands/session/explain.md +202 -0
  87. package/claude/commands/session/fix-bug.md +210 -0
  88. package/claude/commands/session/fix-build.md +182 -0
  89. package/claude/commands/session/fix-test.md +189 -0
  90. package/claude/commands/session/pending.md +232 -0
  91. package/claude/commands/session/refine.md +188 -0
  92. package/claude/commands/session/resume.md +192 -0
  93. package/claude/commands/session/review.md +192 -0
  94. package/claude/commands/session/scope-change.md +181 -0
  95. package/claude/commands/session/start-blocks.md +347 -0
  96. package/claude/commands/session/start.md +476 -0
  97. package/claude/commands/session/status.md +169 -0
  98. package/claude/commands/session/test-fix.md +221 -0
  99. package/claude/commands/session/test-run.md +203 -0
  100. package/claude/commands/session/test-write.md +242 -0
  101. package/claude/commands/session/validate.md +162 -0
  102. package/claude/config/context.json +54 -0
  103. package/claude/config/github.json +69 -0
  104. package/claude/config/github.schema.json +106 -0
  105. package/claude/config/team.json +46 -0
  106. package/claude/config/team.schema.json +106 -0
  107. package/claude/config/workspace.json +49 -0
  108. package/claude/config/workspace.schema.json +64 -0
  109. package/claude/scripts/.gitkeep +0 -0
  110. package/claude/sessions/.gitkeep +0 -0
  111. package/claude/skills/README.md +228 -0
  112. package/claude/skills/accessibility/SKILL.md +573 -0
  113. package/claude/skills/api-bypass-layers/SKILL.md +550 -0
  114. package/claude/skills/asana-integration/SKILL.md +499 -0
  115. package/claude/skills/better-auth/SKILL.md +666 -0
  116. package/claude/skills/billing-subscriptions/SKILL.md +660 -0
  117. package/claude/skills/block-decision-matrix/SKILL.md +359 -0
  118. package/claude/skills/clickup-integration/SKILL.md +434 -0
  119. package/claude/skills/core-theme-responsibilities/SKILL.md +485 -0
  120. package/claude/skills/create-plugin/SKILL.md +425 -0
  121. package/claude/skills/create-theme/SKILL.md +331 -0
  122. package/claude/skills/cypress-api/SKILL.md +511 -0
  123. package/claude/skills/cypress-api/scripts/generate-api-controller.py +329 -0
  124. package/claude/skills/cypress-api/scripts/generate-api-test.py +930 -0
  125. package/claude/skills/cypress-e2e/SKILL.md +526 -0
  126. package/claude/skills/cypress-e2e/scripts/extract-selectors.py +383 -0
  127. package/claude/skills/cypress-e2e/scripts/generate-uat-test.py +788 -0
  128. package/claude/skills/cypress-selectors/SKILL.md +309 -0
  129. package/claude/skills/cypress-selectors/scripts/extract-missing.py +243 -0
  130. package/claude/skills/cypress-selectors/scripts/generate-block-selectors.py +283 -0
  131. package/claude/skills/cypress-selectors/scripts/validate-selectors.py +145 -0
  132. package/claude/skills/database-migrations/SKILL.md +335 -0
  133. package/claude/skills/database-migrations/scripts/generate-sample-data.py +284 -0
  134. package/claude/skills/database-migrations/scripts/validate-migration.py +323 -0
  135. package/claude/skills/design-system/SKILL.md +682 -0
  136. package/claude/skills/documentation/SKILL.md +540 -0
  137. package/claude/skills/entity-api/SKILL.md +482 -0
  138. package/claude/skills/entity-system/SKILL.md +635 -0
  139. package/claude/skills/entity-system/scripts/generate-child-migration.py +298 -0
  140. package/claude/skills/entity-system/scripts/generate-metas-migration.py +233 -0
  141. package/claude/skills/entity-system/scripts/generate-migration.py +382 -0
  142. package/claude/skills/entity-system/scripts/generate-sample-data.py +418 -0
  143. package/claude/skills/entity-system/scripts/scaffold-entity.py +661 -0
  144. package/claude/skills/github/SKILL.md +467 -0
  145. package/claude/skills/i18n-nextintl/SKILL.md +302 -0
  146. package/claude/skills/i18n-nextintl/scripts/add-translation.py +243 -0
  147. package/claude/skills/i18n-nextintl/scripts/extract-hardcoded.py +246 -0
  148. package/claude/skills/i18n-nextintl/scripts/validate-translations.py +260 -0
  149. package/claude/skills/impact-analysis/SKILL.md +203 -0
  150. package/claude/skills/jest-unit/SKILL.md +306 -0
  151. package/claude/skills/jest-unit/references/component-testing.md +371 -0
  152. package/claude/skills/jest-unit/references/mocking-patterns.md +380 -0
  153. package/claude/skills/jest-unit/references/service-hook-testing.md +454 -0
  154. package/claude/skills/jira-integration/SKILL.md +539 -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 +483 -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 +677 -0
  228. package/claude/skills/registry-system/SKILL.md +331 -0
  229. package/claude/skills/scheduled-actions/SKILL.md +431 -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 +479 -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 +34 -0
  270. package/scripts/setup.mjs +282 -0
  271. package/scripts/sync.mjs +209 -0
@@ -0,0 +1,174 @@
1
+ # /session:commit
2
+
3
+ Create a git commit for the current session changes.
4
+
5
+ **Aliases:** `/commit`
6
+
7
+ ---
8
+
9
+ ## Syntax
10
+
11
+ ```
12
+ /session:commit [message]
13
+ ```
14
+
15
+ ---
16
+
17
+ ## Behavior
18
+
19
+ Creates a structured commit with session context and proper co-author attribution.
20
+
21
+ ---
22
+
23
+ ## Flow
24
+
25
+ ```
26
+ ┌─────────────────────────────────────────────────────────────────┐
27
+ │ /session:commit │
28
+ ├─────────────────────────────────────────────────────────────────┤
29
+ │ │
30
+ │ 1. Check for uncommitted changes │
31
+ │ ↓ │
32
+ │ 2. Load session context │
33
+ │ - Read scope.json │
34
+ │ - Read progress.md │
35
+ │ ↓ │
36
+ │ 3. Analyze changes │
37
+ │ - Categorize by type (feat/fix/refactor) │
38
+ │ - Identify related ACs │
39
+ │ ↓ │
40
+ │ 4. Generate commit message │
41
+ │ - Following conventional commits │
42
+ │ - Reference session/task if applicable │
43
+ │ ↓ │
44
+ │ 5. Show preview and confirm │
45
+ │ ↓ │
46
+ │ 6. Execute commit │
47
+ │ │
48
+ └─────────────────────────────────────────────────────────────────┘
49
+ ```
50
+
51
+ ---
52
+
53
+ ## Example Output
54
+
55
+ ```
56
+ 📦 SESSION COMMIT
57
+
58
+ Session: stories/2026-01-11-new-products-entity
59
+
60
+ ─────────────────────────────────────────
61
+
62
+ 📊 CHANGES DETECTED
63
+
64
+ Staged:
65
+ ├─ core/config/entities/products.ts (new)
66
+ ├─ core/db/migrations/008_products.sql (new)
67
+ ├─ core/services/ProductsService.ts (new)
68
+ └─ core/components/products/ProductForm.tsx (new)
69
+
70
+ Unstaged:
71
+ └─ (none)
72
+
73
+ ─────────────────────────────────────────
74
+
75
+ 📝 GENERATED COMMIT MESSAGE
76
+
77
+ feat(products): add products entity with CRUD operations
78
+
79
+ - Create products migration with fields and relations
80
+ - Configure entity in entities.config.ts
81
+ - Add ProductsService for custom price logic
82
+ - Create ProductForm component with validation
83
+
84
+ Relates to: AC1, AC2, AC3
85
+ Session: stories/2026-01-11-new-products-entity
86
+
87
+ Co-Authored-By: Claude <noreply@anthropic.com>
88
+
89
+ ─────────────────────────────────────────
90
+
91
+ Commit with this message? [Yes/Edit/Cancel]
92
+
93
+ > Yes
94
+
95
+ ✓ Changes committed: abc1234
96
+ ```
97
+
98
+ ---
99
+
100
+ ## With Custom Message
101
+
102
+ ```
103
+ /session:commit "feat(products): initial entity setup"
104
+ ```
105
+
106
+ Output:
107
+
108
+ ```
109
+ 📦 SESSION COMMIT
110
+
111
+ Using provided message: "feat(products): initial entity setup"
112
+
113
+ ─────────────────────────────────────────
114
+
115
+ 📝 FINAL COMMIT MESSAGE
116
+
117
+ feat(products): initial entity setup
118
+
119
+ Co-Authored-By: Claude <noreply@anthropic.com>
120
+
121
+ ─────────────────────────────────────────
122
+
123
+ Commit? [Yes/Edit/Cancel]
124
+ ```
125
+
126
+ ---
127
+
128
+ ## Commit Types
129
+
130
+ | Type | Description |
131
+ |------|-------------|
132
+ | `feat` | New feature |
133
+ | `fix` | Bug fix |
134
+ | `refactor` | Code refactoring |
135
+ | `docs` | Documentation changes |
136
+ | `test` | Test additions/changes |
137
+ | `chore` | Maintenance tasks |
138
+
139
+ ---
140
+
141
+ ## Options
142
+
143
+ | Option | Description |
144
+ |--------|-------------|
145
+ | `--no-verify` | Skip pre-commit hooks |
146
+ | `--amend` | Amend last commit |
147
+ | `--push` | Push after commit |
148
+
149
+ ---
150
+
151
+ ## Task Manager Integration
152
+
153
+ If `taskManager.enabled`:
154
+
155
+ ```
156
+ 📋 LINKING COMMIT
157
+
158
+ ClickUp: #abc123
159
+
160
+ Add commit reference to task? [Yes/No]
161
+
162
+ > Yes
163
+
164
+ ✓ Commit linked to task
165
+ ```
166
+
167
+ ---
168
+
169
+ ## Related Commands
170
+
171
+ | Command | Action |
172
+ |---------|--------|
173
+ | `/session:validate` | Validate before commit |
174
+ | `/session:close` | Close after final commit |
@@ -0,0 +1,206 @@
1
+ # /session:db:entity
2
+
3
+ Generate migration for an entity with relations and metadata support.
4
+
5
+ ---
6
+
7
+ ## Required Skills
8
+
9
+ **[MANDATORY]** Read these skills before executing:
10
+ - `.claude/skills/database-migrations/SKILL.md` - PostgreSQL patterns with RLS
11
+ - `.claude/skills/entity-system/SKILL.md` - Entity configuration patterns
12
+
13
+ ---
14
+
15
+ ## Syntax
16
+
17
+ ```
18
+ /session:db:entity <entity-name> [--fields <fields>]
19
+ ```
20
+
21
+ ---
22
+
23
+ ## Behavior
24
+
25
+ Creates a complete database migration following project conventions including RLS policies.
26
+
27
+ ---
28
+
29
+ ## Flow
30
+
31
+ ```
32
+ ┌─────────────────────────────────────────────────────────────────┐
33
+ │ /session:db:entity │
34
+ ├─────────────────────────────────────────────────────────────────┤
35
+ │ │
36
+ │ 1. Analyze entity requirements │
37
+ │ - Read session context │
38
+ │ - Parse field definitions │
39
+ │ ↓ │
40
+ │ 2. Determine relations │
41
+ │ - Foreign keys │
42
+ │ - Many-to-many tables │
43
+ │ ↓ │
44
+ │ 3. Generate migration SQL │
45
+ │ - Main table with camelCase fields │
46
+ │ - Meta table (if needed) │
47
+ │ - RLS policies │
48
+ │ ↓ │
49
+ │ 4. Validate SQL syntax │
50
+ │ ↓ │
51
+ │ 5. Create migration file │
52
+ │ │
53
+ └─────────────────────────────────────────────────────────────────┘
54
+ ```
55
+
56
+ ---
57
+
58
+ ## Example Output
59
+
60
+ ```
61
+ 🗃️ CREATE ENTITY MIGRATION
62
+
63
+ Entity: products
64
+
65
+ ─────────────────────────────────────────
66
+
67
+ 📋 ENTITY ANALYSIS
68
+
69
+ From session requirements:
70
+ - name: string (required)
71
+ - description: text (optional)
72
+ - price: decimal (required)
73
+ - categoryId: UUID FK (optional)
74
+ - isActive: boolean (default: true)
75
+
76
+ Relations detected:
77
+ - products → categories (many-to-one)
78
+
79
+ ─────────────────────────────────────────
80
+
81
+ 📝 GENERATED MIGRATION
82
+
83
+ File: core/db/migrations/008_products.sql
84
+
85
+ ```sql
86
+ -- ============================================
87
+ -- Migration: 008_products.sql
88
+ -- Entity: products
89
+ -- Generated: 2026-01-11
90
+ -- ============================================
91
+
92
+ -- Main table
93
+ CREATE TABLE products (
94
+ id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
95
+
96
+ -- Fields (camelCase)
97
+ name VARCHAR(255) NOT NULL,
98
+ description TEXT,
99
+ price DECIMAL(10, 2) NOT NULL,
100
+ categoryId UUID REFERENCES categories(id),
101
+ isActive BOOLEAN NOT NULL DEFAULT true,
102
+
103
+ -- System fields
104
+ teamId UUID NOT NULL REFERENCES teams(id),
105
+ createdById UUID REFERENCES "user"(id),
106
+ createdAt TIMESTAMPTZ NOT NULL DEFAULT NOW(),
107
+ updatedAt TIMESTAMPTZ NOT NULL DEFAULT NOW()
108
+ );
109
+
110
+ -- Indexes
111
+ CREATE INDEX idx_products_teamId ON products(teamId);
112
+ CREATE INDEX idx_products_categoryId ON products(categoryId);
113
+ CREATE INDEX idx_products_isActive ON products(isActive);
114
+
115
+ -- RLS Policies
116
+ ALTER TABLE products ENABLE ROW LEVEL SECURITY;
117
+
118
+ CREATE POLICY products_team_isolation ON products
119
+ USING (teamId = current_setting('app.current_team_id')::UUID);
120
+
121
+ CREATE POLICY products_select ON products
122
+ FOR SELECT USING (true);
123
+
124
+ CREATE POLICY products_insert ON products
125
+ FOR INSERT WITH CHECK (
126
+ teamId = current_setting('app.current_team_id')::UUID
127
+ );
128
+
129
+ CREATE POLICY products_update ON products
130
+ FOR UPDATE USING (
131
+ teamId = current_setting('app.current_team_id')::UUID
132
+ );
133
+
134
+ CREATE POLICY products_delete ON products
135
+ FOR DELETE USING (
136
+ teamId = current_setting('app.current_team_id')::UUID
137
+ );
138
+
139
+ -- Trigger for updatedAt
140
+ CREATE TRIGGER update_products_updated_at
141
+ BEFORE UPDATE ON products
142
+ FOR EACH ROW
143
+ EXECUTE FUNCTION update_updated_at_column();
144
+ ```
145
+
146
+ ─────────────────────────────────────────
147
+
148
+ ✅ VALIDATION
149
+
150
+ - [x] camelCase field names
151
+ - [x] UUID primary key
152
+ - [x] TIMESTAMPTZ for dates
153
+ - [x] RLS policies configured
154
+ - [x] teamId for multi-tenant
155
+
156
+ ─────────────────────────────────────────
157
+
158
+ ✓ Migration created: 008_products.sql
159
+
160
+ Next: /session:db:sample to generate sample data
161
+ ```
162
+
163
+ ---
164
+
165
+ ## With Meta Table
166
+
167
+ ```
168
+ /session:db:entity products --with-meta
169
+ ```
170
+
171
+ Generates additional meta table:
172
+
173
+ ```sql
174
+ -- Meta table for extensible fields
175
+ CREATE TABLE products_meta (
176
+ id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
177
+ productId UUID NOT NULL REFERENCES products(id) ON DELETE CASCADE,
178
+ key VARCHAR(255) NOT NULL,
179
+ value JSONB,
180
+ createdAt TIMESTAMPTZ NOT NULL DEFAULT NOW(),
181
+ UNIQUE(productId, key)
182
+ );
183
+
184
+ CREATE INDEX idx_products_meta_productId ON products_meta(productId);
185
+ CREATE INDEX idx_products_meta_key ON products_meta(key);
186
+ ```
187
+
188
+ ---
189
+
190
+ ## Options
191
+
192
+ | Option | Description |
193
+ |--------|-------------|
194
+ | `--fields <fields>` | Field definitions (name:type) |
195
+ | `--with-meta` | Include meta table |
196
+ | `--no-rls` | Skip RLS policies |
197
+ | `--dry-run` | Show SQL without creating |
198
+
199
+ ---
200
+
201
+ ## Related Commands
202
+
203
+ | Command | Action |
204
+ |---------|--------|
205
+ | `/session:db:sample` | Generate sample data |
206
+ | `/session:db:fix` | Fix migration issues |
@@ -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 |