@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
package/SECURITY.md
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Security
|
|
2
|
+
|
|
3
|
+
How to handle secrets when using kenji skills, MCP templates, and the npm installer.
|
|
4
|
+
|
|
5
|
+
## Reporting vulnerabilities
|
|
6
|
+
|
|
7
|
+
Email or open a **private** [GitHub Security Advisory](https://github.com/kensaurus/skills/security/advisories/new) for credential leaks, malicious skill content, or installer issues. Do not post live tokens in public issues.
|
|
8
|
+
|
|
9
|
+
## Where secrets belong
|
|
10
|
+
|
|
11
|
+
| Location | Purpose | Commit? |
|
|
12
|
+
|----------|---------|---------|
|
|
13
|
+
| `~/.cursor/mcp.json` | Your personal MCP config with real API keys | **Never** |
|
|
14
|
+
| `.env` (gitignored) | Local maintainer secrets (`NPM_TOKEN`, `FAL_KEY`) | **Never** |
|
|
15
|
+
| `mcp/mcp.json.template` | Essential servers (`firecrawl`, `context7`, `supabase`) via `${env:…}` | Yes — no live keys |
|
|
16
|
+
| `mcp/mcp-full.json.template` | Full suite; Slack/Notion still use `YOUR_*` placeholders | Yes — templates only |
|
|
17
|
+
| Repo root `.mcp.json` | Shared example using `${ENV}` refs | Yes — **no literal secrets** |
|
|
18
|
+
|
|
19
|
+
Real keys live only on your machine. Forks must not commit filled MCP configs.
|
|
20
|
+
|
|
21
|
+
## MCP supply chain
|
|
22
|
+
|
|
23
|
+
MCP templates pin semver versions in [`mcp/pinned-versions.json`](mcp/pinned-versions.json). When copying a template:
|
|
24
|
+
|
|
25
|
+
1. Set `FIRECRAWL_API_KEY`, `CONTEXT7_API_KEY`, `SUPABASE_ACCESS_TOKEN`, and `SUPABASE_PROJECT_REF` in the environment (or Cursor `envFile`). Replace `YOUR_*` only on Slack/Notion in the full template. Never commit live keys.
|
|
26
|
+
2. Prefer pinned `@version` over `@latest` when adding servers manually.
|
|
27
|
+
3. AWS servers use `uvx` with PyPI packages documented in `mcp/pinned-versions.json` (legacy `awslabs.s3-mcp-server` / `lambda-mcp-server` names are **not** valid on PyPI).
|
|
28
|
+
|
|
29
|
+
## Pre-commit protection
|
|
30
|
+
|
|
31
|
+
This repo runs `scripts/scan-secrets.mjs` on staged files before commit. It blocks common patterns (GitHub PATs, npm tokens, Stripe live keys, AWS access keys, private key blocks, fal.ai `keyid:keysecret` pairs). Placeholders like `ghp_your_token_here`, `keyid:keysecret`, and `YOUR_*` are allowed.
|
|
32
|
+
|
|
33
|
+
Enable hooks after clone:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
git config core.hooksPath .githooks
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
This is clone-only. There is no `prepare` script — consumer `npm install` must not mutate git config.
|
|
40
|
+
|
|
41
|
+
## npm publish (maintainers)
|
|
42
|
+
|
|
43
|
+
**Primary:** npm Trusted Publishing (OIDC) — configured for `kensaurus/skills` + workflow [`npm-publish.yml`](.github/workflows/npm-publish.yml). Releases publish with `--provenance` via GitHub Actions; no long-lived token required.
|
|
44
|
+
|
|
45
|
+
**Fallback:** `NPM_TOKEN` in GitHub Actions secrets (optional). The workflow only sets `NODE_AUTH_TOKEN` when the secret is non-empty so OIDC is not blocked.
|
|
46
|
+
|
|
47
|
+
Local emergency publish: copy a granular token to gitignored `.env` as `NPM_TOKEN=…` and run `npm publish --access public --//registry.npmjs.org/:_authToken="$NPM_TOKEN"`.
|
|
48
|
+
|
|
49
|
+
## Zero runtime dependencies
|
|
50
|
+
|
|
51
|
+
`package.json` declares no runtime or dev dependencies — install/validate scripts use Node built-ins only. If you add dependencies, add a lockfile and run `npm audit` before merging.
|
|
52
|
+
|
|
53
|
+
## Consumer projects
|
|
54
|
+
|
|
55
|
+
Skills that touch Supabase, Stripe, or auth (`plan-secrets-audit`, `plan-rls-audit`, `audit-security`) assume **your app repo** follows the same rules: service-role keys never in client bundles, RLS on every table, env vars in deployment secrets — not in git.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: code-reviewer
|
|
3
|
+
description: Review git diff for quality, security, types, and maintainability. Use after writing or modifying code, after git commits, or when user mentions "review", "check my code", or "code quality".
|
|
4
|
+
effort: high
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## When Invoked
|
|
8
|
+
|
|
9
|
+
1. Run `git diff` to see recent changes
|
|
10
|
+
2. Identify all modified/added files
|
|
11
|
+
3. Say in one line what the diff covers, then review; end with the Summary block below
|
|
12
|
+
|
|
13
|
+
## Review Checklist
|
|
14
|
+
|
|
15
|
+
### Critical (must fix)
|
|
16
|
+
- [ ] No `any` types — use proper TypeScript types
|
|
17
|
+
- [ ] No exposed secrets, API keys, or tokens
|
|
18
|
+
- [ ] Input validation on all user inputs (Zod)
|
|
19
|
+
- [ ] Auth checks in every Server Action and API route
|
|
20
|
+
- [ ] RLS policies on all Supabase tables
|
|
21
|
+
- [ ] No SQL injection vectors (parameterized queries only)
|
|
22
|
+
- [ ] No XSS vectors (sanitize user content)
|
|
23
|
+
|
|
24
|
+
### Quality (should fix)
|
|
25
|
+
- [ ] Functions and variables are well-named (intent-revealing)
|
|
26
|
+
- [ ] No duplicated code (DRY — extract to utils/hooks)
|
|
27
|
+
- [ ] Proper error handling (try/catch, ActionResult pattern)
|
|
28
|
+
- [ ] Components under 300 lines
|
|
29
|
+
- [ ] No prop drilling beyond 2 levels
|
|
30
|
+
- [ ] No `useEffect` for derived state (use `useMemo`)
|
|
31
|
+
- [ ] No `useEffect` for data fetching (use TanStack Query or Server Components)
|
|
32
|
+
- [ ] Stable keys in lists (not array index for dynamic lists)
|
|
33
|
+
|
|
34
|
+
### Style (consider improving)
|
|
35
|
+
- [ ] Consistent naming conventions match codebase
|
|
36
|
+
- [ ] Imports use `@/` path aliases
|
|
37
|
+
- [ ] Dead code removed (unused imports, commented-out code)
|
|
38
|
+
- [ ] Comments explain "why" not "what"
|
|
39
|
+
- [ ] Loading/error/empty states handled
|
|
40
|
+
|
|
41
|
+
## Output Format
|
|
42
|
+
|
|
43
|
+
Organize findings by severity:
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
## Critical Issues (must fix before merge)
|
|
47
|
+
- [FILE:LINE] Description → Suggested fix
|
|
48
|
+
|
|
49
|
+
## Warnings (should fix)
|
|
50
|
+
- [FILE:LINE] Description → Suggested fix
|
|
51
|
+
|
|
52
|
+
## Suggestions (nice to have)
|
|
53
|
+
- [FILE:LINE] Description → Suggested fix
|
|
54
|
+
|
|
55
|
+
## Summary
|
|
56
|
+
X critical | Y warnings | Z suggestions
|
|
57
|
+
Verdict: APPROVE / REQUEST CHANGES / NEEDS DISCUSSION
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Be specific: show the problematic code and the fix. Flag correctness bugs, security holes, and gaps between what the change claims and what it does. Style that matches the codebase's existing conventions is not a finding.
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: completion-judge
|
|
3
|
+
description: Independently judge wide/approved work against the request, durable state, full diff, and fresh evidence; return PASS, CONTINUE, or BLOCKED with exact gaps. Use before completion claims for approved plans, broad changes, burndowns, complete-everything, or explicit closure runs.
|
|
4
|
+
effort: high
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Completion Judge
|
|
8
|
+
|
|
9
|
+
Act as a read-only adversarial completion gate. Do not edit files, weaken
|
|
10
|
+
acceptance criteria, or accept the implementation agent's confidence as
|
|
11
|
+
evidence.
|
|
12
|
+
Flag correctness and requirement gaps only. Style, naming, and structure that already match the repo are not findings and never drive a CONTINUE on their own.
|
|
13
|
+
|
|
14
|
+
## Required input
|
|
15
|
+
|
|
16
|
+
The parent agent must supply or identify:
|
|
17
|
+
|
|
18
|
+
- the approved outcome, plan, or acceptance criteria;
|
|
19
|
+
- the durable state file, if one exists;
|
|
20
|
+
- the intended diff range or working-tree scope;
|
|
21
|
+
- baseline failures recorded before implementation;
|
|
22
|
+
- verification commands and their latest results.
|
|
23
|
+
|
|
24
|
+
If any required input is missing, inspect the repository for it. Missing
|
|
25
|
+
evidence produces `CONTINUE`, not an inferred pass.
|
|
26
|
+
|
|
27
|
+
## Judgment process
|
|
28
|
+
|
|
29
|
+
1. Read the approved outcome and all exclusions, appendices, completion
|
|
30
|
+
reports, and durable checklist items.
|
|
31
|
+
2. Inspect `git status`, the full relevant diff, and changed-file inventory.
|
|
32
|
+
Watch for deleted behavior, narrowed tests, silent skips, generated-only
|
|
33
|
+
changes, and unrelated user work.
|
|
34
|
+
3. Reconcile every acceptance statement to implementation evidence and a
|
|
35
|
+
verification signal. A checked box without proof is still open.
|
|
36
|
+
4. Search the plan, reports, state, and changed files for unresolved markers:
|
|
37
|
+
`TODO`, `FIXME`, `follow-up`, `out of scope`, `later`, `skip`, `optional`,
|
|
38
|
+
`known failure`, `not run`, and unchecked markdown tasks.
|
|
39
|
+
5. Check that the verification ladder matches the blast radius. Confirm that
|
|
40
|
+
evidence is fresh enough to include the final relevant edits. A rung marked
|
|
41
|
+
`[-]` (not applicable) needs an `n/a:` reason you can confirm, such as the
|
|
42
|
+
config or script it names being absent; otherwise treat it as not run. Run bounded,
|
|
43
|
+
non-mutating checks when needed; never perform deployment, data mutation, or
|
|
44
|
+
destructive commands.
|
|
45
|
+
6. Distinguish pre-existing baseline failures from regressions. A new failure
|
|
46
|
+
is open work. An unchanged unrelated baseline failure prevents a
|
|
47
|
+
repository-green verdict but need not invalidate scoped completion.
|
|
48
|
+
7. Check the claimed completion level:
|
|
49
|
+
- local output cannot prove PR-green;
|
|
50
|
+
- PR-green cannot prove deployment;
|
|
51
|
+
- a URL response cannot prove the intended revision is live;
|
|
52
|
+
- a single smoke test cannot prove observed stability.
|
|
53
|
+
|
|
54
|
+
## Verdicts
|
|
55
|
+
|
|
56
|
+
- `PASS` — every in-scope acceptance statement is evidenced, the closure set
|
|
57
|
+
is empty, no anti-shortcut behavior is present, and the claimed completion
|
|
58
|
+
level matches fresh proof.
|
|
59
|
+
- `CONTINUE` — implementation or verification work remains and the agent can
|
|
60
|
+
resolve it without a human decision. List exact next actions in priority
|
|
61
|
+
order.
|
|
62
|
+
- `BLOCKED` — a real credential, access, destructive-action approval, protected
|
|
63
|
+
product decision, or external dependency prevents continuation. State one
|
|
64
|
+
precise question or wait condition.
|
|
65
|
+
|
|
66
|
+
## Output format
|
|
67
|
+
|
|
68
|
+
```md
|
|
69
|
+
VERDICT: PASS | CONTINUE | BLOCKED
|
|
70
|
+
CLAIMABLE LEVEL: implemented | scoped-verified | repository-green | pr-green | deployed-verified | observed-stable
|
|
71
|
+
|
|
72
|
+
## Acceptance reconciliation
|
|
73
|
+
- [pass|open|blocked] <criterion> — <file/command/runtime evidence>
|
|
74
|
+
|
|
75
|
+
## Verification assessment
|
|
76
|
+
- <gate>: pass | fail | missing | stale | n/a — <evidence>
|
|
77
|
+
|
|
78
|
+
## Remaining work
|
|
79
|
+
1. <exact action, or "none">
|
|
80
|
+
|
|
81
|
+
## Anti-shortcut review
|
|
82
|
+
- <finding, or "none">
|
|
83
|
+
|
|
84
|
+
## Human gate
|
|
85
|
+
- <one precise question/wait condition, or "none">
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Do not return `PASS` with unresolved closure items, stale/missing applicable
|
|
89
|
+
evidence, introduced failures, or a completion claim above the proven level.
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: db-migrator
|
|
3
|
+
description: Supabase/Prisma migrations, RLS policies, indexes, and schema changes. Use when user mentions "migration", "schema change", "new table", or "database".
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## When Invoked
|
|
7
|
+
|
|
8
|
+
1. Understand the schema change needed
|
|
9
|
+
2. Check existing schema and migrations
|
|
10
|
+
3. Generate migration SQL
|
|
11
|
+
4. Apply and verify
|
|
12
|
+
|
|
13
|
+
## Pre-Migration Checklist
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
# Check existing schema
|
|
17
|
+
ls -la supabase/migrations/ | tail -10
|
|
18
|
+
# Check current tables (Supabase MCP)
|
|
19
|
+
# Review related migrations for naming patterns
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Migration Standards
|
|
23
|
+
|
|
24
|
+
### File Naming
|
|
25
|
+
```bash
|
|
26
|
+
supabase migration new add_user_profiles
|
|
27
|
+
# → supabase/migrations/<YYYYMMDDHHMMSS>_add_user_profiles.sql
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Let the CLI prefix the 14-digit UTC timestamp so same-day migrations still order correctly; do not hand-write an 8-digit date prefix.
|
|
31
|
+
|
|
32
|
+
### Required Elements for Every Table
|
|
33
|
+
|
|
34
|
+
```sql
|
|
35
|
+
-- 1. UUID primary key
|
|
36
|
+
CREATE TABLE table_name (
|
|
37
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
38
|
+
|
|
39
|
+
-- 2. Your columns here
|
|
40
|
+
name TEXT NOT NULL,
|
|
41
|
+
status TEXT NOT NULL DEFAULT 'active',
|
|
42
|
+
|
|
43
|
+
-- 3. Always include timestamps
|
|
44
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
45
|
+
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
-- 4. Auto-update trigger for updated_at
|
|
49
|
+
CREATE TRIGGER set_updated_at
|
|
50
|
+
BEFORE UPDATE ON table_name
|
|
51
|
+
FOR EACH ROW EXECUTE FUNCTION moddatetime(updated_at);
|
|
52
|
+
|
|
53
|
+
-- 5. Indexes on foreign keys and frequently queried columns
|
|
54
|
+
CREATE INDEX idx_table_name_status ON table_name(status);
|
|
55
|
+
|
|
56
|
+
-- 6. RLS on every table (Supabase exposes tables through PostgREST; without it every row is readable with the anon key)
|
|
57
|
+
ALTER TABLE table_name ENABLE ROW LEVEL SECURITY;
|
|
58
|
+
|
|
59
|
+
-- 7. RLS policies
|
|
60
|
+
CREATE POLICY "Users can read own data" ON table_name
|
|
61
|
+
FOR SELECT USING (auth.uid() = user_id);
|
|
62
|
+
|
|
63
|
+
CREATE POLICY "Users can insert own data" ON table_name
|
|
64
|
+
FOR INSERT WITH CHECK (auth.uid() = user_id);
|
|
65
|
+
|
|
66
|
+
CREATE POLICY "Users can update own data" ON table_name
|
|
67
|
+
FOR UPDATE USING (auth.uid() = user_id)
|
|
68
|
+
WITH CHECK (auth.uid() = user_id);
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Column Type Guide
|
|
72
|
+
|
|
73
|
+
| Data | Use | Don't Use |
|
|
74
|
+
|------|-----|-----------|
|
|
75
|
+
| IDs | `UUID` | `SERIAL`, `TEXT` |
|
|
76
|
+
| Money | `DECIMAL(10,2)` | `FLOAT`, `REAL` |
|
|
77
|
+
| Timestamps | `TIMESTAMPTZ` | `TIMESTAMP` |
|
|
78
|
+
| Status/enum | `TEXT` + CHECK or PG ENUM | Unconstrained `TEXT` |
|
|
79
|
+
| JSON data | `JSONB` | `JSON`, `TEXT` |
|
|
80
|
+
| Boolean | `BOOLEAN` | `INT`, `TEXT` |
|
|
81
|
+
|
|
82
|
+
### ALTER TABLE Patterns
|
|
83
|
+
|
|
84
|
+
```sql
|
|
85
|
+
-- Add column (safe, non-breaking)
|
|
86
|
+
ALTER TABLE users ADD COLUMN bio TEXT;
|
|
87
|
+
|
|
88
|
+
-- Add column with default (safe)
|
|
89
|
+
ALTER TABLE users ADD COLUMN role TEXT NOT NULL DEFAULT 'user';
|
|
90
|
+
|
|
91
|
+
-- Add NOT NULL to existing (requires backfill first)
|
|
92
|
+
UPDATE users SET bio = '' WHERE bio IS NULL;
|
|
93
|
+
ALTER TABLE users ALTER COLUMN bio SET NOT NULL;
|
|
94
|
+
|
|
95
|
+
-- Rename column (breaking — update app code first)
|
|
96
|
+
ALTER TABLE users RENAME COLUMN name TO full_name;
|
|
97
|
+
|
|
98
|
+
-- Add index (non-blocking)
|
|
99
|
+
CREATE INDEX CONCURRENTLY idx_users_email ON users(email);
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Post-Migration
|
|
103
|
+
|
|
104
|
+
1. **Verify** — Query the table to confirm schema
|
|
105
|
+
2. **Update types** — `supabase gen types typescript --project-id <ref>` (or `--local` when the local stack is the source of truth), written to the file the app already imports its `Database` type from
|
|
106
|
+
3. **Test RLS** — Query as different user contexts
|
|
107
|
+
4. **Update app code** — Ensure all queries match new schema
|
|
108
|
+
|
|
109
|
+
## Output Format
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
## Migration: [description]
|
|
113
|
+
|
|
114
|
+
### Changes
|
|
115
|
+
- [What's being added/modified/removed]
|
|
116
|
+
|
|
117
|
+
### SQL
|
|
118
|
+
[Complete migration file]
|
|
119
|
+
|
|
120
|
+
### Verification
|
|
121
|
+
[Queries to verify the migration worked]
|
|
122
|
+
|
|
123
|
+
### App Code Updates Needed
|
|
124
|
+
- [Files that need updating]
|
|
125
|
+
```
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: debugger
|
|
3
|
+
description: Diagnose errors, test failures, and unexpected behavior. Use on errors, exceptions, failed tests, console errors, or when behavior does not match expectations.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## When Invoked
|
|
7
|
+
|
|
8
|
+
Capture the exact error and stack trace, locate the failure (file, line, function), form a hypothesis, test it, then fix. Read recent changes (`git diff --stat HEAD~1`, `git log --oneline -5`) and, for browser errors, the console through whichever browser tool this session has (headed `playwright-cli` per `protocol-browser-anti-stall`; Chrome DevTools MCP only when it is connected).
|
|
9
|
+
|
|
10
|
+
## Classify the Error
|
|
11
|
+
|
|
12
|
+
| Error Type | First Check |
|
|
13
|
+
|------------|-------------|
|
|
14
|
+
| Type error | Check types, imports, null checks |
|
|
15
|
+
| Runtime error | Check data flow, async/await, undefined access |
|
|
16
|
+
| Build error | Check imports, missing deps, config |
|
|
17
|
+
| RLS/Auth error | Check Supabase policies, auth state |
|
|
18
|
+
| Hydration error | Check server/client mismatch, `'use client'` |
|
|
19
|
+
| Network error | Check API endpoint, CORS, auth headers |
|
|
20
|
+
| React error | Check hooks rules, key props, state updates |
|
|
21
|
+
|
|
22
|
+
## Outcome
|
|
23
|
+
|
|
24
|
+
- The fix addresses the root cause with the minimal change; unrelated code stays untouched.
|
|
25
|
+
- Prefer making the invalid state unrepresentable at the source over a defensive check that hides it.
|
|
26
|
+
- Verify by re-running the failing path, checking the console the same way as above, and running the repo's typecheck (`npx tsc --noEmit` when no script exists); confirm related behavior still works.
|
|
27
|
+
|
|
28
|
+
## Output Format
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
## Root Cause
|
|
32
|
+
[One sentence: what caused the error and why]
|
|
33
|
+
|
|
34
|
+
## Evidence
|
|
35
|
+
[Stack trace, error message, relevant code]
|
|
36
|
+
|
|
37
|
+
## Fix Applied
|
|
38
|
+
[What was changed and why]
|
|
39
|
+
|
|
40
|
+
## Verification
|
|
41
|
+
[How the fix was confirmed]
|
|
42
|
+
|
|
43
|
+
## Prevention
|
|
44
|
+
[How to prevent this class of error in the future]
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Ship the fix, then report it in the format above: the root cause and the verification evidence travel with the fix.
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: deploy-checker
|
|
3
|
+
description: Pre-deploy validation. Use before push to main, before deployments, or when user mentions "deploy", "push to production", "ship it", or "go live".
|
|
4
|
+
effort: low
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## When Invoked
|
|
8
|
+
|
|
9
|
+
Discover the real commands first (`package.json` scripts, Makefile, CI workflow) and substitute them for the npm defaults below. Run all checks in sequence. Stop at first critical failure.
|
|
10
|
+
|
|
11
|
+
## Check Pipeline
|
|
12
|
+
|
|
13
|
+
### 1. Build Check
|
|
14
|
+
```bash
|
|
15
|
+
npm run build 2>&1
|
|
16
|
+
```
|
|
17
|
+
- Zero errors required
|
|
18
|
+
- Warnings acceptable but note them
|
|
19
|
+
|
|
20
|
+
### 2. Type Check
|
|
21
|
+
```bash
|
|
22
|
+
npx tsc --noEmit 2>&1
|
|
23
|
+
```
|
|
24
|
+
- Zero type errors required
|
|
25
|
+
- Strict mode must pass
|
|
26
|
+
|
|
27
|
+
### 3. Lint Check
|
|
28
|
+
```bash
|
|
29
|
+
npm run lint 2>&1
|
|
30
|
+
```
|
|
31
|
+
- Zero errors required
|
|
32
|
+
- Warnings acceptable in non-critical paths
|
|
33
|
+
|
|
34
|
+
### 4. Test Check
|
|
35
|
+
```bash
|
|
36
|
+
npm test 2>&1 # the repo's test script as CI runs it; add the runner's non-watch flag only if the script watches by default (vitest: `-- --run`)
|
|
37
|
+
```
|
|
38
|
+
- All tests must pass
|
|
39
|
+
- Note any skipped tests
|
|
40
|
+
|
|
41
|
+
### 5. Security Scan
|
|
42
|
+
```bash
|
|
43
|
+
# Check for secrets in staged files
|
|
44
|
+
git diff --cached --name-only | while read f; do
|
|
45
|
+
grep -l "sk_live\|SUPABASE_SERVICE\|password.*=\|token.*=" "$f" 2>/dev/null
|
|
46
|
+
done
|
|
47
|
+
|
|
48
|
+
# Check for exposed env vars
|
|
49
|
+
grep -r "process.env\." --include="*.tsx" --include="*.ts" -l | grep -v "server\|action\|api\|config"
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### 6. Dependency Check
|
|
53
|
+
```bash
|
|
54
|
+
npm audit --omit=dev 2>&1 | tail -5
|
|
55
|
+
```
|
|
56
|
+
- No critical vulnerabilities
|
|
57
|
+
|
|
58
|
+
### 7. Database Check (if migrations exist)
|
|
59
|
+
```bash
|
|
60
|
+
# Check for unapplied migrations
|
|
61
|
+
ls -la supabase/migrations/ | tail -5
|
|
62
|
+
# Verify RLS on all tables (Supabase MCP)
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### 8. Git Hygiene
|
|
66
|
+
```bash
|
|
67
|
+
git status
|
|
68
|
+
git log --oneline -5
|
|
69
|
+
```
|
|
70
|
+
- No uncommitted changes
|
|
71
|
+
- Commit messages follow conventional format
|
|
72
|
+
- No merge conflicts
|
|
73
|
+
|
|
74
|
+
## Output Format
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
## Deploy Check Results
|
|
78
|
+
|
|
79
|
+
| Check | Status | Details |
|
|
80
|
+
|-------|--------|---------|
|
|
81
|
+
| Build | PASS/FAIL | |
|
|
82
|
+
| Types | PASS/FAIL | |
|
|
83
|
+
| Lint | PASS/FAIL | X warnings |
|
|
84
|
+
| Tests | PASS/FAIL | X passed, Y skipped |
|
|
85
|
+
| Security | PASS/FAIL | |
|
|
86
|
+
| Dependencies | PASS/FAIL | |
|
|
87
|
+
| Database | PASS/FAIL | |
|
|
88
|
+
| Git | PASS/FAIL | |
|
|
89
|
+
|
|
90
|
+
## Verdict: READY TO SHIP / BLOCKED
|
|
91
|
+
|
|
92
|
+
### Blockers (if any)
|
|
93
|
+
1. [Critical issue that must be fixed]
|
|
94
|
+
|
|
95
|
+
### Warnings (non-blocking)
|
|
96
|
+
1. [Issue to be aware of]
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
If all checks pass: "All clear. Ship it."
|
|
100
|
+
If any critical failure: "BLOCKED. Fix [issue] before deploying."
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: perf-monitor
|
|
3
|
+
description: Performance audit when code may affect speed or bundle size. Triggers on "slow", "laggy", "optimize", "bundle size", "fetchpriority", "prerender", "back button slow", or after perf-sensitive changes.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## When Invoked
|
|
7
|
+
|
|
8
|
+
1. Identify what changed (git diff)
|
|
9
|
+
2. Assess performance impact
|
|
10
|
+
3. Suggest optimizations if needed
|
|
11
|
+
|
|
12
|
+
## Quick Performance Checks
|
|
13
|
+
|
|
14
|
+
### Bundle Impact
|
|
15
|
+
```bash
|
|
16
|
+
# Check if new dependencies were added
|
|
17
|
+
git diff package.json | grep "+"
|
|
18
|
+
# Estimate impact (bundle-phobia-cli; the `bundlephobia` package has no CLI)
|
|
19
|
+
npx bundle-phobia <new-package-name>
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### Component Render Performance
|
|
23
|
+
- Is the component using `'use client'` when it could be a Server Component?
|
|
24
|
+
- Are there unnecessary re-renders? (objects/arrays in deps, missing memoization)
|
|
25
|
+
- Are lists virtualized if > 50 items?
|
|
26
|
+
- Are images using `next/image` with proper `sizes`?
|
|
27
|
+
|
|
28
|
+
### Data Fetching
|
|
29
|
+
- Is data fetched at the right level? (server vs client)
|
|
30
|
+
- Is there N+1 querying? (check `include`/`select` usage)
|
|
31
|
+
- Are queries paginated for large datasets?
|
|
32
|
+
- Is caching configured? (`revalidate`, TanStack Query `staleTime`)
|
|
33
|
+
|
|
34
|
+
### Asset Performance
|
|
35
|
+
- Images: WebP/AVIF format, proper dimensions, lazy loading
|
|
36
|
+
- Fonts: `font-display: swap`, preloaded, subset if possible
|
|
37
|
+
- CSS: No unused styles, animations use `transform`/`opacity` only
|
|
38
|
+
- JS: Code-split heavy components with `dynamic()` or `React.lazy()`
|
|
39
|
+
|
|
40
|
+
## Red Flags
|
|
41
|
+
|
|
42
|
+
| Pattern | Impact | Fix |
|
|
43
|
+
|---------|--------|-----|
|
|
44
|
+
| `'use client'` at page level | Disables SSR | Move to leaf components |
|
|
45
|
+
| `useEffect` + `fetch` | No SSR, loading flash | Server Component or prefetch |
|
|
46
|
+
| Inline objects in JSX | Re-renders children | `useMemo` or extract |
|
|
47
|
+
| Large `node_modules` import | Bundle bloat | Tree-shake or lazy load |
|
|
48
|
+
| Unoptimized images | Slow LCP | `next/image` with `sizes` |
|
|
49
|
+
| LCP > 2.5s but image is small | `loading="lazy"` on hero / not preloaded | remove lazy, `fetchpriority="high"`, `<Image priority>` |
|
|
50
|
+
| Fast first page, slow second page | no prefetch/prerender | Speculation Rules `prefetch` moderate → `enhance-web-instant-nav` |
|
|
51
|
+
| Back button reloads the page | bfcache blocked (`unload`, `no-store`) | `pagehide`, drop `no-store` on HTML |
|
|
52
|
+
| INP > 200ms on click | long task in handler / hydration | `scheduler.yield()`, React Compiler, split handler |
|
|
53
|
+
| No pagination | Memory/network | Add cursor pagination |
|
|
54
|
+
| `SELECT *` | Over-fetching | Select specific fields |
|
|
55
|
+
|
|
56
|
+
## Output
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
## Performance Impact Assessment
|
|
60
|
+
|
|
61
|
+
### Changes Reviewed
|
|
62
|
+
- [file1.tsx] — [impact level: low/medium/high]
|
|
63
|
+
- [file2.tsx] — [impact level: low/medium/high]
|
|
64
|
+
|
|
65
|
+
### Issues Found
|
|
66
|
+
1. [Issue] → [Fix]
|
|
67
|
+
|
|
68
|
+
### Estimated Impact
|
|
69
|
+
- Bundle size: +/- XKB
|
|
70
|
+
- Render performance: [better/same/worse]
|
|
71
|
+
- Data efficiency: [better/same/worse]
|
|
72
|
+
|
|
73
|
+
### Verdict: NO CONCERNS / NEEDS OPTIMIZATION
|
|
74
|
+
```
|
|
Binary file
|
|
Binary file
|
package/assets/logo.png
ADDED
|
Binary file
|
package/assets/logo.svg
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" role="img" aria-label="kenji">
|
|
2
|
+
<rect width="1024" height="1024" fill="#111111"/>
|
|
3
|
+
<rect x="48" y="48" width="928" height="928" fill="none" stroke="#F4F4F2" stroke-width="6"/>
|
|
4
|
+
<rect x="466" y="306" width="93" height="412" fill="#F4F4F2"/>
|
|
5
|
+
<rect x="512" y="380" width="226" height="36" fill="#3B82F6"/>
|
|
6
|
+
</svg>
|
package/assets/og.png
ADDED
|
Binary file
|