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,309 +0,0 @@
1
- # Effective Go Reference
2
-
3
- > Source: https://go.dev/doc/effective_go
4
-
5
- ## Introduction
6
-
7
- Go is a new language. Although it borrows ideas from existing languages, it has unusual properties that make effective Go programs different in character from programs written in its relatives. A straightforward translation of a C++ or Java program into Go is unlikely to produce a satisfactory result—Java programs are written in Java, not Go.
8
-
9
- ## Formatting
10
-
11
- Use `gofmt` (or `goimports`) to format all Go code. This eliminates formatting debates and ensures consistency.
12
-
13
- Key points:
14
- - Indentation: tabs, not spaces
15
- - No line length limit (but break long lines sensibly)
16
- - Fewer parentheses than C/Java
17
-
18
- ## Commentary
19
-
20
- Go provides C-style `/* */` block comments and C++-style `//` line comments.
21
-
22
- - Package comments: precede package clause, block comment for multi-line
23
- - Doc comments: precede declarations, complete sentences starting with name
24
- - `godoc` extracts documentation from comments
25
-
26
- Example:
27
- ```go
28
- // Package regexp implements a simple library for regular expressions.
29
- package regexp
30
-
31
- // Compile parses a regular expression and returns, if successful,
32
- // a Regexp that can be used to match against text.
33
- func Compile(str string) (*Regexp, error) {
34
- ```
35
-
36
- ## Names
37
-
38
- ### Package Names
39
-
40
- - Short, concise, lowercase, single-word names
41
- - No underscores or mixedCaps
42
- - Name is the base name of its source directory
43
- - Don't stutter: `bufio.Reader`, not `bufio.BufReader`
44
-
45
- ### Getters
46
-
47
- - Don't use "Get" prefix
48
- - `owner := obj.Owner()` not `obj.GetOwner()`
49
- - Setters can use "Set": `obj.SetOwner(user)`
50
-
51
- ### Interface Names
52
-
53
- - One-method interfaces: method name + "-er" suffix
54
- - `Reader`, `Writer`, `Formatter`, `Notifier`
55
-
56
- ### MixedCaps
57
-
58
- - Use `MixedCaps` or `mixedCaps` rather than underscores
59
- - Exported: `MixedCaps` (capital first letter)
60
- - Unexported: `mixedCaps` (lowercase first letter)
61
-
62
- ## Control Structures
63
-
64
- ### If
65
-
66
- ```go
67
- // With initialization statement
68
- if err := file.Chmod(0664); err != nil {
69
- log.Print(err)
70
- return err
71
- }
72
-
73
- // Avoid unnecessary else
74
- if err != nil {
75
- return err
76
- }
77
- // continue normal flow
78
- ```
79
-
80
- ### For
81
-
82
- ```go
83
- // Like C's for
84
- for init; condition; post { }
85
-
86
- // Like C's while
87
- for condition { }
88
-
89
- // Like C's for(;;)
90
- for { }
91
-
92
- // Range over slice
93
- for key, value := range oldMap {
94
- newMap[key] = value
95
- }
96
-
97
- // Range over string (runes)
98
- for pos, char := range "日本語" {
99
- fmt.Printf("character %c starts at byte position %d\n", char, pos)
100
- }
101
- ```
102
-
103
- ### Switch
104
-
105
- ```go
106
- // No automatic fallthrough
107
- switch c {
108
- case ' ', '?', '&', '=', '#', '+', '%':
109
- return true
110
- }
111
-
112
- // Type switch
113
- switch t := t.(type) {
114
- case bool:
115
- fmt.Printf("boolean %t\n", t)
116
- case int:
117
- fmt.Printf("integer %d\n", t)
118
- }
119
- ```
120
-
121
- ## Functions
122
-
123
- ### Multiple Return Values
124
-
125
- ```go
126
- func (file *File) Write(b []byte) (n int, err error)
127
- ```
128
-
129
- ### Named Result Parameters
130
-
131
- ```go
132
- func ReadFull(r Reader, buf []byte) (n int, err error) {
133
- for len(buf) > 0 && err == nil {
134
- var nr int
135
- nr, err = r.Read(buf)
136
- n += nr
137
- buf = buf[nr:]
138
- }
139
- return
140
- }
141
- ```
142
-
143
- ### Defer
144
-
145
- ```go
146
- func Contents(filename string) (string, error) {
147
- f, err := os.Open(filename)
148
- if err != nil {
149
- return "", err
150
- }
151
- defer f.Close() // f.Close will run when we're finished.
152
- // ...
153
- }
154
- ```
155
-
156
- ## Data
157
-
158
- ### Allocation with new
159
-
160
- `new(T)` allocates zeroed storage for a new item of type `T` and returns its address, a value of type `*T`.
161
-
162
- ```go
163
- p := new(SyncedBuffer) // type *SyncedBuffer
164
- var v SyncedBuffer // type SyncedBuffer
165
- ```
166
-
167
- ### Allocation with make
168
-
169
- `make(T, args)` creates slices, maps, and channels only. It returns an initialized (not zeroed) value of type `T` (not `*T`).
170
-
171
- ```go
172
- make([]int, 10, 100) // slice with len=10, cap=100
173
- make(map[string]int) // map
174
- make(chan int, 100) // buffered channel
175
- ```
176
-
177
- ### Arrays and Slices
178
-
179
- ```go
180
- // Array - fixed size, value type
181
- var a [10]int
182
-
183
- // Slice - dynamic size, reference to array
184
- s := make([]int, 10)
185
- s = append(s, 1, 2, 3)
186
- ```
187
-
188
- ### Maps
189
-
190
- ```go
191
- m := make(map[string]int)
192
- m["key"] = 42
193
-
194
- // Comma ok idiom
195
- if val, ok := m["key"]; ok {
196
- // key exists
197
- }
198
-
199
- delete(m, "key")
200
- ```
201
-
202
- ## Methods
203
-
204
- ### Pointer vs Value Receivers
205
-
206
- ```go
207
- // Value receiver - operates on copy
208
- func (s MyStruct) ValueMethod() { }
209
-
210
- // Pointer receiver - can modify, avoids copy
211
- func (s *MyStruct) PointerMethod() { }
212
- ```
213
-
214
- Rule: If any method needs a pointer receiver, all methods on that type should have pointer receivers.
215
-
216
- ## Interfaces
217
-
218
- ```go
219
- type Reader interface {
220
- Read(p []byte) (n int, err error)
221
- }
222
-
223
- type Writer interface {
224
- Write(p []byte) (n int, err error)
225
- }
226
-
227
- // Composition
228
- type ReadWriter interface {
229
- Reader
230
- Writer
231
- }
232
- ```
233
-
234
- ## Embedding
235
-
236
- ```go
237
- type ReadWriter struct {
238
- *Reader // embedded
239
- *Writer // embedded
240
- }
241
- ```
242
-
243
- ## Concurrency
244
-
245
- ### Goroutines
246
-
247
- ```go
248
- go list.Sort() // run list.Sort concurrently
249
- ```
250
-
251
- ### Channels
252
-
253
- ```go
254
- ci := make(chan int) // unbuffered channel of integers
255
- cj := make(chan int, 0) // unbuffered channel of integers
256
- cs := make(chan *os.File, 100) // buffered channel of pointers to Files
257
-
258
- c <- 1 // send
259
- v := <-c // receive
260
- ```
261
-
262
- ### Select
263
-
264
- ```go
265
- select {
266
- case v := <-ch1:
267
- fmt.Println("received from ch1:", v)
268
- case ch2 <- 42:
269
- fmt.Println("sent to ch2")
270
- default:
271
- fmt.Println("no communication")
272
- }
273
- ```
274
-
275
- ## Errors
276
-
277
- ```go
278
- type error interface {
279
- Error() string
280
- }
281
-
282
- // Creating errors
283
- errors.New("message")
284
- fmt.Errorf("operation failed: %w", err)
285
-
286
- // Checking errors
287
- if err != nil {
288
- return err
289
- }
290
- ```
291
-
292
- ## Panic and Recover
293
-
294
- ```go
295
- func server(workChan <-chan *Work) {
296
- for work := range workChan {
297
- go safelyDo(work)
298
- }
299
- }
300
-
301
- func safelyDo(work *Work) {
302
- defer func() {
303
- if err := recover(); err != nil {
304
- log.Println("work failed:", err)
305
- }
306
- }()
307
- do(work)
308
- }
309
- ```
@@ -1,250 +0,0 @@
1
- # Go Error Handling
2
-
3
- > Reference for error handling patterns in Go
4
-
5
- ## Error Interface
6
-
7
- ```go
8
- type error interface {
9
- Error() string
10
- }
11
- ```
12
-
13
- Errors are values. They can be stored, passed, and compared.
14
-
15
- ## Creating Errors
16
-
17
- ### Simple Errors
18
-
19
- ```go
20
- import "errors"
21
-
22
- err := errors.New("something went wrong")
23
- ```
24
-
25
- ### Formatted Errors
26
-
27
- ```go
28
- import "fmt"
29
-
30
- err := fmt.Errorf("failed to process %s: %v", filename, err)
31
- ```
32
-
33
- ### Custom Error Types
34
-
35
- ```go
36
- type MyError struct {
37
- Code int
38
- Message string
39
- }
40
-
41
- func (e *MyError) Error() string {
42
- return fmt.Sprintf("error %d: %s", e.Code, e.Message)
43
- }
44
- ```
45
-
46
- ## Handling Errors
47
-
48
- ### Basic Pattern
49
-
50
- ```go
51
- result, err := doSomething()
52
- if err != nil {
53
- return err
54
- }
55
- // use result
56
- ```
57
-
58
- ### Adding Context
59
-
60
- ```go
61
- result, err := doSomething()
62
- if err != nil {
63
- return fmt.Errorf("doSomething failed: %w", err)
64
- }
65
- ```
66
-
67
- ### Multiple Returns
68
-
69
- ```go
70
- func divide(a, b float64) (float64, error) {
71
- if b == 0 {
72
- return 0, errors.New("division by zero")
73
- }
74
- return a / b, nil
75
- }
76
- ```
77
-
78
- ## Error Wrapping (Go 1.13+)
79
-
80
- ### Wrapping Errors
81
-
82
- ```go
83
- // Use %w verb to wrap
84
- if err != nil {
85
- return fmt.Errorf("operation failed: %w", err)
86
- }
87
- ```
88
-
89
- ### Unwrapping Errors
90
-
91
- ```go
92
- // errors.Unwrap returns the wrapped error
93
- inner := errors.Unwrap(err)
94
-
95
- // errors.Is checks if any error in chain matches
96
- if errors.Is(err, os.ErrNotExist) {
97
- // handle file not found
98
- }
99
-
100
- // errors.As finds first error matching type
101
- var pathErr *os.PathError
102
- if errors.As(err, &pathErr) {
103
- fmt.Println("failed path:", pathErr.Path)
104
- }
105
- ```
106
-
107
- ## Sentinel Errors
108
-
109
- ```go
110
- var (
111
- ErrNotFound = errors.New("not found")
112
- ErrUnauthorized = errors.New("unauthorized")
113
- ErrInvalid = errors.New("invalid input")
114
- )
115
-
116
- func fetch(id string) (*Item, error) {
117
- item, ok := store[id]
118
- if !ok {
119
- return nil, ErrNotFound
120
- }
121
- return item, nil
122
- }
123
-
124
- // Usage
125
- item, err := fetch("123")
126
- if errors.Is(err, ErrNotFound) {
127
- // handle not found
128
- }
129
- ```
130
-
131
- ## Error Handling Strategies
132
-
133
- ### Fail Fast
134
-
135
- ```go
136
- func process() error {
137
- if err := step1(); err != nil {
138
- return err
139
- }
140
- if err := step2(); err != nil {
141
- return err
142
- }
143
- return step3()
144
- }
145
- ```
146
-
147
- ### Deferred Cleanup
148
-
149
- ```go
150
- func processFile(path string) (err error) {
151
- f, err := os.Open(path)
152
- if err != nil {
153
- return err
154
- }
155
- defer func() {
156
- if cerr := f.Close(); cerr != nil && err == nil {
157
- err = cerr
158
- }
159
- }()
160
- // process file
161
- return nil
162
- }
163
- ```
164
-
165
- ### Error Aggregation
166
-
167
- ```go
168
- type MultiError []error
169
-
170
- func (m MultiError) Error() string {
171
- var msgs []string
172
- for _, err := range m {
173
- msgs = append(msgs, err.Error())
174
- }
175
- return strings.Join(msgs, "; ")
176
- }
177
-
178
- func validateAll(items []Item) error {
179
- var errs MultiError
180
- for _, item := range items {
181
- if err := validate(item); err != nil {
182
- errs = append(errs, err)
183
- }
184
- }
185
- if len(errs) > 0 {
186
- return errs
187
- }
188
- return nil
189
- }
190
- ```
191
-
192
- ## Panic and Recover
193
-
194
- ### When to Panic
195
-
196
- - Unrecoverable errors during initialization
197
- - Programming errors (nil pointer, out of bounds)
198
- - Violation of invariants
199
-
200
- ```go
201
- func MustCompile(pattern string) *Regexp {
202
- re, err := Compile(pattern)
203
- if err != nil {
204
- panic(err)
205
- }
206
- return re
207
- }
208
- ```
209
-
210
- ### Recovering from Panic
211
-
212
- ```go
213
- func safeCall(fn func()) (err error) {
214
- defer func() {
215
- if r := recover(); r != nil {
216
- err = fmt.Errorf("panic recovered: %v", r)
217
- }
218
- }()
219
- fn()
220
- return nil
221
- }
222
- ```
223
-
224
- ### Package Boundary Rule
225
-
226
- - Convert panics to errors at package boundaries
227
- - Don't let panics escape your API
228
-
229
- ```go
230
- func (s *Server) handleRequest(w http.ResponseWriter, r *http.Request) {
231
- defer func() {
232
- if err := recover(); err != nil {
233
- log.Printf("panic: %v\n%s", err, debug.Stack())
234
- http.Error(w, "Internal Server Error", 500)
235
- }
236
- }()
237
- // handle request
238
- }
239
- ```
240
-
241
- ## Best Practices
242
-
243
- 1. **Handle errors immediately** after the call
244
- 2. **Add context** when propagating errors
245
- 3. **Use error wrapping** with `%w` for error chains
246
- 4. **Define sentinel errors** for known conditions
247
- 5. **Don't ignore errors** (at minimum, log them)
248
- 6. **Prefer errors over panics** in library code
249
- 7. **Document error returns** in function comments
250
- 8. **Test error paths** as thoroughly as success paths
@@ -1,27 +0,0 @@
1
- # Golang Guide
2
-
3
- metadata:
4
- name: golang
5
- description: Go language reference documentation
6
-
7
- source:
8
- type: external
9
- origin: go.dev
10
- url: https://go.dev/doc/effective_go
11
- last_fetched: "2026-01-22"
12
-
13
- documents:
14
- - name: effective-go
15
- path: ./effective-go.md
16
- description: Effective Go - official best practices guide
17
-
18
- - name: concurrency
19
- path: ./concurrency.md
20
- description: Concurrency patterns and practices
21
-
22
- - name: error-handling
23
- path: ./error-handling.md
24
- description: Error handling patterns
25
-
26
- used_by:
27
- - golang-expert
@@ -1,122 +0,0 @@
1
- # Java 21 Expert Agent
2
-
3
- > **Type**: SW Engineer
4
- > **Source**: Internal
5
-
6
- ## Purpose
7
-
8
- Expert Java 21 developer specialized in modern Java features including Virtual Threads, Pattern Matching, Record Patterns, and Sequenced Collections.
9
-
10
- ## Capabilities
11
-
12
- 1. Write modern Java 21 code leveraging latest language features
13
- 2. Implement Virtual Threads (JEP 444) for scalable concurrent applications
14
- 3. Apply Pattern Matching for switch expressions and instanceof
15
- 4. Use Record Patterns (JEP 440) for data decomposition
16
- 5. Leverage Sequenced Collections (JEP 431) for ordered data structures
17
- 6. Follow Google Java Style Guide and best practices
18
- 7. Migrate legacy Java code to modern Java 21 idioms
19
-
20
- ## When to Use
21
-
22
- - Writing new Java 21 applications or libraries
23
- - Reviewing existing Java code for modernization opportunities
24
- - Implementing high-concurrency systems with Virtual Threads
25
- - Designing data-centric APIs with Records and Sealed Classes
26
- - Migrating from older Java versions to Java 21
27
-
28
- ## Key Java 21 Features
29
-
30
- | Feature | JEP | Description |
31
- |---------|-----|-------------|
32
- | Virtual Threads | JEP 444 | Lightweight threads for scalable concurrency |
33
- | Pattern Matching for switch | - | Exhaustive switch with type patterns |
34
- | Record Patterns | JEP 440 | Deconstruct record values in patterns |
35
- | Sequenced Collections | JEP 431 | Collections with defined encounter order |
36
-
37
- ## Reference Documentation
38
-
39
- | Resource | URL |
40
- |----------|-----|
41
- | JDK 21 Documentation | https://docs.oracle.com/en/java/javase/21/ |
42
- | JDK 21 Guides | https://docs.oracle.com/en/java/javase/21/books.html |
43
- | JEPs since JDK 17 | https://openjdk.org/projects/jdk/21/jeps-since-jdk-17 |
44
- | Google Java Style Guide | https://google.github.io/styleguide/javaguide.html |
45
-
46
- ## Skills
47
-
48
- | Skill | Purpose |
49
- |-------|---------|
50
- | java21-best-practices | Core Java 21 development guidelines |
51
-
52
- ## Guides
53
-
54
- | Guide | Purpose |
55
- |-------|---------|
56
- | java21 | Reference documentation from official JDK 21 docs |
57
-
58
- ## Workflow
59
-
60
- ```
61
- 1. Understand requirements
62
- 2. Apply java21-best-practices skill
63
- 3. Reference java21 guide for specific patterns
64
- 4. Write/review code with modern Java 21 features
65
- 5. Ensure proper use of Virtual Threads, Pattern Matching, Records
66
- 6. Follow Google Java Style Guide for formatting
67
- ```
68
-
69
- ## Code Examples
70
-
71
- ### Virtual Threads (JEP 444)
72
-
73
- ```java
74
- // Create virtual threads for high-concurrency tasks
75
- try (var executor = Executors.newVirtualThreadPerTaskExecutor()) {
76
- IntStream.range(0, 10_000).forEach(i -> {
77
- executor.submit(() -> {
78
- Thread.sleep(Duration.ofSeconds(1));
79
- return i;
80
- });
81
- });
82
- }
83
- ```
84
-
85
- ### Record Patterns (JEP 440)
86
-
87
- ```java
88
- record Point(int x, int y) {}
89
- record Rectangle(Point topLeft, Point bottomRight) {}
90
-
91
- static void printRectangle(Rectangle r) {
92
- if (r instanceof Rectangle(Point(var x1, var y1), Point(var x2, var y2))) {
93
- System.out.printf("Rectangle from (%d,%d) to (%d,%d)%n", x1, y1, x2, y2);
94
- }
95
- }
96
- ```
97
-
98
- ### Pattern Matching for switch
99
-
100
- ```java
101
- static String format(Object obj) {
102
- return switch (obj) {
103
- case Integer i -> String.format("int %d", i);
104
- case Long l -> String.format("long %d", l);
105
- case Double d -> String.format("double %f", d);
106
- case String s -> String.format("String %s", s);
107
- case null -> "null";
108
- default -> obj.toString();
109
- };
110
- }
111
- ```
112
-
113
- ### Sequenced Collections (JEP 431)
114
-
115
- ```java
116
- SequencedCollection<String> list = new ArrayList<>();
117
- list.addFirst("first");
118
- list.addLast("last");
119
- String first = list.getFirst();
120
- String last = list.getLast();
121
- SequencedCollection<String> reversed = list.reversed();
122
- ```