oh-my-customcode 0.1.4 → 0.2.1
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 +273 -100
- package/dist/index.js +11 -53
- 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 +192 -113
- package/templates/.claude/rules/MUST-parallel-execution.md +28 -28
- package/templates/.claude/rules/MUST-sync-verification.md +52 -45
- package/templates/.claude/rules/MUST-tool-identification.md +12 -14
- package/templates/.claude/rules/SHOULD-ecomode.md +3 -3
- package/templates/.claude/rules/SHOULD-hud-statusline.md +4 -4
- 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/{agents/manager/supplier/refs/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 +75 -100
- package/templates/CLAUDE.md.ko +74 -99
- package/templates/guides/aws/index.yaml +1 -1
- 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/manifest.json +9 -15
- package/templates/pipelines/examples/code-review.yaml +1 -1
- 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 -334
- package/templates/agents/manager/creator/refs/rules/MUST-parallel-execution.md +0 -398
- 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 -174
- 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 -96
- 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/11-sub-agents.md +0 -159
- 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 -334
- package/templates/agents/manager/supplier/refs/rules/MUST-parallel-execution.md +0 -398
- 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 -174
- 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 -96
- 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/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 -334
- package/templates/agents/manager/updater/refs/rules/MUST-parallel-execution.md +0 -398
- 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 -174
- 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 -96
- 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 -163
- 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 -181
- 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 -334
- package/templates/agents/orchestrator/secretary/refs/rules/MUST-parallel-execution.md +0 -398
- 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 -174
- 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 -96
- 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/SKILL.md +0 -337
- 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,247 +0,0 @@
|
|
|
1
|
-
# Kotlin Coding Conventions
|
|
2
|
-
|
|
3
|
-
> Source: https://kotlinlang.org/docs/coding-conventions.html
|
|
4
|
-
|
|
5
|
-
## Source Code Organization
|
|
6
|
-
|
|
7
|
-
### Directory Structure
|
|
8
|
-
|
|
9
|
-
Follow package structure with common root omitted:
|
|
10
|
-
- `org.example.kotlin.network.socket` → `network/socket` subdirectory
|
|
11
|
-
|
|
12
|
-
### Source File Names
|
|
13
|
-
|
|
14
|
-
| Content | File Name |
|
|
15
|
-
|---------|-----------|
|
|
16
|
-
| Single class | `MyClass.kt` |
|
|
17
|
-
| Multiple declarations | `ProcessDeclarations.kt` |
|
|
18
|
-
| Platform-specific | `Platform.jvm.kt` |
|
|
19
|
-
|
|
20
|
-
### Class Layout
|
|
21
|
-
|
|
22
|
-
1. Property declarations and initializer blocks
|
|
23
|
-
2. Secondary constructors
|
|
24
|
-
3. Method declarations
|
|
25
|
-
4. Companion object
|
|
26
|
-
|
|
27
|
-
```kotlin
|
|
28
|
-
class MyClass(val name: String) {
|
|
29
|
-
// 1. Properties
|
|
30
|
-
private val items = mutableListOf<Item>()
|
|
31
|
-
|
|
32
|
-
init {
|
|
33
|
-
// initializer block
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
// 2. Secondary constructors
|
|
37
|
-
constructor() : this("default")
|
|
38
|
-
|
|
39
|
-
// 3. Methods
|
|
40
|
-
fun doSomething() { }
|
|
41
|
-
|
|
42
|
-
// 4. Companion object
|
|
43
|
-
companion object {
|
|
44
|
-
const val TAG = "MyClass"
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
## Naming Conventions
|
|
50
|
-
|
|
51
|
-
| Element | Style | Example |
|
|
52
|
-
|---------|-------|---------|
|
|
53
|
-
| Packages | lowercase | `org.example.project` |
|
|
54
|
-
| Classes | UpperCamelCase | `DeclarationProcessor` |
|
|
55
|
-
| Functions | lowerCamelCase | `processDeclarations()` |
|
|
56
|
-
| Properties | lowerCamelCase | `declarationCount` |
|
|
57
|
-
| Constants | UPPER_SNAKE_CASE | `MAX_COUNT` |
|
|
58
|
-
| Backing properties | underscore prefix | `_elementList` |
|
|
59
|
-
|
|
60
|
-
### Acronyms
|
|
61
|
-
|
|
62
|
-
- 2 letters: both uppercase (`IOStream`)
|
|
63
|
-
- 3+ letters: capitalize first only (`XmlFormatter`)
|
|
64
|
-
|
|
65
|
-
## Formatting
|
|
66
|
-
|
|
67
|
-
### Indentation
|
|
68
|
-
|
|
69
|
-
```kotlin
|
|
70
|
-
if (elements != null) {
|
|
71
|
-
for (element in elements) {
|
|
72
|
-
// 4 spaces indentation
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
### Horizontal Whitespace
|
|
78
|
-
|
|
79
|
-
```kotlin
|
|
80
|
-
// Binary operators with spaces
|
|
81
|
-
val sum = a + b
|
|
82
|
-
|
|
83
|
-
// No space around range
|
|
84
|
-
for (i in 0..n) { }
|
|
85
|
-
|
|
86
|
-
// No space around dot
|
|
87
|
-
foo.bar().filter { it > 2 }
|
|
88
|
-
|
|
89
|
-
// Space after control keywords
|
|
90
|
-
if (condition) { }
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
### Colons
|
|
94
|
-
|
|
95
|
-
```kotlin
|
|
96
|
-
// Type and supertype: space before
|
|
97
|
-
abstract class Foo<out T : Any> : IFoo {
|
|
98
|
-
// Declaration and type: no space before
|
|
99
|
-
abstract fun foo(a: Int): T
|
|
100
|
-
}
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
### Function Signatures
|
|
104
|
-
|
|
105
|
-
```kotlin
|
|
106
|
-
// Short: single line
|
|
107
|
-
fun foo(a: Int): String = a.toString()
|
|
108
|
-
|
|
109
|
-
// Long: break parameters
|
|
110
|
-
fun longMethodName(
|
|
111
|
-
argument: ArgumentType = defaultValue,
|
|
112
|
-
argument2: AnotherArgumentType,
|
|
113
|
-
): ReturnType {
|
|
114
|
-
// body
|
|
115
|
-
}
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
### Trailing Commas
|
|
119
|
-
|
|
120
|
-
```kotlin
|
|
121
|
-
class Person(
|
|
122
|
-
val firstName: String,
|
|
123
|
-
val lastName: String,
|
|
124
|
-
val age: Int, // trailing comma
|
|
125
|
-
)
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
## Idiomatic Patterns
|
|
129
|
-
|
|
130
|
-
### Immutability
|
|
131
|
-
|
|
132
|
-
```kotlin
|
|
133
|
-
// Prefer val
|
|
134
|
-
val name = "Kotlin"
|
|
135
|
-
|
|
136
|
-
// Prefer immutable collections
|
|
137
|
-
val items = listOf(1, 2, 3)
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
### Default Parameters
|
|
141
|
-
|
|
142
|
-
```kotlin
|
|
143
|
-
// Prefer over overloads
|
|
144
|
-
fun read(
|
|
145
|
-
b: ByteArray,
|
|
146
|
-
off: Int = 0,
|
|
147
|
-
len: Int = b.size,
|
|
148
|
-
) { }
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
### Expression Bodies
|
|
152
|
-
|
|
153
|
-
```kotlin
|
|
154
|
-
// Prefer for simple functions
|
|
155
|
-
fun square(x: Int) = x * x
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
### Conditionals
|
|
159
|
-
|
|
160
|
-
```kotlin
|
|
161
|
-
// Use if for binary
|
|
162
|
-
return if (x) foo() else bar()
|
|
163
|
-
|
|
164
|
-
// Use when for multiple
|
|
165
|
-
return when (x) {
|
|
166
|
-
0 -> "zero"
|
|
167
|
-
1 -> "one"
|
|
168
|
-
else -> "many"
|
|
169
|
-
}
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
### Functional Operations
|
|
173
|
-
|
|
174
|
-
```kotlin
|
|
175
|
-
// Prefer
|
|
176
|
-
list.filter { it > 10 }
|
|
177
|
-
.map { it * 2 }
|
|
178
|
-
.take(5)
|
|
179
|
-
|
|
180
|
-
// Over manual loops
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
### Ranges
|
|
184
|
-
|
|
185
|
-
```kotlin
|
|
186
|
-
// Good: open-ended range
|
|
187
|
-
for (i in 0..<n) { }
|
|
188
|
-
|
|
189
|
-
// Avoid
|
|
190
|
-
for (i in 0..n - 1) { }
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
## Null Safety
|
|
194
|
-
|
|
195
|
-
```kotlin
|
|
196
|
-
// Safe call
|
|
197
|
-
val length = text?.length
|
|
198
|
-
|
|
199
|
-
// Elvis operator
|
|
200
|
-
val name = user?.name ?: "Unknown"
|
|
201
|
-
|
|
202
|
-
// Let for non-null
|
|
203
|
-
user?.let {
|
|
204
|
-
println("Hello, ${it.name}")
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
// Not-null assertion (use sparingly)
|
|
208
|
-
val name = user!!.name
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
## Documentation
|
|
212
|
-
|
|
213
|
-
```kotlin
|
|
214
|
-
/**
|
|
215
|
-
* Returns the absolute value of the given [number].
|
|
216
|
-
*/
|
|
217
|
-
fun abs(number: Int): Int = if (number < 0) -number else number
|
|
218
|
-
|
|
219
|
-
/**
|
|
220
|
-
* A group of *members*.
|
|
221
|
-
*
|
|
222
|
-
* This class has no useful logic; it's just a documentation example.
|
|
223
|
-
*
|
|
224
|
-
* @property name the name of this group.
|
|
225
|
-
* @constructor Creates an empty group.
|
|
226
|
-
*/
|
|
227
|
-
class Group(val name: String) {
|
|
228
|
-
/**
|
|
229
|
-
* Adds a [member] to this group.
|
|
230
|
-
* @return the new size of the group.
|
|
231
|
-
*/
|
|
232
|
-
fun add(member: Member): Int { ... }
|
|
233
|
-
}
|
|
234
|
-
```
|
|
235
|
-
|
|
236
|
-
## Avoid Redundant Constructs
|
|
237
|
-
|
|
238
|
-
```kotlin
|
|
239
|
-
// Avoid explicit Unit return
|
|
240
|
-
fun foo() { } // not: fun foo(): Unit { }
|
|
241
|
-
|
|
242
|
-
// Avoid semicolons
|
|
243
|
-
val x = 1 // not: val x = 1;
|
|
244
|
-
|
|
245
|
-
// Use simple string templates
|
|
246
|
-
"$name" // not: "${name}"
|
|
247
|
-
```
|
|
@@ -1,234 +0,0 @@
|
|
|
1
|
-
# Kotlin Idioms
|
|
2
|
-
|
|
3
|
-
> Source: https://kotlinlang.org/docs/idioms.html
|
|
4
|
-
|
|
5
|
-
## Data Classes
|
|
6
|
-
|
|
7
|
-
```kotlin
|
|
8
|
-
data class Customer(val name: String, val email: String)
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
Provides:
|
|
12
|
-
- `equals()` / `hashCode()`
|
|
13
|
-
- `toString()`: `"Customer(name=John, email=john@example.com)"`
|
|
14
|
-
- `copy()` function
|
|
15
|
-
- `componentN()` functions
|
|
16
|
-
|
|
17
|
-
## Default Parameter Values
|
|
18
|
-
|
|
19
|
-
```kotlin
|
|
20
|
-
fun foo(a: Int = 0, b: String = "") { }
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
## Filtering Collections
|
|
24
|
-
|
|
25
|
-
```kotlin
|
|
26
|
-
val positives = list.filter { it > 0 }
|
|
27
|
-
|
|
28
|
-
// or with explicit type
|
|
29
|
-
val positives = list.filter { x -> x > 0 }
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## Checking Element Presence
|
|
33
|
-
|
|
34
|
-
```kotlin
|
|
35
|
-
if ("john@example.com" in emailsList) { }
|
|
36
|
-
if ("jane@example.com" !in emailsList) { }
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
## String Interpolation
|
|
40
|
-
|
|
41
|
-
```kotlin
|
|
42
|
-
println("Name: $name")
|
|
43
|
-
println("Age: ${person.age}")
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
## Instance Checks
|
|
47
|
-
|
|
48
|
-
```kotlin
|
|
49
|
-
when (x) {
|
|
50
|
-
is Foo -> ...
|
|
51
|
-
is Bar -> ...
|
|
52
|
-
else -> ...
|
|
53
|
-
}
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
## Read-only Collections
|
|
57
|
-
|
|
58
|
-
```kotlin
|
|
59
|
-
val list = listOf("a", "b", "c")
|
|
60
|
-
val map = mapOf("a" to 1, "b" to 2, "c" to 3)
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
## Accessing Maps
|
|
64
|
-
|
|
65
|
-
```kotlin
|
|
66
|
-
val map = mapOf("a" to 1)
|
|
67
|
-
println(map["a"]) // prints 1
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
## Traversing Maps
|
|
71
|
-
|
|
72
|
-
```kotlin
|
|
73
|
-
for ((k, v) in map) {
|
|
74
|
-
println("$k -> $v")
|
|
75
|
-
}
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
## Ranges
|
|
79
|
-
|
|
80
|
-
```kotlin
|
|
81
|
-
for (i in 1..100) { } // closed range: 1 to 100
|
|
82
|
-
for (i in 1..<100) { } // half-open: 1 to 99
|
|
83
|
-
for (i in 2..10 step 2) { }
|
|
84
|
-
for (i in 10 downTo 1) { }
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
## Lazy Property
|
|
88
|
-
|
|
89
|
-
```kotlin
|
|
90
|
-
val p: String by lazy {
|
|
91
|
-
// compute the string
|
|
92
|
-
}
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
## Extension Functions
|
|
96
|
-
|
|
97
|
-
```kotlin
|
|
98
|
-
fun String.spaceToCamelCase() { }
|
|
99
|
-
"Convert this to camelcase".spaceToCamelCase()
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
## Singleton
|
|
103
|
-
|
|
104
|
-
```kotlin
|
|
105
|
-
object Resource {
|
|
106
|
-
val name = "Name"
|
|
107
|
-
}
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
## Instantiate Abstract Class
|
|
111
|
-
|
|
112
|
-
```kotlin
|
|
113
|
-
abstract class MyAbstractClass {
|
|
114
|
-
abstract fun doSomething()
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
val myObject = object : MyAbstractClass() {
|
|
118
|
-
override fun doSomething() { }
|
|
119
|
-
}
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
## if-not-null Shorthand
|
|
123
|
-
|
|
124
|
-
```kotlin
|
|
125
|
-
// Simple
|
|
126
|
-
val length = files?.size
|
|
127
|
-
|
|
128
|
-
// With else
|
|
129
|
-
val length = files?.size ?: 0
|
|
130
|
-
|
|
131
|
-
// With let
|
|
132
|
-
files?.let {
|
|
133
|
-
println(it.size)
|
|
134
|
-
}
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
## Return on when
|
|
138
|
-
|
|
139
|
-
```kotlin
|
|
140
|
-
fun transform(color: String): Int {
|
|
141
|
-
return when (color) {
|
|
142
|
-
"Red" -> 0
|
|
143
|
-
"Green" -> 1
|
|
144
|
-
"Blue" -> 2
|
|
145
|
-
else -> throw IllegalArgumentException("Invalid color")
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
## try-catch Expression
|
|
151
|
-
|
|
152
|
-
```kotlin
|
|
153
|
-
val result = try {
|
|
154
|
-
count()
|
|
155
|
-
} catch (e: ArithmeticException) {
|
|
156
|
-
throw IllegalStateException(e)
|
|
157
|
-
}
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
## if Expression
|
|
161
|
-
|
|
162
|
-
```kotlin
|
|
163
|
-
val y = if (x == 1) {
|
|
164
|
-
"one"
|
|
165
|
-
} else if (x == 2) {
|
|
166
|
-
"two"
|
|
167
|
-
} else {
|
|
168
|
-
"other"
|
|
169
|
-
}
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
## Builder-style Usage
|
|
173
|
-
|
|
174
|
-
```kotlin
|
|
175
|
-
fun arrayOfMinusOnes(size: Int): IntArray {
|
|
176
|
-
return IntArray(size).apply { fill(-1) }
|
|
177
|
-
}
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
## Single-expression Functions
|
|
181
|
-
|
|
182
|
-
```kotlin
|
|
183
|
-
fun theAnswer() = 42
|
|
184
|
-
|
|
185
|
-
// equivalent to
|
|
186
|
-
fun theAnswer(): Int {
|
|
187
|
-
return 42
|
|
188
|
-
}
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
## Call Multiple Methods (with)
|
|
192
|
-
|
|
193
|
-
```kotlin
|
|
194
|
-
class Turtle {
|
|
195
|
-
fun penDown()
|
|
196
|
-
fun penUp()
|
|
197
|
-
fun turn(degrees: Double)
|
|
198
|
-
fun forward(pixels: Double)
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
val myTurtle = Turtle()
|
|
202
|
-
with(myTurtle) {
|
|
203
|
-
penDown()
|
|
204
|
-
for (i in 1..4) {
|
|
205
|
-
forward(100.0)
|
|
206
|
-
turn(90.0)
|
|
207
|
-
}
|
|
208
|
-
penUp()
|
|
209
|
-
}
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
## Configure Object (apply)
|
|
213
|
-
|
|
214
|
-
```kotlin
|
|
215
|
-
val myRectangle = Rectangle().apply {
|
|
216
|
-
length = 4
|
|
217
|
-
breadth = 5
|
|
218
|
-
color = 0xFAFAFA
|
|
219
|
-
}
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
## Swap Variables
|
|
223
|
-
|
|
224
|
-
```kotlin
|
|
225
|
-
var a = 1
|
|
226
|
-
var b = 2
|
|
227
|
-
a = b.also { b = a }
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
## TODO: Marking Incomplete
|
|
231
|
-
|
|
232
|
-
```kotlin
|
|
233
|
-
fun calcTaxes(): BigDecimal = TODO("Waiting for feedback from accounting")
|
|
234
|
-
```
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
# Kotlin Guide
|
|
2
|
-
|
|
3
|
-
metadata:
|
|
4
|
-
name: kotlin
|
|
5
|
-
description: Kotlin language reference documentation
|
|
6
|
-
|
|
7
|
-
source:
|
|
8
|
-
type: external
|
|
9
|
-
origin: kotlinlang.org
|
|
10
|
-
urls:
|
|
11
|
-
- https://kotlinlang.org/docs/coding-conventions.html
|
|
12
|
-
- https://kotlinlang.org/docs/idioms.html
|
|
13
|
-
- https://developer.android.com/kotlin/style-guide
|
|
14
|
-
last_fetched: "2026-01-22"
|
|
15
|
-
|
|
16
|
-
documents:
|
|
17
|
-
- name: coding-conventions
|
|
18
|
-
path: ./coding-conventions.md
|
|
19
|
-
description: Official Kotlin coding conventions
|
|
20
|
-
|
|
21
|
-
- name: idioms
|
|
22
|
-
path: ./idioms.md
|
|
23
|
-
description: Idiomatic Kotlin patterns
|
|
24
|
-
|
|
25
|
-
used_by:
|
|
26
|
-
- kotlin-expert
|
|
@@ -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
|
-
```
|