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,310 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Vercel Deployment Script — Zero-Auth Deploy
|
|
4
|
+
# Version: 2.0.0
|
|
5
|
+
# Contract: vercel-deploy v2.0.0
|
|
6
|
+
# See: references/engineering-spec.md
|
|
7
|
+
# Skill: vercel-deploy
|
|
8
|
+
#
|
|
9
|
+
# Package → Detect Framework → Upload → Preview URL + Claim URL
|
|
10
|
+
#
|
|
11
|
+
# Usage: bash deploy.sh [path] [options]
|
|
12
|
+
# Returns: JSON with previewUrl, claimUrl, deploymentId, projectId
|
|
13
|
+
|
|
14
|
+
VERSION="2.0.0"
|
|
15
|
+
DEPLOY_ENDPOINT="https://claude-skills-deploy.vercel.com/api/deploy"
|
|
16
|
+
UPLOAD_TIMEOUT=300 # seconds
|
|
17
|
+
MAX_RETRIES=1 # 1 retry on timeout (per SKILL.md)
|
|
18
|
+
|
|
19
|
+
set -e
|
|
20
|
+
|
|
21
|
+
# --- Help ---
|
|
22
|
+
if [[ "$1" == "--help" || "$1" == "-h" ]]; then
|
|
23
|
+
cat <<EOF
|
|
24
|
+
|
|
25
|
+
Vercel Deploy v${VERSION}
|
|
26
|
+
|
|
27
|
+
Usage:
|
|
28
|
+
bash deploy.sh [path] Deploy directory to Vercel
|
|
29
|
+
bash deploy.sh file.tgz Deploy existing tarball
|
|
30
|
+
bash deploy.sh --help Show this help
|
|
31
|
+
|
|
32
|
+
Arguments:
|
|
33
|
+
path Directory or .tgz file (default: current directory)
|
|
34
|
+
|
|
35
|
+
What it does:
|
|
36
|
+
1. Check prerequisites (bash, tar, curl)
|
|
37
|
+
2. Package project (exclude node_modules, .git, .env*, dist, .next)
|
|
38
|
+
3. Detect framework from package.json (40+ frameworks)
|
|
39
|
+
4. Upload to Vercel → get preview URL + claim URL
|
|
40
|
+
|
|
41
|
+
Output (JSON to stdout):
|
|
42
|
+
{
|
|
43
|
+
"previewUrl": "https://skill-deploy-abc123.vercel.app",
|
|
44
|
+
"claimUrl": "https://vercel.com/claim-deployment?code=...",
|
|
45
|
+
"deploymentId": "dpl_...",
|
|
46
|
+
"projectId": "prj_..."
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
Exit Codes:
|
|
50
|
+
0 SUCCESS — Deployed, URL returned
|
|
51
|
+
1 ERROR — Deployment failed
|
|
52
|
+
|
|
53
|
+
EOF
|
|
54
|
+
exit 0
|
|
55
|
+
fi
|
|
56
|
+
|
|
57
|
+
if [[ "$1" == "--version" || "$1" == "-v" ]]; then
|
|
58
|
+
echo "Vercel Deploy v${VERSION}"
|
|
59
|
+
exit 0
|
|
60
|
+
fi
|
|
61
|
+
|
|
62
|
+
# --- Prerequisite Check ---
|
|
63
|
+
check_prereqs() {
|
|
64
|
+
local missing=()
|
|
65
|
+
for cmd in tar curl; do
|
|
66
|
+
if ! command -v "$cmd" &>/dev/null; then
|
|
67
|
+
missing+=("$cmd")
|
|
68
|
+
fi
|
|
69
|
+
done
|
|
70
|
+
|
|
71
|
+
if [ ${#missing[@]} -gt 0 ]; then
|
|
72
|
+
emit_error "ERR_MISSING_PREREQ" "Missing required commands: ${missing[*]}. Install them and retry." >&2
|
|
73
|
+
exit 1
|
|
74
|
+
fi
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
# --- Structured JSON Error Output ---
|
|
78
|
+
emit_error() {
|
|
79
|
+
local code="$1"
|
|
80
|
+
local message="$2"
|
|
81
|
+
echo "{\"success\":false,\"error\":{\"code\":\"$code\",\"message\":\"$message\",\"recoverable\":true}}" >&2
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
check_prereqs
|
|
85
|
+
|
|
86
|
+
# --- Framework Detection ---
|
|
87
|
+
detect_framework() {
|
|
88
|
+
local pkg_json="$1"
|
|
89
|
+
|
|
90
|
+
if [ ! -f "$pkg_json" ]; then
|
|
91
|
+
echo "null"
|
|
92
|
+
return
|
|
93
|
+
fi
|
|
94
|
+
|
|
95
|
+
local content=$(cat "$pkg_json")
|
|
96
|
+
|
|
97
|
+
has_dep() {
|
|
98
|
+
echo "$content" | grep -q "\"$1\""
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
# Order matters — check more specific frameworks first
|
|
102
|
+
|
|
103
|
+
# Meta-frameworks
|
|
104
|
+
if has_dep "blitz"; then echo "blitzjs"; return; fi
|
|
105
|
+
if has_dep "next"; then echo "nextjs"; return; fi
|
|
106
|
+
if has_dep "gatsby"; then echo "gatsby"; return; fi
|
|
107
|
+
if has_dep "@remix-run/"; then echo "remix"; return; fi
|
|
108
|
+
if has_dep "@react-router/"; then echo "react-router"; return; fi
|
|
109
|
+
if has_dep "@tanstack/start"; then echo "tanstack-start"; return; fi
|
|
110
|
+
if has_dep "astro"; then echo "astro"; return; fi
|
|
111
|
+
|
|
112
|
+
# Shopify
|
|
113
|
+
if has_dep "@shopify/hydrogen"; then echo "hydrogen"; return; fi
|
|
114
|
+
|
|
115
|
+
# Svelte
|
|
116
|
+
if has_dep "@sveltejs/kit"; then echo "sveltekit-1"; return; fi
|
|
117
|
+
if has_dep "svelte"; then echo "svelte"; return; fi
|
|
118
|
+
|
|
119
|
+
# Vue
|
|
120
|
+
if has_dep "nuxt"; then echo "nuxtjs"; return; fi
|
|
121
|
+
if has_dep "vitepress"; then echo "vitepress"; return; fi
|
|
122
|
+
if has_dep "vuepress"; then echo "vuepress"; return; fi
|
|
123
|
+
if has_dep "gridsome"; then echo "gridsome"; return; fi
|
|
124
|
+
|
|
125
|
+
# Solid / Docusaurus / Redwood
|
|
126
|
+
if has_dep "@solidjs/start"; then echo "solidstart-1"; return; fi
|
|
127
|
+
if has_dep "@docusaurus/core"; then echo "docusaurus-2"; return; fi
|
|
128
|
+
if has_dep "@redwoodjs/"; then echo "redwoodjs"; return; fi
|
|
129
|
+
|
|
130
|
+
# Static site generators
|
|
131
|
+
if has_dep "hexo"; then echo "hexo"; return; fi
|
|
132
|
+
if has_dep "@11ty/eleventy"; then echo "eleventy"; return; fi
|
|
133
|
+
|
|
134
|
+
# Angular / Ionic
|
|
135
|
+
if has_dep "@ionic/angular"; then echo "ionic-angular"; return; fi
|
|
136
|
+
if has_dep "@angular/core"; then echo "angular"; return; fi
|
|
137
|
+
if has_dep "@ionic/react"; then echo "ionic-react"; return; fi
|
|
138
|
+
|
|
139
|
+
# React
|
|
140
|
+
if has_dep "react-scripts"; then echo "create-react-app"; return; fi
|
|
141
|
+
|
|
142
|
+
# Other frameworks
|
|
143
|
+
if has_dep "ember-cli" || has_dep "ember-source"; then echo "ember"; return; fi
|
|
144
|
+
if has_dep "@dojo/framework"; then echo "dojo"; return; fi
|
|
145
|
+
if has_dep "@polymer/"; then echo "polymer"; return; fi
|
|
146
|
+
if has_dep "preact"; then echo "preact"; return; fi
|
|
147
|
+
if has_dep "@stencil/core"; then echo "stencil"; return; fi
|
|
148
|
+
if has_dep "umi"; then echo "umijs"; return; fi
|
|
149
|
+
if has_dep "sapper"; then echo "sapper"; return; fi
|
|
150
|
+
if has_dep "saber"; then echo "saber"; return; fi
|
|
151
|
+
|
|
152
|
+
# Sanity / Storybook
|
|
153
|
+
if has_dep "sanity"; then echo "sanity-v3"; return; fi
|
|
154
|
+
if has_dep "@sanity/"; then echo "sanity"; return; fi
|
|
155
|
+
if has_dep "@storybook/"; then echo "storybook"; return; fi
|
|
156
|
+
|
|
157
|
+
# Backend frameworks
|
|
158
|
+
if has_dep "@nestjs/core"; then echo "nestjs"; return; fi
|
|
159
|
+
if has_dep "elysia"; then echo "elysia"; return; fi
|
|
160
|
+
if has_dep "hono"; then echo "hono"; return; fi
|
|
161
|
+
if has_dep "fastify"; then echo "fastify"; return; fi
|
|
162
|
+
if has_dep "h3"; then echo "h3"; return; fi
|
|
163
|
+
if has_dep "nitropack"; then echo "nitro"; return; fi
|
|
164
|
+
if has_dep "express"; then echo "express"; return; fi
|
|
165
|
+
|
|
166
|
+
# Build tools (check last)
|
|
167
|
+
if has_dep "vite"; then echo "vite"; return; fi
|
|
168
|
+
if has_dep "parcel"; then echo "parcel"; return; fi
|
|
169
|
+
|
|
170
|
+
echo "null"
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
# --- Upload with Retry ---
|
|
174
|
+
upload_with_retry() {
|
|
175
|
+
local tarball="$1"
|
|
176
|
+
local framework="$2"
|
|
177
|
+
local attempt=0
|
|
178
|
+
local response=""
|
|
179
|
+
local curl_exit=0
|
|
180
|
+
|
|
181
|
+
while [ $attempt -le $MAX_RETRIES ]; do
|
|
182
|
+
if [ $attempt -gt 0 ]; then
|
|
183
|
+
echo "Retrying upload (attempt $((attempt + 1))/$((MAX_RETRIES + 1)))..." >&2
|
|
184
|
+
sleep 2
|
|
185
|
+
fi
|
|
186
|
+
|
|
187
|
+
response=$(curl -s --max-time "$UPLOAD_TIMEOUT" \
|
|
188
|
+
-X POST "$DEPLOY_ENDPOINT" \
|
|
189
|
+
-F "file=@$tarball" \
|
|
190
|
+
-F "framework=$framework" 2>&1) && curl_exit=0 || curl_exit=$?
|
|
191
|
+
|
|
192
|
+
# Check if curl timed out (exit code 28)
|
|
193
|
+
if [ $curl_exit -eq 28 ] && [ $attempt -lt $MAX_RETRIES ]; then
|
|
194
|
+
echo "Upload timed out after ${UPLOAD_TIMEOUT}s" >&2
|
|
195
|
+
attempt=$((attempt + 1))
|
|
196
|
+
continue
|
|
197
|
+
fi
|
|
198
|
+
|
|
199
|
+
# Non-timeout curl error
|
|
200
|
+
if [ $curl_exit -ne 0 ]; then
|
|
201
|
+
emit_error "ERR_UPLOAD_FAILED" "curl failed with exit code $curl_exit"
|
|
202
|
+
return 1
|
|
203
|
+
fi
|
|
204
|
+
|
|
205
|
+
# Got a response (success or error)
|
|
206
|
+
echo "$response"
|
|
207
|
+
return 0
|
|
208
|
+
done
|
|
209
|
+
|
|
210
|
+
emit_error "ERR_UPLOAD_TIMEOUT" "Upload timed out after $((MAX_RETRIES + 1)) attempts"
|
|
211
|
+
return 1
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
# --- Main ---
|
|
215
|
+
INPUT_PATH="${1:-.}"
|
|
216
|
+
|
|
217
|
+
# Create temp directory for packaging
|
|
218
|
+
TEMP_DIR=$(mktemp -d)
|
|
219
|
+
TARBALL="$TEMP_DIR/project.tgz"
|
|
220
|
+
CLEANUP_TEMP=true
|
|
221
|
+
|
|
222
|
+
cleanup() {
|
|
223
|
+
if [ "$CLEANUP_TEMP" = true ]; then
|
|
224
|
+
rm -rf "$TEMP_DIR"
|
|
225
|
+
fi
|
|
226
|
+
}
|
|
227
|
+
trap cleanup EXIT
|
|
228
|
+
|
|
229
|
+
echo "Preparing deployment..." >&2
|
|
230
|
+
|
|
231
|
+
# Check if input is a .tgz file or a directory
|
|
232
|
+
FRAMEWORK="null"
|
|
233
|
+
|
|
234
|
+
if [ -f "$INPUT_PATH" ] && [[ "$INPUT_PATH" == *.tgz ]]; then
|
|
235
|
+
echo "Using provided tarball..." >&2
|
|
236
|
+
TARBALL="$INPUT_PATH"
|
|
237
|
+
CLEANUP_TEMP=false
|
|
238
|
+
elif [ -d "$INPUT_PATH" ]; then
|
|
239
|
+
PROJECT_PATH=$(cd "$INPUT_PATH" && pwd)
|
|
240
|
+
|
|
241
|
+
# Detect framework
|
|
242
|
+
FRAMEWORK=$(detect_framework "$PROJECT_PATH/package.json")
|
|
243
|
+
|
|
244
|
+
# Static HTML: rename single non-index.html to index.html
|
|
245
|
+
if [ ! -f "$PROJECT_PATH/package.json" ]; then
|
|
246
|
+
HTML_FILES=$(find "$PROJECT_PATH" -maxdepth 1 -name "*.html" -type f)
|
|
247
|
+
HTML_COUNT=$(echo "$HTML_FILES" | grep -c . || echo 0)
|
|
248
|
+
|
|
249
|
+
if [ "$HTML_COUNT" -eq 1 ]; then
|
|
250
|
+
HTML_FILE=$(echo "$HTML_FILES" | head -1)
|
|
251
|
+
BASENAME=$(basename "$HTML_FILE")
|
|
252
|
+
if [ "$BASENAME" != "index.html" ]; then
|
|
253
|
+
echo "Renaming $BASENAME to index.html..." >&2
|
|
254
|
+
mv "$HTML_FILE" "$PROJECT_PATH/index.html"
|
|
255
|
+
fi
|
|
256
|
+
fi
|
|
257
|
+
fi
|
|
258
|
+
|
|
259
|
+
# Create tarball (exclude sensitive + build artifacts)
|
|
260
|
+
echo "Creating deployment package..." >&2
|
|
261
|
+
tar -czf "$TARBALL" -C "$PROJECT_PATH" \
|
|
262
|
+
--exclude='node_modules' \
|
|
263
|
+
--exclude='.git' \
|
|
264
|
+
--exclude='.env' \
|
|
265
|
+
--exclude='.env.*' \
|
|
266
|
+
--exclude='.env.local' \
|
|
267
|
+
--exclude='.next' \
|
|
268
|
+
--exclude='dist' \
|
|
269
|
+
--exclude='build' \
|
|
270
|
+
--exclude='coverage' \
|
|
271
|
+
.
|
|
272
|
+
else
|
|
273
|
+
emit_error "ERR_NO_PROJECT" "Input must be a directory or a .tgz file: $INPUT_PATH"
|
|
274
|
+
exit 1
|
|
275
|
+
fi
|
|
276
|
+
|
|
277
|
+
if [ "$FRAMEWORK" != "null" ]; then
|
|
278
|
+
echo "Detected framework: $FRAMEWORK" >&2
|
|
279
|
+
fi
|
|
280
|
+
|
|
281
|
+
# Deploy with retry
|
|
282
|
+
echo "Deploying..." >&2
|
|
283
|
+
RESPONSE=$(upload_with_retry "$TARBALL" "$FRAMEWORK")
|
|
284
|
+
|
|
285
|
+
# Check for error
|
|
286
|
+
if echo "$RESPONSE" | grep -q '"error"'; then
|
|
287
|
+
ERROR_MSG=$(echo "$RESPONSE" | grep -o '"error":"[^"]*"' | cut -d'"' -f4)
|
|
288
|
+
emit_error "ERR_UPLOAD_FAILED" "$ERROR_MSG"
|
|
289
|
+
exit 1
|
|
290
|
+
fi
|
|
291
|
+
|
|
292
|
+
# Extract URLs
|
|
293
|
+
PREVIEW_URL=$(echo "$RESPONSE" | grep -o '"previewUrl":"[^"]*"' | cut -d'"' -f4)
|
|
294
|
+
CLAIM_URL=$(echo "$RESPONSE" | grep -o '"claimUrl":"[^"]*"' | cut -d'"' -f4)
|
|
295
|
+
|
|
296
|
+
if [ -z "$PREVIEW_URL" ]; then
|
|
297
|
+
emit_error "ERR_UPLOAD_FAILED" "Could not extract preview URL from response"
|
|
298
|
+
echo "$RESPONSE" >&2
|
|
299
|
+
exit 1
|
|
300
|
+
fi
|
|
301
|
+
|
|
302
|
+
echo "" >&2
|
|
303
|
+
echo "✅ Deployment successful!" >&2
|
|
304
|
+
echo "" >&2
|
|
305
|
+
echo "Preview URL: $PREVIEW_URL" >&2
|
|
306
|
+
echo "Claim URL: $CLAIM_URL" >&2
|
|
307
|
+
echo "" >&2
|
|
308
|
+
|
|
309
|
+
# Output JSON for programmatic use (stdout only)
|
|
310
|
+
echo "$RESPONSE"
|
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: End-to-end API development pipeline — design, implement, and ship production-grade REST, GraphQL, or tRPC services with OpenAPI specs, Prisma ORM, and full test coverage.
|
|
3
|
+
chain: api-development
|
|
4
|
+
skills: [api-architect, data-modeler, nodejs-pro, test-architect, security-scanner, auth-patterns, context-engineering, problem-checker, knowledge-compiler]
|
|
5
|
+
agents: [orchestrator, assessor, recovery, learner, backend-specialist, test-engineer]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# /api - API Development Pipeline
|
|
9
|
+
|
|
10
|
+
$ARGUMENTS
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Purpose
|
|
15
|
+
|
|
16
|
+
Build well-architected APIs from specification to implementation — covering design, database schema, route handlers, authentication, testing, and OpenAPI documentation. **Combines `nodejs-pro` for implementation with `test-architect` for validation, using `api-architect` for design decisions and `data-modeler` for schema design.** Differs from `/build` by focusing exclusively on API/backend without frontend.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## ?? Meta-Agents Integration
|
|
21
|
+
|
|
22
|
+
| Phase | Agent | Action |
|
|
23
|
+
| ----- | ----- | ------ |
|
|
24
|
+
| **Pre-Flight** | `assessor` | Evaluate API complexity and knowledge-compiler backend patterns |
|
|
25
|
+
| **Execution** | `orchestrator` | Coordinate API design, schema generation, and routing |
|
|
26
|
+
| **Safety** | `recovery` | Save state and recover from dangling migrations |
|
|
27
|
+
| **Post-Build** | `learner` | Log API architecture patterns for downstream reuse |
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
Flow:
|
|
31
|
+
assessor.evaluate(api_scope) ? risk level
|
|
32
|
+
?
|
|
33
|
+
recovery.save(existing_api) ? backup
|
|
34
|
+
?
|
|
35
|
+
design ? implement ? test ? secure
|
|
36
|
+
?
|
|
37
|
+
learner.log(patterns)
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## ?? MANDATORY: API Development Protocol
|
|
43
|
+
|
|
44
|
+
### Phase 1: Pre-flight & knowledge-compiler Context
|
|
45
|
+
|
|
46
|
+
> **Rule 0.5-K:** knowledge-compiler pattern check.
|
|
47
|
+
|
|
48
|
+
1. Read `.agent/skills/knowledge-compiler/patterns/` for past failures before proceeding.
|
|
49
|
+
2. Trigger `recovery` agent to run Checkpoint (`git commit -m "chore(checkpoint): pre-api"`).
|
|
50
|
+
|
|
51
|
+
### Phase 2: Requirements & API Design
|
|
52
|
+
|
|
53
|
+
| Field | Value |
|
|
54
|
+
|-------|-------|
|
|
55
|
+
| **INPUT** | $ARGUMENTS (user request — API description, tech stack, requirements) |
|
|
56
|
+
| **OUTPUT** | API design spec: endpoints/schema, data models, auth strategy |
|
|
57
|
+
| **AGENTS** | `nodejs-pro`, `assessor` |
|
|
58
|
+
| **SKILLS** | `api-architect`, `context-engineering` |
|
|
59
|
+
|
|
60
|
+
// turbo — telemetry: phase-2-design
|
|
61
|
+
|
|
62
|
+
1. Clarify requirements if vague:
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
ASK if not specified:
|
|
66
|
+
? API type (REST / GraphQL / tRPC)
|
|
67
|
+
? Framework (Express / Fastify / NestJS / Hono)
|
|
68
|
+
? Database (PostgreSQL / MySQL / MongoDB / SQLite)
|
|
69
|
+
? ORM (Prisma / Drizzle / TypeORM)
|
|
70
|
+
? Auth strategy (JWT / Session / OAuth2 / API Key)
|
|
71
|
+
? Testing approach (unit + integration + E2E)
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
2. Design endpoints/schema using `api-architect` decision framework:
|
|
75
|
+
|
|
76
|
+
| Scenario | Recommendation |
|
|
77
|
+
|----------|----------------|
|
|
78
|
+
| Standard CRUD API | **REST** with Express/Fastify + Prisma |
|
|
79
|
+
| Complex data relationships, flexible queries | **GraphQL** with Apollo/Yoga |
|
|
80
|
+
| Full-stack TypeScript monorepo | **tRPC** with Next.js |
|
|
81
|
+
| High-performance, low-overhead | **Hono** or **Fastify** |
|
|
82
|
+
|
|
83
|
+
3. Define request/response formats, error contracts, status codes
|
|
84
|
+
4. Plan pagination, filtering, and sorting strategies
|
|
85
|
+
|
|
86
|
+
### Phase 3: Database Schema Design
|
|
87
|
+
|
|
88
|
+
| Field | Value |
|
|
89
|
+
|-------|-------|
|
|
90
|
+
| **INPUT** | API design spec from Phase 2 |
|
|
91
|
+
| **OUTPUT** | Database schema: `prisma/schema.prisma` or equivalent, migration files |
|
|
92
|
+
| **AGENTS** | `nodejs-pro`, `orchestrator` |
|
|
93
|
+
| **SKILLS** | `data-modeler` |
|
|
94
|
+
|
|
95
|
+
// turbo — telemetry: phase-3-schema
|
|
96
|
+
|
|
97
|
+
1. Design data models with relationships (1:1, 1:N, M:N)
|
|
98
|
+
2. Define indexes for query optimization
|
|
99
|
+
3. Plan migration strategy (incremental, reversible)
|
|
100
|
+
4. Generate Prisma schema or equivalent ORM config
|
|
101
|
+
|
|
102
|
+
// turbo — telemetry: phase-2-schema-generate
|
|
103
|
+
```bash
|
|
104
|
+
npx cross-env OTEL_SERVICE_NAME="workflow:api" TRACE_ID="$TRACE_ID" npx prisma generate
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Phase 4: API Implementation
|
|
108
|
+
|
|
109
|
+
| Field | Value |
|
|
110
|
+
|-------|-------|
|
|
111
|
+
| **INPUT** | API design spec + database schema from Phases 2-3 |
|
|
112
|
+
| **OUTPUT** | Route handlers in `src/routes/`, service layer in `src/services/`, middleware in `src/middleware/` |
|
|
113
|
+
| **AGENTS** | `nodejs-pro` |
|
|
114
|
+
| **SKILLS** | `nodejs-pro`, `api-architect`, `auth-patterns` |
|
|
115
|
+
|
|
116
|
+
// turbo — telemetry: phase-4-implement
|
|
117
|
+
|
|
118
|
+
1. Scaffold project structure:
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
src/
|
|
122
|
+
+-- routes/ # Route handlers (thin — delegate to services)
|
|
123
|
+
+-- controllers/ # Request parsing, response formatting
|
|
124
|
+
+-- services/ # Business logic (pure, testable)
|
|
125
|
+
+-- middleware/ # Auth, validation, rate limiting, error handling
|
|
126
|
+
+-- validators/ # Input validation schemas (Zod)
|
|
127
|
+
+-- types/ # TypeScript types and interfaces
|
|
128
|
+
prisma/
|
|
129
|
+
+-- schema.prisma # Database schema
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
2. Implement route handlers with input validation (Zod)
|
|
133
|
+
3. Create service layer with business logic (pure functions)
|
|
134
|
+
4. Add authentication middleware (JWT/OAuth2 per spec)
|
|
135
|
+
5. Implement error handling with consistent error response format
|
|
136
|
+
6. Add rate limiting middleware
|
|
137
|
+
7. Implement pagination, filtering, sorting
|
|
138
|
+
|
|
139
|
+
// turbo — telemetry: phase-3-typecheck
|
|
140
|
+
```bash
|
|
141
|
+
npx cross-env OTEL_SERVICE_NAME="workflow:api" TRACE_ID="$TRACE_ID" npx tsc --noEmit
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Phase 5: Testing
|
|
145
|
+
|
|
146
|
+
| Field | Value |
|
|
147
|
+
|-------|-------|
|
|
148
|
+
| **INPUT** | Implemented API from Phase 4 |
|
|
149
|
+
| **OUTPUT** | Test suite: `src/__tests__/` with unit + integration tests passing |
|
|
150
|
+
| **AGENTS** | `test-architect` |
|
|
151
|
+
| **SKILLS** | `test-architect` |
|
|
152
|
+
|
|
153
|
+
// turbo — telemetry: phase-5-test
|
|
154
|
+
|
|
155
|
+
1. **Unit tests** — Service layer, validators, utilities (AAA pattern)
|
|
156
|
+
2. **Integration tests** — API endpoints with Supertest (actual HTTP calls)
|
|
157
|
+
3. **Auth tests** — Protected routes, token validation, role-based access
|
|
158
|
+
4. **Error path tests** — Invalid input, not found, unauthorized, rate limiting
|
|
159
|
+
|
|
160
|
+
// turbo — telemetry: phase-4-test-coverage
|
|
161
|
+
```bash
|
|
162
|
+
npx cross-env OTEL_SERVICE_NAME="workflow:api" TRACE_ID="$TRACE_ID" npm test -- --coverage
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
Coverage targets:
|
|
166
|
+
|
|
167
|
+
| Code Area | Target |
|
|
168
|
+
|-----------|--------|
|
|
169
|
+
| Business logic (services) | = 80% |
|
|
170
|
+
| Auth/security middleware | 100% |
|
|
171
|
+
| Route handlers | = 70% |
|
|
172
|
+
| Validators | = 90% |
|
|
173
|
+
|
|
174
|
+
### Phase 6: Security & Documentation
|
|
175
|
+
|
|
176
|
+
| Field | Value |
|
|
177
|
+
|-------|-------|
|
|
178
|
+
| **INPUT** | Tested API from Phase 5 |
|
|
179
|
+
| **OUTPUT** | Security validation report + OpenAPI spec + README |
|
|
180
|
+
| **AGENTS** | `nodejs-pro`, `learner` |
|
|
181
|
+
| **SKILLS** | `security-scanner`, `api-architect`, `problem-checker`, `knowledge-compiler` |
|
|
182
|
+
|
|
183
|
+
// turbo — telemetry: phase-6-secure
|
|
184
|
+
|
|
185
|
+
1. **Security validation** (OWASP Top 10):
|
|
186
|
+
- SQL injection protection (parameterized queries via ORM)
|
|
187
|
+
- XSS prevention (output encoding)
|
|
188
|
+
- CSRF protection (where applicable)
|
|
189
|
+
- Rate limiting configured
|
|
190
|
+
- Input validation on all endpoints
|
|
191
|
+
- Authentication on protected routes
|
|
192
|
+
- Secrets not hardcoded
|
|
193
|
+
|
|
194
|
+
2. **OpenAPI/Swagger documentation**:
|
|
195
|
+
- Generate OpenAPI 3.0 spec from routes
|
|
196
|
+
- Include request/response examples
|
|
197
|
+
- Document error responses with status codes
|
|
198
|
+
- Add authentication requirements
|
|
199
|
+
|
|
200
|
+
3. **README generation**:
|
|
201
|
+
- Quick start (get running < 5 min)
|
|
202
|
+
- Environment variables
|
|
203
|
+
- API endpoint reference
|
|
204
|
+
- Testing instructions
|
|
205
|
+
|
|
206
|
+
// turbo — telemetry: phase-5-lint-typecheck
|
|
207
|
+
```bash
|
|
208
|
+
npx cross-env OTEL_SERVICE_NAME="workflow:api" TRACE_ID="$TRACE_ID" npm run lint; npx cross-env OTEL_SERVICE_NAME="workflow:api" TRACE_ID="$TRACE_ID" npx tsc --noEmit
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## ?? Supported Patterns
|
|
214
|
+
|
|
215
|
+
### REST APIs
|
|
216
|
+
|
|
217
|
+
- Express.js, Fastify, Hono, NestJS
|
|
218
|
+
- OpenAPI/Swagger auto-generation
|
|
219
|
+
- Versioning: URL path (`/v1/`), header, query param
|
|
220
|
+
|
|
221
|
+
### GraphQL
|
|
222
|
+
|
|
223
|
+
- Apollo Server, GraphQL Yoga
|
|
224
|
+
- Schema-first or code-first approach
|
|
225
|
+
- DataLoader for N+1 query prevention
|
|
226
|
+
|
|
227
|
+
### tRPC
|
|
228
|
+
|
|
229
|
+
- Type-safe end-to-end APIs
|
|
230
|
+
- Next.js App Router integration
|
|
231
|
+
- Full inference without code generation
|
|
232
|
+
|
|
233
|
+
### Real-time
|
|
234
|
+
|
|
235
|
+
- WebSocket (Socket.io, ws)
|
|
236
|
+
- Server-Sent Events (SSE)
|
|
237
|
+
- Polling with ETag caching
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## ? MANDATORY: Problem Verification Before Completion
|
|
242
|
+
|
|
243
|
+
> **CRITICAL:** This check MUST be performed before any `notify_user` or task completion.
|
|
244
|
+
|
|
245
|
+
### Check @[current_problems]
|
|
246
|
+
|
|
247
|
+
```
|
|
248
|
+
1. Read @[current_problems] from IDE
|
|
249
|
+
2. If errors/warnings > 0:
|
|
250
|
+
a. Auto-fix: imports, types, lint errors
|
|
251
|
+
b. Re-check @[current_problems]
|
|
252
|
+
c. If still > 0 ? STOP ? Notify user
|
|
253
|
+
3. If count = 0 ? Proceed to completion
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
### Auto-Fixable
|
|
257
|
+
|
|
258
|
+
| Type | Fix |
|
|
259
|
+
|------|-----|
|
|
260
|
+
| Missing import | Add import statement |
|
|
261
|
+
| Unused variable | Remove or prefix `_` |
|
|
262
|
+
| Type mismatch | Fix type annotation |
|
|
263
|
+
| Lint errors | Run eslint --fix |
|
|
264
|
+
|
|
265
|
+
> **Rule:** Never mark complete with errors in `@[current_problems]`.
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
## ?? Rollback & Recovery
|
|
270
|
+
|
|
271
|
+
If the Exit Gates fail and cannot be resolved automatically:
|
|
272
|
+
1. Restore to pre-api checkpoint (`git checkout -- .` or `git stash pop`).
|
|
273
|
+
2. Log failure via `learner` meta-agent.
|
|
274
|
+
3. Notify user with failure context and recovery options.
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
## Output Format
|
|
279
|
+
|
|
280
|
+
```markdown
|
|
281
|
+
## ?? API Development Complete
|
|
282
|
+
|
|
283
|
+
### API Summary
|
|
284
|
+
|
|
285
|
+
| Aspect | Value |
|
|
286
|
+
|--------|-------|
|
|
287
|
+
| Type | REST / GraphQL / tRPC |
|
|
288
|
+
| Framework | Express / Fastify / Hono |
|
|
289
|
+
| Database | PostgreSQL + Prisma |
|
|
290
|
+
| Auth | JWT / OAuth2 |
|
|
291
|
+
|
|
292
|
+
### Deliverables
|
|
293
|
+
|
|
294
|
+
| Item | Status | Path |
|
|
295
|
+
|------|--------|------|
|
|
296
|
+
| Routes | ? [X] endpoints | `src/routes/` |
|
|
297
|
+
| Services | ? [X] services | `src/services/` |
|
|
298
|
+
| Tests | ? [X] passing | `src/__tests__/` |
|
|
299
|
+
| Schema | ? [X] models | `prisma/schema.prisma` |
|
|
300
|
+
| OpenAPI | ? Generated | `docs/openapi.yaml` |
|
|
301
|
+
| Security | ? OWASP validated | — |
|
|
302
|
+
|
|
303
|
+
### Test Coverage
|
|
304
|
+
|
|
305
|
+
| Area | Coverage |
|
|
306
|
+
|------|----------|
|
|
307
|
+
| Business Logic | XX% |
|
|
308
|
+
| Auth/Security | XX% |
|
|
309
|
+
| Overall | XX% |
|
|
310
|
+
|
|
311
|
+
### Next Steps
|
|
312
|
+
|
|
313
|
+
- [ ] Review generated code and adjust business logic
|
|
314
|
+
- [ ] Run integration tests: `npm test`
|
|
315
|
+
- [ ] Configure environment variables for staging
|
|
316
|
+
- [ ] Deploy to staging: `/launch`
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
---
|
|
320
|
+
|
|
321
|
+
## Examples
|
|
322
|
+
|
|
323
|
+
```
|
|
324
|
+
/api user management REST API with Express and Prisma
|
|
325
|
+
/api GraphQL API for e-commerce with Apollo Server and PostgreSQL
|
|
326
|
+
/api payments microservice with Stripe integration and JWT auth
|
|
327
|
+
/api blog API with RESTful design, PostgreSQL, Prisma, JWT auth, rate limiting
|
|
328
|
+
/api real-time chat API with WebSocket and Redis pub/sub
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
---
|
|
332
|
+
|
|
333
|
+
## Key Principles
|
|
334
|
+
|
|
335
|
+
- **Design first** — plan endpoints, schemas, and auth before writing code
|
|
336
|
+
- **Type safety throughout** — TypeScript on every layer, Zod for runtime validation
|
|
337
|
+
- **Test at boundaries** — integration tests for endpoints, unit tests for logic
|
|
338
|
+
- **Security by default** — auth, validation, rate limiting from the start, not bolted on
|
|
339
|
+
- **Thin controllers, fat services** — route handlers parse/respond, services contain logic
|
|
340
|
+
|
|
341
|
+
---
|
|
342
|
+
|
|
343
|
+
## ?? Workflow Chain
|
|
344
|
+
|
|
345
|
+
**Skills Loaded (9):**
|
|
346
|
+
|
|
347
|
+
- `api-architect` - REST/GraphQL/tRPC design patterns and endpoint design
|
|
348
|
+
- `data-modeler` - Database schema design, Prisma ORM, migration strategy
|
|
349
|
+
- `nodejs-pro` - Node.js best practices, async patterns, framework selection
|
|
350
|
+
- `test-architect` - API testing strategies (unit, integration, coverage)
|
|
351
|
+
- `security-scanner` - OWASP Top 10 validation, security audit
|
|
352
|
+
- `auth-patterns` - Authentication/authorization strategies (JWT, OAuth2, API Key)
|
|
353
|
+
- `context-engineering` - Codebase parsing and framework detection
|
|
354
|
+
- `problem-checker` - Code problem verification
|
|
355
|
+
- `knowledge-compiler` - Learning and logging backend patterns
|
|
356
|
+
|
|
357
|
+
```mermaid
|
|
358
|
+
graph LR
|
|
359
|
+
A["/plan"] --> B["/api"]
|
|
360
|
+
B --> C["/validate"]
|
|
361
|
+
C --> D["/launch"]
|
|
362
|
+
style B fill:#10b981
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
| After /api | Run | Purpose |
|
|
366
|
+
|------------|-----|---------|
|
|
367
|
+
| Need tests or CI | `/validate` | Run full test suite with coverage |
|
|
368
|
+
| Ready to deploy | `/launch` | Deploy API to production |
|
|
369
|
+
| Need frontend too | `/build` | Full-stack app with API + frontend |
|
|
370
|
+
| Security audit needed | `/inspect` | Deep security review (OWASP) |
|
|
371
|
+
|
|
372
|
+
**Handoff to /validate:**
|
|
373
|
+
|
|
374
|
+
```markdown
|
|
375
|
+
? API built with [X] endpoints, [Y] tests passing, OpenAPI docs generated.
|
|
376
|
+
Run `/validate` to execute full test suite with coverage report.
|
|
377
|
+
```
|