@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,459 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: debug-fe-be-integration
|
|
3
|
+
description: >
|
|
4
|
+
Diagnose and fix frontend↔backend contract failures by tracing requests,
|
|
5
|
+
server logs, validation, auth, and responses on both sides. Use for API
|
|
6
|
+
4xx/5xx, mismatched payloads, or "frontend and backend disagree". One layer
|
|
7
|
+
→ debug-error.
|
|
8
|
+
license: MIT
|
|
9
|
+
effort: high
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Frontend-Backend Integration Debug Skill
|
|
13
|
+
|
|
14
|
+
**Degree of freedom: MIXED.** Which side is wrong `[HIGH freedom]`;
|
|
15
|
+
trace-both-sides probes `[LOW freedom — run exactly]`.
|
|
16
|
+
|
|
17
|
+
Systematic approach to debugging frontend-backend integration issues by analyzing backend
|
|
18
|
+
logs, production errors, and source code to identify root causes and fix both sides.
|
|
19
|
+
|
|
20
|
+
## How to reason
|
|
21
|
+
|
|
22
|
+
1. **Observe** — status, payload, validation error, both logs
|
|
23
|
+
2. **Interpret** — FE omitted a field vs BE schema drifted vs auth/CORS
|
|
24
|
+
3. **Classify** — missing-param / type / 404 / 401 / 500 / CORS
|
|
25
|
+
4. **Severity** — 500 on a write path outranks a cosmetic 422 message
|
|
26
|
+
|
|
27
|
+
## Worked example
|
|
28
|
+
|
|
29
|
+
> **Observe:** FE `GET /api/reports` → 500; BE log `ZodError: expected string, received undefined` on `year`.
|
|
30
|
+
> **Interpret:** FE omitted `year`; BE schema required it with no default.
|
|
31
|
+
> **Classify:** missing-param — fix FE call and add a clear BE 422/default.
|
|
32
|
+
> **Verify:** same request returns 200 with the year bound; both sides updated.
|
|
33
|
+
|
|
34
|
+
## Self-critique before reporting
|
|
35
|
+
|
|
36
|
+
- **Both sides read** — FE call and BE schema/logs, not one side guessed
|
|
37
|
+
- **Contract named** — status + payload field, not "they disagree"
|
|
38
|
+
- **Fix matches class** — 404 is not patched as a Zod default
|
|
39
|
+
- **Right owner** — single-layer crash → `debug-error`; proactive contract audit → `audit-fe-api`
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Step 0: Auto-Detect Stack
|
|
44
|
+
|
|
45
|
+
Before debugging, discover the project's architecture.
|
|
46
|
+
|
|
47
|
+
### 0a. Detect Frontend Framework
|
|
48
|
+
|
|
49
|
+
Read `package.json` and look for:
|
|
50
|
+
|
|
51
|
+
| Signal | Framework |
|
|
52
|
+
|--------|-----------|
|
|
53
|
+
| `next` | Next.js |
|
|
54
|
+
| `nuxt` | Nuxt |
|
|
55
|
+
| `@remix-run/react` | Remix |
|
|
56
|
+
| `@sveltejs/kit` | SvelteKit |
|
|
57
|
+
| `vite` + `react` | Vite React SPA |
|
|
58
|
+
| `@angular/core` | Angular |
|
|
59
|
+
|
|
60
|
+
### 0b. Detect Backend Framework
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
Glob: **/app/api/**/route.ts → Next.js App Router
|
|
64
|
+
Glob: **/pages/api/**/*.ts → Next.js Pages Router
|
|
65
|
+
Glob: **/server/api/**/*.ts → Nuxt server
|
|
66
|
+
Glob: **/src/routes/**/*.ts → Express/Hono/Fastify
|
|
67
|
+
Glob: **/src/app.ts or **/src/index.ts → Node backend entry
|
|
68
|
+
Glob: **/main.py or **/app.py → Python backend
|
|
69
|
+
Glob: **/main.go → Go backend
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### 0c. Detect API Style and Validation
|
|
73
|
+
|
|
74
|
+
| Signal | Technology |
|
|
75
|
+
|--------|-----------|
|
|
76
|
+
| `@trpc/server` | tRPC (type-safe, no REST audit needed) |
|
|
77
|
+
| `graphql` or `@apollo/server` | GraphQL |
|
|
78
|
+
| `zod` in BE dependencies | Zod validation |
|
|
79
|
+
| `joi` in BE dependencies | Joi validation |
|
|
80
|
+
| `yup` in BE dependencies | Yup validation |
|
|
81
|
+
| `class-validator` | NestJS-style validation |
|
|
82
|
+
| `pydantic` | Python Pydantic validation |
|
|
83
|
+
|
|
84
|
+
### 0d. Find Route and Controller Patterns
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
Grep: pattern "router\.(get|post|patch|put|delete)" glob "*.{ts,js}" — Express-style
|
|
88
|
+
Grep: pattern "app\.(get|post|patch|put|delete)" glob "*.{ts,js}" — Hono/Express
|
|
89
|
+
Grep: pattern "export (async function |const )(GET|POST|PATCH|PUT|DELETE)" glob "**/route.ts" — Next.js
|
|
90
|
+
Grep: pattern "defineEventHandler" glob "*.{ts,js}" — Nuxt/H3
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### 0e. Record Discovery
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
STACK DISCOVERY:
|
|
97
|
+
- Frontend: [framework + version]
|
|
98
|
+
- Backend: [framework + version]
|
|
99
|
+
- API style: [REST / GraphQL / tRPC]
|
|
100
|
+
- Validation: [Zod / Joi / Yup / Pydantic / none]
|
|
101
|
+
- Route files: [pattern and locations]
|
|
102
|
+
- Controller files: [pattern and locations]
|
|
103
|
+
- Schema files: [pattern and locations]
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Step 1: Research Debugging Patterns
|
|
109
|
+
|
|
110
|
+
### 1a. Firecrawl — Integration Debugging
|
|
111
|
+
|
|
112
|
+
Search the framework and validation library as written — recognizing the name is not knowing its current API or error shape.
|
|
113
|
+
|
|
114
|
+
```json
|
|
115
|
+
firecrawl:firecrawl_search
|
|
116
|
+
{
|
|
117
|
+
"query": "<FE_FRAMEWORK> <BE_FRAMEWORK> API integration debugging best practices [current year]",
|
|
118
|
+
"limit": 5,
|
|
119
|
+
"sources": [{ "type": "web" }]
|
|
120
|
+
}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Additional targeted searches:
|
|
124
|
+
|
|
125
|
+
| Topic | Query |
|
|
126
|
+
|-------|-------|
|
|
127
|
+
| Validation errors | `<VALIDATION_LIB> error handling API response best practices` |
|
|
128
|
+
| CORS issues | `<BE_FRAMEWORK> CORS configuration debugging` |
|
|
129
|
+
| Type mismatches | `TypeScript API type safety frontend backend shared types` |
|
|
130
|
+
|
|
131
|
+
### 1b. Context7 — Framework Docs
|
|
132
|
+
|
|
133
|
+
```json
|
|
134
|
+
context7:resolve-library-id
|
|
135
|
+
{
|
|
136
|
+
"libraryName": "<VALIDATION_LIB>",
|
|
137
|
+
"query": "error handling error messages custom errors"
|
|
138
|
+
}
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## Step 2: Gather Error Evidence
|
|
144
|
+
|
|
145
|
+
### 2a. Check Sentry for Production Errors
|
|
146
|
+
|
|
147
|
+
```json
|
|
148
|
+
sentry:search_issues
|
|
149
|
+
{
|
|
150
|
+
"organizationSlug": "<ORG_SLUG>",
|
|
151
|
+
"query": "API integration errors 4xx 5xx validation from the last 7 days",
|
|
152
|
+
"projectSlugOrId": "<PROJECT_SLUG>",
|
|
153
|
+
"regionUrl": "<REGION_URL>",
|
|
154
|
+
"limit": 25
|
|
155
|
+
}
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
If the project has separate FE and BE Sentry projects, check both:
|
|
159
|
+
- FE project: network errors, unhandled rejections from API calls
|
|
160
|
+
- BE project: validation errors, unhandled exceptions, 500s
|
|
161
|
+
|
|
162
|
+
### 2b. Read Backend Terminal Logs
|
|
163
|
+
|
|
164
|
+
Read the output of the terminal running the backend (`npm run dev` or equivalent) — in Cursor, `terminals/*.txt`; in Claude Code, the shell or log file you started it from.
|
|
165
|
+
|
|
166
|
+
Look for errors in the last 3-5 minutes:
|
|
167
|
+
- `4xx` errors (400, 401, 403, 404, 422)
|
|
168
|
+
- `5xx` errors (500, 502, 503)
|
|
169
|
+
- `ZodError` / `ValidationError` — validation failures
|
|
170
|
+
- `AppError` / custom error classes
|
|
171
|
+
- Stack traces
|
|
172
|
+
- Warning messages
|
|
173
|
+
|
|
174
|
+
### 2c. Categorize Errors Found
|
|
175
|
+
|
|
176
|
+
| Category | Log Pattern | Root Cause |
|
|
177
|
+
|----------|-------------|------------|
|
|
178
|
+
| Missing parameter | `ZodError: expected string, received undefined` | FE not sending required param |
|
|
179
|
+
| Wrong type | `ZodError: invalid_type` | FE sending wrong type |
|
|
180
|
+
| Endpoint not found | `404 /api/...` | FE calling non-existent endpoint |
|
|
181
|
+
| Auth error | `401 Unauthorized` | Missing or invalid token |
|
|
182
|
+
| Permission error | `403 Forbidden` | User lacks permission |
|
|
183
|
+
| Validation error | `422 Unprocessable` | Invalid request body |
|
|
184
|
+
| Server error | `500 Internal` | Backend bug |
|
|
185
|
+
| CORS error | `CORS policy` | Missing CORS configuration |
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## Step 3: Trace Errors to Source Code
|
|
190
|
+
|
|
191
|
+
### 3a. Map Errors to Endpoints
|
|
192
|
+
|
|
193
|
+
For each error found, use `Grep` to locate:
|
|
194
|
+
|
|
195
|
+
**Frontend call:**
|
|
196
|
+
```
|
|
197
|
+
Grep: pattern "<ERROR_ENDPOINT>" glob "*.{ts,tsx,js,jsx}"
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
**Backend route:**
|
|
201
|
+
```
|
|
202
|
+
Grep: pattern "<ERROR_ENDPOINT>" glob "*.{ts,js,py,go,rb}" — in backend source
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
**Validation schema:**
|
|
206
|
+
```
|
|
207
|
+
Grep: pattern "z\.object|z\.string|z\.number" in the controller/route file
|
|
208
|
+
SemanticSearch: "validation schema for <ENDPOINT>" target: [backend directory]
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### 3b. Read the Full Chain
|
|
212
|
+
|
|
213
|
+
For each error, read the complete request chain:
|
|
214
|
+
|
|
215
|
+
1. **Frontend call** — Read the file making the API call (service, hook, or component)
|
|
216
|
+
2. **API client config** — Read the axios/fetch interceptor configuration
|
|
217
|
+
3. **Backend route** — Read the route handler
|
|
218
|
+
4. **Backend controller** — Read the controller/service logic
|
|
219
|
+
5. **Validation schema** — Read the Zod/Joi/Yup schema for the endpoint
|
|
220
|
+
6. **Database query** — Read the DB query (if the error is data-related)
|
|
221
|
+
|
|
222
|
+
### 3c. Verify Data State with Supabase MCP
|
|
223
|
+
|
|
224
|
+
If the error might be data-related:
|
|
225
|
+
|
|
226
|
+
```json
|
|
227
|
+
supabase:execute_sql
|
|
228
|
+
{
|
|
229
|
+
"query": "SELECT * FROM <TABLE> WHERE <CONDITION> LIMIT 5"
|
|
230
|
+
}
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
Check:
|
|
234
|
+
- Does the data the FE expects actually exist?
|
|
235
|
+
- Are enum values correct?
|
|
236
|
+
- Are foreign key relationships intact?
|
|
237
|
+
- Does the RLS policy allow access for this user?
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## Step 4: Generate Fix Recommendations
|
|
242
|
+
|
|
243
|
+
### 4a. Frontend Fixes
|
|
244
|
+
|
|
245
|
+
For each error, provide:
|
|
246
|
+
|
|
247
|
+
```markdown
|
|
248
|
+
### Issue: [Endpoint] — [Error Type]
|
|
249
|
+
|
|
250
|
+
**Current FE Call:**
|
|
251
|
+
[show the actual code from Grep results]
|
|
252
|
+
|
|
253
|
+
**Correct FE Call:**
|
|
254
|
+
[show the fixed code]
|
|
255
|
+
|
|
256
|
+
**Why:** [explanation of required parameter/type/format]
|
|
257
|
+
|
|
258
|
+
**Files to Update:** [list specific files]
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
### 4b. Backend Enhancements
|
|
262
|
+
|
|
263
|
+
For each error, consider backend improvements — as recommendations in the report. Apply the fix for the contract failure at hand; the robustness enhancements ship only when the user asks, and every edit is surgical.
|
|
264
|
+
|
|
265
|
+
```markdown
|
|
266
|
+
### Backend Enhancement: [Endpoint]
|
|
267
|
+
|
|
268
|
+
**Current Behavior:** Returns 500 with cryptic validation error
|
|
269
|
+
|
|
270
|
+
**Recommended Enhancement:**
|
|
271
|
+
- Add default value for optional params
|
|
272
|
+
- Add clear error message for required params
|
|
273
|
+
- Add type coercion where appropriate
|
|
274
|
+
- Return helpful 422 instead of 500
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
Example backend enhancement pattern:
|
|
278
|
+
|
|
279
|
+
```typescript
|
|
280
|
+
// Before: bare schema, cryptic error on missing param
|
|
281
|
+
const schema = z.object({
|
|
282
|
+
year: z.string(),
|
|
283
|
+
});
|
|
284
|
+
|
|
285
|
+
// After: defaults, coercion, clear errors
|
|
286
|
+
const schema = z.object({
|
|
287
|
+
year: z.string({
|
|
288
|
+
required_error: "year is required (format: YYYY)"
|
|
289
|
+
}).default(() => new Date().getFullYear().toString()),
|
|
290
|
+
page: z.coerce.number().default(1).int().positive(),
|
|
291
|
+
limit: z.coerce.number().default(10).int().max(100),
|
|
292
|
+
});
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
297
|
+
## Step 5: Backend Robustness Checklist
|
|
298
|
+
|
|
299
|
+
### Input Validation
|
|
300
|
+
- [ ] All required params have clear error messages
|
|
301
|
+
- [ ] Default values for optional params with sensible defaults
|
|
302
|
+
- [ ] Type coercion where appropriate (string to number)
|
|
303
|
+
- [ ] Range validation (dates, numbers)
|
|
304
|
+
- [ ] Format validation (email, UUID, date strings)
|
|
305
|
+
|
|
306
|
+
### Error Handling
|
|
307
|
+
- [ ] Catch and wrap database errors
|
|
308
|
+
- [ ] Provide actionable error messages (not "Internal Server Error")
|
|
309
|
+
- [ ] Log errors with context (userId, endpoint, params)
|
|
310
|
+
- [ ] Do not expose internal details to client (stack traces, SQL)
|
|
311
|
+
|
|
312
|
+
### API Contract Consistency
|
|
313
|
+
- [ ] Response shape is consistent (`{ data }` or `{ error }`)
|
|
314
|
+
- [ ] Status codes are correct (200 success, 201 create, 204 delete)
|
|
315
|
+
- [ ] Pagination format is consistent across all list endpoints
|
|
316
|
+
- [ ] Date formats are consistent (ISO 8601)
|
|
317
|
+
- [ ] Error response shape is consistent
|
|
318
|
+
|
|
319
|
+
---
|
|
320
|
+
|
|
321
|
+
## Output Template
|
|
322
|
+
|
|
323
|
+
```markdown
|
|
324
|
+
## Frontend-Backend Integration Debug Report
|
|
325
|
+
|
|
326
|
+
**Analyzed:** [timestamp range]
|
|
327
|
+
**Frontend:** [framework]
|
|
328
|
+
**Backend:** [framework]
|
|
329
|
+
**API style:** [REST/GraphQL/tRPC]
|
|
330
|
+
|
|
331
|
+
---
|
|
332
|
+
|
|
333
|
+
### Production Errors (Sentry)
|
|
334
|
+
|
|
335
|
+
| Endpoint | Error | Events (7d) | Root Cause |
|
|
336
|
+
|----------|-------|-------------|------------|
|
|
337
|
+
| [endpoint] | [error msg] | [count] | [FE/BE/Data] |
|
|
338
|
+
|
|
339
|
+
---
|
|
340
|
+
|
|
341
|
+
### Backend Log Errors
|
|
342
|
+
|
|
343
|
+
| Endpoint | Method | Status | Error Type | Root Cause |
|
|
344
|
+
|----------|--------|--------|------------|------------|
|
|
345
|
+
| `/api/...` | GET | 500 | ZodError | Missing `year` param |
|
|
346
|
+
| `/api/...` | GET | 404 | Not Found | Endpoint not implemented |
|
|
347
|
+
|
|
348
|
+
---
|
|
349
|
+
|
|
350
|
+
### Critical Issues (Must Fix)
|
|
351
|
+
|
|
352
|
+
#### 1. [Endpoint] — [Status Code]
|
|
353
|
+
- **Error:** [error message]
|
|
354
|
+
- **Root Cause:** [explanation]
|
|
355
|
+
- **Frontend Fix:** [what FE needs to change, with code]
|
|
356
|
+
- **Backend Enhancement:** [optional BE improvement, with code]
|
|
357
|
+
- **Files:** FE: [path], BE: [path]
|
|
358
|
+
|
|
359
|
+
---
|
|
360
|
+
|
|
361
|
+
### Warnings (Should Fix)
|
|
362
|
+
|
|
363
|
+
#### 1. [Issue description]
|
|
364
|
+
- **Impact:** [what happens if not fixed]
|
|
365
|
+
- **Recommendation:** [how to fix]
|
|
366
|
+
|
|
367
|
+
---
|
|
368
|
+
|
|
369
|
+
### Backend Enhancements (Robustness)
|
|
370
|
+
|
|
371
|
+
#### 1. [Enhancement description]
|
|
372
|
+
- **Current:** [current behavior]
|
|
373
|
+
- **Recommended:** [better approach]
|
|
374
|
+
- **Benefit:** [why this helps]
|
|
375
|
+
|
|
376
|
+
---
|
|
377
|
+
|
|
378
|
+
### Research Findings Applied
|
|
379
|
+
- [Pattern from research]: [how it applies]
|
|
380
|
+
- [Best practice]: [gap identified]
|
|
381
|
+
|
|
382
|
+
---
|
|
383
|
+
|
|
384
|
+
### Summary Table
|
|
385
|
+
|
|
386
|
+
| Endpoint | Issue | Fix Required | Priority |
|
|
387
|
+
|----------|-------|--------------|----------|
|
|
388
|
+
| `/api/...` | Missing param | Frontend | HIGH |
|
|
389
|
+
| `/api/...` | No error handling | Both | MEDIUM |
|
|
390
|
+
| `/api/...` | Endpoint 404 | Remove or implement | LOW |
|
|
391
|
+
|
|
392
|
+
---
|
|
393
|
+
|
|
394
|
+
### Next Steps
|
|
395
|
+
|
|
396
|
+
1. [ ] Frontend fixes: [action items with files]
|
|
397
|
+
2. [ ] Backend enhancements: [action items with files]
|
|
398
|
+
3. [ ] Re-test: [verification steps]
|
|
399
|
+
4. [ ] Monitor: Check Sentry after deploy for regression
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
---
|
|
403
|
+
|
|
404
|
+
## Common Patterns and Fixes
|
|
405
|
+
|
|
406
|
+
### Pattern 1: Missing Query Parameter
|
|
407
|
+
|
|
408
|
+
**Symptom:** `ZodError: expected string, received undefined`
|
|
409
|
+
|
|
410
|
+
**FE Fix:** Add the missing parameter to the API call.
|
|
411
|
+
|
|
412
|
+
**BE Fix:** Add a default value or a clear error message.
|
|
413
|
+
|
|
414
|
+
### Pattern 2: Endpoint Not Found (404)
|
|
415
|
+
|
|
416
|
+
**Symptom:** `404 /api/endpoint-name`
|
|
417
|
+
|
|
418
|
+
**Debug steps:**
|
|
419
|
+
1. `Grep` for the endpoint path in backend route files
|
|
420
|
+
2. Check if the endpoint exists under a different name
|
|
421
|
+
3. Check API docs if available
|
|
422
|
+
4. Decide: remove FE call, fix typo, or implement endpoint
|
|
423
|
+
|
|
424
|
+
### Pattern 3: Service Failure (500)
|
|
425
|
+
|
|
426
|
+
**Symptom:** `500 Internal Server Error` with no useful message
|
|
427
|
+
|
|
428
|
+
**Debug steps:**
|
|
429
|
+
1. Read the backend controller for unhandled exceptions
|
|
430
|
+
2. Check if the service handles DB errors gracefully
|
|
431
|
+
3. Check RLS policies if using Supabase (data might be blocked)
|
|
432
|
+
4. Add try/catch with meaningful error responses
|
|
433
|
+
|
|
434
|
+
### Pattern 4: CORS Error
|
|
435
|
+
|
|
436
|
+
**Symptom:** `CORS policy: No 'Access-Control-Allow-Origin'`
|
|
437
|
+
|
|
438
|
+
**Debug steps:**
|
|
439
|
+
1. Check backend CORS configuration
|
|
440
|
+
2. Verify the origin, methods, and headers allowed
|
|
441
|
+
3. Check if credentials mode matches between FE and BE
|
|
442
|
+
|
|
443
|
+
### Pattern 5: Duplicate / Stale Requests
|
|
444
|
+
|
|
445
|
+
**Symptom:** Same API called multiple times, or stale data shown
|
|
446
|
+
|
|
447
|
+
**Debug steps:**
|
|
448
|
+
1. Check if TanStack Query / SWR staleTime is configured
|
|
449
|
+
2. Check if cache invalidation happens after mutations
|
|
450
|
+
3. Check if the queryKey is correct and unique
|
|
451
|
+
4. Check for component re-mount causing refetch
|
|
452
|
+
|
|
453
|
+
---
|
|
454
|
+
|
|
455
|
+
## Integration with Other Skills
|
|
456
|
+
|
|
457
|
+
- **`audit-fe-api`**: Proactive audit from FE code perspective (run first).
|
|
458
|
+
- **`debug-sentry-monitor`**: Triage and fix Sentry errors from production.
|
|
459
|
+
- **`audit-db-schema`**: Verify DB schema matches API expectations.
|