oh-my-customcode 0.1.3 → 0.2.0
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/README.md +80 -129
- package/dist/cli/index.js +95 -95
- package/dist/index.js +7 -32
- package/package.json +1 -1
- package/templates/{agents/sw-architect/documenter/AGENT.md → .claude/agents/arch-documenter.md} +7 -39
- package/templates/{agents/sw-architect/speckit-agent/AGENT.md → .claude/agents/arch-speckit-agent.md} +61 -63
- package/templates/.claude/agents/be-express-expert.md +71 -0
- package/templates/.claude/agents/be-fastapi-expert.md +33 -0
- package/templates/.claude/agents/be-go-backend-expert.md +33 -0
- package/templates/.claude/agents/be-nestjs-expert.md +51 -0
- package/templates/.claude/agents/be-springboot-expert.md +75 -0
- package/templates/.claude/agents/db-supabase-expert.md +63 -0
- package/templates/{agents/sw-engineer/frontend/svelte-agent/AGENT.md → .claude/agents/fe-svelte-agent.md} +16 -31
- package/templates/.claude/agents/fe-vercel-agent.md +57 -0
- package/templates/{agents/sw-engineer/frontend/vuejs-agent/AGENT.md → .claude/agents/fe-vuejs-agent.md} +16 -31
- package/templates/.claude/agents/infra-aws-expert.md +37 -0
- package/templates/.claude/agents/infra-docker-expert.md +37 -0
- package/templates/.claude/agents/lang-golang-expert.md +33 -0
- package/templates/.claude/agents/lang-java21-expert.md +56 -0
- package/templates/.claude/agents/lang-kotlin-expert.md +33 -0
- package/templates/.claude/agents/lang-python-expert.md +33 -0
- package/templates/.claude/agents/lang-rust-expert.md +33 -0
- package/templates/.claude/agents/lang-typescript-expert.md +33 -0
- package/templates/.claude/agents/mgr-creator.md +102 -0
- package/templates/{agents/manager/gitnerd/AGENT.md → .claude/agents/mgr-gitnerd.md} +8 -17
- package/templates/.claude/agents/mgr-sauron.md +139 -0
- package/templates/{agents/manager/supplier/AGENT.md → .claude/agents/mgr-supplier.md} +14 -46
- package/templates/.claude/agents/mgr-sync-checker.md +89 -0
- package/templates/{agents/manager/updater/AGENT.md → .claude/agents/mgr-updater.md} +21 -53
- package/templates/{agents/qa-team/qa-engineer/AGENT.md → .claude/agents/qa-engineer.md} +13 -24
- package/templates/{agents/qa-team/qa-planner/AGENT.md → .claude/agents/qa-planner.md} +10 -20
- package/templates/{agents/qa-team/qa-writer/AGENT.md → .claude/agents/qa-writer.md} +10 -20
- package/templates/.claude/agents/sys-memory-keeper.md +105 -0
- package/templates/.claude/agents/sys-naggy.md +81 -0
- package/templates/{agents/sw-engineer/tooling/bun-expert/AGENT.md → .claude/agents/tool-bun-expert.md} +28 -39
- package/templates/.claude/agents/tool-npm-expert.md +76 -0
- package/templates/.claude/agents/tool-optimizer.md +75 -0
- package/templates/{agents/tutor/go-tutor/AGENT.md → .claude/agents/tutor-go.md} +16 -27
- package/templates/.claude/contexts/ecomode.md +5 -5
- package/templates/.claude/rules/MUST-agent-design.md +60 -42
- package/templates/.claude/rules/MUST-agent-identification.md +11 -11
- package/templates/.claude/rules/MUST-continuous-improvement.md +2 -2
- package/templates/.claude/rules/MUST-intent-transparency.md +18 -18
- package/templates/.claude/rules/MUST-orchestrator-coordination.md +197 -111
- package/templates/.claude/rules/MUST-parallel-execution.md +86 -29
- package/templates/.claude/rules/MUST-sync-verification.md +52 -45
- package/templates/.claude/rules/MUST-tool-identification.md +79 -19
- package/templates/.claude/rules/SHOULD-ecomode.md +3 -3
- package/templates/.claude/rules/SHOULD-hud-statusline.md +12 -5
- package/templates/.claude/rules/SHOULD-memory-integration.md +4 -4
- package/templates/.claude/rules/SHOULD-pipeline-mode.md +1 -1
- package/templates/.claude/skills/audit-agents/SKILL.md +116 -0
- package/templates/{skills/infrastructure → .claude/skills}/aws-best-practices/SKILL.md +4 -4
- package/templates/.claude/skills/create-agent/SKILL.md +91 -0
- package/templates/.claude/skills/dev-lead-routing/SKILL.md +238 -0
- package/templates/{commands/dev/refactor.md → .claude/skills/dev-refactor/SKILL.md} +17 -20
- package/templates/{commands/dev/review.md → .claude/skills/dev-review/SKILL.md} +16 -17
- package/templates/{agents/manager/supplier/refs/skills/infrastructure → .claude/skills}/docker-best-practices/SKILL.md +4 -4
- package/templates/{agents/manager/supplier/refs/skills/backend → .claude/skills}/fastapi-best-practices/SKILL.md +4 -4
- package/templates/.claude/skills/fix-refs/SKILL.md +107 -0
- package/templates/{skills/backend → .claude/skills}/go-backend-best-practices/SKILL.md +4 -4
- package/templates/{skills/development → .claude/skills}/go-best-practices/SKILL.md +4 -4
- package/templates/{commands/system/help.md → .claude/skills/help/SKILL.md} +34 -46
- package/templates/{skills/orchestration → .claude/skills}/intent-detection/SKILL.md +14 -14
- package/templates/{agents/manager/supplier/refs/skills/orchestration → .claude/skills}/intent-detection/patterns/agent-triggers.yaml +117 -110
- package/templates/{agents/sw-engineer/language/kotlin-expert/refs → .claude/skills}/kotlin-best-practices/SKILL.md +4 -4
- package/templates/{commands/system/lists.md → .claude/skills/lists/SKILL.md} +25 -33
- package/templates/{agents/manager/supplier/refs/skills/system → .claude/skills}/memory-management/SKILL.md +10 -10
- package/templates/{commands/memory/recall.md → .claude/skills/memory-recall/SKILL.md} +31 -43
- package/templates/{commands/memory/save.md → .claude/skills/memory-save/SKILL.md} +27 -29
- package/templates/.claude/skills/npm-audit/SKILL.md +72 -0
- package/templates/.claude/skills/npm-publish/SKILL.md +63 -0
- package/templates/.claude/skills/npm-version/SKILL.md +75 -0
- package/templates/.claude/skills/optimize-analyze/SKILL.md +55 -0
- package/templates/.claude/skills/optimize-bundle/SKILL.md +67 -0
- package/templates/.claude/skills/optimize-report/SKILL.md +74 -0
- package/templates/{skills/orchestration → .claude/skills}/pipeline-execution/SKILL.md +4 -4
- package/templates/{commands/pipeline/list.md → .claude/skills/pipeline-list/SKILL.md} +11 -18
- package/templates/{commands/pipeline/run.md → .claude/skills/pipeline-run/SKILL.md} +38 -22
- package/templates/{agents/sw-engineer/language/python-expert/refs → .claude/skills}/python-best-practices/SKILL.md +4 -4
- package/templates/.claude/skills/qa-lead-routing/SKILL.md +277 -0
- package/templates/{skills/development → .claude/skills}/react-best-practices/SKILL.md +4 -4
- package/templates/{skills/system → .claude/skills}/result-aggregation/SKILL.md +17 -17
- package/templates/{agents/sw-engineer/language/rust-expert/refs → .claude/skills}/rust-best-practices/SKILL.md +4 -4
- package/templates/.claude/skills/sauron-watch/SKILL.md +144 -0
- package/templates/.claude/skills/secretary-routing/SKILL.md +178 -0
- package/templates/{skills/backend → .claude/skills}/springboot-best-practices/SKILL.md +4 -4
- package/templates/{commands/system/status.md → .claude/skills/status/SKILL.md} +29 -39
- package/templates/.claude/skills/supabase-postgres-best-practices/SKILL.md +98 -0
- package/templates/{skills/development → .claude/skills}/typescript-best-practices/SKILL.md +4 -4
- package/templates/{commands/updater/docs.md → .claude/skills/update-docs/SKILL.md} +71 -96
- package/templates/{commands/updater/external.md → .claude/skills/update-external/SKILL.md} +34 -99
- package/templates/{agents/manager/supplier/refs/skills/development → .claude/skills}/vercel-deploy/SKILL.md +4 -4
- package/templates/{agents/manager/supplier/refs/skills/development → .claude/skills}/web-design-guidelines/SKILL.md +4 -4
- package/templates/CLAUDE.md.en +71 -70
- package/templates/CLAUDE.md.ko +64 -64
- package/templates/examples/code-review.yaml +66 -0
- package/templates/guides/aws/index.yaml +1 -1
- package/templates/guides/claude-code/11-sub-agents.md +159 -0
- package/templates/guides/docker/index.yaml +1 -1
- package/templates/guides/fastapi/index.yaml +1 -1
- package/templates/guides/go-backend/index.yaml +1 -1
- package/templates/guides/golang/index.yaml +1 -1
- package/templates/guides/index.yaml +9 -0
- package/templates/guides/kotlin/index.yaml +1 -1
- package/templates/guides/python/index.yaml +1 -1
- package/templates/guides/rust/index.yaml +1 -1
- package/templates/guides/springboot/index.yaml +1 -1
- package/templates/guides/supabase-postgres/README.md +32 -0
- package/templates/guides/supabase-postgres/index.yaml +19 -0
- package/templates/guides/typescript/index.yaml +1 -1
- package/templates/index.yaml +18 -0
- package/templates/manifest.json +11 -17
- package/templates/pipelines/examples/code-review.yaml +1 -1
- package/templates/templates/pipeline-template.yaml +50 -0
- package/templates/agents/index.yaml +0 -243
- package/templates/agents/infra-engineer/aws-expert/AGENT.md +0 -47
- package/templates/agents/infra-engineer/aws-expert/index.yaml +0 -27
- package/templates/agents/infra-engineer/aws-expert/refs/aws/common-patterns.md +0 -169
- package/templates/agents/infra-engineer/aws-expert/refs/aws/index.yaml +0 -26
- package/templates/agents/infra-engineer/aws-expert/refs/aws/well-architected.md +0 -143
- package/templates/agents/infra-engineer/aws-expert/refs/aws-best-practices/SKILL.md +0 -279
- package/templates/agents/infra-engineer/aws-expert/refs/aws-best-practices/index.yaml +0 -27
- package/templates/agents/infra-engineer/docker-expert/AGENT.md +0 -47
- package/templates/agents/infra-engineer/docker-expert/index.yaml +0 -27
- package/templates/agents/infra-engineer/docker-expert/refs/docker/compose-best-practices.md +0 -284
- package/templates/agents/infra-engineer/docker-expert/refs/docker/dockerfile-best-practices.md +0 -262
- package/templates/agents/infra-engineer/docker-expert/refs/docker/index.yaml +0 -26
- package/templates/agents/infra-engineer/docker-expert/refs/docker-best-practices/SKILL.md +0 -274
- package/templates/agents/infra-engineer/docker-expert/refs/docker-best-practices/index.yaml +0 -26
- package/templates/agents/manager/creator/AGENT.md +0 -274
- package/templates/agents/manager/creator/index.yaml +0 -66
- package/templates/agents/manager/creator/refs/rules/MAY-optimization.md +0 -93
- package/templates/agents/manager/creator/refs/rules/MUST-agent-design.md +0 -107
- package/templates/agents/manager/creator/refs/rules/MUST-agent-identification.md +0 -108
- package/templates/agents/manager/creator/refs/rules/MUST-continuous-improvement.md +0 -132
- package/templates/agents/manager/creator/refs/rules/MUST-intent-transparency.md +0 -199
- package/templates/agents/manager/creator/refs/rules/MUST-language-policy.md +0 -62
- package/templates/agents/manager/creator/refs/rules/MUST-orchestrator-coordination.md +0 -291
- package/templates/agents/manager/creator/refs/rules/MUST-parallel-execution.md +0 -341
- package/templates/agents/manager/creator/refs/rules/MUST-permissions.md +0 -84
- package/templates/agents/manager/creator/refs/rules/MUST-safety.md +0 -69
- package/templates/agents/manager/creator/refs/rules/MUST-sync-verification.md +0 -219
- package/templates/agents/manager/creator/refs/rules/MUST-tool-identification.md +0 -112
- package/templates/agents/manager/creator/refs/rules/SHOULD-ecomode.md +0 -145
- package/templates/agents/manager/creator/refs/rules/SHOULD-error-handling.md +0 -102
- package/templates/agents/manager/creator/refs/rules/SHOULD-hud-statusline.md +0 -89
- package/templates/agents/manager/creator/refs/rules/SHOULD-interaction.md +0 -103
- package/templates/agents/manager/creator/refs/rules/SHOULD-memory-integration.md +0 -114
- package/templates/agents/manager/creator/refs/rules/SHOULD-pipeline-mode.md +0 -165
- package/templates/agents/manager/creator/refs/rules/index.yaml +0 -125
- package/templates/agents/manager/gitnerd/index.yaml +0 -55
- package/templates/agents/manager/sauron/AGENT.md +0 -153
- package/templates/agents/manager/sauron/index.yaml +0 -52
- package/templates/agents/manager/supplier/index.yaml +0 -31
- package/templates/agents/manager/supplier/refs/guides/aws/common-patterns.md +0 -169
- package/templates/agents/manager/supplier/refs/guides/aws/index.yaml +0 -26
- package/templates/agents/manager/supplier/refs/guides/aws/well-architected.md +0 -143
- package/templates/agents/manager/supplier/refs/guides/claude-code/01-overview.md +0 -42
- package/templates/agents/manager/supplier/refs/guides/claude-code/03-tools.md +0 -107
- package/templates/agents/manager/supplier/refs/guides/claude-code/04-agent-skills.md +0 -90
- package/templates/agents/manager/supplier/refs/guides/claude-code/05-agent-sdk.md +0 -129
- package/templates/agents/manager/supplier/refs/guides/claude-code/06-mcp.md +0 -165
- package/templates/agents/manager/supplier/refs/guides/claude-code/07-prompt-engineering.md +0 -100
- package/templates/agents/manager/supplier/refs/guides/claude-code/08-testing.md +0 -58
- package/templates/agents/manager/supplier/refs/guides/claude-code/09-guardrails.md +0 -80
- package/templates/agents/manager/supplier/refs/guides/claude-code/10-monitoring.md +0 -89
- package/templates/agents/manager/supplier/refs/guides/claude-code/index.yaml +0 -51
- package/templates/agents/manager/supplier/refs/guides/docker/compose-best-practices.md +0 -284
- package/templates/agents/manager/supplier/refs/guides/docker/dockerfile-best-practices.md +0 -262
- package/templates/agents/manager/supplier/refs/guides/docker/index.yaml +0 -26
- package/templates/agents/manager/supplier/refs/guides/fastapi/best-practices.md +0 -232
- package/templates/agents/manager/supplier/refs/guides/fastapi/index.yaml +0 -21
- package/templates/agents/manager/supplier/refs/guides/go-backend/index.yaml +0 -26
- package/templates/agents/manager/supplier/refs/guides/go-backend/project-layout.md +0 -243
- package/templates/agents/manager/supplier/refs/guides/go-backend/uber-style.md +0 -212
- package/templates/agents/manager/supplier/refs/guides/golang/concurrency.md +0 -282
- package/templates/agents/manager/supplier/refs/guides/golang/effective-go.md +0 -309
- package/templates/agents/manager/supplier/refs/guides/golang/error-handling.md +0 -250
- package/templates/agents/manager/supplier/refs/guides/golang/index.yaml +0 -27
- package/templates/agents/manager/supplier/refs/guides/index.yaml +0 -101
- package/templates/agents/manager/supplier/refs/guides/kotlin/coding-conventions.md +0 -247
- package/templates/agents/manager/supplier/refs/guides/kotlin/idioms.md +0 -234
- package/templates/agents/manager/supplier/refs/guides/kotlin/index.yaml +0 -26
- package/templates/agents/manager/supplier/refs/guides/python/index.yaml +0 -26
- package/templates/agents/manager/supplier/refs/guides/python/pep8-style-guide.md +0 -202
- package/templates/agents/manager/supplier/refs/guides/python/zen-of-python.md +0 -79
- package/templates/agents/manager/supplier/refs/guides/rust/error-handling.md +0 -262
- package/templates/agents/manager/supplier/refs/guides/rust/index.yaml +0 -26
- package/templates/agents/manager/supplier/refs/guides/rust/ownership.md +0 -180
- package/templates/agents/manager/supplier/refs/guides/springboot/best-practices.md +0 -361
- package/templates/agents/manager/supplier/refs/guides/springboot/index.yaml +0 -22
- package/templates/agents/manager/supplier/refs/guides/typescript/advanced-types.md +0 -225
- package/templates/agents/manager/supplier/refs/guides/typescript/index.yaml +0 -26
- package/templates/agents/manager/supplier/refs/guides/typescript/type-system.md +0 -219
- package/templates/agents/manager/supplier/refs/guides/web-design/accessibility.md +0 -66
- package/templates/agents/manager/supplier/refs/guides/web-design/index.yaml +0 -20
- package/templates/agents/manager/supplier/refs/guides/web-design/performance.md +0 -102
- package/templates/agents/manager/supplier/refs/rules/MAY-optimization.md +0 -93
- package/templates/agents/manager/supplier/refs/rules/MUST-agent-design.md +0 -107
- package/templates/agents/manager/supplier/refs/rules/MUST-agent-identification.md +0 -108
- package/templates/agents/manager/supplier/refs/rules/MUST-continuous-improvement.md +0 -132
- package/templates/agents/manager/supplier/refs/rules/MUST-intent-transparency.md +0 -199
- package/templates/agents/manager/supplier/refs/rules/MUST-language-policy.md +0 -62
- package/templates/agents/manager/supplier/refs/rules/MUST-orchestrator-coordination.md +0 -291
- package/templates/agents/manager/supplier/refs/rules/MUST-parallel-execution.md +0 -341
- package/templates/agents/manager/supplier/refs/rules/MUST-permissions.md +0 -84
- package/templates/agents/manager/supplier/refs/rules/MUST-safety.md +0 -69
- package/templates/agents/manager/supplier/refs/rules/MUST-sync-verification.md +0 -219
- package/templates/agents/manager/supplier/refs/rules/MUST-tool-identification.md +0 -112
- package/templates/agents/manager/supplier/refs/rules/SHOULD-ecomode.md +0 -145
- package/templates/agents/manager/supplier/refs/rules/SHOULD-error-handling.md +0 -102
- package/templates/agents/manager/supplier/refs/rules/SHOULD-hud-statusline.md +0 -89
- package/templates/agents/manager/supplier/refs/rules/SHOULD-interaction.md +0 -103
- package/templates/agents/manager/supplier/refs/rules/SHOULD-memory-integration.md +0 -114
- package/templates/agents/manager/supplier/refs/rules/SHOULD-pipeline-mode.md +0 -165
- package/templates/agents/manager/supplier/refs/rules/index.yaml +0 -125
- package/templates/agents/manager/supplier/refs/skills/backend/fastapi-best-practices/index.yaml +0 -25
- package/templates/agents/manager/supplier/refs/skills/backend/go-backend-best-practices/SKILL.md +0 -337
- package/templates/agents/manager/supplier/refs/skills/backend/go-backend-best-practices/index.yaml +0 -26
- package/templates/agents/manager/supplier/refs/skills/backend/springboot-best-practices/SKILL.md +0 -356
- package/templates/agents/manager/supplier/refs/skills/backend/springboot-best-practices/index.yaml +0 -27
- package/templates/agents/manager/supplier/refs/skills/development/go-best-practices/SKILL.md +0 -202
- package/templates/agents/manager/supplier/refs/skills/development/go-best-practices/index.yaml +0 -25
- package/templates/agents/manager/supplier/refs/skills/development/kotlin-best-practices/SKILL.md +0 -255
- package/templates/agents/manager/supplier/refs/skills/development/kotlin-best-practices/index.yaml +0 -27
- package/templates/agents/manager/supplier/refs/skills/development/python-best-practices/SKILL.md +0 -221
- package/templates/agents/manager/supplier/refs/skills/development/python-best-practices/index.yaml +0 -25
- package/templates/agents/manager/supplier/refs/skills/development/react-best-practices/SKILL.md +0 -100
- package/templates/agents/manager/supplier/refs/skills/development/react-best-practices/index.yaml +0 -39
- package/templates/agents/manager/supplier/refs/skills/development/rust-best-practices/SKILL.md +0 -266
- package/templates/agents/manager/supplier/refs/skills/development/rust-best-practices/index.yaml +0 -26
- package/templates/agents/manager/supplier/refs/skills/development/typescript-best-practices/SKILL.md +0 -320
- package/templates/agents/manager/supplier/refs/skills/development/typescript-best-practices/index.yaml +0 -28
- package/templates/agents/manager/supplier/refs/skills/development/vercel-deploy/index.yaml +0 -30
- package/templates/agents/manager/supplier/refs/skills/development/web-design-guidelines/index.yaml +0 -34
- package/templates/agents/manager/supplier/refs/skills/index.yaml +0 -129
- package/templates/agents/manager/supplier/refs/skills/infrastructure/aws-best-practices/SKILL.md +0 -279
- package/templates/agents/manager/supplier/refs/skills/infrastructure/aws-best-practices/index.yaml +0 -27
- package/templates/agents/manager/supplier/refs/skills/infrastructure/docker-best-practices/index.yaml +0 -26
- package/templates/agents/manager/supplier/refs/skills/orchestration/intent-detection/SKILL.md +0 -214
- package/templates/agents/manager/supplier/refs/skills/orchestration/intent-detection/index.yaml +0 -30
- package/templates/agents/manager/supplier/refs/skills/orchestration/pipeline-execution/SKILL.md +0 -188
- package/templates/agents/manager/supplier/refs/skills/orchestration/pipeline-execution/index.yaml +0 -27
- package/templates/agents/manager/supplier/refs/skills/system/memory-management/index.yaml +0 -30
- package/templates/agents/manager/supplier/refs/skills/system/result-aggregation/SKILL.md +0 -163
- package/templates/agents/manager/supplier/refs/skills/system/result-aggregation/index.yaml +0 -36
- package/templates/agents/manager/sync-checker/AGENT.md +0 -34
- package/templates/agents/manager/sync-checker/index.yaml +0 -32
- package/templates/agents/manager/updater/index.yaml +0 -31
- package/templates/agents/manager/updater/refs/rules/MAY-optimization.md +0 -93
- package/templates/agents/manager/updater/refs/rules/MUST-agent-design.md +0 -107
- package/templates/agents/manager/updater/refs/rules/MUST-agent-identification.md +0 -108
- package/templates/agents/manager/updater/refs/rules/MUST-continuous-improvement.md +0 -132
- package/templates/agents/manager/updater/refs/rules/MUST-intent-transparency.md +0 -199
- package/templates/agents/manager/updater/refs/rules/MUST-language-policy.md +0 -62
- package/templates/agents/manager/updater/refs/rules/MUST-orchestrator-coordination.md +0 -291
- package/templates/agents/manager/updater/refs/rules/MUST-parallel-execution.md +0 -341
- package/templates/agents/manager/updater/refs/rules/MUST-permissions.md +0 -84
- package/templates/agents/manager/updater/refs/rules/MUST-safety.md +0 -69
- package/templates/agents/manager/updater/refs/rules/MUST-sync-verification.md +0 -219
- package/templates/agents/manager/updater/refs/rules/MUST-tool-identification.md +0 -112
- package/templates/agents/manager/updater/refs/rules/SHOULD-ecomode.md +0 -145
- package/templates/agents/manager/updater/refs/rules/SHOULD-error-handling.md +0 -102
- package/templates/agents/manager/updater/refs/rules/SHOULD-hud-statusline.md +0 -89
- package/templates/agents/manager/updater/refs/rules/SHOULD-interaction.md +0 -103
- package/templates/agents/manager/updater/refs/rules/SHOULD-memory-integration.md +0 -114
- package/templates/agents/manager/updater/refs/rules/SHOULD-pipeline-mode.md +0 -165
- package/templates/agents/manager/updater/refs/rules/index.yaml +0 -125
- package/templates/agents/orchestrator/dev-lead/AGENT.md +0 -116
- package/templates/agents/orchestrator/dev-lead/index.yaml +0 -73
- package/templates/agents/orchestrator/planner/AGENT.md +0 -102
- package/templates/agents/orchestrator/planner/index.yaml +0 -38
- package/templates/agents/orchestrator/qa-lead/AGENT.md +0 -92
- package/templates/agents/orchestrator/qa-lead/index.yaml +0 -40
- package/templates/agents/orchestrator/secretary/AGENT.md +0 -132
- package/templates/agents/orchestrator/secretary/index.yaml +0 -55
- package/templates/agents/orchestrator/secretary/refs/rules/MAY-optimization.md +0 -93
- package/templates/agents/orchestrator/secretary/refs/rules/MUST-agent-design.md +0 -107
- package/templates/agents/orchestrator/secretary/refs/rules/MUST-agent-identification.md +0 -108
- package/templates/agents/orchestrator/secretary/refs/rules/MUST-continuous-improvement.md +0 -132
- package/templates/agents/orchestrator/secretary/refs/rules/MUST-intent-transparency.md +0 -199
- package/templates/agents/orchestrator/secretary/refs/rules/MUST-language-policy.md +0 -62
- package/templates/agents/orchestrator/secretary/refs/rules/MUST-orchestrator-coordination.md +0 -291
- package/templates/agents/orchestrator/secretary/refs/rules/MUST-parallel-execution.md +0 -341
- package/templates/agents/orchestrator/secretary/refs/rules/MUST-permissions.md +0 -84
- package/templates/agents/orchestrator/secretary/refs/rules/MUST-safety.md +0 -69
- package/templates/agents/orchestrator/secretary/refs/rules/MUST-sync-verification.md +0 -219
- package/templates/agents/orchestrator/secretary/refs/rules/MUST-tool-identification.md +0 -112
- package/templates/agents/orchestrator/secretary/refs/rules/SHOULD-ecomode.md +0 -145
- package/templates/agents/orchestrator/secretary/refs/rules/SHOULD-error-handling.md +0 -102
- package/templates/agents/orchestrator/secretary/refs/rules/SHOULD-hud-statusline.md +0 -89
- package/templates/agents/orchestrator/secretary/refs/rules/SHOULD-interaction.md +0 -103
- package/templates/agents/orchestrator/secretary/refs/rules/SHOULD-memory-integration.md +0 -114
- package/templates/agents/orchestrator/secretary/refs/rules/SHOULD-pipeline-mode.md +0 -165
- package/templates/agents/orchestrator/secretary/refs/rules/index.yaml +0 -125
- package/templates/agents/qa-team/qa-engineer/index.yaml +0 -59
- package/templates/agents/qa-team/qa-planner/index.yaml +0 -47
- package/templates/agents/qa-team/qa-writer/index.yaml +0 -44
- package/templates/agents/sw-architect/documenter/index.yaml +0 -39
- package/templates/agents/sw-architect/speckit-agent/index.yaml +0 -78
- package/templates/agents/sw-engineer/backend/express-expert/AGENT.md +0 -132
- package/templates/agents/sw-engineer/backend/express-expert/index.yaml +0 -36
- package/templates/agents/sw-engineer/backend/fastapi-expert/AGENT.md +0 -47
- package/templates/agents/sw-engineer/backend/fastapi-expert/index.yaml +0 -27
- package/templates/agents/sw-engineer/backend/fastapi-expert/refs/fastapi/best-practices.md +0 -232
- package/templates/agents/sw-engineer/backend/fastapi-expert/refs/fastapi/index.yaml +0 -21
- package/templates/agents/sw-engineer/backend/fastapi-expert/refs/fastapi-best-practices/SKILL.md +0 -269
- package/templates/agents/sw-engineer/backend/fastapi-expert/refs/fastapi-best-practices/index.yaml +0 -25
- package/templates/agents/sw-engineer/backend/go-backend-expert/AGENT.md +0 -47
- package/templates/agents/sw-engineer/backend/go-backend-expert/index.yaml +0 -27
- package/templates/agents/sw-engineer/backend/go-backend-expert/refs/go-backend/index.yaml +0 -26
- package/templates/agents/sw-engineer/backend/go-backend-expert/refs/go-backend/project-layout.md +0 -243
- package/templates/agents/sw-engineer/backend/go-backend-expert/refs/go-backend/uber-style.md +0 -212
- package/templates/agents/sw-engineer/backend/go-backend-expert/refs/go-backend-best-practices/SKILL.md +0 -337
- package/templates/agents/sw-engineer/backend/go-backend-expert/refs/go-backend-best-practices/index.yaml +0 -26
- package/templates/agents/sw-engineer/backend/nestjs-expert/AGENT.md +0 -107
- package/templates/agents/sw-engineer/backend/nestjs-expert/index.yaml +0 -43
- package/templates/agents/sw-engineer/backend/springboot-expert/AGENT.md +0 -103
- package/templates/agents/sw-engineer/backend/springboot-expert/index.yaml +0 -69
- package/templates/agents/sw-engineer/backend/springboot-expert/refs/springboot/best-practices.md +0 -361
- package/templates/agents/sw-engineer/backend/springboot-expert/refs/springboot/index.yaml +0 -22
- package/templates/agents/sw-engineer/backend/springboot-expert/refs/springboot-best-practices/SKILL.md +0 -356
- package/templates/agents/sw-engineer/backend/springboot-expert/refs/springboot-best-practices/index.yaml +0 -27
- package/templates/agents/sw-engineer/frontend/svelte-agent/index.yaml +0 -41
- package/templates/agents/sw-engineer/frontend/vercel-agent/AGENT.md +0 -67
- package/templates/agents/sw-engineer/frontend/vercel-agent/index.yaml +0 -43
- package/templates/agents/sw-engineer/frontend/vercel-agent/refs/react-best-practices/SKILL.md +0 -100
- package/templates/agents/sw-engineer/frontend/vercel-agent/refs/react-best-practices/index.yaml +0 -39
- package/templates/agents/sw-engineer/frontend/vercel-agent/refs/vercel-deploy/SKILL.md +0 -73
- package/templates/agents/sw-engineer/frontend/vercel-agent/refs/vercel-deploy/index.yaml +0 -30
- package/templates/agents/sw-engineer/frontend/vercel-agent/refs/web-design/accessibility.md +0 -66
- package/templates/agents/sw-engineer/frontend/vercel-agent/refs/web-design/index.yaml +0 -20
- package/templates/agents/sw-engineer/frontend/vercel-agent/refs/web-design/performance.md +0 -102
- package/templates/agents/sw-engineer/frontend/vercel-agent/refs/web-design-guidelines/SKILL.md +0 -117
- package/templates/agents/sw-engineer/frontend/vercel-agent/refs/web-design-guidelines/index.yaml +0 -34
- package/templates/agents/sw-engineer/frontend/vuejs-agent/index.yaml +0 -48
- package/templates/agents/sw-engineer/language/golang-expert/AGENT.md +0 -47
- package/templates/agents/sw-engineer/language/golang-expert/index.yaml +0 -27
- package/templates/agents/sw-engineer/language/golang-expert/refs/go-best-practices/SKILL.md +0 -202
- package/templates/agents/sw-engineer/language/golang-expert/refs/go-best-practices/index.yaml +0 -25
- package/templates/agents/sw-engineer/language/golang-expert/refs/golang/concurrency.md +0 -282
- package/templates/agents/sw-engineer/language/golang-expert/refs/golang/effective-go.md +0 -309
- package/templates/agents/sw-engineer/language/golang-expert/refs/golang/error-handling.md +0 -250
- package/templates/agents/sw-engineer/language/golang-expert/refs/golang/index.yaml +0 -27
- package/templates/agents/sw-engineer/language/java21-expert/AGENT.md +0 -122
- package/templates/agents/sw-engineer/language/java21-expert/index.yaml +0 -51
- package/templates/agents/sw-engineer/language/kotlin-expert/AGENT.md +0 -47
- package/templates/agents/sw-engineer/language/kotlin-expert/index.yaml +0 -27
- package/templates/agents/sw-engineer/language/kotlin-expert/refs/kotlin/coding-conventions.md +0 -247
- package/templates/agents/sw-engineer/language/kotlin-expert/refs/kotlin/idioms.md +0 -234
- package/templates/agents/sw-engineer/language/kotlin-expert/refs/kotlin/index.yaml +0 -26
- package/templates/agents/sw-engineer/language/kotlin-expert/refs/kotlin-best-practices/index.yaml +0 -27
- package/templates/agents/sw-engineer/language/python-expert/AGENT.md +0 -47
- package/templates/agents/sw-engineer/language/python-expert/index.yaml +0 -27
- package/templates/agents/sw-engineer/language/python-expert/refs/python/index.yaml +0 -26
- package/templates/agents/sw-engineer/language/python-expert/refs/python/pep8-style-guide.md +0 -202
- package/templates/agents/sw-engineer/language/python-expert/refs/python/zen-of-python.md +0 -79
- package/templates/agents/sw-engineer/language/python-expert/refs/python-best-practices/index.yaml +0 -25
- package/templates/agents/sw-engineer/language/rust-expert/AGENT.md +0 -47
- package/templates/agents/sw-engineer/language/rust-expert/index.yaml +0 -27
- package/templates/agents/sw-engineer/language/rust-expert/refs/rust/error-handling.md +0 -262
- package/templates/agents/sw-engineer/language/rust-expert/refs/rust/index.yaml +0 -26
- package/templates/agents/sw-engineer/language/rust-expert/refs/rust/ownership.md +0 -180
- package/templates/agents/sw-engineer/language/rust-expert/refs/rust-best-practices/index.yaml +0 -26
- package/templates/agents/sw-engineer/language/typescript-expert/AGENT.md +0 -47
- package/templates/agents/sw-engineer/language/typescript-expert/index.yaml +0 -27
- package/templates/agents/sw-engineer/language/typescript-expert/refs/typescript/advanced-types.md +0 -225
- package/templates/agents/sw-engineer/language/typescript-expert/refs/typescript/index.yaml +0 -26
- package/templates/agents/sw-engineer/language/typescript-expert/refs/typescript/type-system.md +0 -219
- package/templates/agents/sw-engineer/language/typescript-expert/refs/typescript-best-practices/SKILL.md +0 -320
- package/templates/agents/sw-engineer/language/typescript-expert/refs/typescript-best-practices/index.yaml +0 -28
- package/templates/agents/sw-engineer/tooling/bun-expert/index.yaml +0 -46
- package/templates/agents/sw-engineer/tooling/npm-expert/AGENT.md +0 -160
- package/templates/agents/sw-engineer/tooling/npm-expert/index.yaml +0 -45
- package/templates/agents/sw-engineer/tooling/optimizer/AGENT.md +0 -170
- package/templates/agents/sw-engineer/tooling/optimizer/index.yaml +0 -45
- package/templates/agents/system/memory-keeper/AGENT.md +0 -126
- package/templates/agents/system/memory-keeper/index.yaml +0 -45
- package/templates/agents/system/naggy/AGENT.md +0 -72
- package/templates/agents/system/naggy/index.yaml +0 -35
- package/templates/agents/tutor/go-tutor/index.yaml +0 -48
- package/templates/commands/COMMANDS.md +0 -136
- package/templates/commands/creator/agent.md +0 -121
- package/templates/commands/git/branch.yaml +0 -8
- package/templates/commands/git/commit.yaml +0 -4
- package/templates/commands/git/pr.yaml +0 -4
- package/templates/commands/git/status.yaml +0 -4
- package/templates/commands/git/sync.yaml +0 -4
- package/templates/commands/index.yaml +0 -225
- package/templates/commands/intent/explain.md +0 -144
- package/templates/commands/naggy/add.yaml +0 -8
- package/templates/commands/naggy/done.yaml +0 -8
- package/templates/commands/naggy/list.yaml +0 -4
- package/templates/commands/naggy/priority.yaml +0 -11
- package/templates/commands/naggy/remind.yaml +0 -4
- package/templates/commands/npm/audit.yaml +0 -62
- package/templates/commands/npm/publish.yaml +0 -52
- package/templates/commands/npm/version.yaml +0 -62
- package/templates/commands/optimize/analyze.yaml +0 -34
- package/templates/commands/optimize/bundle.yaml +0 -50
- package/templates/commands/optimize/report.yaml +0 -56
- package/templates/commands/sauron/quick.yaml +0 -4
- package/templates/commands/sauron/report.yaml +0 -4
- package/templates/commands/sauron/watch.yaml +0 -4
- package/templates/commands/supplier/audit.md +0 -133
- package/templates/commands/supplier/fix.md +0 -121
- package/templates/commands/sync/agents.yaml +0 -4
- package/templates/commands/sync/check.yaml +0 -4
- package/templates/commands/sync/commands.yaml +0 -4
- package/templates/commands/sync/docs.yaml +0 -4
- package/templates/commands/sync/fix.yaml +0 -4
- package/templates/skills/backend/fastapi-best-practices/SKILL.md +0 -269
- package/templates/skills/backend/fastapi-best-practices/index.yaml +0 -25
- package/templates/skills/backend/go-backend-best-practices/index.yaml +0 -26
- package/templates/skills/backend/springboot-best-practices/index.yaml +0 -27
- package/templates/skills/development/go-best-practices/index.yaml +0 -25
- package/templates/skills/development/kotlin-best-practices/SKILL.md +0 -255
- package/templates/skills/development/kotlin-best-practices/index.yaml +0 -27
- package/templates/skills/development/python-best-practices/SKILL.md +0 -221
- package/templates/skills/development/python-best-practices/index.yaml +0 -25
- package/templates/skills/development/react-best-practices/index.yaml +0 -39
- package/templates/skills/development/rust-best-practices/SKILL.md +0 -266
- package/templates/skills/development/rust-best-practices/index.yaml +0 -26
- package/templates/skills/development/typescript-best-practices/index.yaml +0 -28
- package/templates/skills/development/vercel-deploy/SKILL.md +0 -73
- package/templates/skills/development/vercel-deploy/index.yaml +0 -30
- package/templates/skills/development/web-design-guidelines/SKILL.md +0 -117
- package/templates/skills/development/web-design-guidelines/index.yaml +0 -34
- package/templates/skills/index.yaml +0 -129
- package/templates/skills/infrastructure/aws-best-practices/index.yaml +0 -27
- package/templates/skills/infrastructure/docker-best-practices/SKILL.md +0 -274
- package/templates/skills/infrastructure/docker-best-practices/index.yaml +0 -26
- package/templates/skills/orchestration/intent-detection/index.yaml +0 -30
- package/templates/skills/orchestration/intent-detection/patterns/agent-triggers.yaml +0 -342
- package/templates/skills/orchestration/pipeline-execution/index.yaml +0 -27
- package/templates/skills/system/memory-management/SKILL.md +0 -194
- package/templates/skills/system/memory-management/index.yaml +0 -30
- package/templates/skills/system/result-aggregation/index.yaml +0 -36
|
@@ -1,232 +0,0 @@
|
|
|
1
|
-
# FastAPI Best Practices
|
|
2
|
-
|
|
3
|
-
> Source: https://fastapi.tiangolo.com/ and community patterns
|
|
4
|
-
|
|
5
|
-
## Project Structure
|
|
6
|
-
|
|
7
|
-
Organize by domain, not by file type:
|
|
8
|
-
|
|
9
|
-
```
|
|
10
|
-
src/
|
|
11
|
-
├── auth/
|
|
12
|
-
│ ├── router.py # API endpoints
|
|
13
|
-
│ ├── schemas.py # Pydantic models
|
|
14
|
-
│ ├── models.py # Database models
|
|
15
|
-
│ ├── service.py # Business logic
|
|
16
|
-
│ ├── dependencies.py # Route validators
|
|
17
|
-
│ └── exceptions.py # Custom exceptions
|
|
18
|
-
├── users/
|
|
19
|
-
│ └── ...
|
|
20
|
-
├── config.py
|
|
21
|
-
└── main.py
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## Async Best Practices
|
|
25
|
-
|
|
26
|
-
### I/O-Intensive Tasks
|
|
27
|
-
|
|
28
|
-
```python
|
|
29
|
-
# Use async def with await for non-blocking I/O
|
|
30
|
-
async def fetch_user(user_id: int) -> User:
|
|
31
|
-
async with httpx.AsyncClient() as client:
|
|
32
|
-
response = await client.get(f"/api/users/{user_id}")
|
|
33
|
-
return User(**response.json())
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
### Sync I/O Operations
|
|
37
|
-
|
|
38
|
-
```python
|
|
39
|
-
# Use regular def - FastAPI offloads to threadpool
|
|
40
|
-
def read_config() -> dict:
|
|
41
|
-
with open("config.yaml") as f:
|
|
42
|
-
return yaml.safe_load(f)
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
### CPU-Intensive Tasks
|
|
46
|
-
|
|
47
|
-
```python
|
|
48
|
-
# Use separate worker processes
|
|
49
|
-
from celery import Celery
|
|
50
|
-
|
|
51
|
-
celery_app = Celery("tasks", broker="redis://localhost")
|
|
52
|
-
|
|
53
|
-
@celery_app.task
|
|
54
|
-
def process_data(data: dict) -> dict:
|
|
55
|
-
# Heavy computation
|
|
56
|
-
return result
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
### Never Do This
|
|
60
|
-
|
|
61
|
-
```python
|
|
62
|
-
# WRONG: Blocks event loop
|
|
63
|
-
async def bad_example():
|
|
64
|
-
time.sleep(5) # Never use time.sleep in async!
|
|
65
|
-
|
|
66
|
-
# CORRECT: Use asyncio.sleep
|
|
67
|
-
async def good_example():
|
|
68
|
-
await asyncio.sleep(5)
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
## Pydantic Models
|
|
72
|
-
|
|
73
|
-
### Custom Base Model
|
|
74
|
-
|
|
75
|
-
```python
|
|
76
|
-
from pydantic import BaseModel
|
|
77
|
-
from datetime import datetime
|
|
78
|
-
|
|
79
|
-
class AppBaseModel(BaseModel):
|
|
80
|
-
class Config:
|
|
81
|
-
from_attributes = True
|
|
82
|
-
json_encoders = {
|
|
83
|
-
datetime: lambda v: v.isoformat()
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
class UserResponse(AppBaseModel):
|
|
87
|
-
id: int
|
|
88
|
-
email: str
|
|
89
|
-
created_at: datetime
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
### Validation
|
|
93
|
-
|
|
94
|
-
```python
|
|
95
|
-
from pydantic import BaseModel, EmailStr, Field, validator
|
|
96
|
-
|
|
97
|
-
class UserCreate(BaseModel):
|
|
98
|
-
email: EmailStr
|
|
99
|
-
password: str = Field(..., min_length=8)
|
|
100
|
-
age: int = Field(..., ge=18, le=120)
|
|
101
|
-
|
|
102
|
-
@validator("password")
|
|
103
|
-
def password_strength(cls, v):
|
|
104
|
-
if not any(c.isupper() for c in v):
|
|
105
|
-
raise ValueError("Password must contain uppercase")
|
|
106
|
-
return v
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
## Dependencies
|
|
110
|
-
|
|
111
|
-
### Authentication
|
|
112
|
-
|
|
113
|
-
```python
|
|
114
|
-
from fastapi import Depends, HTTPException
|
|
115
|
-
from fastapi.security import OAuth2PasswordBearer
|
|
116
|
-
|
|
117
|
-
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
|
|
118
|
-
|
|
119
|
-
async def get_current_user(
|
|
120
|
-
token: str = Depends(oauth2_scheme),
|
|
121
|
-
db: AsyncSession = Depends(get_db)
|
|
122
|
-
) -> User:
|
|
123
|
-
user = await verify_token(token, db)
|
|
124
|
-
if not user:
|
|
125
|
-
raise HTTPException(status_code=401)
|
|
126
|
-
return user
|
|
127
|
-
|
|
128
|
-
async def get_active_user(
|
|
129
|
-
user: User = Depends(get_current_user)
|
|
130
|
-
) -> User:
|
|
131
|
-
if not user.is_active:
|
|
132
|
-
raise HTTPException(status_code=403)
|
|
133
|
-
return user
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
### Database Session
|
|
137
|
-
|
|
138
|
-
```python
|
|
139
|
-
from sqlalchemy.ext.asyncio import AsyncSession
|
|
140
|
-
|
|
141
|
-
async def get_db() -> AsyncGenerator[AsyncSession, None]:
|
|
142
|
-
async with async_session() as session:
|
|
143
|
-
try:
|
|
144
|
-
yield session
|
|
145
|
-
await session.commit()
|
|
146
|
-
except Exception:
|
|
147
|
-
await session.rollback()
|
|
148
|
-
raise
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
## Error Handling
|
|
152
|
-
|
|
153
|
-
```python
|
|
154
|
-
# Custom exceptions
|
|
155
|
-
class AuthException(Exception):
|
|
156
|
-
pass
|
|
157
|
-
|
|
158
|
-
class InvalidCredentials(AuthException):
|
|
159
|
-
pass
|
|
160
|
-
|
|
161
|
-
# Exception handler
|
|
162
|
-
@app.exception_handler(AuthException)
|
|
163
|
-
async def auth_exception_handler(request, exc):
|
|
164
|
-
return JSONResponse(
|
|
165
|
-
status_code=401,
|
|
166
|
-
content={"detail": str(exc)}
|
|
167
|
-
)
|
|
168
|
-
|
|
169
|
-
# In router
|
|
170
|
-
@router.post("/login")
|
|
171
|
-
async def login(credentials: LoginSchema):
|
|
172
|
-
try:
|
|
173
|
-
return await auth_service.login(credentials)
|
|
174
|
-
except InvalidCredentials:
|
|
175
|
-
raise HTTPException(status_code=401, detail="Invalid credentials")
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
## API Design
|
|
179
|
-
|
|
180
|
-
```python
|
|
181
|
-
from fastapi import APIRouter
|
|
182
|
-
|
|
183
|
-
router = APIRouter(
|
|
184
|
-
prefix="/users",
|
|
185
|
-
tags=["users"]
|
|
186
|
-
)
|
|
187
|
-
|
|
188
|
-
@router.get(
|
|
189
|
-
"/{user_id}",
|
|
190
|
-
response_model=UserResponse,
|
|
191
|
-
summary="Get user by ID",
|
|
192
|
-
responses={
|
|
193
|
-
404: {"model": ErrorResponse, "description": "User not found"}
|
|
194
|
-
}
|
|
195
|
-
)
|
|
196
|
-
async def get_user(
|
|
197
|
-
user_id: int,
|
|
198
|
-
db: AsyncSession = Depends(get_db),
|
|
199
|
-
current_user: User = Depends(get_current_user)
|
|
200
|
-
) -> UserResponse:
|
|
201
|
-
"""
|
|
202
|
-
Get a specific user by their ID.
|
|
203
|
-
|
|
204
|
-
- **user_id**: The unique identifier of the user
|
|
205
|
-
"""
|
|
206
|
-
user = await user_service.get(db, user_id)
|
|
207
|
-
if not user:
|
|
208
|
-
raise HTTPException(status_code=404, detail="User not found")
|
|
209
|
-
return user
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
## Testing
|
|
213
|
-
|
|
214
|
-
```python
|
|
215
|
-
import pytest
|
|
216
|
-
from httpx import AsyncClient
|
|
217
|
-
from main import app
|
|
218
|
-
|
|
219
|
-
@pytest.fixture
|
|
220
|
-
async def client():
|
|
221
|
-
async with AsyncClient(app=app, base_url="http://test") as ac:
|
|
222
|
-
yield ac
|
|
223
|
-
|
|
224
|
-
@pytest.mark.asyncio
|
|
225
|
-
async def test_create_user(client: AsyncClient):
|
|
226
|
-
response = await client.post(
|
|
227
|
-
"/users/",
|
|
228
|
-
json={"email": "test@example.com", "password": "Password123"}
|
|
229
|
-
)
|
|
230
|
-
assert response.status_code == 201
|
|
231
|
-
assert response.json()["email"] == "test@example.com"
|
|
232
|
-
```
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
# FastAPI Guide
|
|
2
|
-
|
|
3
|
-
metadata:
|
|
4
|
-
name: fastapi
|
|
5
|
-
description: FastAPI framework reference documentation
|
|
6
|
-
|
|
7
|
-
source:
|
|
8
|
-
type: external
|
|
9
|
-
origin: fastapi.tiangolo.com
|
|
10
|
-
urls:
|
|
11
|
-
- https://fastapi.tiangolo.com/
|
|
12
|
-
- https://github.com/zhanymkanov/fastapi-best-practices
|
|
13
|
-
last_fetched: "2026-01-22"
|
|
14
|
-
|
|
15
|
-
documents:
|
|
16
|
-
- name: best-practices
|
|
17
|
-
path: ./best-practices.md
|
|
18
|
-
description: FastAPI best practices and patterns
|
|
19
|
-
|
|
20
|
-
used_by:
|
|
21
|
-
- fastapi-expert
|
package/templates/agents/sw-engineer/backend/fastapi-expert/refs/fastapi-best-practices/SKILL.md
DELETED
|
@@ -1,269 +0,0 @@
|
|
|
1
|
-
# FastAPI Best Practices Skill
|
|
2
|
-
|
|
3
|
-
> **Category**: Backend
|
|
4
|
-
> **Source**: Internal (based on FastAPI docs and community patterns)
|
|
5
|
-
|
|
6
|
-
## Purpose
|
|
7
|
-
|
|
8
|
-
Apply FastAPI patterns for building high-performance async APIs.
|
|
9
|
-
|
|
10
|
-
## Rules
|
|
11
|
-
|
|
12
|
-
### 1. Project Structure
|
|
13
|
-
|
|
14
|
-
```yaml
|
|
15
|
-
structure:
|
|
16
|
-
domain_based: true
|
|
17
|
-
module_contents:
|
|
18
|
-
- router.py: API endpoints
|
|
19
|
-
- schemas.py: Pydantic models
|
|
20
|
-
- models.py: Database models
|
|
21
|
-
- service.py: Business logic
|
|
22
|
-
- dependencies.py: Route validators
|
|
23
|
-
- constants.py: Module constants
|
|
24
|
-
- config.py: Module configuration
|
|
25
|
-
- exceptions.py: Custom exceptions
|
|
26
|
-
- utils.py: Helper functions
|
|
27
|
-
|
|
28
|
-
imports:
|
|
29
|
-
style: explicit
|
|
30
|
-
example: "from src.auth import constants as auth_constants"
|
|
31
|
-
|
|
32
|
-
layout: |
|
|
33
|
-
src/
|
|
34
|
-
├── auth/
|
|
35
|
-
│ ├── router.py
|
|
36
|
-
│ ├── schemas.py
|
|
37
|
-
│ ├── models.py
|
|
38
|
-
│ ├── service.py
|
|
39
|
-
│ └── dependencies.py
|
|
40
|
-
├── users/
|
|
41
|
-
│ └── ...
|
|
42
|
-
├── config.py
|
|
43
|
-
└── main.py
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
### 2. Async Patterns
|
|
47
|
-
|
|
48
|
-
```yaml
|
|
49
|
-
io_intensive:
|
|
50
|
-
use: "async def"
|
|
51
|
-
await: "asyncio.sleep(), httpx, asyncpg, etc."
|
|
52
|
-
example: |
|
|
53
|
-
async def fetch_data():
|
|
54
|
-
async with httpx.AsyncClient() as client:
|
|
55
|
-
response = await client.get(url)
|
|
56
|
-
return response.json()
|
|
57
|
-
|
|
58
|
-
sync_io:
|
|
59
|
-
use: "def (regular function)"
|
|
60
|
-
reason: FastAPI offloads to threadpool automatically
|
|
61
|
-
example: |
|
|
62
|
-
def read_file():
|
|
63
|
-
with open('file.txt') as f:
|
|
64
|
-
return f.read()
|
|
65
|
-
|
|
66
|
-
cpu_intensive:
|
|
67
|
-
avoid: async and threadpool
|
|
68
|
-
use: separate worker processes
|
|
69
|
-
example: "Use Celery or multiprocessing"
|
|
70
|
-
|
|
71
|
-
never:
|
|
72
|
-
- "time.sleep() in async functions"
|
|
73
|
-
- "Blocking I/O in async functions"
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
### 3. Pydantic Models
|
|
77
|
-
|
|
78
|
-
```yaml
|
|
79
|
-
validation:
|
|
80
|
-
use_builtin: regex, enums, email, URL validators
|
|
81
|
-
custom_validators: for complex logic
|
|
82
|
-
|
|
83
|
-
base_model:
|
|
84
|
-
create_custom: true
|
|
85
|
-
purpose: enforce application-wide standards
|
|
86
|
-
example: |
|
|
87
|
-
from pydantic import BaseModel
|
|
88
|
-
from datetime import datetime
|
|
89
|
-
|
|
90
|
-
class AppBaseModel(BaseModel):
|
|
91
|
-
class Config:
|
|
92
|
-
from_attributes = True
|
|
93
|
-
json_encoders = {
|
|
94
|
-
datetime: lambda v: v.isoformat()
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
settings:
|
|
98
|
-
split: across modules
|
|
99
|
-
avoid: single global configuration
|
|
100
|
-
example: |
|
|
101
|
-
# auth/config.py
|
|
102
|
-
class AuthSettings(BaseSettings):
|
|
103
|
-
jwt_secret: str
|
|
104
|
-
jwt_algorithm: str = "HS256"
|
|
105
|
-
|
|
106
|
-
# database/config.py
|
|
107
|
-
class DatabaseSettings(BaseSettings):
|
|
108
|
-
url: str
|
|
109
|
-
pool_size: int = 5
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
### 4. Dependencies
|
|
113
|
-
|
|
114
|
-
```yaml
|
|
115
|
-
usage:
|
|
116
|
-
- Dependency injection
|
|
117
|
-
- Validation against database
|
|
118
|
-
- Authentication/authorization
|
|
119
|
-
- Request scoped caching
|
|
120
|
-
|
|
121
|
-
patterns:
|
|
122
|
-
chain: avoid code repetition
|
|
123
|
-
cache: FastAPI caches within request scope
|
|
124
|
-
decouple: small, reusable functions
|
|
125
|
-
|
|
126
|
-
example: |
|
|
127
|
-
async def get_current_user(
|
|
128
|
-
token: str = Depends(oauth2_scheme),
|
|
129
|
-
db: Session = Depends(get_db)
|
|
130
|
-
) -> User:
|
|
131
|
-
user = await db.get_user_by_token(token)
|
|
132
|
-
if not user:
|
|
133
|
-
raise HTTPException(status_code=401)
|
|
134
|
-
return user
|
|
135
|
-
|
|
136
|
-
async def get_active_user(
|
|
137
|
-
user: User = Depends(get_current_user)
|
|
138
|
-
) -> User:
|
|
139
|
-
if not user.is_active:
|
|
140
|
-
raise HTTPException(status_code=403)
|
|
141
|
-
return user
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
### 5. Error Handling
|
|
145
|
-
|
|
146
|
-
```yaml
|
|
147
|
-
custom_exceptions:
|
|
148
|
-
scope: module-specific
|
|
149
|
-
purpose: clarity and consistency
|
|
150
|
-
|
|
151
|
-
pattern: |
|
|
152
|
-
# auth/exceptions.py
|
|
153
|
-
class AuthException(Exception):
|
|
154
|
-
pass
|
|
155
|
-
|
|
156
|
-
class InvalidCredentials(AuthException):
|
|
157
|
-
pass
|
|
158
|
-
|
|
159
|
-
class TokenExpired(AuthException):
|
|
160
|
-
pass
|
|
161
|
-
|
|
162
|
-
# auth/router.py
|
|
163
|
-
@router.post("/login")
|
|
164
|
-
async def login(credentials: LoginSchema):
|
|
165
|
-
try:
|
|
166
|
-
return await auth_service.login(credentials)
|
|
167
|
-
except InvalidCredentials:
|
|
168
|
-
raise HTTPException(
|
|
169
|
-
status_code=401,
|
|
170
|
-
detail="Invalid credentials"
|
|
171
|
-
)
|
|
172
|
-
|
|
173
|
-
exception_handlers: |
|
|
174
|
-
@app.exception_handler(AuthException)
|
|
175
|
-
async def auth_exception_handler(request, exc):
|
|
176
|
-
return JSONResponse(
|
|
177
|
-
status_code=401,
|
|
178
|
-
content={"detail": str(exc)}
|
|
179
|
-
)
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
### 6. Database
|
|
183
|
-
|
|
184
|
-
```yaml
|
|
185
|
-
naming:
|
|
186
|
-
establish: upfront conventions
|
|
187
|
-
consistency: across all models
|
|
188
|
-
|
|
189
|
-
migrations:
|
|
190
|
-
tool: Alembic
|
|
191
|
-
naming: explicit naming rules
|
|
192
|
-
|
|
193
|
-
design:
|
|
194
|
-
approach: SQL-first
|
|
195
|
-
then: add Pydantic models
|
|
196
|
-
|
|
197
|
-
patterns: |
|
|
198
|
-
# Use async database drivers
|
|
199
|
-
from sqlalchemy.ext.asyncio import AsyncSession
|
|
200
|
-
|
|
201
|
-
async def get_user(db: AsyncSession, user_id: int):
|
|
202
|
-
result = await db.execute(
|
|
203
|
-
select(User).where(User.id == user_id)
|
|
204
|
-
)
|
|
205
|
-
return result.scalar_one_or_none()
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
### 7. API Design
|
|
209
|
-
|
|
210
|
-
```yaml
|
|
211
|
-
routing:
|
|
212
|
-
prefix: meaningful module prefix
|
|
213
|
-
tags: for documentation grouping
|
|
214
|
-
|
|
215
|
-
responses:
|
|
216
|
-
schema: always define response models
|
|
217
|
-
status_codes: document all possible codes
|
|
218
|
-
|
|
219
|
-
example: |
|
|
220
|
-
router = APIRouter(
|
|
221
|
-
prefix="/users",
|
|
222
|
-
tags=["users"]
|
|
223
|
-
)
|
|
224
|
-
|
|
225
|
-
@router.get(
|
|
226
|
-
"/{user_id}",
|
|
227
|
-
response_model=UserResponse,
|
|
228
|
-
responses={
|
|
229
|
-
404: {"model": ErrorResponse}
|
|
230
|
-
}
|
|
231
|
-
)
|
|
232
|
-
async def get_user(user_id: int):
|
|
233
|
-
...
|
|
234
|
-
```
|
|
235
|
-
|
|
236
|
-
### 8. Testing
|
|
237
|
-
|
|
238
|
-
```yaml
|
|
239
|
-
setup:
|
|
240
|
-
async_client: from day one
|
|
241
|
-
structure: mirror module layout
|
|
242
|
-
|
|
243
|
-
patterns: |
|
|
244
|
-
import pytest
|
|
245
|
-
from httpx import AsyncClient
|
|
246
|
-
|
|
247
|
-
@pytest.fixture
|
|
248
|
-
async def client():
|
|
249
|
-
async with AsyncClient(app=app, base_url="http://test") as ac:
|
|
250
|
-
yield ac
|
|
251
|
-
|
|
252
|
-
@pytest.mark.asyncio
|
|
253
|
-
async def test_get_user(client):
|
|
254
|
-
response = await client.get("/users/1")
|
|
255
|
-
assert response.status_code == 200
|
|
256
|
-
```
|
|
257
|
-
|
|
258
|
-
## Application
|
|
259
|
-
|
|
260
|
-
When writing FastAPI code:
|
|
261
|
-
|
|
262
|
-
1. **Always** use domain-based project structure
|
|
263
|
-
2. **Always** use `async def` for I/O operations
|
|
264
|
-
3. **Prefer** Pydantic for all validation
|
|
265
|
-
4. **Use** dependencies for reusable logic
|
|
266
|
-
5. **Define** module-specific exceptions
|
|
267
|
-
6. **Document** API with response models
|
|
268
|
-
7. **Test** with async client
|
|
269
|
-
8. **Use** Ruff for code quality
|
package/templates/agents/sw-engineer/backend/fastapi-expert/refs/fastapi-best-practices/index.yaml
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# FastAPI Best Practices Skill
|
|
2
|
-
|
|
3
|
-
metadata:
|
|
4
|
-
name: fastapi-best-practices
|
|
5
|
-
category: backend
|
|
6
|
-
description: FastAPI patterns for high-performance async APIs
|
|
7
|
-
|
|
8
|
-
source:
|
|
9
|
-
type: internal
|
|
10
|
-
reference:
|
|
11
|
-
- https://fastapi.tiangolo.com/
|
|
12
|
-
- https://github.com/zhanymkanov/fastapi-best-practices
|
|
13
|
-
|
|
14
|
-
provides:
|
|
15
|
-
- Project structure patterns
|
|
16
|
-
- Async/await best practices
|
|
17
|
-
- Pydantic validation patterns
|
|
18
|
-
- Dependency injection design
|
|
19
|
-
- Error handling patterns
|
|
20
|
-
- Database integration
|
|
21
|
-
- API design guidelines
|
|
22
|
-
- Testing patterns
|
|
23
|
-
|
|
24
|
-
used_by:
|
|
25
|
-
- fastapi-expert
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
# Go Backend Expert Agent
|
|
2
|
-
|
|
3
|
-
> **Type**: Backend Engineer
|
|
4
|
-
> **Source**: Internal
|
|
5
|
-
|
|
6
|
-
## Purpose
|
|
7
|
-
|
|
8
|
-
Expert Go backend developer specialized in building production-ready services following Uber style guide and standard project layout.
|
|
9
|
-
|
|
10
|
-
## Capabilities
|
|
11
|
-
|
|
12
|
-
1. Design Go backend service architecture
|
|
13
|
-
2. Implement HTTP/gRPC servers
|
|
14
|
-
3. Apply Uber Go style guide
|
|
15
|
-
4. Structure projects using standard layout
|
|
16
|
-
5. Handle concurrency safely
|
|
17
|
-
6. Implement proper error handling
|
|
18
|
-
|
|
19
|
-
## When to Use
|
|
20
|
-
|
|
21
|
-
- Building new Go backend services
|
|
22
|
-
- Reviewing existing Go backend code
|
|
23
|
-
- Designing microservices in Go
|
|
24
|
-
- Implementing concurrent systems
|
|
25
|
-
- Performance optimization
|
|
26
|
-
|
|
27
|
-
## Skills
|
|
28
|
-
|
|
29
|
-
| Skill | Purpose |
|
|
30
|
-
|-------|---------|
|
|
31
|
-
| go-backend-best-practices | Go backend development patterns |
|
|
32
|
-
|
|
33
|
-
## Guides
|
|
34
|
-
|
|
35
|
-
| Guide | Purpose |
|
|
36
|
-
|-------|---------|
|
|
37
|
-
| go-backend | Go backend reference documentation |
|
|
38
|
-
|
|
39
|
-
## Workflow
|
|
40
|
-
|
|
41
|
-
```
|
|
42
|
-
1. Understand requirements
|
|
43
|
-
2. Apply go-backend-best-practices skill
|
|
44
|
-
3. Reference go-backend guide for specifics
|
|
45
|
-
4. Write/review code with proper patterns
|
|
46
|
-
5. Ensure concurrency safety and error handling
|
|
47
|
-
```
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
# Go Backend Expert Agent
|
|
2
|
-
|
|
3
|
-
metadata:
|
|
4
|
-
name: go-backend-expert
|
|
5
|
-
type: sw-engineer/backend
|
|
6
|
-
description: Expert Go backend developer with Uber style and standard layout
|
|
7
|
-
|
|
8
|
-
source:
|
|
9
|
-
type: internal
|
|
10
|
-
|
|
11
|
-
capabilities:
|
|
12
|
-
- Design Go backend architecture
|
|
13
|
-
- Implement HTTP/gRPC servers
|
|
14
|
-
- Apply Uber Go style guide
|
|
15
|
-
- Structure with standard layout
|
|
16
|
-
- Handle concurrency safely
|
|
17
|
-
- Proper error handling
|
|
18
|
-
|
|
19
|
-
skills:
|
|
20
|
-
- name: go-backend-best-practices
|
|
21
|
-
path: ../../../../skills/backend/go-backend-best-practices/
|
|
22
|
-
required: true
|
|
23
|
-
|
|
24
|
-
guides:
|
|
25
|
-
- name: go-backend
|
|
26
|
-
path: ../../../../guides/go-backend/
|
|
27
|
-
required: true
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
# Go Backend Guide
|
|
2
|
-
|
|
3
|
-
metadata:
|
|
4
|
-
name: go-backend
|
|
5
|
-
description: Go backend development reference documentation
|
|
6
|
-
|
|
7
|
-
source:
|
|
8
|
-
type: external
|
|
9
|
-
origin: various
|
|
10
|
-
urls:
|
|
11
|
-
- https://go.dev/doc/effective_go
|
|
12
|
-
- https://github.com/golang-standards/project-layout
|
|
13
|
-
- https://github.com/uber-go/guide/blob/master/style.md
|
|
14
|
-
last_fetched: "2026-01-22"
|
|
15
|
-
|
|
16
|
-
documents:
|
|
17
|
-
- name: uber-style
|
|
18
|
-
path: ./uber-style.md
|
|
19
|
-
description: Uber Go style guide
|
|
20
|
-
|
|
21
|
-
- name: project-layout
|
|
22
|
-
path: ./project-layout.md
|
|
23
|
-
description: Standard Go project layout
|
|
24
|
-
|
|
25
|
-
used_by:
|
|
26
|
-
- go-backend-expert
|