@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,88 @@
|
|
|
1
|
+
# do: Commands
|
|
2
|
+
|
|
3
|
+
Action-oriented commands that enforce reading skills and how-tos before executing tasks.
|
|
4
|
+
|
|
5
|
+
## Philosophy
|
|
6
|
+
|
|
7
|
+
Each `do:` command is **MINIMAL** - it only points to where to read the full instructions:
|
|
8
|
+
- **Skills** (`.claude/skills/`) contain patterns, conventions, and automation scripts
|
|
9
|
+
- **How-tos** (`.claude/commands/how-to/`) contain step-by-step procedures
|
|
10
|
+
|
|
11
|
+
## Available Commands
|
|
12
|
+
|
|
13
|
+
### Core Development
|
|
14
|
+
|
|
15
|
+
| Command | Description | Reads |
|
|
16
|
+
|---------|-------------|-------|
|
|
17
|
+
| `/do:create-entity` | Create a new entity with all files | `entity-system`, `database-migrations` |
|
|
18
|
+
| `/do:create-migration` | Create a database migration | `database-migrations` |
|
|
19
|
+
| `/do:create-api` | Create an API endpoint | `nextjs-api-development`, `entity-api` |
|
|
20
|
+
| `/do:create-plugin` | Create a new plugin | `create-plugin`, `plugins` |
|
|
21
|
+
| `/do:create-theme` | Create a new theme | `create-theme` |
|
|
22
|
+
|
|
23
|
+
### Database
|
|
24
|
+
|
|
25
|
+
| Command | Description | Reads |
|
|
26
|
+
|---------|-------------|-------|
|
|
27
|
+
| `/do:mock-data` | Generate sample/mock data | `database-migrations` |
|
|
28
|
+
| `/do:reset-db` | Reset and migrate database | `database-migrations` |
|
|
29
|
+
|
|
30
|
+
### Page Builder
|
|
31
|
+
|
|
32
|
+
| Command | Description | Reads |
|
|
33
|
+
|---------|-------------|-------|
|
|
34
|
+
| `/do:validate-blocks` | Validate page builder blocks | `page-builder-blocks`, `block-decision-matrix` |
|
|
35
|
+
| `/do:update-selectors` | Sync selectors between components, core, and POMs | `cypress-selectors` |
|
|
36
|
+
|
|
37
|
+
### Background Tasks
|
|
38
|
+
|
|
39
|
+
| Command | Description | Reads |
|
|
40
|
+
|---------|-------------|-------|
|
|
41
|
+
| `/do:setup-scheduled-action` | Create a scheduled action handler | `scheduled-actions` |
|
|
42
|
+
|
|
43
|
+
### Git & GitHub
|
|
44
|
+
|
|
45
|
+
| Command | Description | Reads |
|
|
46
|
+
|---------|-------------|-------|
|
|
47
|
+
| `/do:sync-code-review` | Sync with PR code review: evaluate, fix, respond | `github` |
|
|
48
|
+
|
|
49
|
+
### Meta
|
|
50
|
+
|
|
51
|
+
| Command | Description | Reads |
|
|
52
|
+
|---------|-------------|-------|
|
|
53
|
+
| `/do:use-skills` | **Enforcement**: Read and apply relevant skills for any task | `skills/README.md` |
|
|
54
|
+
|
|
55
|
+
## Usage Examples
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# For specific tasks
|
|
59
|
+
/do:create-entity products
|
|
60
|
+
/do:create-migration add-status-to-orders
|
|
61
|
+
# For general tasks (skill enforcement)
|
|
62
|
+
/do:use-skills create a webhook integration
|
|
63
|
+
/do:use-skills add authentication to the API
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## How It Works
|
|
67
|
+
|
|
68
|
+
1. **User invokes** `/do:create-entity products`
|
|
69
|
+
2. **Claude reads** the command file `do/create-entity.md`
|
|
70
|
+
3. **Command says** "MANDATORY: Read `.claude/skills/entity-system/SKILL.md`"
|
|
71
|
+
4. **Claude reads** the skill completely
|
|
72
|
+
5. **Claude executes** following the skill's patterns and checklists
|
|
73
|
+
|
|
74
|
+
## Adding New Commands
|
|
75
|
+
|
|
76
|
+
To add a new `do:` command:
|
|
77
|
+
|
|
78
|
+
1. Identify the skill(s) that cover the task
|
|
79
|
+
2. Create a minimal `.md` file in `/commands/do/`
|
|
80
|
+
3. Reference the skill with "MANDATORY: Read..."
|
|
81
|
+
4. Include quick reference section for common operations
|
|
82
|
+
5. Update this README
|
|
83
|
+
|
|
84
|
+
## Related
|
|
85
|
+
|
|
86
|
+
- `/commands/how-to/` - Detailed step-by-step procedures
|
|
87
|
+
- `/commands/session/` - Session workflow commands
|
|
88
|
+
- `/skills/` - Full skill documentation with scripts
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Create a new API endpoint"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# do:create-api
|
|
6
|
+
|
|
7
|
+
**Endpoint Description:** {{{ input }}}
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## MANDATORY: Read Skills First
|
|
12
|
+
|
|
13
|
+
Read these skills completely before proceeding:
|
|
14
|
+
|
|
15
|
+
1. `.claude/skills/nextjs-api-development/SKILL.md` - API patterns
|
|
16
|
+
2. `.claude/skills/entity-api/SKILL.md` - Entity-specific endpoints (if applicable)
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Available Scripts
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
ls .claude/skills/nextjs-api-development/scripts/
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Common scripts:
|
|
27
|
+
- `scaffold-endpoint.py` - Generate endpoint files
|
|
28
|
+
- `generate-crud-tests.py` - Generate Cypress tests
|
|
29
|
+
- `validate-api.py` - Validate API structure
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Key Patterns
|
|
34
|
+
|
|
35
|
+
From the skill, remember:
|
|
36
|
+
|
|
37
|
+
1. **Wrapper:** Use `withApiLogging`
|
|
38
|
+
2. **CORS:** Always use `addCorsHeaders(response)`
|
|
39
|
+
3. **Auth:** Use `authenticateRequest(req)` for dual auth
|
|
40
|
+
4. **Response:** Use `createApiResponse()` and `createApiError()`
|
|
41
|
+
5. **Validation:** Use Zod schemas
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Endpoint Location
|
|
46
|
+
|
|
47
|
+
- Custom endpoints: `app/api/v1/(contents)/{endpoint}/route.ts`
|
|
48
|
+
- Core endpoints: `app/api/v1/{endpoint}/route.ts`
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## After Creation
|
|
53
|
+
|
|
54
|
+
1. Add API scopes to `core/lib/api/keys.ts`
|
|
55
|
+
2. Generate tests:
|
|
56
|
+
```bash
|
|
57
|
+
python .claude/skills/nextjs-api-development/scripts/generate-crud-tests.py --entity {entity}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Verification
|
|
63
|
+
|
|
64
|
+
Use the checklist from `nextjs-api-development/SKILL.md` to verify compliance.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Create a new entity with all required files"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# do:create-entity
|
|
6
|
+
|
|
7
|
+
**Entity Name:** {{{ input }}}
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## MANDATORY: Read Skills First
|
|
12
|
+
|
|
13
|
+
Read these skills completely before proceeding:
|
|
14
|
+
|
|
15
|
+
1. `.claude/skills/entity-system/SKILL.md` - Entity configuration
|
|
16
|
+
2. `.claude/skills/database-migrations/SKILL.md` - Migration patterns
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Available Scripts
|
|
21
|
+
|
|
22
|
+
Check for automation scripts:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
ls .claude/skills/entity-system/scripts/
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Common scripts:
|
|
29
|
+
- `scaffold-entity.py` - Generate entity files
|
|
30
|
+
- `generate-migration.py` - Generate migration SQL
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Files to Create
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
contents/themes/{theme}/entities/{entity}/
|
|
38
|
+
├── {entity}.config.ts # Entity configuration
|
|
39
|
+
├── {entity}.fields.ts # Field definitions
|
|
40
|
+
├── {entity}.types.ts # TypeScript types
|
|
41
|
+
├── messages/
|
|
42
|
+
│ ├── en.json # English translations
|
|
43
|
+
│ └── es.json # Spanish translations
|
|
44
|
+
└── migrations/
|
|
45
|
+
└── XXX_{entity}_table.sql
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## After Creation
|
|
51
|
+
|
|
52
|
+
1. Run registry rebuild:
|
|
53
|
+
```bash
|
|
54
|
+
node core/scripts/build/registry.mjs
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
2. Run migrations:
|
|
58
|
+
```bash
|
|
59
|
+
pnpm db:migrate
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Verification
|
|
65
|
+
|
|
66
|
+
Use the checklist from `entity-system/SKILL.md` to verify compliance.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Create a new database migration"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# do:create-migration
|
|
6
|
+
|
|
7
|
+
**Migration Description:** {{{ input }}}
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## MANDATORY: Read Skill First
|
|
12
|
+
|
|
13
|
+
Read `.claude/skills/database-migrations/SKILL.md` completely before proceeding.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Available Scripts
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
ls .claude/skills/database-migrations/scripts/
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Common scripts:
|
|
24
|
+
- `validate-migration.py` - Validate migration conventions
|
|
25
|
+
- `generate-sample-data.py` - Generate sample data
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Key Conventions
|
|
30
|
+
|
|
31
|
+
From the skill, remember:
|
|
32
|
+
|
|
33
|
+
1. **IDs:** TEXT type, not UUID
|
|
34
|
+
2. **Timestamps:** TIMESTAMPTZ, not TIMESTAMP
|
|
35
|
+
3. **Field Order:** id → FK → business → system
|
|
36
|
+
4. **RLS:** Apply appropriate policy pattern
|
|
37
|
+
5. **Naming:** camelCase for tables and columns
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Migration Location
|
|
42
|
+
|
|
43
|
+
- Core migrations: `core/migrations/XXX_*.sql`
|
|
44
|
+
- Theme migrations: `contents/themes/{theme}/migrations/XXX_*.sql`
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## After Creation
|
|
49
|
+
|
|
50
|
+
1. Validate migration:
|
|
51
|
+
```bash
|
|
52
|
+
python .claude/skills/database-migrations/scripts/validate-migration.py --file <path>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
2. Run migration:
|
|
56
|
+
```bash
|
|
57
|
+
pnpm db:migrate
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Verification
|
|
63
|
+
|
|
64
|
+
Use the checklist from `database-migrations/SKILL.md` to verify compliance.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Create a new plugin"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# do:create-plugin
|
|
6
|
+
|
|
7
|
+
**Plugin Name:** {{{ input }}}
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## MANDATORY: Read Skills First
|
|
12
|
+
|
|
13
|
+
Read these skills completely before proceeding:
|
|
14
|
+
|
|
15
|
+
1. `.claude/skills/create-plugin/SKILL.md` - Plugin creation
|
|
16
|
+
2. `.claude/skills/plugins/SKILL.md` - Plugin system overview
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Plugin Scaffold Command
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
pnpm create:plugin {plugin-name} --complexity {simple|medium|complex}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Plugin Structure
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
contents/plugins/{plugin-name}/
|
|
32
|
+
├── plugin.config.ts # Plugin configuration
|
|
33
|
+
├── package.json # Plugin metadata
|
|
34
|
+
├── README.md # Documentation
|
|
35
|
+
├── lib/ # Plugin logic
|
|
36
|
+
├── components/ # UI components (if any)
|
|
37
|
+
├── entities/ # Entities (if any)
|
|
38
|
+
└── migrations/ # Migrations (if any)
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## After Creation
|
|
44
|
+
|
|
45
|
+
1. Register plugin in test theme
|
|
46
|
+
2. Rebuild registry:
|
|
47
|
+
```bash
|
|
48
|
+
node core/scripts/build/registry.mjs
|
|
49
|
+
```
|
|
50
|
+
3. Verify plugin appears in PLUGIN_REGISTRY
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Verification
|
|
55
|
+
|
|
56
|
+
Use the checklist from `create-plugin/SKILL.md` to verify compliance.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Create a new theme"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# do:create-theme
|
|
6
|
+
|
|
7
|
+
**Theme Name:** {{{ input }}}
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## MANDATORY: Read Skill First
|
|
12
|
+
|
|
13
|
+
Read `.claude/skills/create-theme/SKILL.md` completely before proceeding.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Theme Scaffold Command
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
pnpm create:theme {theme-name}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Theme Structure
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
contents/themes/{theme-name}/
|
|
29
|
+
├── theme.config.ts # Theme configuration
|
|
30
|
+
├── config/
|
|
31
|
+
│ ├── app.config.ts # Application config
|
|
32
|
+
│ ├── dashboard.config.ts
|
|
33
|
+
│ └── permissions.config.ts
|
|
34
|
+
├── components/ # Theme components
|
|
35
|
+
├── entities/ # Theme entities
|
|
36
|
+
├── styles/
|
|
37
|
+
│ └── globals.css # Theme styles
|
|
38
|
+
└── lib/ # Theme utilities
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Configuration Files
|
|
44
|
+
|
|
45
|
+
1. `theme.config.ts` - Theme metadata
|
|
46
|
+
2. `app.config.ts` - Team Mode, features
|
|
47
|
+
3. `dashboard.config.ts` - Dashboard layout
|
|
48
|
+
4. `permissions.config.ts` - Role permissions
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## After Creation
|
|
53
|
+
|
|
54
|
+
1. Rebuild registry:
|
|
55
|
+
```bash
|
|
56
|
+
node core/scripts/build/registry.mjs
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
2. Set as active theme in `.env`:
|
|
60
|
+
```
|
|
61
|
+
NEXT_PUBLIC_ACTIVE_THEME={theme-name}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
3. Verify theme appears in THEME_REGISTRY
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Verification
|
|
69
|
+
|
|
70
|
+
Use the checklist from `create-theme/SKILL.md` to verify compliance.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Generate sample/mock data for entities"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# do:mock-data
|
|
6
|
+
|
|
7
|
+
**Entity or Context:** {{{ input }}}
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## MANDATORY: Read Skill First
|
|
12
|
+
|
|
13
|
+
Read `.claude/skills/database-migrations/SKILL.md` completely before proceeding.
|
|
14
|
+
|
|
15
|
+
Pay special attention to the "Sample Data" section.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Available Scripts
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
ls .claude/skills/database-migrations/scripts/
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Use script:
|
|
26
|
+
```bash
|
|
27
|
+
python .claude/skills/database-migrations/scripts/generate-sample-data.py \
|
|
28
|
+
--entity {entity} \
|
|
29
|
+
--count 20
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Key Requirements
|
|
35
|
+
|
|
36
|
+
1. **Quantity:** 20+ records per entity
|
|
37
|
+
2. **Test Users:** Use standard password hash from skill
|
|
38
|
+
3. **Varied Data:** Cover different scenarios and edge cases
|
|
39
|
+
4. **ON CONFLICT:** Use upsert pattern for idempotency
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Test User Password Hash
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
3db9e98e2b4d3caca97fdf2783791cbc:34b293de615caf277a237773208858e960ea8aa10f1f5c5c309b632f192cac34d52ceafbd338385616f4929e4b1b6c055b67429c6722ffdb80b01d9bf4764866
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Password: `Cypress123!`
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## After Generation
|
|
54
|
+
|
|
55
|
+
Run sample data migration:
|
|
56
|
+
```bash
|
|
57
|
+
pnpm db:migrate
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Verification
|
|
63
|
+
|
|
64
|
+
- [ ] 20+ records created per entity
|
|
65
|
+
- [ ] Test users have correct password hash
|
|
66
|
+
- [ ] Uses ON CONFLICT clause
|
|
67
|
+
- [ ] Varied realistic data
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Reset database and run all migrations"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# do:reset-db
|
|
6
|
+
|
|
7
|
+
**Context:** {{{ input }}}
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## MANDATORY: Read Skill First
|
|
12
|
+
|
|
13
|
+
Read `.claude/skills/database-migrations/SKILL.md` for migration patterns.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Reset Commands
|
|
18
|
+
|
|
19
|
+
### Full Reset (Development Only)
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# Drop and recreate database
|
|
23
|
+
pnpm db:reset
|
|
24
|
+
|
|
25
|
+
# Or manually:
|
|
26
|
+
pnpm db:drop
|
|
27
|
+
pnpm db:create
|
|
28
|
+
pnpm db:migrate
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Migration Only (Safe)
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# Run pending migrations
|
|
35
|
+
pnpm db:migrate
|
|
36
|
+
|
|
37
|
+
# Check migration status
|
|
38
|
+
pnpm db:status
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Warning
|
|
44
|
+
|
|
45
|
+
**NEVER run `db:reset` on production databases.**
|
|
46
|
+
|
|
47
|
+
Only use reset in development environments.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## After Reset
|
|
52
|
+
|
|
53
|
+
1. Verify tables exist:
|
|
54
|
+
```bash
|
|
55
|
+
pnpm db:verify
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
2. Check sample data:
|
|
59
|
+
```bash
|
|
60
|
+
pnpm db:seed # If available
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Troubleshooting
|
|
66
|
+
|
|
67
|
+
| Issue | Solution |
|
|
68
|
+
|-------|----------|
|
|
69
|
+
| Connection refused | Check DATABASE_URL in .env |
|
|
70
|
+
| Permission denied | Check database user permissions |
|
|
71
|
+
| Migration failed | Check SQL syntax in migration files |
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Create a new scheduled action handler"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# do:setup-scheduled-action
|
|
6
|
+
|
|
7
|
+
**Action Description:** {{{ input }}}
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## MANDATORY: Read Skill First
|
|
12
|
+
|
|
13
|
+
Read `.claude/skills/scheduled-actions/SKILL.md` completely before proceeding.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Key Files
|
|
18
|
+
|
|
19
|
+
| File | Purpose |
|
|
20
|
+
|------|---------|
|
|
21
|
+
| `contents/themes/{theme}/lib/scheduled-actions/handlers/` | Handler implementations |
|
|
22
|
+
| `contents/themes/{theme}/lib/scheduled-actions/index.ts` | Handler registration |
|
|
23
|
+
| `contents/themes/{theme}/config/app.config.ts` | Configuration |
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Handler Template
|
|
28
|
+
|
|
29
|
+
```typescript
|
|
30
|
+
// handlers/{name}.ts
|
|
31
|
+
import { registerScheduledAction } from '@/core/lib/scheduled-actions'
|
|
32
|
+
|
|
33
|
+
export function registerMyHandler() {
|
|
34
|
+
registerScheduledAction('my-action:type', async (payload, action) => {
|
|
35
|
+
try {
|
|
36
|
+
// Implementation
|
|
37
|
+
return { success: true, message: 'Done' }
|
|
38
|
+
} catch (error) {
|
|
39
|
+
return { success: false, message: error.message }
|
|
40
|
+
}
|
|
41
|
+
})
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Registration
|
|
48
|
+
|
|
49
|
+
Add to `index.ts`:
|
|
50
|
+
|
|
51
|
+
```typescript
|
|
52
|
+
import { registerMyHandler } from './handlers/my-handler'
|
|
53
|
+
|
|
54
|
+
export function registerAllHandlers() {
|
|
55
|
+
// ... existing handlers
|
|
56
|
+
registerMyHandler() // Add here
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## After Creation
|
|
63
|
+
|
|
64
|
+
1. Rebuild registry:
|
|
65
|
+
```bash
|
|
66
|
+
node core/scripts/build/registry.mjs
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
2. Restart dev server to load handlers
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Verification
|
|
74
|
+
|
|
75
|
+
Use the checklist from `scheduled-actions/SKILL.md` to verify compliance.
|