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,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
|
|
@@ -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,26 +0,0 @@
|
|
|
1
|
-
# Go Backend Best Practices Skill
|
|
2
|
-
|
|
3
|
-
metadata:
|
|
4
|
-
name: go-backend-best-practices
|
|
5
|
-
category: backend
|
|
6
|
-
description: Go backend patterns from Uber style and standard layout
|
|
7
|
-
|
|
8
|
-
source:
|
|
9
|
-
type: internal
|
|
10
|
-
reference:
|
|
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
|
-
|
|
15
|
-
provides:
|
|
16
|
-
- Project structure (standard layout)
|
|
17
|
-
- Error handling patterns
|
|
18
|
-
- Concurrency patterns
|
|
19
|
-
- HTTP server design
|
|
20
|
-
- Dependency injection
|
|
21
|
-
- Configuration management
|
|
22
|
-
- Testing patterns
|
|
23
|
-
- Performance guidelines
|
|
24
|
-
|
|
25
|
-
used_by:
|
|
26
|
-
- go-backend-expert
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
# Spring Boot Best Practices Skill
|
|
2
|
-
|
|
3
|
-
metadata:
|
|
4
|
-
name: springboot-best-practices
|
|
5
|
-
category: backend
|
|
6
|
-
description: Spring Boot patterns for enterprise Java applications
|
|
7
|
-
|
|
8
|
-
source:
|
|
9
|
-
type: internal
|
|
10
|
-
reference:
|
|
11
|
-
- https://docs.spring.io/spring-boot/docs/current/reference/html/
|
|
12
|
-
- https://spring.io/guides
|
|
13
|
-
- https://www.baeldung.com/spring-boot
|
|
14
|
-
|
|
15
|
-
provides:
|
|
16
|
-
- Project structure patterns
|
|
17
|
-
- Dependency injection best practices
|
|
18
|
-
- REST API design guidelines
|
|
19
|
-
- Service layer patterns
|
|
20
|
-
- Data access patterns
|
|
21
|
-
- Exception handling
|
|
22
|
-
- Configuration management
|
|
23
|
-
- Security implementation
|
|
24
|
-
- Testing strategies
|
|
25
|
-
|
|
26
|
-
used_by:
|
|
27
|
-
- springboot-expert
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# Go Best Practices Skill
|
|
2
|
-
|
|
3
|
-
metadata:
|
|
4
|
-
name: go-best-practices
|
|
5
|
-
category: development
|
|
6
|
-
description: Idiomatic Go patterns from Effective Go
|
|
7
|
-
|
|
8
|
-
source:
|
|
9
|
-
type: internal
|
|
10
|
-
reference: https://go.dev/doc/effective_go
|
|
11
|
-
|
|
12
|
-
provides:
|
|
13
|
-
- Go code formatting standards
|
|
14
|
-
- Naming conventions
|
|
15
|
-
- Control structure patterns
|
|
16
|
-
- Function design patterns
|
|
17
|
-
- Data structure usage
|
|
18
|
-
- Method receiver guidelines
|
|
19
|
-
- Interface design
|
|
20
|
-
- Concurrency patterns
|
|
21
|
-
- Error handling patterns
|
|
22
|
-
- Project structure guidelines
|
|
23
|
-
|
|
24
|
-
used_by:
|
|
25
|
-
- golang-expert
|
|
@@ -1,255 +0,0 @@
|
|
|
1
|
-
# Kotlin Best Practices Skill
|
|
2
|
-
|
|
3
|
-
> **Category**: Development
|
|
4
|
-
> **Source**: Internal (based on Kotlin Coding Conventions)
|
|
5
|
-
|
|
6
|
-
## Purpose
|
|
7
|
-
|
|
8
|
-
Apply idiomatic Kotlin patterns and best practices from official JetBrains documentation.
|
|
9
|
-
|
|
10
|
-
## Core Principles
|
|
11
|
-
|
|
12
|
-
```
|
|
13
|
-
Concise yet readable
|
|
14
|
-
Null safety by design
|
|
15
|
-
Interoperability with Java
|
|
16
|
-
Functional when appropriate
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## Rules
|
|
20
|
-
|
|
21
|
-
### 1. Naming Conventions
|
|
22
|
-
|
|
23
|
-
```yaml
|
|
24
|
-
packages:
|
|
25
|
-
style: lowercase, no underscores
|
|
26
|
-
example: org.example.project
|
|
27
|
-
|
|
28
|
-
classes_objects:
|
|
29
|
-
style: UpperCamelCase
|
|
30
|
-
example: DeclarationProcessor
|
|
31
|
-
|
|
32
|
-
functions_variables:
|
|
33
|
-
style: lowerCamelCase
|
|
34
|
-
example: processDeclarations, declarationCount
|
|
35
|
-
|
|
36
|
-
constants:
|
|
37
|
-
style: SCREAMING_SNAKE_CASE
|
|
38
|
-
example: const val MAX_COUNT = 8
|
|
39
|
-
|
|
40
|
-
backing_properties:
|
|
41
|
-
style: underscore prefix
|
|
42
|
-
example: private val _elementList
|
|
43
|
-
|
|
44
|
-
acronyms:
|
|
45
|
-
two_letters: both uppercase (IOStream)
|
|
46
|
-
three_plus: capitalize first only (XmlFormatter)
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
### 2. Source File Organization
|
|
50
|
-
|
|
51
|
-
```yaml
|
|
52
|
-
file_naming:
|
|
53
|
-
single_class: name after the class (MyClass.kt)
|
|
54
|
-
multiple_classes: descriptive UpperCamelCase (ProcessDeclarations.kt)
|
|
55
|
-
platform_specific: add suffix (Platform.jvm.kt)
|
|
56
|
-
|
|
57
|
-
class_layout:
|
|
58
|
-
1: Property declarations and initializer blocks
|
|
59
|
-
2: Secondary constructors
|
|
60
|
-
3: Method declarations
|
|
61
|
-
4: Companion object
|
|
62
|
-
|
|
63
|
-
directory_structure:
|
|
64
|
-
- Follow package structure with common root omitted
|
|
65
|
-
- Example: org.example.kotlin.network → network/
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
### 3. Formatting
|
|
69
|
-
|
|
70
|
-
```yaml
|
|
71
|
-
indentation:
|
|
72
|
-
- 4 spaces (no tabs)
|
|
73
|
-
- Opening brace at end of line
|
|
74
|
-
- Closing brace on separate line
|
|
75
|
-
|
|
76
|
-
horizontal_whitespace:
|
|
77
|
-
around_binary_operators: "a + b"
|
|
78
|
-
no_around_range: "0..i"
|
|
79
|
-
no_around_unary: "a++"
|
|
80
|
-
after_control_keywords: "if (condition)"
|
|
81
|
-
no_before_parentheses: "method()"
|
|
82
|
-
never_around_dot: "foo.bar()"
|
|
83
|
-
|
|
84
|
-
colons:
|
|
85
|
-
type_supertype: "class Foo : Bar"
|
|
86
|
-
declaration_type: "val x: Int"
|
|
87
|
-
always_space_after: true
|
|
88
|
-
|
|
89
|
-
trailing_commas:
|
|
90
|
-
recommended: true
|
|
91
|
-
reason: cleaner diffs, easier reordering
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
### 4. Functions
|
|
95
|
-
|
|
96
|
-
```yaml
|
|
97
|
-
expression_bodies:
|
|
98
|
-
prefer: "fun foo() = 1"
|
|
99
|
-
over: |
|
|
100
|
-
fun foo(): Int {
|
|
101
|
-
return 1
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
default_parameters:
|
|
105
|
-
prefer: "fun foo(a: String = \"a\")"
|
|
106
|
-
over: overloaded functions
|
|
107
|
-
|
|
108
|
-
single_line_signatures:
|
|
109
|
-
if_fits: "fun foo(a: Int): String = ..."
|
|
110
|
-
otherwise: |
|
|
111
|
-
fun longMethodName(
|
|
112
|
-
argument: ArgumentType = defaultValue,
|
|
113
|
-
argument2: AnotherArgumentType,
|
|
114
|
-
): ReturnType { }
|
|
115
|
-
|
|
116
|
-
unit_return:
|
|
117
|
-
avoid: "fun foo(): Unit { }"
|
|
118
|
-
prefer: "fun foo() { }"
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
### 5. Null Safety
|
|
122
|
-
|
|
123
|
-
```yaml
|
|
124
|
-
principles:
|
|
125
|
-
- Prefer non-null types by default
|
|
126
|
-
- Use ? only when nullability is meaningful
|
|
127
|
-
- Leverage safe calls (?.) and elvis (?:)
|
|
128
|
-
|
|
129
|
-
patterns: |
|
|
130
|
-
// Safe call
|
|
131
|
-
val length = text?.length
|
|
132
|
-
|
|
133
|
-
// Elvis operator
|
|
134
|
-
val name = user?.name ?: "Anonymous"
|
|
135
|
-
|
|
136
|
-
// Let for null checks
|
|
137
|
-
user?.let {
|
|
138
|
-
println(it.name)
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
// Not-null assertion (use sparingly)
|
|
142
|
-
val name = user!!.name
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
### 6. Idiomatic Patterns
|
|
146
|
-
|
|
147
|
-
```yaml
|
|
148
|
-
immutability:
|
|
149
|
-
prefer: "val over var"
|
|
150
|
-
collections: "listOf() over arrayListOf()"
|
|
151
|
-
|
|
152
|
-
conditionals:
|
|
153
|
-
binary: use if
|
|
154
|
-
multiple: use when
|
|
155
|
-
|
|
156
|
-
patterns: |
|
|
157
|
-
// if expression
|
|
158
|
-
return if (x) foo() else bar()
|
|
159
|
-
|
|
160
|
-
// when expression
|
|
161
|
-
return when(x) {
|
|
162
|
-
0 -> "zero"
|
|
163
|
-
else -> "nonzero"
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
functional:
|
|
167
|
-
prefer: "list.filter { it > 10 }.map { it * 2 }"
|
|
168
|
-
over: manual loops (except forEach)
|
|
169
|
-
|
|
170
|
-
ranges:
|
|
171
|
-
prefer: "for (i in 0..<n)"
|
|
172
|
-
avoid: "for (i in 0..n - 1)"
|
|
173
|
-
|
|
174
|
-
type_aliases:
|
|
175
|
-
use_for: |
|
|
176
|
-
typealias MouseClickHandler = (Any, MouseEvent) -> Unit
|
|
177
|
-
typealias PersonIndex = Map<String, Person>
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
### 7. Lambdas
|
|
181
|
-
|
|
182
|
-
```yaml
|
|
183
|
-
formatting:
|
|
184
|
-
- Spaces around curly braces: "list.filter { it > 10 }"
|
|
185
|
-
- Single lambda outside parentheses
|
|
186
|
-
- it for single parameter
|
|
187
|
-
|
|
188
|
-
patterns: |
|
|
189
|
-
// Outside parentheses
|
|
190
|
-
list.filter { it > 10 }
|
|
191
|
-
|
|
192
|
-
// Multiple parameters
|
|
193
|
-
list.fold(0) { acc, item -> acc + item }
|
|
194
|
-
|
|
195
|
-
// Destructuring
|
|
196
|
-
map.forEach { (key, value) -> println("$key = $value") }
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
### 8. Coroutines
|
|
200
|
-
|
|
201
|
-
```yaml
|
|
202
|
-
principles:
|
|
203
|
-
- Use suspend functions for async operations
|
|
204
|
-
- Structured concurrency with scopes
|
|
205
|
-
- Proper exception handling
|
|
206
|
-
|
|
207
|
-
patterns: |
|
|
208
|
-
// Suspend function
|
|
209
|
-
suspend fun fetchData(): Data {
|
|
210
|
-
return withContext(Dispatchers.IO) {
|
|
211
|
-
api.getData()
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
// Coroutine scope
|
|
216
|
-
lifecycleScope.launch {
|
|
217
|
-
val data = fetchData()
|
|
218
|
-
updateUI(data)
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
// Exception handling
|
|
222
|
-
try {
|
|
223
|
-
val result = async { fetchData() }.await()
|
|
224
|
-
} catch (e: Exception) {
|
|
225
|
-
handleError(e)
|
|
226
|
-
}
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
### 9. Documentation
|
|
230
|
-
|
|
231
|
-
```yaml
|
|
232
|
-
format: |
|
|
233
|
-
/**
|
|
234
|
-
* Returns the absolute value of the given [number].
|
|
235
|
-
*/
|
|
236
|
-
fun abs(number: Int): Int { ... }
|
|
237
|
-
|
|
238
|
-
best_practices:
|
|
239
|
-
- Incorporate parameters into description
|
|
240
|
-
- Use brackets for parameter references
|
|
241
|
-
- Use @param/@return only for lengthy descriptions
|
|
242
|
-
```
|
|
243
|
-
|
|
244
|
-
## Application
|
|
245
|
-
|
|
246
|
-
When writing or reviewing Kotlin code:
|
|
247
|
-
|
|
248
|
-
1. **Always** prefer val over var
|
|
249
|
-
2. **Always** use null-safe types appropriately
|
|
250
|
-
3. **Prefer** expression bodies for simple functions
|
|
251
|
-
4. **Prefer** functional operations over loops
|
|
252
|
-
5. **Use** default parameters over overloads
|
|
253
|
-
6. **Use** when for multiple conditions
|
|
254
|
-
7. **Leverage** extension functions
|
|
255
|
-
8. **Document** public APIs
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
# Kotlin Best Practices Skill
|
|
2
|
-
|
|
3
|
-
metadata:
|
|
4
|
-
name: kotlin-best-practices
|
|
5
|
-
category: development
|
|
6
|
-
description: Idiomatic Kotlin patterns from JetBrains conventions
|
|
7
|
-
|
|
8
|
-
source:
|
|
9
|
-
type: internal
|
|
10
|
-
reference:
|
|
11
|
-
- https://kotlinlang.org/docs/coding-conventions.html
|
|
12
|
-
- https://kotlinlang.org/docs/idioms.html
|
|
13
|
-
- https://developer.android.com/kotlin/style-guide
|
|
14
|
-
|
|
15
|
-
provides:
|
|
16
|
-
- Kotlin naming conventions
|
|
17
|
-
- Source file organization
|
|
18
|
-
- Formatting standards
|
|
19
|
-
- Function design patterns
|
|
20
|
-
- Null safety patterns
|
|
21
|
-
- Idiomatic expressions
|
|
22
|
-
- Lambda best practices
|
|
23
|
-
- Coroutine patterns
|
|
24
|
-
- Documentation guidelines
|
|
25
|
-
|
|
26
|
-
used_by:
|
|
27
|
-
- kotlin-expert
|