@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,622 @@
1
+ # /how-to:use-superadmin
2
+
3
+ Interactive guide to using the Superadmin Panel for system administration in NextSpark.
4
+
5
+ **Aliases:** `/how-to:superadmin`, `/how-to:admin-panel`
6
+
7
+ ---
8
+
9
+ ## Required Skills
10
+
11
+ Before executing, these skills provide deeper context:
12
+ - `.claude/skills/permissions-system/SKILL.md` - Role-based access control
13
+ - `.claude/skills/service-layer/SKILL.md` - Data access patterns
14
+
15
+ ---
16
+
17
+ ## Syntax
18
+
19
+ ```
20
+ /how-to:use-superadmin
21
+ /how-to:use-superadmin --section users
22
+ /how-to:use-superadmin --permissions
23
+ ```
24
+
25
+ ---
26
+
27
+ ## Behavior
28
+
29
+ Guides the user through the Superadmin Panel capabilities: user management, team management, subscriptions, and role configuration.
30
+
31
+ ---
32
+
33
+ ## Tutorial Structure
34
+
35
+ ```
36
+ STEPS OVERVIEW (5 steps)
37
+
38
+ Step 1: Accessing the Superadmin Panel
39
+ └── Requirements and permissions
40
+
41
+ Step 2: User Management
42
+ └── View, filter, and manage users
43
+
44
+ Step 3: Team Management
45
+ └── View and manage teams
46
+
47
+ Step 4: Subscription Management
48
+ └── Handle team subscriptions
49
+
50
+ Step 5: Role Configuration
51
+ └── Team roles and permissions matrix
52
+ ```
53
+
54
+ ---
55
+
56
+ ## Step 1: Accessing the Superadmin Panel
57
+
58
+ ```
59
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
60
+ 📚 HOW TO: USE SUPERADMIN PANEL
61
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
62
+
63
+ STEP 1 OF 5: Accessing the Superadmin Panel
64
+
65
+ The Superadmin Panel provides system-wide
66
+ administration capabilities.
67
+
68
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
69
+ ```
70
+
71
+ **📋 Access Requirements:**
72
+
73
+ ```
74
+ ┌─────────────────────────────────────────────┐
75
+ │ REQUIRED: superadmin role │
76
+ │ ───────────────────────────────────────── │
77
+ │ Only users with the global 'superadmin' │
78
+ │ role can access the Superadmin Panel. │
79
+ │ │
80
+ │ This is a USER role, not a team role. │
81
+ └─────────────────────────────────────────────┘
82
+ ```
83
+
84
+ **📋 How to Access:**
85
+
86
+ ```
87
+ URL: /superadmin
88
+
89
+ Navigation:
90
+ 1. Log in as a superadmin user
91
+ 2. Click the admin icon in the sidebar
92
+ or navigate directly to /superadmin
93
+ ```
94
+
95
+ **📋 Making a User Superadmin:**
96
+
97
+ ```sql
98
+ -- In the database
99
+ UPDATE users SET role = 'superadmin' WHERE email = 'admin@example.com';
100
+ ```
101
+
102
+ Or use the devKeyring in `app.config.ts`:
103
+
104
+ ```typescript
105
+ // app.config.ts
106
+ devKeyring: {
107
+ 'admin@example.com': {
108
+ password: 'Test1234',
109
+ role: 'superadmin',
110
+ // ...
111
+ }
112
+ }
113
+ ```
114
+
115
+ **📋 Panel Structure:**
116
+
117
+ ```
118
+ /superadmin/
119
+ ├── page.tsx # Dashboard overview
120
+ ├── users/
121
+ │ └── page.tsx # User management
122
+ ├── teams/
123
+ │ └── page.tsx # Team management
124
+ ├── subscriptions/
125
+ │ └── page.tsx # Subscription management
126
+ └── team-roles/
127
+ └── page.tsx # Role configuration
128
+ ```
129
+
130
+ **📋 Available Components:**
131
+
132
+ ```
133
+ packages/core/src/components/superadmin/
134
+ ├── SuperadminSidebar.tsx # Navigation sidebar
135
+ ├── TeamsTable.tsx # Teams data table
136
+ ├── PlanFeaturesMatrix.tsx # Plan features overview
137
+ ├── RolesPermissionsMatrix.tsx # Role permissions
138
+ └── filters/
139
+ ├── SearchInput.tsx # Search component
140
+ ├── FilterDropdown.tsx # Filter dropdowns
141
+ └── PaginationControls.tsx # Pagination
142
+ ```
143
+
144
+ ```
145
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
146
+
147
+ What would you like to do?
148
+
149
+ [1] Continue to Step 2 (User Management)
150
+ [2] I can't access the panel, help!
151
+ [3] What's the difference between superadmin and team admin?
152
+ ```
153
+
154
+ ---
155
+
156
+ ## Step 2: User Management
157
+
158
+ ```
159
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
160
+ STEP 2 OF 5: User Management
161
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
162
+
163
+ Manage all users in your application from
164
+ a single dashboard.
165
+ ```
166
+
167
+ **📋 User Management Features:**
168
+
169
+ ```
170
+ ┌─────────────────────────────────────────────┐
171
+ │ /superadmin/users │
172
+ │ ───────────────────────────────────────── │
173
+ │ │
174
+ │ TABS: │
175
+ │ • Regular Users - All non-admin users │
176
+ │ • Superadmins - System administrators │
177
+ │ │
178
+ │ FILTERS: │
179
+ │ • Search by name/email │
180
+ │ • Filter by role │
181
+ │ • Filter by status │
182
+ │ │
183
+ │ STATS: │
184
+ │ • Total users │
185
+ │ • Total work teams │
186
+ │ • Total superadmins │
187
+ │ • Role distribution │
188
+ └─────────────────────────────────────────────┘
189
+ ```
190
+
191
+ **📋 User Table Columns:**
192
+
193
+ | Column | Description |
194
+ |--------|-------------|
195
+ | Name | User's full name |
196
+ | Email | Email address |
197
+ | Role | User role (member, superadmin) |
198
+ | Status | Active, pending, suspended |
199
+ | Teams | Number of teams |
200
+ | Created | Registration date |
201
+ | Actions | View, edit, suspend |
202
+
203
+ **📋 Available Actions:**
204
+
205
+ ```typescript
206
+ // View user details
207
+ onClick={() => router.push(`/superadmin/users/${userId}`)}
208
+
209
+ // Edit user
210
+ onClick={() => openEditModal(user)}
211
+
212
+ // Suspend user
213
+ onClick={() => suspendUser(userId)}
214
+
215
+ // Make superadmin
216
+ onClick={() => updateUserRole(userId, 'superadmin')}
217
+ ```
218
+
219
+ **📋 API Endpoints:**
220
+
221
+ ```
222
+ GET /api/superadmin/users # List users
223
+ GET /api/superadmin/users/:id # Get user details
224
+ PATCH /api/superadmin/users/:id # Update user
225
+ DELETE /api/superadmin/users/:id # Delete user (soft)
226
+ ```
227
+
228
+ ```
229
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
230
+
231
+ What would you like to do?
232
+
233
+ [1] Continue to Step 3 (Team Management)
234
+ [2] How do I bulk import users?
235
+ [3] Can I export user data?
236
+ ```
237
+
238
+ ---
239
+
240
+ ## Step 3: Team Management
241
+
242
+ ```
243
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
244
+ STEP 3 OF 5: Team Management
245
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
246
+
247
+ View and manage all teams (organizations)
248
+ in your application.
249
+ ```
250
+
251
+ **📋 Team Management Features:**
252
+
253
+ ```
254
+ ┌─────────────────────────────────────────────┐
255
+ │ /superadmin/teams │
256
+ │ ───────────────────────────────────────── │
257
+ │ │
258
+ │ VIEW: │
259
+ │ • All teams with member counts │
260
+ │ • Team owners and plans │
261
+ │ • Creation dates and activity │
262
+ │ │
263
+ │ FILTERS: │
264
+ │ • Search by team name │
265
+ │ • Filter by plan │
266
+ │ • Filter by status │
267
+ │ │
268
+ │ ACTIONS: │
269
+ │ • View team details │
270
+ │ • Change team plan │
271
+ │ • Suspend/reactivate team │
272
+ └─────────────────────────────────────────────┘
273
+ ```
274
+
275
+ **📋 TeamsTable Component:**
276
+
277
+ ```typescript
278
+ // Usage in page
279
+ import { TeamsTable } from '@/core/components/superadmin'
280
+
281
+ <TeamsTable
282
+ teams={teams}
283
+ onViewTeam={(id) => router.push(`/superadmin/teams/${id}`)}
284
+ onEditTeam={(team) => openEditModal(team)}
285
+ onSuspendTeam={(id) => suspendTeam(id)}
286
+ />
287
+ ```
288
+
289
+ **📋 Team Table Columns:**
290
+
291
+ | Column | Description |
292
+ |--------|-------------|
293
+ | Name | Team name |
294
+ | Slug | URL identifier |
295
+ | Owner | Team owner email |
296
+ | Members | Member count |
297
+ | Plan | Current subscription plan |
298
+ | Status | Active, suspended, trial |
299
+ | Created | Creation date |
300
+ | Actions | View, edit, suspend |
301
+
302
+ **📋 Team Details View:**
303
+
304
+ ```
305
+ /superadmin/teams/:teamId
306
+
307
+ Shows:
308
+ • Team information
309
+ • Member list with roles
310
+ • Subscription details
311
+ • Activity log
312
+ • Usage statistics
313
+ ```
314
+
315
+ ```
316
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
317
+
318
+ What would you like to do?
319
+
320
+ [1] Continue to Step 4 (Subscriptions)
321
+ [2] How do I merge teams?
322
+ [3] Can I impersonate a team?
323
+ ```
324
+
325
+ ---
326
+
327
+ ## Step 4: Subscription Management
328
+
329
+ ```
330
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
331
+ STEP 4 OF 5: Subscription Management
332
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
333
+
334
+ Manage team subscriptions and billing
335
+ information.
336
+ ```
337
+
338
+ **📋 Subscription Features:**
339
+
340
+ ```
341
+ ┌─────────────────────────────────────────────┐
342
+ │ /superadmin/subscriptions │
343
+ │ ───────────────────────────────────────── │
344
+ │ │
345
+ │ VIEW: │
346
+ │ • All active subscriptions │
347
+ │ • Plan distribution │
348
+ │ • Revenue metrics │
349
+ │ │
350
+ │ FILTERS: │
351
+ │ • Filter by plan │
352
+ │ • Filter by status │
353
+ │ • Filter by billing cycle │
354
+ │ │
355
+ │ ACTIONS: │
356
+ │ • Change plan manually │
357
+ │ • Extend trial │
358
+ │ • Cancel subscription │
359
+ │ • Apply credits │
360
+ └─────────────────────────────────────────────┘
361
+ ```
362
+
363
+ **📋 Subscription Table:**
364
+
365
+ | Column | Description |
366
+ |--------|-------------|
367
+ | Team | Team name |
368
+ | Plan | Current plan (Free, Pro, Enterprise) |
369
+ | Status | Active, trialing, canceled, past_due |
370
+ | Billing | Monthly, yearly |
371
+ | Amount | Subscription amount |
372
+ | Next billing | Next charge date |
373
+ | Actions | Manage, cancel, upgrade |
374
+
375
+ **📋 Plan Features Matrix:**
376
+
377
+ ```typescript
378
+ import { PlanFeaturesMatrix } from '@/core/components/superadmin'
379
+
380
+ // Shows all plans and their features
381
+ <PlanFeaturesMatrix />
382
+ ```
383
+
384
+ ```
385
+ ┌─────────────────────────────────────────────┐
386
+ │ PLAN FEATURES MATRIX │
387
+ │ ───────────────────────────────────────── │
388
+ │ │
389
+ │ Feature Free Pro Enterprise │
390
+ │ ───────────── ──── ──── ────────── │
391
+ │ Team members 3 10 Unlimited │
392
+ │ Storage 1GB 10GB 100GB │
393
+ │ API calls 1K 10K Unlimited │
394
+ │ Support Email Chat Dedicated │
395
+ └─────────────────────────────────────────────┘
396
+ ```
397
+
398
+ **📋 Manual Plan Changes:**
399
+
400
+ ```typescript
401
+ // Change a team's plan (bypasses Stripe)
402
+ await updateTeamSubscription(teamId, {
403
+ planId: 'pro',
404
+ reason: 'Customer support request',
405
+ expiresAt: null // or specific date
406
+ })
407
+ ```
408
+
409
+ ```
410
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
411
+
412
+ What would you like to do?
413
+
414
+ [1] Continue to Step 5 (Role Configuration)
415
+ [2] How do I give a team free access?
416
+ [3] Where do I configure plans?
417
+ ```
418
+
419
+ ---
420
+
421
+ ## Step 5: Role Configuration
422
+
423
+ ```
424
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
425
+ STEP 5 OF 5: Role Configuration
426
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
427
+
428
+ Configure team roles and their permissions.
429
+ ```
430
+
431
+ **📋 Role System Overview:**
432
+
433
+ ```
434
+ ┌─────────────────────────────────────────────┐
435
+ │ TWO TYPES OF ROLES │
436
+ │ ───────────────────────────────────────── │
437
+ │ │
438
+ │ USER ROLES (Global): │
439
+ │ • member - Regular user │
440
+ │ • superadmin - System administrator │
441
+ │ │
442
+ │ TEAM ROLES (Per team): │
443
+ │ • owner - Full control │
444
+ │ • admin - Most permissions │
445
+ │ • member - Limited permissions │
446
+ │ • viewer - Read-only access │
447
+ └─────────────────────────────────────────────┘
448
+ ```
449
+
450
+ **📋 Roles Permissions Matrix:**
451
+
452
+ ```typescript
453
+ import { RolesPermissionsMatrix } from '@/core/components/superadmin'
454
+
455
+ // View all roles and their permissions
456
+ <RolesPermissionsMatrix />
457
+ ```
458
+
459
+ ```
460
+ ┌──────────────────────────────────────────────────────────┐
461
+ │ TEAM PERMISSIONS BY ROLE │
462
+ │ ──────────────────────────────────────────────────── │
463
+ │ │
464
+ │ Permission Owner Admin Member Viewer │
465
+ │ ────────────────────── ──── ──── ────── ────── │
466
+ │ team.view ✓ ✓ ✓ ✓ │
467
+ │ team.edit ✓ ✓ ✗ ✗ │
468
+ │ team.delete ✓ ✗ ✗ ✗ │
469
+ │ team.members.view ✓ ✓ ✓ ✓ │
470
+ │ team.members.invite ✓ ✓ ✗ ✗ │
471
+ │ team.members.remove ✓ ✓ ✗ ✗ │
472
+ │ team.settings.view ✓ ✓ ✓ ✗ │
473
+ │ team.settings.edit ✓ ✓ ✗ ✗ │
474
+ │ team.billing.view ✓ ✓ ✗ ✗ │
475
+ │ team.billing.manage ✓ ✗ ✗ ✗ │
476
+ └──────────────────────────────────────────────────────────┘
477
+ ```
478
+
479
+ **📋 Role Hierarchy:**
480
+
481
+ ```
482
+ superadmin (bypasses all team permissions)
483
+
484
+
485
+ owner (full team control)
486
+
487
+
488
+ admin (most permissions)
489
+
490
+
491
+ member (limited permissions)
492
+
493
+
494
+ viewer (read-only)
495
+ ```
496
+
497
+ **📋 Custom Roles:**
498
+
499
+ Themes can define custom roles in `app.config.ts`:
500
+
501
+ ```typescript
502
+ // app.config.ts
503
+ teamRoles: {
504
+ custom: [
505
+ {
506
+ name: 'editor',
507
+ displayName: 'Editor',
508
+ description: 'Can edit content but not settings',
509
+ permissions: [
510
+ 'team.view',
511
+ 'entities.read',
512
+ 'entities.write',
513
+ ]
514
+ }
515
+ ]
516
+ }
517
+ ```
518
+
519
+ **📋 Permission Registry:**
520
+
521
+ ```typescript
522
+ // Import from registry
523
+ import {
524
+ TEAM_PERMISSIONS_BY_ROLE,
525
+ AVAILABLE_ROLES,
526
+ ROLE_HIERARCHY,
527
+ } from '@nextsparkjs/registries/permissions-registry'
528
+
529
+ // Check permission
530
+ const hasPermission = TEAM_PERMISSIONS_BY_ROLE[role].includes(permission)
531
+ ```
532
+
533
+ ```
534
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
535
+
536
+ ✅ TUTORIAL STORY!
537
+
538
+ You've learned:
539
+ • Accessing the Superadmin Panel
540
+ • User management and filtering
541
+ • Team management capabilities
542
+ • Subscription handling
543
+ • Role and permission configuration
544
+
545
+ 📚 Related tutorials:
546
+ • /how-to:set-user-roles-and-permissions - Configure RBAC
547
+ • /how-to:set-plans-and-permissions - Configure billing plans
548
+
549
+ 🔙 Back to menu: /how-to:start
550
+ ```
551
+
552
+ ---
553
+
554
+ ## Interactive Options
555
+
556
+ ### "What's the difference between superadmin and team admin?"
557
+
558
+ ```
559
+ 📋 Superadmin vs Team Admin:
560
+
561
+ SUPERADMIN (User Role):
562
+ • Global system administrator
563
+ • Access to /superadmin panel
564
+ • Can manage ALL users and teams
565
+ • Can change any user's role
566
+ • Can modify subscriptions
567
+ • NOT tied to any specific team
568
+
569
+ TEAM ADMIN (Team Role):
570
+ • Administrator of a specific team
571
+ • Access to team settings
572
+ • Can invite/remove team members
573
+ • Can change member roles (except owner)
574
+ • CANNOT access other teams
575
+ • CANNOT access superadmin panel
576
+
577
+ In short:
578
+ • Superadmin = System-wide power
579
+ • Team Admin = Team-specific power
580
+ ```
581
+
582
+ ### "How do I give a team free access?"
583
+
584
+ ```
585
+ 📋 Granting Free Access:
586
+
587
+ Option 1: Manual plan override
588
+ 1. Go to /superadmin/subscriptions
589
+ 2. Find the team
590
+ 3. Click "Change Plan"
591
+ 4. Select plan and check "Free override"
592
+ 5. Set expiration (or never)
593
+
594
+ Option 2: Via database
595
+
596
+ UPDATE team_subscriptions
597
+ SET plan_id = 'enterprise',
598
+ stripe_subscription_id = NULL,
599
+ status = 'active',
600
+ free_override = true,
601
+ free_override_reason = 'Partner program'
602
+ WHERE team_id = 'team-id';
603
+
604
+ Option 3: Via API
605
+
606
+ await updateTeamSubscription(teamId, {
607
+ planId: 'pro',
608
+ freeOverride: true,
609
+ reason: 'Beta tester reward',
610
+ expiresAt: '2025-12-31'
611
+ })
612
+ ```
613
+
614
+ ---
615
+
616
+ ## Related Commands
617
+
618
+ | Command | Description |
619
+ |---------|-------------|
620
+ | `/how-to:set-user-roles-and-permissions` | Configure RBAC system |
621
+ | `/how-to:set-plans-and-permissions` | Configure billing plans |
622
+ | `/how-to:use-devtools` | Developer tools panel |