@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,422 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: research
|
|
3
|
+
description: >
|
|
4
|
+
Research current practice with Context7, Firecrawl, and official docs before
|
|
5
|
+
a non-trivial change: gap analysis and a file-mapped plan, no
|
|
6
|
+
implementation. Use when "look up current docs" or before anything
|
|
7
|
+
unfamiliar.
|
|
8
|
+
license: MIT
|
|
9
|
+
effort: high
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# research — Production research protocol
|
|
13
|
+
|
|
14
|
+
**Degree of freedom: MIXED.** Repo-first inventory and official-docs
|
|
15
|
+
order `[LOW freedom — run exactly]`. Which sources to trust and which
|
|
16
|
+
pattern to recommend `[HIGH freedom]`.
|
|
17
|
+
|
|
18
|
+
Understand the current repo first. Then fetch version-matched official
|
|
19
|
+
docs. Then map findings back to specific files. **Do not implement until
|
|
20
|
+
the user asks or approves.**
|
|
21
|
+
Recognizing a library, tool, or product name is not knowing its current state. Search the name as written and fetch the installed version's docs even when you think you already know the answer — that is the whole point of this skill.
|
|
22
|
+
|
|
23
|
+
## This skill vs neighbors
|
|
24
|
+
|
|
25
|
+
| Skill | Owns |
|
|
26
|
+
|---|---|
|
|
27
|
+
| **research** (this) | Current-year, version-matched investigation + gap analysis + plan |
|
|
28
|
+
| `plan-*` | Audit → approved burndown (no implementation) |
|
|
29
|
+
| `docs-adr` | Decision memory after a choice is made |
|
|
30
|
+
| `workflow-onboard` | First-contact repo orientation, not industry research |
|
|
31
|
+
| `complete-everything` | Execute an already-approved plan |
|
|
32
|
+
|
|
33
|
+
## How to reason
|
|
34
|
+
|
|
35
|
+
1. **Observe** — installed versions, current files, existing pattern
|
|
36
|
+
2. **Interpret** — what is actually missing vs what just looks old
|
|
37
|
+
3. **Classify** — keep / replace / add / reject (deprecated, CVE, untyped)
|
|
38
|
+
4. **Decide** — one recommended approach mapped to concrete files
|
|
39
|
+
|
|
40
|
+
## Worked example
|
|
41
|
+
|
|
42
|
+
> **Observe:** consumer asked whether `npx skills add` overwrites slash
|
|
43
|
+
> commands; pack ships both `commands/*.md` and `skills/*/`.
|
|
44
|
+
> **Interpret:** two installers, two `--all` meanings; Cursor now
|
|
45
|
+
> slash-invokes skills so same-name pairs look duplicated.
|
|
46
|
+
> **Classify:** docs lie (skills add claimed to install commands); npm
|
|
47
|
+
> installer merge-overwrites correctly.
|
|
48
|
+
> **Decide:** keep npm installer as the full-pack path; add `--verify`;
|
|
49
|
+
> promote this protocol from command-only to a skill.
|
|
50
|
+
|
|
51
|
+
## Self-critique
|
|
52
|
+
|
|
53
|
+
Before delivering the plan, fail the run if any of these are true:
|
|
54
|
+
|
|
55
|
+
- Repo files were not read before the first external search
|
|
56
|
+
- Official docs for the *installed* version were skipped when available
|
|
57
|
+
- A recommendation has no source, or only one weak blog post
|
|
58
|
+
- The plan is not mapped to concrete repo paths
|
|
59
|
+
- Implementation started without an explicit user ask
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Step 1: Understand the codebase context — before any external search
|
|
64
|
+
|
|
65
|
+
Before any external research, understand what you're working with.
|
|
66
|
+
|
|
67
|
+
### 1a. Discover Tech Stack
|
|
68
|
+
|
|
69
|
+
Read the dependency manifest to get exact library names and versions:
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
package.json (Node/JS/TS)
|
|
73
|
+
requirements.txt (Python)
|
|
74
|
+
pyproject.toml (Python)
|
|
75
|
+
Cargo.toml (Rust)
|
|
76
|
+
go.mod (Go)
|
|
77
|
+
build.gradle (Java/Kotlin)
|
|
78
|
+
Gemfile (Ruby)
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Extract: framework, major libraries, their exact versions.
|
|
82
|
+
|
|
83
|
+
### 1b. Read the Existing Implementation
|
|
84
|
+
|
|
85
|
+
Read the specific file(s) related to the topic being researched, in full — conventions, limitations, and TODOs live outside the obvious lines. Understand:
|
|
86
|
+
|
|
87
|
+
- What pattern is currently used?
|
|
88
|
+
- What dependencies does it rely on?
|
|
89
|
+
- What are the known limitations or TODOs?
|
|
90
|
+
- What conventions does the project follow?
|
|
91
|
+
|
|
92
|
+
### 1c. Formulate Research Questions
|
|
93
|
+
|
|
94
|
+
Write out explicitly:
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
Current state: [what the project does now]
|
|
98
|
+
Gap/goal: [what needs to improve or be added]
|
|
99
|
+
Specific questions:
|
|
100
|
+
1. [question about best practice]
|
|
101
|
+
2. [question about alternative approach]
|
|
102
|
+
3. [question about edge cases]
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Step 2: Context7 — Official Documentation
|
|
108
|
+
|
|
109
|
+
Fetch current docs for the libraries involved. Use the Context7 MCP (if available).
|
|
110
|
+
|
|
111
|
+
### Resolve Library ID
|
|
112
|
+
|
|
113
|
+
```json
|
|
114
|
+
context7:resolve-library-id
|
|
115
|
+
{
|
|
116
|
+
"libraryName": "<library-name>",
|
|
117
|
+
"query": "<your specific question>"
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Fetch Documentation
|
|
122
|
+
|
|
123
|
+
Pick the best match from the resolution results, then:
|
|
124
|
+
|
|
125
|
+
```json
|
|
126
|
+
context7:query-docs
|
|
127
|
+
{
|
|
128
|
+
"libraryId": "<selected-id>",
|
|
129
|
+
"query": "<your specific question>"
|
|
130
|
+
}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Run Context7 for each major library involved. Prefer version-specific IDs when available.
|
|
134
|
+
|
|
135
|
+
**If Context7 is unavailable**, skip to Step 3 and use Firecrawl to search official documentation sites directly.
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Step 3: Firecrawl — Three-Phase Deep Research
|
|
140
|
+
|
|
141
|
+
Use the `firecrawl` MCP server. The research happens in three phases: broad search, deep scrape, then discovery.
|
|
142
|
+
|
|
143
|
+
### Phase 1: Broad Search (find what's out there)
|
|
144
|
+
|
|
145
|
+
Search without scraping first — get URLs and snippets to evaluate:
|
|
146
|
+
|
|
147
|
+
```json
|
|
148
|
+
firecrawl:firecrawl_search
|
|
149
|
+
{
|
|
150
|
+
"query": "[library] [topic] best practices [current year]",
|
|
151
|
+
"limit": 5,
|
|
152
|
+
"sources": [{ "type": "web" }]
|
|
153
|
+
}
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
Run 2-3 search queries with different angles:
|
|
157
|
+
|
|
158
|
+
| Angle | Query Pattern |
|
|
159
|
+
|-------|---------------|
|
|
160
|
+
| Best practices | `[tech] [topic] best practices [current year]` |
|
|
161
|
+
| Implementation guide | `[tech] [topic] production implementation guide` |
|
|
162
|
+
| Common mistakes | `[tech] [topic] common mistakes pitfalls avoid` |
|
|
163
|
+
| Migration/upgrade | `[tech] [topic] migration guide from [old version]` |
|
|
164
|
+
| Security | `[tech] [topic] security OWASP [current year]` |
|
|
165
|
+
| Performance | `[tech] [topic] performance optimization production` |
|
|
166
|
+
|
|
167
|
+
Use search operators for precision:
|
|
168
|
+
|
|
169
|
+
- `site:` to target specific docs sites (e.g., `site:react.dev`, `site:nextjs.org`)
|
|
170
|
+
- `""` for exact phrases
|
|
171
|
+
- `-` to exclude irrelevant results
|
|
172
|
+
|
|
173
|
+
### Phase 2: Deep Scrape (read the best sources thoroughly)
|
|
174
|
+
|
|
175
|
+
From Phase 1 results, pick the 2-3 most authoritative URLs (official docs, maintainer blogs, engineering blogs). Scrape each for full content:
|
|
176
|
+
|
|
177
|
+
```json
|
|
178
|
+
firecrawl:firecrawl_scrape
|
|
179
|
+
{
|
|
180
|
+
"url": "<authoritative-url>",
|
|
181
|
+
"formats": ["markdown"],
|
|
182
|
+
"onlyMainContent": true
|
|
183
|
+
}
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
For extracting specific data points (config options, API parameters, migration steps):
|
|
187
|
+
|
|
188
|
+
```json
|
|
189
|
+
firecrawl:firecrawl_scrape
|
|
190
|
+
{
|
|
191
|
+
"url": "<docs-url>",
|
|
192
|
+
"formats": ["json"],
|
|
193
|
+
"jsonOptions": {
|
|
194
|
+
"prompt": "Extract the recommended configuration options and their default values",
|
|
195
|
+
"schema": {
|
|
196
|
+
"type": "object",
|
|
197
|
+
"properties": {
|
|
198
|
+
"options": {
|
|
199
|
+
"type": "array",
|
|
200
|
+
"items": {
|
|
201
|
+
"type": "object",
|
|
202
|
+
"properties": {
|
|
203
|
+
"name": { "type": "string" },
|
|
204
|
+
"recommended": { "type": "string" },
|
|
205
|
+
"description": { "type": "string" }
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
If a documentation site is large and you're not sure which page has the answer, use `firecrawl_map` first to discover the right page:
|
|
216
|
+
|
|
217
|
+
```json
|
|
218
|
+
firecrawl:firecrawl_map
|
|
219
|
+
{
|
|
220
|
+
"url": "https://docs.example.com",
|
|
221
|
+
"search": "[your topic]",
|
|
222
|
+
"limit": 20
|
|
223
|
+
}
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
Then scrape the specific page(s) found.
|
|
227
|
+
|
|
228
|
+
### Phase 3: Discovery (find reference implementations)
|
|
229
|
+
|
|
230
|
+
Search for real-world codebases that solved the same problem:
|
|
231
|
+
|
|
232
|
+
```json
|
|
233
|
+
firecrawl:firecrawl_search
|
|
234
|
+
{
|
|
235
|
+
"query": "[tech] [topic] example implementation github",
|
|
236
|
+
"limit": 5,
|
|
237
|
+
"sources": [{ "type": "web" }]
|
|
238
|
+
}
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
Also try:
|
|
242
|
+
|
|
243
|
+
| Discovery Query | Purpose |
|
|
244
|
+
|-----------------|---------|
|
|
245
|
+
| `[tech] [topic] open source example` | Find real implementations |
|
|
246
|
+
| `[tech] [topic] starter template boilerplate` | Find scaffolded patterns |
|
|
247
|
+
| `[tech] [topic] "how we" OR "how I" production` | Find experience reports |
|
|
248
|
+
| `site:github.com [tech] [topic] in:readme` | Find repos directly |
|
|
249
|
+
|
|
250
|
+
Scrape the README or relevant docs of promising repos to extract their architectural decisions.
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
## Step 4: Gap Analysis (the core of research-driven enhancement)
|
|
255
|
+
|
|
256
|
+
Compare what the project currently does against what research found. Produce a structured gap analysis:
|
|
257
|
+
|
|
258
|
+
```
|
|
259
|
+
## Gap Analysis: [Topic]
|
|
260
|
+
|
|
261
|
+
### What the project does correctly
|
|
262
|
+
- [pattern 1]: aligns with [source] recommendation
|
|
263
|
+
- [pattern 2]: follows current best practice
|
|
264
|
+
|
|
265
|
+
### What the project is missing
|
|
266
|
+
- [gap 1]: [source] recommends X, project does Y or nothing
|
|
267
|
+
- [gap 2]: [source] warns against current pattern, suggests Z
|
|
268
|
+
|
|
269
|
+
### Anti-patterns detected
|
|
270
|
+
- [anti-pattern 1]: project uses [old pattern], [source] recommends [new pattern] because [reason]
|
|
271
|
+
|
|
272
|
+
### New capabilities available
|
|
273
|
+
- [capability 1]: [library] now supports [feature] as of v[X], not yet adopted
|
|
274
|
+
- [capability 2]: [new approach] reduces complexity, project uses legacy pattern
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
|
|
279
|
+
## Step 5: Fallback — WebSearch + WebFetch
|
|
280
|
+
|
|
281
|
+
When Firecrawl MCP is unavailable, use built-in tools with the same three-phase approach:
|
|
282
|
+
|
|
283
|
+
### Phase 1: Broad Search
|
|
284
|
+
```
|
|
285
|
+
WebSearch(search_term: "[tech] [topic] best practices [current year]")
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
### Phase 2: Deep Read
|
|
289
|
+
```
|
|
290
|
+
WebFetch(url: "<authoritative-url-from-search>")
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
### Phase 3: Discovery
|
|
294
|
+
```
|
|
295
|
+
WebSearch(search_term: "[tech] [topic] github example implementation")
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
---
|
|
299
|
+
|
|
300
|
+
## Step 6: Synthesize and Decide
|
|
301
|
+
|
|
302
|
+
### Trust Hierarchy (when sources conflict)
|
|
303
|
+
|
|
304
|
+
1. Official documentation (highest trust)
|
|
305
|
+
2. Core maintainer posts / RFCs / changelogs
|
|
306
|
+
3. Engineering blogs from major companies (Vercel, AWS, Google, Meta)
|
|
307
|
+
4. GitHub discussions on official repos
|
|
308
|
+
5. Community articles with high engagement (current year, verified working)
|
|
309
|
+
|
|
310
|
+
### Conflict Resolution
|
|
311
|
+
|
|
312
|
+
When two authoritative sources recommend different approaches:
|
|
313
|
+
|
|
314
|
+
1. Check which source matches the project's installed version
|
|
315
|
+
2. Check which approach aligns with the project's existing patterns
|
|
316
|
+
3. Check which approach has fewer trade-offs for the project's scale
|
|
317
|
+
4. If still tied, prefer the simpler approach
|
|
318
|
+
|
|
319
|
+
### Validation Gates
|
|
320
|
+
|
|
321
|
+
| Gate | Check |
|
|
322
|
+
|------|-------|
|
|
323
|
+
| Fresh | Published current year or previous year, matches installed version |
|
|
324
|
+
| Secure | No known CVEs, follows OWASP guidelines |
|
|
325
|
+
| Typed | Full TypeScript support, no `any` escape hatches |
|
|
326
|
+
| Tested | Can be unit/integration tested, doesn't break existing tests |
|
|
327
|
+
| Compatible | Works with the project's other dependencies and patterns |
|
|
328
|
+
|
|
329
|
+
**Reject a pattern if:** it uses a deprecated API, has known vulnerabilities, skips error handling, requires a major refactor with unclear benefit, or conflicts with the project's architecture.
|
|
330
|
+
|
|
331
|
+
---
|
|
332
|
+
|
|
333
|
+
## Step 7: Plan Complex Implementations
|
|
334
|
+
|
|
335
|
+
Plan multi-file architectural migrations directly in the plan: ordered files, intermediate states, side effects. Thinking is native — the Sequential Thinking MCP is not shipped (ADR-0009) and adds nothing here.
|
|
336
|
+
|
|
337
|
+
Do **not** add Playwright MCP for research or browser checks — use headed `playwright-cli` per `protocol-browser-anti-stall`. Firecrawl stays authenticated; do not switch to the keyless tool subset just to save tokens.
|
|
338
|
+
|
|
339
|
+
---
|
|
340
|
+
|
|
341
|
+
## Step 8: Apply to Codebase
|
|
342
|
+
|
|
343
|
+
Map every research finding to specific, actionable code changes. Do not implement in this skill.
|
|
344
|
+
|
|
345
|
+
```
|
|
346
|
+
## Implementation Plan
|
|
347
|
+
|
|
348
|
+
### Changes (ordered by priority)
|
|
349
|
+
|
|
350
|
+
1. **[file path]** — [what to change and why]
|
|
351
|
+
- Before: [current pattern]
|
|
352
|
+
- After: [recommended pattern]
|
|
353
|
+
- Risk: [low/medium/high] — [explanation]
|
|
354
|
+
|
|
355
|
+
2. **[file path]** — [what to change and why]
|
|
356
|
+
...
|
|
357
|
+
|
|
358
|
+
### New dependencies (if any)
|
|
359
|
+
- [package@version] — [why needed]
|
|
360
|
+
|
|
361
|
+
### Breaking changes
|
|
362
|
+
- [description of what breaks and how to migrate]
|
|
363
|
+
|
|
364
|
+
### Edge cases to handle
|
|
365
|
+
- [edge case 1]
|
|
366
|
+
- [edge case 2]
|
|
367
|
+
|
|
368
|
+
### Verification
|
|
369
|
+
- [how to verify the change works]
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
---
|
|
373
|
+
|
|
374
|
+
## Output Template
|
|
375
|
+
|
|
376
|
+
After completing research, produce this summary:
|
|
377
|
+
|
|
378
|
+
```markdown
|
|
379
|
+
## Research: [Topic]
|
|
380
|
+
|
|
381
|
+
### Context
|
|
382
|
+
- Tech stack: [framework, libraries, versions]
|
|
383
|
+
- Current implementation: [brief description]
|
|
384
|
+
- Research goal: [what we're trying to learn/improve]
|
|
385
|
+
|
|
386
|
+
### Findings
|
|
387
|
+
[Key patterns and recommendations from research]
|
|
388
|
+
|
|
389
|
+
### Recommended Approach
|
|
390
|
+
[Pattern name] — [one-line why this is best for this project]
|
|
391
|
+
|
|
392
|
+
### Gap Analysis
|
|
393
|
+
- Missing: [what the project should add]
|
|
394
|
+
- Replace: [what the project should change]
|
|
395
|
+
- Keep: [what the project already does well]
|
|
396
|
+
|
|
397
|
+
### Implementation Plan
|
|
398
|
+
[Ordered list of file changes with before/after]
|
|
399
|
+
|
|
400
|
+
### Gotchas
|
|
401
|
+
- [Edge case or risk 1]
|
|
402
|
+
- [Edge case or risk 2]
|
|
403
|
+
|
|
404
|
+
### Sources
|
|
405
|
+
- [URL] — [what it provided]
|
|
406
|
+
- [URL] — [what it provided]
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
---
|
|
410
|
+
|
|
411
|
+
## Pre-Implementation Checklist
|
|
412
|
+
|
|
413
|
+
- [ ] Codebase context understood (tech stack, current patterns, specific files read)
|
|
414
|
+
- [ ] Context7 docs fetched (or skipped if unavailable)
|
|
415
|
+
- [ ] Firecrawl broad search completed (2-3 queries)
|
|
416
|
+
- [ ] Firecrawl deep scrape completed (2-3 best URLs)
|
|
417
|
+
- [ ] Discovery search completed (reference implementations found)
|
|
418
|
+
- [ ] Gap analysis produced (current vs recommended)
|
|
419
|
+
- [ ] Sources cross-referenced (3+ sources agree)
|
|
420
|
+
- [ ] Validation gates passed (fresh, secure, typed, tested, compatible)
|
|
421
|
+
- [ ] Implementation plan maps findings to specific files
|
|
422
|
+
- [ ] Edge cases identified
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: test-exploratory
|
|
3
|
+
description: >
|
|
4
|
+
Headed exploratory QA of a live app as guest, then logged in, with junk
|
|
5
|
+
input and navigation abuse. Use when "monkey test", "wander like a confused
|
|
6
|
+
user", or "guest vs logged in". CRUD stories → test-qa. Hostile sweep →
|
|
7
|
+
test-red-team.
|
|
8
|
+
license: MIT
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# test-exploratory — naive-user discovery, two identities
|
|
12
|
+
|
|
13
|
+
**Degree of freedom: MIXED** — wander and charters `[HIGH freedom]`; driver,
|
|
14
|
+
sessions, and triage `[LOW freedom — run exactly]`. Driver is
|
|
15
|
+
**playwright-cli**, never Playwright MCP. **Three isolated sessions** — never
|
|
16
|
+
share storage.
|
|
17
|
+
|
|
18
|
+
You drive the **live non-prod app** like a slightly careless user. The job is
|
|
19
|
+
**discovery, not verification**: find the bugs nobody scripted. The sharpest
|
|
20
|
+
bugs live in the **guest vs logged-in diff**. Report only — do not fix in this
|
|
21
|
+
pass. Pair with `protocol-browser-anti-stall`. Hand real bugs to
|
|
22
|
+
`workflow-feedback-to-closure`. Lock a fix later with `test-playwright`.
|
|
23
|
+
Your turn ends with the Phase 3 report after all three identities have run — not after the guest pass, and not with charters still open inside their time-box.
|
|
24
|
+
|
|
25
|
+
This is **not** `test-qa` (story/CRUD), **not** `test-red-team` (hostile
|
|
26
|
+
matrix), **not** `test-playwright` (this-diff PDCA + fix-as-you-go).
|
|
27
|
+
|
|
28
|
+
## This skill vs neighbors
|
|
29
|
+
|
|
30
|
+
| Skill | Owns |
|
|
31
|
+
|:------|:-----|
|
|
32
|
+
| **test-exploratory** (this) | Unscripted wander + junk/nav-abuse + **guest vs authed diff table** |
|
|
33
|
+
| `test-qa` | Story-driven CRUD / smoke — explicitly not a monkey test |
|
|
34
|
+
| `test-red-team` | Adversarial feature×dimension matrix (security/data/perf) |
|
|
35
|
+
| `test-playwright` | Session diff + blast radius; **fixes** inline |
|
|
36
|
+
| `audit-auth-flows` | Static route×gate matrix (code). This skill is the **live probe** |
|
|
37
|
+
| `audit-ux-journeys` | Story completability / IA — not junk submit + double-click |
|
|
38
|
+
| `audit-accessibility` | WCAG / axe only |
|
|
39
|
+
|
|
40
|
+
## How to reason (before a finding)
|
|
41
|
+
|
|
42
|
+
1. **Observe** — captured console/network event + identity + snapshot ref
|
|
43
|
+
2. **Interpret** — guest-in-protected, guest-only throw, leakage, or expected deny?
|
|
44
|
+
3. **Classify** — Real bug / UX defect / Flaky / Out of scope (Phase 3 table)
|
|
45
|
+
4. **Severity** — blast radius: auth/money first
|
|
46
|
+
|
|
47
|
+
## Worked example
|
|
48
|
+
|
|
49
|
+
> **Observe:** guest session `goto /settings/billing` → 200 + "Update card".
|
|
50
|
+
> Authed same route works. Console clean.
|
|
51
|
+
> **Interpret:** protected billing UI reachable without a session.
|
|
52
|
+
> **Classify:** Real bug — guest-in-protected (live complement to `audit-auth-flows`).
|
|
53
|
+
> **Severity:** critical.
|
|
54
|
+
> **Finding:** guest | billing | guest-in-protected | critical | repro: `-s=explore-guest` goto `/settings/billing`
|
|
55
|
+
|
|
56
|
+
## Phase 0 — Safety, driver, isolation [LOW freedom — sessions exact]
|
|
57
|
+
|
|
58
|
+
- **Non-prod only.** You will submit forms and mash destructive controls. If
|
|
59
|
+
only prod exists: read-only navigation and say so.
|
|
60
|
+
- **Driver is playwright-cli**, never Playwright MCP:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
PW="npx --yes @playwright/cli@latest"
|
|
64
|
+
$PW -s=explore-guest open --headed http://localhost:3000
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Read `protocol-browser-anti-stall` first (Rule 0: headed, one action, no
|
|
68
|
+
`*.spec.ts`). Use **three isolated sessions** — never share storage:
|
|
69
|
+
|
|
70
|
+
| Session | Storage | Purpose |
|
|
71
|
+
|:--------|:--------|:--------|
|
|
72
|
+
| `-s=explore-guest` | default in-memory (no `--profile`) | anonymous |
|
|
73
|
+
| `-s=explore-authed` | `state-load` or dedicated `--profile` under `~/.playwright-cli-profiles/` | seeded test account |
|
|
74
|
+
| `-s=explore-post-logout` | fresh in-memory | prove logout actually cleared state |
|
|
75
|
+
|
|
76
|
+
See `protocol-browser-anti-stall/references/playwright-session-coordination.md`.
|
|
77
|
+
- **Instrument before the first click.** After `open`, capture `console`,
|
|
78
|
+
network/`requests`, and status ≥400. Judge findings against **captured
|
|
79
|
+
events**, not guesses.
|
|
80
|
+
- **Accessibility tree first.** Click/fill by snapshot **refs** (`e12`). Refs
|
|
81
|
+
die on the next page change — **re-snapshot after every navigation**
|
|
82
|
+
([Playwright Agent CLI snapshots](https://playwright.dev/agent-cli/snapshots)).
|
|
83
|
+
Use `--depth` or a scoped snapshot on dense pages. Screenshot is a
|
|
84
|
+
**secondary** modality for layout/grouping (web.dev 2026), not the driver.
|
|
85
|
+
Vision/coordinates only for canvas or unnamed icons
|
|
86
|
+
([vision mode](https://playwright.dev/agent-cli/vision-mode)).
|
|
87
|
+
- **SBTM charters** — copy `references/charter-template.md`. Time-box each
|
|
88
|
+
identity (30–45 min). Stop when the box ends; record leftovers.
|
|
89
|
+
|
|
90
|
+
## Phase 1 — Map, then wander (per identity) [HIGH freedom]
|
|
91
|
+
|
|
92
|
+
1. **Discover routes** from links + router/sitemap. Build a **per-identity**
|
|
93
|
+
list (some routes exist only when logged in).
|
|
94
|
+
2. **Exercise the a11y tree** on each page: every button/link/tab/menu/modal;
|
|
95
|
+
forms three ways (**valid / empty-required / junk** — huge strings, emoji,
|
|
96
|
+
`<script>`, SQL-ish, negatives, wrong types, whitespace); **double-submit**;
|
|
97
|
+
dismiss modals three ways (X, Escape, click-outside).
|
|
98
|
+
3. **Abuse navigation** — back/forward after mutations, refresh mid-flow,
|
|
99
|
+
deep-link inner routes, Back after logout (on the post-logout session).
|
|
100
|
+
4. **One mobile-width pass** on key pages. Layout breakage →
|
|
101
|
+
`audit-responsive`. Empty/error chrome → `audit-ui-states`. Do not re-audit.
|
|
102
|
+
5. **Short monkey burst** on auth, checkout, and mutating forms only (confused
|
|
103
|
+
click sequences / races). Skip marketing pages.
|
|
104
|
+
|
|
105
|
+
Prioritize blast radius: auth, money, account mutation, then the rest.
|
|
106
|
+
|
|
107
|
+
## Phase 2 — Guest vs logged-in diff (the deliverable) [HIGH freedom]
|
|
108
|
+
|
|
109
|
+
Run Phase 1 fully as **GUEST**, then fully as **LOGGED-IN**, then
|
|
110
|
+
**POST-LOGOUT**. Compare. File these in a dedicated table — nothing else in
|
|
111
|
+
the pack produces it:
|
|
112
|
+
|
|
113
|
+
- **Guest reaches protected things** — route/API/UI that should require auth
|
|
114
|
+
(live complement to `audit-auth-flows`).
|
|
115
|
+
- **Guest-only breakage** — 500/404/throw for guests, works when authed
|
|
116
|
+
(null-user). Auth-looking UI that renders for guests then errors on click.
|
|
117
|
+
- **Login/logout transitions** — redirect loops, broken return-to, session
|
|
118
|
+
not cleared.
|
|
119
|
+
- **State leakage** — cookies, `localStorage`, **`sessionStorage`** (Playwright
|
|
120
|
+
`storageState` does **not** persist sessionStorage — inspect it explicitly),
|
|
121
|
+
bfcache/Back showing private data after logout.
|
|
122
|
+
- **Divergent errors** — same action, different failure per identity.
|
|
123
|
+
|
|
124
|
+
## Phase 3 — Triage (this IS the work) [LOW freedom — T4; do not skip]
|
|
125
|
+
|
|
126
|
+
Classify every captured event before it becomes a finding:
|
|
127
|
+
|
|
128
|
+
| Class | Meaning | Action |
|
|
129
|
+
|:------|:--------|:-------|
|
|
130
|
+
| **Real bug** | Reproducible: uncaught exception, 500, dead control, raw error, guest-in-protected, hang, data-loss on double-submit | File with repro + identity + evidence |
|
|
131
|
+
| **UX defect** | Works but wrong (silent fail, no loading/error) | Route to `audit-ui-states` / `audit-ux-journeys` |
|
|
132
|
+
| **Flaky** | Failed once | **Re-run once** before filing. Do not file flakes |
|
|
133
|
+
| **Out of scope** | WCAG, pixel polish, load | Hand off; do not duplicate |
|
|
134
|
+
|
|
135
|
+
Severity by blast radius (auth/money first). Do not generate a Playwright
|
|
136
|
+
spec dump and call the app "covered" — that is shallow comprehensive coverage.
|
|
137
|
+
|
|
138
|
+
## Self-critique before reporting
|
|
139
|
+
|
|
140
|
+
- **Identity + evidence** — every row names who and shows the artifact
|
|
141
|
+
- **Flakes** — re-run once before filing
|
|
142
|
+
- **Handoff** — WCAG / pixel / load were not filed here
|
|
143
|
+
- **Guest** — never used `--profile`
|
|
144
|
+
|
|
145
|
+
## Definition of Done
|
|
146
|
+
|
|
147
|
+
- [ ] Non-prod (or read-only + said so)
|
|
148
|
+
- [ ] Three isolated CLI sessions; guest never used `--profile`
|
|
149
|
+
- [ ] Listeners attached before interaction; traces/screenshots per identity
|
|
150
|
+
- [ ] Charters filled; leftovers listed
|
|
151
|
+
- [ ] Route lists per identity; high-blast-radius monkey pass done
|
|
152
|
+
- [ ] Guest + authed + post-logout runs
|
|
153
|
+
- [ ] Guest-vs-authed **diff table** produced
|
|
154
|
+
- [ ] Events triaged; flakes re-run; each real bug has repro + identity + evidence
|
|
155
|
+
- [ ] Honest skip list (MFA, paid flows, external redirects)
|
|
156
|
+
|
|
157
|
+
## Output format
|
|
158
|
+
|
|
159
|
+
1. **Run summary** — target, charters, routes per identity, skips
|
|
160
|
+
2. **Findings table** — id | identity (guest/authed/both) | area | type | severity | repro | evidence
|
|
161
|
+
3. **Guest-vs-logged-in diff** — protected-reachable, guest-only breakage, transitions, leakage
|
|
162
|
+
4. **Console/network** — recurring errors, ≥400, hangs
|
|
163
|
+
5. **Handoffs** — `audit-responsive` · `audit-ui-states` · `audit-auth-flows` · each bug → `workflow-feedback-to-closure` → later `test-playwright`
|
|
164
|
+
|
|
165
|
+
Present the report. Do not fix in this pass.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# SBTM charter template (test-exploratory)
|
|
2
|
+
|
|
3
|
+
One charter = one time-boxed session + one identity. Copy a row, fill it, debrief.
|
|
4
|
+
|
|
5
|
+
## Charter card
|
|
6
|
+
|
|
7
|
+
| Field | Value |
|
|
8
|
+
|:------|:------|
|
|
9
|
+
| Charter | e.g. Guest: public routes + auth walls + public forms |
|
|
10
|
+
| Identity | guest / authed / post-logout |
|
|
11
|
+
| Session name | `explore-guest` / `explore-authed` / `explore-post-logout` |
|
|
12
|
+
| Time box | 30–45 min (stop when the box ends; record leftovers) |
|
|
13
|
+
| Target URL | non-prod only |
|
|
14
|
+
| In scope | routes / areas |
|
|
15
|
+
| Out of scope | MFA walls, paid checkout, production data, WCAG (→ `audit-accessibility`) |
|
|
16
|
+
| Stop when | time box ends **or** high-blast-radius areas done |
|
|
17
|
+
|
|
18
|
+
## Debrief (required)
|
|
19
|
+
|
|
20
|
+
- Areas covered / not covered
|
|
21
|
+
- Real bugs (id list)
|
|
22
|
+
- Flakes re-run? (yes/no)
|
|
23
|
+
- What was **not** reached and why
|
|
24
|
+
|
|
25
|
+
## Suggested charters (run both identities)
|
|
26
|
+
|
|
27
|
+
1. **Guest — walls & public surface** — deep-link protected URLs, public forms (valid/empty/junk), login entry.
|
|
28
|
+
2. **Authed — mutate & navigate** — every control on high-blast-radius pages, double-submit, back/forward, refresh mid-flow.
|
|
29
|
+
3. **Post-logout — isolation** — fresh session, no profile; hit last authed URL + Back; confirm no private cache/cookies/`sessionStorage`.
|