agent-skill-kit 3.9.135
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/.agent/global.d.ts +80 -0
- package/.agent/rules/GEMINI.md +210 -0
- package/.agent/rules/autopilot.md +287 -0
- package/.agent/rules/code-rules.md +227 -0
- package/.agent/scripts/audit_workflows.ts +23 -0
- package/.agent/scripts/auto_preview.ts +170 -0
- package/.agent/scripts/checklist.ts +180 -0
- package/.agent/scripts/compile-agents.ts +237 -0
- package/.agent/scripts/fix_skills.ts +49 -0
- package/.agent/scripts/session_manager.ts +222 -0
- package/.agent/scripts/skill-audit.ts +255 -0
- package/.agent/scripts/sync_workflows.ts +54 -0
- package/.agent/scripts/utils/colors.ts +58 -0
- package/.agent/scripts/utils/process-manager.ts +131 -0
- package/.agent/scripts/utils/reporter.ts +192 -0
- package/.agent/scripts/utils/runner.ts +128 -0
- package/.agent/scripts/verify_all.ts +243 -0
- package/.agent/scripts/version-sync.ts +256 -0
- package/.agent/skills/SKILL_INDEX.md +129 -0
- package/.agent/skills/agent-browser/AGENTS.md +728 -0
- package/.agent/skills/agent-browser/SKILL.md +193 -0
- package/.agent/skills/agent-browser/rules/_sections.md +15 -0
- package/.agent/skills/agent-browser/rules/_template.md +32 -0
- package/.agent/skills/agent-browser/rules/engineering-spec.md +528 -0
- package/.agent/skills/agent-browser/scripts/browser_cli.ts +52 -0
- package/.agent/skills/agent-browser/scripts/session_manager.ts +166 -0
- package/.agent/skills/ai-artist/AGENTS.md +1082 -0
- package/.agent/skills/ai-artist/SKILL.md +186 -0
- package/.agent/skills/ai-artist/rules/_sections.md +30 -0
- package/.agent/skills/ai-artist/rules/_template.md +32 -0
- package/.agent/skills/ai-artist/rules/domain-code.md +118 -0
- package/.agent/skills/ai-artist/rules/domain-marketing.md +105 -0
- package/.agent/skills/ai-artist/rules/engineering-spec.md +519 -0
- package/.agent/skills/ai-artist/rules/image-prompts.md +195 -0
- package/.agent/skills/ai-artist/rules/model-syntax.md +115 -0
- package/.agent/skills/ai-artist/scripts/prompt_compiler.ts +72 -0
- package/.agent/skills/ai-artist/templates/image-core.txt +1 -0
- package/.agent/skills/ai-artist/templates/llm-core.txt +6 -0
- package/.agent/skills/api-architect/AGENTS.md +1896 -0
- package/.agent/skills/api-architect/SKILL.md +173 -0
- package/.agent/skills/api-architect/rules/_sections.md +35 -0
- package/.agent/skills/api-architect/rules/_template.md +32 -0
- package/.agent/skills/api-architect/rules/api-style.md +115 -0
- package/.agent/skills/api-architect/rules/auth.md +134 -0
- package/.agent/skills/api-architect/rules/documentation.md +131 -0
- package/.agent/skills/api-architect/rules/engineering-spec.md +505 -0
- package/.agent/skills/api-architect/rules/graphql.md +154 -0
- package/.agent/skills/api-architect/rules/rate-limiting.md +76 -0
- package/.agent/skills/api-architect/rules/response.md +138 -0
- package/.agent/skills/api-architect/rules/rest.md +113 -0
- package/.agent/skills/api-architect/rules/security-testing.md +146 -0
- package/.agent/skills/api-architect/rules/trpc.md +129 -0
- package/.agent/skills/api-architect/rules/versioning.md +100 -0
- package/.agent/skills/api-architect/scripts/api_validator.ts +413 -0
- package/.agent/skills/auth-patterns/AGENTS.md +1830 -0
- package/.agent/skills/auth-patterns/SKILL.md +163 -0
- package/.agent/skills/auth-patterns/rules/_sections.md +30 -0
- package/.agent/skills/auth-patterns/rules/_template.md +32 -0
- package/.agent/skills/auth-patterns/rules/engineering-spec.md +515 -0
- package/.agent/skills/auth-patterns/rules/jwt-deep.md +196 -0
- package/.agent/skills/auth-patterns/rules/mfa.md +174 -0
- package/.agent/skills/auth-patterns/rules/oauth2.md +134 -0
- package/.agent/skills/auth-patterns/rules/passkey.md +243 -0
- package/.agent/skills/auth-patterns/rules/rbac-abac.md +206 -0
- package/.agent/skills/auth-patterns/rules/session.md +183 -0
- package/.agent/skills/auth-patterns/scripts/auth_validator.ts +121 -0
- package/.agent/skills/chrome-devtools/AGENTS.md +952 -0
- package/.agent/skills/chrome-devtools/SKILL.md +160 -0
- package/.agent/skills/chrome-devtools/rules/_sections.md +25 -0
- package/.agent/skills/chrome-devtools/rules/_template.md +32 -0
- package/.agent/skills/chrome-devtools/rules/aria-snapshot.md +95 -0
- package/.agent/skills/chrome-devtools/rules/engineering-spec.md +510 -0
- package/.agent/skills/chrome-devtools/rules/scripts-guide.md +174 -0
- package/.agent/skills/chrome-devtools/scripts/aria-snapshot.ts +3 -0
- package/.agent/skills/chrome-devtools/scripts/click.ts +3 -0
- package/.agent/skills/chrome-devtools/scripts/console.ts +3 -0
- package/.agent/skills/chrome-devtools/scripts/core_cli.ts +79 -0
- package/.agent/skills/chrome-devtools/scripts/evaluate.ts +3 -0
- package/.agent/skills/chrome-devtools/scripts/fill.ts +3 -0
- package/.agent/skills/chrome-devtools/scripts/navigate.ts +3 -0
- package/.agent/skills/chrome-devtools/scripts/network.ts +3 -0
- package/.agent/skills/chrome-devtools/scripts/performance.ts +3 -0
- package/.agent/skills/chrome-devtools/scripts/screenshot.ts +3 -0
- package/.agent/skills/chrome-devtools/scripts/select-ref.ts +3 -0
- package/.agent/skills/cicd-pipeline/AGENTS.md +809 -0
- package/.agent/skills/cicd-pipeline/SKILL.md +164 -0
- package/.agent/skills/cicd-pipeline/rules/_sections.md +15 -0
- package/.agent/skills/cicd-pipeline/rules/_template.md +32 -0
- package/.agent/skills/cicd-pipeline/rules/engineering-spec.md +477 -0
- package/.agent/skills/cicd-pipeline/scripts/flag-manager.ts +253 -0
- package/.agent/skills/cicd-pipeline/scripts/pipeline_validator.ts +133 -0
- package/.agent/skills/code-constitution/AGENTS.md +597 -0
- package/.agent/skills/code-constitution/CHANGELOG.md +216 -0
- package/.agent/skills/code-constitution/SKILL.md +191 -0
- package/.agent/skills/code-constitution/VERSION +3 -0
- package/.agent/skills/code-constitution/examples/violation-backend-mutation/after.tsx +59 -0
- package/.agent/skills/code-constitution/examples/violation-backend-mutation/before.tsx +42 -0
- package/.agent/skills/code-constitution/examples/violation-backend-mutation/explanation.md +91 -0
- package/.agent/skills/code-constitution/examples/violation-chart-injection/after.tsx +99 -0
- package/.agent/skills/code-constitution/examples/violation-chart-injection/before.tsx +57 -0
- package/.agent/skills/code-constitution/examples/violation-chart-injection/explanation.md +120 -0
- package/.agent/skills/code-constitution/knowledge/lessons-learned.yaml +3 -0
- package/.agent/skills/code-constitution/metadata/precedence.yaml +117 -0
- package/.agent/skills/code-constitution/metadata/scope-map.yaml +156 -0
- package/.agent/skills/code-constitution/proposals/v1.1-change-proposal-template.md +201 -0
- package/.agent/skills/code-constitution/resources/AUTHORITY_MODEL.md +115 -0
- package/.agent/skills/code-constitution/resources/ENFORCEMENT_GUIDE.md +246 -0
- package/.agent/skills/code-constitution/resources/LOAD_ORDER.md +86 -0
- package/.agent/skills/code-constitution/rules/_sections.md +15 -0
- package/.agent/skills/code-constitution/rules/_template.md +32 -0
- package/.agent/skills/code-constitution/rules/constitution/master-constitution.md +210 -0
- package/.agent/skills/code-constitution/rules/doctrines/architecture/architecture-doctrine.md +188 -0
- package/.agent/skills/code-constitution/rules/doctrines/backend/backend-data-engine-doctrine.md +218 -0
- package/.agent/skills/code-constitution/rules/doctrines/commercial/commercial-guardrails-doctrine.md +196 -0
- package/.agent/skills/code-constitution/rules/doctrines/data/data-integrity-doctrine.md +202 -0
- package/.agent/skills/code-constitution/rules/doctrines/frontend/frontend-mobile-doctrine.md +169 -0
- package/.agent/skills/code-constitution/rules/doctrines/frontend/interaction-patterns-doctrine.md +176 -0
- package/.agent/skills/code-constitution/rules/doctrines/learning/learning-engine-doctrine.md +192 -0
- package/.agent/skills/code-constitution/rules/doctrines/performance/performance-doctrine.md +180 -0
- package/.agent/skills/code-constitution/rules/doctrines/review/code-review-doctrine.md +174 -0
- package/.agent/skills/code-constitution/rules/enforcement/agents/agent-enforcement-protocol.md +218 -0
- package/.agent/skills/code-constitution/rules/enforcement/agents/agent-system-prompt.md +196 -0
- package/.agent/skills/code-constitution/rules/enforcement/checklists/backend-api-review-checklist.md +131 -0
- package/.agent/skills/code-constitution/rules/enforcement/checklists/chart-component-review-checklist.md +147 -0
- package/.agent/skills/code-constitution/rules/enforcement/checklists/frontend-review-checklist.md +194 -0
- package/.agent/skills/code-constitution/rules/enforcement/playbooks/doctrine-violation-playbook.md +236 -0
- package/.agent/skills/code-constitution/rules/engineering-spec.md +561 -0
- package/.agent/skills/code-constitution/scripts/audit_pr.ts +219 -0
- package/.agent/skills/code-constitution/scripts/check_boundaries.ts +134 -0
- package/.agent/skills/code-constitution/scripts/learn.ts +202 -0
- package/.agent/skills/code-constitution/scripts/validate_doctrine.ts +287 -0
- package/.agent/skills/code-craft/AGENTS.md +803 -0
- package/.agent/skills/code-craft/SKILL.md +170 -0
- package/.agent/skills/code-craft/rules/_sections.md +20 -0
- package/.agent/skills/code-craft/rules/_template.md +32 -0
- package/.agent/skills/code-craft/rules/engineering-spec.md +447 -0
- package/.agent/skills/code-craft/rules/verification-scripts.md +83 -0
- package/.agent/skills/code-craft/scripts/code_quality_checker.ts +193 -0
- package/.agent/skills/code-review/AGENTS.md +1664 -0
- package/.agent/skills/code-review/SKILL.md +152 -0
- package/.agent/skills/code-review/rules/_sections.md +15 -0
- package/.agent/skills/code-review/rules/_template.md +32 -0
- package/.agent/skills/code-review/rules/engineering-spec.md +466 -0
- package/.agent/skills/code-review/scripts/lint_runner.ts +213 -0
- package/.agent/skills/code-review/scripts/type_coverage.ts +118 -0
- package/.agent/skills/context-engineering/AGENTS.md +499 -0
- package/.agent/skills/context-engineering/SKILL.md +147 -0
- package/.agent/skills/context-engineering/rules/_sections.md +15 -0
- package/.agent/skills/context-engineering/rules/_template.md +32 -0
- package/.agent/skills/context-engineering/rules/engineering-spec.md +463 -0
- package/.agent/skills/context-engineering/scripts/context_analyzer.ts +127 -0
- package/.agent/skills/copywriting/AGENTS.md +501 -0
- package/.agent/skills/copywriting/SKILL.md +188 -0
- package/.agent/skills/copywriting/rules/_sections.md +15 -0
- package/.agent/skills/copywriting/rules/_template.md +32 -0
- package/.agent/skills/copywriting/rules/engineering-spec.md +465 -0
- package/.agent/skills/copywriting/scripts/copy_validator.ts +185 -0
- package/.agent/skills/data-modeler/AGENTS.md +814 -0
- package/.agent/skills/data-modeler/SKILL.md +195 -0
- package/.agent/skills/data-modeler/rules/_sections.md +15 -0
- package/.agent/skills/data-modeler/rules/_template.md +32 -0
- package/.agent/skills/data-modeler/rules/database-selection.md +124 -0
- package/.agent/skills/data-modeler/rules/engineering-spec.md +479 -0
- package/.agent/skills/data-modeler/rules/indexing.md +166 -0
- package/.agent/skills/data-modeler/rules/migrations.md +176 -0
- package/.agent/skills/data-modeler/rules/optimization.md +161 -0
- package/.agent/skills/data-modeler/rules/orm-selection.md +155 -0
- package/.agent/skills/data-modeler/rules/schema-design.md +162 -0
- package/.agent/skills/data-modeler/scripts/schema_validator.ts +357 -0
- package/.agent/skills/debug-pro/AGENTS.md +798 -0
- package/.agent/skills/debug-pro/SKILL.md +193 -0
- package/.agent/skills/debug-pro/defense-in-depth/SKILL.md +148 -0
- package/.agent/skills/debug-pro/root-cause-tracing/SKILL.md +196 -0
- package/.agent/skills/debug-pro/root-cause-tracing/find-polluter.sh +63 -0
- package/.agent/skills/debug-pro/rules/_sections.md +15 -0
- package/.agent/skills/debug-pro/rules/_template.md +32 -0
- package/.agent/skills/debug-pro/rules/engineering-spec.md +491 -0
- package/.agent/skills/debug-pro/scripts/debug_verifier.ts +148 -0
- package/.agent/skills/debug-pro/verification-before-completion/SKILL.md +160 -0
- package/.agent/skills/design-system/AGENTS.md +4216 -0
- package/.agent/skills/design-system/SKILL.md +186 -0
- package/.agent/skills/design-system/rules/_sections.md +65 -0
- package/.agent/skills/design-system/rules/_template.md +32 -0
- package/.agent/skills/design-system/rules/animation-guide.md +355 -0
- package/.agent/skills/design-system/rules/color-system.md +335 -0
- package/.agent/skills/design-system/rules/color-systems.md +133 -0
- package/.agent/skills/design-system/rules/decision-trees.md +442 -0
- package/.agent/skills/design-system/rules/design-extraction.md +152 -0
- package/.agent/skills/design-system/rules/engineering-spec.md +484 -0
- package/.agent/skills/design-system/rules/motion-design.md +161 -0
- package/.agent/skills/design-system/rules/motion-graphics.md +330 -0
- package/.agent/skills/design-system/rules/spatial-composition.md +184 -0
- package/.agent/skills/design-system/rules/typography-system.md +369 -0
- package/.agent/skills/design-system/rules/typography.md +124 -0
- package/.agent/skills/design-system/rules/ux-psychology.md +565 -0
- package/.agent/skills/design-system/rules/visual-effects.md +407 -0
- package/.agent/skills/design-system/scripts/accessibility_checker.ts +292 -0
- package/.agent/skills/design-system/scripts/ux_audit.ts +356 -0
- package/.agent/skills/doc-templates/AGENTS.md +820 -0
- package/.agent/skills/doc-templates/SKILL.md +260 -0
- package/.agent/skills/doc-templates/rules/_sections.md +20 -0
- package/.agent/skills/doc-templates/rules/_template.md +32 -0
- package/.agent/skills/doc-templates/rules/doc.md +355 -0
- package/.agent/skills/doc-templates/rules/engineering-spec.md +422 -0
- package/.agent/skills/doc-templates/scripts/editor-server.ts +162 -0
- package/.agent/skills/doc-templates/scripts/inject_otel.ts +22 -0
- package/.agent/skills/doc-templates/scripts/kanban-server.ts +171 -0
- package/.agent/skills/doc-templates/scripts/markdown-server.ts +185 -0
- package/.agent/skills/e2e-automation/AGENTS.md +882 -0
- package/.agent/skills/e2e-automation/SKILL.md +175 -0
- package/.agent/skills/e2e-automation/rules/_sections.md +20 -0
- package/.agent/skills/e2e-automation/rules/_template.md +32 -0
- package/.agent/skills/e2e-automation/rules/aria-snapshot.md +185 -0
- package/.agent/skills/e2e-automation/rules/engineering-spec.md +501 -0
- package/.agent/skills/e2e-automation/scripts/playwright_runner.ts +208 -0
- package/.agent/skills/execution-reporter/AGENTS.md +419 -0
- package/.agent/skills/execution-reporter/SKILL.md +152 -0
- package/.agent/skills/execution-reporter/rules/_sections.md +15 -0
- package/.agent/skills/execution-reporter/rules/_template.md +32 -0
- package/.agent/skills/execution-reporter/rules/engineering-spec.md +389 -0
- package/.agent/skills/game-development/2d-games/SKILL.md +140 -0
- package/.agent/skills/game-development/3d-games/SKILL.md +156 -0
- package/.agent/skills/game-development/AGENTS.md +783 -0
- package/.agent/skills/game-development/SKILL.md +178 -0
- package/.agent/skills/game-development/game-art/SKILL.md +207 -0
- package/.agent/skills/game-development/game-audio/SKILL.md +211 -0
- package/.agent/skills/game-development/game-design/SKILL.md +151 -0
- package/.agent/skills/game-development/mobile-games/SKILL.md +130 -0
- package/.agent/skills/game-development/multiplayer/SKILL.md +154 -0
- package/.agent/skills/game-development/pc-games/SKILL.md +167 -0
- package/.agent/skills/game-development/rules/_sections.md +15 -0
- package/.agent/skills/game-development/rules/_template.md +32 -0
- package/.agent/skills/game-development/rules/engineering-spec.md +480 -0
- package/.agent/skills/game-development/vr-ar/SKILL.md +144 -0
- package/.agent/skills/game-development/web-games/SKILL.md +173 -0
- package/.agent/skills/git-workflow/AGENTS.md +554 -0
- package/.agent/skills/git-workflow/SKILL.md +181 -0
- package/.agent/skills/git-workflow/rules/_sections.md +15 -0
- package/.agent/skills/git-workflow/rules/_template.md +32 -0
- package/.agent/skills/git-workflow/rules/engineering-spec.md +518 -0
- package/.agent/skills/gitops/AGENTS.md +921 -0
- package/.agent/skills/gitops/SKILL.md +163 -0
- package/.agent/skills/gitops/rules/_sections.md +25 -0
- package/.agent/skills/gitops/rules/_template.md +32 -0
- package/.agent/skills/gitops/rules/argocd-setup.md +148 -0
- package/.agent/skills/gitops/rules/engineering-spec.md +450 -0
- package/.agent/skills/gitops/rules/sync-policies.md +145 -0
- package/.agent/skills/google-adk-python/AGENTS.md +1054 -0
- package/.agent/skills/google-adk-python/SKILL.md +168 -0
- package/.agent/skills/google-adk-python/rules/_sections.md +25 -0
- package/.agent/skills/google-adk-python/rules/_template.md +32 -0
- package/.agent/skills/google-adk-python/rules/deployment.md +138 -0
- package/.agent/skills/google-adk-python/rules/engineering-spec.md +451 -0
- package/.agent/skills/google-adk-python/rules/multi-agent.md +146 -0
- package/.agent/skills/google-adk-python/rules/tools.md +131 -0
- package/.agent/skills/idea-storm/AGENTS.md +995 -0
- package/.agent/skills/idea-storm/SKILL.md +160 -0
- package/.agent/skills/idea-storm/rules/_sections.md +25 -0
- package/.agent/skills/idea-storm/rules/_template.md +32 -0
- package/.agent/skills/idea-storm/rules/architecture-debate.md +122 -0
- package/.agent/skills/idea-storm/rules/dynamic-questioning.md +374 -0
- package/.agent/skills/idea-storm/rules/engineering-spec.md +466 -0
- package/.agent/skills/knowledge-compiler/SKILL.md +320 -0
- package/.agent/skills/knowledge-graph/AGENTS.md +762 -0
- package/.agent/skills/knowledge-graph/SKILL.md +157 -0
- package/.agent/skills/knowledge-graph/rules/_sections.md +15 -0
- package/.agent/skills/knowledge-graph/rules/_template.md +32 -0
- package/.agent/skills/knowledge-graph/rules/engineering-spec.md +439 -0
- package/.agent/skills/knowledge-linter/SKILL.md +217 -0
- package/.agent/skills/lifecycle-orchestrator/AGENTS.md +989 -0
- package/.agent/skills/lifecycle-orchestrator/SKILL.md +169 -0
- package/.agent/skills/lifecycle-orchestrator/rules/_sections.md +15 -0
- package/.agent/skills/lifecycle-orchestrator/rules/_template.md +32 -0
- package/.agent/skills/lifecycle-orchestrator/rules/engineering-spec.md +525 -0
- package/.agent/skills/lifecycle-orchestrator/scripts/state_manager.ts +189 -0
- package/.agent/skills/mcp-builder/AGENTS.md +1653 -0
- package/.agent/skills/mcp-builder/SKILL.md +166 -0
- package/.agent/skills/mcp-builder/rules/_sections.md +40 -0
- package/.agent/skills/mcp-builder/rules/_template.md +32 -0
- package/.agent/skills/mcp-builder/rules/best-practices.md +157 -0
- package/.agent/skills/mcp-builder/rules/design-principles.md +105 -0
- package/.agent/skills/mcp-builder/rules/engineering-spec.md +473 -0
- package/.agent/skills/mcp-builder/rules/evaluation.md +103 -0
- package/.agent/skills/mcp-builder/rules/python-implementation.md +249 -0
- package/.agent/skills/mcp-builder/rules/quickstart.md +111 -0
- package/.agent/skills/mcp-builder/rules/typescript-implementation.md +280 -0
- package/.agent/skills/mcp-management/AGENTS.md +837 -0
- package/.agent/skills/mcp-management/SKILL.md +164 -0
- package/.agent/skills/mcp-management/rules/_sections.md +25 -0
- package/.agent/skills/mcp-management/rules/_template.md +32 -0
- package/.agent/skills/mcp-management/rules/cli-usage.md +146 -0
- package/.agent/skills/mcp-management/rules/engineering-spec.md +501 -0
- package/.agent/skills/mcp-management/rules/protocol.md +159 -0
- package/.agent/skills/media-processing/AGENTS.md +479 -0
- package/.agent/skills/media-processing/SKILL.md +176 -0
- package/.agent/skills/media-processing/rules/_sections.md +15 -0
- package/.agent/skills/media-processing/rules/_template.md +32 -0
- package/.agent/skills/media-processing/rules/engineering-spec.md +452 -0
- package/.agent/skills/media-processing/scripts/convert-video.ts +155 -0
- package/.agent/skills/media-processing/scripts/optimize-image.ts +127 -0
- package/.agent/skills/mobile-design/AGENTS.md +6531 -0
- package/.agent/skills/mobile-design/SKILL.md +165 -0
- package/.agent/skills/mobile-design/rules/_sections.md +45 -0
- package/.agent/skills/mobile-design/rules/_template.md +32 -0
- package/.agent/skills/mobile-design/rules/decision-trees.md +540 -0
- package/.agent/skills/mobile-design/rules/engineering-spec.md +467 -0
- package/.agent/skills/mobile-design/rules/mobile-backend.md +516 -0
- package/.agent/skills/mobile-design/rules/mobile-color-system.md +436 -0
- package/.agent/skills/mobile-design/rules/mobile-debugging.md +146 -0
- package/.agent/skills/mobile-design/rules/mobile-design-thinking.md +381 -0
- package/.agent/skills/mobile-design/rules/mobile-navigation.md +474 -0
- package/.agent/skills/mobile-design/rules/mobile-performance.md +783 -0
- package/.agent/skills/mobile-design/rules/mobile-testing.md +380 -0
- package/.agent/skills/mobile-design/rules/mobile-typography.md +449 -0
- package/.agent/skills/mobile-design/rules/platform-android.md +682 -0
- package/.agent/skills/mobile-design/rules/platform-ios.md +577 -0
- package/.agent/skills/mobile-design/rules/touch-psychology.md +553 -0
- package/.agent/skills/mobile-design/scripts/mobile_audit.ts +309 -0
- package/.agent/skills/mobile-developer/AGENTS.md +904 -0
- package/.agent/skills/mobile-developer/SKILL.md +194 -0
- package/.agent/skills/mobile-developer/rules/_sections.md +75 -0
- package/.agent/skills/mobile-developer/rules/_template.md +32 -0
- package/.agent/skills/mobile-developer/rules/anti-patterns.md +70 -0
- package/.agent/skills/mobile-developer/rules/app-store-optimization.md +319 -0
- package/.agent/skills/mobile-developer/rules/decision-trees.md +545 -0
- package/.agent/skills/mobile-developer/rules/deep-linking.md +441 -0
- package/.agent/skills/mobile-developer/rules/engineering-spec.md +477 -0
- package/.agent/skills/mobile-developer/rules/flutter.md +475 -0
- package/.agent/skills/mobile-developer/rules/mobile-backend.md +516 -0
- package/.agent/skills/mobile-developer/rules/mobile-color-system.md +444 -0
- package/.agent/skills/mobile-developer/rules/mobile-debugging.md +428 -0
- package/.agent/skills/mobile-developer/rules/mobile-design-thinking.md +367 -0
- package/.agent/skills/mobile-developer/rules/mobile-navigation.md +483 -0
- package/.agent/skills/mobile-developer/rules/mobile-performance.md +778 -0
- package/.agent/skills/mobile-developer/rules/mobile-testing.md +382 -0
- package/.agent/skills/mobile-developer/rules/mobile-typography.md +457 -0
- package/.agent/skills/mobile-developer/rules/native.md +572 -0
- package/.agent/skills/mobile-developer/rules/platform-android.md +676 -0
- package/.agent/skills/mobile-developer/rules/platform-ios.md +571 -0
- package/.agent/skills/mobile-developer/rules/push-notifications.md +599 -0
- package/.agent/skills/mobile-developer/rules/react-native.md +422 -0
- package/.agent/skills/mobile-developer/rules/touch-psychology.md +547 -0
- package/.agent/skills/mobile-developer/scripts/mobile_audit.ts +701 -0
- package/.agent/skills/nextjs-pro/AGENTS.md +3932 -0
- package/.agent/skills/nextjs-pro/SKILL.md +171 -0
- package/.agent/skills/nextjs-pro/rules/_sections.md +50 -0
- package/.agent/skills/nextjs-pro/rules/_template.md +32 -0
- package/.agent/skills/nextjs-pro/rules/advanced-event-handler-refs.md +59 -0
- package/.agent/skills/nextjs-pro/rules/advanced-init-once.md +46 -0
- package/.agent/skills/nextjs-pro/rules/advanced-use-latest.md +43 -0
- package/.agent/skills/nextjs-pro/rules/async-api-routes.md +42 -0
- package/.agent/skills/nextjs-pro/rules/async-defer-await.md +84 -0
- package/.agent/skills/nextjs-pro/rules/async-dependencies.md +55 -0
- package/.agent/skills/nextjs-pro/rules/async-parallel.md +32 -0
- package/.agent/skills/nextjs-pro/rules/async-suspense-boundaries.md +103 -0
- package/.agent/skills/nextjs-pro/rules/bundle-barrel-imports.md +63 -0
- package/.agent/skills/nextjs-pro/rules/bundle-conditional.md +35 -0
- package/.agent/skills/nextjs-pro/rules/bundle-defer-third-party.md +53 -0
- package/.agent/skills/nextjs-pro/rules/bundle-dynamic-imports.md +39 -0
- package/.agent/skills/nextjs-pro/rules/bundle-preload.md +54 -0
- package/.agent/skills/nextjs-pro/rules/client-event-listeners.md +78 -0
- package/.agent/skills/nextjs-pro/rules/client-localstorage-schema.md +75 -0
- package/.agent/skills/nextjs-pro/rules/client-passive-event-listeners.md +52 -0
- package/.agent/skills/nextjs-pro/rules/client-swr-dedup.md +60 -0
- package/.agent/skills/nextjs-pro/rules/engineering-spec.md +440 -0
- package/.agent/skills/nextjs-pro/rules/js-batch-dom-css.md +111 -0
- package/.agent/skills/nextjs-pro/rules/js-cache-function-results.md +84 -0
- package/.agent/skills/nextjs-pro/rules/js-cache-property-access.md +32 -0
- package/.agent/skills/nextjs-pro/rules/js-cache-storage.md +74 -0
- package/.agent/skills/nextjs-pro/rules/js-combine-iterations.md +36 -0
- package/.agent/skills/nextjs-pro/rules/js-early-exit.md +54 -0
- package/.agent/skills/nextjs-pro/rules/js-hoist-regexp.md +49 -0
- package/.agent/skills/nextjs-pro/rules/js-index-maps.md +41 -0
- package/.agent/skills/nextjs-pro/rules/js-length-check-first.md +53 -0
- package/.agent/skills/nextjs-pro/rules/js-min-max-loop.md +86 -0
- package/.agent/skills/nextjs-pro/rules/js-set-map-lookups.md +28 -0
- package/.agent/skills/nextjs-pro/rules/js-tosorted-immutable.md +61 -0
- package/.agent/skills/nextjs-pro/rules/rendering-activity.md +30 -0
- package/.agent/skills/nextjs-pro/rules/rendering-animate-svg-wrapper.md +51 -0
- package/.agent/skills/nextjs-pro/rules/rendering-conditional-render.md +44 -0
- package/.agent/skills/nextjs-pro/rules/rendering-content-visibility.md +42 -0
- package/.agent/skills/nextjs-pro/rules/rendering-hoist-jsx.md +50 -0
- package/.agent/skills/nextjs-pro/rules/rendering-hydration-no-flicker.md +86 -0
- package/.agent/skills/nextjs-pro/rules/rendering-hydration-suppress-warning.md +34 -0
- package/.agent/skills/nextjs-pro/rules/rendering-svg-precision.md +32 -0
- package/.agent/skills/nextjs-pro/rules/rendering-usetransition-loading.md +79 -0
- package/.agent/skills/nextjs-pro/rules/rerender-defer-reads.md +43 -0
- package/.agent/skills/nextjs-pro/rules/rerender-dependencies.md +49 -0
- package/.agent/skills/nextjs-pro/rules/rerender-derived-state-no-effect.md +44 -0
- package/.agent/skills/nextjs-pro/rules/rerender-derived-state.md +33 -0
- package/.agent/skills/nextjs-pro/rules/rerender-functional-setstate.md +78 -0
- package/.agent/skills/nextjs-pro/rules/rerender-lazy-state-init.md +62 -0
- package/.agent/skills/nextjs-pro/rules/rerender-memo-with-default-value.md +42 -0
- package/.agent/skills/nextjs-pro/rules/rerender-memo.md +48 -0
- package/.agent/skills/nextjs-pro/rules/rerender-move-effect-to-event.md +49 -0
- package/.agent/skills/nextjs-pro/rules/rerender-simple-expression-in-memo.md +39 -0
- package/.agent/skills/nextjs-pro/rules/rerender-transitions.md +44 -0
- package/.agent/skills/nextjs-pro/rules/rerender-use-ref-transient-values.md +77 -0
- package/.agent/skills/nextjs-pro/rules/schema.json +34 -0
- package/.agent/skills/nextjs-pro/rules/server-after-nonblocking.md +77 -0
- package/.agent/skills/nextjs-pro/rules/server-auth-actions.md +100 -0
- package/.agent/skills/nextjs-pro/rules/server-cache-lru.md +45 -0
- package/.agent/skills/nextjs-pro/rules/server-cache-react.md +80 -0
- package/.agent/skills/nextjs-pro/rules/server-dedup-props.md +69 -0
- package/.agent/skills/nextjs-pro/rules/server-parallel-fetching.md +87 -0
- package/.agent/skills/nextjs-pro/rules/server-serialization.md +42 -0
- package/.agent/skills/nodejs-pro/AGENTS.md +866 -0
- package/.agent/skills/nodejs-pro/SKILL.md +172 -0
- package/.agent/skills/nodejs-pro/rules/_sections.md +50 -0
- package/.agent/skills/nodejs-pro/rules/_template.md +32 -0
- package/.agent/skills/nodejs-pro/rules/architecture-patterns.md +229 -0
- package/.agent/skills/nodejs-pro/rules/async-patterns.md +246 -0
- package/.agent/skills/nodejs-pro/rules/engineering-spec.md +438 -0
- package/.agent/skills/nodejs-pro/rules/error-handling.md +257 -0
- package/.agent/skills/nodejs-pro/rules/framework-selection.md +220 -0
- package/.agent/skills/nodejs-pro/rules/runtime-modules.md +176 -0
- package/.agent/skills/nodejs-pro/rules/testing-strategy.md +266 -0
- package/.agent/skills/nodejs-pro/rules/validation-security.md +205 -0
- package/.agent/skills/observability/AGENTS.md +607 -0
- package/.agent/skills/observability/SKILL.md +178 -0
- package/.agent/skills/observability/rules/_sections.md +15 -0
- package/.agent/skills/observability/rules/_template.md +32 -0
- package/.agent/skills/observability/rules/engineering-spec.md +440 -0
- package/.agent/skills/offensive-sec/AGENTS.md +849 -0
- package/.agent/skills/offensive-sec/SKILL.md +191 -0
- package/.agent/skills/offensive-sec/rules/_sections.md +15 -0
- package/.agent/skills/offensive-sec/rules/_template.md +32 -0
- package/.agent/skills/offensive-sec/rules/engineering-spec.md +470 -0
- package/.agent/skills/perf-optimizer/AGENTS.md +870 -0
- package/.agent/skills/perf-optimizer/SKILL.md +189 -0
- package/.agent/skills/perf-optimizer/rules/_sections.md +15 -0
- package/.agent/skills/perf-optimizer/rules/_template.md +32 -0
- package/.agent/skills/perf-optimizer/rules/backend-patterns.md +312 -0
- package/.agent/skills/perf-optimizer/rules/engineering-spec.md +428 -0
- package/.agent/skills/perf-optimizer/scripts/lighthouse_audit.ts +201 -0
- package/.agent/skills/problem-checker/AGENTS.md +519 -0
- package/.agent/skills/problem-checker/SKILL.md +189 -0
- package/.agent/skills/problem-checker/rules/_sections.md +15 -0
- package/.agent/skills/problem-checker/rules/_template.md +32 -0
- package/.agent/skills/problem-checker/rules/engineering-spec.md +483 -0
- package/.agent/skills/problem-checker/scripts/check_problems.ts +396 -0
- package/.agent/skills/project-planner/AGENTS.md +2698 -0
- package/.agent/skills/project-planner/SKILL.md +166 -0
- package/.agent/skills/project-planner/rules/_sections.md +15 -0
- package/.agent/skills/project-planner/rules/_template.md +32 -0
- package/.agent/skills/project-planner/rules/engineering-spec.md +420 -0
- package/.agent/skills/python-pro/AGENTS.md +1871 -0
- package/.agent/skills/python-pro/SKILL.md +182 -0
- package/.agent/skills/python-pro/rules/_sections.md +50 -0
- package/.agent/skills/python-pro/rules/_template.md +32 -0
- package/.agent/skills/python-pro/rules/async-patterns.md +168 -0
- package/.agent/skills/python-pro/rules/django-patterns.md +194 -0
- package/.agent/skills/python-pro/rules/engineering-spec.md +442 -0
- package/.agent/skills/python-pro/rules/fastapi-patterns.md +179 -0
- package/.agent/skills/python-pro/rules/framework-selection.md +167 -0
- package/.agent/skills/python-pro/rules/project-structure.md +181 -0
- package/.agent/skills/python-pro/rules/testing-patterns.md +212 -0
- package/.agent/skills/python-pro/rules/type-hints.md +159 -0
- package/.agent/skills/react-pro/AGENTS.md +963 -0
- package/.agent/skills/react-pro/SKILL.md +232 -0
- package/.agent/skills/react-pro/rules/_sections.md +40 -0
- package/.agent/skills/react-pro/rules/_template.md +32 -0
- package/.agent/skills/react-pro/rules/component-patterns.md +145 -0
- package/.agent/skills/react-pro/rules/composition-compound.md +82 -0
- package/.agent/skills/react-pro/rules/data-fetching.md +133 -0
- package/.agent/skills/react-pro/rules/engineering-spec.md +453 -0
- package/.agent/skills/react-pro/rules/error-boundary.md +61 -0
- package/.agent/skills/react-pro/rules/file-organization.md +158 -0
- package/.agent/skills/react-pro/rules/hooks-custom.md +61 -0
- package/.agent/skills/react-pro/rules/mui-styling.md +138 -0
- package/.agent/skills/react-pro/rules/patterns.md +24 -0
- package/.agent/skills/react-pro/rules/performance-optimization.md +65 -0
- package/.agent/skills/react-pro/rules/performance.md +137 -0
- package/.agent/skills/react-pro/rules/react19-hooks.md +85 -0
- package/.agent/skills/react-pro/rules/state-management.md +90 -0
- package/.agent/skills/react-pro/rules/testing-patterns.md +52 -0
- package/.agent/skills/registry.json +1251 -0
- package/.agent/skills/security-scanner/AGENTS.md +851 -0
- package/.agent/skills/security-scanner/SKILL.md +182 -0
- package/.agent/skills/security-scanner/rules/_sections.md +15 -0
- package/.agent/skills/security-scanner/rules/_template.md +32 -0
- package/.agent/skills/security-scanner/rules/auth-patterns.md +281 -0
- package/.agent/skills/security-scanner/rules/checklists.md +186 -0
- package/.agent/skills/security-scanner/rules/engineering-spec.md +440 -0
- package/.agent/skills/security-scanner/scripts/security_scan.ts +513 -0
- package/.agent/skills/seo-optimizer/AGENTS.md +839 -0
- package/.agent/skills/seo-optimizer/SKILL.md +180 -0
- package/.agent/skills/seo-optimizer/rules/_sections.md +15 -0
- package/.agent/skills/seo-optimizer/rules/_template.md +32 -0
- package/.agent/skills/seo-optimizer/rules/engineering-spec.md +433 -0
- package/.agent/skills/seo-optimizer/scripts/geo_checker.ts +109 -0
- package/.agent/skills/seo-optimizer/scripts/seo_checker.ts +308 -0
- package/.agent/skills/server-ops/AGENTS.md +643 -0
- package/.agent/skills/server-ops/SKILL.md +194 -0
- package/.agent/skills/server-ops/rules/_sections.md +15 -0
- package/.agent/skills/server-ops/rules/_template.md +32 -0
- package/.agent/skills/server-ops/rules/engineering-spec.md +450 -0
- package/.agent/skills/shell-script/AGENTS.md +499 -0
- package/.agent/skills/shell-script/SKILL.md +205 -0
- package/.agent/skills/shell-script/rules/_sections.md +15 -0
- package/.agent/skills/shell-script/rules/_template.md +32 -0
- package/.agent/skills/shell-script/rules/engineering-spec.md +463 -0
- package/.agent/skills/skill-generator/SKILL.md +147 -0
- package/.agent/skills/smart-router/SKILL.md +95 -0
- package/.agent/skills/studio/AGENTS.md +636 -0
- package/.agent/skills/studio/SKILL.md +178 -0
- package/.agent/skills/studio/data/charts.csv +26 -0
- package/.agent/skills/studio/data/colors.csv +97 -0
- package/.agent/skills/studio/data/icons.csv +101 -0
- package/.agent/skills/studio/data/landing.csv +31 -0
- package/.agent/skills/studio/data/products.csv +97 -0
- package/.agent/skills/studio/data/prompts.csv +24 -0
- package/.agent/skills/studio/data/react-performance.csv +45 -0
- package/.agent/skills/studio/data/stacks/flutter.csv +52 -0
- package/.agent/skills/studio/data/stacks/html-tailwind.csv +56 -0
- package/.agent/skills/studio/data/stacks/jetpack-compose.csv +53 -0
- package/.agent/skills/studio/data/stacks/nextjs.csv +53 -0
- package/.agent/skills/studio/data/stacks/nuxt-ui.csv +51 -0
- package/.agent/skills/studio/data/stacks/nuxtjs.csv +59 -0
- package/.agent/skills/studio/data/stacks/react-native.csv +52 -0
- package/.agent/skills/studio/data/stacks/react.csv +54 -0
- package/.agent/skills/studio/data/stacks/shadcn.csv +61 -0
- package/.agent/skills/studio/data/stacks/svelte.csv +54 -0
- package/.agent/skills/studio/data/stacks/swiftui.csv +51 -0
- package/.agent/skills/studio/data/stacks/vue.csv +50 -0
- package/.agent/skills/studio/data/styles.csv +59 -0
- package/.agent/skills/studio/data/typography.csv +58 -0
- package/.agent/skills/studio/data/ui-reasoning.csv +101 -0
- package/.agent/skills/studio/data/ux-guidelines.csv +100 -0
- package/.agent/skills/studio/data/web-interface.csv +31 -0
- package/.agent/skills/studio/rules/_sections.md +15 -0
- package/.agent/skills/studio/rules/_template.md +32 -0
- package/.agent/skills/studio/rules/engineering-spec.md +455 -0
- package/.agent/skills/studio/scripts/core.ts +345 -0
- package/.agent/skills/studio/scripts/design_system.ts +953 -0
- package/.agent/skills/studio/scripts/search.ts +197 -0
- package/.agent/skills/studio/scripts/types.ts +147 -0
- package/.agent/skills/studio/scripts/utils/component-specs.ts +154 -0
- package/.agent/skills/studio/scripts/utils/config-loader.ts +165 -0
- package/.agent/skills/studio/scripts/utils/css-templates.ts +169 -0
- package/.agent/skills/studio/scripts/utils/css-validator.ts +95 -0
- package/.agent/skills/studio/scripts/utils/csv-loader.ts +52 -0
- package/.agent/skills/studio/scripts/utils/intelligent-overrides.ts +129 -0
- package/.agent/skills/studio/scripts/utils/page-override-formatter.ts +143 -0
- package/.agent/skills/studio/scripts/utils/page-type-detector.ts +124 -0
- package/.agent/skills/studio/scripts/utils/search-cache.ts +165 -0
- package/.agent/skills/studio/scripts/utils/text-utils.ts +44 -0
- package/.agent/skills/system-design/AGENTS.md +597 -0
- package/.agent/skills/system-design/SKILL.md +153 -0
- package/.agent/skills/system-design/rules/_sections.md +15 -0
- package/.agent/skills/system-design/rules/_template.md +32 -0
- package/.agent/skills/system-design/rules/context-discovery.md +117 -0
- package/.agent/skills/system-design/rules/engineering-spec.md +437 -0
- package/.agent/skills/system-design/rules/examples.md +180 -0
- package/.agent/skills/system-design/rules/pattern-selection.md +130 -0
- package/.agent/skills/system-design/rules/patterns-reference.md +110 -0
- package/.agent/skills/system-design/rules/trade-off-analysis.md +169 -0
- package/.agent/skills/tailwind-kit/AGENTS.md +1135 -0
- package/.agent/skills/tailwind-kit/SKILL.md +171 -0
- package/.agent/skills/tailwind-kit/rules/_sections.md +20 -0
- package/.agent/skills/tailwind-kit/rules/_template.md +32 -0
- package/.agent/skills/tailwind-kit/rules/components.md +232 -0
- package/.agent/skills/tailwind-kit/rules/engineering-spec.md +435 -0
- package/.agent/skills/tailwind-kit/rules/responsive.md +221 -0
- package/.agent/skills/tailwind-kit/rules/v4-config.md +72 -0
- package/.agent/skills/test-architect/AGENTS.md +851 -0
- package/.agent/skills/test-architect/SKILL.md +176 -0
- package/.agent/skills/test-architect/rules/_sections.md +15 -0
- package/.agent/skills/test-architect/rules/_template.md +32 -0
- package/.agent/skills/test-architect/rules/engineering-spec.md +434 -0
- package/.agent/skills/test-architect/scripts/test_runner.ts +265 -0
- package/.agent/skills/typescript-expert/AGENTS.md +1045 -0
- package/.agent/skills/typescript-expert/SKILL.md +200 -0
- package/.agent/skills/typescript-expert/rules/_sections.md +20 -0
- package/.agent/skills/typescript-expert/rules/_template.md +32 -0
- package/.agent/skills/typescript-expert/rules/engineering-spec.md +433 -0
- package/.agent/skills/typescript-expert/rules/tsconfig-strict.json +92 -0
- package/.agent/skills/typescript-expert/rules/typescript-cheatsheet.md +407 -0
- package/.agent/skills/typescript-expert/rules/utility-types.ts +264 -0
- package/.agent/skills/typescript-expert/scripts/ts_diagnostic.ts +321 -0
- package/.agent/skills/vercel-deploy/AGENTS.md +490 -0
- package/.agent/skills/vercel-deploy/SKILL.md +175 -0
- package/.agent/skills/vercel-deploy/rules/_sections.md +15 -0
- package/.agent/skills/vercel-deploy/rules/_template.md +32 -0
- package/.agent/skills/vercel-deploy/rules/engineering-spec.md +463 -0
- package/.agent/skills/vercel-deploy/scripts/deploy.sh +310 -0
- package/.agent/workflows/api.md +377 -0
- package/.agent/workflows/autopilot.md +344 -0
- package/.agent/workflows/build.md +338 -0
- package/.agent/workflows/chronicle.md +279 -0
- package/.agent/workflows/cook.md +217 -0
- package/.agent/workflows/diagnose.md +302 -0
- package/.agent/workflows/fix.md +253 -0
- package/.agent/workflows/game.md +329 -0
- package/.agent/workflows/inspect.md +276 -0
- package/.agent/workflows/knowledge.md +212 -0
- package/.agent/workflows/launch.md +345 -0
- package/.agent/workflows/mobile.md +354 -0
- package/.agent/workflows/monitor.md +239 -0
- package/.agent/workflows/optimize.md +269 -0
- package/.agent/workflows/plan.md +278 -0
- package/.agent/workflows/stage.md +286 -0
- package/.agent/workflows/studio.md +276 -0
- package/.agent/workflows/think.md +262 -0
- package/.agent/workflows/validate.md +289 -0
- package/.agentignore +161 -0
- package/.gitattributes +16 -0
- package/CHANGELOG.md +198 -0
- package/LICENSE +40 -0
- package/README.md +173 -0
- package/docs/SKILL_DESIGN_GUIDE.md +561 -0
- package/docs/The-Complete-Guide-to-Building-Skills-for-Claude.md +1207 -0
- package/docs/WORKFLOW_DESIGN_GUIDE.md +325 -0
- package/package.json +33 -0
- package/tsconfig.json +28 -0
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: perf-optimizer
|
|
3
|
+
description: >-
|
|
4
|
+
Performance profiling: Core Web Vitals, bundle analysis, runtime profiling, and optimization.
|
|
5
|
+
Use when diagnosing slow pages, reducing bundle size, or running Lighthouse audits.
|
|
6
|
+
NOT for SEO (use seo-optimizer) or server scaling (use server-ops).
|
|
7
|
+
category: code-quality
|
|
8
|
+
triggers: ["performance", "optimize", "speed", "slow", "memory", "cpu", "Lighthouse", "bundle size", "Core Web Vitals", "LCP", "INP", "CLS", "latency"]
|
|
9
|
+
coordinates_with: ["code-craft", "e2e-automation", "chrome-devtools", "problem-checker", "knowledge-compiler"]
|
|
10
|
+
success_metrics: ["Baseline Measured", "Improvement Validated", "No Regressions"]
|
|
11
|
+
metadata:
|
|
12
|
+
author: pikakit
|
|
13
|
+
version: "3.9.134"
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Performance Profiler — Core Web Vitals & Profiling
|
|
17
|
+
|
|
18
|
+
> Measure first. Profile second. Fix third. Validate last.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 5 Must-Ask Questions (Before Any Optimization)
|
|
23
|
+
|
|
24
|
+
| # | Question | Options |
|
|
25
|
+
|---|----------|---------|
|
|
26
|
+
| 1 | Baseline Metrics? | Yes (record data), No (block until measured) |
|
|
27
|
+
| 2 | Target Goal? | Specific threshold (e.g., LCP < 2.5s) |
|
|
28
|
+
| 3 | Identified Bottleneck? | What is the proven root cause? |
|
|
29
|
+
| 4 | Impact vs Effort? | High impact / Low impact? |
|
|
30
|
+
| 5 | Environment? | Prod, Staging, Local Lab? |
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## When to Use
|
|
35
|
+
|
|
36
|
+
| Situation | Approach |
|
|
37
|
+
|-----------|----------|
|
|
38
|
+
| Slow page load | Run Lighthouse audit |
|
|
39
|
+
| Large bundle size | Use bundle analyzer |
|
|
40
|
+
| Runtime lag / jank | DevTools Performance tab |
|
|
41
|
+
| Memory growth | DevTools Memory tab |
|
|
42
|
+
| N+1 queries, caching | Read `backend-patterns.md` |
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## System Boundaries
|
|
47
|
+
|
|
48
|
+
| Owned by This Skill | NOT Owned |
|
|
49
|
+
|---------------------|-----------|
|
|
50
|
+
| Core Web Vitals targets | Measurement execution |
|
|
51
|
+
| Tool selection (symptom → tool) | Tool installation |
|
|
52
|
+
| Bundle analysis guidance | Bundle build |
|
|
53
|
+
| Quick win prioritization | Code modification |
|
|
54
|
+
|
|
55
|
+
**Expert decision skill:** Produces profiling methodology. Does not run tools.
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Core Web Vitals (Fixed Targets)
|
|
60
|
+
|
|
61
|
+
| Metric | Good | Poor | Measures |
|
|
62
|
+
|--------|------|------|----------|
|
|
63
|
+
| **LCP** | < 2.5s | > 4.0s | Loading speed |
|
|
64
|
+
| **INP** | < 200ms | > 500ms | Interactivity |
|
|
65
|
+
| **CLS** | < 0.1 | > 0.25 | Visual stability |
|
|
66
|
+
|
|
67
|
+
| Stage | Tool |
|
|
68
|
+
|-------|------|
|
|
69
|
+
| Development | Local Lighthouse |
|
|
70
|
+
| CI/CD | Lighthouse CI |
|
|
71
|
+
| Production | RUM (Real User Monitoring) |
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## 4-Step Profiling Workflow (Fixed)
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
1. BASELINE → Measure current state
|
|
79
|
+
2. IDENTIFY → Find the bottleneck
|
|
80
|
+
3. FIX → Make targeted change
|
|
81
|
+
4. VALIDATE → Confirm improvement
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Tool Selection (Deterministic)
|
|
87
|
+
|
|
88
|
+
| Symptom | Tool |
|
|
89
|
+
|---------|------|
|
|
90
|
+
| Page load speed | Lighthouse |
|
|
91
|
+
| Bundle size | Bundle analyzer |
|
|
92
|
+
| Runtime performance | DevTools Performance |
|
|
93
|
+
| Memory issues | DevTools Memory |
|
|
94
|
+
| Network latency | DevTools Network |
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## Bundle Analysis (4 Issues → 4 Actions)
|
|
99
|
+
|
|
100
|
+
| Issue | Indicator | Action |
|
|
101
|
+
|-------|-----------|--------|
|
|
102
|
+
| Large dependency | Top of bundle | Import specific modules |
|
|
103
|
+
| Duplicate deps | Multiple chunks | Dedupe, update versions |
|
|
104
|
+
| Unused code | Low coverage | Tree shake |
|
|
105
|
+
| Missing code split | Single large chunk | Split by route |
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Runtime Profiling Patterns
|
|
110
|
+
|
|
111
|
+
| Pattern | Meaning |
|
|
112
|
+
|---------|---------|
|
|
113
|
+
| Long tasks (> 50ms) | UI blocking |
|
|
114
|
+
| Many small tasks | Batching opportunity |
|
|
115
|
+
| Layout/paint | Rendering bottleneck |
|
|
116
|
+
| Growing heap | Possible memory leak |
|
|
117
|
+
| Detached DOM | Not cleaned up |
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Quick Win Priorities (Ranked)
|
|
122
|
+
|
|
123
|
+
| Priority | Action | Impact |
|
|
124
|
+
|----------|--------|--------|
|
|
125
|
+
| 1 | Enable compression (gzip/brotli) | High |
|
|
126
|
+
| 2 | Lazy load images | High |
|
|
127
|
+
| 3 | Code split routes | High |
|
|
128
|
+
| 4 | Cache static assets | Medium |
|
|
129
|
+
| 5 | Use modern image formats (WebP/AVIF) | Medium |
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## Error Taxonomy
|
|
134
|
+
|
|
135
|
+
| Code | Recoverable | Trigger |
|
|
136
|
+
|------|-------------|---------|
|
|
137
|
+
| `ERR_INVALID_REQUEST_TYPE` | No | Request type not supported |
|
|
138
|
+
| `ERR_UNKNOWN_SYMPTOM` | Yes | Symptom not in known set |
|
|
139
|
+
| `ERR_UNKNOWN_FRAMEWORK` | Yes | Framework not recognized |
|
|
140
|
+
| `ERR_MISSING_BASELINE` | No | Optimization requested without baseline data |
|
|
141
|
+
|
|
142
|
+
**Zero internal retries.** Same symptom = same recommendation.
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Audit Logging (OpenTelemetry)
|
|
147
|
+
|
|
148
|
+
| Event | Metadata Payload | Severity |
|
|
149
|
+
|-------|------------------|----------|
|
|
150
|
+
| `baseline_measured` | `{"lcp": "...", "inp": "...", "cls": "...", "bundle": "..."}` | `INFO` |
|
|
151
|
+
| `bottleneck_identified` | `{"target": "...", "impact_estimate": "..."}` | `INFO` |
|
|
152
|
+
| `improvement_validated` | `{"lcp_before": "...", "lcp_after": "..."}` | `INFO` |
|
|
153
|
+
|
|
154
|
+
All executions MUST emit the `improvement_validated` span before reporting completion.
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## Anti-Patterns
|
|
159
|
+
|
|
160
|
+
| ❌ Don't | ✅ Do |
|
|
161
|
+
|---------|-------|
|
|
162
|
+
| Guess at bottlenecks | Profile first, then fix |
|
|
163
|
+
| Micro-adjust non-critical paths | Fix the biggest issue |
|
|
164
|
+
| Skip baseline measurement | Always measure before/after |
|
|
165
|
+
| Ignore real user data | Use RUM in production |
|
|
166
|
+
| Ignore IDE warnings/errors | Call `problem-checker` to auto-fix |
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## 📑 Content Map
|
|
171
|
+
|
|
172
|
+
| File | Description | When to Read |
|
|
173
|
+
|------|-------------|--------------|
|
|
174
|
+
| [backend-patterns.md](rules/backend-patterns.md) | N+1, caching, DB tuning | Backend performance |
|
|
175
|
+
| [scripts/lighthouse_audit.ts](scripts/lighthouse_audit.ts) | Lighthouse runner | Automated audit |
|
|
176
|
+
| [engineering-spec.md](rules/engineering-spec.md) | Full spec | Architecture review |
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## 🔗 Related
|
|
181
|
+
|
|
182
|
+
| Item | Type | Purpose |
|
|
183
|
+
|------|------|---------|
|
|
184
|
+
| `/optimize` | Workflow | Performance workflow |
|
|
185
|
+
| `e2e-automation` | Skill | Performance testing |
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
⚡ PikaKit v3.9.134
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Sections
|
|
2
|
+
|
|
3
|
+
This file defines all sections, their ordering, impact levels, and descriptions.
|
|
4
|
+
The section ID (in parentheses) is the filename prefix used to group rules.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 1. Engineering Specification (engineering)
|
|
9
|
+
|
|
10
|
+
**Impact:** MEDIUM
|
|
11
|
+
**Description:** Full engineering specification covering contracts, security, and scalability.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
⚡ PikaKit v3.9.134
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Rule Title Here
|
|
3
|
+
impact: MEDIUM
|
|
4
|
+
impactDescription: Optional description of impact (e.g., "20-50% improvement")
|
|
5
|
+
tags: tag1, tag2
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Rule Title Here
|
|
9
|
+
|
|
10
|
+
**Impact: MEDIUM (optional impact description)**
|
|
11
|
+
|
|
12
|
+
Brief explanation of the rule and why it matters. This should be clear and concise, explaining the performance implications.
|
|
13
|
+
|
|
14
|
+
**Incorrect (description of what's wrong):**
|
|
15
|
+
|
|
16
|
+
```typescript
|
|
17
|
+
// Bad code example here
|
|
18
|
+
const bad = example()
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**Correct (description of what's right):**
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
// Good code example here
|
|
25
|
+
const good = example()
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Reference: [Link to documentation or resource](https://example.com)
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
⚡ PikaKit v3.9.134
|
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: backend-patterns
|
|
3
|
+
description: Backend performance patterns — N+1 detection, Redis caching, connection pooling, pagination, query optimization
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Backend Performance Patterns
|
|
7
|
+
|
|
8
|
+
> Database and caching optimization patterns for backend performance. **Profile first, optimize second.**
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## N+1 Query Detection & Fix
|
|
13
|
+
|
|
14
|
+
### Detection Signs
|
|
15
|
+
|
|
16
|
+
| Symptom | Indicator |
|
|
17
|
+
|---------|-----------|
|
|
18
|
+
| Slow list endpoints | Check query count with logging |
|
|
19
|
+
| ORM lazy loading | `findMany` / `find` inside loops |
|
|
20
|
+
| GraphQL resolvers | Nested field without DataLoader |
|
|
21
|
+
| Response time scales with data | 10 items = OK, 1000 items = slow |
|
|
22
|
+
|
|
23
|
+
### The Problem
|
|
24
|
+
|
|
25
|
+
```typescript
|
|
26
|
+
// ❌ N+1: 1 query for users + N queries for posts
|
|
27
|
+
const users = await db.user.findMany()
|
|
28
|
+
for (const user of users) {
|
|
29
|
+
const posts = await db.post.findMany({ where: { userId: user.id } })
|
|
30
|
+
user.posts = posts
|
|
31
|
+
}
|
|
32
|
+
// 101 queries for 100 users!
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Fix Patterns
|
|
36
|
+
|
|
37
|
+
```typescript
|
|
38
|
+
// ✅ Fix 1: Eager Loading (Prisma)
|
|
39
|
+
const users = await prisma.user.findMany({
|
|
40
|
+
include: { posts: true }
|
|
41
|
+
})
|
|
42
|
+
// 2 queries total (1 for users + 1 for posts with IN clause)
|
|
43
|
+
|
|
44
|
+
// ✅ Fix 1: Eager Loading (Drizzle)
|
|
45
|
+
const users = await db.query.users.findMany({
|
|
46
|
+
with: { posts: true }
|
|
47
|
+
})
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
```typescript
|
|
51
|
+
// ✅ Fix 2: Batch Query (manual)
|
|
52
|
+
const users = await db.user.findMany()
|
|
53
|
+
const userIds = users.map(u => u.id)
|
|
54
|
+
const posts = await db.post.findMany({
|
|
55
|
+
where: { userId: { in: userIds } }
|
|
56
|
+
})
|
|
57
|
+
|
|
58
|
+
// Group posts by userId
|
|
59
|
+
const postsByUser = new Map<string, Post[]>()
|
|
60
|
+
for (const post of posts) {
|
|
61
|
+
const list = postsByUser.get(post.userId) || []
|
|
62
|
+
list.push(post)
|
|
63
|
+
postsByUser.set(post.userId, list)
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
```typescript
|
|
68
|
+
// ✅ Fix 3: DataLoader (for GraphQL)
|
|
69
|
+
import DataLoader from 'dataloader'
|
|
70
|
+
|
|
71
|
+
const postLoader = new DataLoader(async (userIds: readonly string[]) => {
|
|
72
|
+
const posts = await db.post.findMany({
|
|
73
|
+
where: { userId: { in: [...userIds] } }
|
|
74
|
+
})
|
|
75
|
+
return userIds.map(id => posts.filter(p => p.userId === id))
|
|
76
|
+
})
|
|
77
|
+
|
|
78
|
+
// In resolver — auto-batched and cached per request
|
|
79
|
+
const userPosts = await postLoader.load(userId)
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Redis Caching Patterns
|
|
85
|
+
|
|
86
|
+
### Cache-Aside Pattern (Most Common)
|
|
87
|
+
|
|
88
|
+
```typescript
|
|
89
|
+
import { Redis } from 'ioredis'
|
|
90
|
+
|
|
91
|
+
const redis = new Redis(process.env.REDIS_URL)
|
|
92
|
+
|
|
93
|
+
async function getUser(userId: string) {
|
|
94
|
+
// 1. Check cache
|
|
95
|
+
const cached = await redis.get(`user:${userId}`)
|
|
96
|
+
if (cached) return JSON.parse(cached)
|
|
97
|
+
|
|
98
|
+
// 2. Cache miss → fetch from DB
|
|
99
|
+
const user = await db.user.findUnique({ where: { id: userId } })
|
|
100
|
+
if (!user) return null
|
|
101
|
+
|
|
102
|
+
// 3. Set cache with TTL
|
|
103
|
+
await redis.setex(`user:${userId}`, 3600, JSON.stringify(user))
|
|
104
|
+
|
|
105
|
+
return user
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### TTL Guidelines
|
|
110
|
+
|
|
111
|
+
| Data Type | TTL | Reason |
|
|
112
|
+
|-----------|-----|--------|
|
|
113
|
+
| Static config | 24h | Rarely changes |
|
|
114
|
+
| User profile | 1h | Occasional updates |
|
|
115
|
+
| Product listings | 15-30min | Moderate changes |
|
|
116
|
+
| Session data | 15-30min | Security |
|
|
117
|
+
| Real-time data | 30s-5min | Freshness critical |
|
|
118
|
+
| Computed aggregates | 5-15min | Expensive to compute |
|
|
119
|
+
| Search results | 5min | Changes frequently |
|
|
120
|
+
|
|
121
|
+
### Cache Invalidation
|
|
122
|
+
|
|
123
|
+
```typescript
|
|
124
|
+
// Write-through: update DB + invalidate cache
|
|
125
|
+
async function updateUser(userId: string, data: UserUpdate) {
|
|
126
|
+
const user = await db.user.update({ where: { id: userId }, data })
|
|
127
|
+
|
|
128
|
+
// Invalidate all related cache keys
|
|
129
|
+
await redis.del(`user:${userId}`)
|
|
130
|
+
await redis.del(`user:${userId}:profile`)
|
|
131
|
+
await redis.del(`user:${userId}:permissions`)
|
|
132
|
+
|
|
133
|
+
return user
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
// Pattern: invalidate on write, not on read
|
|
137
|
+
// If cache miss rate is high → increase TTL
|
|
138
|
+
// If stale data is a problem → decrease TTL
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Cache Key Naming Convention
|
|
142
|
+
|
|
143
|
+
```
|
|
144
|
+
{entity}:{id} → user:123
|
|
145
|
+
{entity}:{id}:{field} → user:123:profile
|
|
146
|
+
{entity}:list:{params} → user:list:page=1&limit=20
|
|
147
|
+
{entity}:count:{filter} → user:count:active=true
|
|
148
|
+
{prefix}:{entity}:{id} → v2:user:123 (versioned)
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## Connection Pooling
|
|
154
|
+
|
|
155
|
+
### Why It Matters
|
|
156
|
+
|
|
157
|
+
```
|
|
158
|
+
Without pooling:
|
|
159
|
+
Request → Open connection → Query → Close connection
|
|
160
|
+
100 concurrent requests → 100 connections opened/closed
|
|
161
|
+
→ Connection overhead dominates response time
|
|
162
|
+
|
|
163
|
+
With pooling:
|
|
164
|
+
Request → Borrow connection → Query → Return to pool
|
|
165
|
+
100 concurrent requests → 10-20 pooled connections reused
|
|
166
|
+
→ Near-zero connection overhead
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Configuration
|
|
170
|
+
|
|
171
|
+
```typescript
|
|
172
|
+
// Prisma — connection pool is automatic
|
|
173
|
+
// Tune via connection string
|
|
174
|
+
const DATABASE_URL = 'postgresql://user:pass@host:5432/db?connection_limit=20&pool_timeout=10'
|
|
175
|
+
|
|
176
|
+
// Drizzle + node-postgres
|
|
177
|
+
import { Pool } from 'pg'
|
|
178
|
+
import { drizzle } from 'drizzle-orm/node-postgres'
|
|
179
|
+
|
|
180
|
+
const pool = new Pool({
|
|
181
|
+
connectionString: process.env.DATABASE_URL,
|
|
182
|
+
max: 20, // Max connections in pool
|
|
183
|
+
idleTimeoutMillis: 30000, // Close idle connections after 30s
|
|
184
|
+
connectionTimeoutMillis: 5000, // Fail if can't connect in 5s
|
|
185
|
+
})
|
|
186
|
+
|
|
187
|
+
const db = drizzle(pool)
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### Pool Sizing
|
|
191
|
+
|
|
192
|
+
| Environment | Pool Size | Rationale |
|
|
193
|
+
|-------------|-----------|-----------|
|
|
194
|
+
| Development | 5 | Low concurrency |
|
|
195
|
+
| Staging | 10 | Moderate load |
|
|
196
|
+
| Production | 20-50 | `connections = (CPU cores * 2) + disk spindles` |
|
|
197
|
+
| Serverless | 1-5 | Short-lived, use connection proxy (PgBouncer) |
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## Pagination Patterns
|
|
202
|
+
|
|
203
|
+
### Offset Pagination (Simple, for small datasets)
|
|
204
|
+
|
|
205
|
+
```typescript
|
|
206
|
+
// ❌ Offset gets slower as page number grows
|
|
207
|
+
const users = await db.user.findMany({
|
|
208
|
+
skip: (page - 1) * pageSize,
|
|
209
|
+
take: pageSize,
|
|
210
|
+
orderBy: { createdAt: 'desc' },
|
|
211
|
+
})
|
|
212
|
+
// Page 1000: DB must scan and skip 999 * pageSize rows
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### Cursor Pagination (Efficient, for large datasets)
|
|
216
|
+
|
|
217
|
+
```typescript
|
|
218
|
+
// ✅ Cursor is consistently fast regardless of page depth
|
|
219
|
+
const users = await db.user.findMany({
|
|
220
|
+
take: pageSize,
|
|
221
|
+
...(cursor && {
|
|
222
|
+
skip: 1, // Skip the cursor item itself
|
|
223
|
+
cursor: { id: cursor },
|
|
224
|
+
}),
|
|
225
|
+
orderBy: { createdAt: 'desc' },
|
|
226
|
+
})
|
|
227
|
+
|
|
228
|
+
const nextCursor = users.length === pageSize ? users[users.length - 1].id : null
|
|
229
|
+
|
|
230
|
+
return { items: users, nextCursor }
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### When to Use Each
|
|
234
|
+
|
|
235
|
+
| Pattern | Use When |
|
|
236
|
+
|---------|----------|
|
|
237
|
+
| **Offset** | Admin tables, small datasets (< 10K rows), need page numbers |
|
|
238
|
+
| **Cursor** | Infinite scroll, large datasets, real-time feeds, API endpoints |
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
## Database Query Optimization
|
|
243
|
+
|
|
244
|
+
### Indexing Strategy
|
|
245
|
+
|
|
246
|
+
| Query Pattern | Index Type | Example |
|
|
247
|
+
|---------------|------------|---------|
|
|
248
|
+
| Equality (`WHERE x = ?`) | B-tree | `CREATE INDEX idx_email ON users(email)` |
|
|
249
|
+
| Range (`WHERE x > ?`) | B-tree | `CREATE INDEX idx_created ON orders(created_at)` |
|
|
250
|
+
| Multi-column | Composite | `CREATE INDEX idx_user_status ON orders(user_id, status)` |
|
|
251
|
+
| Full-text search | Full-text / GIN | `CREATE INDEX idx_search ON posts USING GIN(to_tsvector(content))` |
|
|
252
|
+
| JSON fields | GIN | `CREATE INDEX idx_meta ON users USING GIN(metadata)` |
|
|
253
|
+
|
|
254
|
+
### Query Analysis
|
|
255
|
+
|
|
256
|
+
```sql
|
|
257
|
+
-- Always check slow queries
|
|
258
|
+
EXPLAIN ANALYZE SELECT * FROM users WHERE email = 'test@example.com';
|
|
259
|
+
|
|
260
|
+
-- Look for:
|
|
261
|
+
-- ✅ Index Scan (fast)
|
|
262
|
+
-- ❌ Seq Scan on large table (needs index)
|
|
263
|
+
-- ❌ Nested Loop with high row counts (possible N+1)
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
### Query Logging (Development)
|
|
267
|
+
|
|
268
|
+
```typescript
|
|
269
|
+
// Prisma: enable query logging
|
|
270
|
+
const prisma = new PrismaClient({
|
|
271
|
+
log: [
|
|
272
|
+
{ emit: 'event', level: 'query' },
|
|
273
|
+
],
|
|
274
|
+
})
|
|
275
|
+
|
|
276
|
+
prisma.$on('query', (e) => {
|
|
277
|
+
if (e.duration > 100) { // Log queries > 100ms
|
|
278
|
+
console.warn(`Slow query (${e.duration}ms): ${e.query}`)
|
|
279
|
+
}
|
|
280
|
+
})
|
|
281
|
+
|
|
282
|
+
// Drizzle: use logger
|
|
283
|
+
const db = drizzle(pool, { logger: true })
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
## Anti-Patterns
|
|
289
|
+
|
|
290
|
+
| ❌ Don't | ✅ Do |
|
|
291
|
+
|---------|-------|
|
|
292
|
+
| `SELECT *` in production | Select only needed columns |
|
|
293
|
+
| Query inside loops | Batch or eager load |
|
|
294
|
+
| Cache without TTL | Always set expiry |
|
|
295
|
+
| Infinite cache size | Set maxmemory + eviction policy |
|
|
296
|
+
| Skip connection pooling | Always pool in production |
|
|
297
|
+
| Offset paginate large datasets | Use cursor pagination |
|
|
298
|
+
| Ignore slow query logs | Monitor and index |
|
|
299
|
+
|
|
300
|
+
---
|
|
301
|
+
|
|
302
|
+
## 🔗 Related
|
|
303
|
+
|
|
304
|
+
| File | When to Read |
|
|
305
|
+
|------|-------------|
|
|
306
|
+
| [scripts/lighthouse_audit.ts](scripts/lighthouse_audit.ts) | Frontend performance audit |
|
|
307
|
+
| [SKILL.md](SKILL.md) | Core Web Vitals targets |
|
|
308
|
+
| [rules/engineering-spec.md](rules/engineering-spec.md) | Full architecture spec |
|
|
309
|
+
|
|
310
|
+
---
|
|
311
|
+
|
|
312
|
+
⚡ PikaKit v3.9.134
|