@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.
- package/LICENSE +21 -0
- package/README.md +115 -0
- package/claude/_docs/workflows-optimizations.md +359 -0
- package/claude/agents/api-tester.md +634 -0
- package/claude/agents/architecture-supervisor.md +1351 -0
- package/claude/agents/backend-developer.md +997 -0
- package/claude/agents/backend-validator.md +417 -0
- package/claude/agents/bdd-docs-writer.md +737 -0
- package/claude/agents/block-developer.md +677 -0
- package/claude/agents/code-reviewer.md +1432 -0
- package/claude/agents/db-developer.md +721 -0
- package/claude/agents/db-validator.md +407 -0
- package/claude/agents/demo-video-generator.md +493 -0
- package/claude/agents/documentation-writer.md +1268 -0
- package/claude/agents/frontend-developer.md +1234 -0
- package/claude/agents/frontend-validator.md +777 -0
- package/claude/agents/functional-validator.md +630 -0
- package/claude/agents/mock-analyst.md +387 -0
- package/claude/agents/product-manager.md +963 -0
- package/claude/agents/qa-automation.md +1762 -0
- package/claude/agents/release-manager.md +634 -0
- package/claude/agents/selectors-translator.md +262 -0
- package/claude/agents/unit-test-writer.md +785 -0
- package/claude/agents/visual-comparator.md +329 -0
- package/claude/agents/workflow-maintainer.md +352 -0
- package/claude/commands/do/README.md +88 -0
- package/claude/commands/do/create-api.md +64 -0
- package/claude/commands/do/create-entity.md +66 -0
- package/claude/commands/do/create-migration.md +64 -0
- package/claude/commands/do/create-plugin.md +56 -0
- package/claude/commands/do/create-theme.md +70 -0
- package/claude/commands/do/mock-data.md +67 -0
- package/claude/commands/do/reset-db.md +71 -0
- package/claude/commands/do/setup-scheduled-action.md +75 -0
- package/claude/commands/do/sync-code-review.md +117 -0
- package/claude/commands/do/update-selectors.md +112 -0
- package/claude/commands/do/use-skills.md +90 -0
- package/claude/commands/do/validate-blocks.md +69 -0
- package/claude/commands/how-to/README.md +261 -0
- package/claude/commands/how-to/add-metadata.md +692 -0
- package/claude/commands/how-to/add-taxonomies.md +806 -0
- package/claude/commands/how-to/add-translations.md +571 -0
- package/claude/commands/how-to/create-api.md +577 -0
- package/claude/commands/how-to/create-block.md +575 -0
- package/claude/commands/how-to/create-child-entities.md +771 -0
- package/claude/commands/how-to/create-entity.md +597 -0
- package/claude/commands/how-to/create-migrations.md +605 -0
- package/claude/commands/how-to/create-plugin.md +654 -0
- package/claude/commands/how-to/customize-app.md +481 -0
- package/claude/commands/how-to/customize-dashboard.md +553 -0
- package/claude/commands/how-to/customize-theme.md +438 -0
- package/claude/commands/how-to/define-features-flows.md +632 -0
- package/claude/commands/how-to/deploy.md +507 -0
- package/claude/commands/how-to/handle-file-uploads.md +746 -0
- package/claude/commands/how-to/implement-search.md +1001 -0
- package/claude/commands/how-to/install-plugins.md +352 -0
- package/claude/commands/how-to/manage-test-coverage.md +984 -0
- package/claude/commands/how-to/run-tests.md +400 -0
- package/claude/commands/how-to/set-app-languages.md +601 -0
- package/claude/commands/how-to/set-plans-and-permissions.md +575 -0
- package/claude/commands/how-to/set-scheduled-actions.md +527 -0
- package/claude/commands/how-to/set-user-roles-and-permissions.md +550 -0
- package/claude/commands/how-to/setup-authentication.md +388 -0
- package/claude/commands/how-to/setup-claude-code.md +440 -0
- package/claude/commands/how-to/setup-database.md +274 -0
- package/claude/commands/how-to/setup-email-providers.md +598 -0
- package/claude/commands/how-to/setup-mobile-dev.md +627 -0
- package/claude/commands/how-to/start.md +500 -0
- package/claude/commands/how-to/use-devtools.md +639 -0
- package/claude/commands/how-to/use-superadmin.md +622 -0
- package/claude/commands/session/README.md +193 -0
- package/claude/commands/session/block-create.md +190 -0
- package/claude/commands/session/block-list.md +203 -0
- package/claude/commands/session/block-update.md +192 -0
- package/claude/commands/session/block-validate.md +218 -0
- package/claude/commands/session/changelog.md +115 -0
- package/claude/commands/session/close.md +225 -0
- package/claude/commands/session/commit.md +174 -0
- package/claude/commands/session/db-entity.md +206 -0
- package/claude/commands/session/db-fix.md +212 -0
- package/claude/commands/session/db-sample.md +206 -0
- package/claude/commands/session/demo.md +178 -0
- package/claude/commands/session/doc-bdd.md +207 -0
- package/claude/commands/session/doc-feature.md +218 -0
- package/claude/commands/session/doc-read.md +225 -0
- package/claude/commands/session/execute.md +204 -0
- package/claude/commands/session/explain.md +202 -0
- package/claude/commands/session/fix-bug.md +210 -0
- package/claude/commands/session/fix-build.md +182 -0
- package/claude/commands/session/fix-test.md +189 -0
- package/claude/commands/session/pending.md +232 -0
- package/claude/commands/session/refine.md +188 -0
- package/claude/commands/session/resume.md +192 -0
- package/claude/commands/session/review.md +192 -0
- package/claude/commands/session/scope-change.md +181 -0
- package/claude/commands/session/start-blocks.md +347 -0
- package/claude/commands/session/start.md +604 -0
- package/claude/commands/session/status.md +169 -0
- package/claude/commands/session/test-fix.md +221 -0
- package/claude/commands/session/test-run.md +203 -0
- package/claude/commands/session/test-write.md +242 -0
- package/claude/commands/session/validate.md +162 -0
- package/claude/config/context.json +40 -0
- package/claude/config/github.json +69 -0
- package/claude/config/github.schema.json +106 -0
- package/claude/config/team.json +46 -0
- package/claude/config/team.schema.json +106 -0
- package/claude/config/workspace.json +43 -0
- package/claude/config/workspace.schema.json +75 -0
- package/claude/skills/README.md +228 -0
- package/claude/skills/accessibility/SKILL.md +573 -0
- package/claude/skills/api-bypass-layers/SKILL.md +550 -0
- package/claude/skills/asana-integration/SKILL.md +499 -0
- package/claude/skills/better-auth/SKILL.md +666 -0
- package/claude/skills/billing-subscriptions/SKILL.md +660 -0
- package/claude/skills/block-decision-matrix/SKILL.md +359 -0
- package/claude/skills/clickup-integration/SKILL.md +434 -0
- package/claude/skills/core-theme-responsibilities/SKILL.md +485 -0
- package/claude/skills/create-plugin/SKILL.md +425 -0
- package/claude/skills/create-theme/SKILL.md +331 -0
- package/claude/skills/cypress-api/SKILL.md +511 -0
- package/claude/skills/cypress-api/scripts/generate-api-controller.py +329 -0
- package/claude/skills/cypress-api/scripts/generate-api-test.py +930 -0
- package/claude/skills/cypress-e2e/SKILL.md +526 -0
- package/claude/skills/cypress-e2e/scripts/extract-selectors.py +383 -0
- package/claude/skills/cypress-e2e/scripts/generate-uat-test.py +788 -0
- package/claude/skills/cypress-selectors/SKILL.md +309 -0
- package/claude/skills/cypress-selectors/scripts/extract-missing.py +243 -0
- package/claude/skills/cypress-selectors/scripts/generate-block-selectors.py +283 -0
- package/claude/skills/cypress-selectors/scripts/validate-selectors.py +145 -0
- package/claude/skills/database-migrations/SKILL.md +335 -0
- package/claude/skills/database-migrations/scripts/generate-sample-data.py +284 -0
- package/claude/skills/database-migrations/scripts/validate-migration.py +323 -0
- package/claude/skills/design-system/SKILL.md +682 -0
- package/claude/skills/documentation/SKILL.md +540 -0
- package/claude/skills/entity-api/SKILL.md +482 -0
- package/claude/skills/entity-system/SKILL.md +635 -0
- package/claude/skills/entity-system/scripts/generate-child-migration.py +298 -0
- package/claude/skills/entity-system/scripts/generate-metas-migration.py +233 -0
- package/claude/skills/entity-system/scripts/generate-migration.py +382 -0
- package/claude/skills/entity-system/scripts/generate-sample-data.py +418 -0
- package/claude/skills/entity-system/scripts/scaffold-entity.py +661 -0
- package/claude/skills/github/SKILL.md +467 -0
- package/claude/skills/i18n-nextintl/SKILL.md +302 -0
- package/claude/skills/i18n-nextintl/scripts/add-translation.py +243 -0
- package/claude/skills/i18n-nextintl/scripts/extract-hardcoded.py +246 -0
- package/claude/skills/i18n-nextintl/scripts/validate-translations.py +260 -0
- package/claude/skills/impact-analysis/SKILL.md +203 -0
- package/claude/skills/jest-unit/SKILL.md +306 -0
- package/claude/skills/jest-unit/references/component-testing.md +371 -0
- package/claude/skills/jest-unit/references/mocking-patterns.md +380 -0
- package/claude/skills/jest-unit/references/service-hook-testing.md +454 -0
- package/claude/skills/jira-integration/SKILL.md +539 -0
- package/claude/skills/media-library/SKILL.md +743 -0
- package/claude/skills/mock-analysis/SKILL.md +276 -0
- package/claude/skills/monorepo-architecture/SKILL.md +162 -0
- package/claude/skills/nextjs-api-development/SKILL.md +364 -0
- package/claude/skills/nextjs-api-development/scripts/generate-crud-tests.py +456 -0
- package/claude/skills/nextjs-api-development/scripts/scaffold-endpoint.py +481 -0
- package/claude/skills/nextjs-api-development/scripts/validate-api.py +283 -0
- package/claude/skills/notion-integration/SKILL.md +641 -0
- package/claude/skills/npm-development-workflow/SKILL.md +480 -0
- package/claude/skills/page-builder-blocks/SKILL.md +530 -0
- package/claude/skills/page-builder-blocks/scripts/scaffold-block.py +444 -0
- package/claude/skills/permissions-system/SKILL.md +619 -0
- package/claude/skills/plugins/SKILL.md +340 -0
- package/claude/skills/plugins/references/plugin-templates.md +414 -0
- package/claude/skills/plugins/references/plugin-testing.md +353 -0
- package/claude/skills/plugins/references/plugin-types.md +198 -0
- package/claude/skills/plugins/scripts/scaffold-plugin.py +443 -0
- package/claude/skills/pom-patterns/SKILL.md +452 -0
- package/claude/skills/pom-patterns/scripts/generate-pom.py +392 -0
- package/claude/skills/rate-limiting/SKILL.md +342 -0
- package/claude/skills/react-best-practices/AGENTS.md +2410 -0
- package/claude/skills/react-best-practices/README.md +123 -0
- package/claude/skills/react-best-practices/SKILL.md +125 -0
- package/claude/skills/react-best-practices/metadata.json +15 -0
- package/claude/skills/react-best-practices/rules/_sections.md +46 -0
- package/claude/skills/react-best-practices/rules/_template.md +28 -0
- package/claude/skills/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/claude/skills/react-best-practices/rules/advanced-use-latest.md +49 -0
- package/claude/skills/react-best-practices/rules/async-api-routes.md +38 -0
- package/claude/skills/react-best-practices/rules/async-defer-await.md +80 -0
- package/claude/skills/react-best-practices/rules/async-dependencies.md +36 -0
- package/claude/skills/react-best-practices/rules/async-parallel.md +28 -0
- package/claude/skills/react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/claude/skills/react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/claude/skills/react-best-practices/rules/bundle-conditional.md +31 -0
- package/claude/skills/react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/claude/skills/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/claude/skills/react-best-practices/rules/bundle-preload.md +50 -0
- package/claude/skills/react-best-practices/rules/client-event-listeners.md +74 -0
- package/claude/skills/react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/claude/skills/react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/claude/skills/react-best-practices/rules/client-swr-dedup.md +56 -0
- package/claude/skills/react-best-practices/rules/js-batch-dom-css.md +82 -0
- package/claude/skills/react-best-practices/rules/js-cache-function-results.md +80 -0
- package/claude/skills/react-best-practices/rules/js-cache-property-access.md +28 -0
- package/claude/skills/react-best-practices/rules/js-cache-storage.md +70 -0
- package/claude/skills/react-best-practices/rules/js-combine-iterations.md +32 -0
- package/claude/skills/react-best-practices/rules/js-early-exit.md +50 -0
- package/claude/skills/react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/claude/skills/react-best-practices/rules/js-index-maps.md +37 -0
- package/claude/skills/react-best-practices/rules/js-length-check-first.md +49 -0
- package/claude/skills/react-best-practices/rules/js-min-max-loop.md +82 -0
- package/claude/skills/react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/claude/skills/react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/claude/skills/react-best-practices/rules/rendering-activity.md +26 -0
- package/claude/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/claude/skills/react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/claude/skills/react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/claude/skills/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/claude/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/claude/skills/react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/claude/skills/react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/claude/skills/react-best-practices/rules/rerender-dependencies.md +45 -0
- package/claude/skills/react-best-practices/rules/rerender-derived-state.md +29 -0
- package/claude/skills/react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/claude/skills/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/claude/skills/react-best-practices/rules/rerender-memo.md +44 -0
- package/claude/skills/react-best-practices/rules/rerender-transitions.md +40 -0
- package/claude/skills/react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/claude/skills/react-best-practices/rules/server-cache-lru.md +41 -0
- package/claude/skills/react-best-practices/rules/server-cache-react.md +76 -0
- package/claude/skills/react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/claude/skills/react-best-practices/rules/server-serialization.md +38 -0
- package/claude/skills/react-patterns/SKILL.md +688 -0
- package/claude/skills/registry-system/SKILL.md +331 -0
- package/claude/skills/scheduled-actions/SKILL.md +671 -0
- package/claude/skills/scope-enforcement/SKILL.md +542 -0
- package/claude/skills/scope-enforcement/scripts/validate-scope.py +357 -0
- package/claude/skills/server-actions/SKILL.md +493 -0
- package/claude/skills/service-layer/SKILL.md +587 -0
- package/claude/skills/session-management/SKILL.md +266 -0
- package/claude/skills/session-management/scripts/create-session.py +166 -0
- package/claude/skills/session-management/scripts/iteration-close.sh +105 -0
- package/claude/skills/session-management/scripts/iteration-init.sh +180 -0
- package/claude/skills/session-management/scripts/session-archive.sh +87 -0
- package/claude/skills/session-management/scripts/session-close.sh +133 -0
- package/claude/skills/session-management/scripts/session-init.sh +225 -0
- package/claude/skills/session-management/scripts/session-list.sh +163 -0
- package/claude/skills/session-management/scripts/split-plan.sh +116 -0
- package/claude/skills/shadcn-components/SKILL.md +586 -0
- package/claude/skills/shadcn-theming/SKILL.md +446 -0
- package/claude/skills/suspense-loading/SKILL.md +280 -0
- package/claude/skills/tailwind-theming/SKILL.md +507 -0
- package/claude/skills/tanstack-query/SKILL.md +608 -0
- package/claude/skills/test-coverage/SKILL.md +239 -0
- package/claude/skills/web-design-guidelines/SKILL.md +39 -0
- package/claude/skills/zod-validation/SKILL.md +537 -0
- package/claude/templates/blocks/progress.md +86 -0
- package/claude/templates/iteration/changes.md +61 -0
- package/claude/templates/iteration/progress.md +55 -0
- package/claude/templates/log.md +31 -0
- package/claude/templates/story/context.md +77 -0
- package/claude/templates/story/pendings.md +37 -0
- package/claude/templates/story/plan.md +299 -0
- package/claude/templates/story/requirements.md +109 -0
- package/claude/templates/story/scope.json +10 -0
- package/claude/templates/story/tests.md +91 -0
- package/claude/templates/task/progress.md +58 -0
- package/claude/templates/task/requirements.md +54 -0
- package/claude/workflows/README.md +154 -0
- package/claude/workflows/blocks.md +614 -0
- package/claude/workflows/story.md +1207 -0
- package/claude/workflows/task.md +927 -0
- package/claude/workflows/tweak.md +527 -0
- package/cursor/.gitkeep +0 -0
- package/package.json +35 -0
- package/scripts/postinstall.mjs +198 -0
- package/scripts/setup.mjs +282 -0
- package/scripts/sync.mjs +209 -0
|
@@ -0,0 +1,440 @@
|
|
|
1
|
+
# /how-to:setup-claude-code
|
|
2
|
+
|
|
3
|
+
Configure Claude Code AI workflow system for your project.
|
|
4
|
+
|
|
5
|
+
**Aliases:** `/how-to:setup-ai`, `/how-to:configure-claude`
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Syntax
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
/how-to:setup-claude-code
|
|
13
|
+
/how-to:setup-claude-code --validate
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Overview
|
|
19
|
+
|
|
20
|
+
This is the **first step** when starting with NextSpark. Before you can use any AI-assisted development features, you need to configure Claude Code's workflow system.
|
|
21
|
+
|
|
22
|
+
**What you'll configure:**
|
|
23
|
+
1. `context.json` - Monorepo vs Consumer project type
|
|
24
|
+
2. `workspace.json` - Your personal preferences, active user, and task manager config
|
|
25
|
+
3. `team.json` - Team members and their platform IDs
|
|
26
|
+
4. `github.json` - Git workflow conventions (branches, commits, PRs)
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Flow
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
34
|
+
│ /how-to:setup-claude-code │
|
|
35
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
36
|
+
│ │
|
|
37
|
+
│ 1. Introduction │
|
|
38
|
+
│ - Explain the config file structure │
|
|
39
|
+
│ - What each file does │
|
|
40
|
+
│ ↓ │
|
|
41
|
+
│ 2. Step 1: Context Configuration │
|
|
42
|
+
│ - Determine: monorepo or consumer? │
|
|
43
|
+
│ - Create/update .claude/config/context.json │
|
|
44
|
+
│ ↓ │
|
|
45
|
+
│ 3. Step 2: Team Configuration │
|
|
46
|
+
│ - Add team members │
|
|
47
|
+
│ - Configure platform IDs (GitHub, task manager) │
|
|
48
|
+
│ - Create/update .claude/config/team.json │
|
|
49
|
+
│ ↓ │
|
|
50
|
+
│ 4. Step 3: Workspace Configuration │
|
|
51
|
+
│ - Set active user (from team.json) │
|
|
52
|
+
│ - Set language preference │
|
|
53
|
+
│ - Configure task manager integration │
|
|
54
|
+
│ - Create/update .claude/config/workspace.json │
|
|
55
|
+
│ ↓ │
|
|
56
|
+
│ 5. Step 4: GitHub Workflow Configuration │
|
|
57
|
+
│ - Configure gitflow (develop → qa → main) │
|
|
58
|
+
│ - Set branch naming conventions │
|
|
59
|
+
│ - Set commit message patterns │
|
|
60
|
+
│ - Create/update .claude/config/github.json │
|
|
61
|
+
│ ↓ │
|
|
62
|
+
│ 6. Validation │
|
|
63
|
+
│ - Verify all config files exist │
|
|
64
|
+
│ - Validate JSON syntax │
|
|
65
|
+
│ - Check required fields │
|
|
66
|
+
│ ↓ │
|
|
67
|
+
│ 8. Next Steps │
|
|
68
|
+
│ - Ready for /how-to:setup-database │
|
|
69
|
+
│ - Or /session:start for development │
|
|
70
|
+
│ │
|
|
71
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Step-by-Step Content
|
|
77
|
+
|
|
78
|
+
### Step 1: Context Configuration
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
82
|
+
📚 STEP 1 OF 4: Project Context
|
|
83
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
84
|
+
|
|
85
|
+
First, let's determine your project type.
|
|
86
|
+
|
|
87
|
+
📋 MONOREPO (Core Framework Development)
|
|
88
|
+
- You're developing the NextSpark framework itself
|
|
89
|
+
- You CAN modify core/ directory
|
|
90
|
+
- You CAN modify any theme
|
|
91
|
+
|
|
92
|
+
📋 CONSUMER (Application Development)
|
|
93
|
+
- You're building an app WITH NextSpark
|
|
94
|
+
- Core is READ-ONLY (via npm packages)
|
|
95
|
+
- You can only modify your active theme
|
|
96
|
+
|
|
97
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
98
|
+
|
|
99
|
+
What type of project is this?
|
|
100
|
+
|
|
101
|
+
[1] Monorepo - I'm developing NextSpark core
|
|
102
|
+
[2] Consumer - I'm building an app with NextSpark
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**After selection, create `.claude/config/context.json`:**
|
|
106
|
+
|
|
107
|
+
```json
|
|
108
|
+
{
|
|
109
|
+
"$schema": "./context.schema.json",
|
|
110
|
+
"context": "monorepo" // or "consumer"
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
### Step 2: Team Configuration
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
120
|
+
📚 STEP 2 OF 4: Team Members
|
|
121
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
122
|
+
|
|
123
|
+
Now let's configure your team. This enables:
|
|
124
|
+
- Proper git commit attribution
|
|
125
|
+
- Task manager assignment
|
|
126
|
+
- Code review workflows
|
|
127
|
+
|
|
128
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
129
|
+
|
|
130
|
+
How many people are on your team?
|
|
131
|
+
|
|
132
|
+
[1] Just me (solo developer)
|
|
133
|
+
[2] Small team (2-5 people)
|
|
134
|
+
[3] I'll configure this later
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
**For each team member, collect:**
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
Team Member #1:
|
|
141
|
+
- Full name: _______________
|
|
142
|
+
- Initials (for branches): __
|
|
143
|
+
- Role: [lead | developer | reviewer]
|
|
144
|
+
- GitHub username: _______________
|
|
145
|
+
- Task Manager ID (optional): _______________
|
|
146
|
+
- Can review PRs? [yes/no]
|
|
147
|
+
- Can merge to main? [yes/no]
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
**Create `.claude/config/team.json`:**
|
|
151
|
+
|
|
152
|
+
```json
|
|
153
|
+
{
|
|
154
|
+
"$schema": "./team.schema.json",
|
|
155
|
+
"members": [
|
|
156
|
+
{
|
|
157
|
+
"name": "Pablo Capello",
|
|
158
|
+
"initials": "pc",
|
|
159
|
+
"role": "lead",
|
|
160
|
+
"ids": {
|
|
161
|
+
"github": "capellopablo",
|
|
162
|
+
"taskManager": "3020828",
|
|
163
|
+
"slack": ""
|
|
164
|
+
},
|
|
165
|
+
"permissions": {
|
|
166
|
+
"canReview": true,
|
|
167
|
+
"canMerge": true,
|
|
168
|
+
"canApproveProduction": true
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
],
|
|
172
|
+
"roles": {
|
|
173
|
+
"lead": {
|
|
174
|
+
"canReview": true,
|
|
175
|
+
"canMerge": true,
|
|
176
|
+
"canApproveProduction": true
|
|
177
|
+
},
|
|
178
|
+
"developer": {
|
|
179
|
+
"canReview": true,
|
|
180
|
+
"canMerge": false,
|
|
181
|
+
"canApproveProduction": false
|
|
182
|
+
},
|
|
183
|
+
"reviewer": {
|
|
184
|
+
"canReview": true,
|
|
185
|
+
"canMerge": false,
|
|
186
|
+
"canApproveProduction": false
|
|
187
|
+
}
|
|
188
|
+
},
|
|
189
|
+
"reviewRules": {
|
|
190
|
+
"minRequired": 1,
|
|
191
|
+
"requireLeadForProduction": false,
|
|
192
|
+
"requireQaForProduction": false
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
### Step 3: Workspace Configuration
|
|
200
|
+
|
|
201
|
+
```
|
|
202
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
203
|
+
📚 STEP 3 OF 4: Your Workspace
|
|
204
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
205
|
+
|
|
206
|
+
This is YOUR personal workspace configuration.
|
|
207
|
+
Each developer has their own workspace.json.
|
|
208
|
+
|
|
209
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
210
|
+
|
|
211
|
+
Who are you? (Select from team members)
|
|
212
|
+
|
|
213
|
+
[1] Pablo Capello
|
|
214
|
+
[2] Other team member...
|
|
215
|
+
|
|
216
|
+
Preferred language: (use language already chosen in /how-to:start,
|
|
217
|
+
or read from workspace.json preferences.language if available.
|
|
218
|
+
Only ask if no language has been selected yet in this session.)
|
|
219
|
+
|
|
220
|
+
Do you use a task manager?
|
|
221
|
+
|
|
222
|
+
[1] No task manager
|
|
223
|
+
[2] ClickUp
|
|
224
|
+
[3] Jira
|
|
225
|
+
[4] Linear
|
|
226
|
+
[5] Asana
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
**Create `.claude/config/workspace.json`:**
|
|
230
|
+
|
|
231
|
+
```json
|
|
232
|
+
{
|
|
233
|
+
"$schema": "./workspace.schema.json",
|
|
234
|
+
"project": {
|
|
235
|
+
"name": "My NextSpark App",
|
|
236
|
+
"activeTheme": "default"
|
|
237
|
+
},
|
|
238
|
+
"activeUser": "Pablo Capello",
|
|
239
|
+
"preferences": {
|
|
240
|
+
"language": "es",
|
|
241
|
+
"defaultWorkflow": "standard",
|
|
242
|
+
"autoCommit": false,
|
|
243
|
+
"verboseOutput": true
|
|
244
|
+
},
|
|
245
|
+
"taskManager": {
|
|
246
|
+
"enabled": true,
|
|
247
|
+
"provider": "clickup",
|
|
248
|
+
"syncWithSession": true,
|
|
249
|
+
"autoUpdateStatus": true,
|
|
250
|
+
"defaultList": ""
|
|
251
|
+
},
|
|
252
|
+
"integrations": {
|
|
253
|
+
"github": {
|
|
254
|
+
"enabled": true
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
### Step 4: GitHub Workflow Configuration
|
|
263
|
+
|
|
264
|
+
```
|
|
265
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
266
|
+
📚 STEP 4 OF 4: Git Workflow
|
|
267
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
268
|
+
|
|
269
|
+
Let's configure your git workflow conventions.
|
|
270
|
+
|
|
271
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
272
|
+
|
|
273
|
+
What branch strategy do you use?
|
|
274
|
+
|
|
275
|
+
[1] Gitflow (feature → develop → qa → main)
|
|
276
|
+
[2] GitHub Flow (feature → main)
|
|
277
|
+
[3] Custom (I'll configure manually)
|
|
278
|
+
|
|
279
|
+
Branch naming convention?
|
|
280
|
+
|
|
281
|
+
[1] {type}/{issue-key}-{description}-{initials}
|
|
282
|
+
Example: feature/CU-abc123-add-products-pc
|
|
283
|
+
|
|
284
|
+
[2] {type}/{description}
|
|
285
|
+
Example: feature/add-products
|
|
286
|
+
|
|
287
|
+
Commit message pattern?
|
|
288
|
+
|
|
289
|
+
[1] [{issue-key}] {description}
|
|
290
|
+
Example: [CU-abc123] Add products entity
|
|
291
|
+
|
|
292
|
+
[2] {type}: {description}
|
|
293
|
+
Example: feat: Add products entity
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
**Create `.claude/config/github.json`:**
|
|
297
|
+
|
|
298
|
+
```json
|
|
299
|
+
{
|
|
300
|
+
"$schema": "./github.schema.json",
|
|
301
|
+
"gitflow": {
|
|
302
|
+
"enabled": true,
|
|
303
|
+
"environments": ["develop", "qa", "main"],
|
|
304
|
+
"featureBranch": {
|
|
305
|
+
"baseBranch": "main",
|
|
306
|
+
"targetBranch": "develop"
|
|
307
|
+
},
|
|
308
|
+
"hotfixBranch": {
|
|
309
|
+
"baseBranch": "main",
|
|
310
|
+
"targetBranch": "main",
|
|
311
|
+
"skipEnvironments": true
|
|
312
|
+
}
|
|
313
|
+
},
|
|
314
|
+
"branches": {
|
|
315
|
+
"pattern": "{type}/{issue-key}-{description}-{initials}",
|
|
316
|
+
"types": ["feature", "fix", "hotfix", "refactor", "docs", "test"],
|
|
317
|
+
"examples": [
|
|
318
|
+
"feature/CU-abc123-add-products-pc",
|
|
319
|
+
"fix/CU-def456-login-error-pc",
|
|
320
|
+
"hotfix/critical-payment-fix-pc"
|
|
321
|
+
]
|
|
322
|
+
},
|
|
323
|
+
"commits": {
|
|
324
|
+
"pattern": "[{issue-key}] {description}",
|
|
325
|
+
"types": ["feat", "fix", "refactor", "docs", "test", "chore"],
|
|
326
|
+
"examples": [
|
|
327
|
+
"[CU-abc123] Add products entity with CRUD",
|
|
328
|
+
"[CU-def456] Fix login redirect issue"
|
|
329
|
+
]
|
|
330
|
+
},
|
|
331
|
+
"pullRequests": {
|
|
332
|
+
"titlePattern": "[{issue-key}] {description}",
|
|
333
|
+
"bodyTemplate": "## Summary\n\n{summary}\n\n## Changes\n\n{changes}\n\n## Testing\n\n{testing}",
|
|
334
|
+
"labels": {
|
|
335
|
+
"auto": true,
|
|
336
|
+
"mapping": {
|
|
337
|
+
"feature": "enhancement",
|
|
338
|
+
"fix": "bug",
|
|
339
|
+
"hotfix": "critical",
|
|
340
|
+
"docs": "documentation"
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
},
|
|
344
|
+
"reviewers": {
|
|
345
|
+
"source": ".claude/config/team.json",
|
|
346
|
+
"askUserToSelect": true
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
---
|
|
352
|
+
|
|
353
|
+
## Validation
|
|
354
|
+
|
|
355
|
+
After all steps are complete:
|
|
356
|
+
|
|
357
|
+
```
|
|
358
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
359
|
+
✅ CONFIGURATION COMPLETE
|
|
360
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
361
|
+
|
|
362
|
+
Validating your configuration...
|
|
363
|
+
|
|
364
|
+
✓ .claude/config/context.json - Valid
|
|
365
|
+
✓ .claude/config/team.json - Valid
|
|
366
|
+
✓ .claude/config/workspace.json - Valid
|
|
367
|
+
✓ .claude/config/github.json - Valid
|
|
368
|
+
|
|
369
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
370
|
+
|
|
371
|
+
🎉 Claude Code is ready!
|
|
372
|
+
|
|
373
|
+
Your configuration:
|
|
374
|
+
├── Context: monorepo
|
|
375
|
+
├── Active User: Pablo Capello
|
|
376
|
+
├── Language: Spanish
|
|
377
|
+
├── Task Manager: ClickUp (enabled)
|
|
378
|
+
└── Git Flow: feature → develop → qa → main
|
|
379
|
+
|
|
380
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
381
|
+
|
|
382
|
+
What would you like to do next?
|
|
383
|
+
|
|
384
|
+
[1] Continue to /how-to:setup-database
|
|
385
|
+
[2] Start development with /session:start
|
|
386
|
+
[3] Return to /how-to:start
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
---
|
|
390
|
+
|
|
391
|
+
## Config Files Summary
|
|
392
|
+
|
|
393
|
+
| File | Purpose | Shared? |
|
|
394
|
+
|------|---------|---------|
|
|
395
|
+
| `context.json` | Project type (monorepo/consumer) | Yes |
|
|
396
|
+
| `team.json` | Team members and roles | Yes |
|
|
397
|
+
| `workspace.json` | Personal preferences + task manager config | No (per developer) |
|
|
398
|
+
| `github.json` | Git workflow conventions | Yes |
|
|
399
|
+
|
|
400
|
+
---
|
|
401
|
+
|
|
402
|
+
## Troubleshooting
|
|
403
|
+
|
|
404
|
+
### Missing config files
|
|
405
|
+
|
|
406
|
+
```bash
|
|
407
|
+
# Check if .claude/config/ exists
|
|
408
|
+
ls -la .claude/config/
|
|
409
|
+
|
|
410
|
+
# If not, create the directory
|
|
411
|
+
mkdir -p .claude/config/
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
### Invalid JSON syntax
|
|
415
|
+
|
|
416
|
+
```bash
|
|
417
|
+
# Validate JSON files
|
|
418
|
+
cat .claude/config/workspace.json | jq .
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
### Team member not found
|
|
422
|
+
|
|
423
|
+
Ensure `workspace.json.activeUser` matches exactly a `team.json.members[].name`.
|
|
424
|
+
|
|
425
|
+
---
|
|
426
|
+
|
|
427
|
+
## Related Commands
|
|
428
|
+
|
|
429
|
+
| Command | Description |
|
|
430
|
+
|---------|-------------|
|
|
431
|
+
| `/how-to:setup-database` | Next step: Configure database |
|
|
432
|
+
| `/how-to:start` | Return to learning hub |
|
|
433
|
+
| `/session:start` | Start a development session |
|
|
434
|
+
|
|
435
|
+
---
|
|
436
|
+
|
|
437
|
+
## Related Skills
|
|
438
|
+
|
|
439
|
+
- `.claude/skills/github/SKILL.md` - GitHub workflow patterns
|
|
440
|
+
- `.claude/skills/session-management/SKILL.md` - Session configuration
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
# /how-to:setup-database
|
|
2
|
+
|
|
3
|
+
Interactive guide to set up PostgreSQL database for NextSpark.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Required Skills
|
|
8
|
+
|
|
9
|
+
Before executing, these skills provide deeper context:
|
|
10
|
+
- `.claude/skills/database-migrations/SKILL.md` - PostgreSQL migration patterns
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Syntax
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
/how-to:setup-database
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Behavior
|
|
23
|
+
|
|
24
|
+
Guides the user through setting up PostgreSQL, running migrations, and configuring database access.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Tutorial Overview
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
STEPS OVERVIEW (4 steps)
|
|
32
|
+
|
|
33
|
+
Step 1: Install PostgreSQL
|
|
34
|
+
└── Local or cloud setup
|
|
35
|
+
|
|
36
|
+
Step 2: Configure Connection
|
|
37
|
+
└── Environment variables
|
|
38
|
+
|
|
39
|
+
Step 3: Run Migrations
|
|
40
|
+
└── Execute initial setup
|
|
41
|
+
|
|
42
|
+
Step 4: Verify Setup
|
|
43
|
+
└── Test database connection
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Step 1: Install PostgreSQL
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
52
|
+
📚 HOW TO: SETUP DATABASE
|
|
53
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
54
|
+
|
|
55
|
+
STEP 1 OF 4: Install PostgreSQL
|
|
56
|
+
|
|
57
|
+
Choose your setup option:
|
|
58
|
+
|
|
59
|
+
📋 Option A: Local PostgreSQL (macOS)
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
# Install with Homebrew
|
|
63
|
+
brew install postgresql@16
|
|
64
|
+
|
|
65
|
+
# Start PostgreSQL
|
|
66
|
+
brew services start postgresql@16
|
|
67
|
+
|
|
68
|
+
# Create database
|
|
69
|
+
createdb nextspark_dev
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
📋 Option B: Docker
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
# Run PostgreSQL in Docker
|
|
76
|
+
docker run --name nextspark-db \
|
|
77
|
+
-e POSTGRES_USER=postgres \
|
|
78
|
+
-e POSTGRES_PASSWORD=postgres \
|
|
79
|
+
-e POSTGRES_DB=nextspark_dev \
|
|
80
|
+
-p 5432:5432 \
|
|
81
|
+
-d postgres:16
|
|
82
|
+
|
|
83
|
+
# Verify it's running
|
|
84
|
+
docker ps
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
📋 Option C: Cloud (Supabase/Neon)
|
|
88
|
+
|
|
89
|
+
1. Create account at supabase.com or neon.tech
|
|
90
|
+
2. Create new project
|
|
91
|
+
3. Copy connection string from dashboard
|
|
92
|
+
|
|
93
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
94
|
+
|
|
95
|
+
What option would you like to use?
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Step 2: Configure Connection
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
104
|
+
STEP 2 OF 4: Configure Connection
|
|
105
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
106
|
+
|
|
107
|
+
Add database connection to your environment:
|
|
108
|
+
|
|
109
|
+
```env
|
|
110
|
+
# .env.local
|
|
111
|
+
|
|
112
|
+
# Local PostgreSQL
|
|
113
|
+
DATABASE_URL="postgresql://postgres:postgres@localhost:5432/nextspark_dev"
|
|
114
|
+
|
|
115
|
+
# Docker PostgreSQL
|
|
116
|
+
DATABASE_URL="postgresql://postgres:postgres@localhost:5432/nextspark_dev"
|
|
117
|
+
|
|
118
|
+
# Supabase
|
|
119
|
+
DATABASE_URL="postgresql://postgres:[PASSWORD]@db.[PROJECT].supabase.co:5432/postgres"
|
|
120
|
+
|
|
121
|
+
# Neon
|
|
122
|
+
DATABASE_URL="postgresql://[USER]:[PASSWORD]@[HOST]/[DATABASE]?sslmode=require"
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
126
|
+
|
|
127
|
+
📋 Connection String Format:
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
postgresql://[USER]:[PASSWORD]@[HOST]:[PORT]/[DATABASE]?[OPTIONS]
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
• USER: Database username
|
|
134
|
+
• PASSWORD: Database password
|
|
135
|
+
• HOST: Server address (localhost for local)
|
|
136
|
+
• PORT: Default is 5432
|
|
137
|
+
• DATABASE: Database name
|
|
138
|
+
• OPTIONS: sslmode=require for cloud
|
|
139
|
+
|
|
140
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
141
|
+
|
|
142
|
+
📋 Test Connection:
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
# Using psql
|
|
146
|
+
psql $DATABASE_URL -c "SELECT 1"
|
|
147
|
+
|
|
148
|
+
# Or via the app
|
|
149
|
+
pnpm db:test
|
|
150
|
+
```
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Step 3: Run Migrations
|
|
156
|
+
|
|
157
|
+
```
|
|
158
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
159
|
+
STEP 3 OF 4: Run Migrations
|
|
160
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
161
|
+
|
|
162
|
+
Execute migrations to set up database schema:
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
# Run all migrations
|
|
166
|
+
pnpm db:migrate
|
|
167
|
+
|
|
168
|
+
# This executes:
|
|
169
|
+
# 1. Core migrations (core/migrations/)
|
|
170
|
+
# 2. Theme entity migrations (themes/*/entities/*/migrations/)
|
|
171
|
+
# 3. Plugin migrations (plugins/*/migrations/)
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
175
|
+
|
|
176
|
+
📋 Migration Commands:
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
# Run migrations
|
|
180
|
+
pnpm db:migrate
|
|
181
|
+
|
|
182
|
+
# Create new migration
|
|
183
|
+
pnpm db:migrate:create "description"
|
|
184
|
+
|
|
185
|
+
# Rollback last migration
|
|
186
|
+
pnpm db:migrate:rollback
|
|
187
|
+
|
|
188
|
+
# Reset database (WARNING: destroys data)
|
|
189
|
+
pnpm db:reset
|
|
190
|
+
|
|
191
|
+
# Seed sample data
|
|
192
|
+
pnpm db:seed
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
196
|
+
|
|
197
|
+
📋 What Migrations Create:
|
|
198
|
+
|
|
199
|
+
Core tables:
|
|
200
|
+
• user - User accounts
|
|
201
|
+
• session - Auth sessions
|
|
202
|
+
• team - Teams/organizations
|
|
203
|
+
• teamMembers - Team memberships
|
|
204
|
+
• account - OAuth accounts
|
|
205
|
+
• apiKey - API keys
|
|
206
|
+
|
|
207
|
+
Theme entities (from your config):
|
|
208
|
+
• products, customers, etc.
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## Step 4: Verify Setup
|
|
214
|
+
|
|
215
|
+
```
|
|
216
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
217
|
+
STEP 4 OF 4: Verify Setup
|
|
218
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
219
|
+
|
|
220
|
+
Verify everything is working:
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
# 1. Test connection
|
|
224
|
+
pnpm db:test
|
|
225
|
+
|
|
226
|
+
# 2. List tables
|
|
227
|
+
psql $DATABASE_URL -c "\dt"
|
|
228
|
+
|
|
229
|
+
# 3. Start the app
|
|
230
|
+
pnpm dev
|
|
231
|
+
|
|
232
|
+
# 4. Try to sign up at http://localhost:3000
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
236
|
+
|
|
237
|
+
📋 Expected Tables:
|
|
238
|
+
|
|
239
|
+
After migration, you should see:
|
|
240
|
+
```
|
|
241
|
+
user
|
|
242
|
+
session
|
|
243
|
+
account
|
|
244
|
+
team
|
|
245
|
+
teamMembers
|
|
246
|
+
apiKey
|
|
247
|
+
[your entity tables]
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
251
|
+
|
|
252
|
+
✅ TUTORIAL STORY!
|
|
253
|
+
|
|
254
|
+
Your database is set up with:
|
|
255
|
+
• PostgreSQL connection
|
|
256
|
+
• Core schema tables
|
|
257
|
+
• Entity tables
|
|
258
|
+
• Sample data (if seeded)
|
|
259
|
+
|
|
260
|
+
📚 Related tutorials:
|
|
261
|
+
• /how-to:create-entity - Create new entities
|
|
262
|
+
• /how-to:create-migrations - Write migrations
|
|
263
|
+
|
|
264
|
+
🔙 Back to menu: /how-to:start
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
## Related Commands
|
|
270
|
+
|
|
271
|
+
| Command | Action |
|
|
272
|
+
|---------|--------|
|
|
273
|
+
| `/how-to:create-entity` | Create entities |
|
|
274
|
+
| `/session:db:fix` | Fix migration issues |
|