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.
Files changed (436) hide show
  1. package/README.md +80 -129
  2. package/dist/cli/index.js +273 -100
  3. package/dist/index.js +11 -53
  4. package/package.json +1 -1
  5. package/templates/{agents/sw-architect/documenter/AGENT.md → .claude/agents/arch-documenter.md} +7 -39
  6. package/templates/{agents/sw-architect/speckit-agent/AGENT.md → .claude/agents/arch-speckit-agent.md} +61 -63
  7. package/templates/.claude/agents/be-express-expert.md +71 -0
  8. package/templates/.claude/agents/be-fastapi-expert.md +33 -0
  9. package/templates/.claude/agents/be-go-backend-expert.md +33 -0
  10. package/templates/.claude/agents/be-nestjs-expert.md +51 -0
  11. package/templates/.claude/agents/be-springboot-expert.md +75 -0
  12. package/templates/.claude/agents/db-supabase-expert.md +63 -0
  13. package/templates/{agents/sw-engineer/frontend/svelte-agent/AGENT.md → .claude/agents/fe-svelte-agent.md} +16 -31
  14. package/templates/.claude/agents/fe-vercel-agent.md +57 -0
  15. package/templates/{agents/sw-engineer/frontend/vuejs-agent/AGENT.md → .claude/agents/fe-vuejs-agent.md} +16 -31
  16. package/templates/.claude/agents/infra-aws-expert.md +37 -0
  17. package/templates/.claude/agents/infra-docker-expert.md +37 -0
  18. package/templates/.claude/agents/lang-golang-expert.md +33 -0
  19. package/templates/.claude/agents/lang-java21-expert.md +56 -0
  20. package/templates/.claude/agents/lang-kotlin-expert.md +33 -0
  21. package/templates/.claude/agents/lang-python-expert.md +33 -0
  22. package/templates/.claude/agents/lang-rust-expert.md +33 -0
  23. package/templates/.claude/agents/lang-typescript-expert.md +33 -0
  24. package/templates/.claude/agents/mgr-creator.md +102 -0
  25. package/templates/{agents/manager/gitnerd/AGENT.md → .claude/agents/mgr-gitnerd.md} +8 -17
  26. package/templates/.claude/agents/mgr-sauron.md +139 -0
  27. package/templates/{agents/manager/supplier/AGENT.md → .claude/agents/mgr-supplier.md} +14 -46
  28. package/templates/.claude/agents/mgr-sync-checker.md +89 -0
  29. package/templates/{agents/manager/updater/AGENT.md → .claude/agents/mgr-updater.md} +21 -53
  30. package/templates/{agents/qa-team/qa-engineer/AGENT.md → .claude/agents/qa-engineer.md} +13 -24
  31. package/templates/{agents/qa-team/qa-planner/AGENT.md → .claude/agents/qa-planner.md} +10 -20
  32. package/templates/{agents/qa-team/qa-writer/AGENT.md → .claude/agents/qa-writer.md} +10 -20
  33. package/templates/.claude/agents/sys-memory-keeper.md +105 -0
  34. package/templates/.claude/agents/sys-naggy.md +81 -0
  35. package/templates/{agents/sw-engineer/tooling/bun-expert/AGENT.md → .claude/agents/tool-bun-expert.md} +28 -39
  36. package/templates/.claude/agents/tool-npm-expert.md +76 -0
  37. package/templates/.claude/agents/tool-optimizer.md +75 -0
  38. package/templates/{agents/tutor/go-tutor/AGENT.md → .claude/agents/tutor-go.md} +16 -27
  39. package/templates/.claude/contexts/ecomode.md +5 -5
  40. package/templates/.claude/rules/MUST-agent-design.md +60 -42
  41. package/templates/.claude/rules/MUST-agent-identification.md +11 -11
  42. package/templates/.claude/rules/MUST-continuous-improvement.md +2 -2
  43. package/templates/.claude/rules/MUST-intent-transparency.md +18 -18
  44. package/templates/.claude/rules/MUST-orchestrator-coordination.md +192 -113
  45. package/templates/.claude/rules/MUST-parallel-execution.md +28 -28
  46. package/templates/.claude/rules/MUST-sync-verification.md +52 -45
  47. package/templates/.claude/rules/MUST-tool-identification.md +12 -14
  48. package/templates/.claude/rules/SHOULD-ecomode.md +3 -3
  49. package/templates/.claude/rules/SHOULD-hud-statusline.md +4 -4
  50. package/templates/.claude/rules/SHOULD-memory-integration.md +4 -4
  51. package/templates/.claude/rules/SHOULD-pipeline-mode.md +1 -1
  52. package/templates/.claude/skills/audit-agents/SKILL.md +116 -0
  53. package/templates/{skills/infrastructure → .claude/skills}/aws-best-practices/SKILL.md +4 -4
  54. package/templates/.claude/skills/create-agent/SKILL.md +91 -0
  55. package/templates/.claude/skills/dev-lead-routing/SKILL.md +238 -0
  56. package/templates/{commands/dev/refactor.md → .claude/skills/dev-refactor/SKILL.md} +17 -20
  57. package/templates/{commands/dev/review.md → .claude/skills/dev-review/SKILL.md} +16 -17
  58. package/templates/{agents/manager/supplier/refs/skills/infrastructure → .claude/skills}/docker-best-practices/SKILL.md +4 -4
  59. package/templates/{agents/manager/supplier/refs/skills/backend → .claude/skills}/fastapi-best-practices/SKILL.md +4 -4
  60. package/templates/.claude/skills/fix-refs/SKILL.md +107 -0
  61. package/templates/{agents/manager/supplier/refs/skills/backend → .claude/skills}/go-backend-best-practices/SKILL.md +4 -4
  62. package/templates/{skills/development → .claude/skills}/go-best-practices/SKILL.md +4 -4
  63. package/templates/{commands/system/help.md → .claude/skills/help/SKILL.md} +34 -46
  64. package/templates/{skills/orchestration → .claude/skills}/intent-detection/SKILL.md +14 -14
  65. package/templates/{agents/manager/supplier/refs/skills/orchestration → .claude/skills}/intent-detection/patterns/agent-triggers.yaml +117 -110
  66. package/templates/{agents/sw-engineer/language/kotlin-expert/refs → .claude/skills}/kotlin-best-practices/SKILL.md +4 -4
  67. package/templates/{commands/system/lists.md → .claude/skills/lists/SKILL.md} +25 -33
  68. package/templates/{agents/manager/supplier/refs/skills/system → .claude/skills}/memory-management/SKILL.md +10 -10
  69. package/templates/{commands/memory/recall.md → .claude/skills/memory-recall/SKILL.md} +31 -43
  70. package/templates/{commands/memory/save.md → .claude/skills/memory-save/SKILL.md} +27 -29
  71. package/templates/.claude/skills/npm-audit/SKILL.md +72 -0
  72. package/templates/.claude/skills/npm-publish/SKILL.md +63 -0
  73. package/templates/.claude/skills/npm-version/SKILL.md +75 -0
  74. package/templates/.claude/skills/optimize-analyze/SKILL.md +55 -0
  75. package/templates/.claude/skills/optimize-bundle/SKILL.md +67 -0
  76. package/templates/.claude/skills/optimize-report/SKILL.md +74 -0
  77. package/templates/{skills/orchestration → .claude/skills}/pipeline-execution/SKILL.md +4 -4
  78. package/templates/{commands/pipeline/list.md → .claude/skills/pipeline-list/SKILL.md} +11 -18
  79. package/templates/{commands/pipeline/run.md → .claude/skills/pipeline-run/SKILL.md} +38 -22
  80. package/templates/{agents/sw-engineer/language/python-expert/refs → .claude/skills}/python-best-practices/SKILL.md +4 -4
  81. package/templates/.claude/skills/qa-lead-routing/SKILL.md +277 -0
  82. package/templates/{skills/development → .claude/skills}/react-best-practices/SKILL.md +4 -4
  83. package/templates/{skills/system → .claude/skills}/result-aggregation/SKILL.md +17 -17
  84. package/templates/{agents/sw-engineer/language/rust-expert/refs → .claude/skills}/rust-best-practices/SKILL.md +4 -4
  85. package/templates/.claude/skills/sauron-watch/SKILL.md +144 -0
  86. package/templates/.claude/skills/secretary-routing/SKILL.md +178 -0
  87. package/templates/{skills/backend → .claude/skills}/springboot-best-practices/SKILL.md +4 -4
  88. package/templates/{commands/system/status.md → .claude/skills/status/SKILL.md} +29 -39
  89. package/templates/.claude/skills/supabase-postgres-best-practices/SKILL.md +98 -0
  90. package/templates/{skills/development → .claude/skills}/typescript-best-practices/SKILL.md +4 -4
  91. package/templates/{commands/updater/docs.md → .claude/skills/update-docs/SKILL.md} +71 -96
  92. package/templates/{commands/updater/external.md → .claude/skills/update-external/SKILL.md} +34 -99
  93. package/templates/{agents/manager/supplier/refs/skills/development → .claude/skills}/vercel-deploy/SKILL.md +4 -4
  94. package/templates/{agents/manager/supplier/refs/skills/development → .claude/skills}/web-design-guidelines/SKILL.md +4 -4
  95. package/templates/CLAUDE.md.en +75 -100
  96. package/templates/CLAUDE.md.ko +74 -99
  97. package/templates/guides/aws/index.yaml +1 -1
  98. package/templates/guides/docker/index.yaml +1 -1
  99. package/templates/guides/fastapi/index.yaml +1 -1
  100. package/templates/guides/go-backend/index.yaml +1 -1
  101. package/templates/guides/golang/index.yaml +1 -1
  102. package/templates/guides/index.yaml +9 -0
  103. package/templates/guides/kotlin/index.yaml +1 -1
  104. package/templates/guides/python/index.yaml +1 -1
  105. package/templates/guides/rust/index.yaml +1 -1
  106. package/templates/guides/springboot/index.yaml +1 -1
  107. package/templates/guides/supabase-postgres/README.md +32 -0
  108. package/templates/guides/supabase-postgres/index.yaml +19 -0
  109. package/templates/guides/typescript/index.yaml +1 -1
  110. package/templates/manifest.json +9 -15
  111. package/templates/pipelines/examples/code-review.yaml +1 -1
  112. package/templates/agents/index.yaml +0 -243
  113. package/templates/agents/infra-engineer/aws-expert/AGENT.md +0 -47
  114. package/templates/agents/infra-engineer/aws-expert/index.yaml +0 -27
  115. package/templates/agents/infra-engineer/aws-expert/refs/aws/common-patterns.md +0 -169
  116. package/templates/agents/infra-engineer/aws-expert/refs/aws/index.yaml +0 -26
  117. package/templates/agents/infra-engineer/aws-expert/refs/aws/well-architected.md +0 -143
  118. package/templates/agents/infra-engineer/aws-expert/refs/aws-best-practices/SKILL.md +0 -279
  119. package/templates/agents/infra-engineer/aws-expert/refs/aws-best-practices/index.yaml +0 -27
  120. package/templates/agents/infra-engineer/docker-expert/AGENT.md +0 -47
  121. package/templates/agents/infra-engineer/docker-expert/index.yaml +0 -27
  122. package/templates/agents/infra-engineer/docker-expert/refs/docker/compose-best-practices.md +0 -284
  123. package/templates/agents/infra-engineer/docker-expert/refs/docker/dockerfile-best-practices.md +0 -262
  124. package/templates/agents/infra-engineer/docker-expert/refs/docker/index.yaml +0 -26
  125. package/templates/agents/infra-engineer/docker-expert/refs/docker-best-practices/SKILL.md +0 -274
  126. package/templates/agents/infra-engineer/docker-expert/refs/docker-best-practices/index.yaml +0 -26
  127. package/templates/agents/manager/creator/AGENT.md +0 -274
  128. package/templates/agents/manager/creator/index.yaml +0 -66
  129. package/templates/agents/manager/creator/refs/rules/MAY-optimization.md +0 -93
  130. package/templates/agents/manager/creator/refs/rules/MUST-agent-design.md +0 -107
  131. package/templates/agents/manager/creator/refs/rules/MUST-agent-identification.md +0 -108
  132. package/templates/agents/manager/creator/refs/rules/MUST-continuous-improvement.md +0 -132
  133. package/templates/agents/manager/creator/refs/rules/MUST-intent-transparency.md +0 -199
  134. package/templates/agents/manager/creator/refs/rules/MUST-language-policy.md +0 -62
  135. package/templates/agents/manager/creator/refs/rules/MUST-orchestrator-coordination.md +0 -334
  136. package/templates/agents/manager/creator/refs/rules/MUST-parallel-execution.md +0 -398
  137. package/templates/agents/manager/creator/refs/rules/MUST-permissions.md +0 -84
  138. package/templates/agents/manager/creator/refs/rules/MUST-safety.md +0 -69
  139. package/templates/agents/manager/creator/refs/rules/MUST-sync-verification.md +0 -219
  140. package/templates/agents/manager/creator/refs/rules/MUST-tool-identification.md +0 -174
  141. package/templates/agents/manager/creator/refs/rules/SHOULD-ecomode.md +0 -145
  142. package/templates/agents/manager/creator/refs/rules/SHOULD-error-handling.md +0 -102
  143. package/templates/agents/manager/creator/refs/rules/SHOULD-hud-statusline.md +0 -96
  144. package/templates/agents/manager/creator/refs/rules/SHOULD-interaction.md +0 -103
  145. package/templates/agents/manager/creator/refs/rules/SHOULD-memory-integration.md +0 -114
  146. package/templates/agents/manager/creator/refs/rules/SHOULD-pipeline-mode.md +0 -165
  147. package/templates/agents/manager/creator/refs/rules/index.yaml +0 -125
  148. package/templates/agents/manager/gitnerd/index.yaml +0 -55
  149. package/templates/agents/manager/sauron/AGENT.md +0 -153
  150. package/templates/agents/manager/sauron/index.yaml +0 -52
  151. package/templates/agents/manager/supplier/index.yaml +0 -31
  152. package/templates/agents/manager/supplier/refs/guides/aws/common-patterns.md +0 -169
  153. package/templates/agents/manager/supplier/refs/guides/aws/index.yaml +0 -26
  154. package/templates/agents/manager/supplier/refs/guides/aws/well-architected.md +0 -143
  155. package/templates/agents/manager/supplier/refs/guides/claude-code/01-overview.md +0 -42
  156. package/templates/agents/manager/supplier/refs/guides/claude-code/03-tools.md +0 -107
  157. package/templates/agents/manager/supplier/refs/guides/claude-code/04-agent-skills.md +0 -90
  158. package/templates/agents/manager/supplier/refs/guides/claude-code/05-agent-sdk.md +0 -129
  159. package/templates/agents/manager/supplier/refs/guides/claude-code/06-mcp.md +0 -165
  160. package/templates/agents/manager/supplier/refs/guides/claude-code/07-prompt-engineering.md +0 -100
  161. package/templates/agents/manager/supplier/refs/guides/claude-code/08-testing.md +0 -58
  162. package/templates/agents/manager/supplier/refs/guides/claude-code/09-guardrails.md +0 -80
  163. package/templates/agents/manager/supplier/refs/guides/claude-code/10-monitoring.md +0 -89
  164. package/templates/agents/manager/supplier/refs/guides/claude-code/11-sub-agents.md +0 -159
  165. package/templates/agents/manager/supplier/refs/guides/claude-code/index.yaml +0 -51
  166. package/templates/agents/manager/supplier/refs/guides/docker/compose-best-practices.md +0 -284
  167. package/templates/agents/manager/supplier/refs/guides/docker/dockerfile-best-practices.md +0 -262
  168. package/templates/agents/manager/supplier/refs/guides/docker/index.yaml +0 -26
  169. package/templates/agents/manager/supplier/refs/guides/fastapi/best-practices.md +0 -232
  170. package/templates/agents/manager/supplier/refs/guides/fastapi/index.yaml +0 -21
  171. package/templates/agents/manager/supplier/refs/guides/go-backend/index.yaml +0 -26
  172. package/templates/agents/manager/supplier/refs/guides/go-backend/project-layout.md +0 -243
  173. package/templates/agents/manager/supplier/refs/guides/go-backend/uber-style.md +0 -212
  174. package/templates/agents/manager/supplier/refs/guides/golang/concurrency.md +0 -282
  175. package/templates/agents/manager/supplier/refs/guides/golang/effective-go.md +0 -309
  176. package/templates/agents/manager/supplier/refs/guides/golang/error-handling.md +0 -250
  177. package/templates/agents/manager/supplier/refs/guides/golang/index.yaml +0 -27
  178. package/templates/agents/manager/supplier/refs/guides/index.yaml +0 -101
  179. package/templates/agents/manager/supplier/refs/guides/kotlin/coding-conventions.md +0 -247
  180. package/templates/agents/manager/supplier/refs/guides/kotlin/idioms.md +0 -234
  181. package/templates/agents/manager/supplier/refs/guides/kotlin/index.yaml +0 -26
  182. package/templates/agents/manager/supplier/refs/guides/python/index.yaml +0 -26
  183. package/templates/agents/manager/supplier/refs/guides/python/pep8-style-guide.md +0 -202
  184. package/templates/agents/manager/supplier/refs/guides/python/zen-of-python.md +0 -79
  185. package/templates/agents/manager/supplier/refs/guides/rust/error-handling.md +0 -262
  186. package/templates/agents/manager/supplier/refs/guides/rust/index.yaml +0 -26
  187. package/templates/agents/manager/supplier/refs/guides/rust/ownership.md +0 -180
  188. package/templates/agents/manager/supplier/refs/guides/springboot/best-practices.md +0 -361
  189. package/templates/agents/manager/supplier/refs/guides/springboot/index.yaml +0 -22
  190. package/templates/agents/manager/supplier/refs/guides/typescript/advanced-types.md +0 -225
  191. package/templates/agents/manager/supplier/refs/guides/typescript/index.yaml +0 -26
  192. package/templates/agents/manager/supplier/refs/guides/typescript/type-system.md +0 -219
  193. package/templates/agents/manager/supplier/refs/guides/web-design/accessibility.md +0 -66
  194. package/templates/agents/manager/supplier/refs/guides/web-design/index.yaml +0 -20
  195. package/templates/agents/manager/supplier/refs/guides/web-design/performance.md +0 -102
  196. package/templates/agents/manager/supplier/refs/rules/MAY-optimization.md +0 -93
  197. package/templates/agents/manager/supplier/refs/rules/MUST-agent-design.md +0 -107
  198. package/templates/agents/manager/supplier/refs/rules/MUST-agent-identification.md +0 -108
  199. package/templates/agents/manager/supplier/refs/rules/MUST-continuous-improvement.md +0 -132
  200. package/templates/agents/manager/supplier/refs/rules/MUST-intent-transparency.md +0 -199
  201. package/templates/agents/manager/supplier/refs/rules/MUST-language-policy.md +0 -62
  202. package/templates/agents/manager/supplier/refs/rules/MUST-orchestrator-coordination.md +0 -334
  203. package/templates/agents/manager/supplier/refs/rules/MUST-parallel-execution.md +0 -398
  204. package/templates/agents/manager/supplier/refs/rules/MUST-permissions.md +0 -84
  205. package/templates/agents/manager/supplier/refs/rules/MUST-safety.md +0 -69
  206. package/templates/agents/manager/supplier/refs/rules/MUST-sync-verification.md +0 -219
  207. package/templates/agents/manager/supplier/refs/rules/MUST-tool-identification.md +0 -174
  208. package/templates/agents/manager/supplier/refs/rules/SHOULD-ecomode.md +0 -145
  209. package/templates/agents/manager/supplier/refs/rules/SHOULD-error-handling.md +0 -102
  210. package/templates/agents/manager/supplier/refs/rules/SHOULD-hud-statusline.md +0 -96
  211. package/templates/agents/manager/supplier/refs/rules/SHOULD-interaction.md +0 -103
  212. package/templates/agents/manager/supplier/refs/rules/SHOULD-memory-integration.md +0 -114
  213. package/templates/agents/manager/supplier/refs/rules/SHOULD-pipeline-mode.md +0 -165
  214. package/templates/agents/manager/supplier/refs/rules/index.yaml +0 -125
  215. package/templates/agents/manager/supplier/refs/skills/backend/fastapi-best-practices/index.yaml +0 -25
  216. package/templates/agents/manager/supplier/refs/skills/backend/go-backend-best-practices/index.yaml +0 -26
  217. package/templates/agents/manager/supplier/refs/skills/backend/springboot-best-practices/SKILL.md +0 -356
  218. package/templates/agents/manager/supplier/refs/skills/backend/springboot-best-practices/index.yaml +0 -27
  219. package/templates/agents/manager/supplier/refs/skills/development/go-best-practices/SKILL.md +0 -202
  220. package/templates/agents/manager/supplier/refs/skills/development/go-best-practices/index.yaml +0 -25
  221. package/templates/agents/manager/supplier/refs/skills/development/kotlin-best-practices/SKILL.md +0 -255
  222. package/templates/agents/manager/supplier/refs/skills/development/kotlin-best-practices/index.yaml +0 -27
  223. package/templates/agents/manager/supplier/refs/skills/development/python-best-practices/SKILL.md +0 -221
  224. package/templates/agents/manager/supplier/refs/skills/development/python-best-practices/index.yaml +0 -25
  225. package/templates/agents/manager/supplier/refs/skills/development/react-best-practices/SKILL.md +0 -100
  226. package/templates/agents/manager/supplier/refs/skills/development/react-best-practices/index.yaml +0 -39
  227. package/templates/agents/manager/supplier/refs/skills/development/rust-best-practices/SKILL.md +0 -266
  228. package/templates/agents/manager/supplier/refs/skills/development/rust-best-practices/index.yaml +0 -26
  229. package/templates/agents/manager/supplier/refs/skills/development/typescript-best-practices/SKILL.md +0 -320
  230. package/templates/agents/manager/supplier/refs/skills/development/typescript-best-practices/index.yaml +0 -28
  231. package/templates/agents/manager/supplier/refs/skills/development/vercel-deploy/index.yaml +0 -30
  232. package/templates/agents/manager/supplier/refs/skills/development/web-design-guidelines/index.yaml +0 -34
  233. package/templates/agents/manager/supplier/refs/skills/index.yaml +0 -129
  234. package/templates/agents/manager/supplier/refs/skills/infrastructure/aws-best-practices/SKILL.md +0 -279
  235. package/templates/agents/manager/supplier/refs/skills/infrastructure/aws-best-practices/index.yaml +0 -27
  236. package/templates/agents/manager/supplier/refs/skills/infrastructure/docker-best-practices/index.yaml +0 -26
  237. package/templates/agents/manager/supplier/refs/skills/orchestration/intent-detection/SKILL.md +0 -214
  238. package/templates/agents/manager/supplier/refs/skills/orchestration/intent-detection/index.yaml +0 -30
  239. package/templates/agents/manager/supplier/refs/skills/orchestration/pipeline-execution/SKILL.md +0 -188
  240. package/templates/agents/manager/supplier/refs/skills/orchestration/pipeline-execution/index.yaml +0 -27
  241. package/templates/agents/manager/supplier/refs/skills/system/memory-management/index.yaml +0 -30
  242. package/templates/agents/manager/supplier/refs/skills/system/result-aggregation/SKILL.md +0 -163
  243. package/templates/agents/manager/supplier/refs/skills/system/result-aggregation/index.yaml +0 -36
  244. package/templates/agents/manager/sync-checker/AGENT.md +0 -34
  245. package/templates/agents/manager/sync-checker/index.yaml +0 -32
  246. package/templates/agents/manager/updater/index.yaml +0 -31
  247. package/templates/agents/manager/updater/refs/rules/MAY-optimization.md +0 -93
  248. package/templates/agents/manager/updater/refs/rules/MUST-agent-design.md +0 -107
  249. package/templates/agents/manager/updater/refs/rules/MUST-agent-identification.md +0 -108
  250. package/templates/agents/manager/updater/refs/rules/MUST-continuous-improvement.md +0 -132
  251. package/templates/agents/manager/updater/refs/rules/MUST-intent-transparency.md +0 -199
  252. package/templates/agents/manager/updater/refs/rules/MUST-language-policy.md +0 -62
  253. package/templates/agents/manager/updater/refs/rules/MUST-orchestrator-coordination.md +0 -334
  254. package/templates/agents/manager/updater/refs/rules/MUST-parallel-execution.md +0 -398
  255. package/templates/agents/manager/updater/refs/rules/MUST-permissions.md +0 -84
  256. package/templates/agents/manager/updater/refs/rules/MUST-safety.md +0 -69
  257. package/templates/agents/manager/updater/refs/rules/MUST-sync-verification.md +0 -219
  258. package/templates/agents/manager/updater/refs/rules/MUST-tool-identification.md +0 -174
  259. package/templates/agents/manager/updater/refs/rules/SHOULD-ecomode.md +0 -145
  260. package/templates/agents/manager/updater/refs/rules/SHOULD-error-handling.md +0 -102
  261. package/templates/agents/manager/updater/refs/rules/SHOULD-hud-statusline.md +0 -96
  262. package/templates/agents/manager/updater/refs/rules/SHOULD-interaction.md +0 -103
  263. package/templates/agents/manager/updater/refs/rules/SHOULD-memory-integration.md +0 -114
  264. package/templates/agents/manager/updater/refs/rules/SHOULD-pipeline-mode.md +0 -165
  265. package/templates/agents/manager/updater/refs/rules/index.yaml +0 -125
  266. package/templates/agents/orchestrator/dev-lead/AGENT.md +0 -163
  267. package/templates/agents/orchestrator/dev-lead/index.yaml +0 -73
  268. package/templates/agents/orchestrator/planner/AGENT.md +0 -102
  269. package/templates/agents/orchestrator/planner/index.yaml +0 -38
  270. package/templates/agents/orchestrator/qa-lead/AGENT.md +0 -92
  271. package/templates/agents/orchestrator/qa-lead/index.yaml +0 -40
  272. package/templates/agents/orchestrator/secretary/AGENT.md +0 -181
  273. package/templates/agents/orchestrator/secretary/index.yaml +0 -55
  274. package/templates/agents/orchestrator/secretary/refs/rules/MAY-optimization.md +0 -93
  275. package/templates/agents/orchestrator/secretary/refs/rules/MUST-agent-design.md +0 -107
  276. package/templates/agents/orchestrator/secretary/refs/rules/MUST-agent-identification.md +0 -108
  277. package/templates/agents/orchestrator/secretary/refs/rules/MUST-continuous-improvement.md +0 -132
  278. package/templates/agents/orchestrator/secretary/refs/rules/MUST-intent-transparency.md +0 -199
  279. package/templates/agents/orchestrator/secretary/refs/rules/MUST-language-policy.md +0 -62
  280. package/templates/agents/orchestrator/secretary/refs/rules/MUST-orchestrator-coordination.md +0 -334
  281. package/templates/agents/orchestrator/secretary/refs/rules/MUST-parallel-execution.md +0 -398
  282. package/templates/agents/orchestrator/secretary/refs/rules/MUST-permissions.md +0 -84
  283. package/templates/agents/orchestrator/secretary/refs/rules/MUST-safety.md +0 -69
  284. package/templates/agents/orchestrator/secretary/refs/rules/MUST-sync-verification.md +0 -219
  285. package/templates/agents/orchestrator/secretary/refs/rules/MUST-tool-identification.md +0 -174
  286. package/templates/agents/orchestrator/secretary/refs/rules/SHOULD-ecomode.md +0 -145
  287. package/templates/agents/orchestrator/secretary/refs/rules/SHOULD-error-handling.md +0 -102
  288. package/templates/agents/orchestrator/secretary/refs/rules/SHOULD-hud-statusline.md +0 -96
  289. package/templates/agents/orchestrator/secretary/refs/rules/SHOULD-interaction.md +0 -103
  290. package/templates/agents/orchestrator/secretary/refs/rules/SHOULD-memory-integration.md +0 -114
  291. package/templates/agents/orchestrator/secretary/refs/rules/SHOULD-pipeline-mode.md +0 -165
  292. package/templates/agents/orchestrator/secretary/refs/rules/index.yaml +0 -125
  293. package/templates/agents/qa-team/qa-engineer/index.yaml +0 -59
  294. package/templates/agents/qa-team/qa-planner/index.yaml +0 -47
  295. package/templates/agents/qa-team/qa-writer/index.yaml +0 -44
  296. package/templates/agents/sw-architect/documenter/index.yaml +0 -39
  297. package/templates/agents/sw-architect/speckit-agent/index.yaml +0 -78
  298. package/templates/agents/sw-engineer/backend/express-expert/AGENT.md +0 -132
  299. package/templates/agents/sw-engineer/backend/express-expert/index.yaml +0 -36
  300. package/templates/agents/sw-engineer/backend/fastapi-expert/AGENT.md +0 -47
  301. package/templates/agents/sw-engineer/backend/fastapi-expert/index.yaml +0 -27
  302. package/templates/agents/sw-engineer/backend/fastapi-expert/refs/fastapi/best-practices.md +0 -232
  303. package/templates/agents/sw-engineer/backend/fastapi-expert/refs/fastapi/index.yaml +0 -21
  304. package/templates/agents/sw-engineer/backend/fastapi-expert/refs/fastapi-best-practices/SKILL.md +0 -269
  305. package/templates/agents/sw-engineer/backend/fastapi-expert/refs/fastapi-best-practices/index.yaml +0 -25
  306. package/templates/agents/sw-engineer/backend/go-backend-expert/AGENT.md +0 -47
  307. package/templates/agents/sw-engineer/backend/go-backend-expert/index.yaml +0 -27
  308. package/templates/agents/sw-engineer/backend/go-backend-expert/refs/go-backend/index.yaml +0 -26
  309. package/templates/agents/sw-engineer/backend/go-backend-expert/refs/go-backend/project-layout.md +0 -243
  310. package/templates/agents/sw-engineer/backend/go-backend-expert/refs/go-backend/uber-style.md +0 -212
  311. package/templates/agents/sw-engineer/backend/go-backend-expert/refs/go-backend-best-practices/SKILL.md +0 -337
  312. package/templates/agents/sw-engineer/backend/go-backend-expert/refs/go-backend-best-practices/index.yaml +0 -26
  313. package/templates/agents/sw-engineer/backend/nestjs-expert/AGENT.md +0 -107
  314. package/templates/agents/sw-engineer/backend/nestjs-expert/index.yaml +0 -43
  315. package/templates/agents/sw-engineer/backend/springboot-expert/AGENT.md +0 -103
  316. package/templates/agents/sw-engineer/backend/springboot-expert/index.yaml +0 -69
  317. package/templates/agents/sw-engineer/backend/springboot-expert/refs/springboot/best-practices.md +0 -361
  318. package/templates/agents/sw-engineer/backend/springboot-expert/refs/springboot/index.yaml +0 -22
  319. package/templates/agents/sw-engineer/backend/springboot-expert/refs/springboot-best-practices/SKILL.md +0 -356
  320. package/templates/agents/sw-engineer/backend/springboot-expert/refs/springboot-best-practices/index.yaml +0 -27
  321. package/templates/agents/sw-engineer/frontend/svelte-agent/index.yaml +0 -41
  322. package/templates/agents/sw-engineer/frontend/vercel-agent/AGENT.md +0 -67
  323. package/templates/agents/sw-engineer/frontend/vercel-agent/index.yaml +0 -43
  324. package/templates/agents/sw-engineer/frontend/vercel-agent/refs/react-best-practices/SKILL.md +0 -100
  325. package/templates/agents/sw-engineer/frontend/vercel-agent/refs/react-best-practices/index.yaml +0 -39
  326. package/templates/agents/sw-engineer/frontend/vercel-agent/refs/vercel-deploy/SKILL.md +0 -73
  327. package/templates/agents/sw-engineer/frontend/vercel-agent/refs/vercel-deploy/index.yaml +0 -30
  328. package/templates/agents/sw-engineer/frontend/vercel-agent/refs/web-design/accessibility.md +0 -66
  329. package/templates/agents/sw-engineer/frontend/vercel-agent/refs/web-design/index.yaml +0 -20
  330. package/templates/agents/sw-engineer/frontend/vercel-agent/refs/web-design/performance.md +0 -102
  331. package/templates/agents/sw-engineer/frontend/vercel-agent/refs/web-design-guidelines/SKILL.md +0 -117
  332. package/templates/agents/sw-engineer/frontend/vercel-agent/refs/web-design-guidelines/index.yaml +0 -34
  333. package/templates/agents/sw-engineer/frontend/vuejs-agent/index.yaml +0 -48
  334. package/templates/agents/sw-engineer/language/golang-expert/AGENT.md +0 -47
  335. package/templates/agents/sw-engineer/language/golang-expert/index.yaml +0 -27
  336. package/templates/agents/sw-engineer/language/golang-expert/refs/go-best-practices/SKILL.md +0 -202
  337. package/templates/agents/sw-engineer/language/golang-expert/refs/go-best-practices/index.yaml +0 -25
  338. package/templates/agents/sw-engineer/language/golang-expert/refs/golang/concurrency.md +0 -282
  339. package/templates/agents/sw-engineer/language/golang-expert/refs/golang/effective-go.md +0 -309
  340. package/templates/agents/sw-engineer/language/golang-expert/refs/golang/error-handling.md +0 -250
  341. package/templates/agents/sw-engineer/language/golang-expert/refs/golang/index.yaml +0 -27
  342. package/templates/agents/sw-engineer/language/java21-expert/AGENT.md +0 -122
  343. package/templates/agents/sw-engineer/language/java21-expert/index.yaml +0 -51
  344. package/templates/agents/sw-engineer/language/kotlin-expert/AGENT.md +0 -47
  345. package/templates/agents/sw-engineer/language/kotlin-expert/index.yaml +0 -27
  346. package/templates/agents/sw-engineer/language/kotlin-expert/refs/kotlin/coding-conventions.md +0 -247
  347. package/templates/agents/sw-engineer/language/kotlin-expert/refs/kotlin/idioms.md +0 -234
  348. package/templates/agents/sw-engineer/language/kotlin-expert/refs/kotlin/index.yaml +0 -26
  349. package/templates/agents/sw-engineer/language/kotlin-expert/refs/kotlin-best-practices/index.yaml +0 -27
  350. package/templates/agents/sw-engineer/language/python-expert/AGENT.md +0 -47
  351. package/templates/agents/sw-engineer/language/python-expert/index.yaml +0 -27
  352. package/templates/agents/sw-engineer/language/python-expert/refs/python/index.yaml +0 -26
  353. package/templates/agents/sw-engineer/language/python-expert/refs/python/pep8-style-guide.md +0 -202
  354. package/templates/agents/sw-engineer/language/python-expert/refs/python/zen-of-python.md +0 -79
  355. package/templates/agents/sw-engineer/language/python-expert/refs/python-best-practices/index.yaml +0 -25
  356. package/templates/agents/sw-engineer/language/rust-expert/AGENT.md +0 -47
  357. package/templates/agents/sw-engineer/language/rust-expert/index.yaml +0 -27
  358. package/templates/agents/sw-engineer/language/rust-expert/refs/rust/error-handling.md +0 -262
  359. package/templates/agents/sw-engineer/language/rust-expert/refs/rust/index.yaml +0 -26
  360. package/templates/agents/sw-engineer/language/rust-expert/refs/rust/ownership.md +0 -180
  361. package/templates/agents/sw-engineer/language/rust-expert/refs/rust-best-practices/index.yaml +0 -26
  362. package/templates/agents/sw-engineer/language/typescript-expert/AGENT.md +0 -47
  363. package/templates/agents/sw-engineer/language/typescript-expert/index.yaml +0 -27
  364. package/templates/agents/sw-engineer/language/typescript-expert/refs/typescript/advanced-types.md +0 -225
  365. package/templates/agents/sw-engineer/language/typescript-expert/refs/typescript/index.yaml +0 -26
  366. package/templates/agents/sw-engineer/language/typescript-expert/refs/typescript/type-system.md +0 -219
  367. package/templates/agents/sw-engineer/language/typescript-expert/refs/typescript-best-practices/SKILL.md +0 -320
  368. package/templates/agents/sw-engineer/language/typescript-expert/refs/typescript-best-practices/index.yaml +0 -28
  369. package/templates/agents/sw-engineer/tooling/bun-expert/index.yaml +0 -46
  370. package/templates/agents/sw-engineer/tooling/npm-expert/AGENT.md +0 -160
  371. package/templates/agents/sw-engineer/tooling/npm-expert/index.yaml +0 -45
  372. package/templates/agents/sw-engineer/tooling/optimizer/AGENT.md +0 -170
  373. package/templates/agents/sw-engineer/tooling/optimizer/index.yaml +0 -45
  374. package/templates/agents/system/memory-keeper/AGENT.md +0 -126
  375. package/templates/agents/system/memory-keeper/index.yaml +0 -45
  376. package/templates/agents/system/naggy/AGENT.md +0 -72
  377. package/templates/agents/system/naggy/index.yaml +0 -35
  378. package/templates/agents/tutor/go-tutor/index.yaml +0 -48
  379. package/templates/commands/COMMANDS.md +0 -136
  380. package/templates/commands/creator/agent.md +0 -121
  381. package/templates/commands/git/branch.yaml +0 -8
  382. package/templates/commands/git/commit.yaml +0 -4
  383. package/templates/commands/git/pr.yaml +0 -4
  384. package/templates/commands/git/status.yaml +0 -4
  385. package/templates/commands/git/sync.yaml +0 -4
  386. package/templates/commands/index.yaml +0 -225
  387. package/templates/commands/intent/explain.md +0 -144
  388. package/templates/commands/naggy/add.yaml +0 -8
  389. package/templates/commands/naggy/done.yaml +0 -8
  390. package/templates/commands/naggy/list.yaml +0 -4
  391. package/templates/commands/naggy/priority.yaml +0 -11
  392. package/templates/commands/naggy/remind.yaml +0 -4
  393. package/templates/commands/npm/audit.yaml +0 -62
  394. package/templates/commands/npm/publish.yaml +0 -52
  395. package/templates/commands/npm/version.yaml +0 -62
  396. package/templates/commands/optimize/analyze.yaml +0 -34
  397. package/templates/commands/optimize/bundle.yaml +0 -50
  398. package/templates/commands/optimize/report.yaml +0 -56
  399. package/templates/commands/sauron/quick.yaml +0 -4
  400. package/templates/commands/sauron/report.yaml +0 -4
  401. package/templates/commands/sauron/watch.yaml +0 -4
  402. package/templates/commands/supplier/audit.md +0 -133
  403. package/templates/commands/supplier/fix.md +0 -121
  404. package/templates/commands/sync/agents.yaml +0 -4
  405. package/templates/commands/sync/check.yaml +0 -4
  406. package/templates/commands/sync/commands.yaml +0 -4
  407. package/templates/commands/sync/docs.yaml +0 -4
  408. package/templates/commands/sync/fix.yaml +0 -4
  409. package/templates/skills/backend/fastapi-best-practices/SKILL.md +0 -269
  410. package/templates/skills/backend/fastapi-best-practices/index.yaml +0 -25
  411. package/templates/skills/backend/go-backend-best-practices/SKILL.md +0 -337
  412. package/templates/skills/backend/go-backend-best-practices/index.yaml +0 -26
  413. package/templates/skills/backend/springboot-best-practices/index.yaml +0 -27
  414. package/templates/skills/development/go-best-practices/index.yaml +0 -25
  415. package/templates/skills/development/kotlin-best-practices/SKILL.md +0 -255
  416. package/templates/skills/development/kotlin-best-practices/index.yaml +0 -27
  417. package/templates/skills/development/python-best-practices/SKILL.md +0 -221
  418. package/templates/skills/development/python-best-practices/index.yaml +0 -25
  419. package/templates/skills/development/react-best-practices/index.yaml +0 -39
  420. package/templates/skills/development/rust-best-practices/SKILL.md +0 -266
  421. package/templates/skills/development/rust-best-practices/index.yaml +0 -26
  422. package/templates/skills/development/typescript-best-practices/index.yaml +0 -28
  423. package/templates/skills/development/vercel-deploy/SKILL.md +0 -73
  424. package/templates/skills/development/vercel-deploy/index.yaml +0 -30
  425. package/templates/skills/development/web-design-guidelines/SKILL.md +0 -117
  426. package/templates/skills/development/web-design-guidelines/index.yaml +0 -34
  427. package/templates/skills/index.yaml +0 -129
  428. package/templates/skills/infrastructure/aws-best-practices/index.yaml +0 -27
  429. package/templates/skills/infrastructure/docker-best-practices/SKILL.md +0 -274
  430. package/templates/skills/infrastructure/docker-best-practices/index.yaml +0 -26
  431. package/templates/skills/orchestration/intent-detection/index.yaml +0 -30
  432. package/templates/skills/orchestration/intent-detection/patterns/agent-triggers.yaml +0 -342
  433. package/templates/skills/orchestration/pipeline-execution/index.yaml +0 -27
  434. package/templates/skills/system/memory-management/SKILL.md +0 -194
  435. package/templates/skills/system/memory-management/index.yaml +0 -30
  436. package/templates/skills/system/result-aggregation/index.yaml +0 -36
