@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,206 @@
|
|
|
1
|
+
# /session:db:sample
|
|
2
|
+
|
|
3
|
+
Generate coherent sample data for database entities.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Required Skills
|
|
8
|
+
|
|
9
|
+
**[MANDATORY]** Read before executing:
|
|
10
|
+
- `.claude/skills/database-migrations/SKILL.md` - Understand sample data patterns
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Syntax
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
/session:db:sample <entity-name> [--count <n>]
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Behavior
|
|
23
|
+
|
|
24
|
+
Creates realistic sample data that respects foreign keys and business rules.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Flow
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
32
|
+
│ /session:db:sample │
|
|
33
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
34
|
+
│ │
|
|
35
|
+
│ 1. Read entity schema │
|
|
36
|
+
│ - Fields and types │
|
|
37
|
+
│ - Foreign key relationships │
|
|
38
|
+
│ ↓ │
|
|
39
|
+
│ 2. Analyze existing data │
|
|
40
|
+
│ - Reference tables for FKs │
|
|
41
|
+
│ - Available team/user IDs │
|
|
42
|
+
│ ↓ │
|
|
43
|
+
│ 3. Generate sample data │
|
|
44
|
+
│ - Realistic names/values │
|
|
45
|
+
│ - Valid FK references │
|
|
46
|
+
│ - Varied data distribution │
|
|
47
|
+
│ ↓ │
|
|
48
|
+
│ 4. Create SQL insert statements │
|
|
49
|
+
│ ↓ │
|
|
50
|
+
│ 5. Add to migration or seed file │
|
|
51
|
+
│ │
|
|
52
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Example Output
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
🌱 GENERATE SAMPLE DATA
|
|
61
|
+
|
|
62
|
+
Entity: products
|
|
63
|
+
Count: 20 records
|
|
64
|
+
|
|
65
|
+
─────────────────────────────────────────
|
|
66
|
+
|
|
67
|
+
🔍 ANALYZING SCHEMA
|
|
68
|
+
|
|
69
|
+
Fields:
|
|
70
|
+
├─ name: VARCHAR(255) NOT NULL
|
|
71
|
+
├─ description: TEXT
|
|
72
|
+
├─ price: DECIMAL(10,2) NOT NULL
|
|
73
|
+
├─ categoryId: UUID FK → categories
|
|
74
|
+
├─ isActive: BOOLEAN
|
|
75
|
+
├─ teamId: UUID FK → teams
|
|
76
|
+
└─ createdById: UUID FK → user
|
|
77
|
+
|
|
78
|
+
Foreign Keys:
|
|
79
|
+
├─ categories: 5 existing records
|
|
80
|
+
├─ teams: 3 existing records
|
|
81
|
+
└─ user: 10 existing records
|
|
82
|
+
|
|
83
|
+
─────────────────────────────────────────
|
|
84
|
+
|
|
85
|
+
📝 GENERATED DATA
|
|
86
|
+
|
|
87
|
+
File: core/db/seeds/008_products_sample.sql
|
|
88
|
+
|
|
89
|
+
```sql
|
|
90
|
+
-- ============================================
|
|
91
|
+
-- Sample Data: products
|
|
92
|
+
-- Count: 20 records
|
|
93
|
+
-- Generated: 2026-01-11
|
|
94
|
+
-- ============================================
|
|
95
|
+
|
|
96
|
+
-- Using existing references
|
|
97
|
+
-- Teams: team_alpha, team_beta, team_gamma
|
|
98
|
+
-- Categories: Electronics, Clothing, Home, Sports, Books
|
|
99
|
+
|
|
100
|
+
INSERT INTO products (
|
|
101
|
+
id, name, description, price, categoryId,
|
|
102
|
+
isActive, teamId, createdById
|
|
103
|
+
) VALUES
|
|
104
|
+
-- Team Alpha products (Electronics focus)
|
|
105
|
+
(
|
|
106
|
+
'prod-001-uuid',
|
|
107
|
+
'Wireless Bluetooth Headphones',
|
|
108
|
+
'Premium noise-cancelling headphones with 30h battery',
|
|
109
|
+
149.99,
|
|
110
|
+
(SELECT id FROM categories WHERE name = 'Electronics'),
|
|
111
|
+
true,
|
|
112
|
+
(SELECT id FROM teams WHERE name = 'Team Alpha'),
|
|
113
|
+
(SELECT id FROM "user" WHERE email = 'admin@test.com')
|
|
114
|
+
),
|
|
115
|
+
(
|
|
116
|
+
'prod-002-uuid',
|
|
117
|
+
'Smart Watch Pro',
|
|
118
|
+
'Fitness tracker with heart rate monitor',
|
|
119
|
+
299.99,
|
|
120
|
+
(SELECT id FROM categories WHERE name = 'Electronics'),
|
|
121
|
+
true,
|
|
122
|
+
(SELECT id FROM teams WHERE name = 'Team Alpha'),
|
|
123
|
+
(SELECT id FROM "user" WHERE email = 'admin@test.com')
|
|
124
|
+
),
|
|
125
|
+
-- ... 18 more records with varied data
|
|
126
|
+
(
|
|
127
|
+
'prod-020-uuid',
|
|
128
|
+
'Yoga Mat Premium',
|
|
129
|
+
'Non-slip eco-friendly yoga mat',
|
|
130
|
+
45.00,
|
|
131
|
+
(SELECT id FROM categories WHERE name = 'Sports'),
|
|
132
|
+
true,
|
|
133
|
+
(SELECT id FROM teams WHERE name = 'Team Gamma'),
|
|
134
|
+
(SELECT id FROM "user" WHERE email = 'member@test.com')
|
|
135
|
+
);
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
─────────────────────────────────────────
|
|
139
|
+
|
|
140
|
+
📊 DATA DISTRIBUTION
|
|
141
|
+
|
|
142
|
+
By Team:
|
|
143
|
+
├─ Team Alpha: 8 products
|
|
144
|
+
├─ Team Beta: 7 products
|
|
145
|
+
└─ Team Gamma: 5 products
|
|
146
|
+
|
|
147
|
+
By Category:
|
|
148
|
+
├─ Electronics: 6 products
|
|
149
|
+
├─ Clothing: 4 products
|
|
150
|
+
├─ Home: 4 products
|
|
151
|
+
├─ Sports: 4 products
|
|
152
|
+
└─ Books: 2 products
|
|
153
|
+
|
|
154
|
+
Price Range: $15.00 - $499.99
|
|
155
|
+
Active: 18 | Inactive: 2
|
|
156
|
+
|
|
157
|
+
─────────────────────────────────────────
|
|
158
|
+
|
|
159
|
+
✓ Sample data created: 008_products_sample.sql
|
|
160
|
+
|
|
161
|
+
Run migration to insert data.
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## With Test Users
|
|
167
|
+
|
|
168
|
+
Generates data distributed across test users from devKeyring:
|
|
169
|
+
|
|
170
|
+
```
|
|
171
|
+
/session:db:sample products --with-devkeyring
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
```sql
|
|
175
|
+
-- Data for DevKeyring users
|
|
176
|
+
INSERT INTO products (teamId, createdById, ...)
|
|
177
|
+
VALUES
|
|
178
|
+
-- superadmin@test.com (sees all)
|
|
179
|
+
(..., (SELECT id FROM "user" WHERE email = 'superadmin@test.com')),
|
|
180
|
+
|
|
181
|
+
-- admin@test.com (Team Alpha)
|
|
182
|
+
(..., (SELECT id FROM "user" WHERE email = 'admin@test.com')),
|
|
183
|
+
|
|
184
|
+
-- member@test.com (Team Beta, limited role)
|
|
185
|
+
(..., (SELECT id FROM "user" WHERE email = 'member@test.com'));
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## Options
|
|
191
|
+
|
|
192
|
+
| Option | Description |
|
|
193
|
+
|--------|-------------|
|
|
194
|
+
| `--count <n>` | Number of records (default: 20) |
|
|
195
|
+
| `--with-devkeyring` | Use test users from devKeyring |
|
|
196
|
+
| `--append` | Add to existing seed file |
|
|
197
|
+
| `--dry-run` | Show SQL without creating |
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## Related Commands
|
|
202
|
+
|
|
203
|
+
| Command | Action |
|
|
204
|
+
|---------|--------|
|
|
205
|
+
| `/session:db:entity` | Create entity migration |
|
|
206
|
+
| `/session:db:fix` | Fix data issues |
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
# /session:demo
|
|
2
|
+
|
|
3
|
+
Run a live visual demo of the implemented feature.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Syntax
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
/session:demo [--record]
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Behavior
|
|
16
|
+
|
|
17
|
+
Opens a browser and demonstrates the implemented feature visually using Playwright.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Flow
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
25
|
+
│ /session:demo │
|
|
26
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
27
|
+
│ │
|
|
28
|
+
│ 1. Load session context │
|
|
29
|
+
│ - Read requirements.md (ACs) │
|
|
30
|
+
│ - Read plan.md (features) │
|
|
31
|
+
│ ↓ │
|
|
32
|
+
│ 2. Start dev server (if not running) │
|
|
33
|
+
│ ↓ │
|
|
34
|
+
│ 3. Launch browser with Playwright │
|
|
35
|
+
│ ↓ │
|
|
36
|
+
│ 4. Execute demo flow │
|
|
37
|
+
│ - Navigate to relevant pages │
|
|
38
|
+
│ - Demonstrate each AC │
|
|
39
|
+
│ - Explain what's happening │
|
|
40
|
+
│ ↓ │
|
|
41
|
+
│ 5. Generate demo summary │
|
|
42
|
+
│ │
|
|
43
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Example Output
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
🎬 SESSION DEMO
|
|
52
|
+
|
|
53
|
+
Session: stories/2026-01-11-new-products-entity
|
|
54
|
+
ACs to demonstrate: 5
|
|
55
|
+
|
|
56
|
+
─────────────────────────────────────────
|
|
57
|
+
|
|
58
|
+
🚀 STARTING DEMO
|
|
59
|
+
|
|
60
|
+
Starting dev server...
|
|
61
|
+
✓ Server running at http://localhost:3000
|
|
62
|
+
|
|
63
|
+
Launching browser...
|
|
64
|
+
✓ Browser ready
|
|
65
|
+
|
|
66
|
+
─────────────────────────────────────────
|
|
67
|
+
|
|
68
|
+
📋 DEMO: AC1 - Create Product
|
|
69
|
+
|
|
70
|
+
[Browser] Navigating to /dashboard/products
|
|
71
|
+
[Browser] Clicking "New Product" button
|
|
72
|
+
[Browser] Filling form:
|
|
73
|
+
- Name: "Demo Product"
|
|
74
|
+
- Price: 99.99
|
|
75
|
+
- Description: "Test product for demo"
|
|
76
|
+
[Browser] Clicking "Save"
|
|
77
|
+
|
|
78
|
+
✓ Product created successfully
|
|
79
|
+
|
|
80
|
+
─────────────────────────────────────────
|
|
81
|
+
|
|
82
|
+
📋 DEMO: AC2 - Upload Images
|
|
83
|
+
|
|
84
|
+
[Browser] Clicking "Add Images"
|
|
85
|
+
[Browser] Selecting test image
|
|
86
|
+
[Browser] Uploading...
|
|
87
|
+
|
|
88
|
+
✓ Image uploaded and displayed
|
|
89
|
+
|
|
90
|
+
─────────────────────────────────────────
|
|
91
|
+
|
|
92
|
+
📋 DEMO: AC3 - Assign Categories
|
|
93
|
+
|
|
94
|
+
[Browser] Opening category selector
|
|
95
|
+
[Browser] Selecting "Electronics"
|
|
96
|
+
[Browser] Saving changes
|
|
97
|
+
|
|
98
|
+
✓ Category assigned
|
|
99
|
+
|
|
100
|
+
─────────────────────────────────────────
|
|
101
|
+
|
|
102
|
+
📊 DEMO SUMMARY
|
|
103
|
+
|
|
104
|
+
ACs Demonstrated: 5/5
|
|
105
|
+
Issues Found: 0
|
|
106
|
+
Screenshots: 5 saved to _tmp/demo/
|
|
107
|
+
|
|
108
|
+
Demo complete!
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## With Recording
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
/session:demo --record
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Output:
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
🎬 SESSION DEMO (RECORDING)
|
|
123
|
+
|
|
124
|
+
Recording to: _tmp/demo/2026-01-11-products-demo.mp4
|
|
125
|
+
|
|
126
|
+
[Recording started]
|
|
127
|
+
...
|
|
128
|
+
[Recording stopped]
|
|
129
|
+
|
|
130
|
+
✓ Video saved: _tmp/demo/2026-01-11-products-demo.mp4
|
|
131
|
+
Duration: 2:34
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## Options
|
|
137
|
+
|
|
138
|
+
| Option | Description |
|
|
139
|
+
|--------|-------------|
|
|
140
|
+
| `--record` | Record demo as video |
|
|
141
|
+
| `--ac <number>` | Demo specific AC only |
|
|
142
|
+
| `--mobile` | Demo in mobile viewport |
|
|
143
|
+
| `--slow` | Slow down actions for visibility |
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Demo Configuration
|
|
148
|
+
|
|
149
|
+
In session's `demo.config.json`:
|
|
150
|
+
|
|
151
|
+
```json
|
|
152
|
+
{
|
|
153
|
+
"baseUrl": "http://localhost:3000",
|
|
154
|
+
"credentials": {
|
|
155
|
+
"email": "admin@test.com",
|
|
156
|
+
"password": "Test1234"
|
|
157
|
+
},
|
|
158
|
+
"flows": [
|
|
159
|
+
{
|
|
160
|
+
"ac": "AC1",
|
|
161
|
+
"steps": [
|
|
162
|
+
{ "action": "navigate", "path": "/dashboard/products" },
|
|
163
|
+
{ "action": "click", "selector": "[data-cy=new-product]" }
|
|
164
|
+
]
|
|
165
|
+
}
|
|
166
|
+
]
|
|
167
|
+
}
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Related Commands
|
|
173
|
+
|
|
174
|
+
| Command | Action |
|
|
175
|
+
|---------|--------|
|
|
176
|
+
| `/session:explain` | Explain code implementation |
|
|
177
|
+
| `/session:validate` | Validate before demo |
|
|
178
|
+
| `/session:close` | Close session |
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
# /session:doc:bdd
|
|
2
|
+
|
|
3
|
+
Generate BDD documentation (.bdd.md) from Cypress tests.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Required Skills
|
|
8
|
+
|
|
9
|
+
**[MANDATORY]** Read before executing:
|
|
10
|
+
- `.claude/skills/cypress-api/SKILL.md` - Understand API test structure
|
|
11
|
+
- `.claude/skills/cypress-e2e/SKILL.md` - Understand UAT test structure
|
|
12
|
+
- `.claude/skills/documentation/SKILL.md` - Documentation patterns
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Syntax
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
/session:doc:bdd [--spec <pattern>]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Behavior
|
|
25
|
+
|
|
26
|
+
Creates human-readable BDD documentation from existing Cypress test files.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Flow
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
34
|
+
│ /session:doc:bdd │
|
|
35
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
36
|
+
│ │
|
|
37
|
+
│ 1. Find Cypress test files │
|
|
38
|
+
│ ↓ │
|
|
39
|
+
│ 2. Parse test structure │
|
|
40
|
+
│ - describe blocks │
|
|
41
|
+
│ - it statements │
|
|
42
|
+
│ - grep tags │
|
|
43
|
+
│ ↓ │
|
|
44
|
+
│ 3. Generate Gherkin scenarios │
|
|
45
|
+
│ - Feature description │
|
|
46
|
+
│ - Scenarios from tests │
|
|
47
|
+
│ - Multi-locale support │
|
|
48
|
+
│ ↓ │
|
|
49
|
+
│ 4. Create .bdd.md files │
|
|
50
|
+
│ ↓ │
|
|
51
|
+
│ 5. Update test registry │
|
|
52
|
+
│ │
|
|
53
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Example Output
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
📝 GENERATE BDD DOCUMENTATION
|
|
62
|
+
|
|
63
|
+
Session: stories/2026-01-11-new-products-entity
|
|
64
|
+
|
|
65
|
+
─────────────────────────────────────────
|
|
66
|
+
|
|
67
|
+
🔍 FINDING TEST FILES
|
|
68
|
+
|
|
69
|
+
Spec pattern: cypress/e2e/**/*products*.cy.ts
|
|
70
|
+
|
|
71
|
+
Found:
|
|
72
|
+
├─ cypress/e2e/api/products.cy.ts (12 tests)
|
|
73
|
+
└─ cypress/e2e/uat/products.cy.ts (8 tests)
|
|
74
|
+
|
|
75
|
+
─────────────────────────────────────────
|
|
76
|
+
|
|
77
|
+
📝 PARSING: products.cy.ts (API)
|
|
78
|
+
|
|
79
|
+
Extracting structure...
|
|
80
|
+
├─ describe: "@api @products Products API"
|
|
81
|
+
│ ├─ describe: "@crud CRUD Operations"
|
|
82
|
+
│ │ ├─ it: "@create should create a product"
|
|
83
|
+
│ │ ├─ it: "@read should get product by ID"
|
|
84
|
+
│ │ └─ ...
|
|
85
|
+
│ └─ describe: "@auth Authentication"
|
|
86
|
+
│ └─ ...
|
|
87
|
+
|
|
88
|
+
─────────────────────────────────────────
|
|
89
|
+
|
|
90
|
+
📝 GENERATING BDD
|
|
91
|
+
|
|
92
|
+
File: cypress/e2e/api/products.bdd.md
|
|
93
|
+
|
|
94
|
+
```markdown
|
|
95
|
+
# Products API
|
|
96
|
+
|
|
97
|
+
**File:** `cypress/e2e/api/products.cy.ts`
|
|
98
|
+
**Tags:** `@api` `@products`
|
|
99
|
+
|
|
100
|
+
## Feature: Products CRUD Operations
|
|
101
|
+
|
|
102
|
+
As an API consumer
|
|
103
|
+
I want to manage products via REST API
|
|
104
|
+
So that I can integrate product management into my application
|
|
105
|
+
|
|
106
|
+
### Scenario: Create a new product
|
|
107
|
+
**Tags:** `@api` `@crud` `@create`
|
|
108
|
+
|
|
109
|
+
```gherkin
|
|
110
|
+
Given I am authenticated with a valid API key
|
|
111
|
+
When I POST to /api/v1/products with valid data
|
|
112
|
+
| name | Test Product |
|
|
113
|
+
| price | 99.99 |
|
|
114
|
+
| categoryId | {category} |
|
|
115
|
+
Then the response status should be 201
|
|
116
|
+
And the response should contain the created product
|
|
117
|
+
And the product should have a generated UUID
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Scenario: Get product by ID
|
|
121
|
+
**Tags:** `@api` `@crud` `@read`
|
|
122
|
+
|
|
123
|
+
```gherkin
|
|
124
|
+
Given a product exists with ID {productId}
|
|
125
|
+
When I GET /api/v1/products/{productId}
|
|
126
|
+
Then the response status should be 200
|
|
127
|
+
And the response should contain the product details
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Scenario: Reject unauthenticated request
|
|
131
|
+
**Tags:** `@api` `@auth` `@unauthorized`
|
|
132
|
+
|
|
133
|
+
```gherkin
|
|
134
|
+
Given I am not authenticated
|
|
135
|
+
When I POST to /api/v1/products
|
|
136
|
+
Then the response status should be 401
|
|
137
|
+
And the response should contain "Unauthorized"
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## Multi-Locale Support (en, es)
|
|
143
|
+
|
|
144
|
+
### Scenario: Create a new product
|
|
145
|
+
|
|
146
|
+
**English:**
|
|
147
|
+
```gherkin
|
|
148
|
+
Given I am authenticated with a valid API key
|
|
149
|
+
When I POST to /api/v1/products with valid data
|
|
150
|
+
Then the response status should be 201
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
**Español:**
|
|
154
|
+
```gherkin
|
|
155
|
+
Dado que estoy autenticado con una API key válida
|
|
156
|
+
Cuando hago POST a /api/v1/products con datos válidos
|
|
157
|
+
Entonces el código de respuesta debe ser 201
|
|
158
|
+
```
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
─────────────────────────────────────────
|
|
162
|
+
|
|
163
|
+
📁 FILES CREATED
|
|
164
|
+
|
|
165
|
+
├─ cypress/e2e/api/products.bdd.md
|
|
166
|
+
└─ cypress/e2e/uat/products.bdd.md
|
|
167
|
+
|
|
168
|
+
─────────────────────────────────────────
|
|
169
|
+
|
|
170
|
+
📊 SUMMARY
|
|
171
|
+
|
|
172
|
+
Tests documented: 20
|
|
173
|
+
Scenarios generated: 20
|
|
174
|
+
Locales: 2 (en, es)
|
|
175
|
+
|
|
176
|
+
BDD documentation complete.
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## BDD Format
|
|
182
|
+
|
|
183
|
+
Each `.bdd.md` file includes:
|
|
184
|
+
|
|
185
|
+
1. **Feature header** - File reference and tags
|
|
186
|
+
2. **Feature description** - User story format
|
|
187
|
+
3. **Scenarios** - Gherkin format with tags
|
|
188
|
+
4. **Multi-locale** - Translations if configured
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## Options
|
|
193
|
+
|
|
194
|
+
| Option | Description |
|
|
195
|
+
|--------|-------------|
|
|
196
|
+
| `--spec <pattern>` | Specific test files |
|
|
197
|
+
| `--locale <code>` | Generate for specific locale |
|
|
198
|
+
| `--update` | Update existing BDD files |
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## Related Commands
|
|
203
|
+
|
|
204
|
+
| Command | Action |
|
|
205
|
+
|---------|--------|
|
|
206
|
+
| `/session:test:write` | Write Cypress tests |
|
|
207
|
+
| `/session:doc:feature` | Feature documentation |
|