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,505 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: API Architect — Engineering Specification
|
|
3
|
+
impact: MEDIUM
|
|
4
|
+
tags: api-architect
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# API Architect — Engineering Specification
|
|
8
|
+
|
|
9
|
+
> Production-grade specification for API design decision-making and pattern selection at FAANG scale.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 1. Overview
|
|
14
|
+
|
|
15
|
+
API Architect provides structured decision frameworks for API design: style selection (REST vs GraphQL vs tRPC), response formats, versioning strategies, authentication patterns, rate limiting, and documentation standards. The skill operates as an expert knowledge base that produces architectural decisions and API specifications, not runtime code.
|
|
16
|
+
|
|
17
|
+
The skill codifies API design into deterministic decision trees backed by 10 reference documents covering style selection, REST patterns, GraphQL, tRPC, response formats, versioning, auth, rate limiting, documentation, and security testing.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 2. Problem Statement
|
|
22
|
+
|
|
23
|
+
API design at scale faces four quantified problems:
|
|
24
|
+
|
|
25
|
+
| Problem | Measurement | Impact |
|
|
26
|
+
|---------|-------------|--------|
|
|
27
|
+
| Wrong API style selection | REST chosen for 100% of projects regardless of context | Unnecessary complexity for internal TS monorepos; insufficient for complex data graphs |
|
|
28
|
+
| Inconsistent response formats | Different envelope patterns across endpoints within same API | Client-side parsing failures, increased integration cost |
|
|
29
|
+
| No versioning strategy | Breaking changes deployed without versioning | Client breakage, forced upgrades, SLA violations |
|
|
30
|
+
| Security gaps in API design | OWASP API Top 10 violations in 60%+ of first-design APIs | Vulnerability exposure, compliance failures |
|
|
31
|
+
|
|
32
|
+
API Architect eliminates these by providing context-aware decision trees that produce documented, justified API design choices.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 3. Design Goals
|
|
37
|
+
|
|
38
|
+
| ID | Goal | Measurable Constraint |
|
|
39
|
+
|----|------|-----------------------|
|
|
40
|
+
| G1 | Context-aware style selection | Decision tree produces one of REST/GraphQL/tRPC based on ≤ 5 input criteria |
|
|
41
|
+
| G2 | Consistent response format | Single envelope pattern per API; format documented before first endpoint |
|
|
42
|
+
| G3 | Versioning from day one | Versioning strategy defined and documented before API implementation begins |
|
|
43
|
+
| G4 | Security-first design | OWASP API Top 10 checklist completed before API goes to production |
|
|
44
|
+
| G5 | Decision traceability | Every design choice includes rationale that references project context |
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## 4. Non-Goals
|
|
49
|
+
|
|
50
|
+
| ID | Excluded | Rationale |
|
|
51
|
+
|----|----------|-----------|
|
|
52
|
+
| NG1 | API implementation / code generation | This skill produces design decisions, not code; implementation is `backend-specialist` territory |
|
|
53
|
+
| NG2 | Runtime API validation | Owned by `scripts/api_validator.ts`; SKILL.md defines design-time patterns |
|
|
54
|
+
| NG3 | Database schema design | Owned by `data-modeler` skill |
|
|
55
|
+
| NG4 | Authentication implementation | Owned by `auth-patterns` skill; this skill selects auth strategy |
|
|
56
|
+
| NG5 | Infrastructure / deployment | Owned by `server-ops` and `cicd-pipeline` skills |
|
|
57
|
+
| NG6 | Client-side API consumption | Out of scope; this skill designs the API surface, not its consumers |
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## 5. System Boundaries
|
|
62
|
+
|
|
63
|
+
| Boundary | Owned | Not Owned |
|
|
64
|
+
|----------|-------|-----------|
|
|
65
|
+
| API style selection | REST/GraphQL/tRPC decision tree | Implementation framework selection |
|
|
66
|
+
| Response format design | Envelope pattern, error format, pagination | Serialization libraries |
|
|
67
|
+
| Versioning strategy | URI/Header/Query versioning decision | Version deployment mechanics |
|
|
68
|
+
| Auth pattern selection | JWT/OAuth/Passkey/API Key decision | Auth implementation (→ auth-patterns) |
|
|
69
|
+
| Rate limiting strategy | Token bucket/sliding window selection | Rate limiter implementation |
|
|
70
|
+
| API documentation | OpenAPI/Swagger structure standards | Doc hosting/rendering |
|
|
71
|
+
| Security design | OWASP API Top 10 checklist | Penetration testing execution (→ security-scanner) |
|
|
72
|
+
|
|
73
|
+
**Side-effect boundary:** API Architect produces design documents, decision records, and API specifications. It does not create API endpoints, modify server configurations, or make network requests.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## 6. Integration Model
|
|
78
|
+
|
|
79
|
+
### 6.1 Agent Contract
|
|
80
|
+
|
|
81
|
+
#### Input Schema
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
Request_Type: string # One of: "style-selection" | "endpoint-design" | "response-format" |
|
|
85
|
+
# "versioning" | "auth-selection" | "rate-limiting" |
|
|
86
|
+
# "documentation" | "security-audit" | "full-design"
|
|
87
|
+
Context: {
|
|
88
|
+
project_type: string # "monorepo-ts" | "microservice" | "public-api" | "internal-api" | "bff"
|
|
89
|
+
consumers: Array<string> # ["web-spa", "mobile", "third-party", "internal-service", "cli"]
|
|
90
|
+
data_complexity: string # "simple-crud" | "relational" | "graph" | "real-time"
|
|
91
|
+
team_expertise: string # "typescript-fullstack" | "polyglot" | "backend-only"
|
|
92
|
+
scale: string # "prototype" | "startup" | "growth" | "enterprise"
|
|
93
|
+
existing_api: string | null # Existing API style if evolving, null if greenfield
|
|
94
|
+
constraints: Array<string> | null # ["no-graphql", "must-version", "public-facing"]
|
|
95
|
+
}
|
|
96
|
+
contract_version: string # "2.0.0"
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
#### Output Schema
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
Status: "success" | "error"
|
|
103
|
+
Data: {
|
|
104
|
+
decision: string # The selected pattern/approach
|
|
105
|
+
rationale: string # Context-specific justification (references input criteria)
|
|
106
|
+
reference_file: string # Path to the detailed reference document
|
|
107
|
+
checklist: Array<string> # Action items before implementation
|
|
108
|
+
anti_patterns: Array<string> # Context-specific things to avoid
|
|
109
|
+
related_decisions: Array<{topic: string, reference: string}> # Adjacent decisions to make
|
|
110
|
+
metadata: {
|
|
111
|
+
request_type: string
|
|
112
|
+
context_hash: string # Hash of input context for reproducibility
|
|
113
|
+
version: string # Skill version
|
|
114
|
+
contract_version: string # "2.0.0"
|
|
115
|
+
backward_compatibility: string # "breaking"
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
Error: ErrorSchema | null
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
**Contract Version:** 2.0.0
|
|
122
|
+
**Backward Compatibility:** breaking (first hardened version)
|
|
123
|
+
**Breaking Changes:** None — new spec for first hardening
|
|
124
|
+
|
|
125
|
+
#### Error Schema
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
Code: string # From Error Taxonomy (Section 11)
|
|
129
|
+
Message: string # Human-readable, single line
|
|
130
|
+
Request_Type: string
|
|
131
|
+
Recoverable: boolean
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
#### Deterministic Guarantees
|
|
135
|
+
|
|
136
|
+
- Same `Request_Type` + `Context` = identical `decision` + `rationale` output.
|
|
137
|
+
- Decision trees follow fixed evaluation order (project_type → consumers → data_complexity → team_expertise → scale).
|
|
138
|
+
- Reference file selection is deterministic based on request_type.
|
|
139
|
+
- No randomization, no A/B selection, no heuristic weighting.
|
|
140
|
+
|
|
141
|
+
#### What Agents May Assume
|
|
142
|
+
|
|
143
|
+
- Output `decision` is valid for the given `Context` and follows industry standards.
|
|
144
|
+
- `reference_file` points to a file that exists in the skill's `rules/` directory.
|
|
145
|
+
- `checklist` items are actionable and ordered by priority.
|
|
146
|
+
- The skill is stateless; no prior invocation affects current output.
|
|
147
|
+
|
|
148
|
+
#### What Agents Must NOT Assume
|
|
149
|
+
|
|
150
|
+
- The decision is the only valid choice (multiple valid API styles may exist for a given context).
|
|
151
|
+
- The decision accounts for undisclosed constraints (only explicit `Context` inputs affect output).
|
|
152
|
+
- Implementation details are included (the skill produces design decisions, not code).
|
|
153
|
+
- Security audit output replaces a full security review (it covers OWASP API Top 10, not exhaustive pen testing).
|
|
154
|
+
|
|
155
|
+
#### Side-Effect Boundaries
|
|
156
|
+
|
|
157
|
+
| Operation | Side Effects |
|
|
158
|
+
|-----------|-------------|
|
|
159
|
+
| Style selection | None; pure decision output |
|
|
160
|
+
| Endpoint design | None; specification output |
|
|
161
|
+
| Security audit | None; checklist output |
|
|
162
|
+
| Validator script | Read-only filesystem scan; no modifications |
|
|
163
|
+
|
|
164
|
+
### 6.2 Workflow Contract
|
|
165
|
+
|
|
166
|
+
#### Invocation Pattern
|
|
167
|
+
|
|
168
|
+
```
|
|
169
|
+
1. Define project context (type, consumers, complexity, scale)
|
|
170
|
+
2. Select request type (style-selection → response-format → versioning → auth → documentation)
|
|
171
|
+
3. Receive decision with rationale and checklist
|
|
172
|
+
4. Review and apply decision (caller's responsibility)
|
|
173
|
+
5. Run api_validator.ts for implementation validation (optional)
|
|
174
|
+
6. Repeat for adjacent decisions referenced in related_decisions
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
**Recommended ordering:** style-selection → endpoint-design → response-format → versioning → auth-selection → rate-limiting → documentation → security-audit.
|
|
178
|
+
|
|
179
|
+
#### Execution Guarantees
|
|
180
|
+
|
|
181
|
+
- Each invocation produces a complete, self-contained decision.
|
|
182
|
+
- No background processes, no deferred execution.
|
|
183
|
+
- Output includes all necessary context for the caller to act without re-invoking.
|
|
184
|
+
|
|
185
|
+
#### Failure Propagation Model
|
|
186
|
+
|
|
187
|
+
| Failure Severity | Propagation | Workflow Action |
|
|
188
|
+
|-----------------|-------------|-----------------|
|
|
189
|
+
| Invalid request type | Return error to caller | Use supported request type |
|
|
190
|
+
| Missing context field | Return error to caller | Supply missing context |
|
|
191
|
+
| Conflicting constraints | Return error to caller | Resolve constraint conflict |
|
|
192
|
+
| Reference file missing | Return error to caller | Verify skill installation |
|
|
193
|
+
|
|
194
|
+
Failures are isolated to the current invocation. No state carries between invocations.
|
|
195
|
+
|
|
196
|
+
#### Retry Boundaries
|
|
197
|
+
|
|
198
|
+
- Zero internal retries. Deterministic output makes retrying identical inputs meaningless.
|
|
199
|
+
- Callers should modify `Context` between invocations to explore alternative decisions.
|
|
200
|
+
|
|
201
|
+
#### Isolation Model
|
|
202
|
+
|
|
203
|
+
- Each invocation is stateless and independent.
|
|
204
|
+
- No shared state between invocations, sessions, or agents.
|
|
205
|
+
- Reference files in `rules/` are read-only resources.
|
|
206
|
+
|
|
207
|
+
#### Idempotency Expectations
|
|
208
|
+
|
|
209
|
+
| Operation | Idempotent | Notes |
|
|
210
|
+
|-----------|-----------|-------|
|
|
211
|
+
| Decision generation | Yes | Same context = same decision |
|
|
212
|
+
| Reference lookup | Yes | Read-only, no mutation |
|
|
213
|
+
| Validator script | Yes | Read-only filesystem scan |
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## 7. Execution Model
|
|
218
|
+
|
|
219
|
+
### 4-Phase Lifecycle
|
|
220
|
+
|
|
221
|
+
| Phase | Action | Output |
|
|
222
|
+
|-------|--------|--------|
|
|
223
|
+
| **Classify** | Validate request type and context | Validated input or error |
|
|
224
|
+
| **Evaluate** | Traverse decision tree for request type | Selected pattern with rationale |
|
|
225
|
+
| **Enrich** | Attach checklist, anti-patterns, related decisions | Complete decision package |
|
|
226
|
+
| **Emit** | Return structured output with metadata | Complete output schema |
|
|
227
|
+
|
|
228
|
+
All phases execute synchronously in a single invocation. No async pipeline.
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## 8. Deterministic Design Principles
|
|
233
|
+
|
|
234
|
+
| Principle | Enforcement |
|
|
235
|
+
|-----------|-------------|
|
|
236
|
+
| Fixed decision tree ordering | project_type → consumers → data_complexity → team_expertise → scale |
|
|
237
|
+
| No external calls | Decisions use only local reference files and input context |
|
|
238
|
+
| No ambient state | Each invocation operates solely on explicit inputs |
|
|
239
|
+
| No randomization | Decision trees are deterministic if-then-else chains |
|
|
240
|
+
| Reproducible output | Input context hash echoed in output for audit trail |
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## 9. State & Idempotency Model
|
|
245
|
+
|
|
246
|
+
### State Machine
|
|
247
|
+
|
|
248
|
+
```
|
|
249
|
+
States: IDLE (single state — skill is stateless)
|
|
250
|
+
Transitions: None — each invocation is independent
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
API Architect maintains zero persistent state. Every invocation starts from a clean state. Invoking N times with identical inputs produces N identical outputs.
|
|
254
|
+
|
|
255
|
+
### Decision Versioning
|
|
256
|
+
|
|
257
|
+
- Decision trees are versioned via `metadata.version` in SKILL.md frontmatter.
|
|
258
|
+
- Reference file changes that alter decision outcomes require a version bump.
|
|
259
|
+
- Callers can reference specific versions for decision auditability.
|
|
260
|
+
|
|
261
|
+
---
|
|
262
|
+
|
|
263
|
+
## 10. Failure Handling Strategy
|
|
264
|
+
|
|
265
|
+
| Failure Class | Behavior | Caller Recovery |
|
|
266
|
+
|---------------|----------|-----------------|
|
|
267
|
+
| Unknown request type | Return `ERR_INVALID_REQUEST_TYPE` | Use supported request type |
|
|
268
|
+
| Missing context field | Return `ERR_MISSING_CONTEXT` with field name | Supply missing field |
|
|
269
|
+
| Conflicting constraints | Return `ERR_CONSTRAINT_CONFLICT` with conflicting items | Resolve conflict |
|
|
270
|
+
| Invalid consumer type | Return `ERR_INVALID_CONSUMER` | Use supported consumer type |
|
|
271
|
+
| Reference file missing | Return `ERR_REFERENCE_NOT_FOUND` | Verify skill installation |
|
|
272
|
+
| Validator script failure | Return `ERR_VALIDATOR_FAILED` with exit code | Check project path |
|
|
273
|
+
|
|
274
|
+
**Invariant:** Every failure returns a structured error. No invocation fails silently or returns partial decisions.
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
## 11. Error Taxonomy
|
|
279
|
+
|
|
280
|
+
| Code | Category | Recoverable | Description |
|
|
281
|
+
|------|----------|-------------|-------------|
|
|
282
|
+
| `ERR_INVALID_REQUEST_TYPE` | Validation | No | Request type not one of the 8 supported types |
|
|
283
|
+
| `ERR_MISSING_CONTEXT` | Validation | Yes | Required context field is null or empty |
|
|
284
|
+
| `ERR_CONSTRAINT_CONFLICT` | Validation | Yes | Two constraints contradict each other |
|
|
285
|
+
| `ERR_INVALID_CONSUMER` | Validation | Yes | Consumer type not recognized |
|
|
286
|
+
| `ERR_REFERENCE_NOT_FOUND` | Infrastructure | No | Reference file missing from rules/ directory |
|
|
287
|
+
| `ERR_VALIDATOR_FAILED` | Runtime | Yes | api_validator.ts exited with non-zero code |
|
|
288
|
+
| `ERR_INVALID_SCALE` | Validation | No | Scale value not one of: prototype, startup, growth, enterprise |
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
## 12. Timeout & Retry Policy
|
|
293
|
+
|
|
294
|
+
| Parameter | Value | Rationale |
|
|
295
|
+
|-----------|-------|-----------|
|
|
296
|
+
| Decision generation timeout | N/A | Synchronous decision tree traversal; completes in < 50ms |
|
|
297
|
+
| Internal retries | Zero | Deterministic output makes retries meaningless |
|
|
298
|
+
| Validator script timeout | 30,000 ms | Filesystem scan; fail if project is inaccessible |
|
|
299
|
+
| Reference file read timeout | 1,000 ms | Local filesystem; fail immediately if inaccessible |
|
|
300
|
+
|
|
301
|
+
**Retry policy:** Zero internal retries. Callers should modify context between invocations to explore alternatives.
|
|
302
|
+
|
|
303
|
+
---
|
|
304
|
+
|
|
305
|
+
## 13. Observability & Logging Schema
|
|
306
|
+
|
|
307
|
+
### OpenTelemetry Integration (MANDATORY)
|
|
308
|
+
|
|
309
|
+
- **Distributed Tracing**: EVERY API endpoint designed via this skill MUST propagate tracing headers (e.g., X-B3-TraceId or W3C raceparent).
|
|
310
|
+
- **Telemetry Emission**: The pi_validator.js script MUST emit traces via OpenTelemetry SDK during its execution.
|
|
311
|
+
- **Log Correlation**: All JSON outputs from the validation layer MUST contain the current race_id.
|
|
312
|
+
|
|
313
|
+
|
|
314
|
+
### Log Entry Format
|
|
315
|
+
|
|
316
|
+
```json
|
|
317
|
+
{
|
|
318
|
+
"trace_id": "uuid",
|
|
319
|
+
"skill_name": "api-architect",
|
|
320
|
+
"contract_version": "2.0.0",
|
|
321
|
+
"execution_id": "uuid",
|
|
322
|
+
"timestamp": "ISO-8601",
|
|
323
|
+
"request_type": "string",
|
|
324
|
+
"decision": "string",
|
|
325
|
+
"context_hash": "string",
|
|
326
|
+
"status": "success|error",
|
|
327
|
+
"error_code": "string|null",
|
|
328
|
+
"reference_files_read": ["string"],
|
|
329
|
+
"duration_ms": "number"
|
|
330
|
+
}
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
### Required Log Points
|
|
334
|
+
|
|
335
|
+
| Event | Log Level | Fields |
|
|
336
|
+
|-------|-----------|--------|
|
|
337
|
+
| Decision generated | INFO | All fields |
|
|
338
|
+
| Decision failed | ERROR | All fields + error_code |
|
|
339
|
+
| Reference file read | DEBUG | file path, read duration |
|
|
340
|
+
| Constraint conflict detected | WARN | conflicting constraints |
|
|
341
|
+
| Validator script executed | INFO | project_path, exit_code, duration |
|
|
342
|
+
|
|
343
|
+
### Metrics
|
|
344
|
+
|
|
345
|
+
| Metric | Type | Unit |
|
|
346
|
+
|--------|------|------|
|
|
347
|
+
| `api.decision.duration` | Histogram | ms |
|
|
348
|
+
| `api.decision.error_rate` | Counter | per error_code |
|
|
349
|
+
| `api.request_type.usage` | Counter | per request_type |
|
|
350
|
+
| `api.style.selected` | Counter | per style (REST/GraphQL/tRPC) |
|
|
351
|
+
| `api.validator.duration` | Histogram | ms |
|
|
352
|
+
| `api.validator.pass_rate` | Counter | pass/fail |
|
|
353
|
+
|
|
354
|
+
---
|
|
355
|
+
|
|
356
|
+
## 14. Security & Trust Model
|
|
357
|
+
|
|
358
|
+
### Design-Time Security
|
|
359
|
+
|
|
360
|
+
- API Architect enforces OWASP API Top 10 awareness through the `security-audit` request type.
|
|
361
|
+
- Security checklist is generated before API implementation, not after.
|
|
362
|
+
- Auth pattern selection references `rules/auth.md` for current industry standards.
|
|
363
|
+
|
|
364
|
+
### Credential Handling
|
|
365
|
+
|
|
366
|
+
- API Architect does not store, process, or transmit credentials.
|
|
367
|
+
- Auth pattern selection produces strategy recommendations, not credential configurations.
|
|
368
|
+
|
|
369
|
+
### Reference Integrity
|
|
370
|
+
|
|
371
|
+
- Reference files in `rules/` are read-only resources.
|
|
372
|
+
- Modifications require a version bump in SKILL.md frontmatter.
|
|
373
|
+
- No runtime code injection; reference files are static markdown, not executable.
|
|
374
|
+
|
|
375
|
+
### Input Sanitization
|
|
376
|
+
|
|
377
|
+
- Context parameters are used for decision tree traversal, not code execution.
|
|
378
|
+
- No eval, no template injection, no dynamic code generation from inputs.
|
|
379
|
+
|
|
380
|
+
### Multi-Tenant Boundaries
|
|
381
|
+
|
|
382
|
+
- Each invocation is stateless; no data persists between invocations.
|
|
383
|
+
- No invocation can access context or outputs from another invocation.
|
|
384
|
+
|
|
385
|
+
---
|
|
386
|
+
|
|
387
|
+
## 15. Scalability Model
|
|
388
|
+
|
|
389
|
+
| Dimension | Constraint | Mitigation |
|
|
390
|
+
|-----------|-----------|------------|
|
|
391
|
+
| Throughput | CPU-bound decision tree traversal | Completes in < 50ms; scales linearly with CPU |
|
|
392
|
+
| Concurrency | Stateless invocations | Unlimited parallel invocations |
|
|
393
|
+
| Reference storage | 10 rule files (~12 KB total) | Static files; no growth concern |
|
|
394
|
+
| Memory per invocation | < 1 MB | No accumulation |
|
|
395
|
+
| Network | Zero network calls (except validator against local filesystem) | No external dependency |
|
|
396
|
+
|
|
397
|
+
### Capacity Planning
|
|
398
|
+
|
|
399
|
+
| Metric | Per Invocation | Per Node |
|
|
400
|
+
|--------|---------------|----------|
|
|
401
|
+
| CPU | < 10 ms computation | 100,000+ invocations/second |
|
|
402
|
+
| Memory | < 1 MB | Bound only by concurrent invocations |
|
|
403
|
+
| Disk I/O | 1–2 rule file reads (~1–3 KB each) | Cached by OS after first read |
|
|
404
|
+
| Network | Zero | Zero |
|
|
405
|
+
|
|
406
|
+
---
|
|
407
|
+
|
|
408
|
+
## 16. Concurrency Model
|
|
409
|
+
|
|
410
|
+
| Scope | Model | Behavior |
|
|
411
|
+
|-------|-------|----------|
|
|
412
|
+
| Within invocation | Sequential | Classify → Evaluate → Enrich → Emit |
|
|
413
|
+
| Across invocations | Fully parallel | No shared state, no coordination |
|
|
414
|
+
| Reference access | Read-only shared | Multiple concurrent reads safe |
|
|
415
|
+
| Validator script | Isolated per invocation | Each run scans independently |
|
|
416
|
+
|
|
417
|
+
**No undefined behavior:** Stateless skill with read-only resource access; any concurrency level is safe.
|
|
418
|
+
|
|
419
|
+
---
|
|
420
|
+
|
|
421
|
+
## 17. Resource Lifecycle Management
|
|
422
|
+
|
|
423
|
+
| Resource | Created By | Destroyed By | Max Lifetime |
|
|
424
|
+
|----------|-----------|-------------|--------------|
|
|
425
|
+
| Decision output | Emit phase | Caller (after consumption) | Invocation scope |
|
|
426
|
+
| Rule file handle | Evaluate phase | Auto-close after read | < 10 ms |
|
|
427
|
+
| Validator process | Caller (script invocation) | Process exit | 30,000 ms max |
|
|
428
|
+
| Input context | Caller | Invocation completion | Invocation scope |
|
|
429
|
+
|
|
430
|
+
**Leak prevention:** All resources scoped to single invocation. Validator script is a separate process with its own lifecycle.
|
|
431
|
+
|
|
432
|
+
---
|
|
433
|
+
|
|
434
|
+
## 18. Performance Constraints
|
|
435
|
+
|
|
436
|
+
| Operation | P50 Target | P99 Target | Hard Limit |
|
|
437
|
+
|-----------|-----------|-----------|------------|
|
|
438
|
+
| Decision generation | < 5 ms | < 20 ms | 50 ms |
|
|
439
|
+
| Rule file read | < 1 ms | < 5 ms | 1,000 ms |
|
|
440
|
+
| Full design (8 request types) | < 40 ms | < 160 ms | 400 ms |
|
|
441
|
+
| Validator script execution | < 5,000 ms | < 15,000 ms | 30,000 ms |
|
|
442
|
+
| Output decision size | ≤ 500 chars | ≤ 2,000 chars | 5,000 chars |
|
|
443
|
+
|
|
444
|
+
---
|
|
445
|
+
|
|
446
|
+
## 19. Operational Risks
|
|
447
|
+
|
|
448
|
+
| Risk | Likelihood | Impact | Mitigation |
|
|
449
|
+
|------|-----------|--------|------------|
|
|
450
|
+
| Decision tree staleness | Medium | Recommends outdated patterns | Version bumps with periodic review; rules/ files track dates |
|
|
451
|
+
| Context under-specification | High | Generic decision instead of context-specific | `ERR_MISSING_CONTEXT` for required fields; checklist prompts for common gaps |
|
|
452
|
+
| Over-reliance on single decision | Medium | Team skips alternative evaluation | Output includes `related_decisions` to prompt adjacent thinking |
|
|
453
|
+
| Validator script false positives | Low | Flags correct implementations | Validator results are advisory; caller makes final judgment |
|
|
454
|
+
| Rule file conflicts | Low | Contradictory guidance across files | Each file owns a single concern; cross-references are explicit |
|
|
455
|
+
|
|
456
|
+
---
|
|
457
|
+
|
|
458
|
+
## 20. Compliance with skill-design-guide.md
|
|
459
|
+
|
|
460
|
+
| Requirement | Status | Evidence |
|
|
461
|
+
|-------------|--------|----------|
|
|
462
|
+
| YAML frontmatter complete | ✅ | name, description, metadata with category, version, triggers, coordinates_with, success_metrics |
|
|
463
|
+
| SKILL.md < 200 lines | ✅ | Entry point under 200 lines; details in rules/ |
|
|
464
|
+
| Prerequisites documented | ✅ | No external dependencies |
|
|
465
|
+
| When to Use section | ✅ | Request-type-based decision matrix |
|
|
466
|
+
| Quick Reference | ✅ | Decision checklist and content map |
|
|
467
|
+
| Core content matches skill type | ✅ | Expert type: decision trees, checklists |
|
|
468
|
+
| Troubleshooting section | ✅ | Anti-patterns table |
|
|
469
|
+
| Related section | ✅ | Cross-links to data-modeler, security-scanner, auth-patterns |
|
|
470
|
+
| Content Map for multi-file | ✅ | Links to 10 rule files + engineering-spec.md |
|
|
471
|
+
| Scripts documented | ✅ | api_validator.ts with command example |
|
|
472
|
+
| Contract versioning | ✅ | contract_version, backward_compatibility, breaking_changes |
|
|
473
|
+
| Compliance matrix structured | ✅ | This table with ✅/❌ + evidence |
|
|
474
|
+
|
|
475
|
+
---
|
|
476
|
+
|
|
477
|
+
## 21. Production Readiness Checklist
|
|
478
|
+
|
|
479
|
+
| Category | Check | Status |
|
|
480
|
+
|----------|-------|--------|
|
|
481
|
+
| **Functionality** | 8 request types specified | ✅ |
|
|
482
|
+
| **Functionality** | 3 API styles (REST/GraphQL/tRPC) with decision tree | ✅ |
|
|
483
|
+
| **Functionality** | 10 reference files covering all API design concerns | ✅ |
|
|
484
|
+
| **Contracts** | Input/output/error schemas defined | ✅ |
|
|
485
|
+
| **Contracts** | Agent assumptions and non-assumptions documented | ✅ |
|
|
486
|
+
| **Contracts** | Workflow invocation pattern with recommended ordering | ✅ |
|
|
487
|
+
| **Failure** | Error taxonomy with 7 categorized error codes | ✅ |
|
|
488
|
+
| **Failure** | No silent failures; every error returns structured response | ✅ |
|
|
489
|
+
| **Failure** | Retry policy: zero internal retries | ✅ |
|
|
490
|
+
| **Determinism** | Fixed decision tree ordering | ✅ |
|
|
491
|
+
| **Determinism** | No randomization, no external calls | ✅ |
|
|
492
|
+
| **Security** | OWASP API Top 10 checklist integrated | ✅ |
|
|
493
|
+
| **Security** | No credential handling; design-time only | ✅ |
|
|
494
|
+
| **Observability** | Structured log schema with 5 log points | ✅ |
|
|
495
|
+
| **Observability** | 6 metrics defined with types and units | ✅ |
|
|
496
|
+
| **Performance** | P50/P99 targets for all operations | ✅ |
|
|
497
|
+
| **Scalability** | Stateless; unlimited parallel invocations | ✅ |
|
|
498
|
+
| **Concurrency** | No shared state; read-only reference access | ✅ |
|
|
499
|
+
| **Resources** | All resources scoped to invocation lifetime | ✅ |
|
|
500
|
+
| **Idempotency** | Fully idempotent — all operations are pure functions | ✅ |
|
|
501
|
+
| **Compliance** | All skill-design-guide.md sections present | ✅ |
|
|
502
|
+
|
|
503
|
+
---
|
|
504
|
+
|
|
505
|
+
⚡ PikaKit v3.9.134
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: graphql
|
|
3
|
+
description: GraphQL schema design, resolver patterns, N+1 prevention, security
|
|
4
|
+
title: "GraphQL Principles"
|
|
5
|
+
impact: MEDIUM
|
|
6
|
+
impactDescription: "Moderate improvement to quality or maintainability"
|
|
7
|
+
tags: graphql
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# GraphQL Principles
|
|
11
|
+
|
|
12
|
+
> Flexible queries for complex, interconnected data.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## When to Use
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
✅ Good fit:
|
|
20
|
+
├── Complex, interconnected data
|
|
21
|
+
├── Multiple frontend platforms
|
|
22
|
+
├── Clients need flexible queries
|
|
23
|
+
├── Evolving data requirements
|
|
24
|
+
└── Reducing over-fetching matters
|
|
25
|
+
|
|
26
|
+
❌ Poor fit:
|
|
27
|
+
├── Simple CRUD operations
|
|
28
|
+
├── File upload heavy
|
|
29
|
+
├── HTTP caching important
|
|
30
|
+
└── Team unfamiliar with GraphQL
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Schema Design
|
|
34
|
+
|
|
35
|
+
```graphql
|
|
36
|
+
# Think in graphs, not endpoints
|
|
37
|
+
type User {
|
|
38
|
+
id: ID!
|
|
39
|
+
name: String!
|
|
40
|
+
email: String!
|
|
41
|
+
posts(first: Int = 10, after: String): PostConnection!
|
|
42
|
+
createdAt: DateTime!
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
type Post {
|
|
46
|
+
id: ID!
|
|
47
|
+
title: String!
|
|
48
|
+
content: String!
|
|
49
|
+
author: User!
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
# Relay-style pagination (recommended)
|
|
53
|
+
type PostConnection {
|
|
54
|
+
edges: [PostEdge!]!
|
|
55
|
+
pageInfo: PageInfo!
|
|
56
|
+
totalCount: Int!
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
type PostEdge {
|
|
60
|
+
node: Post!
|
|
61
|
+
cursor: String!
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
type PageInfo {
|
|
65
|
+
hasNextPage: Boolean!
|
|
66
|
+
hasPreviousPage: Boolean!
|
|
67
|
+
startCursor: String
|
|
68
|
+
endCursor: String
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Resolver Pattern
|
|
73
|
+
|
|
74
|
+
```typescript
|
|
75
|
+
const resolvers = {
|
|
76
|
+
Query: {
|
|
77
|
+
user: (_: unknown, { id }: { id: string }, ctx: Context) =>
|
|
78
|
+
ctx.dataSources.users.getById(id),
|
|
79
|
+
|
|
80
|
+
users: (_: unknown, args: PaginationArgs, ctx: Context) =>
|
|
81
|
+
ctx.dataSources.users.getConnection(args),
|
|
82
|
+
},
|
|
83
|
+
|
|
84
|
+
// Field resolver — handles N+1 via DataLoader
|
|
85
|
+
User: {
|
|
86
|
+
posts: (parent: User, args: PaginationArgs, ctx: Context) =>
|
|
87
|
+
ctx.dataSources.posts.getByAuthor(parent.id, args),
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## N+1 Prevention — DataLoader
|
|
93
|
+
|
|
94
|
+
```typescript
|
|
95
|
+
import DataLoader from 'dataloader';
|
|
96
|
+
|
|
97
|
+
// Batch function: receives array of IDs, returns array of results
|
|
98
|
+
const userLoader = new DataLoader<string, User>(async (ids) => {
|
|
99
|
+
const users = await db.user.findMany({ where: { id: { in: [...ids] } } });
|
|
100
|
+
const map = new Map(users.map(u => [u.id, u]));
|
|
101
|
+
return ids.map(id => map.get(id)!);
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
// In resolver — automatically batched
|
|
105
|
+
const resolvers = {
|
|
106
|
+
Post: {
|
|
107
|
+
author: (post: Post) => userLoader.load(post.authorId),
|
|
108
|
+
},
|
|
109
|
+
};
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## Security
|
|
113
|
+
|
|
114
|
+
| Threat | Mitigation |
|
|
115
|
+
|--------|-----------|
|
|
116
|
+
| Query depth attack | Set max depth (e.g., 7) |
|
|
117
|
+
| Query complexity | Calculate cost per field, set max |
|
|
118
|
+
| Batching abuse | Limit batch size |
|
|
119
|
+
| Introspection leak | Disable in production |
|
|
120
|
+
| Field-level auth | Check permissions per resolver |
|
|
121
|
+
|
|
122
|
+
```typescript
|
|
123
|
+
// Query depth + complexity limits
|
|
124
|
+
const server = new ApolloServer({
|
|
125
|
+
validationRules: [
|
|
126
|
+
depthLimit(7),
|
|
127
|
+
costAnalysis({ maximumCost: 1000 }),
|
|
128
|
+
],
|
|
129
|
+
introspection: process.env.NODE_ENV !== 'production',
|
|
130
|
+
});
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## Anti-Patterns
|
|
134
|
+
|
|
135
|
+
| ❌ Don't | ✅ Do |
|
|
136
|
+
|---------|-------|
|
|
137
|
+
| Expose database schema directly | Design schema for clients |
|
|
138
|
+
| One mega-query resolver | Keep resolvers small + composable |
|
|
139
|
+
| Skip DataLoader | Always use DataLoader for relations |
|
|
140
|
+
| Allow unlimited query depth | Set max depth (7) + cost limits |
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## 🔗 Related
|
|
145
|
+
|
|
146
|
+
| File | When to Read |
|
|
147
|
+
|------|-------------|
|
|
148
|
+
| [api-style.md](api-style.md) | REST vs GraphQL vs tRPC decision |
|
|
149
|
+
| [security-testing.md](security-testing.md) | GraphQL security testing |
|
|
150
|
+
| [SKILL.md](../SKILL.md) | Full decision framework |
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
⚡ PikaKit v3.9.134
|