@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,192 @@
|
|
|
1
|
+
# /session:block:update
|
|
2
|
+
|
|
3
|
+
Modify an existing page builder block.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Required Skills
|
|
8
|
+
|
|
9
|
+
**[MANDATORY]** Read before executing:
|
|
10
|
+
- `.claude/skills/page-builder-blocks/SKILL.md` - Block development patterns
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Syntax
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
/session:block:update <block-name> [--theme <name>]
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Behavior
|
|
23
|
+
|
|
24
|
+
Updates an existing block while maintaining backward compatibility.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Flow
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
32
|
+
│ /session:block:update │
|
|
33
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
34
|
+
│ │
|
|
35
|
+
│ 1. Locate block in theme │
|
|
36
|
+
│ ↓ │
|
|
37
|
+
│ 2. Read current structure │
|
|
38
|
+
│ - config.ts │
|
|
39
|
+
│ - schema.ts │
|
|
40
|
+
│ - fields.ts │
|
|
41
|
+
│ - component.tsx │
|
|
42
|
+
│ ↓ │
|
|
43
|
+
│ 3. Ask what to modify │
|
|
44
|
+
│ - Add field? │
|
|
45
|
+
│ - Modify field? │
|
|
46
|
+
│ - Update component? │
|
|
47
|
+
│ ↓ │
|
|
48
|
+
│ 4. Apply changes │
|
|
49
|
+
│ - Update schema │
|
|
50
|
+
│ - Update fields │
|
|
51
|
+
│ - Update component │
|
|
52
|
+
│ ↓ │
|
|
53
|
+
│ 5. Ensure backward compatibility │
|
|
54
|
+
│ - New fields have defaults │
|
|
55
|
+
│ - Existing data still works │
|
|
56
|
+
│ ↓ │
|
|
57
|
+
│ 6. Rebuild and validate │
|
|
58
|
+
│ │
|
|
59
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Example Output
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
🧱 UPDATE BLOCK
|
|
68
|
+
|
|
69
|
+
Block: hero-banner
|
|
70
|
+
Theme: default
|
|
71
|
+
Location: contents/themes/default/blocks/hero-banner/
|
|
72
|
+
|
|
73
|
+
─────────────────────────────────────────
|
|
74
|
+
|
|
75
|
+
📋 CURRENT STRUCTURE
|
|
76
|
+
|
|
77
|
+
Fields:
|
|
78
|
+
├─ title: string (required)
|
|
79
|
+
├─ subtitle: string (optional)
|
|
80
|
+
├─ backgroundImage: string (optional)
|
|
81
|
+
└─ cta: object (optional)
|
|
82
|
+
├─ label: string
|
|
83
|
+
└─ href: string
|
|
84
|
+
|
|
85
|
+
─────────────────────────────────────────
|
|
86
|
+
|
|
87
|
+
What would you like to modify?
|
|
88
|
+
[1] Add new field
|
|
89
|
+
[2] Modify existing field
|
|
90
|
+
[3] Remove field
|
|
91
|
+
[4] Update component logic
|
|
92
|
+
[5] Update styling
|
|
93
|
+
|
|
94
|
+
> 1
|
|
95
|
+
|
|
96
|
+
─────────────────────────────────────────
|
|
97
|
+
|
|
98
|
+
📝 ADD NEW FIELD
|
|
99
|
+
|
|
100
|
+
Field name?
|
|
101
|
+
> overlay
|
|
102
|
+
|
|
103
|
+
Field type?
|
|
104
|
+
[1] string
|
|
105
|
+
[2] number
|
|
106
|
+
[3] boolean
|
|
107
|
+
[4] select (enum)
|
|
108
|
+
[5] object
|
|
109
|
+
|
|
110
|
+
> 4
|
|
111
|
+
|
|
112
|
+
Select options?
|
|
113
|
+
> none, light, dark
|
|
114
|
+
|
|
115
|
+
Default value?
|
|
116
|
+
> none
|
|
117
|
+
|
|
118
|
+
─────────────────────────────────────────
|
|
119
|
+
|
|
120
|
+
🔧 APPLYING CHANGES
|
|
121
|
+
|
|
122
|
+
Updating schema.ts...
|
|
123
|
+
+ overlay: z.enum(['none', 'light', 'dark']).default('none'),
|
|
124
|
+
✓ Schema updated
|
|
125
|
+
|
|
126
|
+
Updating fields.ts...
|
|
127
|
+
+ {
|
|
128
|
+
+ name: 'overlay',
|
|
129
|
+
+ type: 'select',
|
|
130
|
+
+ label: 'Overlay',
|
|
131
|
+
+ options: [
|
|
132
|
+
+ { value: 'none', label: 'None' },
|
|
133
|
+
+ { value: 'light', label: 'Light' },
|
|
134
|
+
+ { value: 'dark', label: 'Dark' },
|
|
135
|
+
+ ],
|
|
136
|
+
+ }
|
|
137
|
+
✓ Fields updated
|
|
138
|
+
|
|
139
|
+
Updating component.tsx...
|
|
140
|
+
+ const overlayClass = overlay === 'none' ? '' :
|
|
141
|
+
+ overlay === 'light' ? 'bg-white/50' : 'bg-black/50';
|
|
142
|
+
✓ Component updated
|
|
143
|
+
|
|
144
|
+
─────────────────────────────────────────
|
|
145
|
+
|
|
146
|
+
🔄 REBUILDING REGISTRY
|
|
147
|
+
|
|
148
|
+
Running pnpm build:blocks...
|
|
149
|
+
✓ Registry updated
|
|
150
|
+
|
|
151
|
+
─────────────────────────────────────────
|
|
152
|
+
|
|
153
|
+
✅ BACKWARD COMPATIBILITY CHECK
|
|
154
|
+
|
|
155
|
+
- [x] New field has default value
|
|
156
|
+
- [x] Existing pages will render correctly
|
|
157
|
+
- [x] No breaking changes detected
|
|
158
|
+
|
|
159
|
+
─────────────────────────────────────────
|
|
160
|
+
|
|
161
|
+
✓ Block 'hero-banner' updated successfully
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## Backward Compatibility Rules
|
|
167
|
+
|
|
168
|
+
| Change Type | Requirement |
|
|
169
|
+
|-------------|-------------|
|
|
170
|
+
| Add field | Must have default value |
|
|
171
|
+
| Modify field | Keep existing values valid |
|
|
172
|
+
| Remove field | Must be optional first |
|
|
173
|
+
| Rename field | Create alias, deprecate old |
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## Options
|
|
178
|
+
|
|
179
|
+
| Option | Description |
|
|
180
|
+
|--------|-------------|
|
|
181
|
+
| `--theme <name>` | Target theme |
|
|
182
|
+
| `--add-field <name>` | Directly add field |
|
|
183
|
+
| `--no-validate` | Skip validation |
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## Related Commands
|
|
188
|
+
|
|
189
|
+
| Command | Action |
|
|
190
|
+
|---------|--------|
|
|
191
|
+
| `/session:block:create` | Create new block |
|
|
192
|
+
| `/session:block:validate` | Validate structure |
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
# /session:block:validate
|
|
2
|
+
|
|
3
|
+
Validate block structure and consistency.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Syntax
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
/session:block:validate [block-name] [--theme <name>]
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Behavior
|
|
16
|
+
|
|
17
|
+
Validates that blocks follow project conventions and have consistent structure.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Flow
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
25
|
+
│ /session:block:validate │
|
|
26
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
27
|
+
│ │
|
|
28
|
+
│ 1. Locate block(s) to validate │
|
|
29
|
+
│ ↓ │
|
|
30
|
+
│ 2. Check file structure │
|
|
31
|
+
│ - All 5 files present? │
|
|
32
|
+
│ ↓ │
|
|
33
|
+
│ 3. Validate schema │
|
|
34
|
+
│ - Extends baseBlockSchema? │
|
|
35
|
+
│ - Valid Zod types? │
|
|
36
|
+
│ ↓ │
|
|
37
|
+
│ 4. Validate fields │
|
|
38
|
+
│ - Match schema? │
|
|
39
|
+
│ - Valid field types? │
|
|
40
|
+
│ ↓ │
|
|
41
|
+
│ 5. Validate component │
|
|
42
|
+
│ - Uses props correctly? │
|
|
43
|
+
│ - Has data-cy attributes? │
|
|
44
|
+
│ ↓ │
|
|
45
|
+
│ 6. Report results │
|
|
46
|
+
│ │
|
|
47
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Example: Validate Single Block
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
/session:block:validate hero-banner
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Output:
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
✅ BLOCK VALIDATION: hero-banner
|
|
62
|
+
|
|
63
|
+
Theme: default
|
|
64
|
+
|
|
65
|
+
─────────────────────────────────────────
|
|
66
|
+
|
|
67
|
+
📁 FILE STRUCTURE
|
|
68
|
+
|
|
69
|
+
- [x] config.ts exists
|
|
70
|
+
- [x] schema.ts exists
|
|
71
|
+
- [x] fields.ts exists
|
|
72
|
+
- [x] component.tsx exists
|
|
73
|
+
- [x] index.ts exists
|
|
74
|
+
|
|
75
|
+
─────────────────────────────────────────
|
|
76
|
+
|
|
77
|
+
📐 SCHEMA VALIDATION
|
|
78
|
+
|
|
79
|
+
- [x] Extends baseBlockSchema
|
|
80
|
+
- [x] All fields have valid Zod types
|
|
81
|
+
- [x] Required fields have no default OR are truly required
|
|
82
|
+
- [x] Optional fields marked correctly
|
|
83
|
+
|
|
84
|
+
─────────────────────────────────────────
|
|
85
|
+
|
|
86
|
+
📋 FIELDS VALIDATION
|
|
87
|
+
|
|
88
|
+
- [x] All schema fields have field definitions
|
|
89
|
+
- [x] Field types match schema types
|
|
90
|
+
- [x] Labels defined for all fields
|
|
91
|
+
|
|
92
|
+
─────────────────────────────────────────
|
|
93
|
+
|
|
94
|
+
🎨 COMPONENT VALIDATION
|
|
95
|
+
|
|
96
|
+
- [x] Default export present
|
|
97
|
+
- [x] Props destructured from schema type
|
|
98
|
+
- [x] data-cy attribute on root element
|
|
99
|
+
- [x] Handles optional fields gracefully
|
|
100
|
+
|
|
101
|
+
─────────────────────────────────────────
|
|
102
|
+
|
|
103
|
+
📊 RESULT
|
|
104
|
+
|
|
105
|
+
Status: VALID
|
|
106
|
+
Issues: 0
|
|
107
|
+
Warnings: 0
|
|
108
|
+
|
|
109
|
+
✓ Block 'hero-banner' is valid
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## Example: Validate All Blocks
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
/session:block:validate
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Output:
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
✅ BLOCK VALIDATION: All Blocks
|
|
124
|
+
|
|
125
|
+
Theme: default
|
|
126
|
+
Blocks found: 10
|
|
127
|
+
|
|
128
|
+
─────────────────────────────────────────
|
|
129
|
+
|
|
130
|
+
## Results
|
|
131
|
+
|
|
132
|
+
| Block | Files | Schema | Fields | Component | Status |
|
|
133
|
+
|-------|-------|--------|--------|-----------|--------|
|
|
134
|
+
| hero | ✓ | ✓ | ✓ | ✓ | VALID |
|
|
135
|
+
| hero-banner | ✓ | ✓ | ✓ | ✓ | VALID |
|
|
136
|
+
| hero-video | ✓ | ⚠ | ✓ | ✓ | WARNING |
|
|
137
|
+
| text-block | ✓ | ✓ | ✓ | ✓ | VALID |
|
|
138
|
+
| features-grid | ✓ | ✓ | ✓ | ❌ | INVALID |
|
|
139
|
+
| testimonials | ✓ | ✓ | ✓ | ✓ | VALID |
|
|
140
|
+
| faq | ✓ | ✓ | ✓ | ✓ | VALID |
|
|
141
|
+
| pricing | ✓ | ✓ | ✓ | ✓ | VALID |
|
|
142
|
+
| cta-section | ✓ | ✓ | ✓ | ✓ | VALID |
|
|
143
|
+
| newsletter | ✓ | ✓ | ✓ | ✓ | VALID |
|
|
144
|
+
|
|
145
|
+
─────────────────────────────────────────
|
|
146
|
+
|
|
147
|
+
## Issues
|
|
148
|
+
|
|
149
|
+
### features-grid (INVALID)
|
|
150
|
+
|
|
151
|
+
❌ Component: Missing data-cy attribute on root element
|
|
152
|
+
|
|
153
|
+
Location: component.tsx:15
|
|
154
|
+
Current:
|
|
155
|
+
```tsx
|
|
156
|
+
<div className="features-grid">
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
Expected:
|
|
160
|
+
```tsx
|
|
161
|
+
<div className="features-grid" data-cy="block-features-grid">
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
─────────────────────────────────────────
|
|
165
|
+
|
|
166
|
+
## Warnings
|
|
167
|
+
|
|
168
|
+
### hero-video (WARNING)
|
|
169
|
+
|
|
170
|
+
⚠ Schema: Field 'autoplay' is boolean but defaults to undefined
|
|
171
|
+
|
|
172
|
+
Suggestion: Add explicit default value:
|
|
173
|
+
```typescript
|
|
174
|
+
autoplay: z.boolean().default(false)
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
─────────────────────────────────────────
|
|
178
|
+
|
|
179
|
+
📊 SUMMARY
|
|
180
|
+
|
|
181
|
+
Valid: 8
|
|
182
|
+
Warnings: 1
|
|
183
|
+
Invalid: 1
|
|
184
|
+
|
|
185
|
+
Run '/session:block:update features-grid' to fix issues.
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## Validation Rules
|
|
191
|
+
|
|
192
|
+
| Check | Severity | Description |
|
|
193
|
+
|-------|----------|-------------|
|
|
194
|
+
| Missing file | Error | All 5 files required |
|
|
195
|
+
| No baseBlockSchema | Error | Must extend base |
|
|
196
|
+
| Missing data-cy | Error | Required for testing |
|
|
197
|
+
| Missing field definition | Warning | Should match schema |
|
|
198
|
+
| No default for optional | Warning | Recommended |
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## Options
|
|
203
|
+
|
|
204
|
+
| Option | Description |
|
|
205
|
+
|--------|-------------|
|
|
206
|
+
| `--theme <name>` | Validate in specific theme |
|
|
207
|
+
| `--fix` | Attempt to auto-fix issues |
|
|
208
|
+
| `--strict` | Treat warnings as errors |
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## Related Commands
|
|
213
|
+
|
|
214
|
+
| Command | Action |
|
|
215
|
+
|---------|--------|
|
|
216
|
+
| `/session:block:create` | Create new block |
|
|
217
|
+
| `/session:block:update` | Fix invalid blocks |
|
|
218
|
+
| `/session:block:list` | List all blocks |
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# /session:changelog
|
|
2
|
+
|
|
3
|
+
Generate a simple, complete changelog for the current feature branch.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Syntax
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
/session:changelog
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Behavior
|
|
16
|
+
|
|
17
|
+
Generate a changelog summarizing everything done in the current feature branch. The audience is the development team — keep it concise, concrete, and complete.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Steps
|
|
22
|
+
|
|
23
|
+
### 1. Gather context
|
|
24
|
+
|
|
25
|
+
Run these commands to understand the full scope:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
# Get the base branch
|
|
29
|
+
BASE=$(git merge-base origin/main HEAD 2>/dev/null || git merge-base origin/master HEAD 2>/dev/null)
|
|
30
|
+
|
|
31
|
+
# All commits (excluding version bumps)
|
|
32
|
+
git log --oneline --reverse $BASE..HEAD | grep -v "^.* chore: bump"
|
|
33
|
+
|
|
34
|
+
# Overall stats
|
|
35
|
+
git diff --stat $BASE..HEAD | tail -3
|
|
36
|
+
|
|
37
|
+
# Check for an existing PR
|
|
38
|
+
gh pr list --head $(git branch --show-current) --json number,title,url --jq '.[0]'
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
If a PR exists, also read its body for additional context:
|
|
42
|
+
```bash
|
|
43
|
+
gh pr view <number> --json body --jq '.body'
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### 2. Generate changelog
|
|
47
|
+
|
|
48
|
+
Write the changelog using this exact format:
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
## Changelog `<version>`
|
|
52
|
+
|
|
53
|
+
- **Feature/change title**: one-line description of what it does and why it matters
|
|
54
|
+
- **Feature/change title**: one-line description
|
|
55
|
+
- ...repeat for every meaningful change
|
|
56
|
+
|
|
57
|
+
**Migration notes for existing projects:**
|
|
58
|
+
- Step-by-step instructions for any manual changes needed
|
|
59
|
+
- Config additions, dependency updates, etc.
|
|
60
|
+
- Only include this section if there ARE breaking/manual changes
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### 3. Format rules
|
|
64
|
+
|
|
65
|
+
- **One bullet per logical change** — group related commits into a single bullet
|
|
66
|
+
- **Skip version bump commits** — they are noise
|
|
67
|
+
- **Bold the title** of each bullet, plain text for the description
|
|
68
|
+
- **Use present tense** — "adds", "fixes", "removes" (not "added", "fixed")
|
|
69
|
+
- **Be specific** — name the files, commands, or packages involved
|
|
70
|
+
- **No emojis**
|
|
71
|
+
- **No sub-bullets** inside changelog items (keep it flat)
|
|
72
|
+
- **Version number** comes from the latest package version on the branch
|
|
73
|
+
- **Migration notes** section only appears if existing consumer projects need manual changes (config additions, dependency changes, breaking API changes, etc.)
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Example Output
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
## Changelog `0.1.0-beta.92`
|
|
81
|
+
|
|
82
|
+
- **New `@nextsparkjs/ai-workflow` package**: agents, commands, skills and workflows now distributed as a standalone npm package
|
|
83
|
+
- **Auto-sync for `.claude/`**: running `pnpm update` automatically syncs AI workflow files, same pattern as core does with `/app`
|
|
84
|
+
- **New `nextspark sync:ai` command**: manual sync with `--editor` and `--force` options
|
|
85
|
+
- **Core template cleanup**: legacy AI workflow files removed from `@nextsparkjs/core`, presets consolidated into `templates/`
|
|
86
|
+
- **Fix postinstall for pnpm v10 workspaces**: postinstall scripts for core and ai-workflow now work correctly in consumer projects with pnpm workspaces (web-only and web-mobile)
|
|
87
|
+
|
|
88
|
+
**Migration notes for existing projects:**
|
|
89
|
+
- Add to your root `package.json`:
|
|
90
|
+
```json
|
|
91
|
+
"pnpm": {
|
|
92
|
+
"onlyBuiltDependencies": ["@nextsparkjs/core", "@nextsparkjs/ai-workflow"]
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
- Install the new package: `pnpm add -D -w @nextsparkjs/ai-workflow@latest`
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Anti-patterns
|
|
101
|
+
|
|
102
|
+
- DO NOT list every commit individually
|
|
103
|
+
- DO NOT include "bumped to version X" bullets
|
|
104
|
+
- DO NOT write paragraphs — one line per bullet
|
|
105
|
+
- DO NOT include implementation details (file paths, function names) unless they are user-facing (CLI commands, config keys)
|
|
106
|
+
- DO NOT skip changes — every non-bump commit should be represented in at least one bullet
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Related Commands
|
|
111
|
+
|
|
112
|
+
| Command | Action |
|
|
113
|
+
|---------|--------|
|
|
114
|
+
| `/session:review` | Code review before changelog |
|
|
115
|
+
| `/session:close` | Close session after changelog |
|