oh-my-customcode 0.1.4 → 0.2.0

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 +95 -95
  3. package/dist/index.js +7 -32
  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 +156 -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 +71 -70
  96. package/templates/CLAUDE.md.ko +64 -64
  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,361 +0,0 @@
1
- # Spring Boot Best Practices
2
-
3
- > Source: Spring Documentation and Baeldung
4
-
5
- ## Project Structure
6
-
7
- ```
8
- com.example.app/
9
- ├── controller/ # REST endpoints
10
- ├── service/ # Business logic
11
- │ └── impl/
12
- ├── repository/ # Data access
13
- ├── model/ # Domain entities
14
- ├── dto/ # Data transfer objects
15
- ├── config/ # Configuration
16
- ├── exception/ # Custom exceptions
17
- └── util/ # Utilities
18
- ```
19
-
20
- ## Dependency Injection
21
-
22
- ### Constructor Injection (Recommended)
23
-
24
- ```java
25
- @Service
26
- @RequiredArgsConstructor
27
- public class UserService {
28
- private final UserRepository userRepository;
29
- private final EmailService emailService;
30
- }
31
- ```
32
-
33
- ### Avoid Field Injection
34
-
35
- ```java
36
- // NOT RECOMMENDED
37
- @Service
38
- public class UserService {
39
- @Autowired
40
- private UserRepository userRepository;
41
- }
42
- ```
43
-
44
- ## REST Controllers
45
-
46
- ```java
47
- @RestController
48
- @RequestMapping("/api/v1/users")
49
- @RequiredArgsConstructor
50
- public class UserController {
51
-
52
- private final UserService userService;
53
-
54
- @GetMapping
55
- public List<UserResponse> getAllUsers() {
56
- return userService.findAll();
57
- }
58
-
59
- @GetMapping("/{id}")
60
- public ResponseEntity<UserResponse> getUser(@PathVariable Long id) {
61
- return ResponseEntity.ok(userService.findById(id));
62
- }
63
-
64
- @PostMapping
65
- @ResponseStatus(HttpStatus.CREATED)
66
- public UserResponse createUser(@Valid @RequestBody UserRequest request) {
67
- return userService.create(request);
68
- }
69
-
70
- @PutMapping("/{id}")
71
- public UserResponse updateUser(
72
- @PathVariable Long id,
73
- @Valid @RequestBody UserRequest request
74
- ) {
75
- return userService.update(id, request);
76
- }
77
-
78
- @DeleteMapping("/{id}")
79
- @ResponseStatus(HttpStatus.NO_CONTENT)
80
- public void deleteUser(@PathVariable Long id) {
81
- userService.delete(id);
82
- }
83
- }
84
- ```
85
-
86
- ## Service Layer
87
-
88
- ```java
89
- public interface UserService {
90
- UserResponse findById(Long id);
91
- UserResponse create(UserRequest request);
92
- UserResponse update(Long id, UserRequest request);
93
- void delete(Long id);
94
- }
95
-
96
- @Service
97
- @Transactional(readOnly = true)
98
- @RequiredArgsConstructor
99
- public class UserServiceImpl implements UserService {
100
-
101
- private final UserRepository userRepository;
102
- private final UserMapper userMapper;
103
-
104
- @Override
105
- public UserResponse findById(Long id) {
106
- User user = userRepository.findById(id)
107
- .orElseThrow(() -> new UserNotFoundException(id));
108
- return userMapper.toResponse(user);
109
- }
110
-
111
- @Override
112
- @Transactional
113
- public UserResponse create(UserRequest request) {
114
- User user = userMapper.toEntity(request);
115
- User saved = userRepository.save(user);
116
- return userMapper.toResponse(saved);
117
- }
118
- }
119
- ```
120
-
121
- ## Repository Layer
122
-
123
- ```java
124
- public interface UserRepository extends JpaRepository<User, Long> {
125
-
126
- Optional<User> findByEmail(String email);
127
-
128
- List<User> findByStatusOrderByCreatedAtDesc(UserStatus status);
129
-
130
- @Query("SELECT u FROM User u WHERE u.department = :dept AND u.status = 'ACTIVE'")
131
- List<User> findActiveDepartmentMembers(@Param("dept") String department);
132
-
133
- @Modifying
134
- @Query("UPDATE User u SET u.status = :status WHERE u.id = :id")
135
- int updateStatus(@Param("id") Long id, @Param("status") UserStatus status);
136
- }
137
- ```
138
-
139
- ## Entity Design
140
-
141
- ```java
142
- @Entity
143
- @Table(name = "users")
144
- @Getter
145
- @NoArgsConstructor(access = AccessLevel.PROTECTED)
146
- @EntityListeners(AuditingEntityListener.class)
147
- public class User {
148
-
149
- @Id
150
- @GeneratedValue(strategy = GenerationType.IDENTITY)
151
- private Long id;
152
-
153
- @Column(nullable = false, unique = true, length = 100)
154
- private String email;
155
-
156
- @Column(nullable = false)
157
- private String password;
158
-
159
- @Enumerated(EnumType.STRING)
160
- @Column(nullable = false)
161
- private UserStatus status = UserStatus.ACTIVE;
162
-
163
- @CreatedDate
164
- @Column(updatable = false)
165
- private LocalDateTime createdAt;
166
-
167
- @LastModifiedDate
168
- private LocalDateTime updatedAt;
169
-
170
- public User(String email, String password) {
171
- this.email = email;
172
- this.password = password;
173
- }
174
-
175
- public void updatePassword(String newPassword) {
176
- this.password = newPassword;
177
- }
178
- }
179
- ```
180
-
181
- ## Exception Handling
182
-
183
- ```java
184
- // Custom Exception
185
- public class UserNotFoundException extends RuntimeException {
186
- public UserNotFoundException(Long id) {
187
- super("User not found: " + id);
188
- }
189
- }
190
-
191
- // Global Handler
192
- @RestControllerAdvice
193
- @Slf4j
194
- public class GlobalExceptionHandler {
195
-
196
- @ExceptionHandler(UserNotFoundException.class)
197
- @ResponseStatus(HttpStatus.NOT_FOUND)
198
- public ErrorResponse handleUserNotFound(UserNotFoundException ex) {
199
- log.warn("User not found: {}", ex.getMessage());
200
- return new ErrorResponse("USER_NOT_FOUND", ex.getMessage());
201
- }
202
-
203
- @ExceptionHandler(MethodArgumentNotValidException.class)
204
- @ResponseStatus(HttpStatus.BAD_REQUEST)
205
- public ErrorResponse handleValidation(MethodArgumentNotValidException ex) {
206
- List<String> errors = ex.getBindingResult()
207
- .getFieldErrors()
208
- .stream()
209
- .map(e -> e.getField() + ": " + e.getDefaultMessage())
210
- .toList();
211
- return new ErrorResponse("VALIDATION_ERROR", String.join(", ", errors));
212
- }
213
-
214
- @ExceptionHandler(Exception.class)
215
- @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
216
- public ErrorResponse handleGeneral(Exception ex) {
217
- log.error("Unexpected error", ex);
218
- return new ErrorResponse("INTERNAL_ERROR", "An unexpected error occurred");
219
- }
220
- }
221
- ```
222
-
223
- ## Configuration
224
-
225
- ```yaml
226
- # application.yml
227
- spring:
228
- profiles:
229
- active: ${SPRING_PROFILES_ACTIVE:local}
230
- datasource:
231
- url: ${DATABASE_URL}
232
- username: ${DATABASE_USERNAME}
233
- password: ${DATABASE_PASSWORD}
234
- jpa:
235
- hibernate:
236
- ddl-auto: validate
237
- properties:
238
- hibernate:
239
- format_sql: true
240
- default_batch_fetch_size: 100
241
-
242
- logging:
243
- level:
244
- org.hibernate.SQL: DEBUG
245
- org.hibernate.type.descriptor.sql: TRACE
246
- ```
247
-
248
- ```java
249
- @Configuration
250
- @ConfigurationProperties(prefix = "app")
251
- @Validated
252
- @Getter
253
- @Setter
254
- public class AppProperties {
255
-
256
- @NotBlank
257
- private String name;
258
-
259
- @NotNull
260
- private Security security = new Security();
261
-
262
- @Getter
263
- @Setter
264
- public static class Security {
265
- private String jwtSecret;
266
- private Duration jwtExpiration = Duration.ofHours(24);
267
- }
268
- }
269
- ```
270
-
271
- ## Security Configuration
272
-
273
- ```java
274
- @Configuration
275
- @EnableWebSecurity
276
- @RequiredArgsConstructor
277
- public class SecurityConfig {
278
-
279
- private final JwtAuthenticationFilter jwtFilter;
280
-
281
- @Bean
282
- public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
283
- return http
284
- .csrf(AbstractHttpConfigurer::disable)
285
- .sessionManagement(session ->
286
- session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
287
- .authorizeHttpRequests(auth -> auth
288
- .requestMatchers("/api/v1/auth/**").permitAll()
289
- .requestMatchers("/api/v1/admin/**").hasRole("ADMIN")
290
- .anyRequest().authenticated())
291
- .addFilterBefore(jwtFilter, UsernamePasswordAuthenticationFilter.class)
292
- .build();
293
- }
294
-
295
- @Bean
296
- public PasswordEncoder passwordEncoder() {
297
- return new BCryptPasswordEncoder();
298
- }
299
- }
300
- ```
301
-
302
- ## Testing
303
-
304
- ### Controller Test
305
-
306
- ```java
307
- @WebMvcTest(UserController.class)
308
- class UserControllerTest {
309
-
310
- @Autowired
311
- private MockMvc mockMvc;
312
-
313
- @MockBean
314
- private UserService userService;
315
-
316
- @Test
317
- void getUser_shouldReturnUser() throws Exception {
318
- given(userService.findById(1L))
319
- .willReturn(new UserResponse(1L, "test@example.com"));
320
-
321
- mockMvc.perform(get("/api/v1/users/1")
322
- .contentType(MediaType.APPLICATION_JSON))
323
- .andExpect(status().isOk())
324
- .andExpect(jsonPath("$.id").value(1))
325
- .andExpect(jsonPath("$.email").value("test@example.com"));
326
- }
327
- }
328
- ```
329
-
330
- ### Integration Test
331
-
332
- ```java
333
- @SpringBootTest
334
- @AutoConfigureMockMvc
335
- @Transactional
336
- class UserIntegrationTest {
337
-
338
- @Autowired
339
- private MockMvc mockMvc;
340
-
341
- @Autowired
342
- private UserRepository userRepository;
343
-
344
- @Test
345
- void createUser_shouldPersistUser() throws Exception {
346
- String request = """
347
- {
348
- "email": "test@example.com",
349
- "password": "password123"
350
- }
351
- """;
352
-
353
- mockMvc.perform(post("/api/v1/users")
354
- .contentType(MediaType.APPLICATION_JSON)
355
- .content(request))
356
- .andExpect(status().isCreated());
357
-
358
- assertThat(userRepository.findByEmail("test@example.com")).isPresent();
359
- }
360
- }
361
- ```
@@ -1,22 +0,0 @@
1
- # Spring Boot Guide
2
-
3
- metadata:
4
- name: springboot
5
- description: Spring Boot framework reference documentation
6
-
7
- source:
8
- type: external
9
- origin: spring.io
10
- urls:
11
- - https://docs.spring.io/spring-boot/docs/current/reference/html/
12
- - https://spring.io/guides
13
- - https://www.baeldung.com/spring-boot
14
- last_fetched: "2026-01-22"
15
-
16
- documents:
17
- - name: best-practices
18
- path: ./best-practices.md
19
- description: Spring Boot best practices and patterns
20
-
21
- used_by:
22
- - springboot-expert
@@ -1,225 +0,0 @@
1
- # TypeScript Advanced Types
2
-
3
- > Reference for advanced TypeScript type patterns
4
-
5
- ## Utility Types
6
-
7
- ```typescript
8
- // Partial - make all properties optional
9
- type PartialUser = Partial<User>;
10
-
11
- // Required - make all properties required
12
- type RequiredUser = Required<User>;
13
-
14
- // Readonly - make all properties readonly
15
- type ReadonlyUser = Readonly<User>;
16
-
17
- // Pick - select specific properties
18
- type UserName = Pick<User, 'name' | 'email'>;
19
-
20
- // Omit - exclude specific properties
21
- type UserWithoutId = Omit<User, 'id'>;
22
-
23
- // Record - create object type with key-value pairs
24
- type UserMap = Record<string, User>;
25
-
26
- // Exclude - exclude types from union
27
- type NonNullStatus = Exclude<Status | null, null>;
28
-
29
- // Extract - extract types from union
30
- type StringStatus = Extract<Status, string>;
31
-
32
- // NonNullable - remove null and undefined
33
- type DefinedValue = NonNullable<string | null | undefined>;
34
-
35
- // ReturnType - get function return type
36
- type Result = ReturnType<typeof fetchUser>;
37
-
38
- // Parameters - get function parameter types
39
- type Params = Parameters<typeof fetchUser>;
40
- ```
41
-
42
- ## Mapped Types
43
-
44
- ```typescript
45
- // Make all properties optional
46
- type Optional<T> = {
47
- [P in keyof T]?: T[P];
48
- };
49
-
50
- // Make all properties readonly
51
- type Immutable<T> = {
52
- readonly [P in keyof T]: T[P];
53
- };
54
-
55
- // Make all properties nullable
56
- type Nullable<T> = {
57
- [P in keyof T]: T[P] | null;
58
- };
59
-
60
- // Remap keys
61
- type Getters<T> = {
62
- [P in keyof T as `get${Capitalize<string & P>}`]: () => T[P];
63
- };
64
-
65
- // Filter properties by type
66
- type OnlyStrings<T> = {
67
- [P in keyof T as T[P] extends string ? P : never]: T[P];
68
- };
69
- ```
70
-
71
- ## Conditional Types
72
-
73
- ```typescript
74
- // Basic conditional
75
- type IsString<T> = T extends string ? true : false;
76
-
77
- // With infer
78
- type UnwrapPromise<T> = T extends Promise<infer U> ? U : T;
79
-
80
- // Array element type
81
- type ElementType<T> = T extends (infer E)[] ? E : never;
82
-
83
- // Function return type
84
- type GetReturnType<T> = T extends (...args: any[]) => infer R ? R : never;
85
-
86
- // Distributive conditional
87
- type ToArray<T> = T extends any ? T[] : never;
88
- // ToArray<string | number> = string[] | number[]
89
- ```
90
-
91
- ## Template Literal Types
92
-
93
- ```typescript
94
- // Simple template
95
- type Greeting = `Hello, ${string}!`;
96
-
97
- // With union
98
- type EventHandler = `on${Capitalize<'click' | 'hover' | 'focus'>}`;
99
- // 'onClick' | 'onHover' | 'onFocus'
100
-
101
- // Extract from string
102
- type ExtractRouteParams<T extends string> =
103
- T extends `${string}:${infer Param}/${infer Rest}`
104
- ? Param | ExtractRouteParams<Rest>
105
- : T extends `${string}:${infer Param}`
106
- ? Param
107
- : never;
108
-
109
- // ExtractRouteParams<'/users/:id/posts/:postId'>
110
- // = 'id' | 'postId'
111
- ```
112
-
113
- ## Discriminated Unions
114
-
115
- ```typescript
116
- interface Circle {
117
- kind: 'circle';
118
- radius: number;
119
- }
120
-
121
- interface Square {
122
- kind: 'square';
123
- side: number;
124
- }
125
-
126
- interface Rectangle {
127
- kind: 'rectangle';
128
- width: number;
129
- height: number;
130
- }
131
-
132
- type Shape = Circle | Square | Rectangle;
133
-
134
- function getArea(shape: Shape): number {
135
- switch (shape.kind) {
136
- case 'circle':
137
- return Math.PI * shape.radius ** 2;
138
- case 'square':
139
- return shape.side ** 2;
140
- case 'rectangle':
141
- return shape.width * shape.height;
142
- }
143
- }
144
- ```
145
-
146
- ## Index Signatures
147
-
148
- ```typescript
149
- // String index
150
- interface Dictionary {
151
- [key: string]: string;
152
- }
153
-
154
- // Number index
155
- interface NumberMap {
156
- [index: number]: string;
157
- }
158
-
159
- // With specific properties
160
- interface User {
161
- id: string;
162
- name: string;
163
- [key: string]: string; // additional properties
164
- }
165
-
166
- // Template literal index
167
- type Handlers = {
168
- [K in `on${Capitalize<string>}`]: (event: Event) => void;
169
- };
170
- ```
171
-
172
- ## Type Narrowing
173
-
174
- ```typescript
175
- // Control flow analysis
176
- function process(value: string | number | null) {
177
- if (value === null) {
178
- return; // value is null
179
- }
180
-
181
- if (typeof value === 'string') {
182
- console.log(value.toUpperCase()); // value is string
183
- } else {
184
- console.log(value.toFixed(2)); // value is number
185
- }
186
- }
187
-
188
- // Assertion functions
189
- function assertIsString(value: unknown): asserts value is string {
190
- if (typeof value !== 'string') {
191
- throw new Error('Not a string');
192
- }
193
- }
194
-
195
- // Type predicates
196
- function isNonNull<T>(value: T): value is NonNullable<T> {
197
- return value !== null && value !== undefined;
198
- }
199
-
200
- const filtered = items.filter(isNonNull);
201
- ```
202
-
203
- ## Brand Types
204
-
205
- ```typescript
206
- // Create distinct types for same underlying type
207
- type UserId = string & { readonly brand: unique symbol };
208
- type PostId = string & { readonly brand: unique symbol };
209
-
210
- function createUserId(id: string): UserId {
211
- return id as UserId;
212
- }
213
-
214
- function createPostId(id: string): PostId {
215
- return id as PostId;
216
- }
217
-
218
- function getUser(id: UserId): User { ... }
219
-
220
- const userId = createUserId('123');
221
- const postId = createPostId('456');
222
-
223
- getUser(userId); // OK
224
- getUser(postId); // Error: PostId not assignable to UserId
225
- ```
@@ -1,26 +0,0 @@
1
- # TypeScript Guide
2
-
3
- metadata:
4
- name: typescript
5
- description: TypeScript language reference documentation
6
-
7
- source:
8
- type: external
9
- origin: typescriptlang.org
10
- urls:
11
- - https://www.typescriptlang.org/docs/handbook/
12
- - https://google.github.io/styleguide/tsguide.html
13
- - https://basarat.gitbook.io/typescript/
14
- last_fetched: "2026-01-22"
15
-
16
- documents:
17
- - name: type-system
18
- path: ./type-system.md
19
- description: TypeScript type system fundamentals
20
-
21
- - name: advanced-types
22
- path: ./advanced-types.md
23
- description: Advanced TypeScript type patterns
24
-
25
- used_by:
26
- - typescript-expert