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,173 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: api-architect
|
|
3
|
+
description: >-
|
|
4
|
+
API design patterns for REST, GraphQL, and tRPC services.
|
|
5
|
+
Use when designing endpoints, versioning APIs, or choosing API architecture.
|
|
6
|
+
NOT for code implementation (use nodejs-pro/python-pro) or database schema (use data-modeler).
|
|
7
|
+
category: architecture
|
|
8
|
+
triggers: ["API design", "REST", "GraphQL", "tRPC", "endpoint", "versioning"]
|
|
9
|
+
coordinates_with: ["data-modeler", "security-scanner", "auth-patterns", "nodejs-pro"]
|
|
10
|
+
success_metrics: ["0 breaking API changes without explicit version bump", "100% compliant with OWASP API Top 10"]
|
|
11
|
+
metadata:
|
|
12
|
+
author: pikakit
|
|
13
|
+
version: "3.9.134"
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# API Architect
|
|
17
|
+
|
|
18
|
+
> Context-aware API design decisions. Learn to THINK about API style for THIS project, not default to REST.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Prerequisites
|
|
23
|
+
|
|
24
|
+
**Required:** None — API Architect is a knowledge-based skill with no external dependencies.
|
|
25
|
+
|
|
26
|
+
**Optional:**
|
|
27
|
+
- `scripts/api_validator.ts` — run `node scripts/api_validator.ts <project_path>` for endpoint validation
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## When to Use
|
|
32
|
+
|
|
33
|
+
| Situation | Reference |
|
|
34
|
+
|-----------|-----------|
|
|
35
|
+
| Choosing API style (REST/GraphQL/tRPC) | `rules/api-style.md` |
|
|
36
|
+
| Designing REST endpoints | `rules/rest.md` |
|
|
37
|
+
| Response format / error envelope | `rules/response.md` |
|
|
38
|
+
| GraphQL schema design | `rules/graphql.md` |
|
|
39
|
+
| tRPC for TypeScript fullstack | `rules/trpc.md` |
|
|
40
|
+
| API versioning strategy | `rules/versioning.md` |
|
|
41
|
+
| Auth pattern selection | `rules/auth.md` |
|
|
42
|
+
| Rate limiting strategy | `rules/rate-limiting.md` |
|
|
43
|
+
| OpenAPI documentation | `rules/documentation.md` |
|
|
44
|
+
| OWASP API security audit | `rules/security-testing.md` |
|
|
45
|
+
| Architecture review, contracts | `rules/engineering-spec.md` |
|
|
46
|
+
|
|
47
|
+
**Selective Reading Rule:** Read ONLY the file matching the current request. Do not read all files.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## System Boundaries
|
|
52
|
+
|
|
53
|
+
| Owned by This Skill | NOT Owned |
|
|
54
|
+
|---------------------|-----------|
|
|
55
|
+
| API style selection (REST/GraphQL/tRPC) | API implementation code (→ backend-specialist) |
|
|
56
|
+
| Response format and envelope design | Database schema (→ data-modeler) |
|
|
57
|
+
| Versioning strategy selection | Auth implementation (→ auth-patterns) |
|
|
58
|
+
| Rate limiting pattern selection | Security pen testing (→ security-scanner) |
|
|
59
|
+
| OWASP API Top 10 checklist | Infrastructure / deployment (→ server-ops) |
|
|
60
|
+
| OpenAPI documentation standards | Client-side consumption |
|
|
61
|
+
|
|
62
|
+
**Pure decision skill:** Produces design documents and specifications. Zero code generation, zero network calls.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Execution Model — 4-Phase Lifecycle
|
|
67
|
+
|
|
68
|
+
| Phase | Action | Output |
|
|
69
|
+
|-------|--------|--------|
|
|
70
|
+
| **Classify** | Validate request type and project context | Validated input or error |
|
|
71
|
+
| **Evaluate** | Traverse decision tree (project_type → consumers → complexity → scale) | Selected pattern |
|
|
72
|
+
| **Enrich** | Attach checklist, anti-patterns, related decisions | Complete decision |
|
|
73
|
+
| **Emit** | Return structured output with rationale | Decision with metadata |
|
|
74
|
+
|
|
75
|
+
All phases synchronous. Decision tree ordering is fixed and deterministic.
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## API Style Decision Tree
|
|
80
|
+
|
|
81
|
+
| Project Context | Recommended Style | Rationale |
|
|
82
|
+
|----------------|-------------------|-----------|
|
|
83
|
+
| TypeScript monorepo, internal consumers only | **tRPC** | End-to-end type safety, zero serialization overhead |
|
|
84
|
+
| Complex relational data, multiple consumer types | **GraphQL** | Client-specific queries, no over-fetching |
|
|
85
|
+
| Public API, third-party consumers | **REST** | Widest compatibility, cacheable, well-understood |
|
|
86
|
+
| Simple CRUD, single consumer | **REST** | Minimal complexity, HTTP semantics sufficient |
|
|
87
|
+
| Real-time data requirements | **GraphQL** (subscriptions) or **WebSocket** | Native subscription support |
|
|
88
|
+
|
|
89
|
+
**Constraint:** `existing_api` context field takes precedence — avoid mixing styles unless justified.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Error Taxonomy
|
|
94
|
+
|
|
95
|
+
| Code | Recoverable | Trigger |
|
|
96
|
+
|------|-------------|---------|
|
|
97
|
+
| `ERR_INVALID_REQUEST_TYPE` | No | Request type not one of the 8 supported types |
|
|
98
|
+
| `ERR_MISSING_CONTEXT` | Yes | Required context field is null or empty |
|
|
99
|
+
| `ERR_CONSTRAINT_CONFLICT` | Yes | Contradictory constraints in input |
|
|
100
|
+
| `ERR_INVALID_CONSUMER` | Yes | Consumer type not recognized |
|
|
101
|
+
| `ERR_REFERENCE_NOT_FOUND` | No | Rule file missing from rules/ directory |
|
|
102
|
+
| `ERR_VALIDATOR_FAILED` | Yes | api_validator.ts exited with non-zero code |
|
|
103
|
+
| `ERR_INVALID_SCALE` | No | Scale not one of: prototype, startup, growth, enterprise |
|
|
104
|
+
|
|
105
|
+
**Zero internal retries.** Deterministic output; same context = same decision.
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Decision Checklist
|
|
110
|
+
|
|
111
|
+
Before designing an API, confirm:
|
|
112
|
+
|
|
113
|
+
- [ ] **Consumers identified?** (web-spa, mobile, third-party, internal-service, cli)
|
|
114
|
+
- [ ] **API style chosen for THIS context?** (REST/GraphQL/tRPC — not defaulted)
|
|
115
|
+
- [ ] **Response envelope format defined?** (consistent across all endpoints)
|
|
116
|
+
- [ ] **Versioning strategy selected?** (URI/Header/Query — before first endpoint)
|
|
117
|
+
- [ ] **Auth pattern selected?** (JWT/OAuth/Passkey/API Key)
|
|
118
|
+
- [ ] **Rate limiting strategy defined?** (token bucket/sliding window)
|
|
119
|
+
- [ ] **OpenAPI documentation approach set?**
|
|
120
|
+
- [ ] **OWASP API Top 10 reviewed?**
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Anti-Patterns
|
|
125
|
+
|
|
126
|
+
| ❌ Don't | ✅ Do |
|
|
127
|
+
|---------|-------|
|
|
128
|
+
| Default to REST for every project | Choose API style based on project context |
|
|
129
|
+
| Use verbs in REST endpoints (`/getUsers`) | Use resource nouns (`/users`) with HTTP methods |
|
|
130
|
+
| Different response formats per endpoint | Define one envelope pattern, apply uniformly |
|
|
131
|
+
| Expose internal error details to clients | Map internal errors to safe client-facing codes |
|
|
132
|
+
| Skip rate limiting on public APIs | Define rate limits before deployment |
|
|
133
|
+
| Version after breaking changes occur | Define versioning strategy before first endpoint |
|
|
134
|
+
|
|
135
|
+
## 📑 Content Map
|
|
136
|
+
|
|
137
|
+
| File | Description | When to Read |
|
|
138
|
+
|------|-------------|--------------|
|
|
139
|
+
| [api-style.md](rules/api-style.md) | REST vs GraphQL vs tRPC decision tree | Choosing API type |
|
|
140
|
+
| [rest.md](rules/rest.md) | Resource naming, HTTP methods, status codes | REST API design |
|
|
141
|
+
| [response.md](rules/response.md) | Envelope pattern, error format, pagination | Response structure |
|
|
142
|
+
| [graphql.md](rules/graphql.md) | Schema design, security, when to use | GraphQL consideration |
|
|
143
|
+
| [trpc.md](rules/trpc.md) | TypeScript monorepo, type safety | TS fullstack projects |
|
|
144
|
+
| [versioning.md](rules/versioning.md) | URI/Header/Query versioning strategies | API evolution |
|
|
145
|
+
| [auth.md](rules/auth.md) | JWT, OAuth, Passkey, API Keys | Auth selection |
|
|
146
|
+
| [rate-limiting.md](rules/rate-limiting.md) | Token bucket, sliding window | API protection |
|
|
147
|
+
| [documentation.md](rules/documentation.md) | OpenAPI/Swagger standards | API documentation |
|
|
148
|
+
| [security-testing.md](rules/security-testing.md) | OWASP API Top 10, auth/authz testing | Security audits |
|
|
149
|
+
| [engineering-spec.md](rules/engineering-spec.md) | Full engineering spec: contracts, security, scalability | Architecture review |
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## Script
|
|
154
|
+
|
|
155
|
+
| Script | Purpose | Command |
|
|
156
|
+
|--------|---------|---------|
|
|
157
|
+
| `scripts/api_validator.ts` | API endpoint validation | `node scripts/api_validator.ts <project_path>` |
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## 🔗 Related
|
|
162
|
+
|
|
163
|
+
| Item | Type | Purpose |
|
|
164
|
+
|------|------|---------|
|
|
165
|
+
| `data-modeler` | Skill | Database schema design for API data |
|
|
166
|
+
| `security-scanner` | Skill | Security vulnerability scanning |
|
|
167
|
+
| `auth-patterns` | Skill | Authentication implementation patterns |
|
|
168
|
+
| `nodejs-pro` | Skill | Node.js API implementation |
|
|
169
|
+
| `/api` | Workflow | Full API build workflow |
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
⚡ PikaKit v3.9.134
|
|
@@ -0,0 +1,35 @@
|
|
|
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. General (general)
|
|
9
|
+
|
|
10
|
+
**Impact:** HIGH
|
|
11
|
+
**Description:** General patterns and best practices.
|
|
12
|
+
|
|
13
|
+
## 2. API Design (api)
|
|
14
|
+
|
|
15
|
+
**Impact:** HIGH
|
|
16
|
+
**Description:** RESTful, GraphQL, and tRPC API design patterns and best practices.
|
|
17
|
+
|
|
18
|
+
## 3. Engineering Specification (engineering)
|
|
19
|
+
|
|
20
|
+
**Impact:** MEDIUM
|
|
21
|
+
**Description:** Full engineering specification covering contracts, security, and scalability.
|
|
22
|
+
|
|
23
|
+
## 4. Rate (rate)
|
|
24
|
+
|
|
25
|
+
**Impact:** LOW
|
|
26
|
+
**Description:** Rate patterns and best practices.
|
|
27
|
+
|
|
28
|
+
## 5. Security Patterns (security)
|
|
29
|
+
|
|
30
|
+
**Impact:** CRITICAL
|
|
31
|
+
**Description:** Security-first patterns to prevent vulnerabilities and protect user data.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
⚡ PikaKit v3.9.134
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Rule Title Here
|
|
3
|
+
impact: MEDIUM
|
|
4
|
+
impactDescription: Optional description of impact (e.g., "20-50% improvement")
|
|
5
|
+
tags: tag1, tag2
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Rule Title Here
|
|
9
|
+
|
|
10
|
+
**Impact: MEDIUM (optional impact description)**
|
|
11
|
+
|
|
12
|
+
Brief explanation of the rule and why it matters. This should be clear and concise, explaining the performance implications.
|
|
13
|
+
|
|
14
|
+
**Incorrect (description of what's wrong):**
|
|
15
|
+
|
|
16
|
+
```typescript
|
|
17
|
+
// Bad code example here
|
|
18
|
+
const bad = example()
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**Correct (description of what's right):**
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
// Good code example here
|
|
25
|
+
const good = example()
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Reference: [Link to documentation or resource](https://example.com)
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
⚡ PikaKit v3.9.134
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: api-style
|
|
3
|
+
description: REST vs GraphQL vs tRPC decision tree with code comparisons
|
|
4
|
+
title: "API Style Selection"
|
|
5
|
+
impact: HIGH
|
|
6
|
+
impactDescription: "Important architectural or correctness impact"
|
|
7
|
+
tags: api, style
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# API Style Selection
|
|
11
|
+
|
|
12
|
+
> Choose API style for THIS project's context — don't default to REST.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Decision Tree
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
Who are the API consumers?
|
|
20
|
+
│
|
|
21
|
+
├── Public API / Multiple platforms
|
|
22
|
+
│ └── REST + OpenAPI (widest compatibility)
|
|
23
|
+
│
|
|
24
|
+
├── Complex data needs / Multiple frontends
|
|
25
|
+
│ └── GraphQL (flexible queries)
|
|
26
|
+
│
|
|
27
|
+
├── TypeScript frontend + backend (monorepo)
|
|
28
|
+
│ └── tRPC (end-to-end type safety)
|
|
29
|
+
│
|
|
30
|
+
├── Real-time / Event-driven
|
|
31
|
+
│ └── WebSocket + AsyncAPI
|
|
32
|
+
│
|
|
33
|
+
└── Internal microservices
|
|
34
|
+
└── gRPC (performance) or REST (simplicity)
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Comparison
|
|
38
|
+
|
|
39
|
+
| Factor | REST | GraphQL | tRPC |
|
|
40
|
+
|--------|------|---------|------|
|
|
41
|
+
| **Best for** | Public APIs | Complex apps | TS monorepos |
|
|
42
|
+
| **Learning curve** | Low | Medium | Low (if TS) |
|
|
43
|
+
| **Over/under fetching** | Common | Solved | Solved |
|
|
44
|
+
| **Type safety** | Manual (OpenAPI) | Schema-based | Automatic |
|
|
45
|
+
| **Caching** | HTTP native | Complex | Client-based |
|
|
46
|
+
| **File uploads** | Native | Complex | Needs adapter |
|
|
47
|
+
| **Versioning** | URI/Header | Schema evolution | Type inference |
|
|
48
|
+
| **Tooling maturity** | Excellent | Good | Growing |
|
|
49
|
+
|
|
50
|
+
## Code Comparison — Same Endpoint
|
|
51
|
+
|
|
52
|
+
### REST
|
|
53
|
+
|
|
54
|
+
```typescript
|
|
55
|
+
// GET /api/users/123
|
|
56
|
+
app.get('/api/users/:id', async (req, res) => {
|
|
57
|
+
const user = await db.user.findUnique({ where: { id: req.params.id } });
|
|
58
|
+
res.json({ data: user });
|
|
59
|
+
});
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### GraphQL
|
|
63
|
+
|
|
64
|
+
```typescript
|
|
65
|
+
// query { user(id: "123") { name email } }
|
|
66
|
+
const resolvers = {
|
|
67
|
+
Query: {
|
|
68
|
+
user: (_: unknown, { id }: { id: string }) =>
|
|
69
|
+
db.user.findUnique({ where: { id } }),
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### tRPC
|
|
75
|
+
|
|
76
|
+
```typescript
|
|
77
|
+
// client.user.getById.query("123")
|
|
78
|
+
export const userRouter = router({
|
|
79
|
+
getById: publicProcedure
|
|
80
|
+
.input(z.string())
|
|
81
|
+
.query(({ input }) => db.user.findUnique({ where: { id: input } })),
|
|
82
|
+
});
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Anti-Patterns
|
|
86
|
+
|
|
87
|
+
| ❌ Don't | ✅ Do |
|
|
88
|
+
|---------|-------|
|
|
89
|
+
| Default to REST for every project | Evaluate consumers + context first |
|
|
90
|
+
| Mix API styles without justification | Pick one, document reasoning |
|
|
91
|
+
| Choose GraphQL for simple CRUD | Use REST or tRPC for simple cases |
|
|
92
|
+
| Use tRPC for public APIs | Use REST + OpenAPI for public APIs |
|
|
93
|
+
|
|
94
|
+
## Selection Questions
|
|
95
|
+
|
|
96
|
+
1. Who are the API consumers? (web, mobile, third-party, internal)
|
|
97
|
+
2. Is the frontend TypeScript?
|
|
98
|
+
3. How complex are the data relationships?
|
|
99
|
+
4. Is HTTP caching critical?
|
|
100
|
+
5. Public or internal API?
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## 🔗 Related
|
|
105
|
+
|
|
106
|
+
| File | When to Read |
|
|
107
|
+
|------|-------------|
|
|
108
|
+
| [rest.md](rest.md) | REST endpoint design |
|
|
109
|
+
| [graphql.md](graphql.md) | GraphQL schema design |
|
|
110
|
+
| [trpc.md](trpc.md) | tRPC for TS monorepos |
|
|
111
|
+
| [SKILL.md](../SKILL.md) | Full decision framework |
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
⚡ PikaKit v3.9.134
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: auth
|
|
3
|
+
description: API authentication patterns — JWT, OAuth2 PKCE, API Keys, Passkeys, token refresh
|
|
4
|
+
title: "Authentication Patterns"
|
|
5
|
+
impact: MEDIUM
|
|
6
|
+
impactDescription: "Moderate improvement to quality or maintainability"
|
|
7
|
+
tags: auth
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Authentication Patterns
|
|
11
|
+
|
|
12
|
+
> Choose auth pattern based on consumers and security requirements.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Selection Guide
|
|
17
|
+
|
|
18
|
+
| Pattern | Best For | Security Level |
|
|
19
|
+
|---------|----------|:--------------:|
|
|
20
|
+
| **JWT** | Stateless APIs, microservices | Medium |
|
|
21
|
+
| **Session** | Traditional web, server-rendered | High |
|
|
22
|
+
| **OAuth 2.0 PKCE** | Third-party login, SPA/mobile | High |
|
|
23
|
+
| **API Keys** | Server-to-server, public APIs | Low-Medium |
|
|
24
|
+
| **Passkey** | Modern passwordless (2025+) | Very High |
|
|
25
|
+
|
|
26
|
+
## JWT Pattern
|
|
27
|
+
|
|
28
|
+
```typescript
|
|
29
|
+
import jwt from 'jsonwebtoken';
|
|
30
|
+
|
|
31
|
+
// Sign — keep payload minimal
|
|
32
|
+
function signTokens(userId: string) {
|
|
33
|
+
const accessToken = jwt.sign(
|
|
34
|
+
{ sub: userId, type: 'access' },
|
|
35
|
+
process.env.JWT_SECRET!,
|
|
36
|
+
{ expiresIn: '15m' } // Short-lived
|
|
37
|
+
);
|
|
38
|
+
|
|
39
|
+
const refreshToken = jwt.sign(
|
|
40
|
+
{ sub: userId, type: 'refresh' },
|
|
41
|
+
process.env.JWT_REFRESH_SECRET!,
|
|
42
|
+
{ expiresIn: '7d' }
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
return { accessToken, refreshToken };
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// Verify middleware
|
|
49
|
+
function authMiddleware(req: Request, res: Response, next: NextFunction) {
|
|
50
|
+
const token = req.headers.authorization?.replace('Bearer ', '');
|
|
51
|
+
if (!token) return res.status(401).json({ error: 'Missing token' });
|
|
52
|
+
|
|
53
|
+
try {
|
|
54
|
+
const payload = jwt.verify(token, process.env.JWT_SECRET!);
|
|
55
|
+
req.user = payload as JwtPayload;
|
|
56
|
+
next();
|
|
57
|
+
} catch {
|
|
58
|
+
res.status(401).json({ error: 'Invalid or expired token' });
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Token Refresh Flow
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
Client Server
|
|
67
|
+
│ │
|
|
68
|
+
├── Request + Access Token ──→ │
|
|
69
|
+
│ ├── Verify token
|
|
70
|
+
│ ←── 401 Token Expired ──────┤
|
|
71
|
+
│ │
|
|
72
|
+
├── POST /auth/refresh ──────→ │
|
|
73
|
+
│ { refreshToken } ├── Verify refresh token
|
|
74
|
+
│ ├── Issue new access + refresh
|
|
75
|
+
│ ←── { accessToken, │
|
|
76
|
+
│ refreshToken } ───────┤
|
|
77
|
+
│ │
|
|
78
|
+
├── Retry original request ──→ │
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## OAuth 2.0 PKCE (for SPAs/Mobile)
|
|
82
|
+
|
|
83
|
+
```typescript
|
|
84
|
+
// 1. Generate PKCE challenge
|
|
85
|
+
const codeVerifier = crypto.randomBytes(32).toString('base64url');
|
|
86
|
+
const codeChallenge = crypto
|
|
87
|
+
.createHash('sha256')
|
|
88
|
+
.update(codeVerifier)
|
|
89
|
+
.digest('base64url');
|
|
90
|
+
|
|
91
|
+
// 2. Redirect to provider
|
|
92
|
+
const authUrl = `https://provider.com/authorize?` +
|
|
93
|
+
`client_id=${CLIENT_ID}&` +
|
|
94
|
+
`code_challenge=${codeChallenge}&` +
|
|
95
|
+
`code_challenge_method=S256&` +
|
|
96
|
+
`redirect_uri=${REDIRECT_URI}&` +
|
|
97
|
+
`response_type=code&scope=openid+email`;
|
|
98
|
+
|
|
99
|
+
// 3. Exchange code for tokens (server-side)
|
|
100
|
+
const tokens = await fetch('https://provider.com/token', {
|
|
101
|
+
method: 'POST',
|
|
102
|
+
body: new URLSearchParams({
|
|
103
|
+
grant_type: 'authorization_code',
|
|
104
|
+
code: authorizationCode,
|
|
105
|
+
code_verifier: codeVerifier,
|
|
106
|
+
client_id: CLIENT_ID,
|
|
107
|
+
redirect_uri: REDIRECT_URI,
|
|
108
|
+
}),
|
|
109
|
+
});
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## Anti-Patterns
|
|
113
|
+
|
|
114
|
+
| ❌ Don't | ✅ Do |
|
|
115
|
+
|---------|-------|
|
|
116
|
+
| Store sensitive data in JWT payload | Include only `sub`, `type`, `exp` |
|
|
117
|
+
| Use long-lived access tokens (>1h) | Short access (15m) + refresh (7d) |
|
|
118
|
+
| Send tokens in URL query params | Use `Authorization: Bearer` header |
|
|
119
|
+
| Use OAuth implicit flow | Use PKCE for SPAs and mobile |
|
|
120
|
+
| Skip token revocation | Maintain a revocation list for refresh tokens |
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## 🔗 Related
|
|
125
|
+
|
|
126
|
+
| File | When to Read |
|
|
127
|
+
|------|-------------|
|
|
128
|
+
| [security-testing.md](security-testing.md) | Auth testing patterns |
|
|
129
|
+
| [rate-limiting.md](rate-limiting.md) | Rate limit auth endpoints |
|
|
130
|
+
| [SKILL.md](../SKILL.md) | Full decision framework |
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
⚡ PikaKit v3.9.134
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: documentation
|
|
3
|
+
description: OpenAPI 3.1 specs, Swagger UI setup, API documentation best practices
|
|
4
|
+
title: "API Documentation Principles"
|
|
5
|
+
impact: MEDIUM
|
|
6
|
+
impactDescription: "Moderate improvement to quality or maintainability"
|
|
7
|
+
tags: documentation
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# API Documentation Principles
|
|
11
|
+
|
|
12
|
+
> Good docs = happy developers = API adoption.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## OpenAPI 3.1 Example
|
|
17
|
+
|
|
18
|
+
```yaml
|
|
19
|
+
openapi: 3.1.0
|
|
20
|
+
info:
|
|
21
|
+
title: Users API
|
|
22
|
+
version: 1.0.0
|
|
23
|
+
description: User management endpoints
|
|
24
|
+
|
|
25
|
+
paths:
|
|
26
|
+
/users:
|
|
27
|
+
get:
|
|
28
|
+
summary: List users
|
|
29
|
+
operationId: listUsers
|
|
30
|
+
parameters:
|
|
31
|
+
- name: page
|
|
32
|
+
in: query
|
|
33
|
+
schema: { type: integer, default: 1 }
|
|
34
|
+
- name: limit
|
|
35
|
+
in: query
|
|
36
|
+
schema: { type: integer, default: 20, maximum: 100 }
|
|
37
|
+
responses:
|
|
38
|
+
'200':
|
|
39
|
+
description: Paginated user list
|
|
40
|
+
content:
|
|
41
|
+
application/json:
|
|
42
|
+
schema:
|
|
43
|
+
$ref: '#/components/schemas/UserListResponse'
|
|
44
|
+
|
|
45
|
+
post:
|
|
46
|
+
summary: Create user
|
|
47
|
+
operationId: createUser
|
|
48
|
+
requestBody:
|
|
49
|
+
required: true
|
|
50
|
+
content:
|
|
51
|
+
application/json:
|
|
52
|
+
schema:
|
|
53
|
+
$ref: '#/components/schemas/CreateUserInput'
|
|
54
|
+
responses:
|
|
55
|
+
'201':
|
|
56
|
+
description: User created
|
|
57
|
+
'422':
|
|
58
|
+
description: Validation error
|
|
59
|
+
content:
|
|
60
|
+
application/json:
|
|
61
|
+
schema:
|
|
62
|
+
$ref: '#/components/schemas/ErrorResponse'
|
|
63
|
+
|
|
64
|
+
components:
|
|
65
|
+
schemas:
|
|
66
|
+
User:
|
|
67
|
+
type: object
|
|
68
|
+
properties:
|
|
69
|
+
id: { type: string, format: uuid }
|
|
70
|
+
name: { type: string }
|
|
71
|
+
email: { type: string, format: email }
|
|
72
|
+
required: [id, name, email]
|
|
73
|
+
|
|
74
|
+
ErrorResponse:
|
|
75
|
+
type: object
|
|
76
|
+
properties:
|
|
77
|
+
success: { type: boolean, enum: [false] }
|
|
78
|
+
error:
|
|
79
|
+
type: object
|
|
80
|
+
properties:
|
|
81
|
+
code: { type: string }
|
|
82
|
+
message: { type: string }
|
|
83
|
+
requestId: { type: string }
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Swagger UI Setup (Express)
|
|
87
|
+
|
|
88
|
+
```typescript
|
|
89
|
+
import swaggerUi from 'swagger-ui-express';
|
|
90
|
+
import spec from './openapi.json';
|
|
91
|
+
|
|
92
|
+
app.use('/docs', swaggerUi.serve, swaggerUi.setup(spec, {
|
|
93
|
+
customCss: '.swagger-ui .topbar { display: none }',
|
|
94
|
+
customSiteTitle: 'API Documentation',
|
|
95
|
+
}));
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Good Documentation Includes
|
|
99
|
+
|
|
100
|
+
| Section | Purpose |
|
|
101
|
+
|---------|---------|
|
|
102
|
+
| **Quick Start** | Get running in 5 minutes |
|
|
103
|
+
| **Authentication** | How to get and use tokens |
|
|
104
|
+
| **API Reference** | Every endpoint with examples |
|
|
105
|
+
| **Error Handling** | Error codes and recovery |
|
|
106
|
+
| **Rate Limits** | Limits and headers |
|
|
107
|
+
| **Changelog** | Breaking changes and deprecations |
|
|
108
|
+
| **Code Examples** | Multiple languages (curl, JS, Python) |
|
|
109
|
+
|
|
110
|
+
## Anti-Patterns
|
|
111
|
+
|
|
112
|
+
| ❌ Don't | ✅ Do |
|
|
113
|
+
|---------|-------|
|
|
114
|
+
| Write docs after shipping | Generate from OpenAPI spec |
|
|
115
|
+
| Skip request/response examples | Include full JSON examples |
|
|
116
|
+
| Documentation-only errors | Use consistent error schema |
|
|
117
|
+
| Outdated examples | Auto-generate from tests |
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## 🔗 Related
|
|
122
|
+
|
|
123
|
+
| File | When to Read |
|
|
124
|
+
|------|-------------|
|
|
125
|
+
| [response.md](response.md) | Response format for docs |
|
|
126
|
+
| [versioning.md](versioning.md) | Documenting API versions |
|
|
127
|
+
| [SKILL.md](../SKILL.md) | Full decision framework |
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
⚡ PikaKit v3.9.134
|