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,1045 @@
|
|
|
1
|
+
# typescript-expert
|
|
2
|
+
|
|
3
|
+
**Version 1.0.0**
|
|
4
|
+
Engineering
|
|
5
|
+
March 2026
|
|
6
|
+
|
|
7
|
+
> **Note:**
|
|
8
|
+
> This document is for agents and LLMs to follow when working on typescript-expert domain.
|
|
9
|
+
> Optimized for automation and consistency by AI-assisted workflows.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# TypeScript Expert — Advanced TS Problem-Solving
|
|
14
|
+
|
|
15
|
+
> Strict mode. ESM-first. Type-level patterns. Deterministic error routing.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## When to Use
|
|
20
|
+
|
|
21
|
+
| Situation | Approach |
|
|
22
|
+
|-----------|----------|
|
|
23
|
+
| Type errors | Check error routing table |
|
|
24
|
+
| Build performance | See performance settings |
|
|
25
|
+
| Monorepo setup | Check project references |
|
|
26
|
+
| Migration strategy | See rules/migration.md |
|
|
27
|
+
| Module issues | ESM-first config |
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## System Boundaries
|
|
32
|
+
|
|
33
|
+
| Owned by This Skill | NOT Owned |
|
|
34
|
+
|---------------------|-----------|
|
|
35
|
+
| Type-level patterns (3) | Next.js integration (→ nextjs-pro) |
|
|
36
|
+
| Error → fix routing (4 errors) | React patterns (→ react-architect) |
|
|
37
|
+
| Performance config (3 settings) | Code review (→ code-review) |
|
|
38
|
+
| Strict config + ESM-first | Build tooling (Vite/webpack) |
|
|
39
|
+
|
|
40
|
+
**Expert decision skill:** Produces TS guidance. Does not execute compilers.
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Diagnostics (3 Commands)
|
|
45
|
+
|
|
46
|
+
| Task | Command |
|
|
47
|
+
|------|---------|
|
|
48
|
+
| Type check | `npx tsc --noEmit` |
|
|
49
|
+
| Performance | `npx tsc --extendedDiagnostics` |
|
|
50
|
+
| Trace resolution | `npx tsc --traceResolution` |
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Common Errors (4 — Deterministic Routing)
|
|
55
|
+
|
|
56
|
+
| Error | Fix |
|
|
57
|
+
|-------|-----|
|
|
58
|
+
| "Cannot be named" | Export type explicitly |
|
|
59
|
+
| "Excessive depth" | Limit recursion, use `interface` instead of `type` |
|
|
60
|
+
| "Cannot find module" | Check `moduleResolution: "bundler"` |
|
|
61
|
+
| Missing types | Add ambient declaration (`.d.ts`) |
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Type-Level Patterns (3)
|
|
66
|
+
|
|
67
|
+
### Branded Types
|
|
68
|
+
```typescript
|
|
69
|
+
type Brand<K, T> = K & { __brand: T };
|
|
70
|
+
type UserId = Brand<string, 'UserId'>;
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Deep Readonly
|
|
74
|
+
```typescript
|
|
75
|
+
type DeepReadonly<T> = T extends object
|
|
76
|
+
? { readonly [K in keyof T]: DeepReadonly<T[K]> }
|
|
77
|
+
: T;
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Satisfies (TS 5.0+)
|
|
81
|
+
```typescript
|
|
82
|
+
const config = {
|
|
83
|
+
api: "https://api.example.com",
|
|
84
|
+
timeout: 5000
|
|
85
|
+
} satisfies Record<string, string | number>;
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Strict Config (Recommended — Fixed)
|
|
91
|
+
|
|
92
|
+
```json
|
|
93
|
+
{
|
|
94
|
+
"compilerOptions": {
|
|
95
|
+
"strict": true,
|
|
96
|
+
"noUncheckedIndexedAccess": true,
|
|
97
|
+
"noImplicitOverride": true
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## ESM-First Config (Fixed)
|
|
103
|
+
|
|
104
|
+
```json
|
|
105
|
+
{
|
|
106
|
+
"type": "module",
|
|
107
|
+
"moduleResolution": "bundler"
|
|
108
|
+
}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Performance Settings (3 — Fixed)
|
|
114
|
+
|
|
115
|
+
| Setting | Effect |
|
|
116
|
+
|---------|--------|
|
|
117
|
+
| `skipLibCheck: true` | Skip library type checking |
|
|
118
|
+
| `incremental: true` | Cache builds |
|
|
119
|
+
| Project references | Monorepo parallel builds |
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Error Taxonomy
|
|
124
|
+
|
|
125
|
+
| Code | Recoverable | Trigger |
|
|
126
|
+
|------|-------------|---------|
|
|
127
|
+
| `ERR_INVALID_REQUEST_TYPE` | No | Request type not supported |
|
|
128
|
+
| `ERR_UNKNOWN_ERROR` | Yes | tsc error not in routing table |
|
|
129
|
+
| `ERR_UNSUPPORTED_VERSION` | Yes | TS version below 5.0 |
|
|
130
|
+
| `ERR_UNKNOWN_PROJECT_TYPE` | Yes | Not app, library, or monorepo |
|
|
131
|
+
|
|
132
|
+
**Zero internal retries.** Same error = same fix.
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## Troubleshooting
|
|
137
|
+
|
|
138
|
+
| Problem | Solution |
|
|
139
|
+
|---------|----------|
|
|
140
|
+
| `any` type spreading | Enable `noImplicitAny` in tsconfig |
|
|
141
|
+
| Module resolution fails | Set `moduleResolution: "bundler"` (TS 5+) |
|
|
142
|
+
| Slow type checking | Use project references, `skipLibCheck: true` |
|
|
143
|
+
| ESM/CJS mismatch | Set `"type": "module"` in package.json |
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## 📑 Content Map
|
|
148
|
+
|
|
149
|
+
| File | Description | When to Read |
|
|
150
|
+
|------|-------------|--------------|
|
|
151
|
+
| [tsconfig-strict.json](rules/tsconfig-strict.json) | Strict TS 5.x config template | New project setup |
|
|
152
|
+
| [typescript-cheatsheet.md](rules/typescript-cheatsheet.md) | Full TS quick reference (13 sections) | Writing TypeScript |
|
|
153
|
+
| [utility-types.js](rules/utility-types.js) | Runtime utilities (Result, Option, Brand) | JavaScript helpers |
|
|
154
|
+
| [type-patterns.md](rules/type-patterns.md) | Advanced type patterns | Type gymnastics |
|
|
155
|
+
| [performance.md](rules/performance.md) | Build performance | Slow builds |
|
|
156
|
+
| [monorepo.md](rules/monorepo.md) | Monorepo setup | Project references |
|
|
157
|
+
| [migration.md](rules/migration.md) | Migration strategies | Version upgrades |
|
|
158
|
+
| [ts_diagnostic.ts](scripts/ts_diagnostic.ts) | Project health analysis | Automated diagnostics |
|
|
159
|
+
| [engineering-spec.md](rules/engineering-spec.md) | Full spec | Architecture review |
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## 🔗 Related
|
|
164
|
+
|
|
165
|
+
| Item | Type | Purpose |
|
|
166
|
+
|------|------|---------|
|
|
167
|
+
| `nextjs-pro` | Skill | Next.js + TS |
|
|
168
|
+
| `react-architect` | Skill | React + TS |
|
|
169
|
+
| `code-review` | Skill | Code quality |
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## Detailed Rules
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
### Rule: engineering-spec
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
title: TypeScript Expert — Engineering Specification
|
|
186
|
+
impact: MEDIUM
|
|
187
|
+
tags: typescript-expert
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
# TypeScript Expert — Engineering Specification
|
|
191
|
+
|
|
192
|
+
> Production-grade specification for TypeScript/JavaScript expertise at FAANG scale.
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## 1. Overview
|
|
197
|
+
|
|
198
|
+
TypeScript Expert provides structured guidance for TypeScript and JavaScript: type-level patterns (3: branded types, deep readonly, satisfies), common error resolution (4 error types with fixes), performance configuration (3 settings: skipLibCheck, incremental, project references), strict config (3 strict options), ESM-first configuration, tsconfig decision routing, monorepo management, and migration strategies. The skill operates as an **Expert (decision tree)** — it produces type pattern recommendations, error fixes, config guidance, and migration paths. It does not write TypeScript files, execute compilers, or modify tsconfig.
|
|
199
|
+
|
|
200
|
+
**Contract Version:** 2.0.0
|
|
201
|
+
**Backward Compatibility:** breaking (first hardened version)
|
|
202
|
+
**Breaking Changes:** None — new spec for first hardening
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## 2. Problem Statement
|
|
207
|
+
|
|
208
|
+
TypeScript development at scale faces four quantified problems:
|
|
209
|
+
|
|
210
|
+
| Problem | Measurement | Impact |
|
|
211
|
+
|---------|-------------|--------|
|
|
212
|
+
| Type errors without resolution path | 45% of TS errors take >30 min to resolve | Developer productivity loss |
|
|
213
|
+
| Slow type checking | 35% of monorepos exceed 60s tsc time | CI/CD bottlenecks |
|
|
214
|
+
| Weak config defaults | 50% of projects miss strict mode | Runtime type safety gaps |
|
|
215
|
+
| ESM/CJS module confusion | 40% of projects have module resolution issues | Build failures |
|
|
216
|
+
|
|
217
|
+
TypeScript Expert eliminates these with deterministic error→fix routing, performance configuration guidance (skipLibCheck + incremental + project references), strict config enforcement, and ESM-first module resolution.
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## 3. Design Goals
|
|
222
|
+
|
|
223
|
+
| ID | Goal | Measurable Constraint |
|
|
224
|
+
|----|------|-----------------------|
|
|
225
|
+
| G1 | Type-level patterns | 3 patterns: branded types, deep readonly, satisfies |
|
|
226
|
+
| G2 | Error resolution | 4 common errors with deterministic fixes |
|
|
227
|
+
| G3 | Performance | 3 settings: skipLibCheck, incremental, project references |
|
|
228
|
+
| G4 | Strict config | 3 strict options: strict, noUncheckedIndexedAccess, noImplicitOverride |
|
|
229
|
+
| G5 | Module system | ESM-first with `"type": "module"` + `moduleResolution: "bundler"` |
|
|
230
|
+
| G6 | Diagnostics | 3 CLI commands: --noEmit, --extendedDiagnostics, --traceResolution |
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
## 4. Non-Goals
|
|
235
|
+
|
|
236
|
+
| ID | Excluded | Rationale |
|
|
237
|
+
|----|----------|-----------|
|
|
238
|
+
| NG1 | Next.js integration | Owned by `nextjs-pro` skill |
|
|
239
|
+
| NG2 | React component patterns | Owned by `react-architect` skill |
|
|
240
|
+
| NG3 | Code review | Owned by `code-review` skill |
|
|
241
|
+
| NG4 | JavaScript runtime behavior | TypeScript type system focused |
|
|
242
|
+
| NG5 | Build tooling (Vite/webpack) | Bundler-specific concern |
|
|
243
|
+
| NG6 | Package publishing | npm/registry concern |
|
|
244
|
+
|
|
245
|
+
---
|
|
246
|
+
|
|
247
|
+
## 5. System Boundaries
|
|
248
|
+
|
|
249
|
+
| Boundary | Owned | Not Owned |
|
|
250
|
+
|----------|-------|-----------|
|
|
251
|
+
| Type patterns | Branded types, deep readonly, satisfies | Framework-specific types |
|
|
252
|
+
| Error resolution | 4 common tsc errors | Runtime errors |
|
|
253
|
+
| Performance config | skipLibCheck, incremental, project refs | Build tooling config |
|
|
254
|
+
| Strict config | 3 strict compiler options | Linting rules (ESLint) |
|
|
255
|
+
| Module system | ESM-first guidance | Bundler configuration |
|
|
256
|
+
| Diagnostics | 3 tsc CLI commands | IDE integration |
|
|
257
|
+
|
|
258
|
+
**Side-effect boundary:** TypeScript Expert produces type pattern recommendations, error fixes, config guidance, and migration paths. It does not write files, execute compilers, or modify projects.
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
## 6. Integration Model
|
|
263
|
+
|
|
264
|
+
### 6.1 Agent Contract
|
|
265
|
+
|
|
266
|
+
#### Input Schema
|
|
267
|
+
|
|
268
|
+
```
|
|
269
|
+
Request_Type: string # "type-pattern" | "error" | "performance" | "config" |
|
|
270
|
+
# "module" | "monorepo" | "migration" | "diagnostics" |
|
|
271
|
+
# "full-guide"
|
|
272
|
+
Context: {
|
|
273
|
+
error_message: string | null # tsc error message
|
|
274
|
+
ts_version: string | null # "5.0" | "5.1" | "5.2" | "5.3" | "5.4" | "5.5"
|
|
275
|
+
project_type: string | null # "app" | "library" | "monorepo"
|
|
276
|
+
module_system: string | null # "esm" | "cjs" | "dual"
|
|
277
|
+
current_config: object | null # Existing tsconfig.json
|
|
278
|
+
}
|
|
279
|
+
contract_version: string # "2.0.0"
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
#### Output Schema
|
|
283
|
+
|
|
284
|
+
```
|
|
285
|
+
Status: "success" | "error"
|
|
286
|
+
Data: {
|
|
287
|
+
type_pattern: {
|
|
288
|
+
name: string
|
|
289
|
+
code: string # TypeScript code example
|
|
290
|
+
use_case: string
|
|
291
|
+
} | null
|
|
292
|
+
error_fix: {
|
|
293
|
+
error: string
|
|
294
|
+
fix: string
|
|
295
|
+
code: string | null # Fix code example
|
|
296
|
+
} | null
|
|
297
|
+
performance: {
|
|
298
|
+
settings: Array<{
|
|
299
|
+
setting: string
|
|
300
|
+
value: string | boolean
|
|
301
|
+
effect: string
|
|
302
|
+
}>
|
|
303
|
+
} | null
|
|
304
|
+
config: {
|
|
305
|
+
tsconfig: object # Recommended tsconfig partial
|
|
306
|
+
description: string
|
|
307
|
+
} | null
|
|
308
|
+
module: {
|
|
309
|
+
system: string # "esm" | "cjs"
|
|
310
|
+
package_json: object # Required package.json fields
|
|
311
|
+
tsconfig: object # Required tsconfig fields
|
|
312
|
+
} | null
|
|
313
|
+
diagnostics: {
|
|
314
|
+
command: string
|
|
315
|
+
purpose: string
|
|
316
|
+
} | null
|
|
317
|
+
security: {
|
|
318
|
+
rules_of_engagement_followed: boolean
|
|
319
|
+
} | null
|
|
320
|
+
code_quality: {
|
|
321
|
+
problem_checker_run: boolean
|
|
322
|
+
} | null
|
|
323
|
+
metadata: {
|
|
324
|
+
contract_version: string
|
|
325
|
+
backward_compatibility: string
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
Error: ErrorSchema | null
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
#### Error Schema
|
|
332
|
+
|
|
333
|
+
```
|
|
334
|
+
Code: string # From Error Taxonomy (Section 11)
|
|
335
|
+
Message: string
|
|
336
|
+
Request_Type: string
|
|
337
|
+
Recoverable: boolean
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
#### Deterministic Guarantees
|
|
341
|
+
|
|
342
|
+
- Error routing is fixed: "Cannot be named" → export type explicitly; "Excessive depth" → limit recursion, use interface; "Cannot find module" → check moduleResolution; missing types → add ambient declaration.
|
|
343
|
+
- Performance routing is fixed: slow builds → skipLibCheck + incremental + project references.
|
|
344
|
+
- Strict config is fixed: `strict: true` + `noUncheckedIndexedAccess: true` + `noImplicitOverride: true`.
|
|
345
|
+
- ESM-first is fixed: `"type": "module"` + `moduleResolution: "bundler"`.
|
|
346
|
+
- Same error = same fix. Same project type = same config.
|
|
347
|
+
|
|
348
|
+
#### What Agents May Assume
|
|
349
|
+
|
|
350
|
+
- TypeScript 5.0+ is the target version.
|
|
351
|
+
- `npx tsc --noEmit` validates type correctness.
|
|
352
|
+
- Strict mode is the recommended default.
|
|
353
|
+
- ESM is the preferred module system for new projects.
|
|
354
|
+
|
|
355
|
+
#### What Agents Must NOT Assume
|
|
356
|
+
|
|
357
|
+
- All projects can use ESM immediately.
|
|
358
|
+
- `skipLibCheck` is always safe (hides library type errors).
|
|
359
|
+
- Branded types are zero-cost at runtime (they are, but require discipline).
|
|
360
|
+
- Project references work without `composite: true`.
|
|
361
|
+
|
|
362
|
+
#### Side-Effect Boundaries
|
|
363
|
+
|
|
364
|
+
| Operation | Side Effects |
|
|
365
|
+
|-----------|-------------|
|
|
366
|
+
| Type pattern | None; code example |
|
|
367
|
+
| Error fix | None; fix recommendation |
|
|
368
|
+
| Performance | None; config recommendation |
|
|
369
|
+
| Config | None; tsconfig partial |
|
|
370
|
+
| Module | None; setup guidance |
|
|
371
|
+
| Diagnostics | None; command recommendation |
|
|
372
|
+
|
|
373
|
+
### 6.2 Workflow Contract
|
|
374
|
+
|
|
375
|
+
#### Invocation Pattern
|
|
376
|
+
|
|
377
|
+
```
|
|
378
|
+
1. Identify issue type (type error, performance, config, module)
|
|
379
|
+
2. Invoke appropriate request type
|
|
380
|
+
3. For type errors: invoke error with error message
|
|
381
|
+
4. For new projects: invoke config for strict + ESM setup
|
|
382
|
+
5. For monorepos: invoke monorepo for project references
|
|
383
|
+
6. Validate with `npx tsc --noEmit` (caller's responsibility)
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
#### Execution Guarantees
|
|
387
|
+
|
|
388
|
+
- Each invocation produces a complete recommendation.
|
|
389
|
+
- All decisions are independent (can be invoked in any order).
|
|
390
|
+
|
|
391
|
+
#### Failure Propagation Model
|
|
392
|
+
|
|
393
|
+
| Failure Severity | Propagation | Workflow Action |
|
|
394
|
+
|-----------------|-------------|-----------------|
|
|
395
|
+
| Unknown error message | Return error | Provide exact tsc error |
|
|
396
|
+
| Unsupported TS version | Return error | Use 5.0+ |
|
|
397
|
+
| Invalid request type | Return error | Use supported type |
|
|
398
|
+
|
|
399
|
+
#### Retry Boundaries
|
|
400
|
+
|
|
401
|
+
- Zero internal retries. Deterministic output.
|
|
402
|
+
|
|
403
|
+
#### Isolation Model
|
|
404
|
+
|
|
405
|
+
- Each invocation is stateless and independent.
|
|
406
|
+
|
|
407
|
+
#### Idempotency Expectations
|
|
408
|
+
|
|
409
|
+
| Operation | Idempotent | Notes |
|
|
410
|
+
|-----------|-----------|-------|
|
|
411
|
+
| Type pattern | Yes | Same pattern = same code |
|
|
412
|
+
| Error fix | Yes | Same error = same fix |
|
|
413
|
+
| Performance | Yes | Same project type = same settings |
|
|
414
|
+
| Config | Yes | Same inputs = same tsconfig |
|
|
415
|
+
| Module | Yes | Same system = same setup |
|
|
416
|
+
|
|
417
|
+
---
|
|
418
|
+
|
|
419
|
+
## 7. Execution Model
|
|
420
|
+
|
|
421
|
+
### 2-Phase Lifecycle
|
|
422
|
+
|
|
423
|
+
| Phase | Action | Output |
|
|
424
|
+
|-------|--------|--------|
|
|
425
|
+
| **Classify** | Parse error message, project type, module system | Classification |
|
|
426
|
+
| **Guide** | Generate type pattern, error fix, config, or migration | Complete output |
|
|
427
|
+
|
|
428
|
+
All phases synchronous. No async pipeline.
|
|
429
|
+
|
|
430
|
+
---
|
|
431
|
+
|
|
432
|
+
## 8. Deterministic Design Principles
|
|
433
|
+
|
|
434
|
+
| Principle | Enforcement |
|
|
435
|
+
|-----------|-------------|
|
|
436
|
+
| Error routing | "Cannot be named" → export type; "Excessive depth" → limit recursion, use interface; "Cannot find module" → check moduleResolution; missing types → ambient declaration |
|
|
437
|
+
| Performance | `skipLibCheck: true` (skip library checks); `incremental: true` (cache builds); project references (monorepo) |
|
|
438
|
+
| Strict config | `strict: true` + `noUncheckedIndexedAccess: true` + `noImplicitOverride: true` |
|
|
439
|
+
| ESM-first | `"type": "module"` in package.json + `moduleResolution: "bundler"` in tsconfig |
|
|
440
|
+
| Type patterns | Branded: `type Brand<K, T> = K & { __brand: T }`; DeepReadonly: recursive mapped type; Satisfies: `as const satisfies Type` |
|
|
441
|
+
| Diagnostics | Type check: `npx tsc --noEmit`; Performance: `npx tsc --extendedDiagnostics`; Resolution: `npx tsc --traceResolution` |
|
|
442
|
+
|
|
443
|
+
---
|
|
444
|
+
|
|
445
|
+
## 9. State & Idempotency Model
|
|
446
|
+
|
|
447
|
+
Stateless. Fully idempotent. No persistent state.
|
|
448
|
+
|
|
449
|
+
---
|
|
450
|
+
|
|
451
|
+
## 10. Failure Handling Strategy
|
|
452
|
+
|
|
453
|
+
| Failure Class | Behavior | Caller Recovery |
|
|
454
|
+
|---------------|----------|-----------------|
|
|
455
|
+
| Unknown error message | Return `ERR_UNKNOWN_ERROR` | Provide exact tsc error text |
|
|
456
|
+
| Unsupported TS version | Return `ERR_UNSUPPORTED_VERSION` | Use TypeScript 5.0+ |
|
|
457
|
+
| Invalid request type | Return `ERR_INVALID_REQUEST_TYPE` | Use supported type |
|
|
458
|
+
| Unknown project type | Return `ERR_UNKNOWN_PROJECT_TYPE` | Specify app, library, or monorepo |
|
|
459
|
+
|
|
460
|
+
**Invariant:** Every failure returns a structured error. No partial type guidance.
|
|
461
|
+
|
|
462
|
+
---
|
|
463
|
+
|
|
464
|
+
## 11. Error Taxonomy
|
|
465
|
+
|
|
466
|
+
| Code | Category | Recoverable | Description |
|
|
467
|
+
|------|----------|-------------|-------------|
|
|
468
|
+
| `ERR_INVALID_REQUEST_TYPE` | Validation | No | Request type not supported |
|
|
469
|
+
| `ERR_UNKNOWN_ERROR` | Validation | Yes | tsc error not in routing table |
|
|
470
|
+
| `ERR_UNSUPPORTED_VERSION` | Validation | Yes | TS version below 5.0 |
|
|
471
|
+
| `ERR_UNKNOWN_PROJECT_TYPE` | Validation | Yes | Project type not app, library, or monorepo |
|
|
472
|
+
|
|
473
|
+
---
|
|
474
|
+
|
|
475
|
+
## 12. Timeout & Retry Policy
|
|
476
|
+
|
|
477
|
+
| Parameter | Default | Maximum | Rationale |
|
|
478
|
+
|-----------|---------|---------|-----------|
|
|
479
|
+
| Decision generation | N/A | N/A | Synchronous; < 50ms |
|
|
480
|
+
| Internal retries | Zero | Zero | Deterministic output |
|
|
481
|
+
|
|
482
|
+
---
|
|
483
|
+
|
|
484
|
+
## 13. Observability & Logging Schema
|
|
485
|
+
|
|
486
|
+
### Log Entry Format (OpenTelemetry Event Array)
|
|
487
|
+
|
|
488
|
+
```json
|
|
489
|
+
{
|
|
490
|
+
"traceId": "uuid",
|
|
491
|
+
"spanId": "uuid",
|
|
492
|
+
"events": [
|
|
493
|
+
{
|
|
494
|
+
"name": "type_pattern_recommended",
|
|
495
|
+
"timestamp": "ISO8601",
|
|
496
|
+
"attributes": {
|
|
497
|
+
"pattern": "branded_types",
|
|
498
|
+
"use_case": "ids"
|
|
499
|
+
}
|
|
500
|
+
},
|
|
501
|
+
{
|
|
502
|
+
"name": "error_resolved",
|
|
503
|
+
"timestamp": "ISO8601",
|
|
504
|
+
"attributes": {
|
|
505
|
+
"error_code": "TS2322",
|
|
506
|
+
"fix_applied": "type_assertion"
|
|
507
|
+
}
|
|
508
|
+
},
|
|
509
|
+
{
|
|
510
|
+
"name": "config_recommended",
|
|
511
|
+
"timestamp": "ISO8601",
|
|
512
|
+
"attributes": {
|
|
513
|
+
"project_type": "monorepo",
|
|
514
|
+
"settings": ["projectReferences"]
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
]
|
|
518
|
+
}
|
|
519
|
+
```
|
|
520
|
+
|
|
521
|
+
### Required Log Points
|
|
522
|
+
|
|
523
|
+
| Event | Log Level | Fields |
|
|
524
|
+
|-------|-----------|--------|
|
|
525
|
+
| Type pattern recommended | INFO | pattern_name |
|
|
526
|
+
| Error fix provided | INFO | error_message, fix |
|
|
527
|
+
| Config recommended | INFO | project_type, settings |
|
|
528
|
+
| Decision failed | ERROR | error_code, message |
|
|
529
|
+
|
|
530
|
+
### Metrics
|
|
531
|
+
|
|
532
|
+
| Metric | Type | Unit |
|
|
533
|
+
|--------|------|------|
|
|
534
|
+
| `tsexpert.decision.duration` | Histogram | ms |
|
|
535
|
+
| `tsexpert.request_type.distribution` | Counter | per type |
|
|
536
|
+
| `tsexpert.error.distribution` | Counter | per error |
|
|
537
|
+
| `tsexpert.project_type.distribution` | Counter | per type |
|
|
538
|
+
|
|
539
|
+
---
|
|
540
|
+
|
|
541
|
+
## 14. Security & Trust Model
|
|
542
|
+
|
|
543
|
+
### Data Handling
|
|
544
|
+
|
|
545
|
+
- TypeScript Expert processes error messages, config objects, and version strings only.
|
|
546
|
+
- No credentials, no PII, no source code execution.
|
|
547
|
+
- No network calls, no file access, no compiler execution.
|
|
548
|
+
|
|
549
|
+
---
|
|
550
|
+
|
|
551
|
+
## 15. Scalability Model
|
|
552
|
+
|
|
553
|
+
| Dimension | Constraint | Mitigation |
|
|
554
|
+
|-----------|-----------|------------|
|
|
555
|
+
| Throughput | CPU-bound decision tree | < 50ms; scales linearly |
|
|
556
|
+
| Concurrency | Stateless invocations | Unlimited parallel |
|
|
557
|
+
| Memory per invocation | < 1 MB | No accumulation |
|
|
558
|
+
| Network | Zero network calls | No external dependency |
|
|
559
|
+
|
|
560
|
+
---
|
|
561
|
+
|
|
562
|
+
## 16. Concurrency Model
|
|
563
|
+
|
|
564
|
+
Fully parallel. No shared state. No coordination required.
|
|
565
|
+
|
|
566
|
+
---
|
|
567
|
+
|
|
568
|
+
## 17. Resource Lifecycle Management
|
|
569
|
+
|
|
570
|
+
All resources scoped to invocation. No persistent handles.
|
|
571
|
+
|
|
572
|
+
---
|
|
573
|
+
|
|
574
|
+
## 18. Performance Constraints
|
|
575
|
+
|
|
576
|
+
| Operation | P50 Target | P99 Target | Hard Limit |
|
|
577
|
+
|-----------|-----------|-----------|------------|
|
|
578
|
+
| Error fix | < 2 ms | < 5 ms | 20 ms |
|
|
579
|
+
| Config recommendation | < 2 ms | < 5 ms | 20 ms |
|
|
580
|
+
| Type pattern | < 2 ms | < 5 ms | 20 ms |
|
|
581
|
+
| Full guide | < 10 ms | < 30 ms | 50 ms |
|
|
582
|
+
| Output size | ≤ 3,000 chars | ≤ 8,000 chars | 12,000 chars |
|
|
583
|
+
|
|
584
|
+
---
|
|
585
|
+
|
|
586
|
+
## 19. Operational Risks
|
|
587
|
+
|
|
588
|
+
| Risk | Likelihood | Impact | Mitigation |
|
|
589
|
+
|------|-----------|--------|------------|
|
|
590
|
+
| TS version break (6.0) | Low | Major API changes | Track TypeScript roadmap |
|
|
591
|
+
| `moduleResolution` changes | Medium | Config invalidation | Document version-specific options |
|
|
592
|
+
| Strict mode too aggressive | Low | Developer friction | Incremental adoption path |
|
|
593
|
+
| Type-level pattern complexity | Medium | Unmaintainable types | Recommend simple alternatives first |
|
|
594
|
+
|
|
595
|
+
---
|
|
596
|
+
|
|
597
|
+
## 20. Compliance with skill-design-guide.md
|
|
598
|
+
|
|
599
|
+
| Requirement | Status | Evidence |
|
|
600
|
+
|-------------|--------|----------|
|
|
601
|
+
| YAML frontmatter complete | ✅ | name, description, metadata with category, version, triggers, coordinates_with, success_metrics |
|
|
602
|
+
| SKILL.md < 200 lines | ✅ | Entry point under 200 lines |
|
|
603
|
+
| Prerequisites documented | ✅ | TypeScript 5.0+ |
|
|
604
|
+
| When to Use section | ✅ | Situation-based routing table |
|
|
605
|
+
| Core content matches skill type | ✅ | Expert type: error routing, type patterns, config guidance |
|
|
606
|
+
| Troubleshooting section | ✅ | Error table + troubleshooting table |
|
|
607
|
+
| Related section | ✅ | Cross-links to nextjs-pro, react-architect, code-review |
|
|
608
|
+
| Content Map for multi-file | ✅ | Links to rules/ + scripts/ + engineering-spec.md |
|
|
609
|
+
| Contract versioning | ✅ | contract_version, backward_compatibility, breaking_changes |
|
|
610
|
+
| Compliance matrix structured | ✅ | This table with ✅/❌ + evidence |
|
|
611
|
+
|
|
612
|
+
---
|
|
613
|
+
|
|
614
|
+
## 21. Production Readiness Checklist
|
|
615
|
+
|
|
616
|
+
| Category | Check | Status |
|
|
617
|
+
|----------|-------|--------|
|
|
618
|
+
| **Functionality** | 3 type-level patterns (branded, deep readonly, satisfies) | ✅ |
|
|
619
|
+
| **Functionality** | 4 common error → fix routing | ✅ |
|
|
620
|
+
| **Functionality** | 3 performance settings | ✅ |
|
|
621
|
+
| **Functionality** | Strict config (3 options) | ✅ |
|
|
622
|
+
| **Functionality** | ESM-first module config | ✅ |
|
|
623
|
+
| **Functionality** | 3 diagnostic CLI commands | ✅ |
|
|
624
|
+
| **Contracts** | Input/output/error schemas in pseudo-schema format | ✅ |
|
|
625
|
+
| **Contracts** | Contract versioning with semver | ✅ |
|
|
626
|
+
| **Failure** | Error taxonomy with 4 categorized codes | ✅ |
|
|
627
|
+
| **Failure** | Zero internal retries | ✅ |
|
|
628
|
+
| **Determinism** | Fixed error routing, fixed config, fixed patterns | ✅ |
|
|
629
|
+
| **Security** | No source code execution, no files, no network | ✅ |
|
|
630
|
+
| **Observability** | Structured log schema with 5 mandatory fields | ✅ |
|
|
631
|
+
| **Observability** | 4 metrics defined | ✅ |
|
|
632
|
+
| **Performance** | P50/P99 targets for all operations | ✅ |
|
|
633
|
+
| **Compliance** | All skill-design-guide.md sections mapped with evidence | ✅ |
|
|
634
|
+
|
|
635
|
+
---
|
|
636
|
+
|
|
637
|
+
|
|
638
|
+
|
|
639
|
+
---
|
|
640
|
+
|
|
641
|
+
### Rule: typescript-cheatsheet
|
|
642
|
+
|
|
643
|
+
---
|
|
644
|
+
name: typescript-cheatsheet
|
|
645
|
+
description: TypeScript quick reference — primitives, generics, utility types, conditionals, mapped types, type guards, branded types, module declarations, tsconfig
|
|
646
|
+
---
|
|
647
|
+
|
|
648
|
+
# TypeScript Cheatsheet
|
|
649
|
+
|
|
650
|
+
## Type Basics
|
|
651
|
+
|
|
652
|
+
```typescript
|
|
653
|
+
// Primitives
|
|
654
|
+
const name: string = 'John'
|
|
655
|
+
const age: number = 30
|
|
656
|
+
const isActive: boolean = true
|
|
657
|
+
const nothing: null = null
|
|
658
|
+
const notDefined: undefined = undefined
|
|
659
|
+
|
|
660
|
+
// Arrays
|
|
661
|
+
const numbers: number[] = [1, 2, 3]
|
|
662
|
+
const strings: Array<string> = ['a', 'b', 'c']
|
|
663
|
+
|
|
664
|
+
// Tuple
|
|
665
|
+
const tuple: [string, number] = ['hello', 42]
|
|
666
|
+
|
|
667
|
+
// Object
|
|
668
|
+
const user: { name: string; age: number } = { name: 'John', age: 30 }
|
|
669
|
+
|
|
670
|
+
// Union
|
|
671
|
+
const value: string | number = 'hello'
|
|
672
|
+
|
|
673
|
+
// Literal
|
|
674
|
+
const direction: 'up' | 'down' | 'left' | 'right' = 'up'
|
|
675
|
+
|
|
676
|
+
// Any vs Unknown
|
|
677
|
+
const anyValue: any = 'anything' // ❌ Avoid
|
|
678
|
+
const unknownValue: unknown = 'safe' // ✅ Prefer, requires narrowing
|
|
679
|
+
```
|
|
680
|
+
|
|
681
|
+
## Type Aliases & Interfaces
|
|
682
|
+
|
|
683
|
+
```typescript
|
|
684
|
+
// Type Alias
|
|
685
|
+
type Point = {
|
|
686
|
+
x: number
|
|
687
|
+
y: number
|
|
688
|
+
}
|
|
689
|
+
|
|
690
|
+
// Interface (preferred for objects)
|
|
691
|
+
interface User {
|
|
692
|
+
id: string
|
|
693
|
+
name: string
|
|
694
|
+
email?: string // Optional
|
|
695
|
+
readonly createdAt: Date // Readonly
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
// Extending
|
|
699
|
+
interface Admin extends User {
|
|
700
|
+
permissions: string[]
|
|
701
|
+
}
|
|
702
|
+
|
|
703
|
+
// Intersection
|
|
704
|
+
type AdminUser = User & { permissions: string[] }
|
|
705
|
+
```
|
|
706
|
+
|
|
707
|
+
## Generics
|
|
708
|
+
|
|
709
|
+
```typescript
|
|
710
|
+
// Generic function
|
|
711
|
+
function identity<T>(value: T): T {
|
|
712
|
+
return value
|
|
713
|
+
}
|
|
714
|
+
|
|
715
|
+
// Generic with constraint
|
|
716
|
+
function getLength<T extends { length: number }>(item: T): number {
|
|
717
|
+
return item.length
|
|
718
|
+
}
|
|
719
|
+
|
|
720
|
+
// Generic interface
|
|
721
|
+
interface ApiResponse<T> {
|
|
722
|
+
data: T
|
|
723
|
+
status: number
|
|
724
|
+
message: string
|
|
725
|
+
}
|
|
726
|
+
|
|
727
|
+
// Generic with default
|
|
728
|
+
type Container<T = string> = {
|
|
729
|
+
value: T
|
|
730
|
+
}
|
|
731
|
+
|
|
732
|
+
// Multiple generics
|
|
733
|
+
function merge<T, U>(obj1: T, obj2: U): T & U {
|
|
734
|
+
return { ...obj1, ...obj2 }
|
|
735
|
+
}
|
|
736
|
+
```
|
|
737
|
+
|
|
738
|
+
## Utility Types
|
|
739
|
+
|
|
740
|
+
```typescript
|
|
741
|
+
interface User {
|
|
742
|
+
id: string
|
|
743
|
+
name: string
|
|
744
|
+
email: string
|
|
745
|
+
age: number
|
|
746
|
+
}
|
|
747
|
+
|
|
748
|
+
// Partial - all optional
|
|
749
|
+
type PartialUser = Partial<User>
|
|
750
|
+
|
|
751
|
+
// Required - all required
|
|
752
|
+
type RequiredUser = Required<User>
|
|
753
|
+
|
|
754
|
+
// Readonly - all readonly
|
|
755
|
+
type ReadonlyUser = Readonly<User>
|
|
756
|
+
|
|
757
|
+
// Pick - select properties
|
|
758
|
+
type UserName = Pick<User, 'id' | 'name'>
|
|
759
|
+
|
|
760
|
+
// Omit - exclude properties
|
|
761
|
+
type UserWithoutEmail = Omit<User, 'email'>
|
|
762
|
+
|
|
763
|
+
// Record - key-value map
|
|
764
|
+
type UserMap = Record<string, User>
|
|
765
|
+
|
|
766
|
+
// Extract - extract from union
|
|
767
|
+
type StringOrNumber = string | number | boolean
|
|
768
|
+
type OnlyStrings = Extract<StringOrNumber, string>
|
|
769
|
+
|
|
770
|
+
// Exclude - exclude from union
|
|
771
|
+
type NotString = Exclude<StringOrNumber, string>
|
|
772
|
+
|
|
773
|
+
// NonNullable - remove null/undefined
|
|
774
|
+
type MaybeString = string | null | undefined
|
|
775
|
+
type DefinitelyString = NonNullable<MaybeString>
|
|
776
|
+
|
|
777
|
+
// ReturnType - get function return type
|
|
778
|
+
function getUser() { return { name: 'John' } }
|
|
779
|
+
type UserReturn = ReturnType<typeof getUser>
|
|
780
|
+
|
|
781
|
+
// Parameters - get function parameters
|
|
782
|
+
type GetUserParams = Parameters<typeof getUser>
|
|
783
|
+
|
|
784
|
+
// Awaited - unwrap Promise
|
|
785
|
+
type ResolvedUser = Awaited<Promise<User>>
|
|
786
|
+
```
|
|
787
|
+
|
|
788
|
+
## Conditional Types
|
|
789
|
+
|
|
790
|
+
```typescript
|
|
791
|
+
// Basic conditional
|
|
792
|
+
type IsString<T> = T extends string ? true : false
|
|
793
|
+
|
|
794
|
+
// Infer keyword
|
|
795
|
+
type UnwrapPromise<T> = T extends Promise<infer U> ? U : T
|
|
796
|
+
|
|
797
|
+
// Distributive conditional
|
|
798
|
+
type ToArray<T> = T extends any ? T[] : never
|
|
799
|
+
type Result = ToArray<string | number> // string[] | number[]
|
|
800
|
+
|
|
801
|
+
// NonDistributive
|
|
802
|
+
type ToArrayNonDist<T> = [T] extends [any] ? T[] : never
|
|
803
|
+
```
|
|
804
|
+
|
|
805
|
+
## Template Literal Types
|
|
806
|
+
|
|
807
|
+
```typescript
|
|
808
|
+
type Color = 'red' | 'green' | 'blue'
|
|
809
|
+
type Size = 'small' | 'medium' | 'large'
|
|
810
|
+
|
|
811
|
+
// Combine
|
|
812
|
+
type ColorSize = `${Color}-${Size}`
|
|
813
|
+
// 'red-small' | 'red-medium' | 'red-large' | ...
|
|
814
|
+
|
|
815
|
+
// Event handlers
|
|
816
|
+
type EventName = 'click' | 'focus' | 'blur'
|
|
817
|
+
type EventHandler = `on${Capitalize<EventName>}`
|
|
818
|
+
// 'onClick' | 'onFocus' | 'onBlur'
|
|
819
|
+
```
|
|
820
|
+
|
|
821
|
+
## Mapped Types
|
|
822
|
+
|
|
823
|
+
```typescript
|
|
824
|
+
// Basic mapped type
|
|
825
|
+
type Optional<T> = {
|
|
826
|
+
[K in keyof T]?: T[K]
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
// With key remapping
|
|
830
|
+
type Getters<T> = {
|
|
831
|
+
[K in keyof T as `get${Capitalize<string & K>}`]: () => T[K]
|
|
832
|
+
}
|
|
833
|
+
|
|
834
|
+
// Filter keys
|
|
835
|
+
type OnlyStrings<T> = {
|
|
836
|
+
[K in keyof T as T[K] extends string ? K : never]: T[K]
|
|
837
|
+
}
|
|
838
|
+
```
|
|
839
|
+
|
|
840
|
+
## Type Guards
|
|
841
|
+
|
|
842
|
+
```typescript
|
|
843
|
+
// typeof guard
|
|
844
|
+
function process(value: string | number) {
|
|
845
|
+
if (typeof value === 'string') {
|
|
846
|
+
return value.toUpperCase() // string
|
|
847
|
+
}
|
|
848
|
+
return value.toFixed(2) // number
|
|
849
|
+
}
|
|
850
|
+
|
|
851
|
+
// instanceof guard
|
|
852
|
+
class Dog { bark() {} }
|
|
853
|
+
class Cat { meow() {} }
|
|
854
|
+
|
|
855
|
+
function makeSound(animal: Dog | Cat) {
|
|
856
|
+
if (animal instanceof Dog) {
|
|
857
|
+
animal.bark()
|
|
858
|
+
} else {
|
|
859
|
+
animal.meow()
|
|
860
|
+
}
|
|
861
|
+
}
|
|
862
|
+
|
|
863
|
+
// in guard
|
|
864
|
+
interface Bird { fly(): void }
|
|
865
|
+
interface Fish { swim(): void }
|
|
866
|
+
|
|
867
|
+
function move(animal: Bird | Fish) {
|
|
868
|
+
if ('fly' in animal) {
|
|
869
|
+
animal.fly()
|
|
870
|
+
} else {
|
|
871
|
+
animal.swim()
|
|
872
|
+
}
|
|
873
|
+
}
|
|
874
|
+
|
|
875
|
+
// Custom type guard
|
|
876
|
+
function isString(value: unknown): value is string {
|
|
877
|
+
return typeof value === 'string'
|
|
878
|
+
}
|
|
879
|
+
|
|
880
|
+
// Assertion function
|
|
881
|
+
function assertIsString(value: unknown): asserts value is string {
|
|
882
|
+
if (typeof value !== 'string') {
|
|
883
|
+
throw new Error('Not a string')
|
|
884
|
+
}
|
|
885
|
+
}
|
|
886
|
+
```
|
|
887
|
+
|
|
888
|
+
## Discriminated Unions
|
|
889
|
+
|
|
890
|
+
```typescript
|
|
891
|
+
// With type discriminant
|
|
892
|
+
type Success<T> = { type: 'success'; data: T }
|
|
893
|
+
type Error = { type: 'error'; message: string }
|
|
894
|
+
type Loading = { type: 'loading' }
|
|
895
|
+
|
|
896
|
+
type State<T> = Success<T> | Error | Loading
|
|
897
|
+
|
|
898
|
+
function handle<T>(state: State<T>) {
|
|
899
|
+
switch (state.type) {
|
|
900
|
+
case 'success':
|
|
901
|
+
return state.data // T
|
|
902
|
+
case 'error':
|
|
903
|
+
return state.message // string
|
|
904
|
+
case 'loading':
|
|
905
|
+
return null
|
|
906
|
+
}
|
|
907
|
+
}
|
|
908
|
+
|
|
909
|
+
// Exhaustive check
|
|
910
|
+
function assertNever(value: never): never {
|
|
911
|
+
throw new Error(`Unexpected value: ${value}`)
|
|
912
|
+
}
|
|
913
|
+
```
|
|
914
|
+
|
|
915
|
+
## Branded Types
|
|
916
|
+
|
|
917
|
+
```typescript
|
|
918
|
+
// Create branded type
|
|
919
|
+
type Brand<K, T> = K & { __brand: T }
|
|
920
|
+
|
|
921
|
+
type UserId = Brand<string, 'UserId'>
|
|
922
|
+
type OrderId = Brand<string, 'OrderId'>
|
|
923
|
+
|
|
924
|
+
// Constructor functions
|
|
925
|
+
function createUserId(id: string): UserId {
|
|
926
|
+
return id as UserId
|
|
927
|
+
}
|
|
928
|
+
|
|
929
|
+
function createOrderId(id: string): OrderId {
|
|
930
|
+
return id as OrderId
|
|
931
|
+
}
|
|
932
|
+
|
|
933
|
+
// Usage - prevents mixing
|
|
934
|
+
function getOrder(orderId: OrderId, userId: UserId) {}
|
|
935
|
+
|
|
936
|
+
const userId = createUserId('user-123')
|
|
937
|
+
const orderId = createOrderId('order-456')
|
|
938
|
+
|
|
939
|
+
getOrder(orderId, userId) // ✅ OK
|
|
940
|
+
// getOrder(userId, orderId) // ❌ Error - types don't match
|
|
941
|
+
```
|
|
942
|
+
|
|
943
|
+
## Module Declarations
|
|
944
|
+
|
|
945
|
+
```typescript
|
|
946
|
+
// Declare module for untyped package
|
|
947
|
+
declare module 'untyped-package' {
|
|
948
|
+
export function doSomething(): void
|
|
949
|
+
export const value: string
|
|
950
|
+
}
|
|
951
|
+
|
|
952
|
+
// Augment existing module
|
|
953
|
+
declare module 'express' {
|
|
954
|
+
interface Request {
|
|
955
|
+
user?: { id: string }
|
|
956
|
+
}
|
|
957
|
+
}
|
|
958
|
+
|
|
959
|
+
// Declare global
|
|
960
|
+
declare global {
|
|
961
|
+
interface Window {
|
|
962
|
+
myGlobal: string
|
|
963
|
+
}
|
|
964
|
+
}
|
|
965
|
+
```
|
|
966
|
+
|
|
967
|
+
## TSConfig Essentials
|
|
968
|
+
|
|
969
|
+
```json
|
|
970
|
+
{
|
|
971
|
+
"compilerOptions": {
|
|
972
|
+
// Strictness
|
|
973
|
+
"strict": true,
|
|
974
|
+
"noUncheckedIndexedAccess": true,
|
|
975
|
+
"noImplicitOverride": true,
|
|
976
|
+
|
|
977
|
+
// Modules
|
|
978
|
+
"module": "ESNext",
|
|
979
|
+
"moduleResolution": "bundler",
|
|
980
|
+
"esModuleInterop": true,
|
|
981
|
+
|
|
982
|
+
// Output
|
|
983
|
+
"target": "ES2022",
|
|
984
|
+
"lib": ["ES2022", "DOM"],
|
|
985
|
+
|
|
986
|
+
// Performance
|
|
987
|
+
"skipLibCheck": true,
|
|
988
|
+
"incremental": true,
|
|
989
|
+
|
|
990
|
+
// Paths
|
|
991
|
+
"baseUrl": ".",
|
|
992
|
+
"paths": {
|
|
993
|
+
"@/*": ["./src/*"]
|
|
994
|
+
}
|
|
995
|
+
}
|
|
996
|
+
}
|
|
997
|
+
```
|
|
998
|
+
|
|
999
|
+
## Best Practices
|
|
1000
|
+
|
|
1001
|
+
```typescript
|
|
1002
|
+
// ✅ Prefer interface for objects
|
|
1003
|
+
interface User {
|
|
1004
|
+
name: string
|
|
1005
|
+
}
|
|
1006
|
+
|
|
1007
|
+
// ✅ Use const assertions
|
|
1008
|
+
const routes = ['home', 'about'] as const
|
|
1009
|
+
|
|
1010
|
+
// ✅ Use satisfies for validation
|
|
1011
|
+
const config = {
|
|
1012
|
+
api: 'https://api.example.com'
|
|
1013
|
+
} satisfies Record<string, string>
|
|
1014
|
+
|
|
1015
|
+
// ✅ Use unknown over any
|
|
1016
|
+
function parse(input: unknown) {
|
|
1017
|
+
if (typeof input === 'string') {
|
|
1018
|
+
return JSON.parse(input)
|
|
1019
|
+
}
|
|
1020
|
+
}
|
|
1021
|
+
|
|
1022
|
+
// ✅ Explicit return types for public APIs
|
|
1023
|
+
export function getUser(id: string): User | null {
|
|
1024
|
+
// ...
|
|
1025
|
+
}
|
|
1026
|
+
|
|
1027
|
+
// ❌ Avoid
|
|
1028
|
+
const data: any = fetchData()
|
|
1029
|
+
data.anything.goes.wrong // No type safety
|
|
1030
|
+
```
|
|
1031
|
+
|
|
1032
|
+
---
|
|
1033
|
+
|
|
1034
|
+
## 🔗 Related
|
|
1035
|
+
|
|
1036
|
+
| File | When to Read |
|
|
1037
|
+
|------|-------------|
|
|
1038
|
+
| [tsconfig-strict.json](tsconfig-strict.json) | Copy-paste strict config |
|
|
1039
|
+
| [utility-types.js](utility-types.js) | Runtime utility helpers |
|
|
1040
|
+
| [ts_diagnostic.ts](../scripts/ts_diagnostic.ts) | Project health scan |
|
|
1041
|
+
| [SKILL.md](../SKILL.md) | Error routing, patterns |
|
|
1042
|
+
|
|
1043
|
+
---
|
|
1044
|
+
|
|
1045
|
+
⚡ PikaKit v3.9.134
|