@@ -1,269 +0,0 @@
1
- # FastAPI Best Practices Skill
2
-
3
- > **Category**: Backend
4
- > **Source**: Internal (based on FastAPI docs and community patterns)
5
-
6
- ## Purpose
7
-
8
- Apply FastAPI patterns for building high-performance async APIs.
9
-
10
- ## Rules
11
-
12
- ### 1. Project Structure
13
-
14
- ```yaml
15
- structure:
16
- domain_based: true
17
- module_contents:
18
- - router.py: API endpoints
19
- - schemas.py: Pydantic models
20
- - models.py: Database models
21
- - service.py: Business logic
22
- - dependencies.py: Route validators
23
- - constants.py: Module constants
24
- - config.py: Module configuration
25
- - exceptions.py: Custom exceptions
26
- - utils.py: Helper functions
27
-
28
- imports:
29
- style: explicit
30
- example: "from src.auth import constants as auth_constants"
31
-
32
- layout: |
33
- src/
34
- ├── auth/
35
- │ ├── router.py
36
- │ ├── schemas.py
37
- │ ├── models.py
38
- │ ├── service.py
39
- │ └── dependencies.py
40
- ├── users/
41
- │ └── ...
42
- ├── config.py
43
- └── main.py
44
- ```
45
-
46
- ### 2. Async Patterns
47
-
48
- ```yaml
49
- io_intensive:
50
- use: "async def"
51
- await: "asyncio.sleep(), httpx, asyncpg, etc."
52
- example: |
53
- async def fetch_data():
54
- async with httpx.AsyncClient() as client:
55
- response = await client.get(url)
56
- return response.json()
57
-
58
- sync_io:
59
- use: "def (regular function)"
60
- reason: FastAPI offloads to threadpool automatically
61
- example: |
62
- def read_file():
63
- with open('file.txt') as f:
64
- return f.read()
65
-
66
- cpu_intensive:
67
- avoid: async and threadpool
68
- use: separate worker processes
69
- example: "Use Celery or multiprocessing"
70
-
71
- never:
72
- - "time.sleep() in async functions"
73
- - "Blocking I/O in async functions"
74
- ```
75
-
76
- ### 3. Pydantic Models
77
-
78
- ```yaml
79
- validation:
80
- use_builtin: regex, enums, email, URL validators
81
- custom_validators: for complex logic
82
-
83
- base_model:
84
- create_custom: true
85
- purpose: enforce application-wide standards
86
- example: |
87
- from pydantic import BaseModel
88
- from datetime import datetime
89
-
90
- class AppBaseModel(BaseModel):
91
- class Config:
92
- from_attributes = True
93
- json_encoders = {
94
- datetime: lambda v: v.isoformat()
95
- }
96
-
97
- settings:
98
- split: across modules
99
- avoid: single global configuration
100
- example: |
101
- # auth/config.py
102
- class AuthSettings(BaseSettings):
103
- jwt_secret: str
104
- jwt_algorithm: str = "HS256"
105
-
106
- # database/config.py
107
- class DatabaseSettings(BaseSettings):
108
- url: str
109
- pool_size: int = 5
110
- ```
111
-
112
- ### 4. Dependencies
113
-
114
- ```yaml
115
- usage:
116
- - Dependency injection
117
- - Validation against database
118
- - Authentication/authorization
119
- - Request scoped caching
120
-
121
- patterns:
122
- chain: avoid code repetition
123
- cache: FastAPI caches within request scope
124
- decouple: small, reusable functions
125
-
126
- example: |
127
- async def get_current_user(
128
- token: str = Depends(oauth2_scheme),
129
- db: Session = Depends(get_db)
130
- ) -> User:
131
- user = await db.get_user_by_token(token)
132
- if not user:
133
- raise HTTPException(status_code=401)
134
- return user
135
-
136
- async def get_active_user(
137
- user: User = Depends(get_current_user)
138
- ) -> User:
139
- if not user.is_active:
140
- raise HTTPException(status_code=403)
141
- return user
142
- ```
143
-
144
- ### 5. Error Handling
145
-
146
- ```yaml
147
- custom_exceptions:
148
- scope: module-specific
149
- purpose: clarity and consistency
150
-
151
- pattern: |
152
- # auth/exceptions.py
153
- class AuthException(Exception):
154
- pass
155
-
156
- class InvalidCredentials(AuthException):
157
- pass
158
-
159
- class TokenExpired(AuthException):
160
- pass
161
-
162
- # auth/router.py
163
- @router.post("/login")
164
- async def login(credentials: LoginSchema):
165
- try:
166
- return await auth_service.login(credentials)
167
- except InvalidCredentials:
168
- raise HTTPException(
169
- status_code=401,
170
- detail="Invalid credentials"
171
- )
172
-
173
- exception_handlers: |
174
- @app.exception_handler(AuthException)
175
- async def auth_exception_handler(request, exc):
176
- return JSONResponse(
177
- status_code=401,
178
- content={"detail": str(exc)}
179
- )
180
- ```
181
-
182
- ### 6. Database
183
-
184
- ```yaml
185
- naming:
186
- establish: upfront conventions
187
- consistency: across all models
188
-
189
- migrations:
190
- tool: Alembic
191
- naming: explicit naming rules
192
-
193
- design:
194
- approach: SQL-first
195
- then: add Pydantic models
196
-
197
- patterns: |
198
- # Use async database drivers
199
- from sqlalchemy.ext.asyncio import AsyncSession
200
-
201
- async def get_user(db: AsyncSession, user_id: int):
202
- result = await db.execute(
203
- select(User).where(User.id == user_id)
204
- )
205
- return result.scalar_one_or_none()
206
- ```
207
-
208
- ### 7. API Design
209
-
210
- ```yaml
211
- routing:
212
- prefix: meaningful module prefix
213
- tags: for documentation grouping
214
-
215
- responses:
216
- schema: always define response models
217
- status_codes: document all possible codes
218
-
219
- example: |
220
- router = APIRouter(
221
- prefix="/users",
222
- tags=["users"]
223
- )
224
-
225
- @router.get(
226
- "/{user_id}",
227
- response_model=UserResponse,
228
- responses={
229
- 404: {"model": ErrorResponse}
230
- }
231
- )
232
- async def get_user(user_id: int):
233
- ...
234
- ```
235
-
236
- ### 8. Testing
237
-
238
- ```yaml
239
- setup:
240
- async_client: from day one
241
- structure: mirror module layout
242
-
243
- patterns: |
244
- import pytest
245
- from httpx import AsyncClient
246
-
247
- @pytest.fixture
248
- async def client():
249
- async with AsyncClient(app=app, base_url="http://test") as ac:
250
- yield ac
251
-
252
- @pytest.mark.asyncio
253
- async def test_get_user(client):
254
- response = await client.get("/users/1")
255
- assert response.status_code == 200
256
- ```
257
-
258
- ## Application
259
-
260
- When writing FastAPI code:
261
-
262
- 1. **Always** use domain-based project structure
263
- 2. **Always** use `async def` for I/O operations
264
- 3. **Prefer** Pydantic for all validation
265
- 4. **Use** dependencies for reusable logic
266
- 5. **Define** module-specific exceptions
267
- 6. **Document** API with response models
268
- 7. **Test** with async client
269
- 8. **Use** Ruff for code quality
@@ -1,25 +0,0 @@
1
- # FastAPI Best Practices Skill
2
-
3
- metadata:
4
- name: fastapi-best-practices
5
- category: backend
6
- description: FastAPI patterns for high-performance async APIs
7
-
8
- source:
9
- type: internal
10
- reference:
11
- - https://fastapi.tiangolo.com/
12
- - https://github.com/zhanymkanov/fastapi-best-practices
13
-
14
- provides:
15
- - Project structure patterns
16
- - Async/await best practices
17
- - Pydantic validation patterns
18
- - Dependency injection design
19
- - Error handling patterns
20
- - Database integration
21
- - API design guidelines
22
- - Testing patterns
23
-
24
- used_by:
25
- - fastapi-expert
@@ -1,337 +0,0 @@
1
- # Go Backend Best Practices Skill
2
-
3
- > **Category**: Backend
4
- > **Source**: Internal (based on Uber Go Style Guide and Standard Layout)
5
-
6
- ## Purpose
7
-
8
- Apply Go backend patterns for building production-ready services.
9
-
10
- ## Rules
11
-
12
- ### 1. Project Structure (Standard Layout)
13
-
14
- ```yaml
15
- layout: |
16
- project/
17
- ├── cmd/
18
- │ └── server/
19
- │ └── main.go
20
- ├── internal/
21
- │ ├── handler/
22
- │ ├── service/
23
- │ ├── repository/
24
- │ └── model/
25
- ├── pkg/
26
- │ └── shared/
27
- ├── api/
28
- │ └── openapi.yaml
29
- ├── configs/
30
- ├── scripts/
31
- ├── Dockerfile
32
- ├── Makefile
33
- └── go.mod
34
-
35
- directories:
36
- cmd: Main applications (one per binary)
37
- internal: Private application code
38
- pkg: Library code safe for external use
39
- api: API definitions (OpenAPI, protobuf)
40
- configs: Configuration files
41
- scripts: Build and CI scripts
42
- ```
43
-
44
- ### 2. Error Handling (Uber Style)
45
-
46
- ```yaml
47
- principles:
48
- - Wrap errors with context using %w
49
- - Handle errors once (don't log AND return)
50
- - Use sentinel errors for specific conditions
51
- - Name error variables with Err prefix
52
-
53
- patterns: |
54
- // Sentinel errors
55
- var (
56
- ErrNotFound = errors.New("not found")
57
- ErrInvalidInput = errors.New("invalid input")
58
- )
59
-
60
- // Wrap with context
61
- func getUser(id string) (*User, error) {
62
- user, err := db.FindUser(id)
63
- if err != nil {
64
- return nil, fmt.Errorf("getUser %s: %w", id, err)
65
- }
66
- return user, nil
67
- }
68
-
69
- // Check specific errors
70
- if errors.Is(err, ErrNotFound) {
71
- return http.StatusNotFound
72
- }
73
- ```
74
-
75
- ### 3. Concurrency (Uber Style)
76
-
77
- ```yaml
78
- channels:
79
- size: "Use 0 (unbuffered) or 1 only"
80
- larger: "Requires careful review"
81
-
82
- goroutines:
83
- never: fire-and-forget
84
- always: wait for completion or manage lifecycle
85
-
86
- patterns: |
87
- // Wait group for goroutines
88
- func process(items []Item) error {
89
- var wg sync.WaitGroup
90
- errCh := make(chan error, 1)
91
-
92
- for _, item := range items {
93
- wg.Add(1)
94
- go func(item Item) {
95
- defer wg.Done()
96
- if err := processItem(item); err != nil {
97
- select {
98
- case errCh <- err:
99
- default:
100
- }
101
- }
102
- }(item)
103
- }
104
-
105
- wg.Wait()
106
- close(errCh)
107
- return <-errCh
108
- }
109
-
110
- // Context for cancellation
111
- func longRunningTask(ctx context.Context) error {
112
- for {
113
- select {
114
- case <-ctx.Done():
115
- return ctx.Err()
116
- default:
117
- // do work
118
- }
119
- }
120
- }
121
- ```
122
-
123
- ### 4. HTTP Server
124
-
125
- ```yaml
126
- structure:
127
- handler: HTTP layer (request/response)
128
- service: Business logic
129
- repository: Data access
130
-
131
- patterns: |
132
- // Handler with dependency injection
133
- type UserHandler struct {
134
- service UserService
135
- }
136
-
137
- func NewUserHandler(s UserService) *UserHandler {
138
- return &UserHandler{service: s}
139
- }
140
-
141
- func (h *UserHandler) GetUser(w http.ResponseWriter, r *http.Request) {
142
- id := chi.URLParam(r, "id")
143
-
144
- user, err := h.service.GetUser(r.Context(), id)
145
- if err != nil {
146
- if errors.Is(err, ErrNotFound) {
147
- http.Error(w, "user not found", http.StatusNotFound)
148
- return
149
- }
150
- http.Error(w, "internal error", http.StatusInternalServerError)
151
- return
152
- }
153
-
154
- json.NewEncoder(w).Encode(user)
155
- }
156
-
157
- // Router setup
158
- func NewRouter(h *UserHandler) *chi.Mux {
159
- r := chi.NewRouter()
160
- r.Use(middleware.Logger)
161
- r.Use(middleware.Recoverer)
162
-
163
- r.Route("/api/v1", func(r chi.Router) {
164
- r.Get("/users/{id}", h.GetUser)
165
- r.Post("/users", h.CreateUser)
166
- })
167
-
168
- return r
169
- }
170
- ```
171
-
172
- ### 5. Dependency Injection
173
-
174
- ```yaml
175
- approach: constructor injection
176
- avoid: global variables
177
-
178
- patterns: |
179
- // Service with dependencies
180
- type UserService struct {
181
- repo UserRepository
182
- cache Cache
183
- logger *slog.Logger
184
- }
185
-
186
- func NewUserService(
187
- repo UserRepository,
188
- cache Cache,
189
- logger *slog.Logger,
190
- ) *UserService {
191
- return &UserService{
192
- repo: repo,
193
- cache: cache,
194
- logger: logger,
195
- }
196
- }
197
-
198
- // Wire up in main
199
- func main() {
200
- logger := slog.New(slog.NewJSONHandler(os.Stdout, nil))
201
- db := database.New(cfg.DatabaseURL)
202
- cache := redis.New(cfg.RedisURL)
203
-
204
- repo := repository.NewUserRepository(db)
205
- service := service.NewUserService(repo, cache, logger)
206
- handler := handler.NewUserHandler(service)
207
-
208
- router := handler.NewRouter(handler)
209
- http.ListenAndServe(":8080", router)
210
- }
211
- ```
212
-
213
- ### 6. Configuration
214
-
215
- ```yaml
216
- approach:
217
- - Use environment variables
218
- - Validate at startup
219
- - Group related settings
220
-
221
- patterns: |
222
- type Config struct {
223
- Server ServerConfig
224
- Database DatabaseConfig
225
- Redis RedisConfig
226
- }
227
-
228
- type ServerConfig struct {
229
- Host string `env:"SERVER_HOST" envDefault:"0.0.0.0"`
230
- Port int `env:"SERVER_PORT" envDefault:"8080"`
231
- ReadTimeout time.Duration `env:"SERVER_READ_TIMEOUT" envDefault:"5s"`
232
- WriteTimeout time.Duration `env:"SERVER_WRITE_TIMEOUT" envDefault:"10s"`
233
- }
234
-
235
- func LoadConfig() (*Config, error) {
236
- var cfg Config
237
- if err := env.Parse(&cfg); err != nil {
238
- return nil, fmt.Errorf("parse config: %w", err)
239
- }
240
- return &cfg, nil
241
- }
242
- ```
243
-
244
- ### 7. Testing
245
-
246
- ```yaml
247
- patterns:
248
- table_driven: for comprehensive coverage
249
- interfaces: for mocking
250
- parallel: for speed
251
-
252
- example: |
253
- func TestUserService_GetUser(t *testing.T) {
254
- tests := []struct {
255
- name string
256
- userID string
257
- mock func(*MockRepository)
258
- want *User
259
- wantErr error
260
- }{
261
- {
262
- name: "success",
263
- userID: "123",
264
- mock: func(m *MockRepository) {
265
- m.EXPECT().FindByID("123").Return(&User{ID: "123"}, nil)
266
- },
267
- want: &User{ID: "123"},
268
- },
269
- {
270
- name: "not found",
271
- userID: "999",
272
- mock: func(m *MockRepository) {
273
- m.EXPECT().FindByID("999").Return(nil, ErrNotFound)
274
- },
275
- wantErr: ErrNotFound,
276
- },
277
- }
278
-
279
- for _, tt := range tests {
280
- t.Run(tt.name, func(t *testing.T) {
281
- t.Parallel()
282
- ctrl := gomock.NewController(t)
283
- repo := NewMockRepository(ctrl)
284
- tt.mock(repo)
285
-
286
- svc := NewUserService(repo, nil, slog.Default())
287
- got, err := svc.GetUser(context.Background(), tt.userID)
288
-
289
- if !errors.Is(err, tt.wantErr) {
290
- t.Errorf("got error %v, want %v", err, tt.wantErr)
291
- }
292
- if diff := cmp.Diff(tt.want, got); diff != "" {
293
- t.Errorf("mismatch (-want +got):\n%s", diff)
294
- }
295
- })
296
- }
297
- }
298
- ```
299
-
300
- ### 8. Performance (Uber Style)
301
-
302
- ```yaml
303
- guidelines:
304
- - Use strconv over fmt for conversions
305
- - Pre-allocate slices with known capacity
306
- - Avoid repeated string-to-byte conversions
307
- - Copy slices/maps at boundaries
308
-
309
- patterns: |
310
- // Pre-allocate
311
- items := make([]Item, 0, len(input))
312
-
313
- // strconv for conversions
314
- s := strconv.Itoa(n) // not fmt.Sprintf("%d", n)
315
-
316
- // Copy at boundaries
317
- func (s *Store) GetItems() []Item {
318
- s.mu.RLock()
319
- defer s.mu.RUnlock()
320
- items := make([]Item, len(s.items))
321
- copy(items, s.items)
322
- return items
323
- }
324
- ```
325
-
326
- ## Application
327
-
328
- When writing Go backend code:
329
-
330
- 1. **Always** use standard project layout
331
- 2. **Always** wrap errors with context
332
- 3. **Never** fire-and-forget goroutines
333
- 4. **Use** constructor injection
334
- 5. **Use** table-driven tests
335
- 6. **Handle** errors once
336
- 7. **Copy** data at boundaries
337
- 8. **Validate** config at startup
@@ -1,26 +0,0 @@
1
- # Go Backend Best Practices Skill
2
-
3
- metadata:
4
- name: go-backend-best-practices
5
- category: backend
6
- description: Go backend patterns from Uber style and standard layout
7
-
8
- source:
9
- type: internal
10
- reference:
11
- - https://go.dev/doc/effective_go
12
- - https://github.com/golang-standards/project-layout
13
- - https://github.com/uber-go/guide/blob/master/style.md
14
-
15
- provides:
16
- - Project structure (standard layout)
17
- - Error handling patterns
18
- - Concurrency patterns
19
- - HTTP server design
20
- - Dependency injection
21
- - Configuration management
22
- - Testing patterns
23
- - Performance guidelines
24
-
25
- used_by:
26
- - go-backend-expert
@@ -1,27 +0,0 @@
1
- # Spring Boot Best Practices Skill
2
-
3
- metadata:
4
- name: springboot-best-practices
5
- category: backend
6
- description: Spring Boot patterns for enterprise Java applications
7
-
8
- source:
9
- type: internal
10
- reference:
11
- - https://docs.spring.io/spring-boot/docs/current/reference/html/
12
- - https://spring.io/guides
13
- - https://www.baeldung.com/spring-boot
14
-
15
- provides:
16
- - Project structure patterns
17
- - Dependency injection best practices
18
- - REST API design guidelines
19
- - Service layer patterns
20
- - Data access patterns
21
- - Exception handling
22
- - Configuration management
23
- - Security implementation
24
- - Testing strategies
25
-
26
- used_by:
27
- - springboot-expert
@@ -1,25 +0,0 @@
1
- # Go Best Practices Skill
2
-
3
- metadata:
4
- name: go-best-practices
5
- category: development
6
- description: Idiomatic Go patterns from Effective Go
7
-
8
- source:
9
- type: internal
10
- reference: https://go.dev/doc/effective_go
11
-
12
- provides:
13
- - Go code formatting standards
14
- - Naming conventions
15
- - Control structure patterns
16
- - Function design patterns
17
- - Data structure usage
18
- - Method receiver guidelines
19
- - Interface design
20
- - Concurrency patterns
21
- - Error handling patterns
22
- - Project structure guidelines
23
-
24
- used_by:
25
- - golang-expert