@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,110 @@
|
|
|
1
|
+
## Step 5: Prisma Schema Audit
|
|
2
|
+
|
|
3
|
+
When auditing `schema.prisma`, check:
|
|
4
|
+
|
|
5
|
+
| Rule | Pattern |
|
|
6
|
+
|------|---------|
|
|
7
|
+
| `@id @default(cuid())` or `@default(uuid())` | On every model |
|
|
8
|
+
| `@updatedAt` | On `updatedAt` field |
|
|
9
|
+
| `@default(now())` | On `createdAt` field |
|
|
10
|
+
| `@@index([field])` | On FK and query fields |
|
|
11
|
+
| `@unique` | On email, slug, external IDs |
|
|
12
|
+
| `@relation(onDelete: Cascade)` | Explicit delete behavior |
|
|
13
|
+
| `enum` | For fixed value sets |
|
|
14
|
+
| `@map` / `@@map` | snake_case DB names if needed |
|
|
15
|
+
|
|
16
|
+
Use `Grep` to find violations:
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
Grep: "@relation" in prisma/schema.prisma — check all have onDelete
|
|
20
|
+
Grep: "@@index" in prisma/schema.prisma — count indexed fields
|
|
21
|
+
Grep: "String" fields without @unique that should be unique (email, slug)
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Output Template
|
|
27
|
+
|
|
28
|
+
````markdown
|
|
29
|
+
## Database Schema Audit Report
|
|
30
|
+
|
|
31
|
+
**Date:** [date]
|
|
32
|
+
**Database:** [Supabase Postgres / etc.]
|
|
33
|
+
**ORM:** [Prisma / Drizzle / none]
|
|
34
|
+
**Schema:** public
|
|
35
|
+
**Tables Audited:** [count]
|
|
36
|
+
**Issues Found:** [count]
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
### Supabase Advisor Findings
|
|
41
|
+
|
|
42
|
+
#### Security Advisors
|
|
43
|
+
[List each advisory with description and remediation URL]
|
|
44
|
+
|
|
45
|
+
#### Performance Advisors
|
|
46
|
+
[List each advisory with description and remediation URL]
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
### Audit Summary
|
|
51
|
+
|
|
52
|
+
| Category | Status | Issues |
|
|
53
|
+
|----------|--------|--------|
|
|
54
|
+
| Naming Conventions | [pass/warn/fail] | [count] |
|
|
55
|
+
| Data Types | [pass/warn/fail] | [count] |
|
|
56
|
+
| Timestamps | [pass/warn/fail] | [count] |
|
|
57
|
+
| Constraints | [pass/warn/fail] | [count] |
|
|
58
|
+
| Indexes | [pass/warn/fail] | [count] |
|
|
59
|
+
| RLS Policies | [pass/warn/fail] | [count] |
|
|
60
|
+
| Relationships | [pass/warn/fail] | [count] |
|
|
61
|
+
| Migrations | [pass/warn/fail] | [count] |
|
|
62
|
+
| Security | [pass/warn/fail] | [count] |
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
### Research Findings Applied
|
|
67
|
+
|
|
68
|
+
- [Pattern from Firecrawl/Context7]: [how it applies to this schema]
|
|
69
|
+
- [Best practice]: [gap identified in current schema]
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
### Critical Issues (Must Fix)
|
|
74
|
+
|
|
75
|
+
#### 1. [Table] — [Issue]
|
|
76
|
+
- **Problem:** [description]
|
|
77
|
+
- **Risk:** [data loss / security / performance]
|
|
78
|
+
- **Fix:**
|
|
79
|
+
```sql
|
|
80
|
+
-- migration SQL
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
### Warnings (Should Fix)
|
|
86
|
+
|
|
87
|
+
#### 1. [Description]
|
|
88
|
+
- **Table:** [table]
|
|
89
|
+
- **Impact:** [description]
|
|
90
|
+
- **Recommendation:** [fix]
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
### Table-by-Table Summary
|
|
95
|
+
|
|
96
|
+
| Table | PK | Timestamps | RLS | Indexes | FK Constraints | Status |
|
|
97
|
+
|-------|----|------------|-----|---------|----------------|--------|
|
|
98
|
+
| users | uuid | both | enabled | 3 | 0 | pass |
|
|
99
|
+
| posts | uuid | created only | disabled | 1 | 1 missing | fail |
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
### Next Steps
|
|
104
|
+
|
|
105
|
+
1. [ ] Fix critical issues: [list]
|
|
106
|
+
2. [ ] Enable RLS on: [tables]
|
|
107
|
+
3. [ ] Add missing indexes: [list]
|
|
108
|
+
4. [ ] Add updated_at triggers: [tables]
|
|
109
|
+
5. [ ] Re-run `get_advisors` after fixes to verify
|
|
110
|
+
````
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: audit-doctrine
|
|
3
|
+
description: >
|
|
4
|
+
Read-only audit of custom lint and ratchet rules: is each rule right on the
|
|
5
|
+
merits, not just enforced. Use when "is this lint rule wrong", "the ratchet
|
|
6
|
+
banned a legitimate pattern", or "audit our guardrail doctrine". Enforcement
|
|
7
|
+
→ audit-gate-logic.
|
|
8
|
+
license: MIT
|
|
9
|
+
effort: high
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# audit-doctrine — Is the rule right, not merely enforced?
|
|
13
|
+
|
|
14
|
+
**Degree of freedom: MIXED.**
|
|
15
|
+
|
|
16
|
+
- Reference-practice comparison and remedy judgment (Phases 1–2):
|
|
17
|
+
**HIGH freedom** — weigh each rule against how top products actually
|
|
18
|
+
build.
|
|
19
|
+
- Governance-contract checks (Phases 3–4): **LOW freedom** — the
|
|
20
|
+
contract's clauses are pass/fail; check each exactly.
|
|
21
|
+
|
|
22
|
+
Read-only. **`audit-gate-logic` asks "can this gate be bypassed or
|
|
23
|
+
gamed?" — it assumes the rule is correct. This asks the harder
|
|
24
|
+
question: is the rule right on the merits?** A ratchet that flawlessly
|
|
25
|
+
enforces bad doctrine is worse than no ratchet, because greenness
|
|
26
|
+
certifies the mistake and the developer, given only a codemod list,
|
|
27
|
+
restyles legitimate work to appease a regex instead of fixing a real
|
|
28
|
+
problem. An unexplained lint rejection erodes trust at that decision
|
|
29
|
+
point until people "adopt their own truth." This audit finds the rules
|
|
30
|
+
that are measuring taste, not correctness.
|
|
31
|
+
|
|
32
|
+
Present findings. Do not rewrite detectors, baselines, or tokens here.
|
|
33
|
+
|
|
34
|
+
## This skill vs neighbors
|
|
35
|
+
|
|
36
|
+
| Skill | Owns |
|
|
37
|
+
|---|---|
|
|
38
|
+
| **audit-doctrine** (this) | Rule *content* — remedy, named token, Tier-D practice |
|
|
39
|
+
| `audit-gate-logic` | Rule *machinery* — bypass, gaming, required-but-not |
|
|
40
|
+
| `housekeep-gates` | Consolidate / delete duplicate gates (apply-now) |
|
|
41
|
+
| `enhance-arch-boundaries` | Install boundary *enforcement*, not judge doctrine |
|
|
42
|
+
| `housekeep-design` | Token/component SSOT — the sanctioned-form side |
|
|
43
|
+
| `docs-adr` | Record a justified divergence from Tier-D |
|
|
44
|
+
| `housekeep-backlog` | Un-remedied long-tail axes as `BL-` rows |
|
|
45
|
+
|
|
46
|
+
## The governance contract
|
|
47
|
+
|
|
48
|
+
A custom rule/axis is sound only if all hold:
|
|
49
|
+
|
|
50
|
+
1. **Has a remedy** — states the sanctioned alternative by name; a
|
|
51
|
+
rule that only says "don't" is measuring taste.
|
|
52
|
+
2. **Sanctioned form is reachable** — the approved pattern exists as a
|
|
53
|
+
named token/class, not folklore the developer must reverse-engineer.
|
|
54
|
+
3. **Teaches on failure** — the failure output prints the remedy AND
|
|
55
|
+
the offending `file:line`, not just a codemod list.
|
|
56
|
+
4. **Agrees with Tier-D reference practice** — where the rule
|
|
57
|
+
disagrees with how Stripe / Linear / GitHub / Docusaurus actually
|
|
58
|
+
ship, the burden of proof is on the rule.
|
|
59
|
+
5. **Exceptions expire; baselines only shrink** — no permanent
|
|
60
|
+
grandfather; the baseline cannot silently regrow (ratchet integrity
|
|
61
|
+
still belongs to `audit-gate-logic`).
|
|
62
|
+
|
|
63
|
+
## How to reason (every axis)
|
|
64
|
+
|
|
65
|
+
1. **Observe** — what does the detector actually measure? Read the
|
|
66
|
+
detector, not its name — the name may over-claim (e.g. "no bordered
|
|
67
|
+
cards" that really counts rounded+border without overflow-clip).
|
|
68
|
+
2. **Interpret** — what real pattern does it catch, and what
|
|
69
|
+
*legitimate* pattern does it also reject?
|
|
70
|
+
3. **Reference-check** — do top products ship the rejected pattern?
|
|
71
|
+
4. **Contract-check** — run the five clauses.
|
|
72
|
+
5. **Verdict** — sound / taste-measuring / false-positive /
|
|
73
|
+
folklore-token / missing-remedy, with the fix.
|
|
74
|
+
|
|
75
|
+
## Worked example
|
|
76
|
+
|
|
77
|
+
> **Observe:** a `nested-rounded-box` axis counts rounded + border
|
|
78
|
+
> lines without overflow-clip.
|
|
79
|
+
> **Interpret:** it rejects bordered 前の章/次の章 chapter-link cards
|
|
80
|
+
> — but the doctrine's own shell recipe passes it, so the sanctioned
|
|
81
|
+
> form exists.
|
|
82
|
+
> **Reference-check:** bordered chaptered-nav cards are standard —
|
|
83
|
+
> Docusaurus `pagination-nav`, Stripe docs ship the same pattern.
|
|
84
|
+
> **Contract-check:** remedy missing; reachable token missing (the
|
|
85
|
+
> passing form was never named); failure printed only a codemod list.
|
|
86
|
+
> **Verdict:** false-positive + missing-remedy + folklore-token.
|
|
87
|
+
> **Fix:** name the sanctioned form (e.g. `PAGE_LINK_CARD_CLASS` —
|
|
88
|
+
> bordered, clipped, hover-tiered); print remedy + file:line. Baseline
|
|
89
|
+
> unchanged — the token already equals the baseline, proving the ban
|
|
90
|
+
> was never real.
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Phase 0 — Locate the doctrine [LOW freedom — run exactly]
|
|
95
|
+
|
|
96
|
+
Find the rule surface: custom lint/ratchet axes, the detector suite,
|
|
97
|
+
the doctrine/governance doc (e.g. `MASTER.md`), baseline files,
|
|
98
|
+
exception lists, and the failure-output code. Enumerate every axis
|
|
99
|
+
with: what it detects, its remedy (if any), its baseline, and whether
|
|
100
|
+
a named sanctioned token exists. Record the count — a long tail of
|
|
101
|
+
un-remedied axes is the common state.
|
|
102
|
+
|
|
103
|
+
## Phase 1 — Separate correctness from taste [HIGH freedom]
|
|
104
|
+
|
|
105
|
+
For each axis, classify:
|
|
106
|
+
|
|
107
|
+
- **Correctness** — catches a real bug / a11y / perf / security issue
|
|
108
|
+
(missing focus, contrast fail, unclipped overflow that actually
|
|
109
|
+
breaks layout). These may be stricter with less explanation.
|
|
110
|
+
- **Taste** — enforces a stylistic preference (radius scale, border
|
|
111
|
+
style, card nesting). Not illegitimate, but they carry a higher
|
|
112
|
+
burden: they **must** have a remedy and a reachable token, or they
|
|
113
|
+
generate the appease-the-regex incident.
|
|
114
|
+
|
|
115
|
+
## Phase 2 — Reference-check taste rules [HIGH freedom]
|
|
116
|
+
|
|
117
|
+
For each taste rule, check whether Tier-D products ship the pattern it
|
|
118
|
+
rejects. Use `research` / official docs against Stripe, Linear,
|
|
119
|
+
GitHub, Docusaurus, Radix, shadcn — fetch the live page or docs as
|
|
120
|
+
written; recognizing a product is not knowing what it ships today, and a
|
|
121
|
+
from-memory reference is **needs-reference**, not evidence. Where a rule
|
|
122
|
+
bans what Tier-D
|
|
123
|
+
ships, it is a false-positive *candidate* — the burden of proof is on
|
|
124
|
+
the rule. Document the shipping reference for each disagreement. No
|
|
125
|
+
reference → mark **needs-reference**, not a finding.
|
|
126
|
+
|
|
127
|
+
## Phase 3 — Run the governance contract [LOW freedom — do not skip]
|
|
128
|
+
|
|
129
|
+
Check all five clauses per axis. State coverage honestly: *N of M
|
|
130
|
+
axes carry a remedy* (usually a small fraction — remedies get seeded
|
|
131
|
+
on the axes that bite during feature work; the long tail stays bare).
|
|
132
|
+
Every bare axis is a latent appease-the-regex incident. Flag:
|
|
133
|
+
|
|
134
|
+
- missing-remedy
|
|
135
|
+
- unreachable-sanctioned-form (folklore)
|
|
136
|
+
- non-teaching failure output
|
|
137
|
+
- unexpiring exceptions
|
|
138
|
+
- regrowable baselines
|
|
139
|
+
|
|
140
|
+
Un-remedied axes → `housekeep-backlog` as `BL-` rows (junior-PR
|
|
141
|
+
burndown).
|
|
142
|
+
|
|
143
|
+
## Phase 4 — Freeze against regression [LOW freedom]
|
|
144
|
+
|
|
145
|
+
Confirm or recommend a test suite that freezes the governance
|
|
146
|
+
properties so remedies cannot be silently stripped and sanctioned
|
|
147
|
+
tokens cannot drift back into a false-positive form. Without this, the
|
|
148
|
+
fix decays.
|
|
149
|
+
|
|
150
|
+
## Self-critique before reporting [LOW freedom — do not skip]
|
|
151
|
+
|
|
152
|
+
- **Evidence, not opinion** — every "false positive" cites a specific
|
|
153
|
+
Tier-D reference that ships the pattern. No reference →
|
|
154
|
+
needs-reference, not a finding.
|
|
155
|
+
- **Right axis** — content problem (this skill) vs enforcement
|
|
156
|
+
problem (`audit-gate-logic`). Do not claim a bypass finding.
|
|
157
|
+
- **Remedy is real** — a proposed remedy names an existing or addable
|
|
158
|
+
token, not "use the right style".
|
|
159
|
+
- **Baseline honesty** — confirm the sanctioned form actually passes
|
|
160
|
+
at the current baseline before claiming the ban was illusory.
|
|
161
|
+
|
|
162
|
+
## Definition of Done
|
|
163
|
+
|
|
164
|
+
- [ ] Every axis enumerated: detect-target, remedy, baseline,
|
|
165
|
+
sanctioned-token status
|
|
166
|
+
- [ ] Each axis classified correctness vs taste
|
|
167
|
+
- [ ] Taste rules reference-checked; disagreements cite a shipping
|
|
168
|
+
reference
|
|
169
|
+
- [ ] Five contract clauses run per axis; remedy-coverage stated as
|
|
170
|
+
N of M
|
|
171
|
+
- [ ] False-positives, folklore-tokens, missing-remedies,
|
|
172
|
+
non-teaching failures, unexpiring exceptions, regrowable
|
|
173
|
+
baselines flagged
|
|
174
|
+
- [ ] Freeze-test coverage confirmed or recommended
|
|
175
|
+
- [ ] Self-critique applied
|
|
176
|
+
- [ ] Read-only — propose, do not patch
|
|
177
|
+
|
|
178
|
+
## Output format
|
|
179
|
+
|
|
180
|
+
1. **Axis inventory** — axis | detects | correctness/taste | remedy?
|
|
181
|
+
| reachable token? | teaches? | baseline-shrink-only?
|
|
182
|
+
2. **False-positive findings** — axis | legitimate pattern rejected |
|
|
183
|
+
Tier-D reference | proposed remedy + token
|
|
184
|
+
3. **Governance gaps** — remedy-coverage (N/M), folklore tokens,
|
|
185
|
+
non-teaching outputs, exception/baseline integrity
|
|
186
|
+
4. **Backfill burndown** — un-remedied long-tail axes as tracked
|
|
187
|
+
items (→ `housekeep-backlog` `BL-` rows)
|
|
188
|
+
5. **Handoffs** — enforcement/bypass → `audit-gate-logic`; token
|
|
189
|
+
SSOT → `housekeep-design`; justified divergence → `docs-adr`
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: audit-env-parity
|
|
3
|
+
description: >
|
|
4
|
+
Read-only audit of config parity across dev, staging, and prod: missing or
|
|
5
|
+
misnamed vars, drifted flags, hardcoded values, reused secrets. Use when
|
|
6
|
+
"works locally but not in prod", "audit our environments", or "config
|
|
7
|
+
drift".
|
|
8
|
+
license: MIT
|
|
9
|
+
effort: high
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# audit-env-parity — Environments that agree
|
|
13
|
+
|
|
14
|
+
**Degree of freedom: MIXED** — Phases 0–1 `[HIGH freedom]`; Phase 2
|
|
15
|
+
three-way name diff `[LOW freedom — names only, never values]`.
|
|
16
|
+
|
|
17
|
+
Read-only. Find where environments disagree in ways that cause "works on my
|
|
18
|
+
machine", silent prod misbehavior, or leaked secrets.
|
|
19
|
+
|
|
20
|
+
**The classic outage:** a new env var added locally, referenced in code, never
|
|
21
|
+
set in prod — deploy is green, feature is broken.
|
|
22
|
+
|
|
23
|
+
> **Never print secret values.** Present the gap matrix; do not change host
|
|
24
|
+
> config until approved.
|
|
25
|
+
|
|
26
|
+
## This skill vs neighbors
|
|
27
|
+
|
|
28
|
+
| Skill | Owns |
|
|
29
|
+
|---|---|
|
|
30
|
+
| **audit-env-parity** (this) | Same keys exist (and mean the same) in every env |
|
|
31
|
+
| `workflow-environment-ready` | *Local* machine can build/test/reach services |
|
|
32
|
+
| `plan-secrets-audit` | Credential *exposure* in git / over-scoped keys |
|
|
33
|
+
| `plan-data-integrity` | Destructive ops; staging pointing at prod is shared |
|
|
34
|
+
| `workflow-feature-flag` | Flag rollout process, not "staging flag ≠ prod flag" |
|
|
35
|
+
|
|
36
|
+
Do **not** fire for "did I commit a key" → `plan-secrets-audit`.
|
|
37
|
+
Do **not** fire for "prove this laptop can run the suite" →
|
|
38
|
+
`workflow-environment-ready`.
|
|
39
|
+
|
|
40
|
+
## How to reason
|
|
41
|
+
|
|
42
|
+
1. **Observe** — quote the `process.env` / `import.meta.env` read and whether the name exists in each env
|
|
43
|
+
2. **Interpret** — which runtime path breaks if that name is missing or public-prefixed?
|
|
44
|
+
3. **Classify** — referenced-but-unset / naming drift / secret reuse / hardcoded / dead
|
|
45
|
+
4. **Severity** — prod-missing or public-prefix secret = P0 / Critical
|
|
46
|
+
|
|
47
|
+
## Worked example
|
|
48
|
+
|
|
49
|
+
> **Observe:** `process.env.STRIPE_WEBHOOK_SECRET` used in
|
|
50
|
+
> `app/api/stripe/route.ts`; name absent from Vercel prod; present locally.
|
|
51
|
+
> **Interpret:** deploy is green; webhook verify fails only in prod.
|
|
52
|
+
> **Classify:** referenced-but-unset (prod).
|
|
53
|
+
> **Severity:** P0.
|
|
54
|
+
> **Finding:** `STRIPE_WEBHOOK_SECRET` | prod absent | P0 | set the name;
|
|
55
|
+
> never print the value
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Phase 0 — Enumerate environments and sources [HIGH freedom]
|
|
60
|
+
|
|
61
|
+
- Envs: local, preview/staging, prod
|
|
62
|
+
- Sources: `.env*`, `.env.example`, Vercel/Supabase/Fly dashboards, CI secrets,
|
|
63
|
+
runtime config
|
|
64
|
+
- Demanded set: every `process.env.X` / `import.meta.env` / config object read
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Phase 1 — Parity and correctness [HIGH freedom]
|
|
69
|
+
|
|
70
|
+
**Referenced-but-unset** — Code reads it; an env that runs that path lacks it.
|
|
71
|
+
P0 if prod-missing. Diff `.env.example` against real usage.
|
|
72
|
+
|
|
73
|
+
**Set-but-unreferenced** — Dead vars. Low severity; they hide real config.
|
|
74
|
+
|
|
75
|
+
**Naming drift** — `API_URL` vs `NEXT_PUBLIC_API_URL` vs `VITE_API_URL`.
|
|
76
|
+
Public prefixes shipping a *secret* → Critical; hand to `plan-secrets-audit`.
|
|
77
|
+
|
|
78
|
+
**Value drift that invalidates staging** — Flags, timeouts, model names that
|
|
79
|
+
make staging a different app than prod.
|
|
80
|
+
|
|
81
|
+
**Hardcoded-should-be-config** — URLs, regions, magic values in code. Prod
|
|
82
|
+
pointing at a dev resource (or reverse).
|
|
83
|
+
|
|
84
|
+
**Secret reuse** — Same secret across dev/staging/prod (a dev leak is prod).
|
|
85
|
+
Prod secrets reachable from a dev context.
|
|
86
|
+
|
|
87
|
+
**Service targeting** — Staging DB/bucket/queue must not be prod
|
|
88
|
+
(`plan-data-integrity` if a test would hit real data).
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Phase 2 — Three-way gap [LOW freedom — names only]
|
|
93
|
+
|
|
94
|
+
Diff names only (never values) between code-demands × local-has × prod-has.
|
|
95
|
+
A name present in all three with unknown value mismatch is still a manual
|
|
96
|
+
review flag.
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Definition of Done
|
|
101
|
+
|
|
102
|
+
- [ ] Envs + sources enumerated
|
|
103
|
+
- [ ] Code-referenced keys extracted
|
|
104
|
+
- [ ] Every referenced key checked in every env that runs it
|
|
105
|
+
- [ ] `.env.example` drift flagged
|
|
106
|
+
- [ ] Naming + public-prefix leaks identified
|
|
107
|
+
- [ ] Flag/value drift + hardcoded config found
|
|
108
|
+
- [ ] Cross-env secret reuse + staging→prod services checked
|
|
109
|
+
- [ ] Three-way gap produced with **no secret values**
|
|
110
|
+
- [ ] Nothing changed without approval
|
|
111
|
+
|
|
112
|
+
## Self-critique before reporting [LOW freedom — do not skip]
|
|
113
|
+
|
|
114
|
+
1. **No secret values** — names and present/absent only
|
|
115
|
+
2. **Evidenced** — code read + env-has, not "probably set on Vercel"
|
|
116
|
+
3. **Severity justified** — P0 = prod-missing on a live path
|
|
117
|
+
4. **Right owner** — committed key → `plan-secrets-audit`; staging→prod data → `plan-data-integrity`
|
|
118
|
+
5. **Nothing changed** until approved
|
|
119
|
+
|
|
120
|
+
## Output format
|
|
121
|
+
|
|
122
|
+
1. **Parity matrix** — key × env (present/absent/unknown) + demanded-by-code
|
|
123
|
+
2. **Findings** — missing/dead/misnamed/leaked-prefix/hardcoded/drift
|
|
124
|
+
3. **Secret handoff** — `plan-secrets-audit`
|
|
125
|
+
4. **Fix plan** — prod-missing first, then leaks, then drift
|
|
126
|
+
|
|
127
|
+
## Related
|
|
128
|
+
|
|
129
|
+
- `workflow-environment-ready` — local preflight
|
|
130
|
+
- `plan-secrets-audit` — exposure / rotation
|
|
131
|
+
- `plan-data-integrity` — staging hitting prod
|
|
132
|
+
- `plan-backup-dr` — reconstructability of config after loss
|
|
133
|
+
- `workflow-feature-flag` — rollout, not parity
|