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,193 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: debug-pro
|
|
3
|
+
description: >-
|
|
4
|
+
Systematic debugging: 4-phase methodology, root-cause tracing, and defense-in-depth verification.
|
|
5
|
+
Use when fixing bugs, tracing errors, investigating crashes, or diagnosing unexpected behavior.
|
|
6
|
+
NOT for new feature design or code review (use code-review).
|
|
7
|
+
category: debugging
|
|
8
|
+
triggers: ["debug", "bug", "error", "crash", "exception", "root cause", "investigation", "not working"]
|
|
9
|
+
coordinates_with: ["test-architect", "code-review"]
|
|
10
|
+
success_metrics: ["100% bugs have root cause identified", "< 15m MTTR"]
|
|
11
|
+
metadata:
|
|
12
|
+
author: pikakit
|
|
13
|
+
version: "3.9.134"
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Debug Pro — Systematic Debugging
|
|
17
|
+
|
|
18
|
+
> 4 phases. 5 Whys. No random changes. Never claim "fixed" without verification.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 5 Must-Ask Questions (Socratic Gate)
|
|
23
|
+
|
|
24
|
+
| # | Question | Options |
|
|
25
|
+
|---|----------|---------|
|
|
26
|
+
| 1 | Exact Error Message? | Stack trace / Console output / HTTP status |
|
|
27
|
+
| 2 | Reproduction Steps? | Step-by-step to trigger the bug |
|
|
28
|
+
| 3 | Expected vs Actual? | What should happen vs what happens |
|
|
29
|
+
| 4 | Environment? | Browser / OS / Node version / Staging vs Prod |
|
|
30
|
+
| 5 | Recent Changes? | New deploy / Dependency update / Config change |
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Prerequisites
|
|
35
|
+
|
|
36
|
+
**Required:** None — Debug Pro is a methodology-based skill with no external dependencies.
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## When to Use
|
|
41
|
+
|
|
42
|
+
| Situation | Action |
|
|
43
|
+
|-----------|--------|
|
|
44
|
+
| Bug reported | Follow 4-phase methodology from Phase 1 |
|
|
45
|
+
| Error/exception occurs | Root cause tracing with 5 Whys |
|
|
46
|
+
| Crash investigation | Defense-in-depth analysis |
|
|
47
|
+
| Fix validation needed | Verification checklist (Phase 4) |
|
|
48
|
+
| Architecture review | Read `rules/engineering-spec.md` |
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## System Boundaries
|
|
53
|
+
|
|
54
|
+
| Owned by This Skill | NOT Owned |
|
|
55
|
+
|---------------------|-----------|
|
|
56
|
+
| 4-phase methodology (Reproduce→Isolate→Understand→Fix&Verify) | Debugger tool execution |
|
|
57
|
+
| 5 Whys root cause analysis | Automated bug detection (→ code-review) |
|
|
58
|
+
| Isolation techniques (git bisect/blame/log) | Test writing (→ test-architect) |
|
|
59
|
+
| Verification checklist (4 items) | Code quality review (→ code-craft) |
|
|
60
|
+
| Red flag detection (5 patterns) | Performance profiling (→ perf-optimizer) |
|
|
61
|
+
| 3 advanced frameworks | Git command execution |
|
|
62
|
+
|
|
63
|
+
**Pure decision skill:** Produces debugging strategies and checklists. Zero side effects.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## 4-Phase Methodology
|
|
68
|
+
|
|
69
|
+
### Phase 1: Reproduce 🔄
|
|
70
|
+
|
|
71
|
+
- [ ] Can reproduce consistently
|
|
72
|
+
- [ ] Have minimal reproduction case
|
|
73
|
+
- [ ] Understand expected behavior
|
|
74
|
+
- [ ] Documented environment details
|
|
75
|
+
|
|
76
|
+
### Phase 2: Isolate 🔍
|
|
77
|
+
|
|
78
|
+
| Technique | Command | When |
|
|
79
|
+
|-----------|---------|------|
|
|
80
|
+
| Binary search | `git bisect` | Narrow to commit |
|
|
81
|
+
| Recent changes | `git log --oneline -20` | Check recent commits |
|
|
82
|
+
| Blame | `git blame path/to/file` | Find who changed what |
|
|
83
|
+
|
|
84
|
+
### Phase 3: Understand 🧠 (5 Whys)
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
1. Why: [First observation]
|
|
88
|
+
2. Why: [Deeper reason]
|
|
89
|
+
3. Why: [Still deeper]
|
|
90
|
+
4. Why: [Getting closer]
|
|
91
|
+
5. Why: [ROOT CAUSE]
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**Root cause MUST:** explain ALL symptoms. "It just happens" is NOT valid.
|
|
95
|
+
|
|
96
|
+
### Phase 4: Fix & Verify ✅
|
|
97
|
+
|
|
98
|
+
- [ ] Bug no longer reproduces
|
|
99
|
+
- [ ] Related functionality works
|
|
100
|
+
- [ ] No new issues introduced
|
|
101
|
+
- [ ] Regression test added
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Phase Transitions (Strict Order)
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
REPRODUCE → ISOLATE [reproduction checklist complete]
|
|
109
|
+
ISOLATE → UNDERSTAND [source narrowed to component]
|
|
110
|
+
UNDERSTAND → FIX_VERIFY [root cause explains all symptoms]
|
|
111
|
+
FIX_VERIFY → RESOLVED [verification passed + regression test] // terminal
|
|
112
|
+
FIX_VERIFY → REPRODUCE [verification failed]
|
|
113
|
+
UNDERSTAND → ISOLATE [hypothesis disproven]
|
|
114
|
+
ANY_PHASE → REPRODUCE [red flag detected]
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**No phase may be skipped.**
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## 🚩 Red Flags (Return to Phase 1)
|
|
122
|
+
|
|
123
|
+
| Pattern | Why It's Wrong |
|
|
124
|
+
|---------|---------------|
|
|
125
|
+
| "Quick fix for now, investigate later" | Skipping root cause analysis |
|
|
126
|
+
| "Just try changing X and see" | Random change without evidence |
|
|
127
|
+
| "It's probably X, let me fix that" | Assumption without verification |
|
|
128
|
+
| "Should work now" / "Seems fixed" | No verification |
|
|
129
|
+
| "Tests pass, we're done" | Tests ≠ complete verification |
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## Error Taxonomy
|
|
134
|
+
|
|
135
|
+
| Code | Recoverable | Trigger |
|
|
136
|
+
|------|-------------|---------|
|
|
137
|
+
| `ERR_INVALID_REQUEST_TYPE` | No | Request type not supported |
|
|
138
|
+
| `ERR_MISSING_DESCRIPTION` | Yes | Bug description not provided |
|
|
139
|
+
| `ERR_MISSING_EXPECTED` | Yes | Expected behavior not provided |
|
|
140
|
+
| `ERR_PHASE_SKIP` | No | Attempted to skip a phase |
|
|
141
|
+
| `ERR_INVALID_PHASE` | No | Phase name not recognized |
|
|
142
|
+
| `RED_FLAG` | Yes | Red flag detected; return to Phase 1 |
|
|
143
|
+
|
|
144
|
+
**Zero internal retries.** Deterministic; same context = same methodology output.
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Anti-Patterns
|
|
149
|
+
|
|
150
|
+
| ❌ Don't | ✅ Do |
|
|
151
|
+
|---------|-------|
|
|
152
|
+
| Random changes hoping to fix | Follow 4-phase methodology |
|
|
153
|
+
| Assume root cause without evidence | Verify with 5 Whys |
|
|
154
|
+
| Claim fixed without testing | Run verification checklist |
|
|
155
|
+
| Stop at symptoms | Dig to root cause |
|
|
156
|
+
| Skip regression test | Add test for every fix |
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## Audit Logging (OpenTelemetry)
|
|
161
|
+
|
|
162
|
+
| Event | Metadata Payload | Severity |
|
|
163
|
+
|-------|------------------|----------|
|
|
164
|
+
| `investigation_started` | `{"bug_category": "runtime", "phase": "reproduce"}` | `INFO` |
|
|
165
|
+
| `root_cause_identified` | `{"root_cause": "null check missing", "confidence": "HIGH"}` | `INFO` |
|
|
166
|
+
| `fix_verified` | `{"regression_test_added": true, "similar_patterns": 0}` | `INFO` |
|
|
167
|
+
|
|
168
|
+
All debug-pro outputs MUST emit `investigation_started`, `root_cause_identified`, or `fix_verified` events when applicable.
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## 📑 Content Map
|
|
173
|
+
|
|
174
|
+
| File | Description | When to Read |
|
|
175
|
+
|------|-------------|--------------|
|
|
176
|
+
| [defense-in-depth/](defense-in-depth/) | Defense-in-depth analysis framework | Crash investigation |
|
|
177
|
+
| [root-cause-tracing/](root-cause-tracing/) | Root cause tracing framework | Complex bugs |
|
|
178
|
+
| [verification-before-completion/](verification-before-completion/) | Verification framework | Fix validation |
|
|
179
|
+
| [engineering-spec.md](rules/engineering-spec.md) | Full engineering spec | Architecture review |
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## 🔗 Related
|
|
184
|
+
|
|
185
|
+
| Item | Type | Purpose |
|
|
186
|
+
|------|------|---------|
|
|
187
|
+
| `test-architect` | Skill | Regression test writing |
|
|
188
|
+
| `code-review` | Skill | Code quality validation |
|
|
189
|
+
| `/diagnose` | Workflow | Debug workflow |
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
⚡ PikaKit v3.9.134
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Defense-in-Depth Validation
|
|
3
|
+
description: Validate at every layer data passes through to make bugs impossible
|
|
4
|
+
category: debugging-subskill
|
|
5
|
+
triggers: ["defense in depth", "validation layers", "prevent bug", "structural fix"]
|
|
6
|
+
coordinates_with: ["debug-pro", "security-scanner", "test-architect"]
|
|
7
|
+
success_metrics: ["0 recurrent bugs", "4 layers of validation applied"]
|
|
8
|
+
metadata:
|
|
9
|
+
author: pikakit
|
|
10
|
+
version: "3.9.134"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Defense-in-Depth Validation
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
When you fix a bug caused by invalid data, adding validation at one place feels sufficient. But that single check can be bypassed by different code paths, refactoring, or mocks.
|
|
18
|
+
|
|
19
|
+
**Core principle:** Validate at EVERY layer data passes through. Make the bug structurally impossible.
|
|
20
|
+
|
|
21
|
+
## Why Multiple Layers
|
|
22
|
+
|
|
23
|
+
Single validation: "We fixed the bug"
|
|
24
|
+
Multiple layers: "We made the bug impossible"
|
|
25
|
+
|
|
26
|
+
Different layers catch different cases:
|
|
27
|
+
- Entry validation catches most bugs
|
|
28
|
+
- Business logic catches edge cases
|
|
29
|
+
- Environment guards prevent context-specific dangers
|
|
30
|
+
- Debug logging helps when other layers fail
|
|
31
|
+
|
|
32
|
+
## The Four Layers
|
|
33
|
+
|
|
34
|
+
### Layer 1: Entry Point Validation
|
|
35
|
+
**Purpose:** Reject obviously invalid input at API boundary
|
|
36
|
+
|
|
37
|
+
```typescript
|
|
38
|
+
function createProject(name: string, workingDirectory: string) {
|
|
39
|
+
if (!workingDirectory || workingDirectory.trim() === '') {
|
|
40
|
+
throw new Error('workingDirectory cannot be empty');
|
|
41
|
+
}
|
|
42
|
+
if (!existsSync(workingDirectory)) {
|
|
43
|
+
throw new Error(`workingDirectory does not exist: ${workingDirectory}`);
|
|
44
|
+
}
|
|
45
|
+
if (!statSync(workingDirectory).isDirectory()) {
|
|
46
|
+
throw new Error(`workingDirectory is not a directory: ${workingDirectory}`);
|
|
47
|
+
}
|
|
48
|
+
// ... proceed
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Layer 2: Business Logic Validation
|
|
53
|
+
**Purpose:** Ensure data makes sense for this operation
|
|
54
|
+
|
|
55
|
+
```typescript
|
|
56
|
+
function initializeWorkspace(projectDir: string, sessionId: string) {
|
|
57
|
+
if (!projectDir) {
|
|
58
|
+
throw new Error('projectDir required for workspace initialization');
|
|
59
|
+
}
|
|
60
|
+
// ... proceed
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Layer 3: Environment Guards
|
|
65
|
+
**Purpose:** Prevent dangerous operations in specific contexts
|
|
66
|
+
|
|
67
|
+
```typescript
|
|
68
|
+
async function gitInit(directory: string) {
|
|
69
|
+
// In tests, refuse git init outside temp directories
|
|
70
|
+
if (process.env.NODE_ENV === 'test') {
|
|
71
|
+
const normalized = normalize(resolve(directory));
|
|
72
|
+
const tmpDir = normalize(resolve(tmpdir()));
|
|
73
|
+
|
|
74
|
+
if (!normalized.startsWith(tmpDir)) {
|
|
75
|
+
throw new Error(
|
|
76
|
+
`Refusing git init outside temp dir during tests: ${directory}`
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// ... proceed
|
|
81
|
+
}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Layer 4: Debug Instrumentation
|
|
85
|
+
**Purpose:** Capture context for forensics
|
|
86
|
+
|
|
87
|
+
```typescript
|
|
88
|
+
async function gitInit(directory: string) {
|
|
89
|
+
const stack = new Error().stack;
|
|
90
|
+
logger.debug('About to git init', {
|
|
91
|
+
directory,
|
|
92
|
+
cwd: process.cwd(),
|
|
93
|
+
stack,
|
|
94
|
+
});
|
|
95
|
+
// ... proceed
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Applying the Pattern
|
|
100
|
+
|
|
101
|
+
When you find a bug:
|
|
102
|
+
|
|
103
|
+
1. **Trace the data flow** - Where does bad value originate? Where used?
|
|
104
|
+
2. **Map all checkpoints** - List every point data passes through
|
|
105
|
+
3. **Add validation at each layer** - Entry, business, environment, debug
|
|
106
|
+
4. **Test each layer** - Try to bypass layer 1, verify layer 2 catches it
|
|
107
|
+
|
|
108
|
+
## Example from Session
|
|
109
|
+
|
|
110
|
+
Bug: Empty `projectDir` caused `git init` in source code
|
|
111
|
+
|
|
112
|
+
**Data flow:**
|
|
113
|
+
1. Test setup → empty string
|
|
114
|
+
2. `Project.create(name, '')`
|
|
115
|
+
3. `WorkspaceManager.createWorkspace('')`
|
|
116
|
+
4. `git init` runs in `process.cwd()`
|
|
117
|
+
|
|
118
|
+
**Four layers added:**
|
|
119
|
+
- Layer 1: `Project.create()` validates not empty/exists/writable
|
|
120
|
+
- Layer 2: `WorkspaceManager` validates projectDir not empty
|
|
121
|
+
- Layer 3: `WorktreeManager` refuses git init outside tmpdir in tests
|
|
122
|
+
- Layer 4: Stack trace logging before git init
|
|
123
|
+
|
|
124
|
+
**Result:** All 1847 tests passed, bug impossible to reproduce
|
|
125
|
+
|
|
126
|
+
## Key Insight
|
|
127
|
+
|
|
128
|
+
All four layers were necessary. During testing, each layer caught bugs the others missed:
|
|
129
|
+
- Different code paths bypassed entry validation
|
|
130
|
+
- Mocks bypassed business logic checks
|
|
131
|
+
- Edge cases on different platforms needed environment guards
|
|
132
|
+
- Debug logging identified structural misuse
|
|
133
|
+
|
|
134
|
+
**Don't stop at one validation point.** Add checks at every layer.
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## 🔗 Related
|
|
139
|
+
|
|
140
|
+
| File | When to Read |
|
|
141
|
+
|------|-------------|
|
|
142
|
+
| [../root-cause-tracing/SKILL.md](../root-cause-tracing/SKILL.md) | Trace to original trigger before adding layers |
|
|
143
|
+
| [../verification-before-completion/SKILL.md](../verification-before-completion/SKILL.md) | Verify fix after adding defense layers |
|
|
144
|
+
| [../SKILL.md](../SKILL.md) | 4-phase methodology overview |
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
⚡ PikaKit v3.9.134
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Root Cause Tracing
|
|
3
|
+
description: Systematically trace bugs backward through call stack to find original trigger
|
|
4
|
+
category: debugging-subskill
|
|
5
|
+
triggers: ["stack trace", "trace backward", "find polluter", "root cause tracing"]
|
|
6
|
+
coordinates_with: ["debug-pro", "test-architect"]
|
|
7
|
+
success_metrics: ["100% bugs fixed at root cause", "0 side-effects from tests"]
|
|
8
|
+
metadata:
|
|
9
|
+
author: pikakit
|
|
10
|
+
version: "3.9.134"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Root Cause Tracing
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
Bugs often manifest deep in the call stack (git init in wrong directory, file created in wrong location, database opened with wrong path). Your instinct is to fix where the error appears, but that's treating a symptom.
|
|
18
|
+
|
|
19
|
+
**Core principle:** Trace backward through the call chain until you find the original trigger, then fix at the source.
|
|
20
|
+
|
|
21
|
+
## When to Use
|
|
22
|
+
|
|
23
|
+
```dot
|
|
24
|
+
digraph when_to_use {
|
|
25
|
+
"Bug appears deep in stack?" [shape=diamond];
|
|
26
|
+
"Can trace backwards?" [shape=diamond];
|
|
27
|
+
"Fix at symptom point" [shape=box];
|
|
28
|
+
"Trace to original trigger" [shape=box];
|
|
29
|
+
"BETTER: Also add defense-in-depth" [shape=box];
|
|
30
|
+
|
|
31
|
+
"Bug appears deep in stack?" -> "Can trace backwards?" [label="yes"];
|
|
32
|
+
"Can trace backwards?" -> "Trace to original trigger" [label="yes"];
|
|
33
|
+
"Can trace backwards?" -> "Fix at symptom point" [label="no - dead end"];
|
|
34
|
+
"Trace to original trigger" -> "BETTER: Also add defense-in-depth";
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
**Use when:**
|
|
39
|
+
- Error happens deep in execution (not at entry point)
|
|
40
|
+
- Stack trace shows long call chain
|
|
41
|
+
- Unclear where invalid data originated
|
|
42
|
+
- Need to find which test/code triggers the problem
|
|
43
|
+
|
|
44
|
+
## The Tracing Process
|
|
45
|
+
|
|
46
|
+
### 1. Observe the Symptom
|
|
47
|
+
```
|
|
48
|
+
Error: git init failed in /Users/jesse/project/packages/core
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### 2. Find Immediate Cause
|
|
52
|
+
**What code directly causes this?**
|
|
53
|
+
```typescript
|
|
54
|
+
await execFileAsync('git', ['init'], { cwd: projectDir });
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### 3. Ask: What Called This?
|
|
58
|
+
```typescript
|
|
59
|
+
WorktreeManager.createSessionWorktree(projectDir, sessionId)
|
|
60
|
+
→ called by Session.initializeWorkspace()
|
|
61
|
+
→ called by Session.create()
|
|
62
|
+
→ called by test at Project.create()
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### 4. Keep Tracing Up
|
|
66
|
+
**What value was passed?**
|
|
67
|
+
- `projectDir = ''` (empty string!)
|
|
68
|
+
- Empty string as `cwd` resolves to `process.cwd()`
|
|
69
|
+
- That's the source code directory!
|
|
70
|
+
|
|
71
|
+
### 5. Find Original Trigger
|
|
72
|
+
**Where did empty string come from?**
|
|
73
|
+
```typescript
|
|
74
|
+
const context = setupCoreTest(); // Returns { tempDir: '' }
|
|
75
|
+
Project.create('name', context.tempDir); // Accessed before beforeEach!
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Adding Stack Traces
|
|
79
|
+
|
|
80
|
+
When you can't trace manually, add instrumentation:
|
|
81
|
+
|
|
82
|
+
```typescript
|
|
83
|
+
// Before the problematic operation
|
|
84
|
+
async function gitInit(directory: string) {
|
|
85
|
+
const stack = new Error().stack;
|
|
86
|
+
console.error('DEBUG git init:', {
|
|
87
|
+
directory,
|
|
88
|
+
cwd: process.cwd(),
|
|
89
|
+
nodeEnv: process.env.NODE_ENV,
|
|
90
|
+
stack,
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
await execFileAsync('git', ['init'], { cwd: directory });
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**Critical:** Use `console.error()` in tests (not logger - may not show)
|
|
98
|
+
|
|
99
|
+
**Run and capture:**
|
|
100
|
+
```bash
|
|
101
|
+
npm test 2>&1 | grep 'DEBUG git init'
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
**Analyze stack traces:**
|
|
105
|
+
- Look for test file names
|
|
106
|
+
- Find the line number triggering the call
|
|
107
|
+
- Identify the pattern (same test? same parameter?)
|
|
108
|
+
|
|
109
|
+
## Finding Which Test Causes Pollution
|
|
110
|
+
|
|
111
|
+
If something appears during tests but you don't know which test:
|
|
112
|
+
|
|
113
|
+
Use the bisection script: @find-polluter.sh
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
./find-polluter.sh '.git' 'src/**/*.test.ts'
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Runs tests one-by-one, stops at first polluter. See script for usage.
|
|
120
|
+
|
|
121
|
+
## Real Example: Empty projectDir
|
|
122
|
+
|
|
123
|
+
**Symptom:** `.git` created in `packages/core/` (source code)
|
|
124
|
+
|
|
125
|
+
**Trace chain:**
|
|
126
|
+
1. `git init` runs in `process.cwd()` ← empty cwd parameter
|
|
127
|
+
2. WorktreeManager called with empty projectDir
|
|
128
|
+
3. Session.create() passed empty string
|
|
129
|
+
4. Test accessed `context.tempDir` before beforeEach
|
|
130
|
+
5. setupCoreTest() returns `{ tempDir: '' }` initially
|
|
131
|
+
|
|
132
|
+
**Root cause:** Top-level variable initialization accessing empty value
|
|
133
|
+
|
|
134
|
+
**Fix:** Made tempDir a getter that throws if accessed before beforeEach
|
|
135
|
+
|
|
136
|
+
**Also added defense-in-depth:**
|
|
137
|
+
- Layer 1: Project.create() validates directory
|
|
138
|
+
- Layer 2: WorkspaceManager validates not empty
|
|
139
|
+
- Layer 3: NODE_ENV guard refuses git init outside tmpdir
|
|
140
|
+
- Layer 4: Stack trace logging before git init
|
|
141
|
+
|
|
142
|
+
## Key Principle
|
|
143
|
+
|
|
144
|
+
```dot
|
|
145
|
+
digraph principle {
|
|
146
|
+
"Found immediate cause" [shape=ellipse];
|
|
147
|
+
"Can trace one level up?" [shape=diamond];
|
|
148
|
+
"Trace backwards" [shape=box];
|
|
149
|
+
"Is this the source?" [shape=diamond];
|
|
150
|
+
"Fix at source" [shape=box];
|
|
151
|
+
"Add validation at each layer" [shape=box];
|
|
152
|
+
"Bug impossible" [shape=doublecircle];
|
|
153
|
+
"NEVER fix just the symptom" [shape=octagon, style=filled, fillcolor=red, fontcolor=white];
|
|
154
|
+
|
|
155
|
+
"Found immediate cause" -> "Can trace one level up?";
|
|
156
|
+
"Can trace one level up?" -> "Trace backwards" [label="yes"];
|
|
157
|
+
"Can trace one level up?" -> "NEVER fix just the symptom" [label="no"];
|
|
158
|
+
"Trace backwards" -> "Is this the source?";
|
|
159
|
+
"Is this the source?" -> "Trace backwards" [label="no - keeps going"];
|
|
160
|
+
"Is this the source?" -> "Fix at source" [label="yes"];
|
|
161
|
+
"Fix at source" -> "Add validation at each layer";
|
|
162
|
+
"Add validation at each layer" -> "Bug impossible";
|
|
163
|
+
}
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
**NEVER fix just where the error appears.** Trace back to find the original trigger.
|
|
167
|
+
|
|
168
|
+
## Stack Trace Tips
|
|
169
|
+
|
|
170
|
+
**In tests:** Use `console.error()` not logger - logger may be suppressed
|
|
171
|
+
**Before operation:** Log before the dangerous operation, not after it fails
|
|
172
|
+
**Include context:** Directory, cwd, environment variables, timestamps
|
|
173
|
+
**Capture stack:** `new Error().stack` shows complete call chain
|
|
174
|
+
|
|
175
|
+
## Real-World Impact
|
|
176
|
+
|
|
177
|
+
From debugging session (2025-10-03):
|
|
178
|
+
- Found root cause through 5-level trace
|
|
179
|
+
- Fixed at source (getter validation)
|
|
180
|
+
- Added 4 layers of defense
|
|
181
|
+
- 1847 tests passed, zero pollution
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## 🔗 Related
|
|
186
|
+
|
|
187
|
+
| File | When to Read |
|
|
188
|
+
|------|-------------|
|
|
189
|
+
| [find-polluter.sh](find-polluter.sh) | Bisection script to find polluting test |
|
|
190
|
+
| [../defense-in-depth/SKILL.md](../defense-in-depth/SKILL.md) | Add validation layers after finding root cause |
|
|
191
|
+
| [../verification-before-completion/SKILL.md](../verification-before-completion/SKILL.md) | Verify fix completeness |
|
|
192
|
+
| [../SKILL.md](../SKILL.md) | 4-phase methodology overview |
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
⚡ PikaKit v3.9.134
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Bisection script to find which test creates unwanted files/state
|
|
3
|
+
# Usage: ./find-polluter.sh <file_or_dir_to_check> <test_pattern>
|
|
4
|
+
# Example: ./find-polluter.sh '.git' 'src/**/*.test.ts'
|
|
5
|
+
|
|
6
|
+
set -e
|
|
7
|
+
|
|
8
|
+
if [ $# -ne 2 ]; then
|
|
9
|
+
echo "Usage: $0 <file_to_check> <test_pattern>"
|
|
10
|
+
echo "Example: $0 '.git' 'src/**/*.test.ts'"
|
|
11
|
+
exit 1
|
|
12
|
+
fi
|
|
13
|
+
|
|
14
|
+
POLLUTION_CHECK="$1"
|
|
15
|
+
TEST_PATTERN="$2"
|
|
16
|
+
|
|
17
|
+
echo "🔍 Searching for test that creates: $POLLUTION_CHECK"
|
|
18
|
+
echo "Test pattern: $TEST_PATTERN"
|
|
19
|
+
echo ""
|
|
20
|
+
|
|
21
|
+
# Get list of test files
|
|
22
|
+
TEST_FILES=$(find . -path "$TEST_PATTERN" | sort)
|
|
23
|
+
TOTAL=$(echo "$TEST_FILES" | wc -l | tr -d ' ')
|
|
24
|
+
|
|
25
|
+
echo "Found $TOTAL test files"
|
|
26
|
+
echo ""
|
|
27
|
+
|
|
28
|
+
COUNT=0
|
|
29
|
+
for TEST_FILE in $TEST_FILES; do
|
|
30
|
+
COUNT=$((COUNT + 1))
|
|
31
|
+
|
|
32
|
+
# Skip if pollution already exists
|
|
33
|
+
if [ -e "$POLLUTION_CHECK" ]; then
|
|
34
|
+
echo "⚠️ Pollution already exists before test $COUNT/$TOTAL"
|
|
35
|
+
echo " Skipping: $TEST_FILE"
|
|
36
|
+
continue
|
|
37
|
+
fi
|
|
38
|
+
|
|
39
|
+
echo "[$COUNT/$TOTAL] Testing: $TEST_FILE"
|
|
40
|
+
|
|
41
|
+
# Run the test
|
|
42
|
+
npm test "$TEST_FILE" > /dev/null 2>&1 || true
|
|
43
|
+
|
|
44
|
+
# Check if pollution appeared
|
|
45
|
+
if [ -e "$POLLUTION_CHECK" ]; then
|
|
46
|
+
echo ""
|
|
47
|
+
echo "🎯 FOUND POLLUTER!"
|
|
48
|
+
echo " Test: $TEST_FILE"
|
|
49
|
+
echo " Created: $POLLUTION_CHECK"
|
|
50
|
+
echo ""
|
|
51
|
+
echo "Pollution details:"
|
|
52
|
+
ls -la "$POLLUTION_CHECK"
|
|
53
|
+
echo ""
|
|
54
|
+
echo "To investigate:"
|
|
55
|
+
echo " npm test $TEST_FILE # Run just this test"
|
|
56
|
+
echo " cat $TEST_FILE # Review test code"
|
|
57
|
+
exit 1
|
|
58
|
+
fi
|
|
59
|
+
done
|
|
60
|
+
|
|
61
|
+
echo ""
|
|
62
|
+
echo "✅ No polluter found - all tests clean!"
|
|
63
|
+
exit 0
|
|
@@ -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
|