@kensaurus/skills 0.0.0-stage → 2.0.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 +1761 -0
- package/LICENSE +21 -0
- package/NOTICE +13 -0
- package/README.md +820 -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 +93 -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 +296 -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 +154 -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 +379 -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 +304 -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-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 +242 -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 +104 -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 +387 -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 +296 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Loading priority & speculation (2026)
|
|
2
|
+
|
|
3
|
+
Depth for `audit-performance` §Loading Priority & Speculation.
|
|
4
|
+
Implement instant navigations in `enhance-web-instant-nav`.
|
|
5
|
+
|
|
6
|
+
## LCP discoverability
|
|
7
|
+
|
|
8
|
+
The LCP resource must be in the first HTML. Failures:
|
|
9
|
+
|
|
10
|
+
- `loading="lazy"` on the hero
|
|
11
|
+
- CSS `background-image` (not a discoverable request)
|
|
12
|
+
- Client-only `<img>` after hydration
|
|
13
|
+
- Missing `fetchpriority="high"` / `<Image priority />`
|
|
14
|
+
|
|
15
|
+
Preload responsive LCP images:
|
|
16
|
+
|
|
17
|
+
```html
|
|
18
|
+
<link rel="preload" as="image" imagesrcset="…" imagesizes="…" fetchpriority="high">
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Fonts and CLS
|
|
22
|
+
|
|
23
|
+
`next/font` injects fallback metrics (`size-adjust`, `ascent-override`).
|
|
24
|
+
If you self-host `@font-face`, set those overrides or swap causes CLS.
|
|
25
|
+
Preload only the above-fold weight.
|
|
26
|
+
|
|
27
|
+
## 103 Early Hints
|
|
28
|
+
|
|
29
|
+
Emit on HTML only, ≤ ~5 hints: preconnect CDNs + preload LCP image + critical CSS.
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
curl -sv https://example.com/ 2>&1 | grep -E "< HTTP/.* 103"
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Node: `res.writeEarlyHints({ link: [...] })`. CDN: Cloudflare/Fastly Early Hints
|
|
36
|
+
reads origin `Link` headers. See `enhance-web-instant-nav/references/early-hints.md`.
|
|
37
|
+
|
|
38
|
+
## Speculation Rules
|
|
39
|
+
|
|
40
|
+
Prefetch in-site links at `moderate`. Prerender only high-probability next pages.
|
|
41
|
+
Never speculate logout/cart/checkout/auth or GET-with-side-effects.
|
|
42
|
+
Guard servers with `Sec-Purpose` and clients with `document.prerendering`.
|
|
43
|
+
|
|
44
|
+
## bfcache
|
|
45
|
+
|
|
46
|
+
Blockers: `unload`, `Cache-Control: no-store` on HTML, open WebSocket/IDB at
|
|
47
|
+
`pagehide`. Test: DevTools → Application → Back/forward cache.
|
|
48
|
+
|
|
49
|
+
## Verification
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
npx @lhci/cli autorun --config=lighthouserc.json
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Field p75 (CrUX/PSI) is pass/fail. Lab is diagnosis.
|
|
56
|
+
|
|
57
|
+
## Budgets
|
|
58
|
+
|
|
59
|
+
`budget.json` starter (fail the PR on regression):
|
|
60
|
+
|
|
61
|
+
```json
|
|
62
|
+
[{
|
|
63
|
+
"path": "/*",
|
|
64
|
+
"timings": [
|
|
65
|
+
{ "metric": "largest-contentful-paint", "budget": 2500 },
|
|
66
|
+
{ "metric": "cumulative-layout-shift", "budget": 0.1 },
|
|
67
|
+
{ "metric": "total-blocking-time", "budget": 200 }
|
|
68
|
+
],
|
|
69
|
+
"resourceSizes": [
|
|
70
|
+
{ "resourceType": "script", "budget": 300 },
|
|
71
|
+
{ "resourceType": "image", "budget": 500 },
|
|
72
|
+
{ "resourceType": "third-party", "budget": 150 }
|
|
73
|
+
],
|
|
74
|
+
"resourceCounts": [
|
|
75
|
+
{ "resourceType": "third-party", "budget": 5 }
|
|
76
|
+
]
|
|
77
|
+
}]
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Definition of done for a perf PR: before/after field or lab numbers, LCP
|
|
81
|
+
element named, budgets green in CI.
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: audit-realworld
|
|
3
|
+
description: >
|
|
4
|
+
Read-only conformance audit of a full-stack app against RealWorld
|
|
5
|
+
("Conduit"): API spec, shared E2E suite, closest-stack reference. Use when
|
|
6
|
+
"audit against RealWorld", "Conduit conformance", or "is my full-stack app
|
|
7
|
+
complete?".
|
|
8
|
+
license: MIT
|
|
9
|
+
effort: high
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# audit-realworld — Full-Stack Gap Audit vs the RealWorld Reference
|
|
13
|
+
|
|
14
|
+
**Degree of freedom: MIXED** — Mode, parity, and routing `[HIGH freedom]`;
|
|
15
|
+
Phase 4 contract-suite run `[LOW freedom — run exactly]` when a server or
|
|
16
|
+
suite exists.
|
|
17
|
+
|
|
18
|
+
Read-only. Findings and a prioritized gap report only — no code changes.
|
|
19
|
+
Remediation goes to the skill named per finding.
|
|
20
|
+
|
|
21
|
+
RealWorld ("Conduit") is an objectively testable full-stack benchmark: formal
|
|
22
|
+
API spec, shared E2E suite, shared CSS theme, hosted API at
|
|
23
|
+
`api.realworld.show`.
|
|
24
|
+
|
|
25
|
+
> **The RealWorld API spec and its E2E suite are the source of truth — not any
|
|
26
|
+
> single community implementation.** Reference repos vary; the spec and the
|
|
27
|
+
> passing suite do not.
|
|
28
|
+
|
|
29
|
+
> **RealWorld is a demo spec, not a production bar.** It omits rate limiting,
|
|
30
|
+
> observability, caching, CI/CD, secrets, and deployment. Report *feature/
|
|
31
|
+
> pattern parity*, then delegate hardening to `audit-security`,
|
|
32
|
+
> `plan-security-audit`, `plan-perf-audit`, `plan-rls-audit`, and
|
|
33
|
+
> `full-stack-ship-discipline`.
|
|
34
|
+
|
|
35
|
+
## How to reason — Observe → Interpret → Classify → Severity
|
|
36
|
+
|
|
37
|
+
1. **Observe** — quote the spec contract (or pattern) and the repo's `file:line` (or suite result)
|
|
38
|
+
2. **Interpret** — does this layer implement the contract, or only the UI/route?
|
|
39
|
+
3. **Classify** — Implemented / Partial / Missing / Diverges — or Bow-out if the repo is not a web CRUD+auth app
|
|
40
|
+
4. **Severity** — core Conduit / authz / list-contract gaps = High; production-omitted concerns are routed, not scored as RealWorld misses
|
|
41
|
+
|
|
42
|
+
## Worked example
|
|
43
|
+
|
|
44
|
+
> **Observe:** Conformance mode. `GET /api/articles` returns `{ articles }`
|
|
45
|
+
> with no `articlesCount` and no `limit`/`offset` (`app/api/articles/route.ts`).
|
|
46
|
+
> Bruno list request fails the count assertion. Auth header is `Token <jwt>`.
|
|
47
|
+
> **Interpret:** the list contract is partial; clients cannot paginate. Auth
|
|
48
|
+
> scheme matches the spec.
|
|
49
|
+
> **Classify:** Partial (pagination / `articlesCount`); auth Implemented.
|
|
50
|
+
> **Severity:** High — feed is a core Conduit surface.
|
|
51
|
+
> **Finding:** Article list | no pagination / articlesCount | High | complete-everything
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Phase 0 — Detect the stack and gate applicability [HIGH freedom]
|
|
56
|
+
|
|
57
|
+
Read the dependency manifest and source before comparing anything (reuse the
|
|
58
|
+
`audit-fe-api` detection approach).
|
|
59
|
+
|
|
60
|
+
### 0a. Classify the stack
|
|
61
|
+
|
|
62
|
+
- **Frontend:** framework (React/Next/Vue/Nuxt/Svelte/Angular/Solid), router,
|
|
63
|
+
state/data layer (TanStack Query, SWR, RTK, Pinia), HTTP client.
|
|
64
|
+
- **Backend:** framework (Express/Hono/Fastify/Nitro/NestJS/Django/Rails/Go/
|
|
65
|
+
Laravel/Spring), routing style, auth mechanism.
|
|
66
|
+
- **Data layer:** database + ORM/query builder (Prisma/Drizzle/TypeORM/Sequelize/
|
|
67
|
+
SQLAlchemy/ActiveRecord/Supabase), migration tool.
|
|
68
|
+
- **Tests:** unit runner, and any API/E2E harness (Bruno, Hurl, Postman/Newman,
|
|
69
|
+
Playwright, Cypress).
|
|
70
|
+
|
|
71
|
+
### 0b. Applicability gate
|
|
72
|
+
|
|
73
|
+
Decide the mode — state which one and why, out loud:
|
|
74
|
+
|
|
75
|
+
| Condition | Mode |
|
|
76
|
+
|---|---|
|
|
77
|
+
| Repo is a RealWorld/Conduit build (articles, profiles, favorites/follow, tags, JWT `Token` scheme) | **Conformance** |
|
|
78
|
+
| Web full-stack CRUD app with auth + owned resources, but a different domain | **Benchmark** |
|
|
79
|
+
| Not a web app, no HTTP API, no auth/resources (CLI, library, static site, pure ML) | **Bow out** |
|
|
80
|
+
|
|
81
|
+
**If you bow out, say so plainly** and recommend the fitting skills instead
|
|
82
|
+
(`audit-security`, `audit-performance`, `plan-perf-audit`, `audit-code-quality`,
|
|
83
|
+
`audit-fe-api`). Do not force a RealWorld comparison onto a repo it does not fit.
|
|
84
|
+
|
|
85
|
+
### 0c. Record the discovery
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
STACK: FE=<...> · BE=<...> · DB/ORM=<...> · tests=<...>
|
|
89
|
+
MODE: Conformance | Benchmark | Bow-out (reason)
|
|
90
|
+
RealWorld reference chosen: <stack impl> (spec-compliant? maintained?)
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Phase 1 — Pull the reference (current) [HIGH freedom]
|
|
96
|
+
|
|
97
|
+
### 1a. Spec + test suite (source of truth)
|
|
98
|
+
|
|
99
|
+
- API spec and shared E2E suite live in the `realworld-apps/realworld` repo
|
|
100
|
+
(`specs/`, Bruno `.bru`, Hurl `.hurl`) with a Postman collection for endpoint
|
|
101
|
+
testing. The hosted API at `api.realworld.show` needs no keys.
|
|
102
|
+
- Fetch the current spec and note the exact endpoint/response/error contracts
|
|
103
|
+
(summarized in Phase 2). Recognizing RealWorld is not knowing its current
|
|
104
|
+
endpoint contracts — read the spec as published, not from memory.
|
|
105
|
+
|
|
106
|
+
### 1b. Closest-stack reference implementation
|
|
107
|
+
|
|
108
|
+
- Find the nearest implementation on `codebase.show/projects/realworld`, filter
|
|
109
|
+
by the detected FE/BE stack. **Prefer spec-compliant, recently maintained
|
|
110
|
+
implementations** (only a subset are verified spec-compliant at any time).
|
|
111
|
+
- Treat the reference as a *pattern* yardstick (folder structure, auth wiring,
|
|
112
|
+
validation, error mapping) — not as gospel. When the reference and the spec
|
|
113
|
+
disagree, the spec wins.
|
|
114
|
+
|
|
115
|
+
### 1c. Research current best practices
|
|
116
|
+
|
|
117
|
+
Follow the `/research` protocol for the detected stack (Context7 for library
|
|
118
|
+
docs; Firecrawl for current patterns, dated to now). Anchor recommendations to
|
|
119
|
+
the versions actually installed in the repo.
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Phase 2 — Parity / pattern matrix [HIGH freedom]
|
|
124
|
+
|
|
125
|
+
### Conformance mode — audit against the RealWorld contract
|
|
126
|
+
|
|
127
|
+
Enumerate the spec surface and mark each **Implemented / Partial / Missing /
|
|
128
|
+
Diverges**, with `file:line` evidence:
|
|
129
|
+
|
|
130
|
+
**Auth & users**
|
|
131
|
+
- `POST /api/users` (register), `POST /api/users/login`
|
|
132
|
+
- `GET /api/user`, `PUT /api/user` (current user)
|
|
133
|
+
- Auth header scheme: `Authorization: Token <jwt>` (not `Bearer`)
|
|
134
|
+
|
|
135
|
+
**Profiles**
|
|
136
|
+
- `GET /api/profiles/:username`
|
|
137
|
+
- `POST` / `DELETE /api/profiles/:username/follow`
|
|
138
|
+
|
|
139
|
+
**Articles**
|
|
140
|
+
- `GET /api/articles` (filters: `tag`, `author`, `favorited`, `limit`, `offset`)
|
|
141
|
+
- `GET /api/articles/feed` (auth, followed authors)
|
|
142
|
+
- `GET` / `POST` / `PUT` / `DELETE /api/articles/:slug`
|
|
143
|
+
- `POST` / `DELETE /api/articles/:slug/favorite`
|
|
144
|
+
|
|
145
|
+
**Comments & tags**
|
|
146
|
+
- `GET` / `POST /api/articles/:slug/comments`, `DELETE .../comments/:id`
|
|
147
|
+
- `GET /api/tags`
|
|
148
|
+
|
|
149
|
+
**Cross-cutting contracts**
|
|
150
|
+
- Response envelopes: `{ user }`, `{ profile }`, `{ article }`,
|
|
151
|
+
`{ articles, articlesCount }`, `{ comment(s) }`, `{ tags }`
|
|
152
|
+
- Validation errors: `422` with `{ "errors": { "body": [ ... ] } }`
|
|
153
|
+
- Auth failures: `401`; missing resources: `404`
|
|
154
|
+
- Pagination: `limit` / `offset`, with `articlesCount` for lists
|
|
155
|
+
- Slug generation, `favoritesCount`, `following`/`favorited` booleans reflect
|
|
156
|
+
the requesting user
|
|
157
|
+
|
|
158
|
+
### Benchmark mode — map the patterns onto the repo's own domain
|
|
159
|
+
|
|
160
|
+
The repo isn't Conduit, so audit whether it exhibits the same *production-
|
|
161
|
+
relevant patterns* RealWorld demonstrates, for its own resources:
|
|
162
|
+
|
|
163
|
+
| Pattern | What to check in this repo |
|
|
164
|
+
|---|---|
|
|
165
|
+
| Auth flow | Register/login/current-user; token issue + attach + refresh; protected routes |
|
|
166
|
+
| Owned resources + authz | CRUD on user-owned entities; ownership enforced server-side, not just UI |
|
|
167
|
+
| List semantics | Pagination, filtering, total counts, empty states |
|
|
168
|
+
| Relations | Follow/favorite-style join semantics done correctly (no N+1, correct counts) |
|
|
169
|
+
| Consistent envelopes | Uniform response + error shape across endpoints |
|
|
170
|
+
| Validation | Server-side validation with structured field errors |
|
|
171
|
+
| Contract tests | An API/E2E suite that proves the contract, not just unit tests |
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## Phase 3 — Full-stack coverage sweep [HIGH freedom]
|
|
176
|
+
|
|
177
|
+
Audit all three layers, not just whichever is easiest to read:
|
|
178
|
+
|
|
179
|
+
- **Frontend:** routes for each resource; auth flow (login/register/logout,
|
|
180
|
+
token persistence, guarded routes); data layer (caching, error/loading/empty
|
|
181
|
+
states); forms with validation and server-error surfacing.
|
|
182
|
+
- **Backend:** every spec/pattern endpoint present; auth middleware; input
|
|
183
|
+
validation; consistent error mapping; pagination; correct status codes.
|
|
184
|
+
- **Data layer:** schema covers the entities and relations; migrations exist and
|
|
185
|
+
are current; indexes on foreign keys and hot query paths; constraints
|
|
186
|
+
(unique, not-null, FK) enforce integrity. Verify live via Supabase MCP when
|
|
187
|
+
applicable.
|
|
188
|
+
- **Tests:** unit coverage on core logic, plus the RealWorld contract suite (or
|
|
189
|
+
the repo's equivalent E2E harness).
|
|
190
|
+
- **Build/config:** app builds; env contract documented (names only).
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## Phase 4 — Live conformance test (optional but decisive) [LOW freedom — run exactly]
|
|
195
|
+
|
|
196
|
+
If a server is running or the E2E suite is present, run the objective proof:
|
|
197
|
+
|
|
198
|
+
- Run the RealWorld Bruno collection (`bru run`), the Hurl files
|
|
199
|
+
(`hurl --test`), or the Postman collection (`newman run`) against the local
|
|
200
|
+
API base URL. Report pass/fail per endpoint.
|
|
201
|
+
- If no server is available, state exactly how to run it (base URL, seed/demo
|
|
202
|
+
credentials) rather than guessing conformance from code alone.
|
|
203
|
+
|
|
204
|
+
A passing contract suite is stronger evidence than any static reading. Save any
|
|
205
|
+
run artifacts under `.playwright-mcp/` if using playwright-cli.
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
## Phase 5 — Production layering (the honest part) [HIGH freedom]
|
|
210
|
+
|
|
211
|
+
RealWorld parity is necessary breadth, not sufficient depth. Enumerate what
|
|
212
|
+
RealWorld does **not** cover and route each to the right skill — do not imply
|
|
213
|
+
parity means production-ready:
|
|
214
|
+
|
|
215
|
+
| Concern RealWorld omits | Route to |
|
|
216
|
+
|---|---|
|
|
217
|
+
| AuthN/AuthZ hardening, secrets, injection, OWASP | `audit-security`, `plan-security-audit` |
|
|
218
|
+
| Row-level security / access control (Supabase) | `plan-rls-audit` |
|
|
219
|
+
| Performance, Core Web Vitals, query cost | `plan-perf-audit`, `audit-performance`, `backend-db-performance` |
|
|
220
|
+
| FE↔BE contract drift and runtime errors | `audit-fe-api`, `debug-fe-be-integration` |
|
|
221
|
+
| Rate limiting, observability, error handling | `backend-observability`, `backend-error-handling` |
|
|
222
|
+
| Deploy + migration/edge-function verification | `full-stack-ship-discipline`, `deploy-verify` |
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## Phase 6 — Report (read-only) [HIGH freedom]
|
|
227
|
+
|
|
228
|
+
```markdown
|
|
229
|
+
## RealWorld Full-Stack Audit — [repo] — [date]
|
|
230
|
+
|
|
231
|
+
**Mode:** Conformance | Benchmark
|
|
232
|
+
**Stack:** FE [..] · BE [..] · DB/ORM [..] · tests [..]
|
|
233
|
+
**Reference:** [closest-stack impl] (spec-compliant: yes/no)
|
|
234
|
+
**Live contract suite:** ran (N/M passed) | not run — [how to run]
|
|
235
|
+
|
|
236
|
+
### Implemented correctly
|
|
237
|
+
- [feature/pattern] — [file:line]
|
|
238
|
+
|
|
239
|
+
### Partial (works but incomplete or diverges)
|
|
240
|
+
| Feature/Pattern | Gap | file:line | Severity | Fix via |
|
|
241
|
+
|---|---|---|---|---|
|
|
242
|
+
| Article feed | No pagination / articlesCount | ... | High | complete-everything |
|
|
243
|
+
|
|
244
|
+
### Missing
|
|
245
|
+
| Feature/Pattern | file:line (where it should live) | Severity | Fix via |
|
|
246
|
+
|---|---|---|---|
|
|
247
|
+
| DELETE comment authz | ... | High | workflow-fix-and-ship |
|
|
248
|
+
|
|
249
|
+
### Diverges from spec (Conformance mode)
|
|
250
|
+
| Endpoint | Spec says | Repo does | file:line |
|
|
251
|
+
|---|---|---|---|
|
|
252
|
+
| Auth header | `Token <jwt>` | `Bearer <jwt>` | ... |
|
|
253
|
+
|
|
254
|
+
### Production gaps (NOT covered by RealWorld — separate hardening)
|
|
255
|
+
- Security → `audit-security` · Perf → `plan-perf-audit` · RLS → `plan-rls-audit` · ...
|
|
256
|
+
|
|
257
|
+
### Recommended order
|
|
258
|
+
1. [Critical conformance/parity gaps] → complete-everything / workflow-fix-and-ship
|
|
259
|
+
2. [Production hardening] → audit-security → plan-perf-audit → ...
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
**Forbidden:** claiming production-readiness from RealWorld parity alone;
|
|
263
|
+
inventing conformance without running or precisely describing the contract test;
|
|
264
|
+
silently skipping a layer (FE, BE, or DB).
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## Self-critique before reporting [LOW freedom — do not skip]
|
|
269
|
+
|
|
270
|
+
1. **Evidenced** — `file:line` or suite pass/fail, not "looks like Conduit"
|
|
271
|
+
2. **Mode honest** — Bow-out if no HTTP API + auth + owned resources; do not force a comparison
|
|
272
|
+
3. **Suite honesty** — ran N/M or stated exactly how to run; never invent conformance
|
|
273
|
+
4. **All three layers** — FE, BE, and data; skipping one is a failed audit
|
|
274
|
+
5. **Not production-ready** — RealWorld parity is never a security / perf / RLS pass
|
|
275
|
+
6. **Nothing changed** until approved
|
|
276
|
+
|
|
277
|
+
## Related
|
|
278
|
+
|
|
279
|
+
- `audit-fe-api` — FE↔BE contract detail once endpoints are inventoried
|
|
280
|
+
- `debug-fe-be-integration` — reactive debugging of contract mismatches
|
|
281
|
+
- `audit-security` / `plan-security-audit` — the security depth RealWorld omits
|
|
282
|
+
- `plan-rls-audit` — Supabase access control
|
|
283
|
+
- `plan-perf-audit` / `audit-performance` — the performance depth RealWorld omits
|
|
284
|
+
- `test-unit` / `test-playwright` — write the coverage this audit finds missing
|
|
285
|
+
- `complete-everything` — close the parity + hardening gaps to done
|
|
286
|
+
- `workflow-fix-and-ship` — fix a single missing endpoint/feature and ship it
|
|
287
|
+
- `full-stack-ship-discipline` (rule) — migrations/functions must actually deploy
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: audit-registry-listing
|
|
3
|
+
description: >
|
|
4
|
+
Read-only audit of where a repo is found: README first screen, npm/PyPI
|
|
5
|
+
metadata and tarball, GitHub topics, social preview, plugin manifests. Use
|
|
6
|
+
when "audit our npm listing", "README as landing page", or "why nobody finds
|
|
7
|
+
the package". Fix → enhance-readme.
|
|
8
|
+
license: MIT
|
|
9
|
+
effort: high
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# audit-registry-listing — The registry is the landing page
|
|
13
|
+
|
|
14
|
+
**Degree of freedom: MIXED.** What the first screen should say
|
|
15
|
+
`[HIGH freedom]`; the metadata checklist and the tarball check
|
|
16
|
+
`[LOW freedom — run exactly]`.
|
|
17
|
+
|
|
18
|
+
Read-only. For a package, plugin, skill pack, or CLI, discovery happens in a
|
|
19
|
+
registry and the README's first ten lines are the hero. This skill checks
|
|
20
|
+
every surface a stranger sees before the repo, reports gaps with evidence,
|
|
21
|
+
and hands fixes to the owning skills.
|
|
22
|
+
|
|
23
|
+
## This skill vs neighbors
|
|
24
|
+
|
|
25
|
+
| Skill | Owns |
|
|
26
|
+
|---|---|
|
|
27
|
+
| **audit-registry-listing** (this) | Findings on README hero, registry metadata, GitHub surface, manifests, install path |
|
|
28
|
+
| `enhance-readme` | Hero image, tour grid, screenshots — the fix |
|
|
29
|
+
| `docs-writer` | README prose, quickstart wording |
|
|
30
|
+
| `deploy-npm` | The publish itself; `files`/`publishConfig` changes ship through it |
|
|
31
|
+
| `plan-aso` | App Store / Play listings |
|
|
32
|
+
| `enhance-web-seo` | The website, not the registry |
|
|
33
|
+
| `plan-dependency-provenance` | Whether *dependencies* are real — not this package's listing |
|
|
34
|
+
|
|
35
|
+
Do **not** fire for "make the README prettier" → `enhance-readme`.
|
|
36
|
+
|
|
37
|
+
## How to reason
|
|
38
|
+
|
|
39
|
+
1. **Surface** — which registry or page does a stranger hit first for this repo?
|
|
40
|
+
2. **Ten lines** — can they say what it is, for whom, and how to install, before scrolling?
|
|
41
|
+
3. **Metadata** — does the registry card (name, description, keywords, homepage, repo, license) say the same thing?
|
|
42
|
+
4. **Tarball** — does the published artifact contain what the README promises and nothing it should not?
|
|
43
|
+
5. **Path** — install to first success in under a minute, on a clean machine?
|
|
44
|
+
|
|
45
|
+
## Worked example
|
|
46
|
+
|
|
47
|
+
> **Surface:** npm page + skills.sh card + GitHub repo.
|
|
48
|
+
> **Ten lines:** README opens with a logo and a count ("145 skills · 57 commands"); the outcome appears in paragraph 3.
|
|
49
|
+
> **Metadata:** npm description repeats the count; GitHub description empty; 4 topics; no social preview; `homepage` points at skills.sh (good).
|
|
50
|
+
> **Tarball:** `npm pack --dry-run` shows `docs/screenshots/` (12 MB) shipping; `llms.txt` present.
|
|
51
|
+
> **Path:** `npx @kensaurus/skills --all` works; first-run message tells the user to restart Cursor — good.
|
|
52
|
+
> **Findings:** hero leads with counts (major → `enhance-readme`/`docs-writer`); GitHub description + preview missing (minor → repo settings); screenshots bloat the tarball (minor → `deploy-npm` `files`).
|
|
53
|
+
|
|
54
|
+
## Self-critique before reporting
|
|
55
|
+
|
|
56
|
+
- **Evidence** — every finding quotes the line, field, or `npm pack` output
|
|
57
|
+
- **Stranger test** — the ten-line verdict comes from a fresh-context subagent given only the README's first ten lines and the registry card, nothing else from the repo; this is the one place delegation pays here, because once you have read the repo your own read is no longer a stranger's
|
|
58
|
+
- **No fixes applied** — findings and owners only
|
|
59
|
+
- **Right owner** — visuals → `enhance-readme`; prose → `docs-writer`; `files` → `deploy-npm`; store → `plan-aso`
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Checklist [LOW freedom — run exactly]
|
|
64
|
+
|
|
65
|
+
### A · README first screen
|
|
66
|
+
- Line 1–10: name, one outcome sentence (not a count), who it is for, install one-liner, one screenshot or terminal GIF.
|
|
67
|
+
- Badges: version, license, one live proof (installs/downloads); no broken or stale badges.
|
|
68
|
+
- Quickstart to first success ≤ 5 steps; a "what it is not" line.
|
|
69
|
+
|
|
70
|
+
### B · Registry metadata (npm / PyPI / crates / gems)
|
|
71
|
+
- `name`, `description` (outcome-first, ≤ 140 chars), `keywords` (the queries people type), `homepage`, `repository`, `bugs`, `license`, `engines`.
|
|
72
|
+
- README rendered on the registry equals the repo README (or a deliberate short version).
|
|
73
|
+
- `npm pack --dry-run` / `python -m build` listing: everything promised present; no `.env*`, keys, screenshots, tests, or 10 MB+ assets unless intended; `files` whitelist present.
|
|
74
|
+
- `bin` names match the README; `npx <pkg>` runs without a global install.
|
|
75
|
+
- Provenance / trusted publishing badge if available.
|
|
76
|
+
|
|
77
|
+
### C · GitHub surface
|
|
78
|
+
- Repo description (outcome, ≤ 120 chars), website URL, ≥ 5 topics that match the keywords, social preview image set (1280×640), releases with notes, pinned issue or discussion for feedback, `SECURITY.md`, license detected.
|
|
79
|
+
|
|
80
|
+
### D · Ecosystem manifests
|
|
81
|
+
- skills.sh / Cursor / Claude / Codex / Gemini plugin manifests: version in sync with the package, description in sync, install command correct on each surface, listing status honest (submitted ≠ listed).
|
|
82
|
+
- MCP registry only if the repo ships a runnable server.
|
|
83
|
+
|
|
84
|
+
### E · Install path
|
|
85
|
+
- On a clean profile (temp HOME): install one-liner → first successful action; note every prompt, restart, or missing-key stop; time it.
|
|
86
|
+
|
|
87
|
+
## Report template
|
|
88
|
+
|
|
89
|
+
```markdown
|
|
90
|
+
# Registry Listing Audit — <package>
|
|
91
|
+
|
|
92
|
+
## Surfaces checked
|
|
93
|
+
| Surface | URL | Fetched |
|
|
94
|
+
|
|
95
|
+
## Ten-line verdict (stranger read)
|
|
96
|
+
What it is: … · For whom: … · How to install: … · Missing: …
|
|
97
|
+
|
|
98
|
+
## Findings
|
|
99
|
+
| # | Surface | Gap | Evidence | Sev | Owner skill |
|
|
100
|
+
|
|
101
|
+
## Tarball
|
|
102
|
+
`npm pack --dry-run` — N files, X MB; unexpected: …
|
|
103
|
+
|
|
104
|
+
## Install path
|
|
105
|
+
Steps … · Time … · Stops …
|
|
106
|
+
|
|
107
|
+
## Handoff
|
|
108
|
+
`enhance-readme` (hero/screenshots) · `docs-writer` (prose) · `deploy-npm` (`files`, metadata) · repo settings (description, topics, preview)
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Guardrails
|
|
112
|
+
|
|
113
|
+
- **Read-only.** No README, manifest, or repo-settings edits here.
|
|
114
|
+
- **No count-led heroes.** Recommend the outcome sentence; counts go in a badge.
|
|
115
|
+
- **Honest listing status.** "Submitted" and "listed" are different words.
|
|
116
|
+
|
|
117
|
+
## Chains with
|
|
118
|
+
|
|
119
|
+
- **`plan-gtm`** → for repo-as-product, this is Phase 1 evidence.
|
|
120
|
+
- **`enhance-readme`** / **`docs-writer`** → apply the findings.
|
|
121
|
+
- **`deploy-npm`** → ship metadata and `files` fixes.
|
|
122
|
+
- **`docs-launch-kit`** → announce the refreshed listing.
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: audit-resilience
|
|
3
|
+
description: >
|
|
4
|
+
Read-only production-resilience audit: timeouts, bounded retries, circuit
|
|
5
|
+
breakers, idempotency, rate limits, graceful degradation, PII in logs. Use
|
|
6
|
+
when "resilience audit", "will this survive real traffic?", or "audit
|
|
7
|
+
retries/timeouts/idempotency".
|
|
8
|
+
license: MIT
|
|
9
|
+
effort: high
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# audit-resilience — The "80% Problem" Non-Functional Audit
|
|
13
|
+
|
|
14
|
+
**Degree of freedom: MIXED** — Phases 1 and 4 `[HIGH freedom]`; Phase 0/2
|
|
15
|
+
surface greps `[LOW freedom — run exactly]`.
|
|
16
|
+
|
|
17
|
+
Agents nail the happy path (CRUD, passing tests) and silently skip what decides whether code
|
|
18
|
+
survives real traffic: a webhook with no idempotency key double-charges; a fetch with no
|
|
19
|
+
timeout hangs the request; a retry storm with no backoff takes down the dependency; PII lands
|
|
20
|
+
in plaintext logs. This audit finds those gaps before production does.
|
|
21
|
+
|
|
22
|
+
> **Read-only.** This skill inventories resilience gaps and hands each to the right fix skill.
|
|
23
|
+
> It does not change code.
|
|
24
|
+
|
|
25
|
+
## How to reason
|
|
26
|
+
|
|
27
|
+
1. **Observe** — quote the call/mutation and whether timeout, retry+jitter, or idempotency key exists
|
|
28
|
+
2. **Interpret** — hang, retry storm, double-write, or silent catch?
|
|
29
|
+
3. **Classify** — Implemented / Partial / Missing (per matrix row)
|
|
30
|
+
4. **Severity** — payment/webhook without idempotency, or no timeout on a live path = Critical
|
|
31
|
+
|
|
32
|
+
## Worked example
|
|
33
|
+
|
|
34
|
+
> **Observe:** `POST /api/webhooks/stripe` inserts a payment with no
|
|
35
|
+
> `Idempotency-Key` / dedupe (`app/api/webhooks/stripe/route.ts:44`);
|
|
36
|
+
> `fetch` to Stripe has no `signal` / timeout.
|
|
37
|
+
> **Interpret:** Stripe retry double-charges; a hung fetch exhausts the pool.
|
|
38
|
+
> **Classify:** idempotency Missing; timeout Missing.
|
|
39
|
+
> **Severity:** Critical.
|
|
40
|
+
> **Finding:** webhook | no idempotency + no timeout | Critical | `backend-patterns`
|
|
41
|
+
|
|
42
|
+
## Phase 0 — Detect the surfaces [LOW freedom — run exactly]
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
# Outbound calls + clients
|
|
46
|
+
rg -n "fetch\(|axios|got\(|httpx|requests\.|HttpClient|ky\(" -g "*.{ts,tsx,js,py,go}" -l
|
|
47
|
+
# Mutations / writes / external effects
|
|
48
|
+
rg -n "prisma\.|\.insert\(|\.update\(|\.delete\(|supabase\.|INSERT|UPDATE|DELETE" -g "*.{ts,py,sql}" -l
|
|
49
|
+
# Webhooks / payments / queues
|
|
50
|
+
rg -n "webhook|stripe|paypal|queue|kafka|sqs|bull|cron|schedule" -g "*.{ts,tsx,js,py}" -l
|
|
51
|
+
# Logging (for PII / audit-log review)
|
|
52
|
+
rg -n "console\.(log|error)|logger\.|logging\.|print\(" -g "*.{ts,tsx,js,py}" -c
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Record: HTTP clients, external services, mutation/webhook/payment paths, queue/cron jobs,
|
|
56
|
+
and the logging approach. If there are no external calls or mutations (pure static site /
|
|
57
|
+
library), note reduced applicability.
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Phase 1 — Research current patterns [HIGH freedom]
|
|
62
|
+
|
|
63
|
+
Follow `/research`: current-year resilience patterns for the detected stack (retry/backoff
|
|
64
|
+
libraries, circuit-breaker options, idempotency-key conventions, the platform's rate-limit
|
|
65
|
+
primitives). Anchor to installed versions.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Phase 2 — Resilience matrix (per external call / mutation / endpoint) [HIGH freedom; greps LOW]
|
|
70
|
+
|
|
71
|
+
For each surface, mark **Implemented / Partial / Missing** with `file:line`:
|
|
72
|
+
|
|
73
|
+
| Concern | What to check | Why it matters |
|
|
74
|
+
|---|---|---|
|
|
75
|
+
| **Timeout** | Every outbound call has an explicit timeout | No timeout = hung requests exhaust the pool |
|
|
76
|
+
| **Retry + backoff** | Transient failures retried with exponential backoff **+ jitter**, capped | Naive retries cause retry storms |
|
|
77
|
+
| **Circuit breaker** | Repeated downstream failure trips a breaker / stops hammering | Prevents cascading failure |
|
|
78
|
+
| **Idempotency** | Writes/webhooks/payments use an idempotency key or dedupe | Prevents double-charge / double-write on retry |
|
|
79
|
+
| **Rate limiting** | Public/expensive endpoints are rate-limited per client | Prevents abuse and cost blowups |
|
|
80
|
+
| **Cancellation** | Long/aborted requests are cancellable (`AbortSignal`/context) | Frees resources on navigation/timeout |
|
|
81
|
+
| **Graceful degradation** | Fallback/empty/cached path when a dependency is down | App stays usable, not white-screen |
|
|
82
|
+
| **Error propagation** | Failures surface as structured errors, not swallowed | Silent catch hides outages |
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
rg -n "timeout|AbortController|AbortSignal|signal:" -g "*.{ts,tsx,js}" -c # timeouts/cancellation
|
|
86
|
+
rg -n "retry|backoff|p-retry|exponential|jitter" -g "*.{ts,tsx,js,py}" -c # retry policy
|
|
87
|
+
rg -n "idempotenc|dedupe|Idempotency-Key" -g "*.{ts,tsx,js,py}" -c # idempotency
|
|
88
|
+
rg -n "rate.?limit|rateLimit|throttle|Ratelimit" -g "*.{ts,tsx,js,py}" -c # rate limiting
|
|
89
|
+
rg -n "catch\s*\([^)]*\)\s*\{\s*\}" -g "*.{ts,tsx,js}" # empty catch (swallowed errors)
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Phase 3 — Observability & sensitive-data handling [HIGH freedom; PII grep LOW]
|
|
95
|
+
|
|
96
|
+
| Concern | What to check |
|
|
97
|
+
|---|---|
|
|
98
|
+
| **Audit logging** | Sensitive/mutating actions (auth, payment, role change, delete) are logged with actor + timestamp |
|
|
99
|
+
| **PII in logs** | No emails/tokens/card data/passwords logged in plaintext; redaction in place |
|
|
100
|
+
| **Structured errors** | Errors carry codes/context (not bare strings); correlation/trace id present |
|
|
101
|
+
| **Health/timeouts surfaced** | Failures are observable (Sentry/logs), not only user-visible |
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
rg -n "password|token|secret|email|ssn|card|cvv" -g "*.{ts,tsx,js,py}" | rg -n "log|console|print"
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Phase 4 — Prioritized report (read-only) [HIGH freedom]
|
|
110
|
+
|
|
111
|
+
```markdown
|
|
112
|
+
## Resilience Audit — [repo] — [date]
|
|
113
|
+
**Surfaces:** [N outbound calls · M mutations · K webhooks/payments · queues/cron]
|
|
114
|
+
|
|
115
|
+
### Critical (data loss / double-charge / outage risk)
|
|
116
|
+
| Gap | Surface | file:line | Fix via |
|
|
117
|
+
|---|---|---|---|
|
|
118
|
+
| No idempotency key on payment webhook | /api/webhooks/stripe | ... | backend-patterns |
|
|
119
|
+
|
|
120
|
+
### High / Medium
|
|
121
|
+
| Concern | Implemented | Partial | Missing | Fix via |
|
|
122
|
+
|---|---|---|---|---|
|
|
123
|
+
| Timeouts | [n] | [n] | [n] | backend-error-handling |
|
|
124
|
+
| Retry+backoff | ... | ... | ... | backend-patterns |
|
|
125
|
+
| PII in logs | ... | ... | ... | backend-observability |
|
|
126
|
+
|
|
127
|
+
### Recommended order
|
|
128
|
+
1. [Critical idempotency/timeout gaps] → backend-patterns / backend-error-handling
|
|
129
|
+
2. [Rate limiting + LLM cost] → plan-llm-cost-guardrails
|
|
130
|
+
3. [Observability + PII redaction] → backend-observability
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
**Forbidden:** claiming production-readiness from passing tests alone; treating an empty
|
|
134
|
+
`catch` as handled; skipping the payment/webhook idempotency check.
|
|
135
|
+
|
|
136
|
+
## Self-critique before reporting [LOW freedom — do not skip]
|
|
137
|
+
|
|
138
|
+
1. **Evidenced** — `file:line` on the call, not "probably has a timeout"
|
|
139
|
+
2. **Reproducible** — the Phase 0/2 grep still hits that surface
|
|
140
|
+
3. **Severity justified** — Critical = double-charge / data-loss / pool-exhaust
|
|
141
|
+
4. **Right owner** — implement via `backend-patterns` / `backend-error-handling`; LLM quota → `plan-llm-cost-guardrails`
|
|
142
|
+
5. **No-false-safety** — passing tests ≠ production-ready; empty `catch` ≠ handled
|
|
143
|
+
|
|
144
|
+
## Related
|
|
145
|
+
|
|
146
|
+
- `backend-error-handling` — implement timeouts, retries, structured errors, fallbacks
|
|
147
|
+
- `backend-patterns` — circuit breakers, idempotency, queue/retry architecture
|
|
148
|
+
- `backend-observability` — audit logging, PII redaction, tracing, alerting
|
|
149
|
+
- `plan-llm-cost-guardrails` — rate limiting + quota abuse for LLM/expensive endpoints
|
|
150
|
+
- `plan-input-validation` — the trust-boundary validation side of hardening
|
|
151
|
+
- `plan-data-integrity` — destructive-op and data-loss protections
|
|
152
|
+
- `test-load` — prove timeouts/retries under concurrent traffic
|
|
153
|
+
- `audit-ui-states` — front-end empty/error/offline rendering
|
|
154
|
+
- `complete-everything` — close the audited gaps to done with verification
|