oh-my-customcode 0.1.1 → 0.1.3

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.
Files changed (223) hide show
  1. package/README.md +45 -32
  2. package/dist/cli/index.js +12 -20
  3. package/dist/index.js +3 -3
  4. package/package.json +2 -2
  5. package/templates/.claude/rules/MUST-orchestrator-coordination.md +25 -0
  6. package/templates/agents/index.yaml +6 -0
  7. package/templates/agents/infra-engineer/aws-expert/refs/aws/common-patterns.md +169 -0
  8. package/templates/agents/infra-engineer/aws-expert/refs/aws/index.yaml +26 -0
  9. package/templates/agents/infra-engineer/aws-expert/refs/aws/well-architected.md +143 -0
  10. package/templates/agents/infra-engineer/aws-expert/refs/aws-best-practices/SKILL.md +279 -0
  11. package/templates/agents/infra-engineer/aws-expert/refs/aws-best-practices/index.yaml +27 -0
  12. package/templates/agents/infra-engineer/docker-expert/refs/docker/compose-best-practices.md +284 -0
  13. package/templates/agents/infra-engineer/docker-expert/refs/docker/dockerfile-best-practices.md +262 -0
  14. package/templates/agents/infra-engineer/docker-expert/refs/docker/index.yaml +26 -0
  15. package/templates/agents/infra-engineer/docker-expert/refs/docker-best-practices/SKILL.md +274 -0
  16. package/templates/agents/infra-engineer/docker-expert/refs/docker-best-practices/index.yaml +26 -0
  17. package/templates/agents/manager/creator/refs/rules/MAY-optimization.md +93 -0
  18. package/templates/agents/manager/creator/refs/rules/MUST-agent-design.md +107 -0
  19. package/templates/agents/manager/creator/refs/rules/MUST-agent-identification.md +108 -0
  20. package/templates/agents/manager/creator/refs/rules/MUST-continuous-improvement.md +132 -0
  21. package/templates/agents/manager/creator/refs/rules/MUST-intent-transparency.md +199 -0
  22. package/templates/agents/manager/creator/refs/rules/MUST-language-policy.md +62 -0
  23. package/templates/agents/manager/creator/refs/rules/MUST-orchestrator-coordination.md +291 -0
  24. package/templates/agents/manager/creator/refs/rules/MUST-parallel-execution.md +341 -0
  25. package/templates/agents/manager/creator/refs/rules/MUST-permissions.md +84 -0
  26. package/templates/agents/manager/creator/refs/rules/MUST-safety.md +69 -0
  27. package/templates/agents/manager/creator/refs/rules/MUST-sync-verification.md +219 -0
  28. package/templates/agents/manager/creator/refs/rules/MUST-tool-identification.md +112 -0
  29. package/templates/agents/manager/creator/refs/rules/SHOULD-ecomode.md +145 -0
  30. package/templates/agents/manager/creator/refs/rules/SHOULD-error-handling.md +102 -0
  31. package/templates/agents/manager/creator/refs/rules/SHOULD-hud-statusline.md +89 -0
  32. package/templates/agents/manager/creator/refs/rules/SHOULD-interaction.md +103 -0
  33. package/templates/agents/manager/creator/refs/rules/SHOULD-memory-integration.md +114 -0
  34. package/templates/agents/manager/creator/refs/rules/SHOULD-pipeline-mode.md +165 -0
  35. package/templates/agents/manager/creator/refs/rules/index.yaml +125 -0
  36. package/templates/agents/manager/supplier/refs/guides/aws/common-patterns.md +169 -0
  37. package/templates/agents/manager/supplier/refs/guides/aws/index.yaml +26 -0
  38. package/templates/agents/manager/supplier/refs/guides/aws/well-architected.md +143 -0
  39. package/templates/agents/manager/supplier/refs/guides/claude-code/01-overview.md +42 -0
  40. package/templates/agents/manager/supplier/refs/guides/claude-code/03-tools.md +107 -0
  41. package/templates/agents/manager/supplier/refs/guides/claude-code/04-agent-skills.md +90 -0
  42. package/templates/agents/manager/supplier/refs/guides/claude-code/05-agent-sdk.md +129 -0
  43. package/templates/agents/manager/supplier/refs/guides/claude-code/06-mcp.md +165 -0
  44. package/templates/agents/manager/supplier/refs/guides/claude-code/07-prompt-engineering.md +100 -0
  45. package/templates/agents/manager/supplier/refs/guides/claude-code/08-testing.md +58 -0
  46. package/templates/agents/manager/supplier/refs/guides/claude-code/09-guardrails.md +80 -0
  47. package/templates/agents/manager/supplier/refs/guides/claude-code/10-monitoring.md +89 -0
  48. package/templates/agents/manager/supplier/refs/guides/claude-code/index.yaml +51 -0
  49. package/templates/agents/manager/supplier/refs/guides/docker/compose-best-practices.md +284 -0
  50. package/templates/agents/manager/supplier/refs/guides/docker/dockerfile-best-practices.md +262 -0
  51. package/templates/agents/manager/supplier/refs/guides/docker/index.yaml +26 -0
  52. package/templates/agents/manager/supplier/refs/guides/fastapi/best-practices.md +232 -0
  53. package/templates/agents/manager/supplier/refs/guides/fastapi/index.yaml +21 -0
  54. package/templates/agents/manager/supplier/refs/guides/go-backend/index.yaml +26 -0
  55. package/templates/agents/manager/supplier/refs/guides/go-backend/project-layout.md +243 -0
  56. package/templates/agents/manager/supplier/refs/guides/go-backend/uber-style.md +212 -0
  57. package/templates/agents/manager/supplier/refs/guides/golang/concurrency.md +282 -0
  58. package/templates/agents/manager/supplier/refs/guides/golang/effective-go.md +309 -0
  59. package/templates/agents/manager/supplier/refs/guides/golang/error-handling.md +250 -0
  60. package/templates/agents/manager/supplier/refs/guides/golang/index.yaml +27 -0
  61. package/templates/agents/manager/supplier/refs/guides/index.yaml +101 -0
  62. package/templates/agents/manager/supplier/refs/guides/kotlin/coding-conventions.md +247 -0
  63. package/templates/agents/manager/supplier/refs/guides/kotlin/idioms.md +234 -0
  64. package/templates/agents/manager/supplier/refs/guides/kotlin/index.yaml +26 -0
  65. package/templates/agents/manager/supplier/refs/guides/python/index.yaml +26 -0
  66. package/templates/agents/manager/supplier/refs/guides/python/pep8-style-guide.md +202 -0
  67. package/templates/agents/manager/supplier/refs/guides/python/zen-of-python.md +79 -0
  68. package/templates/agents/manager/supplier/refs/guides/rust/error-handling.md +262 -0
  69. package/templates/agents/manager/supplier/refs/guides/rust/index.yaml +26 -0
  70. package/templates/agents/manager/supplier/refs/guides/rust/ownership.md +180 -0
  71. package/templates/agents/manager/supplier/refs/guides/springboot/best-practices.md +361 -0
  72. package/templates/agents/manager/supplier/refs/guides/springboot/index.yaml +22 -0
  73. package/templates/agents/manager/supplier/refs/guides/typescript/advanced-types.md +225 -0
  74. package/templates/agents/manager/supplier/refs/guides/typescript/index.yaml +26 -0
  75. package/templates/agents/manager/supplier/refs/guides/typescript/type-system.md +219 -0
  76. package/templates/agents/manager/supplier/refs/guides/web-design/accessibility.md +66 -0
  77. package/templates/agents/manager/supplier/refs/guides/web-design/index.yaml +20 -0
  78. package/templates/agents/manager/supplier/refs/guides/web-design/performance.md +102 -0
  79. package/templates/agents/manager/supplier/refs/rules/MAY-optimization.md +93 -0
  80. package/templates/agents/manager/supplier/refs/rules/MUST-agent-design.md +107 -0
  81. package/templates/agents/manager/supplier/refs/rules/MUST-agent-identification.md +108 -0
  82. package/templates/agents/manager/supplier/refs/rules/MUST-continuous-improvement.md +132 -0
  83. package/templates/agents/manager/supplier/refs/rules/MUST-intent-transparency.md +199 -0
  84. package/templates/agents/manager/supplier/refs/rules/MUST-language-policy.md +62 -0
  85. package/templates/agents/manager/supplier/refs/rules/MUST-orchestrator-coordination.md +291 -0
  86. package/templates/agents/manager/supplier/refs/rules/MUST-parallel-execution.md +341 -0
  87. package/templates/agents/manager/supplier/refs/rules/MUST-permissions.md +84 -0
  88. package/templates/agents/manager/supplier/refs/rules/MUST-safety.md +69 -0
  89. package/templates/agents/manager/supplier/refs/rules/MUST-sync-verification.md +219 -0
  90. package/templates/agents/manager/supplier/refs/rules/MUST-tool-identification.md +112 -0
  91. package/templates/agents/manager/supplier/refs/rules/SHOULD-ecomode.md +145 -0
  92. package/templates/agents/manager/supplier/refs/rules/SHOULD-error-handling.md +102 -0
  93. package/templates/agents/manager/supplier/refs/rules/SHOULD-hud-statusline.md +89 -0
  94. package/templates/agents/manager/supplier/refs/rules/SHOULD-interaction.md +103 -0
  95. package/templates/agents/manager/supplier/refs/rules/SHOULD-memory-integration.md +114 -0
  96. package/templates/agents/manager/supplier/refs/rules/SHOULD-pipeline-mode.md +165 -0
  97. package/templates/agents/manager/supplier/refs/rules/index.yaml +125 -0
  98. package/templates/agents/manager/supplier/refs/skills/backend/fastapi-best-practices/SKILL.md +269 -0
  99. package/templates/agents/manager/supplier/refs/skills/backend/fastapi-best-practices/index.yaml +25 -0
  100. package/templates/agents/manager/supplier/refs/skills/backend/go-backend-best-practices/SKILL.md +337 -0
  101. package/templates/agents/manager/supplier/refs/skills/backend/go-backend-best-practices/index.yaml +26 -0
  102. package/templates/agents/manager/supplier/refs/skills/backend/springboot-best-practices/SKILL.md +356 -0
  103. package/templates/agents/manager/supplier/refs/skills/backend/springboot-best-practices/index.yaml +27 -0
  104. package/templates/agents/manager/supplier/refs/skills/development/go-best-practices/SKILL.md +202 -0
  105. package/templates/agents/manager/supplier/refs/skills/development/go-best-practices/index.yaml +25 -0
  106. package/templates/agents/manager/supplier/refs/skills/development/kotlin-best-practices/SKILL.md +255 -0
  107. package/templates/agents/manager/supplier/refs/skills/development/kotlin-best-practices/index.yaml +27 -0
  108. package/templates/agents/manager/supplier/refs/skills/development/python-best-practices/SKILL.md +221 -0
  109. package/templates/agents/manager/supplier/refs/skills/development/python-best-practices/index.yaml +25 -0
  110. package/templates/agents/manager/supplier/refs/skills/development/react-best-practices/SKILL.md +100 -0
  111. package/templates/agents/manager/supplier/refs/skills/development/react-best-practices/index.yaml +39 -0
  112. package/templates/agents/manager/supplier/refs/skills/development/rust-best-practices/SKILL.md +266 -0
  113. package/templates/agents/manager/supplier/refs/skills/development/rust-best-practices/index.yaml +26 -0
  114. package/templates/agents/manager/supplier/refs/skills/development/typescript-best-practices/SKILL.md +320 -0
  115. package/templates/agents/manager/supplier/refs/skills/development/typescript-best-practices/index.yaml +28 -0
  116. package/templates/agents/manager/supplier/refs/skills/development/vercel-deploy/SKILL.md +73 -0
  117. package/templates/agents/manager/supplier/refs/skills/development/vercel-deploy/index.yaml +30 -0
  118. package/templates/agents/manager/supplier/refs/skills/development/web-design-guidelines/SKILL.md +117 -0
  119. package/templates/agents/manager/supplier/refs/skills/development/web-design-guidelines/index.yaml +34 -0
  120. package/templates/agents/manager/supplier/refs/skills/index.yaml +129 -0
  121. package/templates/agents/manager/supplier/refs/skills/infrastructure/aws-best-practices/SKILL.md +279 -0
  122. package/templates/agents/manager/supplier/refs/skills/infrastructure/aws-best-practices/index.yaml +27 -0
  123. package/templates/agents/manager/supplier/refs/skills/infrastructure/docker-best-practices/SKILL.md +274 -0
  124. package/templates/agents/manager/supplier/refs/skills/infrastructure/docker-best-practices/index.yaml +26 -0
  125. package/templates/agents/manager/supplier/refs/skills/orchestration/intent-detection/SKILL.md +214 -0
  126. package/templates/agents/manager/supplier/refs/skills/orchestration/intent-detection/index.yaml +30 -0
  127. package/templates/agents/manager/supplier/refs/skills/orchestration/intent-detection/patterns/agent-triggers.yaml +342 -0
  128. package/templates/agents/manager/supplier/refs/skills/orchestration/pipeline-execution/SKILL.md +188 -0
  129. package/templates/agents/manager/supplier/refs/skills/orchestration/pipeline-execution/index.yaml +27 -0
  130. package/templates/agents/manager/supplier/refs/skills/system/memory-management/SKILL.md +194 -0
  131. package/templates/agents/manager/supplier/refs/skills/system/memory-management/index.yaml +30 -0
  132. package/templates/agents/manager/supplier/refs/skills/system/result-aggregation/SKILL.md +163 -0
  133. package/templates/agents/manager/supplier/refs/skills/system/result-aggregation/index.yaml +36 -0
  134. package/templates/agents/manager/updater/refs/rules/MAY-optimization.md +93 -0
  135. package/templates/agents/manager/updater/refs/rules/MUST-agent-design.md +107 -0
  136. package/templates/agents/manager/updater/refs/rules/MUST-agent-identification.md +108 -0
  137. package/templates/agents/manager/updater/refs/rules/MUST-continuous-improvement.md +132 -0
  138. package/templates/agents/manager/updater/refs/rules/MUST-intent-transparency.md +199 -0
  139. package/templates/agents/manager/updater/refs/rules/MUST-language-policy.md +62 -0
  140. package/templates/agents/manager/updater/refs/rules/MUST-orchestrator-coordination.md +291 -0
  141. package/templates/agents/manager/updater/refs/rules/MUST-parallel-execution.md +341 -0
  142. package/templates/agents/manager/updater/refs/rules/MUST-permissions.md +84 -0
  143. package/templates/agents/manager/updater/refs/rules/MUST-safety.md +69 -0
  144. package/templates/agents/manager/updater/refs/rules/MUST-sync-verification.md +219 -0
  145. package/templates/agents/manager/updater/refs/rules/MUST-tool-identification.md +112 -0
  146. package/templates/agents/manager/updater/refs/rules/SHOULD-ecomode.md +145 -0
  147. package/templates/agents/manager/updater/refs/rules/SHOULD-error-handling.md +102 -0
  148. package/templates/agents/manager/updater/refs/rules/SHOULD-hud-statusline.md +89 -0
  149. package/templates/agents/manager/updater/refs/rules/SHOULD-interaction.md +103 -0
  150. package/templates/agents/manager/updater/refs/rules/SHOULD-memory-integration.md +114 -0
  151. package/templates/agents/manager/updater/refs/rules/SHOULD-pipeline-mode.md +165 -0
  152. package/templates/agents/manager/updater/refs/rules/index.yaml +125 -0
  153. package/templates/agents/orchestrator/secretary/refs/rules/MAY-optimization.md +93 -0
  154. package/templates/agents/orchestrator/secretary/refs/rules/MUST-agent-design.md +107 -0
  155. package/templates/agents/orchestrator/secretary/refs/rules/MUST-agent-identification.md +108 -0
  156. package/templates/agents/orchestrator/secretary/refs/rules/MUST-continuous-improvement.md +132 -0
  157. package/templates/agents/orchestrator/secretary/refs/rules/MUST-intent-transparency.md +199 -0
  158. package/templates/agents/orchestrator/secretary/refs/rules/MUST-language-policy.md +62 -0
  159. package/templates/agents/orchestrator/secretary/refs/rules/MUST-orchestrator-coordination.md +291 -0
  160. package/templates/agents/orchestrator/secretary/refs/rules/MUST-parallel-execution.md +341 -0
  161. package/templates/agents/orchestrator/secretary/refs/rules/MUST-permissions.md +84 -0
  162. package/templates/agents/orchestrator/secretary/refs/rules/MUST-safety.md +69 -0
  163. package/templates/agents/orchestrator/secretary/refs/rules/MUST-sync-verification.md +219 -0
  164. package/templates/agents/orchestrator/secretary/refs/rules/MUST-tool-identification.md +112 -0
  165. package/templates/agents/orchestrator/secretary/refs/rules/SHOULD-ecomode.md +145 -0
  166. package/templates/agents/orchestrator/secretary/refs/rules/SHOULD-error-handling.md +102 -0
  167. package/templates/agents/orchestrator/secretary/refs/rules/SHOULD-hud-statusline.md +89 -0
  168. package/templates/agents/orchestrator/secretary/refs/rules/SHOULD-interaction.md +103 -0
  169. package/templates/agents/orchestrator/secretary/refs/rules/SHOULD-memory-integration.md +114 -0
  170. package/templates/agents/orchestrator/secretary/refs/rules/SHOULD-pipeline-mode.md +165 -0
  171. package/templates/agents/orchestrator/secretary/refs/rules/index.yaml +125 -0
  172. package/templates/agents/sw-engineer/backend/fastapi-expert/refs/fastapi/best-practices.md +232 -0
  173. package/templates/agents/sw-engineer/backend/fastapi-expert/refs/fastapi/index.yaml +21 -0
  174. package/templates/agents/sw-engineer/backend/fastapi-expert/refs/fastapi-best-practices/SKILL.md +269 -0
  175. package/templates/agents/sw-engineer/backend/fastapi-expert/refs/fastapi-best-practices/index.yaml +25 -0
  176. package/templates/agents/sw-engineer/backend/go-backend-expert/refs/go-backend/index.yaml +26 -0
  177. package/templates/agents/sw-engineer/backend/go-backend-expert/refs/go-backend/project-layout.md +243 -0
  178. package/templates/agents/sw-engineer/backend/go-backend-expert/refs/go-backend/uber-style.md +212 -0
  179. package/templates/agents/sw-engineer/backend/go-backend-expert/refs/go-backend-best-practices/SKILL.md +337 -0
  180. package/templates/agents/sw-engineer/backend/go-backend-expert/refs/go-backend-best-practices/index.yaml +26 -0
  181. package/templates/agents/sw-engineer/backend/springboot-expert/refs/springboot/best-practices.md +361 -0
  182. package/templates/agents/sw-engineer/backend/springboot-expert/refs/springboot/index.yaml +22 -0
  183. package/templates/agents/sw-engineer/backend/springboot-expert/refs/springboot-best-practices/SKILL.md +356 -0
  184. package/templates/agents/sw-engineer/backend/springboot-expert/refs/springboot-best-practices/index.yaml +27 -0
  185. package/templates/agents/sw-engineer/frontend/vercel-agent/refs/react-best-practices/SKILL.md +100 -0
  186. package/templates/agents/sw-engineer/frontend/vercel-agent/refs/react-best-practices/index.yaml +39 -0
  187. package/templates/agents/sw-engineer/frontend/vercel-agent/refs/vercel-deploy/SKILL.md +73 -0
  188. package/templates/agents/sw-engineer/frontend/vercel-agent/refs/vercel-deploy/index.yaml +30 -0
  189. package/templates/agents/sw-engineer/frontend/vercel-agent/refs/web-design/accessibility.md +66 -0
  190. package/templates/agents/sw-engineer/frontend/vercel-agent/refs/web-design/index.yaml +20 -0
  191. package/templates/agents/sw-engineer/frontend/vercel-agent/refs/web-design/performance.md +102 -0
  192. package/templates/agents/sw-engineer/frontend/vercel-agent/refs/web-design-guidelines/SKILL.md +117 -0
  193. package/templates/agents/sw-engineer/frontend/vercel-agent/refs/web-design-guidelines/index.yaml +34 -0
  194. package/templates/agents/sw-engineer/language/golang-expert/refs/go-best-practices/SKILL.md +202 -0
  195. package/templates/agents/sw-engineer/language/golang-expert/refs/go-best-practices/index.yaml +25 -0
  196. package/templates/agents/sw-engineer/language/golang-expert/refs/golang/concurrency.md +282 -0
  197. package/templates/agents/sw-engineer/language/golang-expert/refs/golang/effective-go.md +309 -0
  198. package/templates/agents/sw-engineer/language/golang-expert/refs/golang/error-handling.md +250 -0
  199. package/templates/agents/sw-engineer/language/golang-expert/refs/golang/index.yaml +27 -0
  200. package/templates/agents/sw-engineer/language/kotlin-expert/refs/kotlin/coding-conventions.md +247 -0
  201. package/templates/agents/sw-engineer/language/kotlin-expert/refs/kotlin/idioms.md +234 -0
  202. package/templates/agents/sw-engineer/language/kotlin-expert/refs/kotlin/index.yaml +26 -0
  203. package/templates/agents/sw-engineer/language/kotlin-expert/refs/kotlin-best-practices/SKILL.md +255 -0
  204. package/templates/agents/sw-engineer/language/kotlin-expert/refs/kotlin-best-practices/index.yaml +27 -0
  205. package/templates/agents/sw-engineer/language/python-expert/refs/python/index.yaml +26 -0
  206. package/templates/agents/sw-engineer/language/python-expert/refs/python/pep8-style-guide.md +202 -0
  207. package/templates/agents/sw-engineer/language/python-expert/refs/python/zen-of-python.md +79 -0
  208. package/templates/agents/sw-engineer/language/python-expert/refs/python-best-practices/SKILL.md +221 -0
  209. package/templates/agents/sw-engineer/language/python-expert/refs/python-best-practices/index.yaml +25 -0
  210. package/templates/agents/sw-engineer/language/rust-expert/refs/rust/error-handling.md +262 -0
  211. package/templates/agents/sw-engineer/language/rust-expert/refs/rust/index.yaml +26 -0
  212. package/templates/agents/sw-engineer/language/rust-expert/refs/rust/ownership.md +180 -0
  213. package/templates/agents/sw-engineer/language/rust-expert/refs/rust-best-practices/SKILL.md +266 -0
  214. package/templates/agents/sw-engineer/language/rust-expert/refs/rust-best-practices/index.yaml +26 -0
  215. package/templates/agents/sw-engineer/language/typescript-expert/refs/typescript/advanced-types.md +225 -0
  216. package/templates/agents/sw-engineer/language/typescript-expert/refs/typescript/index.yaml +26 -0
  217. package/templates/agents/sw-engineer/language/typescript-expert/refs/typescript/type-system.md +219 -0
  218. package/templates/agents/sw-engineer/language/typescript-expert/refs/typescript-best-practices/SKILL.md +320 -0
  219. package/templates/agents/sw-engineer/language/typescript-expert/refs/typescript-best-practices/index.yaml +28 -0
  220. package/templates/agents/tutor/go-tutor/AGENT.md +130 -0
  221. package/templates/agents/tutor/go-tutor/index.yaml +48 -0
  222. package/templates/manifest.json +55 -0
  223. package/templates/skills/orchestration/intent-detection/patterns/agent-triggers.yaml +9 -0
