@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,239 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: test-coverage
|
|
3
|
+
description: |
|
|
4
|
+
Test coverage metrics and registry system for this Next.js application.
|
|
5
|
+
Covers FEATURE_REGISTRY, FLOW_REGISTRY, TAGS_REGISTRY, and coverage metrics interpretation.
|
|
6
|
+
Use this skill when evaluating test coverage, identifying gaps, or planning testing priorities.
|
|
7
|
+
allowed-tools: Read, Glob, Grep
|
|
8
|
+
version: 1.0.0
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Test Coverage Skill
|
|
12
|
+
|
|
13
|
+
Understand and use the test coverage registry system.
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
The **registries** are files that document what exists in the system and its test coverage state.
|
|
18
|
+
|
|
19
|
+
| Registry | Contents | Location |
|
|
20
|
+
|----------|----------|----------|
|
|
21
|
+
| FEATURE_REGISTRY | System features | /devtools/features |
|
|
22
|
+
| FLOW_REGISTRY | User flows | /devtools/flows |
|
|
23
|
+
| TAGS_REGISTRY | Test tags | /devtools/tags |
|
|
24
|
+
| COVERAGE_SUMMARY | Aggregated metrics | testing-registry.ts |
|
|
25
|
+
|
|
26
|
+
## When to Use This Skill
|
|
27
|
+
|
|
28
|
+
- Evaluating current test coverage
|
|
29
|
+
- Identifying coverage gaps
|
|
30
|
+
- Planning testing priorities
|
|
31
|
+
- Generating coverage reports
|
|
32
|
+
- Understanding test distribution
|
|
33
|
+
|
|
34
|
+
## Registry Structures
|
|
35
|
+
|
|
36
|
+
### FEATURE_REGISTRY
|
|
37
|
+
|
|
38
|
+
Lists all system features with coverage state:
|
|
39
|
+
|
|
40
|
+
```typescript
|
|
41
|
+
FEATURE_REGISTRY = {
|
|
42
|
+
'checkout': {
|
|
43
|
+
name: 'Checkout',
|
|
44
|
+
description: 'Purchase process',
|
|
45
|
+
entities: ['orders', 'payments'],
|
|
46
|
+
tests: ['checkout.cy.ts'],
|
|
47
|
+
coverage: 'full' // full | partial | none
|
|
48
|
+
},
|
|
49
|
+
'inventory': {
|
|
50
|
+
name: 'Inventory Management',
|
|
51
|
+
description: 'Stock management',
|
|
52
|
+
entities: ['inventory', 'warehouses'],
|
|
53
|
+
tests: [],
|
|
54
|
+
coverage: 'none'
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
| Coverage | Meaning |
|
|
60
|
+
|----------|---------|
|
|
61
|
+
| `full` | Has tests covering main flows |
|
|
62
|
+
| `partial` | Has some tests but gaps exist |
|
|
63
|
+
| `none` | No documented tests |
|
|
64
|
+
|
|
65
|
+
### FLOW_REGISTRY
|
|
66
|
+
|
|
67
|
+
Lists user flows with coverage state:
|
|
68
|
+
|
|
69
|
+
```typescript
|
|
70
|
+
FLOW_REGISTRY = {
|
|
71
|
+
'login': {
|
|
72
|
+
name: 'User Login',
|
|
73
|
+
steps: ['Visit login', 'Enter credentials', 'Submit', 'Redirect'],
|
|
74
|
+
entities: ['users', 'sessions'],
|
|
75
|
+
tests: ['auth/login.cy.ts'],
|
|
76
|
+
coverage: 'full'
|
|
77
|
+
},
|
|
78
|
+
'returns': {
|
|
79
|
+
name: 'Process Returns',
|
|
80
|
+
steps: ['Find order', 'Request return', 'Approve', 'Refund'],
|
|
81
|
+
entities: ['orders', 'returns', 'payments'],
|
|
82
|
+
tests: [],
|
|
83
|
+
coverage: 'none'
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
A flow without coverage means no automated tests verify that user path end-to-end.
|
|
89
|
+
|
|
90
|
+
### TAGS_REGISTRY
|
|
91
|
+
|
|
92
|
+
Lists all test tags with distribution:
|
|
93
|
+
|
|
94
|
+
```typescript
|
|
95
|
+
TAGS_REGISTRY = {
|
|
96
|
+
'@smoke': { count: 15, files: ['login.cy.ts', 'products.cy.ts'] },
|
|
97
|
+
'@uat': { count: 52, files: [...] },
|
|
98
|
+
'@api': { count: 75, files: [...] },
|
|
99
|
+
'@entity-products': { count: 20, files: ['products.cy.ts'] }
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
| Tag | Purpose | Typical Count |
|
|
104
|
+
|-----|---------|---------------|
|
|
105
|
+
| @smoke | Critical quick tests | 10-20 |
|
|
106
|
+
| @uat | User acceptance tests | 40-60% |
|
|
107
|
+
| @api | API tests | 30-50% |
|
|
108
|
+
| @entity-X | Per entity | Varies |
|
|
109
|
+
| @flow-X | Per flow | Varies |
|
|
110
|
+
| @critical | Business critical | 5-15 |
|
|
111
|
+
|
|
112
|
+
### COVERAGE_SUMMARY
|
|
113
|
+
|
|
114
|
+
Aggregated coverage metrics:
|
|
115
|
+
|
|
116
|
+
```typescript
|
|
117
|
+
COVERAGE_SUMMARY = {
|
|
118
|
+
features: {
|
|
119
|
+
total: 25,
|
|
120
|
+
covered: 20,
|
|
121
|
+
partial: 3,
|
|
122
|
+
none: 2,
|
|
123
|
+
percentage: 80
|
|
124
|
+
},
|
|
125
|
+
flows: {
|
|
126
|
+
total: 15,
|
|
127
|
+
covered: 10,
|
|
128
|
+
percentage: 67
|
|
129
|
+
},
|
|
130
|
+
entities: {
|
|
131
|
+
total: 12,
|
|
132
|
+
withApiTests: 12,
|
|
133
|
+
withUatTests: 10,
|
|
134
|
+
percentage: 100
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## Technical vs Functional Coverage
|
|
140
|
+
|
|
141
|
+
### Critical Distinction
|
|
142
|
+
|
|
143
|
+
| Type | What It Measures | Example |
|
|
144
|
+
|------|------------------|---------|
|
|
145
|
+
| **Technical** | If a test exists | "There are 5 tests for products" |
|
|
146
|
+
| **Functional** | If test verifies correctly | "Tests validate business rules" |
|
|
147
|
+
|
|
148
|
+
### Why This Matters
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
Feature: Products
|
|
152
|
+
Tests: 10
|
|
153
|
+
Technical coverage: 100% ✓
|
|
154
|
+
|
|
155
|
+
But...
|
|
156
|
+
- Do tests verify validations?
|
|
157
|
+
- Do tests cover edge cases?
|
|
158
|
+
- Do tests check permissions?
|
|
159
|
+
|
|
160
|
+
Functional coverage: ??? (requires manual analysis)
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
**IMPORTANT**: Registry coverage metrics are TECHNICAL. They don't indicate test quality.
|
|
164
|
+
|
|
165
|
+
## Using Coverage Metrics
|
|
166
|
+
|
|
167
|
+
### To Identify Gaps
|
|
168
|
+
|
|
169
|
+
1. Find features with `coverage: 'none'`
|
|
170
|
+
2. Find flows without tests
|
|
171
|
+
3. Find entities with gaps
|
|
172
|
+
|
|
173
|
+
### To Prioritize
|
|
174
|
+
|
|
175
|
+
Metrics help identify areas without tests, but **prioritization** must consider:
|
|
176
|
+
|
|
177
|
+
| Factor | Who Evaluates |
|
|
178
|
+
|--------|---------------|
|
|
179
|
+
| Business criticality | QA + PM |
|
|
180
|
+
| Bug history | QA |
|
|
181
|
+
| Release proximity | QA + Dev |
|
|
182
|
+
| Available resources | QA + Management |
|
|
183
|
+
|
|
184
|
+
### For Reporting
|
|
185
|
+
|
|
186
|
+
```markdown
|
|
187
|
+
## Coverage Status - Sprint 15
|
|
188
|
+
|
|
189
|
+
- Features covered: 80% (20/25)
|
|
190
|
+
- Flows covered: 67% (10/15)
|
|
191
|
+
- Critical gaps identified:
|
|
192
|
+
- Feature: inventory (no tests)
|
|
193
|
+
- Flow: returns (no tests)
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
## File Locations
|
|
197
|
+
|
|
198
|
+
### DevTools Pages
|
|
199
|
+
|
|
200
|
+
- **Features**: `/devtools/features`
|
|
201
|
+
- **Flows**: `/devtools/flows`
|
|
202
|
+
- **Tags**: `/devtools/tags`
|
|
203
|
+
|
|
204
|
+
### Registry Files
|
|
205
|
+
|
|
206
|
+
- `apps/dev/.nextspark/registries/testing-registry.ts`
|
|
207
|
+
|
|
208
|
+
## Commands
|
|
209
|
+
|
|
210
|
+
| Command | Description |
|
|
211
|
+
|---------|-------------|
|
|
212
|
+
| `/coverage:status` | View overall status |
|
|
213
|
+
| `/coverage:gaps` | Identify gaps |
|
|
214
|
+
|
|
215
|
+
## Common Questions
|
|
216
|
+
|
|
217
|
+
### Does 100% coverage mean we're good?
|
|
218
|
+
|
|
219
|
+
**Not necessarily.** 100% technical coverage means tests exist, not that they're good or complete.
|
|
220
|
+
|
|
221
|
+
### Does 0% coverage mean it's bad?
|
|
222
|
+
|
|
223
|
+
**Not necessarily.** Some areas may not need automated tests, or may be covered by manual testing.
|
|
224
|
+
|
|
225
|
+
### How do I improve coverage?
|
|
226
|
+
|
|
227
|
+
1. Identify gaps with `/coverage:gaps`
|
|
228
|
+
2. Prioritize by business criticality
|
|
229
|
+
3. Create tests for most critical areas
|
|
230
|
+
4. Verify tests check the right things
|
|
231
|
+
|
|
232
|
+
## Important Notes
|
|
233
|
+
|
|
234
|
+
1. **Technical ≠ Functional** - Having tests doesn't mean they test the right things
|
|
235
|
+
2. **Metrics guide, don't decide** - Use business context to prioritize
|
|
236
|
+
3. **Quality over quantity** - 10 good tests beat 100 bad ones
|
|
237
|
+
4. **Living documentation** - Registries should stay updated
|
|
238
|
+
|
|
239
|
+
YOU decide how to interpret these metrics and what to prioritize based on business context.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: web-design-guidelines
|
|
3
|
+
description: Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices".
|
|
4
|
+
metadata:
|
|
5
|
+
author: vercel
|
|
6
|
+
version: "1.0.0"
|
|
7
|
+
argument-hint: <file-or-pattern>
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Web Interface Guidelines
|
|
11
|
+
|
|
12
|
+
Review files for compliance with Web Interface Guidelines.
|
|
13
|
+
|
|
14
|
+
## How It Works
|
|
15
|
+
|
|
16
|
+
1. Fetch the latest guidelines from the source URL below
|
|
17
|
+
2. Read the specified files (or prompt user for files/pattern)
|
|
18
|
+
3. Check against all rules in the fetched guidelines
|
|
19
|
+
4. Output findings in the terse `file:line` format
|
|
20
|
+
|
|
21
|
+
## Guidelines Source
|
|
22
|
+
|
|
23
|
+
Fetch fresh guidelines before each review:
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
https://raw.githubusercontent.com/vercel-labs/web-interface-guidelines/main/command.md
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Use WebFetch to retrieve the latest rules. The fetched content contains all the rules and output format instructions.
|
|
30
|
+
|
|
31
|
+
## Usage
|
|
32
|
+
|
|
33
|
+
When a user provides a file or pattern argument:
|
|
34
|
+
1. Fetch guidelines from the source URL above
|
|
35
|
+
2. Read the specified files
|
|
36
|
+
3. Apply all rules from the fetched guidelines
|
|
37
|
+
4. Output findings using the format specified in the guidelines
|
|
38
|
+
|
|
39
|
+
If no files specified, ask the user which files to review.
|