@nextsparkjs/ai-workflow 0.1.0-beta.86
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +86 -0
- package/claude/_docs/workflows-optimizations.md +359 -0
- package/claude/agents/api-tester.md +636 -0
- package/claude/agents/architecture-supervisor.md +1381 -0
- package/claude/agents/backend-developer.md +1021 -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 +1460 -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 +1291 -0
- package/claude/agents/frontend-developer.md +1259 -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 +971 -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 +373 -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 +681 -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 +512 -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 +455 -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/close.md +146 -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 +476 -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 +54 -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 +49 -0
- package/claude/config/workspace.schema.json +64 -0
- package/claude/scripts/.gitkeep +0 -0
- package/claude/sessions/.gitkeep +0 -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/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 +483 -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 +677 -0
- package/claude/skills/registry-system/SKILL.md +331 -0
- package/claude/skills/scheduled-actions/SKILL.md +431 -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 +479 -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 +34 -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,146 @@
|
|
|
1
|
+
# /session:close
|
|
2
|
+
|
|
3
|
+
Close the active session or a specific session.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Syntax
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
/session:close [session-path] [summary]
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Behavior
|
|
16
|
+
|
|
17
|
+
### Without path (active session)
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
/session:close
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Closes the current active session (if there is one).
|
|
24
|
+
|
|
25
|
+
### With path
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
/session:close stories/2026-01-11-new-entity "Feature completed"
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Closes the specified session.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Flow
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
39
|
+
│ /session:close │
|
|
40
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
41
|
+
│ │
|
|
42
|
+
│ 1. Verify ACs are met │
|
|
43
|
+
│ - Read requirements.md │
|
|
44
|
+
│ - Verify checklist in progress.md │
|
|
45
|
+
│ ↓ │
|
|
46
|
+
│ 2. All ACs completed? │
|
|
47
|
+
│ │ │
|
|
48
|
+
│ ├─► YES: Continue │
|
|
49
|
+
│ │ │
|
|
50
|
+
│ └─► NO: Warn │
|
|
51
|
+
│ "There are 2 pending ACs. Close anyway?" │
|
|
52
|
+
│ ↓ │
|
|
53
|
+
│ 3. Execute session-close.sh │
|
|
54
|
+
│ ↓ │
|
|
55
|
+
│ 4. Archive? │
|
|
56
|
+
│ [Yes, archive] [No, keep] │
|
|
57
|
+
│ ↓ │
|
|
58
|
+
│ 5. Update task manager (if enabled) │
|
|
59
|
+
│ - Post final comment │
|
|
60
|
+
│ - Change status to "done" │
|
|
61
|
+
│ ↓ │
|
|
62
|
+
│ 6. Show summary │
|
|
63
|
+
│ │
|
|
64
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Example Output
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
📋 CLOSING SESSION
|
|
73
|
+
|
|
74
|
+
Session: stories/2026-01-11-new-products-entity
|
|
75
|
+
Type: Story (STORY)
|
|
76
|
+
Iterations: 2
|
|
77
|
+
|
|
78
|
+
─────────────────────────────────────────
|
|
79
|
+
|
|
80
|
+
✅ AC VERIFICATION
|
|
81
|
+
|
|
82
|
+
AC1: Create products migration ✓
|
|
83
|
+
AC2: Implement CRUD API ✓
|
|
84
|
+
AC3: Create management UI ✓
|
|
85
|
+
AC4: Automated tests ✓
|
|
86
|
+
|
|
87
|
+
All ACs completed: 4/4
|
|
88
|
+
|
|
89
|
+
─────────────────────────────────────────
|
|
90
|
+
|
|
91
|
+
📊 SUMMARY
|
|
92
|
+
|
|
93
|
+
- Total duration: 5 days
|
|
94
|
+
- Iterations: 2
|
|
95
|
+
- Files modified: 23
|
|
96
|
+
- Tests created: 12
|
|
97
|
+
|
|
98
|
+
─────────────────────────────────────────
|
|
99
|
+
|
|
100
|
+
✓ Session closed
|
|
101
|
+
|
|
102
|
+
Archive session? [Yes/No]
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## With Pending ACs
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
⚠️ WARNING
|
|
111
|
+
|
|
112
|
+
There are pending ACs:
|
|
113
|
+
- [ ] AC4: Automated tests
|
|
114
|
+
|
|
115
|
+
Options:
|
|
116
|
+
[1] Close anyway (document pending items)
|
|
117
|
+
[2] Cancel and continue working
|
|
118
|
+
[3] Move pending to new iteration
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Task Manager Integration
|
|
124
|
+
|
|
125
|
+
If `taskManager.enabled`:
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
📋 TASK UPDATE
|
|
129
|
+
|
|
130
|
+
ClickUp: #abc123
|
|
131
|
+
|
|
132
|
+
Posting final comment...
|
|
133
|
+
✓ Comment posted
|
|
134
|
+
|
|
135
|
+
Updating status to "done"...
|
|
136
|
+
✓ Status updated
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## Related Commands
|
|
142
|
+
|
|
143
|
+
| Command | Action |
|
|
144
|
+
|---------|--------|
|
|
145
|
+
| `/session:status` | View status before closing |
|
|
146
|
+
| `/session:pending` | Document pending items |
|