@kensaurus/skills 0.0.0-stage → 2.1.0
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/.claude-plugin/marketplace.json +53 -0
- package/.claude-plugin/plugin.json +40 -0
- package/.cursor-plugin/plugin.json +38 -0
- package/.mcp.json +28 -0
- package/CHANGELOG.md +1790 -0
- package/LICENSE +21 -0
- package/LICENSE-APACHE +62 -0
- package/NOTICE +13 -0
- package/README.md +821 -2
- package/SECURITY.md +55 -0
- package/agents/code-reviewer.md +60 -0
- package/agents/completion-judge.md +89 -0
- package/agents/db-migrator.md +125 -0
- package/agents/debugger.md +47 -0
- package/agents/deploy-checker.md +100 -0
- package/agents/perf-monitor.md +74 -0
- package/assets/favicon.png +0 -0
- package/assets/logo-light.png +0 -0
- package/assets/logo.png +0 -0
- package/assets/logo.svg +6 -0
- package/assets/og.png +0 -0
- package/bin/install.mjs +1127 -0
- package/bin/kenji.js +2 -0
- package/commands/adr.md +17 -0
- package/commands/aeo-plan.md +18 -0
- package/commands/arch-boundaries.md +17 -0
- package/commands/aso-plan.md +18 -0
- package/commands/auth-flows.md +19 -0
- package/commands/backup-plan.md +17 -0
- package/commands/burndown-full.md +25 -0
- package/commands/capacitor-plan.md +18 -0
- package/commands/codemod-safety.md +22 -0
- package/commands/commit.md +18 -0
- package/commands/complete-everything.md +40 -0
- package/commands/cost-plan.md +19 -0
- package/commands/deadcode-plan.md +26 -0
- package/commands/deadcode.md +32 -0
- package/commands/debug-issue.md +17 -0
- package/commands/deps-plan.md +18 -0
- package/commands/docs-plan.md +17 -0
- package/commands/doctrine.md +19 -0
- package/commands/error-plan.md +19 -0
- package/commands/feedback-to-closure.md +36 -0
- package/commands/fix-issue.md +76 -0
- package/commands/gate-logic.md +26 -0
- package/commands/green-repo.md +36 -0
- package/commands/grill-me.md +19 -0
- package/commands/gtm-plan.md +21 -0
- package/commands/gtm-weekly.md +17 -0
- package/commands/gtm.md +22 -0
- package/commands/handoff.md +15 -0
- package/commands/housekeep-backlog.md +18 -0
- package/commands/housekeep-files.md +22 -0
- package/commands/housekeep-gates.md +18 -0
- package/commands/instant-nav.md +11 -0
- package/commands/integrity-plan.md +19 -0
- package/commands/launch-kit.md +16 -0
- package/commands/mcp-guide.md +40 -0
- package/commands/mobile-plan.md +19 -0
- package/commands/native-rn-monorepo/README.md +78 -0
- package/commands/native-rn-monorepo/android-build.md +26 -0
- package/commands/native-rn-monorepo/android-install.md +32 -0
- package/commands/native-rn-monorepo/android-logcat.md +37 -0
- package/commands/native-rn-monorepo/ios-ci-logs.md +56 -0
- package/commands/native-rn-monorepo/ios-ci-status.md +52 -0
- package/commands/native-rn-monorepo/ios-ci-trigger.md +59 -0
- package/commands/native-rn-monorepo/rn-reset.md +50 -0
- package/commands/native-rn-monorepo/rn-ship-ios.md +67 -0
- package/commands/native-rn-monorepo/rn-verify.md +53 -0
- package/commands/perf-plan.md +18 -0
- package/commands/plan-mode.md +74 -0
- package/commands/pr.md +16 -0
- package/commands/pricing-plan.md +20 -0
- package/commands/privacy-plan.md +18 -0
- package/commands/readability.md +12 -0
- package/commands/readme.md +15 -0
- package/commands/refactor.md +15 -0
- package/commands/release-prep.md +17 -0
- package/commands/research.md +25 -0
- package/commands/responsive-audit.md +21 -0
- package/commands/review-code.md +18 -0
- package/commands/rls-plan.md +18 -0
- package/commands/secrets-plan.md +18 -0
- package/commands/security-plan.md +19 -0
- package/commands/ship-and-observe.md +36 -0
- package/commands/skill-conflicts.md +19 -0
- package/commands/slop-plan.md +18 -0
- package/commands/stub-plan.md +18 -0
- package/commands/test-mutation.md +16 -0
- package/commands/test-plan.md +17 -0
- package/commands/test.md +29 -0
- package/commands/thirdparty-web-interface-guidelines.md +185 -0
- package/commands/uiux-plan.md +18 -0
- package/commands/uiux.md +45 -0
- package/commands/update-deps.md +21 -0
- package/commands/validation-plan.md +19 -0
- package/commands-portable/fix-issue.md +72 -0
- package/commands-portable/plan-mode.md +92 -0
- package/commands-portable/research.md +91 -0
- package/docs/screenshots/README.md +5 -0
- package/docs/screenshots/audit-dark.png +0 -0
- package/docs/screenshots/build-dark.png +0 -0
- package/docs/screenshots/grill-dark.png +0 -0
- package/docs/screenshots/hero-dark.png +0 -0
- package/docs/screenshots/hero-light.png +0 -0
- package/docs/screenshots/ship-dark.png +0 -0
- package/docs/screenshots/src/showcase.html +320 -0
- package/hooks/completion-gate.mjs +258 -0
- package/hooks/cursor-hooks.json +13 -0
- package/hooks/hooks.json +15 -0
- package/install.sh +21 -0
- package/llms.txt +40 -0
- package/mcp/README.md +266 -0
- package/mcp/VERSIONS.md +41 -0
- package/mcp/mcp-full.json.template +124 -0
- package/mcp/mcp.json.template +29 -0
- package/mcp/pinned-versions.json +27 -0
- package/package.json +94 -4
- package/rules/approved-plan-execution.mdc +65 -0
- package/rules/full-stack-ship-discipline.mdc +37 -0
- package/rules/native-rn-monorepo/README.md +63 -0
- package/rules/native-rn-monorepo/_project.mdc +69 -0
- package/rules/native-rn-monorepo/native-android.mdc +72 -0
- package/rules/native-rn-monorepo/native-ios.mdc +61 -0
- package/rules/native-rn-monorepo/react-native-js.mdc +78 -0
- package/rules/native-rn-monorepo/web.mdc +60 -0
- package/rules/project-starter/components.mdc +54 -0
- package/rules/project-starter/data-fetching.mdc +77 -0
- package/rules/project-starter/git.mdc +41 -0
- package/rules/project-starter/supabase.mdc +37 -0
- package/rules/project-starter/tailwind.mdc +48 -0
- package/rules/project-starter/typescript.mdc +36 -0
- package/rules/project-starter/web-performance.mdc +42 -0
- package/rules/senior-engineer.mdc +30 -0
- package/rules/shell-first-search.mdc +19 -0
- package/rules/skill-workflows.mdc +35 -0
- package/rules/verification-before-completion.mdc +57 -0
- package/skills/audit-accessibility/SKILL.md +441 -0
- package/skills/audit-agent-speed/SKILL.md +181 -0
- package/skills/audit-agent-speed/scripts/stop-typecheck.mjs +151 -0
- package/skills/audit-analytics/SKILL.md +138 -0
- package/skills/audit-auth-flows/SKILL.md +267 -0
- package/skills/audit-backend-architecture/SKILL.md +266 -0
- package/skills/audit-backend-architecture/references/patterns.md +386 -0
- package/skills/audit-bundle-size/SKILL.md +295 -0
- package/skills/audit-cicd/SKILL.md +218 -0
- package/skills/audit-code-quality/SKILL.md +314 -0
- package/skills/audit-code-review/SKILL.md +289 -0
- package/skills/audit-codemod-safety/SKILL.md +159 -0
- package/skills/audit-db-schema/SKILL.md +465 -0
- package/skills/audit-db-schema/references/details.md +110 -0
- package/skills/audit-doctrine/SKILL.md +189 -0
- package/skills/audit-env-parity/SKILL.md +133 -0
- package/skills/audit-fe-api/SKILL.md +458 -0
- package/skills/audit-gate-logic/SKILL.md +219 -0
- package/skills/audit-i18n/SKILL.md +339 -0
- package/skills/audit-infra-cost/SKILL.md +142 -0
- package/skills/audit-langfuse-llm/SKILL.md +468 -0
- package/skills/audit-langfuse-llm/references/details.md +226 -0
- package/skills/audit-llm-security/SKILL.md +147 -0
- package/skills/audit-monetization-iap/SKILL.md +137 -0
- package/skills/audit-payment-system/SKILL.md +268 -0
- package/skills/audit-payment-system/references/checklist.md +283 -0
- package/skills/audit-performance/SKILL.md +383 -0
- package/skills/audit-performance/references/loading-priority-2026.md +81 -0
- package/skills/audit-realworld/SKILL.md +287 -0
- package/skills/audit-registry-listing/SKILL.md +122 -0
- package/skills/audit-resilience/SKILL.md +153 -0
- package/skills/audit-responsive/SKILL.md +221 -0
- package/skills/audit-responsive/references/checklist.md +166 -0
- package/skills/audit-security/SKILL.md +289 -0
- package/skills/audit-skill-conflicts/SKILL.md +178 -0
- package/skills/audit-ui-states/SKILL.md +146 -0
- package/skills/audit-uiux-design-system/SKILL.md +475 -0
- package/skills/audit-uiux-design-system/references/details.md +71 -0
- package/skills/audit-ux/SKILL.md +381 -0
- package/skills/audit-ux/references/details.md +245 -0
- package/skills/audit-ux-journeys/SKILL.md +215 -0
- package/skills/audit-ux-journeys/references/checklist.md +179 -0
- package/skills/backend-db-performance/SKILL.md +441 -0
- package/skills/backend-error-handling/SKILL.md +489 -0
- package/skills/backend-error-handling/references/details.md +58 -0
- package/skills/backend-observability/SKILL.md +88 -0
- package/skills/backend-patterns/SKILL.md +499 -0
- package/skills/backend-patterns/references/architecture-patterns.md +298 -0
- package/skills/backend-realtime/SKILL.md +403 -0
- package/skills/backend-realtime/references/patterns.md +74 -0
- package/skills/burndown-full/SKILL.md +174 -0
- package/skills/complete-everything/SKILL.md +295 -0
- package/skills/data-pipeline/SKILL.md +109 -0
- package/skills/data-visualization/SKILL.md +488 -0
- package/skills/debug-error/SKILL.md +322 -0
- package/skills/debug-fe-be-integration/SKILL.md +459 -0
- package/skills/debug-sentry-monitor/SKILL.md +497 -0
- package/skills/debug-sentry-monitor/references/details.md +165 -0
- package/skills/deploy-npm/SKILL.md +394 -0
- package/skills/deploy-npm/references/example-mushi-mushi.md +52 -0
- package/skills/deploy-verify/SKILL.md +489 -0
- package/skills/design-api/SKILL.md +379 -0
- package/skills/design-canvas/SKILL.md +155 -0
- package/skills/design-email/SKILL.md +370 -0
- package/skills/design-frontend/SKILL.md +143 -0
- package/skills/design-generative-art/SKILL.md +474 -0
- package/skills/design-mobile-first/SKILL.md +506 -0
- package/skills/design-motion/SKILL.md +333 -0
- package/skills/design-motion/references/delight-interactions.md +191 -0
- package/skills/design-prd/SKILL.md +443 -0
- package/skills/design-system/SKILL.md +457 -0
- package/skills/design-theme/SKILL.md +226 -0
- package/skills/design-theme/themes/tsumagoi-ranch.md +150 -0
- package/skills/docs-adr/SKILL.md +168 -0
- package/skills/docs-coauthor/SKILL.md +368 -0
- package/skills/docs-comparison-pages/SKILL.md +117 -0
- package/skills/docs-domain-modeling/SKILL.md +97 -0
- package/skills/docs-launch-kit/SKILL.md +139 -0
- package/skills/docs-writer/SKILL.md +469 -0
- package/skills/enhance-agent-guardrails/SKILL.md +164 -0
- package/skills/enhance-arch-boundaries/SKILL.md +154 -0
- package/skills/enhance-capacitor-ui/SKILL.md +463 -0
- package/skills/enhance-capacitor-ui/references/details.md +750 -0
- package/skills/enhance-email-deliverability/SKILL.md +143 -0
- package/skills/enhance-growth-loops/SKILL.md +122 -0
- package/skills/enhance-lifecycle-email/SKILL.md +130 -0
- package/skills/enhance-motion/SKILL.md +193 -0
- package/skills/enhance-onboarding/SKILL.md +148 -0
- package/skills/enhance-pwa/SKILL.md +303 -0
- package/skills/enhance-readability/SKILL.md +146 -0
- package/skills/enhance-readme/SKILL.md +496 -0
- package/skills/enhance-readme/package-lock.json +187 -0
- package/skills/enhance-readme/package.json +17 -0
- package/skills/enhance-readme/scripts/generate-readme-blocks.mjs +199 -0
- package/skills/enhance-readme/scripts/record-readme-tour.mjs +442 -0
- package/skills/enhance-skill-prompts/SKILL.md +167 -0
- package/skills/enhance-skill-prompts/references/exemplar-audit-auth-flows.md +311 -0
- package/skills/enhance-ux-laws/SKILL.md +409 -0
- package/skills/enhance-web-conversion/SKILL.md +155 -0
- package/skills/enhance-web-forms/SKILL.md +154 -0
- package/skills/enhance-web-instant-nav/SKILL.md +138 -0
- package/skills/enhance-web-instant-nav/references/bfcache-blockers.md +23 -0
- package/skills/enhance-web-instant-nav/references/early-hints.md +33 -0
- package/skills/enhance-web-instant-nav/references/speculation-rules.md +44 -0
- package/skills/enhance-web-landing/SKILL.md +459 -0
- package/skills/enhance-web-landing/references/details.md +773 -0
- package/skills/enhance-web-redesign/SKILL.md +228 -0
- package/skills/enhance-web-seo/SKILL.md +276 -0
- package/skills/enhance-web-ui/SKILL.md +473 -0
- package/skills/enhance-web-ui/references/details.md +674 -0
- package/skills/enhance-web-ux/HEURISTICS.md +248 -0
- package/skills/enhance-web-ux/PATTERNS.md +375 -0
- package/skills/enhance-web-ux/SKILL.md +464 -0
- package/skills/enhance-web-ux/examples.md +222 -0
- package/skills/enhance-web-ux/references/details.md +406 -0
- package/skills/enhance-web-web3d/SKILL.md +397 -0
- package/skills/enhance-web-web3d/references/css-canvas-effects.md +180 -0
- package/skills/handoff/SKILL.md +66 -0
- package/skills/housekeep-backlog/SKILL.md +149 -0
- package/skills/housekeep-dead-code/SKILL.md +387 -0
- package/skills/housekeep-dead-code/references/ratchet-ci.md +205 -0
- package/skills/housekeep-dead-code/references/supabase-hygiene.md +152 -0
- package/skills/housekeep-design/SKILL.md +207 -0
- package/skills/housekeep-files/SKILL.md +220 -0
- package/skills/housekeep-files/references/naming-and-catalog.md +86 -0
- package/skills/housekeep-files/scripts/housekeep-files.ps1 +360 -0
- package/skills/housekeep-files/scripts/housekeep-files.sh +238 -0
- package/skills/housekeep-gates/SKILL.md +174 -0
- package/skills/iterate-agent-harness/SKILL.md +137 -0
- package/skills/iterate-gtm-weekly/SKILL.md +103 -0
- package/skills/iterate-post-launch/SKILL.md +292 -0
- package/skills/meta-mcp-builder/SKILL.md +313 -0
- package/skills/meta-skill-creator/SKILL.md +304 -0
- package/skills/mobile-capacitor-platform/SKILL.md +103 -0
- package/skills/mobile-emulator-start/SKILL.md +296 -0
- package/skills/mobile-emulator-test/SKILL.md +491 -0
- package/skills/mobile-emulator-test/references/details.md +478 -0
- package/skills/mobile-rn-performance/SKILL.md +107 -0
- package/skills/mobile-rn-screen/SKILL.md +476 -0
- package/skills/mobile-rn-screen/references/details.md +785 -0
- package/skills/mushi-health/SKILL.md +206 -0
- package/skills/mushi-integration/SKILL.md +257 -0
- package/skills/plan-aeo-readiness/SKILL.md +166 -0
- package/skills/plan-antislop/SKILL.md +281 -0
- package/skills/plan-aso/SKILL.md +149 -0
- package/skills/plan-backup-dr/SKILL.md +131 -0
- package/skills/plan-capacitor-hardening/SKILL.md +217 -0
- package/skills/plan-data-integrity/SKILL.md +187 -0
- package/skills/plan-dead-code/SKILL.md +386 -0
- package/skills/plan-dead-code/references/knip-config.md +214 -0
- package/skills/plan-dead-code/references/output-templates.md +133 -0
- package/skills/plan-dead-code/references/preservation-contract.md +50 -0
- package/skills/plan-dead-code/references/residue-greps.md +84 -0
- package/skills/plan-dependency-provenance/SKILL.md +200 -0
- package/skills/plan-docs-sync/SKILL.md +143 -0
- package/skills/plan-docs-sync/references/drift-taxonomy.md +43 -0
- package/skills/plan-docs-sync/references/output-templates.md +33 -0
- package/skills/plan-docs-sync/references/preservation-contract.md +17 -0
- package/skills/plan-error-handling/SKILL.md +205 -0
- package/skills/plan-gtm/SKILL.md +276 -0
- package/skills/plan-gtm/references/benchmarks-2026.md +183 -0
- package/skills/plan-input-validation/SKILL.md +179 -0
- package/skills/plan-llm-cost-guardrails/SKILL.md +176 -0
- package/skills/plan-mobile-readiness/SKILL.md +171 -0
- package/skills/plan-perf-audit/SKILL.md +145 -0
- package/skills/plan-perf-audit/references/audit-scope.md +51 -0
- package/skills/plan-perf-audit/references/output-templates.md +33 -0
- package/skills/plan-perf-audit/references/preservation-contract.md +13 -0
- package/skills/plan-pricing/SKILL.md +173 -0
- package/skills/plan-privacy-compliance/SKILL.md +148 -0
- package/skills/plan-rls-audit/SKILL.md +231 -0
- package/skills/plan-secrets-audit/SKILL.md +181 -0
- package/skills/plan-security-audit/SKILL.md +168 -0
- package/skills/plan-security-audit/references/output-templates.md +36 -0
- package/skills/plan-security-audit/references/owasp-supabase-scope.md +55 -0
- package/skills/plan-security-audit/references/preservation-contract.md +18 -0
- package/skills/plan-stub-checker/SKILL.md +216 -0
- package/skills/plan-stub-checker/references/detection-methodology.md +75 -0
- package/skills/plan-stub-checker/references/detection-taxonomy.md +34 -0
- package/skills/plan-stub-checker/references/output-templates.md +63 -0
- package/skills/plan-stub-checker/references/preservation-contract.md +24 -0
- package/skills/plan-test-coverage/SKILL.md +170 -0
- package/skills/plan-test-coverage/references/methodology.md +54 -0
- package/skills/plan-test-coverage/references/output-templates.md +34 -0
- package/skills/plan-test-coverage/references/preservation-contract.md +15 -0
- package/skills/plan-uiux-unification/SKILL.md +230 -0
- package/skills/plan-uiux-unification/references/output-templates.md +67 -0
- package/skills/plan-uiux-unification/references/phase-workbook.md +85 -0
- package/skills/plan-uiux-unification/references/preservation-contract.md +24 -0
- package/skills/protocol-browser-anti-stall/SKILL.md +211 -0
- package/skills/protocol-browser-anti-stall/references/mcp-to-cli-map.md +113 -0
- package/skills/protocol-browser-anti-stall/references/playwright-session-coordination.md +170 -0
- package/skills/research/SKILL.md +422 -0
- package/skills/test-exploratory/SKILL.md +165 -0
- package/skills/test-exploratory/references/charter-template.md +29 -0
- package/skills/test-load/SKILL.md +126 -0
- package/skills/test-mutation/SKILL.md +160 -0
- package/skills/test-playwright/SKILL.md +354 -0
- package/skills/test-qa/SKILL.md +364 -0
- package/skills/test-qa/references/details.md +268 -0
- package/skills/test-red-team/SKILL.md +386 -0
- package/skills/test-red-team/references/owasp-attack-checklist.md +193 -0
- package/skills/test-unit/SKILL.md +259 -0
- package/skills/test-unit/references/details.md +267 -0
- package/skills/test-visual-regression/SKILL.md +132 -0
- package/skills/thirdparty-emil-design-eng/ATTRIBUTION.md +20 -0
- package/skills/thirdparty-emil-design-eng/SKILL.md +21 -0
- package/skills/thirdparty-emil-design-eng/references/emil-design-eng.md +676 -0
- package/skills/thirdparty-ui-ux-pro-max/ATTRIBUTION.md +22 -0
- package/skills/thirdparty-ui-ux-pro-max/SKILL.md +304 -0
- package/skills/thirdparty-ui-ux-pro-max/data/charts.csv +26 -0
- package/skills/thirdparty-ui-ux-pro-max/data/colors.csv +97 -0
- package/skills/thirdparty-ui-ux-pro-max/data/icons.csv +101 -0
- package/skills/thirdparty-ui-ux-pro-max/data/landing.csv +31 -0
- package/skills/thirdparty-ui-ux-pro-max/data/products.csv +97 -0
- package/skills/thirdparty-ui-ux-pro-max/data/react-performance.csv +45 -0
- package/skills/thirdparty-ui-ux-pro-max/data/stacks/astro.csv +54 -0
- package/skills/thirdparty-ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/skills/thirdparty-ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/skills/thirdparty-ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/skills/thirdparty-ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/skills/thirdparty-ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/skills/thirdparty-ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/skills/thirdparty-ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/skills/thirdparty-ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/skills/thirdparty-ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/skills/thirdparty-ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/skills/thirdparty-ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/skills/thirdparty-ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/skills/thirdparty-ui-ux-pro-max/data/styles.csv +68 -0
- package/skills/thirdparty-ui-ux-pro-max/data/typography.csv +58 -0
- package/skills/thirdparty-ui-ux-pro-max/data/ui-reasoning.csv +101 -0
- package/skills/thirdparty-ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/skills/thirdparty-ui-ux-pro-max/data/web-interface.csv +31 -0
- package/skills/thirdparty-ui-ux-pro-max/scripts/core.py +253 -0
- package/skills/thirdparty-ui-ux-pro-max/scripts/design_system.py +1067 -0
- package/skills/thirdparty-ui-ux-pro-max/scripts/search.py +114 -0
- package/skills/thirdparty-web-interface-guidelines/ATTRIBUTION.md +23 -0
- package/skills/thirdparty-web-interface-guidelines/SKILL.md +190 -0
- package/skills/workflow-build-feature/SKILL.md +118 -0
- package/skills/workflow-coding-discipline/SKILL.md +140 -0
- package/skills/workflow-environment-ready/SKILL.md +128 -0
- package/skills/workflow-feature-flag/SKILL.md +262 -0
- package/skills/workflow-feedback-to-closure/SKILL.md +165 -0
- package/skills/workflow-fix-and-ship/SKILL.md +136 -0
- package/skills/workflow-git-commit/SKILL.md +200 -0
- package/skills/workflow-green-repo/SKILL.md +166 -0
- package/skills/workflow-grilling/SKILL.md +73 -0
- package/skills/workflow-gtm/SKILL.md +153 -0
- package/skills/workflow-housekeep/SKILL.md +453 -0
- package/skills/workflow-housekeep/references/templates.md +109 -0
- package/skills/workflow-launch-ready/SKILL.md +145 -0
- package/skills/workflow-merge-conflicts/SKILL.md +62 -0
- package/skills/workflow-onboard/SKILL.md +99 -0
- package/skills/workflow-parallel-agents/SKILL.md +164 -0
- package/skills/workflow-pr/SKILL.md +197 -0
- package/skills/workflow-quality-gate/SKILL.md +147 -0
- package/skills/workflow-refactor/SKILL.md +274 -0
- package/skills/workflow-release-prep/SKILL.md +207 -0
- package/skills/workflow-ship-and-observe/SKILL.md +164 -0
- package/skills/workflow-spec-tdd/SKILL.md +141 -0
- package/skills/workflow-spec-tdd/references/spec-template.md +126 -0
- package/skills/workflow-spec-tdd/references/tdd-patterns.md +167 -0
- package/skills-cursor/babysit/SKILL.md +17 -0
- package/skills-cursor/canvas/SKILL.md +142 -0
- package/skills-cursor/canvas/sdk/canvas-tokens.d.ts +235 -0
- package/skills-cursor/canvas/sdk/chart-primitives.d.ts +200 -0
- package/skills-cursor/canvas/sdk/dag-layout.d.ts +102 -0
- package/skills-cursor/canvas/sdk/diff-view.d.ts +130 -0
- package/skills-cursor/canvas/sdk/form-primitives.d.ts +194 -0
- package/skills-cursor/canvas/sdk/hooks.d.ts +117 -0
- package/skills-cursor/canvas/sdk/index.d.ts +47 -0
- package/skills-cursor/canvas/sdk/theme.d.ts +61 -0
- package/skills-cursor/canvas/sdk/todo-list.d.ts +49 -0
- package/skills-cursor/canvas/sdk/ui-primitives.d.ts +549 -0
- package/skills-cursor/canvas/sdk/ui-primitives.test.d.ts +2 -0
- package/skills-cursor/create-hook/SKILL.md +238 -0
- package/skills-cursor/create-rule/SKILL.md +185 -0
- package/skills-cursor/create-skill/SKILL.md +269 -0
- package/skills-cursor/create-skill/references/authoring-guide.md +182 -0
- package/skills-cursor/create-subagent/SKILL.md +228 -0
- package/skills-cursor/migrate-to-skills/SKILL.md +121 -0
- package/skills-cursor/shell/SKILL.md +22 -0
- package/skills-cursor/split-to-prs/SKILL.md +47 -0
- package/skills-cursor/statusline/SKILL.md +193 -0
- package/skills-cursor/update-cli-config/SKILL.md +85 -0
- package/skills-cursor/update-cursor-settings/SKILL.md +137 -0
- package/skills.sh.json +297 -0
|
@@ -0,0 +1,364 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: test-qa
|
|
3
|
+
description: >
|
|
4
|
+
Web-app CRUD and story QA when no project-specific skill applies. Use when
|
|
5
|
+
"QA the app", "test CRUD", or "smoke test". Native → mobile-emulator-test.
|
|
6
|
+
Guest vs logged in → test-exploratory. Pixel diffs → test-visual-regression.
|
|
7
|
+
license: MIT
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# test-qa — Story-driven CRUD, not a monkey test
|
|
11
|
+
|
|
12
|
+
**Degree of freedom: MIXED** — story generation and severity `[HIGH freedom]`;
|
|
13
|
+
session, anti-stall, and CRUD verify-after-refresh `[LOW freedom — run exactly]`.
|
|
14
|
+
Driver is **playwright-cli**, never Playwright MCP. Guest-vs-authed wander is
|
|
15
|
+
`test-exploratory` — do not reclaim it.
|
|
16
|
+
|
|
17
|
+
Full QA of a live webapp as a senior QA engineer preparing a production
|
|
18
|
+
release: user-story-driven coverage, CRUD, data-pipeline integrity, UX, and
|
|
19
|
+
edge cases. This is **not** a page-navigation monkey test.
|
|
20
|
+
Your turn ends after Phase 5 with every discovered route crawled and every CRUD entity proven after refresh — not after the crawl with CRUD still owed, and not with an auth-required page silently skipped instead of marked BLOCKED.
|
|
21
|
+
|
|
22
|
+
Read `protocol-browser-anti-stall` before any browser step (Rule 0: manual &
|
|
23
|
+
headed). Also `references/playwright-session-coordination.md` in that folder.
|
|
24
|
+
|
|
25
|
+
## This skill vs neighbors
|
|
26
|
+
|
|
27
|
+
| Skill | Owns |
|
|
28
|
+
|:------|:-----|
|
|
29
|
+
| **test-qa** (this) | Story-driven CRUD + smoke; persist after refresh (+ DB) |
|
|
30
|
+
| `test-exploratory` | Unscripted wander + **guest vs authed diff** |
|
|
31
|
+
| `test-playwright` | This-diff PDCA + fix-as-you-go |
|
|
32
|
+
| `test-red-team` | Hostile feature×dimension matrix |
|
|
33
|
+
| `test-visual-regression` | Pixel baselines |
|
|
34
|
+
| `plan-stub-checker` | Dead buttons / fake components (plan) |
|
|
35
|
+
|
|
36
|
+
## How to reason (every finding)
|
|
37
|
+
|
|
38
|
+
1. **Observe** — screenshot + console + network (+ DB if available)
|
|
39
|
+
2. **Interpret** — persist fail, dead control, UX defect, or expected empty?
|
|
40
|
+
3. **Classify** — PASS / FAIL / BLOCKED (auth) — never "sort of works"
|
|
41
|
+
4. **Severity** — Critical (blocks ship) / Major (bad UX) / Minor (polish)
|
|
42
|
+
|
|
43
|
+
## Worked example
|
|
44
|
+
|
|
45
|
+
> **Observe:** POST /api/items 201; list shows "QA-TEST-Widget"; after hard
|
|
46
|
+
> `goto` the row is gone. Console clean.
|
|
47
|
+
> **Interpret:** optimistic UI; write never persisted.
|
|
48
|
+
> **Classify:** FAIL — data pipeline (ghost create).
|
|
49
|
+
> **Severity:** Critical — CRUD not verified E2E.
|
|
50
|
+
|
|
51
|
+
## Critical rules
|
|
52
|
+
|
|
53
|
+
- **Manual & headed, never scripted.** One `playwright-cli` action at a time.
|
|
54
|
+
`eval` / `run-code` inspection-only. No `*.spec.ts`, no `npx playwright test`.
|
|
55
|
+
- **User in the chair, engineer in the head.** First-open navigation; inspect
|
|
56
|
+
like you know the stack.
|
|
57
|
+
- **Every mutation verified E2E.** Create/update/delete is untested until the
|
|
58
|
+
change survives a refresh **and** (if DB access exists) the row matches.
|
|
59
|
+
- **Evidence for every finding.** Screenshot + console + network + repro.
|
|
60
|
+
- **Clean up.** Delete `QA-TEST-` data. Leave auth session intact.
|
|
61
|
+
- **No invented routes.** Discover pages/entities from source first.
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Phase 0: Codebase Discovery [HIGH freedom]
|
|
66
|
+
|
|
67
|
+
### 0a. Detect Tech Stack
|
|
68
|
+
|
|
69
|
+
Read the dependency manifest (`package.json`, `requirements.txt`,
|
|
70
|
+
`pyproject.toml`, `Cargo.toml`, `go.mod`). Record framework, UI lib, auth,
|
|
71
|
+
DB/ORM, state, CSS, and `scripts.dev` port (3000 / 3001 / 5173 / 5174).
|
|
72
|
+
|
|
73
|
+
### 0b. Discover Routes
|
|
74
|
+
|
|
75
|
+
| Framework | Scan Pattern |
|
|
76
|
+
|-----------|-------------|
|
|
77
|
+
| Next.js App Router | `app/**/page.tsx` or `app/**/page.js` |
|
|
78
|
+
| Next.js Pages | `pages/**/*.tsx` (excluding `_app`, `_document`) |
|
|
79
|
+
| Remix | `app/routes/**/*.tsx` |
|
|
80
|
+
| SvelteKit | `src/routes/**/+page.svelte` |
|
|
81
|
+
| Nuxt | `pages/**/*.vue` |
|
|
82
|
+
| React Router (SPA) | Grep for `<Route` or `createBrowserRouter` |
|
|
83
|
+
| Django | `urls.py` files |
|
|
84
|
+
| Rails | `config/routes.rb` |
|
|
85
|
+
|
|
86
|
+
For each route: path, dynamic segments, layout nesting, auth guard.
|
|
87
|
+
|
|
88
|
+
### 0c. Discover Data Model
|
|
89
|
+
|
|
90
|
+
| Source | Where |
|
|
91
|
+
|--------|-------|
|
|
92
|
+
| Supabase migrations | `supabase/migrations/*.sql` — tables, RLS |
|
|
93
|
+
| Prisma schema | `prisma/schema.prisma` |
|
|
94
|
+
| Drizzle schema | `drizzle/schema.ts` or `src/db/schema.ts` |
|
|
95
|
+
| TypeScript types | `types/*.ts`, `**/types.ts` |
|
|
96
|
+
| API routes | `app/api/**` — CRUD endpoints |
|
|
97
|
+
| Feature files | `features/*/` — services, hooks, components |
|
|
98
|
+
|
|
99
|
+
For each entity: name, key fields, CRUD capabilities, relationships.
|
|
100
|
+
|
|
101
|
+
### 0d. Discover Auth Pattern
|
|
102
|
+
|
|
103
|
+
Provider config (`createClient`, `NextAuth`, `ClerkProvider`, `Auth0Provider`);
|
|
104
|
+
login (`signIn` / `login` / `authenticate`); test credentials (`.env.local`,
|
|
105
|
+
`.env.test`, `.env.example`, README); protected routes (middleware, guards).
|
|
106
|
+
|
|
107
|
+
### 0e. Read Feature Documentation
|
|
108
|
+
|
|
109
|
+
Feature-directory READMEs (`@_*-README.md`, `docs/`) for expected behavior.
|
|
110
|
+
|
|
111
|
+
### 0f. Record Discovery Results
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
APP DISCOVERY:
|
|
115
|
+
- Framework: [name + version]
|
|
116
|
+
- Dev server: http://localhost:[port]
|
|
117
|
+
- Auth: [provider + method]
|
|
118
|
+
- Test account: [email / password, or "none found — ask user"]
|
|
119
|
+
- Routes discovered: [count]
|
|
120
|
+
- Public: [list]
|
|
121
|
+
- Auth-required: [list]
|
|
122
|
+
- Dynamic: [list with param patterns]
|
|
123
|
+
- Data entities: [list with CRUD capabilities]
|
|
124
|
+
- API endpoints: [count]
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Phase 1: Environment Verification [LOW freedom — session exact]
|
|
130
|
+
|
|
131
|
+
### 1a. Verify Dev Server Running
|
|
132
|
+
|
|
133
|
+
Check the terminals folder for `npm run dev` / `pnpm dev` / `next dev`. If
|
|
134
|
+
none, tell the user and stop.
|
|
135
|
+
|
|
136
|
+
### 1b. Load the app (own your session)
|
|
137
|
+
|
|
138
|
+
1. Session name `-s=qa-<app>`; never reuse another agent's name.
|
|
139
|
+
2. Isolated browser — add `--persistent --profile` if login is required:
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
PW="npx --yes @playwright/cli@latest"
|
|
143
|
+
$PW -s=qa-<app> open --headed http://localhost:3000
|
|
144
|
+
sleep 2
|
|
145
|
+
$PW -s=qa-<app> snapshot
|
|
146
|
+
$PW -s=qa-<app> screenshot --filename .playwright-mcp/qa-baseline.png
|
|
147
|
+
$PW -s=qa-<app> console
|
|
148
|
+
$PW -s=qa-<app> requests
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Blank after 3 incremental waits (6s) → blocker.
|
|
152
|
+
|
|
153
|
+
### 1c. Authenticate (reuse session — do not re-login every run)
|
|
154
|
+
|
|
155
|
+
Follow `protocol-browser-anti-stall/references/playwright-session-coordination.md`.
|
|
156
|
+
|
|
157
|
+
1. Hit a **protected route** — if already signed in, skip to 1d.
|
|
158
|
+
2. `state-load .playwright-mcp/auth/<host>.json` if it exists (or reuse the
|
|
159
|
+
`--persistent --profile` directory).
|
|
160
|
+
3. If still logged out:
|
|
161
|
+
- Email/password: credentials from `.env.test` / README (never paste secrets).
|
|
162
|
+
- **OAuth / SSO**: sign in in the visible window; incremental snapshots;
|
|
163
|
+
then `state-save .playwright-mcp/auth/<host>.json`.
|
|
164
|
+
- **Google** cannot sign in from a Playwright-launched browser — use the
|
|
165
|
+
one-time real-Chrome profile in the coordination reference.
|
|
166
|
+
4. Verify auth (avatar, dashboard, protected pages).
|
|
167
|
+
5. **Do not log out** at cleanup unless testing logout.
|
|
168
|
+
|
|
169
|
+
If auth is impossible, mark auth-required pages BLOCKED and test public only.
|
|
170
|
+
|
|
171
|
+
### 1d. Capture Baseline
|
|
172
|
+
|
|
173
|
+
```
|
|
174
|
+
BASELINE:
|
|
175
|
+
- URL: [current URL]
|
|
176
|
+
- Console errors: [count — list if any]
|
|
177
|
+
- Network failures: [count — list if any]
|
|
178
|
+
- Visible content: [brief description]
|
|
179
|
+
- Screenshot: [reference]
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Phase 2: Intelligent Page Crawl [HIGH freedom]
|
|
185
|
+
|
|
186
|
+
For EVERY route from Phase 0b:
|
|
187
|
+
|
|
188
|
+
### 2a. Navigate and Capture
|
|
189
|
+
|
|
190
|
+
`goto` → anti-stall (2s → snapshot → verify) → `screenshot` → `console` →
|
|
191
|
+
`requests`.
|
|
192
|
+
|
|
193
|
+
### 2b. Classify the Page
|
|
194
|
+
|
|
195
|
+
| Classification | Signals |
|
|
196
|
+
|---------------|---------|
|
|
197
|
+
| **CRUD page** | Forms, edit/delete, data tables |
|
|
198
|
+
| **Display page** | Data, no mutation (dashboards, profiles) |
|
|
199
|
+
| **Settings page** | Toggles, selects, save for preferences |
|
|
200
|
+
| **Auth page** | Login, register, forgot password |
|
|
201
|
+
| **Static page** | About, terms, privacy |
|
|
202
|
+
| **Navigation hub** | Links to children (home, index) |
|
|
203
|
+
|
|
204
|
+
### 2c. Detect findings during crawl
|
|
205
|
+
|
|
206
|
+
| Check | What to Look For |
|
|
207
|
+
|-------|-----------------|
|
|
208
|
+
| **Dead page** | 404, error boundary, blank |
|
|
209
|
+
| **Console errors** | JS / React errors, failed assertions |
|
|
210
|
+
| **Network failures** | 4xx/5xx, CORS, timeouts |
|
|
211
|
+
| **Missing content** | "undefined", "null", "NaN", "[object Object]" |
|
|
212
|
+
| **Mock data** | "Lorem ipsum", "TODO", "test", "example@" |
|
|
213
|
+
| **Dead buttons** | No onClick / navigate nowhere (snapshot) |
|
|
214
|
+
| **Missing metadata** | Empty or generic `document.title` |
|
|
215
|
+
| **Loading stuck** | Spinner/skeleton after 6s |
|
|
216
|
+
| **Empty state** | No data AND no helpful empty message |
|
|
217
|
+
| **Broken images** | Missing/broken `src` or error fallback |
|
|
218
|
+
| **Overflow** | Text/elements past their containers |
|
|
219
|
+
|
|
220
|
+
### 2d. Build Feature Map
|
|
221
|
+
|
|
222
|
+
```
|
|
223
|
+
FEATURE MAP:
|
|
224
|
+
- CRUD pages: [entity + operations]
|
|
225
|
+
- Forms found: [page + purpose]
|
|
226
|
+
- Data displays: [tables, lists, cards, charts]
|
|
227
|
+
- Interactive elements: [buttons, toggles, dropdowns per page]
|
|
228
|
+
- Search/filter: [pages]
|
|
229
|
+
- Settings: [configurable preferences]
|
|
230
|
+
- Dead buttons found: [page + element]
|
|
231
|
+
- Pages with errors: [list]
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## Phase 3: Dynamic User Story Generation [HIGH freedom]
|
|
237
|
+
|
|
238
|
+
Stories come from the feature map, not a canned list.
|
|
239
|
+
|
|
240
|
+
| Cat | Story | Drive |
|
|
241
|
+
|-----|-------|-------|
|
|
242
|
+
| A | First impression | Home: value prop in 3s, CTA, guest-reachable nav, trust |
|
|
243
|
+
| B | Core journey | Primary purpose from Phase 0, start to finish |
|
|
244
|
+
| C | CRUD per entity | **Phase 4** — verify persist after refresh (+ DB) |
|
|
245
|
+
| D | Navigation | Every nav link, back/forward, breadcrumbs, no dead ends |
|
|
246
|
+
| E | Search/filter | Known hit, empty miss + helpful empty, filters |
|
|
247
|
+
| F | Errors | Empty required, invalid input, `/nonexistent` 404, network fail |
|
|
248
|
+
| G | Settings | Change, navigate away, come back — preference persisted |
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## Phase 4: CRUD Testing [LOW freedom — verify after refresh]
|
|
253
|
+
|
|
254
|
+
For each CRUD-capable entity, run the lifecycle.
|
|
255
|
+
|
|
256
|
+
### 4a. Create
|
|
257
|
+
|
|
258
|
+
1. Open the creation form; identify fields via `snapshot`
|
|
259
|
+
2. Fill realistic data: text `QA-TEST-[field]-[timestamp]`; domain-sane
|
|
260
|
+
numbers/dates; valid select; non-default toggle
|
|
261
|
+
3. `screenshot` before submit
|
|
262
|
+
4. Submit; `requests` must be 2xx; `snapshot` + `screenshot` for success
|
|
263
|
+
feedback (toast, redirect, confirmation)
|
|
264
|
+
|
|
265
|
+
**Record** the item's ID, name, and URL.
|
|
266
|
+
|
|
267
|
+
### 4b. Read
|
|
268
|
+
|
|
269
|
+
List view → find the item → displayed fields match → detail view (if any)
|
|
270
|
+
matches → `screenshot`.
|
|
271
|
+
|
|
272
|
+
### 4c. Update
|
|
273
|
+
|
|
274
|
+
Edit 1–2 fields → `screenshot` before save → save → `requests` 2xx → UI
|
|
275
|
+
updates → hard-refresh (`goto` same URL) → changes still there.
|
|
276
|
+
|
|
277
|
+
### 4d. Delete
|
|
278
|
+
|
|
279
|
+
`screenshot` before → delete (+ confirm if any) → `requests` 2xx → gone from
|
|
280
|
+
list → detail URL is 404 or redirect.
|
|
281
|
+
|
|
282
|
+
### 4e. Validation Testing
|
|
283
|
+
|
|
284
|
+
1. **Empty submission** → inline validation
|
|
285
|
+
2. **Invalid data** — wrong format, text in number field → specific errors
|
|
286
|
+
3. **Boundary** — 500+ chars, zero, negative, past dates
|
|
287
|
+
4. **Special characters** — `<script>alert('xss')</script>`, `'; DROP TABLE`,
|
|
288
|
+
emoji, Unicode
|
|
289
|
+
5. **Duplicate** — create the same item twice → duplicate handling
|
|
290
|
+
|
|
291
|
+
### 4f. Data Pipeline Verification
|
|
292
|
+
|
|
293
|
+
After each mutation:
|
|
294
|
+
|
|
295
|
+
1. **Network** — `requests`: call made? status?
|
|
296
|
+
2. **Response** — body has expected data?
|
|
297
|
+
3. **UI** — reflects mutation without a manual refresh?
|
|
298
|
+
4. **Refresh** — after `goto` same page, still visible?
|
|
299
|
+
5. **DB** (if Supabase MCP or DB access):
|
|
300
|
+
|
|
301
|
+
```json
|
|
302
|
+
supabase:execute_sql
|
|
303
|
+
{
|
|
304
|
+
"query": "SELECT * FROM <table> WHERE <identifying_column> LIKE 'QA-TEST-%' ORDER BY created_at DESC LIMIT 5"
|
|
305
|
+
}
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
**Pipeline failures:** optimistic UI but API failed; stale cache; missing
|
|
309
|
+
invalidation (item appears only after refresh); ghost data (deleted item
|
|
310
|
+
returns); silent 4xx/5xx.
|
|
311
|
+
|
|
312
|
+
---
|
|
313
|
+
|
|
314
|
+
## Phase 5: UX Quality Audit [HIGH freedom]
|
|
315
|
+
|
|
316
|
+
Assess each page. Layout breakage → `audit-responsive`. Empty/error chrome →
|
|
317
|
+
`audit-ui-states`. Do not re-own those audits.
|
|
318
|
+
|
|
319
|
+
### 5a. Visual Quality
|
|
320
|
+
|
|
321
|
+
| Check | How to Verify |
|
|
322
|
+
|-------|--------------|
|
|
323
|
+
| Consistent spacing | Screenshot — no irregular gaps or cramped areas |
|
|
324
|
+
| Typography | No mixed sizes where they should match; no orphaned headings |
|
|
325
|
+
| Truncation | Ellipsis where appropriate, not clipped |
|
|
326
|
+
| Image loading | All images render; no broken-image icons |
|
|
327
|
+
| Icons | All icons render (no missing squares) |
|
|
328
|
+
| Dark mode | If supported: toggle; no white flashes |
|
|
329
|
+
| Responsive | 1280 / 768 / 375 — layout adapts without breaking |
|
|
330
|
+
|
|
331
|
+
### 5b. Interaction Quality
|
|
332
|
+
|
|
333
|
+
| Check | How to Verify |
|
|
334
|
+
|-------|--------------|
|
|
335
|
+
| Dead buttons | Click every button. Does it do something? |
|
|
336
|
+
| Form labels | Every input has a visible label or accessible name |
|
|
337
|
+
| Loading states | Data fetch shows a loading indicator |
|
|
338
|
+
| Success feedback | After mutations — toast, confirmation, or visual change |
|
|
339
|
+
| Error feedback | Failures — helpful, visible |
|
|
340
|
+
| Disabled states | Visually distinct; reason clear |
|
|
341
|
+
| Focus management | After modal close or submit, focus moves |
|
|
342
|
+
|
|
343
|
+
### 5c. Information Architecture
|
|
344
|
+
|
|
345
|
+
| Check | How to Verify |
|
|
346
|
+
|-------|--------------|
|
|
347
|
+
| Page titles | `document.title` descriptive and unique |
|
|
348
|
+
| Active nav state | Current page highlighted |
|
|
349
|
+
| Dead ends | Any page with no way forward or back? |
|
|
350
|
+
| Empty states | No data — helpful message? |
|
|
351
|
+
| 404 page | `/nonexistent-page` — helpful 404? |
|
|
352
|
+
|
|
353
|
+
## Self-critique before reporting [LOW freedom — do not skip]
|
|
354
|
+
|
|
355
|
+
1. **CRUD E2E** — create/update/delete proven after refresh (+ DB if available)
|
|
356
|
+
2. **Evidence** — every FAIL has screenshot + console + network + repro
|
|
357
|
+
3. **Cleanup** — `QA-TEST-` rows gone; auth session left intact
|
|
358
|
+
4. **Right owner** — guest/authed wander → `test-exploratory`; pixel →
|
|
359
|
+
`test-visual-regression`; hostile → `test-red-team`
|
|
360
|
+
5. **Binary** — no "sort of works"
|
|
361
|
+
|
|
362
|
+
## Further reading
|
|
363
|
+
|
|
364
|
+
- [5d. Data Display Quality and more](references/details.md)
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
### 5d. Data Display Quality
|
|
2
|
+
|
|
3
|
+
| Check | What to Look For |
|
|
4
|
+
|-------|-----------------|
|
|
5
|
+
| Formatting | Currency, dates, percentages displayed correctly for locale |
|
|
6
|
+
| Raw data leaks | "undefined", "null", "NaN", "[object Object]", "Invalid Date" visible |
|
|
7
|
+
| Mock/placeholder | "Lorem ipsum", "TODO", "test@example.com", "John Doe" in production data |
|
|
8
|
+
| Number accuracy | Totals match sum of line items. Percentages sum to ~100%. |
|
|
9
|
+
| Table headers | Every column has a header. Sort indicators if sortable. |
|
|
10
|
+
| Chart labels | Axes labeled, legend present, values readable |
|
|
11
|
+
|
|
12
|
+
### 5e. Accessibility Basics
|
|
13
|
+
|
|
14
|
+
| Check | How to Verify |
|
|
15
|
+
|-------|--------------|
|
|
16
|
+
| Accessible names | Interactive elements have `aria-label`, `aria-labelledby`, or visible text |
|
|
17
|
+
| Color contrast | Text readable against background (use screenshot inspection) |
|
|
18
|
+
| Focus visible | Tab through the page — can you see where focus is? |
|
|
19
|
+
| Form labels | `<label>` elements associated with `<input>` via `for`/`htmlFor` |
|
|
20
|
+
| Alt text | Images have `alt` attributes (check via snapshot) |
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Phase 6: Edge Case and Stress Testing
|
|
25
|
+
|
|
26
|
+
### 6a. Input Boundary Testing
|
|
27
|
+
|
|
28
|
+
For each form field:
|
|
29
|
+
|
|
30
|
+
| Input Type | Test Values |
|
|
31
|
+
|-----------|------------|
|
|
32
|
+
| Text | Empty, 1 char, 500 chars, 5000 chars |
|
|
33
|
+
| Number | 0, -1, 999999999, 0.001, NaN (type "abc") |
|
|
34
|
+
| Email | Missing @, double @, special chars, very long |
|
|
35
|
+
| Date | Past (1900-01-01), future (2099-12-31), today |
|
|
36
|
+
| URL | No protocol, invalid TLD, very long |
|
|
37
|
+
| Select | First option, last option, no selection |
|
|
38
|
+
|
|
39
|
+
### 6b. Rapid Interaction
|
|
40
|
+
|
|
41
|
+
1. Double-click submit buttons — does it submit twice? (Check network requests)
|
|
42
|
+
2. Click a navigation link 3 times rapidly — does it crash or navigate correctly?
|
|
43
|
+
3. Toggle a setting on/off/on/off quickly — does it end in the correct state?
|
|
44
|
+
|
|
45
|
+
### 6c. Navigation Edge Cases
|
|
46
|
+
|
|
47
|
+
1. Browser back button from every page — does it go to the right place?
|
|
48
|
+
2. Browser forward button after going back — works correctly?
|
|
49
|
+
3. Direct URL access to every page (not via navigation) — loads correctly?
|
|
50
|
+
4. Bookmark a page, close tab, reopen — same state?
|
|
51
|
+
|
|
52
|
+
### 6d. Error State Testing
|
|
53
|
+
|
|
54
|
+
1. Navigate to `/this-page-does-not-exist` → expect proper 404
|
|
55
|
+
2. If possible, trigger API errors → expect user-facing error messages
|
|
56
|
+
3. Submit invalid data in every form → expect inline validation
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Phase 7: Cleanup
|
|
61
|
+
|
|
62
|
+
Remove all test data created during testing:
|
|
63
|
+
|
|
64
|
+
1. Delete any items prefixed with `QA-TEST-`
|
|
65
|
+
2. Reset any settings changed during testing
|
|
66
|
+
3. If DB access available, verify cleanup:
|
|
67
|
+
|
|
68
|
+
```sql
|
|
69
|
+
SELECT * FROM <table> WHERE <name_column> LIKE 'QA-TEST-%';
|
|
70
|
+
-- Should return 0 rows
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
4. **Keep auth session** — do not log out; leave the session's `--profile` directory (or
|
|
74
|
+
`state-save` file) intact for the next
|
|
75
|
+
agent/skill unless you were testing logout explicitly.
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Phase 8: Report
|
|
80
|
+
|
|
81
|
+
Produce the final QA report:
|
|
82
|
+
|
|
83
|
+
```markdown
|
|
84
|
+
## QA Test Report — [Project Name]
|
|
85
|
+
|
|
86
|
+
### Environment
|
|
87
|
+
- URL: [url tested]
|
|
88
|
+
- Framework: [detected framework + version]
|
|
89
|
+
- Auth: [method used or "guest"]
|
|
90
|
+
- Date: [date]
|
|
91
|
+
|
|
92
|
+
### Discovery Summary
|
|
93
|
+
- Routes in codebase: [N]
|
|
94
|
+
- Pages tested: [N]
|
|
95
|
+
- Data entities found: [N]
|
|
96
|
+
- CRUD-capable entities tested: [N]
|
|
97
|
+
|
|
98
|
+
### Test Summary
|
|
99
|
+
|
|
100
|
+
| Metric | Value |
|
|
101
|
+
|--------|-------|
|
|
102
|
+
| User stories executed | [N] |
|
|
103
|
+
| Individual test steps | [N] |
|
|
104
|
+
| CRUD operations performed | [N] |
|
|
105
|
+
| Passed | [N] |
|
|
106
|
+
| Failed | [N] |
|
|
107
|
+
| Blocked | [N] |
|
|
108
|
+
| Pass rate | [%] |
|
|
109
|
+
|
|
110
|
+
### Critical Issues (blocks production release)
|
|
111
|
+
|
|
112
|
+
| # | Page | Issue | Evidence | Steps to Reproduce |
|
|
113
|
+
|---|------|-------|----------|-------------------|
|
|
114
|
+
| 1 | [url] | [description] | [screenshot/console ref] | [steps] |
|
|
115
|
+
|
|
116
|
+
### Major Issues (degrades user experience)
|
|
117
|
+
|
|
118
|
+
| # | Page | Issue | Evidence | Recommendation |
|
|
119
|
+
|---|------|-------|----------|---------------|
|
|
120
|
+
| 1 | [url] | [description] | [ref] | [how to fix] |
|
|
121
|
+
|
|
122
|
+
### Minor Issues (polish for design award)
|
|
123
|
+
|
|
124
|
+
| # | Page | Issue | Quick Fix |
|
|
125
|
+
|---|------|-------|-----------|
|
|
126
|
+
| 1 | [url] | [description] | [suggestion] |
|
|
127
|
+
|
|
128
|
+
### Data Pipeline Issues
|
|
129
|
+
|
|
130
|
+
| # | Entity | Operation | Issue | Evidence |
|
|
131
|
+
|---|--------|-----------|-------|----------|
|
|
132
|
+
| 1 | [entity] | [create/update/delete] | [what went wrong] | [network/DB evidence] |
|
|
133
|
+
|
|
134
|
+
### Dead / Mock Code Detected
|
|
135
|
+
|
|
136
|
+
| # | Page | Finding |
|
|
137
|
+
|---|------|---------|
|
|
138
|
+
| 1 | [url] | [dead button / mock data / placeholder text] |
|
|
139
|
+
|
|
140
|
+
### UX Quality Highlights
|
|
141
|
+
|
|
142
|
+
#### What Works Well
|
|
143
|
+
1. [genuine positive with evidence]
|
|
144
|
+
2. [genuine positive with evidence]
|
|
145
|
+
|
|
146
|
+
#### Design-Award Readiness
|
|
147
|
+
- Visual consistency: [score 1-5]
|
|
148
|
+
- Interaction feedback: [score 1-5]
|
|
149
|
+
- Empty/error states: [score 1-5]
|
|
150
|
+
- Data display quality: [score 1-5]
|
|
151
|
+
- Accessibility basics: [score 1-5]
|
|
152
|
+
|
|
153
|
+
### Pages Not Tested
|
|
154
|
+
|
|
155
|
+
| Page | Reason |
|
|
156
|
+
|------|--------|
|
|
157
|
+
| [url] | [BLOCKED: auth / SKIPPED: reason] |
|
|
158
|
+
|
|
159
|
+
### Cleanup Verification
|
|
160
|
+
- Test data created: [N items]
|
|
161
|
+
- Test data deleted: [N items]
|
|
162
|
+
- Orphaned test data: [N — details if any]
|
|
163
|
+
|
|
164
|
+
### Production Readiness Score
|
|
165
|
+
|
|
166
|
+
**[N] / 10** — [1-2 sentence justification]
|
|
167
|
+
|
|
168
|
+
| Score | Meaning |
|
|
169
|
+
|-------|---------|
|
|
170
|
+
| 9-10 | Ship it. Design-award ready. |
|
|
171
|
+
| 7-8 | Ship after fixing critical/major issues. Solid. |
|
|
172
|
+
| 5-6 | Needs work. Multiple major issues. |
|
|
173
|
+
| 3-4 | Not ready. Fundamental problems. |
|
|
174
|
+
| 1-2 | Broken. Major rework needed. |
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Sentry Integration (optional)
|
|
180
|
+
|
|
181
|
+
If the project has Sentry configured (detected in Phase 0), check for production errors
|
|
182
|
+
related to tested features:
|
|
183
|
+
|
|
184
|
+
```json
|
|
185
|
+
sentry:search_issues
|
|
186
|
+
{
|
|
187
|
+
"organizationSlug": "<ORG_SLUG>",
|
|
188
|
+
"query": "unresolved issues from the last 7 days",
|
|
189
|
+
"projectSlugOrId": "<PROJECT_SLUG>",
|
|
190
|
+
"regionUrl": "<REGION_URL>",
|
|
191
|
+
"limit": 30
|
|
192
|
+
}
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
Cross-reference Sentry issues with pages tested. If a page you tested has known production
|
|
196
|
+
errors, note them in the report under a "Known Production Issues" section.
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## Adapting to Different App Types
|
|
201
|
+
|
|
202
|
+
The skill auto-adapts based on what Phase 0 discovers. Here are common patterns:
|
|
203
|
+
|
|
204
|
+
| App Type | Focus Areas |
|
|
205
|
+
|----------|------------|
|
|
206
|
+
| **CRUD / SaaS** | Heavy CRUD lifecycle testing, data pipeline verification, form validation |
|
|
207
|
+
| **Content / CMS** | Content rendering, search, filtering, pagination, media loading |
|
|
208
|
+
| **E-commerce** | Cart operations, checkout flow, pricing accuracy, inventory states |
|
|
209
|
+
| **Social** | User interactions, feed rendering, notifications, privacy settings |
|
|
210
|
+
| **Language learning** | Lesson flow completion, progress tracking, content accuracy |
|
|
211
|
+
| **Dashboard / Analytics** | Chart rendering, data accuracy, filter interactions, export |
|
|
212
|
+
| **Mobile-first PWA** | Touch targets, offline states, install prompt, viewport testing |
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## Test Data Guidelines
|
|
217
|
+
|
|
218
|
+
When generating test data for CRUD operations:
|
|
219
|
+
|
|
220
|
+
- **Prefix all test data** with `QA-TEST-` for easy identification and cleanup
|
|
221
|
+
- **Use realistic but obviously fake values**: `QA-TEST-Widget-1712345678`, `qa-test@example.com`
|
|
222
|
+
- **Never use real personal data** or production credentials
|
|
223
|
+
- **Respect domain constraints**: if the app is financial, use realistic but fake numbers
|
|
224
|
+
- **Cover multiple data types**: strings, numbers, dates, booleans, selections
|
|
225
|
+
- **Test with the app's locale**: if the app is in Japanese, test with Japanese input too
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## Execution Protocol
|
|
230
|
+
|
|
231
|
+
For each test step, follow this cycle:
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
PW="npx --yes @playwright/cli@latest"; S="-s=qa-<app>"
|
|
235
|
+
$PW $S goto "<url>" # 1. if moving pages
|
|
236
|
+
sleep 2 && $PW $S snapshot # 2. anti-stall: verify loaded + get refs
|
|
237
|
+
$PW $S click <ref> # 3. interact (click / fill / type / press)
|
|
238
|
+
$PW $S snapshot # 4. fresh refs after interaction
|
|
239
|
+
$PW $S console # 5. check for errors
|
|
240
|
+
$PW $S requests # 6. check for failures
|
|
241
|
+
$PW $S screenshot --filename ".playwright-mcp/<step>.png" # 7. evidence
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
8. Evaluate: PASS or FAIL with evidence.
|
|
245
|
+
9. `$PW $S close` when the run is done.
|
|
246
|
+
|
|
247
|
+
**Timeout budget:**
|
|
248
|
+
- Single interaction: 15 seconds max
|
|
249
|
+
- Page navigation + verification: 30 seconds max
|
|
250
|
+
- Full CRUD lifecycle per entity: 5 minutes max
|
|
251
|
+
- Full test suite: 30 minutes max
|
|
252
|
+
|
|
253
|
+
If any step exceeds its budget, log `[TIMEOUT]` and move on.
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
## Important Rules
|
|
258
|
+
|
|
259
|
+
1. **Read the codebase first (Phase 0).** Routes, entities, and auth come from the code, not from guessing at the UI.
|
|
260
|
+
2. **Use playwright-cli** for all browser interaction: `goto`, `snapshot`, `screenshot`, `click`, `fill`, `type`, `press`, `console`, `requests`, `close`, `find`.
|
|
261
|
+
3. **Apply anti-stall protocol** to every interaction. Read `protocol-browser-anti-stall` skill first.
|
|
262
|
+
4. **Screenshot every test step.** Every pass and fail needs visual evidence.
|
|
263
|
+
5. **Check console and network** after every page load and every mutation.
|
|
264
|
+
6. **Clean up test data.** Delete everything prefixed with `QA-TEST-` at the end.
|
|
265
|
+
7. **Be binary on findings.** Each check either PASSES or FAILS. No "sort of works."
|
|
266
|
+
8. **Report severity honestly.** Critical = blocks release. Major = bad UX. Minor = polish.
|
|
267
|
+
9. **Note what works well.** Good QA reports include positives, not just bugs.
|
|
268
|
+
10. **Respect time budgets.** Skip stuck steps rather than freezing the entire session.
|