oh-my-customcode 0.1.2 → 0.1.4

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