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,27 +0,0 @@
|
|
|
1
|
-
# Python Expert Agent
|
|
2
|
-
|
|
3
|
-
metadata:
|
|
4
|
-
name: python-expert
|
|
5
|
-
type: sw-engineer/language
|
|
6
|
-
description: Expert Python developer following PEP 8 and Pythonic principles
|
|
7
|
-
|
|
8
|
-
source:
|
|
9
|
-
type: internal
|
|
10
|
-
|
|
11
|
-
capabilities:
|
|
12
|
-
- Write idiomatic Python code
|
|
13
|
-
- Review and refactor Python code
|
|
14
|
-
- Design clean APIs
|
|
15
|
-
- Implement exception handling
|
|
16
|
-
- Optimize Python performance
|
|
17
|
-
- Apply Zen of Python
|
|
18
|
-
|
|
19
|
-
skills:
|
|
20
|
-
- name: python-best-practices
|
|
21
|
-
path: ../../../../skills/development/python-best-practices/
|
|
22
|
-
required: true
|
|
23
|
-
|
|
24
|
-
guides:
|
|
25
|
-
- name: python
|
|
26
|
-
path: ../../../../guides/python/
|
|
27
|
-
required: true
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
# Python Guide
|
|
2
|
-
|
|
3
|
-
metadata:
|
|
4
|
-
name: python
|
|
5
|
-
description: Python language reference documentation
|
|
6
|
-
|
|
7
|
-
source:
|
|
8
|
-
type: external
|
|
9
|
-
origin: python.org
|
|
10
|
-
urls:
|
|
11
|
-
- https://peps.python.org/pep-0008/
|
|
12
|
-
- https://peps.python.org/pep-0020/
|
|
13
|
-
- https://google.github.io/styleguide/pyguide.html
|
|
14
|
-
last_fetched: "2026-01-22"
|
|
15
|
-
|
|
16
|
-
documents:
|
|
17
|
-
- name: pep8-style-guide
|
|
18
|
-
path: ./pep8-style-guide.md
|
|
19
|
-
description: PEP 8 - Official Python Style Guide
|
|
20
|
-
|
|
21
|
-
- name: zen-of-python
|
|
22
|
-
path: ./zen-of-python.md
|
|
23
|
-
description: PEP 20 - The Zen of Python
|
|
24
|
-
|
|
25
|
-
used_by:
|
|
26
|
-
- python-expert
|
|
@@ -1,202 +0,0 @@
|
|
|
1
|
-
# PEP 8 - Style Guide for Python Code
|
|
2
|
-
|
|
3
|
-
> Source: https://peps.python.org/pep-0008/
|
|
4
|
-
|
|
5
|
-
## Introduction
|
|
6
|
-
|
|
7
|
-
This document gives coding conventions for the Python code comprising the standard library. The key insight is that code is read much more often than it is written. Prioritize readability.
|
|
8
|
-
|
|
9
|
-
## Code Layout
|
|
10
|
-
|
|
11
|
-
### Indentation
|
|
12
|
-
|
|
13
|
-
Use 4 spaces per indentation level.
|
|
14
|
-
|
|
15
|
-
```python
|
|
16
|
-
# Aligned with opening delimiter
|
|
17
|
-
foo = long_function_name(var_one, var_two,
|
|
18
|
-
var_three, var_four)
|
|
19
|
-
|
|
20
|
-
# Hanging indent with additional level
|
|
21
|
-
def long_function_name(
|
|
22
|
-
var_one, var_two, var_three,
|
|
23
|
-
var_four):
|
|
24
|
-
print(var_one)
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
### Maximum Line Length
|
|
28
|
-
|
|
29
|
-
- Limit all lines to 79 characters
|
|
30
|
-
- Docstrings/comments: limit to 72 characters
|
|
31
|
-
- Teams may agree on longer lines (up to 99)
|
|
32
|
-
|
|
33
|
-
### Binary Operators
|
|
34
|
-
|
|
35
|
-
Break before binary operators:
|
|
36
|
-
|
|
37
|
-
```python
|
|
38
|
-
# Correct:
|
|
39
|
-
income = (gross_wages
|
|
40
|
-
+ taxable_interest
|
|
41
|
-
+ (dividends - qualified_dividends))
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
### Blank Lines
|
|
45
|
-
|
|
46
|
-
- Two blank lines around top-level definitions
|
|
47
|
-
- One blank line between method definitions
|
|
48
|
-
- Extra blank lines sparingly to separate logical sections
|
|
49
|
-
|
|
50
|
-
## Imports
|
|
51
|
-
|
|
52
|
-
```python
|
|
53
|
-
# Standard library
|
|
54
|
-
import os
|
|
55
|
-
import sys
|
|
56
|
-
|
|
57
|
-
# Third party
|
|
58
|
-
import numpy as np
|
|
59
|
-
|
|
60
|
-
# Local
|
|
61
|
-
from myproject import mymodule
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
Rules:
|
|
65
|
-
- One import per line
|
|
66
|
-
- Absolute imports preferred
|
|
67
|
-
- Avoid wildcard imports
|
|
68
|
-
|
|
69
|
-
## Whitespace
|
|
70
|
-
|
|
71
|
-
```python
|
|
72
|
-
# Correct:
|
|
73
|
-
spam(ham[1], {eggs: 2})
|
|
74
|
-
x = 1
|
|
75
|
-
y = 2
|
|
76
|
-
long_variable = 3
|
|
77
|
-
|
|
78
|
-
# Wrong:
|
|
79
|
-
spam( ham[ 1 ], { eggs: 2 } )
|
|
80
|
-
x = 1
|
|
81
|
-
y = 2
|
|
82
|
-
long_variable = 3
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
## Comments
|
|
86
|
-
|
|
87
|
-
### Block Comments
|
|
88
|
-
|
|
89
|
-
```python
|
|
90
|
-
# This is a block comment that
|
|
91
|
-
# spans multiple lines and describes
|
|
92
|
-
# the following code block.
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
### Inline Comments
|
|
96
|
-
|
|
97
|
-
```python
|
|
98
|
-
x = x + 1 # Increment x
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
### Docstrings
|
|
102
|
-
|
|
103
|
-
```python
|
|
104
|
-
def complex(real=0.0, imag=0.0):
|
|
105
|
-
"""Form a complex number.
|
|
106
|
-
|
|
107
|
-
Keyword arguments:
|
|
108
|
-
real -- the real part (default 0.0)
|
|
109
|
-
imag -- the imaginary part (default 0.0)
|
|
110
|
-
"""
|
|
111
|
-
pass
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
## Naming Conventions
|
|
115
|
-
|
|
116
|
-
| Type | Convention | Example |
|
|
117
|
-
|------|------------|---------|
|
|
118
|
-
| Module | lowercase_underscore | `my_module` |
|
|
119
|
-
| Package | lowercase | `mypackage` |
|
|
120
|
-
| Class | CapWords | `MyClass` |
|
|
121
|
-
| Exception | CapWords + Error | `CustomError` |
|
|
122
|
-
| Function | lowercase_underscore | `my_function` |
|
|
123
|
-
| Variable | lowercase_underscore | `my_var` |
|
|
124
|
-
| Constant | UPPER_UNDERSCORE | `MAX_SIZE` |
|
|
125
|
-
| Method | lowercase_underscore | `my_method` |
|
|
126
|
-
|
|
127
|
-
### Special Naming
|
|
128
|
-
|
|
129
|
-
- `_single_leading`: weak "internal use" indicator
|
|
130
|
-
- `__double_leading`: name mangling in classes
|
|
131
|
-
- `__double_both__`: "magic" methods
|
|
132
|
-
|
|
133
|
-
## Programming Recommendations
|
|
134
|
-
|
|
135
|
-
### Comparisons
|
|
136
|
-
|
|
137
|
-
```python
|
|
138
|
-
# Correct:
|
|
139
|
-
if foo is not None:
|
|
140
|
-
if isinstance(obj, int):
|
|
141
|
-
|
|
142
|
-
# Wrong:
|
|
143
|
-
if foo != None:
|
|
144
|
-
if type(obj) is int:
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
### Sequences
|
|
148
|
-
|
|
149
|
-
```python
|
|
150
|
-
# Correct:
|
|
151
|
-
if not seq:
|
|
152
|
-
if seq:
|
|
153
|
-
|
|
154
|
-
# Wrong:
|
|
155
|
-
if len(seq) == 0:
|
|
156
|
-
if len(seq) > 0:
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
### Exception Handling
|
|
160
|
-
|
|
161
|
-
```python
|
|
162
|
-
# Correct:
|
|
163
|
-
try:
|
|
164
|
-
value = collection[key]
|
|
165
|
-
except KeyError:
|
|
166
|
-
return key_not_found(key)
|
|
167
|
-
|
|
168
|
-
# Wrong:
|
|
169
|
-
try:
|
|
170
|
-
value = collection[key]
|
|
171
|
-
except: # Bare except
|
|
172
|
-
return key_not_found(key)
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
### Context Managers
|
|
176
|
-
|
|
177
|
-
```python
|
|
178
|
-
# Correct:
|
|
179
|
-
with open('file.txt') as f:
|
|
180
|
-
contents = f.read()
|
|
181
|
-
|
|
182
|
-
# Wrong:
|
|
183
|
-
f = open('file.txt')
|
|
184
|
-
contents = f.read()
|
|
185
|
-
f.close()
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
### Return Statements
|
|
189
|
-
|
|
190
|
-
```python
|
|
191
|
-
# Correct:
|
|
192
|
-
def foo(x):
|
|
193
|
-
if x >= 0:
|
|
194
|
-
return math.sqrt(x)
|
|
195
|
-
else:
|
|
196
|
-
return None
|
|
197
|
-
|
|
198
|
-
# Wrong:
|
|
199
|
-
def foo(x):
|
|
200
|
-
if x >= 0:
|
|
201
|
-
return math.sqrt(x)
|
|
202
|
-
```
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
# The Zen of Python (PEP 20)
|
|
2
|
-
|
|
3
|
-
> Source: https://peps.python.org/pep-0020/
|
|
4
|
-
|
|
5
|
-
Long time Pythoneer Tim Peters succinctly channels the BDFL's guiding principles for Python's design into 20 aphorisms, only 19 of which have been written down.
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
>>> import this
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## The 19 Aphorisms
|
|
12
|
-
|
|
13
|
-
1. **Beautiful is better than ugly.**
|
|
14
|
-
- Write elegant, readable code
|
|
15
|
-
|
|
16
|
-
2. **Explicit is better than implicit.**
|
|
17
|
-
- Don't hide behavior; make intentions clear
|
|
18
|
-
|
|
19
|
-
3. **Simple is better than complex.**
|
|
20
|
-
- Choose straightforward solutions
|
|
21
|
-
|
|
22
|
-
4. **Complex is better than complicated.**
|
|
23
|
-
- When complexity is needed, keep it manageable
|
|
24
|
-
|
|
25
|
-
5. **Flat is better than nested.**
|
|
26
|
-
- Avoid deep nesting; keep structures flat
|
|
27
|
-
|
|
28
|
-
6. **Sparse is better than dense.**
|
|
29
|
-
- Don't pack too much into one line
|
|
30
|
-
|
|
31
|
-
7. **Readability counts.**
|
|
32
|
-
- Code is read more often than written
|
|
33
|
-
|
|
34
|
-
8. **Special cases aren't special enough to break the rules.**
|
|
35
|
-
- Consistency matters
|
|
36
|
-
|
|
37
|
-
9. **Although practicality beats purity.**
|
|
38
|
-
- Be pragmatic when needed
|
|
39
|
-
|
|
40
|
-
10. **Errors should never pass silently.**
|
|
41
|
-
- Handle or propagate errors explicitly
|
|
42
|
-
|
|
43
|
-
11. **Unless explicitly silenced.**
|
|
44
|
-
- Intentional suppression is acceptable
|
|
45
|
-
|
|
46
|
-
12. **In the face of ambiguity, refuse the temptation to guess.**
|
|
47
|
-
- Ask for clarification; don't assume
|
|
48
|
-
|
|
49
|
-
13. **There should be one-- and preferably only one --obvious way to do it.**
|
|
50
|
-
- Python favors one canonical approach
|
|
51
|
-
|
|
52
|
-
14. **Although that way may not be obvious at first unless you're Dutch.**
|
|
53
|
-
- (A nod to Guido van Rossum)
|
|
54
|
-
|
|
55
|
-
15. **Now is better than never.**
|
|
56
|
-
- Don't over-plan; start implementing
|
|
57
|
-
|
|
58
|
-
16. **Although never is often better than *right* now.**
|
|
59
|
-
- But don't rush without thought
|
|
60
|
-
|
|
61
|
-
17. **If the implementation is hard to explain, it's a bad idea.**
|
|
62
|
-
- Complexity is a warning sign
|
|
63
|
-
|
|
64
|
-
18. **If the implementation is easy to explain, it may be a good idea.**
|
|
65
|
-
- Simplicity suggests good design
|
|
66
|
-
|
|
67
|
-
19. **Namespaces are one honking great idea -- let's do more of those!**
|
|
68
|
-
- Organize code into clear namespaces
|
|
69
|
-
|
|
70
|
-
## Application
|
|
71
|
-
|
|
72
|
-
When writing Python code, ask yourself:
|
|
73
|
-
- Is this beautiful or ugly?
|
|
74
|
-
- Is this explicit or implicit?
|
|
75
|
-
- Is this simple or complex?
|
|
76
|
-
- Is this readable?
|
|
77
|
-
- Could I easily explain this to someone else?
|
|
78
|
-
|
|
79
|
-
The Zen of Python is not just style guidance—it's a philosophy for writing maintainable, understandable code.
|
package/templates/agents/sw-engineer/language/python-expert/refs/python-best-practices/index.yaml
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# Python Best Practices Skill
|
|
2
|
-
|
|
3
|
-
metadata:
|
|
4
|
-
name: python-best-practices
|
|
5
|
-
category: development
|
|
6
|
-
description: Pythonic patterns from PEP 8 and PEP 20
|
|
7
|
-
|
|
8
|
-
source:
|
|
9
|
-
type: internal
|
|
10
|
-
reference:
|
|
11
|
-
- https://peps.python.org/pep-0008/
|
|
12
|
-
- https://peps.python.org/pep-0020/
|
|
13
|
-
- https://google.github.io/styleguide/pyguide.html
|
|
14
|
-
|
|
15
|
-
provides:
|
|
16
|
-
- Python code formatting standards
|
|
17
|
-
- Naming conventions
|
|
18
|
-
- Import organization
|
|
19
|
-
- Whitespace rules
|
|
20
|
-
- Comment and docstring guidelines
|
|
21
|
-
- Programming recommendations
|
|
22
|
-
- Pythonic idioms
|
|
23
|
-
|
|
24
|
-
used_by:
|
|
25
|
-
- python-expert
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
# Rust Expert Agent
|
|
2
|
-
|
|
3
|
-
> **Type**: SW Engineer
|
|
4
|
-
> **Source**: Internal
|
|
5
|
-
|
|
6
|
-
## Purpose
|
|
7
|
-
|
|
8
|
-
Expert Rust developer specialized in writing safe, performant, and idiomatic Rust code following official guidelines and community best practices.
|
|
9
|
-
|
|
10
|
-
## Capabilities
|
|
11
|
-
|
|
12
|
-
1. Write idiomatic Rust code following official style guide
|
|
13
|
-
2. Design safe APIs leveraging Rust's type system
|
|
14
|
-
3. Implement zero-cost abstractions
|
|
15
|
-
4. Manage ownership, borrowing, and lifetimes correctly
|
|
16
|
-
5. Write efficient concurrent code with fearless concurrency
|
|
17
|
-
6. Optimize for performance without sacrificing safety
|
|
18
|
-
|
|
19
|
-
## When to Use
|
|
20
|
-
|
|
21
|
-
- Writing new Rust applications or libraries
|
|
22
|
-
- Reviewing existing Rust code for improvements
|
|
23
|
-
- Designing safe and ergonomic APIs
|
|
24
|
-
- Debugging ownership and lifetime issues
|
|
25
|
-
- Implementing high-performance systems
|
|
26
|
-
|
|
27
|
-
## Skills
|
|
28
|
-
|
|
29
|
-
| Skill | Purpose |
|
|
30
|
-
|-------|---------|
|
|
31
|
-
| rust-best-practices | Core Rust development guidelines |
|
|
32
|
-
|
|
33
|
-
## Guides
|
|
34
|
-
|
|
35
|
-
| Guide | Purpose |
|
|
36
|
-
|-------|---------|
|
|
37
|
-
| rust | Reference documentation from official Rust docs |
|
|
38
|
-
|
|
39
|
-
## Workflow
|
|
40
|
-
|
|
41
|
-
```
|
|
42
|
-
1. Understand requirements
|
|
43
|
-
2. Apply rust-best-practices skill
|
|
44
|
-
3. Reference rust guide for specific patterns
|
|
45
|
-
4. Write/review code with ownership safety
|
|
46
|
-
5. Ensure idiomatic patterns and zero-cost abstractions
|
|
47
|
-
```
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
# Rust Expert Agent
|
|
2
|
-
|
|
3
|
-
metadata:
|
|
4
|
-
name: rust-expert
|
|
5
|
-
type: sw-engineer/language
|
|
6
|
-
description: Expert Rust developer with focus on safety and performance
|
|
7
|
-
|
|
8
|
-
source:
|
|
9
|
-
type: internal
|
|
10
|
-
|
|
11
|
-
capabilities:
|
|
12
|
-
- Write idiomatic Rust code
|
|
13
|
-
- Design safe APIs
|
|
14
|
-
- Implement zero-cost abstractions
|
|
15
|
-
- Manage ownership and lifetimes
|
|
16
|
-
- Write concurrent code safely
|
|
17
|
-
- Optimize for performance
|
|
18
|
-
|
|
19
|
-
skills:
|
|
20
|
-
- name: rust-best-practices
|
|
21
|
-
path: ../../../../skills/development/rust-best-practices/
|
|
22
|
-
required: true
|
|
23
|
-
|
|
24
|
-
guides:
|
|
25
|
-
- name: rust
|
|
26
|
-
path: ../../../../guides/rust/
|
|
27
|
-
required: true
|
|
@@ -1,262 +0,0 @@
|
|
|
1
|
-
# Rust Error Handling
|
|
2
|
-
|
|
3
|
-
> Reference for error handling patterns in Rust
|
|
4
|
-
|
|
5
|
-
## Result Type
|
|
6
|
-
|
|
7
|
-
```rust
|
|
8
|
-
enum Result<T, E> {
|
|
9
|
-
Ok(T),
|
|
10
|
-
Err(E),
|
|
11
|
-
}
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
### Basic Usage
|
|
15
|
-
|
|
16
|
-
```rust
|
|
17
|
-
use std::fs::File;
|
|
18
|
-
|
|
19
|
-
fn main() {
|
|
20
|
-
let f = File::open("hello.txt");
|
|
21
|
-
|
|
22
|
-
let f = match f {
|
|
23
|
-
Ok(file) => file,
|
|
24
|
-
Err(error) => panic!("Problem opening file: {:?}", error),
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
### Matching Different Errors
|
|
30
|
-
|
|
31
|
-
```rust
|
|
32
|
-
use std::fs::File;
|
|
33
|
-
use std::io::ErrorKind;
|
|
34
|
-
|
|
35
|
-
fn main() {
|
|
36
|
-
let f = File::open("hello.txt");
|
|
37
|
-
|
|
38
|
-
let f = match f {
|
|
39
|
-
Ok(file) => file,
|
|
40
|
-
Err(error) => match error.kind() {
|
|
41
|
-
ErrorKind::NotFound => match File::create("hello.txt") {
|
|
42
|
-
Ok(fc) => fc,
|
|
43
|
-
Err(e) => panic!("Problem creating file: {:?}", e),
|
|
44
|
-
},
|
|
45
|
-
other_error => panic!("Problem opening file: {:?}", other_error),
|
|
46
|
-
},
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
### Shortcuts
|
|
52
|
-
|
|
53
|
-
```rust
|
|
54
|
-
// unwrap: panics on error
|
|
55
|
-
let f = File::open("hello.txt").unwrap();
|
|
56
|
-
|
|
57
|
-
// expect: panics with custom message
|
|
58
|
-
let f = File::open("hello.txt").expect("Failed to open hello.txt");
|
|
59
|
-
|
|
60
|
-
// unwrap_or: provides default value
|
|
61
|
-
let f = File::open("hello.txt").unwrap_or(default_file);
|
|
62
|
-
|
|
63
|
-
// unwrap_or_else: computes default on error
|
|
64
|
-
let f = File::open("hello.txt").unwrap_or_else(|error| {
|
|
65
|
-
panic!("Problem opening file: {:?}", error)
|
|
66
|
-
});
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
## Propagating Errors
|
|
70
|
-
|
|
71
|
-
### With match
|
|
72
|
-
|
|
73
|
-
```rust
|
|
74
|
-
use std::fs::File;
|
|
75
|
-
use std::io::{self, Read};
|
|
76
|
-
|
|
77
|
-
fn read_username() -> Result<String, io::Error> {
|
|
78
|
-
let f = File::open("hello.txt");
|
|
79
|
-
|
|
80
|
-
let mut f = match f {
|
|
81
|
-
Ok(file) => file,
|
|
82
|
-
Err(e) => return Err(e),
|
|
83
|
-
};
|
|
84
|
-
|
|
85
|
-
let mut s = String::new();
|
|
86
|
-
|
|
87
|
-
match f.read_to_string(&mut s) {
|
|
88
|
-
Ok(_) => Ok(s),
|
|
89
|
-
Err(e) => Err(e),
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
### With ? Operator
|
|
95
|
-
|
|
96
|
-
```rust
|
|
97
|
-
use std::fs::File;
|
|
98
|
-
use std::io::{self, Read};
|
|
99
|
-
|
|
100
|
-
fn read_username() -> Result<String, io::Error> {
|
|
101
|
-
let mut f = File::open("hello.txt")?;
|
|
102
|
-
let mut s = String::new();
|
|
103
|
-
f.read_to_string(&mut s)?;
|
|
104
|
-
Ok(s)
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
// Chained version
|
|
108
|
-
fn read_username_chained() -> Result<String, io::Error> {
|
|
109
|
-
let mut s = String::new();
|
|
110
|
-
File::open("hello.txt")?.read_to_string(&mut s)?;
|
|
111
|
-
Ok(s)
|
|
112
|
-
}
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
## Custom Error Types
|
|
116
|
-
|
|
117
|
-
### Simple Custom Error
|
|
118
|
-
|
|
119
|
-
```rust
|
|
120
|
-
use std::fmt;
|
|
121
|
-
|
|
122
|
-
#[derive(Debug)]
|
|
123
|
-
struct MyError {
|
|
124
|
-
message: String,
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
impl fmt::Display for MyError {
|
|
128
|
-
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
|
129
|
-
write!(f, "{}", self.message)
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
impl std::error::Error for MyError {}
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
### Error Enum
|
|
137
|
-
|
|
138
|
-
```rust
|
|
139
|
-
use std::io;
|
|
140
|
-
use std::num::ParseIntError;
|
|
141
|
-
|
|
142
|
-
#[derive(Debug)]
|
|
143
|
-
enum AppError {
|
|
144
|
-
Io(io::Error),
|
|
145
|
-
Parse(ParseIntError),
|
|
146
|
-
Custom(String),
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
impl fmt::Display for AppError {
|
|
150
|
-
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
|
151
|
-
match self {
|
|
152
|
-
AppError::Io(e) => write!(f, "IO error: {}", e),
|
|
153
|
-
AppError::Parse(e) => write!(f, "Parse error: {}", e),
|
|
154
|
-
AppError::Custom(msg) => write!(f, "{}", msg),
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
impl std::error::Error for AppError {}
|
|
160
|
-
|
|
161
|
-
impl From<io::Error> for AppError {
|
|
162
|
-
fn from(error: io::Error) -> Self {
|
|
163
|
-
AppError::Io(error)
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
impl From<ParseIntError> for AppError {
|
|
168
|
-
fn from(error: ParseIntError) -> Self {
|
|
169
|
-
AppError::Parse(error)
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
## Option Type
|
|
175
|
-
|
|
176
|
-
```rust
|
|
177
|
-
enum Option<T> {
|
|
178
|
-
Some(T),
|
|
179
|
-
None,
|
|
180
|
-
}
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
### Usage
|
|
184
|
-
|
|
185
|
-
```rust
|
|
186
|
-
fn divide(a: f64, b: f64) -> Option<f64> {
|
|
187
|
-
if b == 0.0 {
|
|
188
|
-
None
|
|
189
|
-
} else {
|
|
190
|
-
Some(a / b)
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
// Pattern matching
|
|
195
|
-
match divide(10.0, 2.0) {
|
|
196
|
-
Some(result) => println!("Result: {}", result),
|
|
197
|
-
None => println!("Cannot divide by zero"),
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
// Combinators
|
|
201
|
-
let result = divide(10.0, 2.0)
|
|
202
|
-
.map(|x| x * 2.0)
|
|
203
|
-
.unwrap_or(0.0);
|
|
204
|
-
```
|
|
205
|
-
|
|
206
|
-
## Panic
|
|
207
|
-
|
|
208
|
-
### When to Panic
|
|
209
|
-
|
|
210
|
-
```rust
|
|
211
|
-
// Unrecoverable errors
|
|
212
|
-
panic!("crash and burn");
|
|
213
|
-
|
|
214
|
-
// Assertion failures
|
|
215
|
-
assert!(x > 0, "x must be positive");
|
|
216
|
-
assert_eq!(a, b, "values must be equal");
|
|
217
|
-
|
|
218
|
-
// Unreachable code
|
|
219
|
-
unreachable!("this should never happen");
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
### Panic vs Result
|
|
223
|
-
|
|
224
|
-
- Use `Result` for recoverable errors
|
|
225
|
-
- Use `panic!` for unrecoverable errors
|
|
226
|
-
- Library code should return `Result`
|
|
227
|
-
- `main` can panic or return `Result`
|
|
228
|
-
|
|
229
|
-
## Best Practices
|
|
230
|
-
|
|
231
|
-
```rust
|
|
232
|
-
// 1. Use ? for propagation
|
|
233
|
-
fn process() -> Result<Data, Error> {
|
|
234
|
-
let input = read_input()?;
|
|
235
|
-
let parsed = parse(input)?;
|
|
236
|
-
Ok(transform(parsed))
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
// 2. Add context with map_err
|
|
240
|
-
let file = File::open(&path)
|
|
241
|
-
.map_err(|e| format!("Failed to open {}: {}", path, e))?;
|
|
242
|
-
|
|
243
|
-
// 3. Use anyhow for applications
|
|
244
|
-
use anyhow::{Context, Result};
|
|
245
|
-
|
|
246
|
-
fn main() -> Result<()> {
|
|
247
|
-
let config = read_config()
|
|
248
|
-
.context("Failed to read configuration")?;
|
|
249
|
-
Ok(())
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
// 4. Use thiserror for libraries
|
|
253
|
-
use thiserror::Error;
|
|
254
|
-
|
|
255
|
-
#[derive(Error, Debug)]
|
|
256
|
-
pub enum DataError {
|
|
257
|
-
#[error("Invalid input: {0}")]
|
|
258
|
-
InvalidInput(String),
|
|
259
|
-
#[error("IO error")]
|
|
260
|
-
Io(#[from] std::io::Error),
|
|
261
|
-
}
|
|
262
|
-
```
|