@@ -0,0 +1,202 @@
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
+ ```
@@ -0,0 +1,79 @@
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.
@@ -0,0 +1,221 @@
1
+ # Python Best Practices Skill
2
+
3
+ > **Category**: Development
4
+ > **Source**: Internal (based on PEP 8 and PEP 20)
5
+
6
+ ## Purpose
7
+
8
+ Apply idiomatic Python patterns and best practices from official Python documentation.
9
+
10
+ ## The Zen of Python (PEP 20)
11
+
12
+ ```
13
+ Beautiful is better than ugly.
14
+ Explicit is better than implicit.
15
+ Simple is better than complex.
16
+ Complex is better than complicated.
17
+ Flat is better than nested.
18
+ Sparse is better than dense.
19
+ Readability counts.
20
+ Special cases aren't special enough to break the rules.
21
+ Although practicality beats purity.
22
+ Errors should never pass silently.
23
+ Unless explicitly silenced.
24
+ In the face of ambiguity, refuse the temptation to guess.
25
+ There should be one-- and preferably only one --obvious way to do it.
26
+ Although that way may not be obvious at first unless you're Dutch.
27
+ Now is better than never.
28
+ Although never is often better than *right* now.
29
+ If the implementation is hard to explain, it's a bad idea.
30
+ If the implementation is easy to explain, it may be a good idea.
31
+ Namespaces are one honking great idea -- let's do more of those!
32
+ ```
33
+
34
+ ## Rules
35
+
36
+ ### 1. Code Layout
37
+
38
+ ```yaml
39
+ indentation:
40
+ - Use 4 spaces per indentation level
41
+ - Never mix tabs and spaces
42
+ - Continuation lines align vertically or use hanging indent
43
+
44
+ line_length:
45
+ - Maximum 79 characters for code
46
+ - Maximum 72 characters for docstrings/comments
47
+ - Teams may agree on 99 characters for code
48
+
49
+ blank_lines:
50
+ - Two blank lines around top-level definitions
51
+ - One blank line between method definitions
52
+ - Use sparingly inside functions
53
+ ```
54
+
55
+ ### 2. Imports
56
+
57
+ ```yaml
58
+ rules:
59
+ - One import per line
60
+ - Position at file top, after docstrings
61
+ - Group order: standard library → third-party → local
62
+ - Separate groups with blank lines
63
+ - Prefer absolute imports
64
+ - Avoid wildcard imports (from X import *)
65
+
66
+ example: |
67
+ import os
68
+ import sys
69
+
70
+ from third_party import lib
71
+
72
+ from myproject import module
73
+ ```
74
+
75
+ ### 3. Whitespace
76
+
77
+ ```yaml
78
+ avoid:
79
+ - Extra spaces inside parentheses/brackets
80
+ - Spaces before commas or colons
81
+ - Spaces between function name and parenthesis
82
+ - Multiple spaces for alignment
83
+
84
+ required:
85
+ - Single space around binary operators
86
+ - Spaces around -> in annotations
87
+ - No spaces around = for default parameters
88
+ ```
89
+
90
+ ### 4. Naming Conventions
91
+
92
+ ```yaml
93
+ modules_packages:
94
+ style: lowercase_with_underscores
95
+ example: my_module
96
+
97
+ classes:
98
+ style: CapWords
99
+ example: MyClass
100
+
101
+ functions_variables:
102
+ style: lowercase_with_underscores
103
+ example: my_function, my_variable
104
+
105
+ constants:
106
+ style: ALL_CAPS_WITH_UNDERSCORES
107
+ example: MAX_SIZE, DEFAULT_VALUE
108
+
109
+ exceptions:
110
+ style: CapWords + Error suffix
111
+ example: ValueError, CustomError
112
+
113
+ private:
114
+ single_underscore: _internal (weak internal)
115
+ double_underscore: __private (name mangling)
116
+ trailing_underscore: class_ (avoid keyword conflict)
117
+
118
+ avoid:
119
+ - Single characters l, O, I (ambiguous)
120
+ ```
121
+
122
+ ### 5. Comments and Docstrings
123
+
124
+ ```yaml
125
+ principles:
126
+ - Comments contradicting code are worse than none
127
+ - Use complete sentences
128
+ - Keep comments up to date
129
+
130
+ block_comments:
131
+ - Indent at same level as code
132
+ - Start each line with # and space
133
+
134
+ inline_comments:
135
+ - Minimum two spaces from code
136
+ - Avoid obvious statements
137
+
138
+ docstrings:
139
+ - Write for all public modules, functions, classes, methods
140
+ - Use triple quotes
141
+ - First line: concise summary
142
+ - Blank line before detailed description
143
+ ```
144
+
145
+ ### 6. Programming Recommendations
146
+
147
+ ```yaml
148
+ comparisons:
149
+ - Use 'is' and 'is not' for None, True, False
150
+ - Prefer isinstance() over type()
151
+ - Use 'is not' rather than 'not ... is'
152
+
153
+ sequences:
154
+ - Test empty: if not seq: (not if len(seq) == 0)
155
+ - Use .startswith() and .endswith()
156
+
157
+ exceptions:
158
+ - Derive from Exception, not BaseException
159
+ - Catch specific exceptions
160
+ - Avoid bare except clauses
161
+ - Use 'raise X from Y' for chaining
162
+
163
+ functions:
164
+ - Use def, not lambda assignment
165
+ - Consistent return statements
166
+ - Use with for resource management
167
+
168
+ type_hints:
169
+ - Follow PEP 484 syntax
170
+ - Space after colon in annotations
171
+ - No space before colon
172
+ ```
173
+
174
+ ### 7. Pythonic Idioms
175
+
176
+ ```yaml
177
+ list_comprehension:
178
+ prefer: "[x*2 for x in items if x > 0]"
179
+ over: |
180
+ result = []
181
+ for x in items:
182
+ if x > 0:
183
+ result.append(x*2)
184
+
185
+ context_managers:
186
+ prefer: "with open('file') as f:"
187
+ over: |
188
+ f = open('file')
189
+ try:
190
+ ...
191
+ finally:
192
+ f.close()
193
+
194
+ unpacking:
195
+ prefer: "a, b = b, a"
196
+ over: |
197
+ temp = a
198
+ a = b
199
+ b = temp
200
+
201
+ enumerate:
202
+ prefer: "for i, item in enumerate(items):"
203
+ over: "for i in range(len(items)):"
204
+
205
+ dictionary:
206
+ prefer: "d.get(key, default)"
207
+ over: "d[key] if key in d else default"
208
+ ```
209
+
210
+ ## Application
211
+
212
+ When writing or reviewing Python code:
213
+
214
+ 1. **Always** follow PEP 8 formatting
215
+ 2. **Always** write docstrings for public APIs
216
+ 3. **Prefer** explicit over implicit
217
+ 4. **Prefer** simple over complex
218
+ 5. **Prefer** flat over nested
219
+ 6. **Avoid** premature optimization
220
+ 7. **Use** list comprehensions when readable
221
+ 8. **Use** context managers for resources
@@ -0,0 +1,25 @@
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