@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,639 @@
|
|
|
1
|
+
# /how-to:use-devtools
|
|
2
|
+
|
|
3
|
+
Interactive guide to using the Devtools Dashboard for development and debugging in NextSpark.
|
|
4
|
+
|
|
5
|
+
**Aliases:** `/how-to:devtools`, `/how-to:developer-tools`
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Required Skills
|
|
10
|
+
|
|
11
|
+
Before executing, these skills provide deeper context:
|
|
12
|
+
- `.claude/skills/test-coverage/SKILL.md` - FEATURE_REGISTRY and coverage metrics
|
|
13
|
+
- `.claude/skills/page-builder-blocks/SKILL.md` - Block structure and patterns
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Syntax
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
/how-to:use-devtools
|
|
21
|
+
/how-to:use-devtools --section blocks
|
|
22
|
+
/how-to:use-devtools --api-explorer
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Behavior
|
|
28
|
+
|
|
29
|
+
Guides the user through the Devtools Dashboard: block explorer, API explorer, test coverage, and configuration viewer.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Tutorial Structure
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
STEPS OVERVIEW (5 steps)
|
|
37
|
+
|
|
38
|
+
Step 1: Accessing Devtools
|
|
39
|
+
└── Requirements and navigation
|
|
40
|
+
|
|
41
|
+
Step 2: Block Explorer
|
|
42
|
+
└── Browse and inspect blocks
|
|
43
|
+
|
|
44
|
+
Step 3: API Explorer
|
|
45
|
+
└── Test endpoints interactively
|
|
46
|
+
|
|
47
|
+
Step 4: Test Coverage Dashboard
|
|
48
|
+
└── Features, flows, and tags
|
|
49
|
+
|
|
50
|
+
Step 5: Configuration Viewer
|
|
51
|
+
└── Inspect app configuration
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Step 1: Accessing Devtools
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
60
|
+
📚 HOW TO: USE DEVTOOLS
|
|
61
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
62
|
+
|
|
63
|
+
STEP 1 OF 5: Accessing Devtools
|
|
64
|
+
|
|
65
|
+
The Devtools Dashboard provides developer tools
|
|
66
|
+
for debugging, testing, and exploring your app.
|
|
67
|
+
|
|
68
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
**📋 Access Requirements:**
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
┌─────────────────────────────────────────────┐
|
|
75
|
+
│ REQUIRED: superadmin OR developer role │
|
|
76
|
+
│ ───────────────────────────────────────── │
|
|
77
|
+
│ Access is controlled by user role. │
|
|
78
|
+
│ Developers can access without being │
|
|
79
|
+
│ superadmin. │
|
|
80
|
+
└─────────────────────────────────────────────┘
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**📋 How to Access:**
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
URL: /devtools
|
|
87
|
+
|
|
88
|
+
Navigation:
|
|
89
|
+
1. Log in as superadmin or developer
|
|
90
|
+
2. Click the devtools icon in sidebar
|
|
91
|
+
or navigate directly to /devtools
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**📋 Devtools Structure:**
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
/devtools/
|
|
98
|
+
├── page.tsx # Home page with overview
|
|
99
|
+
├── blocks/
|
|
100
|
+
│ └── page.tsx # Block explorer
|
|
101
|
+
├── api/
|
|
102
|
+
│ └── page.tsx # API explorer
|
|
103
|
+
├── tests/
|
|
104
|
+
│ └── page.tsx # Test cases viewer
|
|
105
|
+
├── config/
|
|
106
|
+
│ └── page.tsx # Configuration viewer
|
|
107
|
+
├── features/
|
|
108
|
+
│ └── page.tsx # Features viewer
|
|
109
|
+
├── flows/
|
|
110
|
+
│ └── page.tsx # Flows viewer
|
|
111
|
+
├── tags/
|
|
112
|
+
│ └── page.tsx # Tags overview
|
|
113
|
+
└── style/
|
|
114
|
+
└── page.tsx # Style gallery
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**📋 Available Tools:**
|
|
118
|
+
|
|
119
|
+
| Tool | Path | Description |
|
|
120
|
+
|------|------|-------------|
|
|
121
|
+
| Block Explorer | `/devtools/blocks` | Browse page builder blocks |
|
|
122
|
+
| API Explorer | `/devtools/api` | Test API endpoints |
|
|
123
|
+
| Test Coverage | `/devtools/tests` | View test coverage |
|
|
124
|
+
| Config Viewer | `/devtools/config` | Inspect configuration |
|
|
125
|
+
| Features | `/devtools/features` | Feature documentation |
|
|
126
|
+
| Flows | `/devtools/flows` | User flow diagrams |
|
|
127
|
+
| Tags | `/devtools/tags` | Tag/category overview |
|
|
128
|
+
| Style Gallery | `/devtools/style` | Component showcase |
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
132
|
+
|
|
133
|
+
What would you like to do?
|
|
134
|
+
|
|
135
|
+
[1] Continue to Step 2 (Block Explorer)
|
|
136
|
+
[2] I can't access devtools
|
|
137
|
+
[3] How do I make someone a developer?
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## Step 2: Block Explorer
|
|
143
|
+
|
|
144
|
+
```
|
|
145
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
146
|
+
STEP 2 OF 5: Block Explorer
|
|
147
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
148
|
+
|
|
149
|
+
Browse and inspect all page builder blocks
|
|
150
|
+
in your theme.
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
**📋 Block Explorer Features:**
|
|
154
|
+
|
|
155
|
+
```
|
|
156
|
+
┌─────────────────────────────────────────────┐
|
|
157
|
+
│ /devtools/blocks │
|
|
158
|
+
│ ───────────────────────────────────────── │
|
|
159
|
+
│ │
|
|
160
|
+
│ VIEW: │
|
|
161
|
+
│ • All registered blocks │
|
|
162
|
+
│ • Block metadata (name, category, icon) │
|
|
163
|
+
│ • Schema structure │
|
|
164
|
+
│ • Field definitions │
|
|
165
|
+
│ │
|
|
166
|
+
│ FILTERS: │
|
|
167
|
+
│ • Filter by category │
|
|
168
|
+
│ • Search by name │
|
|
169
|
+
│ │
|
|
170
|
+
│ ACTIONS: │
|
|
171
|
+
│ • View block details │
|
|
172
|
+
│ • Preview block rendering │
|
|
173
|
+
│ • View schema JSON │
|
|
174
|
+
│ • View fields configuration │
|
|
175
|
+
└─────────────────────────────────────────────┘
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
**📋 Block Detail View:**
|
|
179
|
+
|
|
180
|
+
```
|
|
181
|
+
/devtools/blocks/:blockName
|
|
182
|
+
|
|
183
|
+
Shows:
|
|
184
|
+
├── Configuration
|
|
185
|
+
│ ├── Name
|
|
186
|
+
│ ├── Display Name
|
|
187
|
+
│ ├── Description
|
|
188
|
+
│ ├── Category
|
|
189
|
+
│ ├── Icon
|
|
190
|
+
│ └── Variants
|
|
191
|
+
├── Schema
|
|
192
|
+
│ └── Zod schema structure
|
|
193
|
+
├── Fields
|
|
194
|
+
│ └── Form field definitions
|
|
195
|
+
└── Preview
|
|
196
|
+
└── Live block preview
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
**📋 Using Block Explorer:**
|
|
200
|
+
|
|
201
|
+
```typescript
|
|
202
|
+
// BlocksViewer component
|
|
203
|
+
import { BlocksViewer } from '@/core/components/devtools'
|
|
204
|
+
|
|
205
|
+
// Or BlockDetailViewer for single block
|
|
206
|
+
import { BlockDetailViewer } from '@/core/components/devtools'
|
|
207
|
+
|
|
208
|
+
<BlockDetailViewer blockName="hero-banner" />
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
**📋 Block Categories:**
|
|
212
|
+
|
|
213
|
+
| Category | Description |
|
|
214
|
+
|----------|-------------|
|
|
215
|
+
| hero | Large header sections |
|
|
216
|
+
| content | General content blocks |
|
|
217
|
+
| features | Feature showcases |
|
|
218
|
+
| cta | Call to action sections |
|
|
219
|
+
| footer | Footer components |
|
|
220
|
+
| gallery | Image galleries |
|
|
221
|
+
| testimonials | Reviews and testimonials |
|
|
222
|
+
| pricing | Pricing tables |
|
|
223
|
+
| faq | FAQ/Accordion sections |
|
|
224
|
+
|
|
225
|
+
```
|
|
226
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
227
|
+
|
|
228
|
+
What would you like to do?
|
|
229
|
+
|
|
230
|
+
[1] Continue to Step 3 (API Explorer)
|
|
231
|
+
[2] How do I create a new block?
|
|
232
|
+
[3] Can I preview with custom data?
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## Step 3: API Explorer
|
|
238
|
+
|
|
239
|
+
```
|
|
240
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
241
|
+
STEP 3 OF 5: API Explorer
|
|
242
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
243
|
+
|
|
244
|
+
Test API endpoints interactively, similar
|
|
245
|
+
to Postman but built into your app.
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
**📋 API Explorer Features:**
|
|
249
|
+
|
|
250
|
+
```
|
|
251
|
+
┌─────────────────────────────────────────────┐
|
|
252
|
+
│ /devtools/api │
|
|
253
|
+
│ ───────────────────────────────────────── │
|
|
254
|
+
│ │
|
|
255
|
+
│ CAPABILITIES: │
|
|
256
|
+
│ • Browse all API endpoints │
|
|
257
|
+
│ • Send test requests │
|
|
258
|
+
│ • View response data │
|
|
259
|
+
│ • Auto-authentication │
|
|
260
|
+
│ • Request history │
|
|
261
|
+
│ │
|
|
262
|
+
│ REQUEST BUILDER: │
|
|
263
|
+
│ • Method selection (GET, POST, etc.) │
|
|
264
|
+
│ • URL parameters │
|
|
265
|
+
│ • Request body (JSON) │
|
|
266
|
+
│ • Headers configuration │
|
|
267
|
+
│ │
|
|
268
|
+
│ RESPONSE VIEWER: │
|
|
269
|
+
│ • Status code │
|
|
270
|
+
│ • Response headers │
|
|
271
|
+
│ • Response body (formatted JSON) │
|
|
272
|
+
│ • Response time │
|
|
273
|
+
└─────────────────────────────────────────────┘
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
**📋 Endpoint Documentation:**
|
|
277
|
+
|
|
278
|
+
The API Explorer reads documentation from `docs.md` files:
|
|
279
|
+
|
|
280
|
+
```
|
|
281
|
+
app/api/v1/entities/
|
|
282
|
+
├── route.ts # API handler
|
|
283
|
+
└── docs.md # Endpoint documentation
|
|
284
|
+
|
|
285
|
+
// docs.md format
|
|
286
|
+
# Entity API
|
|
287
|
+
|
|
288
|
+
## GET /api/v1/entities/:entity
|
|
289
|
+
List all records for an entity.
|
|
290
|
+
|
|
291
|
+
### Parameters
|
|
292
|
+
- `entity` (path) - Entity slug
|
|
293
|
+
- `page` (query) - Page number
|
|
294
|
+
- `limit` (query) - Items per page
|
|
295
|
+
|
|
296
|
+
### Response
|
|
297
|
+
{ "success": true, "data": [...] }
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
**📋 ApiTester Component:**
|
|
301
|
+
|
|
302
|
+
```typescript
|
|
303
|
+
import { ApiTester } from '@/core/components/devtools'
|
|
304
|
+
|
|
305
|
+
// Interactive API testing UI
|
|
306
|
+
<ApiTester
|
|
307
|
+
defaultEndpoint="/api/v1/entities/tasks"
|
|
308
|
+
defaultMethod="GET"
|
|
309
|
+
/>
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
**📋 Authentication in API Explorer:**
|
|
313
|
+
|
|
314
|
+
```
|
|
315
|
+
┌─────────────────────────────────────────────┐
|
|
316
|
+
│ AUTO-AUTHENTICATION │
|
|
317
|
+
│ ───────────────────────────────────────── │
|
|
318
|
+
│ │
|
|
319
|
+
│ The API Explorer automatically uses your │
|
|
320
|
+
│ current session for authentication. │
|
|
321
|
+
│ │
|
|
322
|
+
│ For API key testing: │
|
|
323
|
+
│ 1. Click "Auth Settings" │
|
|
324
|
+
│ 2. Select "API Key" │
|
|
325
|
+
│ 3. Enter your API key │
|
|
326
|
+
│ 4. Requests include Authorization header │
|
|
327
|
+
└─────────────────────────────────────────────┘
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
```
|
|
331
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
332
|
+
|
|
333
|
+
What would you like to do?
|
|
334
|
+
|
|
335
|
+
[1] Continue to Step 4 (Test Coverage)
|
|
336
|
+
[2] How do I add documentation for my API?
|
|
337
|
+
[3] Can I export requests to curl?
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
---
|
|
341
|
+
|
|
342
|
+
## Step 4: Test Coverage Dashboard
|
|
343
|
+
|
|
344
|
+
```
|
|
345
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
346
|
+
STEP 4 OF 5: Test Coverage Dashboard
|
|
347
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
348
|
+
|
|
349
|
+
View test coverage metrics for features,
|
|
350
|
+
flows, and tags.
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
**📋 Test Coverage Features:**
|
|
354
|
+
|
|
355
|
+
```
|
|
356
|
+
┌─────────────────────────────────────────────┐
|
|
357
|
+
│ /devtools/tests │
|
|
358
|
+
│ ───────────────────────────────────────── │
|
|
359
|
+
│ │
|
|
360
|
+
│ METRICS: │
|
|
361
|
+
│ • Feature coverage percentage │
|
|
362
|
+
│ • Flow coverage percentage │
|
|
363
|
+
│ • Total tests count │
|
|
364
|
+
│ • Tests by tag │
|
|
365
|
+
│ │
|
|
366
|
+
│ VIEWS: │
|
|
367
|
+
│ • Features list with test status │
|
|
368
|
+
│ • Flows list with coverage │
|
|
369
|
+
│ • Tags hierarchy │
|
|
370
|
+
│ • Test files browser │
|
|
371
|
+
└─────────────────────────────────────────────┘
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
**📋 Coverage Summary:**
|
|
375
|
+
|
|
376
|
+
```typescript
|
|
377
|
+
// From COVERAGE_SUMMARY
|
|
378
|
+
{
|
|
379
|
+
theme: 'default',
|
|
380
|
+
generatedAt: '2024-12-18T10:30:00Z',
|
|
381
|
+
features: {
|
|
382
|
+
total: 15,
|
|
383
|
+
withTests: 12,
|
|
384
|
+
withoutTests: 3
|
|
385
|
+
},
|
|
386
|
+
flows: {
|
|
387
|
+
total: 5,
|
|
388
|
+
withTests: 3,
|
|
389
|
+
withoutTests: 2
|
|
390
|
+
},
|
|
391
|
+
tags: {
|
|
392
|
+
total: 97,
|
|
393
|
+
testFiles: 25
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
**📋 Features Viewer:**
|
|
399
|
+
|
|
400
|
+
```
|
|
401
|
+
/devtools/features
|
|
402
|
+
|
|
403
|
+
┌─────────────────────────────────────────────┐
|
|
404
|
+
│ FEATURE COVERAGE │
|
|
405
|
+
│ ───────────────────────────────────────── │
|
|
406
|
+
│ │
|
|
407
|
+
│ Feature Status Tests Tag │
|
|
408
|
+
│ ────────────── ────── ───── ──── │
|
|
409
|
+
│ authentication ✓ Tested 15 @feat-auth
|
|
410
|
+
│ teams-mgmt ✓ Tested 8 @feat-teams
|
|
411
|
+
│ billing ✗ No tests 0 @feat-billing
|
|
412
|
+
│ notifications ✗ No tests 0 @feat-notif
|
|
413
|
+
│ │
|
|
414
|
+
│ Coverage: 80% (12/15 features) │
|
|
415
|
+
└─────────────────────────────────────────────┘
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
**📋 Flows Viewer:**
|
|
419
|
+
|
|
420
|
+
```
|
|
421
|
+
/devtools/flows
|
|
422
|
+
|
|
423
|
+
┌─────────────────────────────────────────────┐
|
|
424
|
+
│ FLOW COVERAGE │
|
|
425
|
+
│ ───────────────────────────────────────── │
|
|
426
|
+
│ │
|
|
427
|
+
│ Flow Critical Tests Tag │
|
|
428
|
+
│ ────────────── ──────── ───── ──── │
|
|
429
|
+
│ user-onboarding ★ 5 @flow-onboarding
|
|
430
|
+
│ team-collab ★ 3 @flow-team
|
|
431
|
+
│ checkout ★ 0 @flow-checkout
|
|
432
|
+
│ │
|
|
433
|
+
│ Coverage: 60% (3/5 flows) │
|
|
434
|
+
│ Critical flows: 2/3 covered │
|
|
435
|
+
└─────────────────────────────────────────────┘
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
**📋 Tags Overview:**
|
|
439
|
+
|
|
440
|
+
```
|
|
441
|
+
/devtools/tags
|
|
442
|
+
|
|
443
|
+
Shows tag hierarchy:
|
|
444
|
+
├── features (@feat-*)
|
|
445
|
+
├── flows (@flow-*)
|
|
446
|
+
├── priorities (@smoke, @regression)
|
|
447
|
+
├── operations (@crud, @search)
|
|
448
|
+
├── areas (@area-devtools, @area-superadmin)
|
|
449
|
+
└── other (custom tags)
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
```
|
|
453
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
454
|
+
|
|
455
|
+
What would you like to do?
|
|
456
|
+
|
|
457
|
+
[1] Continue to Step 5 (Configuration Viewer)
|
|
458
|
+
[2] How do I increase my coverage?
|
|
459
|
+
[3] What do the tags mean?
|
|
460
|
+
```
|
|
461
|
+
|
|
462
|
+
---
|
|
463
|
+
|
|
464
|
+
## Step 5: Configuration Viewer
|
|
465
|
+
|
|
466
|
+
```
|
|
467
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
468
|
+
STEP 5 OF 5: Configuration Viewer
|
|
469
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
470
|
+
|
|
471
|
+
Inspect your application's configuration
|
|
472
|
+
in real-time.
|
|
473
|
+
```
|
|
474
|
+
|
|
475
|
+
**📋 Config Viewer Features:**
|
|
476
|
+
|
|
477
|
+
```
|
|
478
|
+
┌─────────────────────────────────────────────┐
|
|
479
|
+
│ /devtools/config │
|
|
480
|
+
│ ───────────────────────────────────────── │
|
|
481
|
+
│ │
|
|
482
|
+
│ SHOWS: │
|
|
483
|
+
│ • app.config.ts values │
|
|
484
|
+
│ • Environment variables (safe ones) │
|
|
485
|
+
│ • Feature flags │
|
|
486
|
+
│ • Entity configurations │
|
|
487
|
+
│ • Theme settings │
|
|
488
|
+
│ │
|
|
489
|
+
│ VIEWS: │
|
|
490
|
+
│ • Tree view (collapsible) │
|
|
491
|
+
│ • JSON view (raw) │
|
|
492
|
+
│ • Table view (key-value) │
|
|
493
|
+
└─────────────────────────────────────────────┘
|
|
494
|
+
```
|
|
495
|
+
|
|
496
|
+
**📋 ConfigViewer Component:**
|
|
497
|
+
|
|
498
|
+
```typescript
|
|
499
|
+
import { ConfigViewer } from '@/core/components/devtools'
|
|
500
|
+
|
|
501
|
+
<ConfigViewer
|
|
502
|
+
config={appConfig}
|
|
503
|
+
view="tree" // 'tree' | 'json' | 'table'
|
|
504
|
+
/>
|
|
505
|
+
```
|
|
506
|
+
|
|
507
|
+
**📋 Configuration Sections:**
|
|
508
|
+
|
|
509
|
+
| Section | Shows |
|
|
510
|
+
|---------|-------|
|
|
511
|
+
| App | App name, URL, environment |
|
|
512
|
+
| Auth | Auth providers, settings |
|
|
513
|
+
| Entities | Registered entities |
|
|
514
|
+
| Teams | Team mode, roles |
|
|
515
|
+
| Billing | Plans, features |
|
|
516
|
+
| Theme | Active theme, settings |
|
|
517
|
+
|
|
518
|
+
**📋 Security Note:**
|
|
519
|
+
|
|
520
|
+
```
|
|
521
|
+
┌─────────────────────────────────────────────┐
|
|
522
|
+
│ ⚠️ SECURITY │
|
|
523
|
+
│ ───────────────────────────────────────── │
|
|
524
|
+
│ │
|
|
525
|
+
│ The Config Viewer does NOT show: │
|
|
526
|
+
│ • API keys │
|
|
527
|
+
│ • Database credentials │
|
|
528
|
+
│ • Secret tokens │
|
|
529
|
+
│ • Sensitive environment variables │
|
|
530
|
+
│ │
|
|
531
|
+
│ Only safe, non-sensitive configuration │
|
|
532
|
+
│ values are displayed. │
|
|
533
|
+
└─────────────────────────────────────────────┘
|
|
534
|
+
```
|
|
535
|
+
|
|
536
|
+
```
|
|
537
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
538
|
+
|
|
539
|
+
✅ TUTORIAL STORY!
|
|
540
|
+
|
|
541
|
+
You've learned:
|
|
542
|
+
• Accessing the Devtools Dashboard
|
|
543
|
+
• Block Explorer for page builder
|
|
544
|
+
• API Explorer for testing endpoints
|
|
545
|
+
• Test Coverage Dashboard
|
|
546
|
+
• Configuration Viewer
|
|
547
|
+
|
|
548
|
+
📚 Related tutorials:
|
|
549
|
+
• /how-to:create-block - Create page builder blocks
|
|
550
|
+
• /how-to:manage-test-coverage - Testing strategy
|
|
551
|
+
• /how-to:create-api - Create API endpoints
|
|
552
|
+
|
|
553
|
+
🔙 Back to menu: /how-to:start
|
|
554
|
+
```
|
|
555
|
+
|
|
556
|
+
---
|
|
557
|
+
|
|
558
|
+
## Interactive Options
|
|
559
|
+
|
|
560
|
+
### "How do I make someone a developer?"
|
|
561
|
+
|
|
562
|
+
```
|
|
563
|
+
📋 Adding Developer Role:
|
|
564
|
+
|
|
565
|
+
Option 1: Via devKeyring (development)
|
|
566
|
+
|
|
567
|
+
// app.config.ts
|
|
568
|
+
devKeyring: {
|
|
569
|
+
'dev@example.com': {
|
|
570
|
+
password: 'Test1234',
|
|
571
|
+
role: 'developer', // or 'member'
|
|
572
|
+
isDeveloper: true // grants devtools access
|
|
573
|
+
}
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
Option 2: Via database
|
|
577
|
+
|
|
578
|
+
UPDATE users SET is_developer = true
|
|
579
|
+
WHERE email = 'dev@example.com';
|
|
580
|
+
|
|
581
|
+
Option 3: Custom user field
|
|
582
|
+
|
|
583
|
+
// Add to user schema and check in auth
|
|
584
|
+
const canAccessDevtools = user.role === 'superadmin'
|
|
585
|
+
|| user.isDeveloper === true
|
|
586
|
+
```
|
|
587
|
+
|
|
588
|
+
### "How do I add documentation for my API?"
|
|
589
|
+
|
|
590
|
+
```
|
|
591
|
+
📋 Adding API Documentation:
|
|
592
|
+
|
|
593
|
+
1. Create docs.md next to your route.ts:
|
|
594
|
+
|
|
595
|
+
app/api/v1/my-endpoint/
|
|
596
|
+
├── route.ts
|
|
597
|
+
└── docs.md
|
|
598
|
+
|
|
599
|
+
2. Use markdown format:
|
|
600
|
+
|
|
601
|
+
# My Endpoint
|
|
602
|
+
|
|
603
|
+
## POST /api/v1/my-endpoint
|
|
604
|
+
Create a new resource.
|
|
605
|
+
|
|
606
|
+
### Request Body
|
|
607
|
+
```json
|
|
608
|
+
{
|
|
609
|
+
"name": "string",
|
|
610
|
+
"value": "number"
|
|
611
|
+
}
|
|
612
|
+
```
|
|
613
|
+
|
|
614
|
+
### Response
|
|
615
|
+
```json
|
|
616
|
+
{
|
|
617
|
+
"success": true,
|
|
618
|
+
"data": { "id": "..." }
|
|
619
|
+
}
|
|
620
|
+
```
|
|
621
|
+
|
|
622
|
+
### Errors
|
|
623
|
+
- 400: Validation error
|
|
624
|
+
- 401: Unauthorized
|
|
625
|
+
- 403: Forbidden
|
|
626
|
+
|
|
627
|
+
3. The API Explorer will automatically load it.
|
|
628
|
+
```
|
|
629
|
+
|
|
630
|
+
---
|
|
631
|
+
|
|
632
|
+
## Related Commands
|
|
633
|
+
|
|
634
|
+
| Command | Description |
|
|
635
|
+
|---------|-------------|
|
|
636
|
+
| `/how-to:create-block` | Create page builder blocks |
|
|
637
|
+
| `/how-to:manage-test-coverage` | Testing and coverage strategy |
|
|
638
|
+
| `/how-to:create-api` | Create custom API endpoints |
|
|
639
|
+
| `/how-to:use-superadmin` | Superadmin panel |
|