ai-engineering-init 1.1.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 (313) hide show
  1. package/.claude/agents/code-reviewer.md +139 -0
  2. package/.claude/agents/project-manager.md +159 -0
  3. package/.claude/audio/completed.wav +0 -0
  4. package/.claude/commands/add-todo.md +255 -0
  5. package/.claude/commands/check.md +210 -0
  6. package/.claude/commands/crud.md +454 -0
  7. package/.claude/commands/dev.md +503 -0
  8. package/.claude/commands/init-docs.md +681 -0
  9. package/.claude/commands/next.md +251 -0
  10. package/.claude/commands/progress.md +242 -0
  11. package/.claude/commands/start.md +199 -0
  12. package/.claude/commands/sync.md +307 -0
  13. package/.claude/commands/update-status.md +428 -0
  14. package/.claude/docs/Mixin/344/275/277/347/224/250/346/214/207/345/215/227.md +299 -0
  15. package/.claude/docs/README.md +167 -0
  16. package/.claude/docs//345/211/215/347/253/257/345/274/200/345/217/221/346/214/207/345/215/227.md +599 -0
  17. package/.claude/docs//345/220/216/347/253/257/345/274/200/345/217/221/346/214/207/345/215/227.md +726 -0
  18. package/.claude/docs//345/267/245/344/275/234/346/265/201/345/274/200/345/217/221/346/214/207/345/215/227.md +714 -0
  19. package/.claude/docs//345/267/245/345/205/267/347/261/273/344/275/277/347/224/250/346/214/207/345/215/227.md +463 -0
  20. package/.claude/docs//346/225/260/346/215/256/345/272/223/350/256/276/350/256/241/350/247/204/350/214/203.md +390 -0
  21. package/.claude/docs//346/226/260/345/212/237/350/203/275/345/274/200/345/217/221/346/265/201/347/250/213/350/247/204/350/214/203.md +688 -0
  22. package/.claude/docs//346/226/260/351/241/271/347/233/256/345/274/200/345/217/221/346/265/201/347/250/213.md +365 -0
  23. package/.claude/docs//346/241/206/346/236/266/350/257/264/346/230/216.md +393 -0
  24. package/.claude/docs//350/267/257/347/224/261/351/205/215/347/275/256/346/214/207/345/215/227.md +246 -0
  25. package/.claude/framework-config.json +73 -0
  26. package/.claude/hooks/pre-tool-use.js +117 -0
  27. package/.claude/hooks/skill-forced-eval.js +167 -0
  28. package/.claude/hooks/stop.js +58 -0
  29. package/.claude/settings.json +41 -0
  30. package/.claude/skills/add-skill/SKILL.md +352 -0
  31. package/.claude/skills/api-development/SKILL.md +560 -0
  32. package/.claude/skills/architecture-design/SKILL.md +756 -0
  33. package/.claude/skills/backend-annotations/SKILL.md +674 -0
  34. package/.claude/skills/banana-image/CHANGELOG.md +37 -0
  35. package/.claude/skills/banana-image/README.md +146 -0
  36. package/.claude/skills/banana-image/SKILL.md +164 -0
  37. package/.claude/skills/banana-image/assets/logo.png +0 -0
  38. package/.claude/skills/banana-image/references/advanced-usage.md +189 -0
  39. package/.claude/skills/banana-image/scripts/apply_template.py +125 -0
  40. package/.claude/skills/banana-image/scripts/banana_image_exec.ts +412 -0
  41. package/.claude/skills/banana-image/scripts/batch_prep.py +82 -0
  42. package/.claude/skills/banana-image/scripts/package-lock.json +1437 -0
  43. package/.claude/skills/banana-image/scripts/package.json +18 -0
  44. package/.claude/skills/banana-image/scripts/requirements.txt +10 -0
  45. package/.claude/skills/banana-image/templates/poster.json +22 -0
  46. package/.claude/skills/banana-image/templates/product.json +17 -0
  47. package/.claude/skills/banana-image/templates/social.json +22 -0
  48. package/.claude/skills/banana-image/templates/thumbnail.json +17 -0
  49. package/.claude/skills/brainstorm/SKILL.md +648 -0
  50. package/.claude/skills/bug-detective/SKILL.md +1206 -0
  51. package/.claude/skills/code-patterns/SKILL.md +590 -0
  52. package/.claude/skills/collaborating-with-codex/SKILL.md +174 -0
  53. package/.claude/skills/collaborating-with-codex/scripts/codex_bridge.py +275 -0
  54. package/.claude/skills/collaborating-with-gemini/SKILL.md +194 -0
  55. package/.claude/skills/collaborating-with-gemini/scripts/gemini_bridge.py +275 -0
  56. package/.claude/skills/crud-development/SKILL.md +649 -0
  57. package/.claude/skills/data-permission/SKILL.md +599 -0
  58. package/.claude/skills/database-ops/SKILL.md +407 -0
  59. package/.claude/skills/error-handler/SKILL.md +371 -0
  60. package/.claude/skills/file-oss-management/SKILL.md +863 -0
  61. package/.claude/skills/git-workflow/SKILL.md +375 -0
  62. package/.claude/skills/json-serialization/SKILL.md +357 -0
  63. package/.claude/skills/leniu-api-development/SKILL.md +803 -0
  64. package/.claude/skills/leniu-architecture-design/SKILL.md +598 -0
  65. package/.claude/skills/leniu-backend-annotations/SKILL.md +664 -0
  66. package/.claude/skills/leniu-code-patterns/SKILL.md +365 -0
  67. package/.claude/skills/leniu-crud-development/SKILL.md +1110 -0
  68. package/.claude/skills/leniu-data-permission/SKILL.md +256 -0
  69. package/.claude/skills/leniu-database-ops/SKILL.md +426 -0
  70. package/.claude/skills/leniu-error-handler/SKILL.md +462 -0
  71. package/.claude/skills/leniu-java-amount-handling/SKILL.md +461 -0
  72. package/.claude/skills/leniu-java-code-style/SKILL.md +510 -0
  73. package/.claude/skills/leniu-java-concurrent/SKILL.md +400 -0
  74. package/.claude/skills/leniu-java-entity/SKILL.md +751 -0
  75. package/.claude/skills/leniu-java-export/SKILL.md +560 -0
  76. package/.claude/skills/leniu-java-logging/SKILL.md +832 -0
  77. package/.claude/skills/leniu-java-mq/SKILL.md +338 -0
  78. package/.claude/skills/leniu-java-mybatis/SKILL.md +640 -0
  79. package/.claude/skills/leniu-java-report-query-param/SKILL.md +291 -0
  80. package/.claude/skills/leniu-java-task/SKILL.md +367 -0
  81. package/.claude/skills/leniu-java-total-line/SKILL.md +195 -0
  82. package/.claude/skills/leniu-marketing-price-rule-customizer/SKILL.md +301 -0
  83. package/.claude/skills/leniu-marketing-recharge-rule-customizer/SKILL.md +285 -0
  84. package/.claude/skills/leniu-mealtime/SKILL.md +215 -0
  85. package/.claude/skills/leniu-redis-cache/SKILL.md +316 -0
  86. package/.claude/skills/leniu-security-guard/SKILL.md +520 -0
  87. package/.claude/skills/leniu-utils-toolkit/SKILL.md +380 -0
  88. package/.claude/skills/openspec-apply-change/SKILL.md +156 -0
  89. package/.claude/skills/openspec-archive-change/SKILL.md +114 -0
  90. package/.claude/skills/openspec-bulk-archive-change/SKILL.md +246 -0
  91. package/.claude/skills/openspec-continue-change/SKILL.md +118 -0
  92. package/.claude/skills/openspec-explore/SKILL.md +290 -0
  93. package/.claude/skills/openspec-ff-change/SKILL.md +101 -0
  94. package/.claude/skills/openspec-new-change/SKILL.md +74 -0
  95. package/.claude/skills/openspec-onboard/SKILL.md +529 -0
  96. package/.claude/skills/openspec-sync-specs/SKILL.md +138 -0
  97. package/.claude/skills/openspec-verify-change/SKILL.md +168 -0
  98. package/.claude/skills/performance-doctor/SKILL.md +627 -0
  99. package/.claude/skills/project-navigator/SKILL.md +305 -0
  100. package/.claude/skills/redis-cache/SKILL.md +839 -0
  101. package/.claude/skills/scheduled-jobs/SKILL.md +633 -0
  102. package/.claude/skills/security-guard/SKILL.md +748 -0
  103. package/.claude/skills/sms-mail/SKILL.md +766 -0
  104. package/.claude/skills/social-login/SKILL.md +668 -0
  105. package/.claude/skills/store-pc/SKILL.md +366 -0
  106. package/.claude/skills/task-tracker/SKILL.md +307 -0
  107. package/.claude/skills/tech-decision/SKILL.md +393 -0
  108. package/.claude/skills/tenant-management/SKILL.md +603 -0
  109. package/.claude/skills/test-development/SKILL.md +755 -0
  110. package/.claude/skills/ui-pc/SKILL.md +438 -0
  111. package/.claude/skills/utils-toolkit/SKILL.md +615 -0
  112. package/.claude/skills/websocket-sse/SKILL.md +716 -0
  113. package/.claude/skills/workflow-engine/SKILL.md +676 -0
  114. package/.claude/templates//345/276/205/345/212/236/346/270/205/345/215/225/346/250/241/346/235/277.md +56 -0
  115. package/.claude/templates//351/234/200/346/261/202/346/226/207/346/241/243/346/250/241/346/235/277.md +85 -0
  116. package/.claude/templates//351/241/271/347/233/256/347/212/266/346/200/201/346/250/241/346/235/277.md +43 -0
  117. package/.codex/skills/add-skill/SKILL.md +352 -0
  118. package/.codex/skills/add-todo/SKILL.md +269 -0
  119. package/.codex/skills/api-development/SKILL.md +693 -0
  120. package/.codex/skills/architecture-design/SKILL.md +628 -0
  121. package/.codex/skills/backend-annotations/SKILL.md +664 -0
  122. package/.codex/skills/banana-image/CHANGELOG.md +37 -0
  123. package/.codex/skills/banana-image/README.md +146 -0
  124. package/.codex/skills/banana-image/SKILL.md +164 -0
  125. package/.codex/skills/banana-image/assets/logo.png +0 -0
  126. package/.codex/skills/banana-image/references/advanced-usage.md +189 -0
  127. package/.codex/skills/banana-image/scripts/apply_template.py +125 -0
  128. package/.codex/skills/banana-image/scripts/banana_image_exec.ts +412 -0
  129. package/.codex/skills/banana-image/scripts/batch_prep.py +82 -0
  130. package/.codex/skills/banana-image/scripts/package-lock.json +1437 -0
  131. package/.codex/skills/banana-image/scripts/package.json +18 -0
  132. package/.codex/skills/banana-image/scripts/requirements.txt +10 -0
  133. package/.codex/skills/banana-image/templates/poster.json +22 -0
  134. package/.codex/skills/banana-image/templates/product.json +17 -0
  135. package/.codex/skills/banana-image/templates/social.json +22 -0
  136. package/.codex/skills/banana-image/templates/thumbnail.json +17 -0
  137. package/.codex/skills/brainstorm/SKILL.md +648 -0
  138. package/.codex/skills/bug-detective/SKILL.md +1206 -0
  139. package/.codex/skills/check/SKILL.md +367 -0
  140. package/.codex/skills/code-patterns/SKILL.md +442 -0
  141. package/.codex/skills/collaborating-with-codex/SKILL.md +174 -0
  142. package/.codex/skills/collaborating-with-codex/scripts/codex_bridge.py +275 -0
  143. package/.codex/skills/collaborating-with-gemini/SKILL.md +194 -0
  144. package/.codex/skills/collaborating-with-gemini/scripts/gemini_bridge.py +275 -0
  145. package/.codex/skills/crud/SKILL.md +265 -0
  146. package/.codex/skills/crud-development/SKILL.md +637 -0
  147. package/.codex/skills/data-permission/SKILL.md +591 -0
  148. package/.codex/skills/database-ops/SKILL.md +553 -0
  149. package/.codex/skills/dev/SKILL.md +187 -0
  150. package/.codex/skills/error-handler/SKILL.md +361 -0
  151. package/.codex/skills/file-oss-management/SKILL.md +863 -0
  152. package/.codex/skills/git-workflow/SKILL.md +375 -0
  153. package/.codex/skills/init-docs/SKILL.md +194 -0
  154. package/.codex/skills/json-serialization/SKILL.md +357 -0
  155. package/.codex/skills/leniu-api-development/SKILL.md +803 -0
  156. package/.codex/skills/leniu-architecture-design/SKILL.md +594 -0
  157. package/.codex/skills/leniu-backend-annotations/SKILL.md +662 -0
  158. package/.codex/skills/leniu-code-patterns/SKILL.md +365 -0
  159. package/.codex/skills/leniu-crud-development/SKILL.md +1110 -0
  160. package/.codex/skills/leniu-data-permission/SKILL.md +256 -0
  161. package/.codex/skills/leniu-database-ops/SKILL.md +426 -0
  162. package/.codex/skills/leniu-error-handler/SKILL.md +462 -0
  163. package/.codex/skills/leniu-java-amount-handling/SKILL.md +461 -0
  164. package/.codex/skills/leniu-java-code-style/SKILL.md +510 -0
  165. package/.codex/skills/leniu-java-concurrent/SKILL.md +400 -0
  166. package/.codex/skills/leniu-java-entity/SKILL.md +751 -0
  167. package/.codex/skills/leniu-java-export/SKILL.md +560 -0
  168. package/.codex/skills/leniu-java-logging/SKILL.md +832 -0
  169. package/.codex/skills/leniu-java-mq/SKILL.md +338 -0
  170. package/.codex/skills/leniu-java-mybatis/SKILL.md +640 -0
  171. package/.codex/skills/leniu-java-report-query-param/SKILL.md +291 -0
  172. package/.codex/skills/leniu-java-task/SKILL.md +367 -0
  173. package/.codex/skills/leniu-java-total-line/SKILL.md +195 -0
  174. package/.codex/skills/leniu-marketing-price-rule-customizer/SKILL.md +301 -0
  175. package/.codex/skills/leniu-marketing-recharge-rule-customizer/SKILL.md +285 -0
  176. package/.codex/skills/leniu-mealtime/SKILL.md +215 -0
  177. package/.codex/skills/leniu-redis-cache/SKILL.md +316 -0
  178. package/.codex/skills/leniu-security-guard/SKILL.md +520 -0
  179. package/.codex/skills/leniu-utils-toolkit/SKILL.md +378 -0
  180. package/.codex/skills/next/SKILL.md +137 -0
  181. package/.codex/skills/openspec-apply-change/SKILL.md +156 -0
  182. package/.codex/skills/openspec-archive-change/SKILL.md +114 -0
  183. package/.codex/skills/openspec-bulk-archive-change/SKILL.md +246 -0
  184. package/.codex/skills/openspec-continue-change/SKILL.md +118 -0
  185. package/.codex/skills/openspec-explore/SKILL.md +290 -0
  186. package/.codex/skills/openspec-ff-change/SKILL.md +101 -0
  187. package/.codex/skills/openspec-new-change/SKILL.md +74 -0
  188. package/.codex/skills/openspec-onboard/SKILL.md +529 -0
  189. package/.codex/skills/openspec-sync-specs/SKILL.md +138 -0
  190. package/.codex/skills/openspec-verify-change/SKILL.md +168 -0
  191. package/.codex/skills/performance-doctor/SKILL.md +627 -0
  192. package/.codex/skills/progress/SKILL.md +193 -0
  193. package/.codex/skills/project-navigator/SKILL.md +286 -0
  194. package/.codex/skills/redis-cache/SKILL.md +829 -0
  195. package/.codex/skills/scheduled-jobs/SKILL.md +633 -0
  196. package/.codex/skills/security-guard/SKILL.md +739 -0
  197. package/.codex/skills/sms-mail/SKILL.md +766 -0
  198. package/.codex/skills/social-login/SKILL.md +668 -0
  199. package/.codex/skills/start/SKILL.md +154 -0
  200. package/.codex/skills/store-pc/SKILL.md +491 -0
  201. package/.codex/skills/sync/SKILL.md +149 -0
  202. package/.codex/skills/task-tracker/SKILL.md +307 -0
  203. package/.codex/skills/tech-decision/SKILL.md +393 -0
  204. package/.codex/skills/tenant-management/SKILL.md +603 -0
  205. package/.codex/skills/test-development/SKILL.md +755 -0
  206. package/.codex/skills/ui-pc/SKILL.md +475 -0
  207. package/.codex/skills/update-status/SKILL.md +159 -0
  208. package/.codex/skills/utils-toolkit/SKILL.md +593 -0
  209. package/.codex/skills/websocket-sse/SKILL.md +716 -0
  210. package/.codex/skills/workflow-engine/SKILL.md +676 -0
  211. package/.cursor/agents/code-reviewer.md +139 -0
  212. package/.cursor/agents/project-manager.md +159 -0
  213. package/.cursor/commands/opsx-apply.md +152 -0
  214. package/.cursor/commands/opsx-archive.md +157 -0
  215. package/.cursor/commands/opsx-bulk-archive.md +242 -0
  216. package/.cursor/commands/opsx-continue.md +114 -0
  217. package/.cursor/commands/opsx-explore.md +174 -0
  218. package/.cursor/commands/opsx-ff.md +94 -0
  219. package/.cursor/commands/opsx-new.md +69 -0
  220. package/.cursor/commands/opsx-onboard.md +525 -0
  221. package/.cursor/commands/opsx-sync.md +134 -0
  222. package/.cursor/commands/opsx-verify.md +164 -0
  223. package/.cursor/mcp.json +22 -0
  224. package/.cursor/skills/add-skill/SKILL.md +352 -0
  225. package/.cursor/skills/api-development/SKILL.md +560 -0
  226. package/.cursor/skills/architecture-design/SKILL.md +756 -0
  227. package/.cursor/skills/backend-annotations/SKILL.md +674 -0
  228. package/.cursor/skills/banana-image/CHANGELOG.md +37 -0
  229. package/.cursor/skills/banana-image/README.md +146 -0
  230. package/.cursor/skills/banana-image/SKILL.md +164 -0
  231. package/.cursor/skills/banana-image/assets/logo.png +0 -0
  232. package/.cursor/skills/banana-image/references/advanced-usage.md +189 -0
  233. package/.cursor/skills/banana-image/scripts/apply_template.py +125 -0
  234. package/.cursor/skills/banana-image/scripts/banana_image_exec.ts +412 -0
  235. package/.cursor/skills/banana-image/scripts/batch_prep.py +82 -0
  236. package/.cursor/skills/banana-image/scripts/package-lock.json +1437 -0
  237. package/.cursor/skills/banana-image/scripts/package.json +18 -0
  238. package/.cursor/skills/banana-image/scripts/requirements.txt +10 -0
  239. package/.cursor/skills/banana-image/templates/poster.json +22 -0
  240. package/.cursor/skills/banana-image/templates/product.json +17 -0
  241. package/.cursor/skills/banana-image/templates/social.json +22 -0
  242. package/.cursor/skills/banana-image/templates/thumbnail.json +17 -0
  243. package/.cursor/skills/brainstorm/SKILL.md +648 -0
  244. package/.cursor/skills/bug-detective/SKILL.md +1206 -0
  245. package/.cursor/skills/code-patterns/SKILL.md +590 -0
  246. package/.cursor/skills/collaborating-with-codex/SKILL.md +174 -0
  247. package/.cursor/skills/collaborating-with-codex/scripts/codex_bridge.py +275 -0
  248. package/.cursor/skills/collaborating-with-gemini/SKILL.md +194 -0
  249. package/.cursor/skills/collaborating-with-gemini/scripts/gemini_bridge.py +275 -0
  250. package/.cursor/skills/crud-development/SKILL.md +649 -0
  251. package/.cursor/skills/data-permission/SKILL.md +599 -0
  252. package/.cursor/skills/database-ops/SKILL.md +407 -0
  253. package/.cursor/skills/error-handler/SKILL.md +371 -0
  254. package/.cursor/skills/file-oss-management/SKILL.md +863 -0
  255. package/.cursor/skills/git-workflow/SKILL.md +375 -0
  256. package/.cursor/skills/json-serialization/SKILL.md +357 -0
  257. package/.cursor/skills/leniu-api-development/SKILL.md +803 -0
  258. package/.cursor/skills/leniu-architecture-design/SKILL.md +598 -0
  259. package/.cursor/skills/leniu-backend-annotations/SKILL.md +664 -0
  260. package/.cursor/skills/leniu-code-patterns/SKILL.md +365 -0
  261. package/.cursor/skills/leniu-crud-development/SKILL.md +1110 -0
  262. package/.cursor/skills/leniu-data-permission/SKILL.md +256 -0
  263. package/.cursor/skills/leniu-database-ops/SKILL.md +426 -0
  264. package/.cursor/skills/leniu-error-handler/SKILL.md +462 -0
  265. package/.cursor/skills/leniu-java-amount-handling/SKILL.md +461 -0
  266. package/.cursor/skills/leniu-java-code-style/SKILL.md +510 -0
  267. package/.cursor/skills/leniu-java-concurrent/SKILL.md +400 -0
  268. package/.cursor/skills/leniu-java-entity/SKILL.md +751 -0
  269. package/.cursor/skills/leniu-java-export/SKILL.md +560 -0
  270. package/.cursor/skills/leniu-java-logging/SKILL.md +832 -0
  271. package/.cursor/skills/leniu-java-mq/SKILL.md +338 -0
  272. package/.cursor/skills/leniu-java-mybatis/SKILL.md +640 -0
  273. package/.cursor/skills/leniu-java-report-query-param/SKILL.md +291 -0
  274. package/.cursor/skills/leniu-java-task/SKILL.md +367 -0
  275. package/.cursor/skills/leniu-java-total-line/SKILL.md +195 -0
  276. package/.cursor/skills/leniu-marketing-price-rule-customizer/SKILL.md +301 -0
  277. package/.cursor/skills/leniu-marketing-recharge-rule-customizer/SKILL.md +285 -0
  278. package/.cursor/skills/leniu-mealtime/SKILL.md +215 -0
  279. package/.cursor/skills/leniu-redis-cache/SKILL.md +316 -0
  280. package/.cursor/skills/leniu-security-guard/SKILL.md +520 -0
  281. package/.cursor/skills/leniu-utils-toolkit/SKILL.md +380 -0
  282. package/.cursor/skills/openspec-apply-change/SKILL.md +156 -0
  283. package/.cursor/skills/openspec-archive-change/SKILL.md +114 -0
  284. package/.cursor/skills/openspec-bulk-archive-change/SKILL.md +246 -0
  285. package/.cursor/skills/openspec-continue-change/SKILL.md +118 -0
  286. package/.cursor/skills/openspec-explore/SKILL.md +290 -0
  287. package/.cursor/skills/openspec-ff-change/SKILL.md +101 -0
  288. package/.cursor/skills/openspec-new-change/SKILL.md +74 -0
  289. package/.cursor/skills/openspec-onboard/SKILL.md +529 -0
  290. package/.cursor/skills/openspec-sync-specs/SKILL.md +138 -0
  291. package/.cursor/skills/openspec-verify-change/SKILL.md +168 -0
  292. package/.cursor/skills/performance-doctor/SKILL.md +627 -0
  293. package/.cursor/skills/project-navigator/SKILL.md +305 -0
  294. package/.cursor/skills/redis-cache/SKILL.md +839 -0
  295. package/.cursor/skills/scheduled-jobs/SKILL.md +633 -0
  296. package/.cursor/skills/security-guard/SKILL.md +748 -0
  297. package/.cursor/skills/sms-mail/SKILL.md +766 -0
  298. package/.cursor/skills/social-login/SKILL.md +668 -0
  299. package/.cursor/skills/store-pc/SKILL.md +366 -0
  300. package/.cursor/skills/task-tracker/SKILL.md +307 -0
  301. package/.cursor/skills/tech-decision/SKILL.md +393 -0
  302. package/.cursor/skills/tenant-management/SKILL.md +603 -0
  303. package/.cursor/skills/test-development/SKILL.md +755 -0
  304. package/.cursor/skills/ui-pc/SKILL.md +438 -0
  305. package/.cursor/skills/utils-toolkit/SKILL.md +615 -0
  306. package/.cursor/skills/websocket-sse/SKILL.md +716 -0
  307. package/.cursor/skills/workflow-engine/SKILL.md +676 -0
  308. package/AGENTS.md +669 -0
  309. package/CLAUDE.md +205 -0
  310. package/README.md +205 -0
  311. package/bin/index.js +179 -0
  312. package/init.sh +178 -0
  313. package/package.json +27 -0
@@ -0,0 +1,146 @@
1
+ <p align="center">
2
+ <img src="assets/logo.png" alt="Banana Image Logo" width="280">
3
+ </p>
4
+
5
+ <h1 align="center">Banana Image</h1>
6
+
7
+ <p align="center">
8
+ <strong>AI-Powered Image Generation Tool for Claude Code</strong>
9
+ </p>
10
+
11
+ <p align="center">
12
+ <a href="#features">Features</a> •
13
+ <a href="#installation">Installation</a> •
14
+ <a href="#usage">Usage</a> •
15
+ <a href="#models">Models</a> •
16
+ <a href="#examples">Examples</a>
17
+ </p>
18
+
19
+ ---
20
+
21
+ ## Features
22
+
23
+ - **Dual Model Support** - Flash (fast) and Pro (high-quality 4K)
24
+ - **Flexible Aspect Ratios** - 1:1, 16:9, 9:16, 4:3, 2:3, 21:9, and more
25
+ - **Image Editing** - Modify existing images with text prompts
26
+ - **Batch Generation** - Generate up to 4 variants at once
27
+ - **Proxy Support** - Works behind corporate firewalls
28
+ - **Claude Code Integration** - Seamless skill integration
29
+
30
+ ## Installation
31
+
32
+ ### 1. Set API Key
33
+
34
+ ```bash
35
+ export GEMINI_API_KEY="your-api-key"
36
+ ```
37
+
38
+ ### 2. Install Dependencies
39
+
40
+ ```bash
41
+ cd ~/.claude/skills/banana-image/scripts
42
+ npm install
43
+ ```
44
+
45
+ ## Usage
46
+
47
+ ### Quick Start
48
+
49
+ ```bash
50
+ # Fast generation (Flash model)
51
+ npx tsx ~/.claude/skills/banana-image/scripts/banana_image_exec.ts \
52
+ -p "A cute shiba inu in the park" -m flash
53
+
54
+ # 4K high-quality (Pro model)
55
+ npx tsx ~/.claude/skills/banana-image/scripts/banana_image_exec.ts \
56
+ -p "Professional product photo: iPhone case" -m pro -r 4K -a 4:5
57
+ ```
58
+
59
+ ### CLI Options
60
+
61
+ | Option | Description | Default |
62
+ | -------------------- | ------------------------------- | ---------------- |
63
+ | `-p, --prompt` | Image description (required) | - |
64
+ | `-m, --model` | Model: `flash` or `pro` | `pro` |
65
+ | `-a, --aspect-ratio` | Ratio: 1:1, 16:9, 9:16, etc. | `1:1` |
66
+ | `-r, --resolution` | Resolution: 1K, 2K, 4K | Pro=4K, Flash=1K |
67
+ | `-o, --output` | Output directory | `./images` |
68
+ | `-n, --negative` | Negative prompt | - |
69
+ | `-i, --input` | Input image (edit mode) | - |
70
+ | `-c, --count` | Number of images (1-4) | `1` |
71
+ | `-g, --grounding` | Enable Google Search (Pro only) | `false` |
72
+
73
+ ## Models
74
+
75
+ | Model | Speed | Max Resolution | Best For |
76
+ | --------- | ------ | -------------- | --------------------------------------- |
77
+ | **Flash** | 2-5s | 1024px | Drafts, iterations, prototypes |
78
+ | **Pro** | 10-40s | 4K | Final delivery, marketing, professional |
79
+
80
+ ## Examples
81
+
82
+ ### Image Generation
83
+
84
+ ```bash
85
+ # 16:9 landscape poster
86
+ npx tsx banana_image_exec.ts -p "Sunset over mountains" -m pro -r 4K -a 16:9
87
+
88
+ # Portrait for social media
89
+ npx tsx banana_image_exec.ts -p "Product showcase" -m pro -a 9:16
90
+ ```
91
+
92
+ ### Image Editing
93
+
94
+ ```bash
95
+ # Edit existing image
96
+ npx tsx banana_image_exec.ts -p "Change background to beach sunset" -i ./photo.png
97
+ ```
98
+
99
+ ### Batch Generation
100
+
101
+ ```bash
102
+ # Generate 4 variants
103
+ npx tsx banana_image_exec.ts -p "Logo design concept" -m pro -c 4
104
+ ```
105
+
106
+ ## Output
107
+
108
+ ```json
109
+ {
110
+ "success": true,
111
+ "images": [
112
+ {
113
+ "path": "./images/banana_pro_2025-01-01T12-00-00_abc123.png",
114
+ "model": "gemini-3-pro-image-preview",
115
+ "prompt": "Your prompt"
116
+ }
117
+ ],
118
+ "metadata": {
119
+ "model": "gemini-3-pro-image-preview",
120
+ "aspectRatio": "16:9",
121
+ "resolution": "4K",
122
+ "duration": 15234
123
+ }
124
+ }
125
+ ```
126
+
127
+ ## Aspect Ratio Guide
128
+
129
+ | Use Case | Ratio | Keywords |
130
+ | ------------------- | ----- | -------------------------- |
131
+ | Social media square | 1:1 | Instagram, profile |
132
+ | Landscape banner | 16:9 | YouTube, desktop wallpaper |
133
+ | Portrait story | 9:16 | Stories, mobile wallpaper |
134
+ | Product photo | 4:5 | E-commerce, catalog |
135
+ | Movie poster | 2:3 | Poster, print |
136
+ | Ultra-wide | 21:9 | Banner, header |
137
+
138
+ ## Requirements
139
+
140
+ - Node.js 18+
141
+ - Gemini API Key
142
+ - Network access (proxy supported)
143
+
144
+ ## License
145
+
146
+ MIT
@@ -0,0 +1,164 @@
1
+ ---
2
+ name: banana-image
3
+ description: |
4
+ 【触发条件】当用户要求生成图片、创建海报、制作缩略图、编辑图片时使用。
5
+ 关键词:生成图片、/image、产品图、海报、缩略图、4K、高清。
6
+ 【核心产出】高质量 AI 生成图片(最高 4K 分辨率)。
7
+ 【不触发】纯文本任务、代码生成、不涉及图片的设计讨论。
8
+ 【先问什么】若缺少:图片描述、分辨率偏好、宽高比,先提问补齐。
9
+ ---
10
+
11
+ # Banana Image - AI 图片生成
12
+
13
+ 基于 Gemini API 的独立图片生成技能,支持 4K 输出、双模型选择、图片编辑。
14
+
15
+ ## 环境要求
16
+
17
+ ```bash
18
+ # 设置 API Key(必需)
19
+ export GEMINI_API_KEY="your-api-key"
20
+
21
+ # 安装依赖(首次使用)
22
+ cd .claude/skills/banana-image/scripts && npm install
23
+ ```
24
+
25
+ ## 快速命令
26
+
27
+ ```bash
28
+ # 快速生成(Flash 模型)
29
+ npx tsx .claude/skills/banana-image/scripts/banana_image_exec.ts \
30
+ -p "可爱的柴犬在公园玩耍" -m flash
31
+
32
+ # 4K 高质量生成(Pro 模型)
33
+ npx tsx .claude/skills/banana-image/scripts/banana_image_exec.ts \
34
+ -p "专业产品照片:iPhone 手机壳" -m pro -r 4K -a 4:5
35
+ ```
36
+
37
+ ## 模型选择
38
+
39
+ | 模型 | 速度 | 分辨率 | 适用场景 |
40
+ | --------- | ---- | ------- | ---------------------------- |
41
+ | **Flash** | 2-3s | ≤1024px | 快速草图、迭代、原型 |
42
+ | **Pro** | 5-8s | ≤4K | 最终交付、营销素材、专业作品 |
43
+
44
+ **自动选择规则**:
45
+
46
+ - 包含 "快速"、"草图"、"draft" → Flash
47
+ - 包含 "4K"、"专业"、"高质量" → Pro(默认)
48
+
49
+ ## 参数说明
50
+
51
+ ```bash
52
+ npx tsx banana_image_exec.ts --help
53
+
54
+ Options:
55
+ --prompt, -p <text> 图片描述(必需)
56
+ --model, -m <type> 模型选择: flash | pro (默认: pro)
57
+ --aspect-ratio, -a <r> 宽高比: 1:1, 16:9, 9:16, 4:3, 3:2, 21:9 等
58
+ --resolution, -r <res> 分辨率: 1K, 2K, 4K (默认: Pro=4K, Flash=1K)
59
+ --negative, -n <text> 排除内容描述
60
+ --output, -o <dir> 输出目录 (默认: ./images)
61
+ --grounding, -g 启用 Google Search 锚定 (仅 Pro)
62
+ --input, -i <path> 输入图片路径(编辑模式)
63
+ --system, -s <text> 系统指令
64
+ --count, -c <num> 生成数量 (1-4)
65
+ ```
66
+
67
+ ## 工作流
68
+
69
+ ### 1. 简单生成
70
+
71
+ ```bash
72
+ npx tsx .claude/skills/banana-image/scripts/banana_image_exec.ts \
73
+ -p "A cute shiba inu playing in the park" \
74
+ -m pro
75
+ ```
76
+
77
+ ### 2. 带参数生成
78
+
79
+ ```bash
80
+ # 16:9 横版海报,启用 Google 搜索锚定
81
+ npx tsx .claude/skills/banana-image/scripts/banana_image_exec.ts \
82
+ -p "2024年科技大会宣传海报" \
83
+ -m pro -r 4K -a 16:9 -g
84
+ ```
85
+
86
+ ### 3. 图片编辑
87
+
88
+ ```bash
89
+ # 修改现有图片
90
+ npx tsx .claude/skills/banana-image/scripts/banana_image_exec.ts \
91
+ -p "将背景改为黄昏海滩" \
92
+ -i /path/to/original.png
93
+ ```
94
+
95
+ ### 4. 批量生成
96
+
97
+ ```bash
98
+ # 生成多张变体
99
+ npx tsx .claude/skills/banana-image/scripts/banana_image_exec.ts \
100
+ -p "产品照片:无线耳机" \
101
+ -m pro -c 4
102
+ ```
103
+
104
+ ## 输出格式
105
+
106
+ 脚本输出 JSON 格式结果:
107
+
108
+ ```json
109
+ {
110
+ "success": true,
111
+ "images": [
112
+ {
113
+ "path": "./images/banana_pro_2024-01-01T12-00-00_abc123.png",
114
+ "model": "gemini-3-pro-image-preview",
115
+ "prompt": "可爱的柴犬"
116
+ }
117
+ ],
118
+ "metadata": {
119
+ "model": "gemini-3-pro-image-preview",
120
+ "aspectRatio": "1:1",
121
+ "resolution": "4K",
122
+ "duration": 5234
123
+ }
124
+ }
125
+ ```
126
+
127
+ ## 宽高比映射
128
+
129
+ | 用途 | 宽高比 | 关键词 |
130
+ | ------------ | ------ | ----------------------------- |
131
+ | 社交媒体方图 | 1:1 | "方形"、"Instagram" |
132
+ | 横版海报 | 16:9 | "横版"、"YouTube"、"桌面壁纸" |
133
+ | 竖版海报 | 9:16 | "竖版"、"手机壁纸"、"Story" |
134
+ | 产品图 | 4:5 | "产品"、"电商" |
135
+ | 电影海报 | 2:3 | "海报"、"电影" |
136
+ | 超宽屏 | 21:9 | "超宽"、"Banner" |
137
+
138
+ ## 模板系统
139
+
140
+ 读取预定义模板生成图片:
141
+
142
+ ```bash
143
+ # 列出可用模板
144
+ python .claude/skills/banana-image/scripts/apply_template.py list
145
+
146
+ # 应用产品图模板
147
+ python .claude/skills/banana-image/scripts/apply_template.py apply product \
148
+ -v '{"product": "wireless earbuds"}'
149
+ ```
150
+
151
+ 模板输出可直接传递给 `banana_image_exec.ts`。
152
+
153
+ ## 错误处理
154
+
155
+ | 错误 | 原因 | 解决方案 |
156
+ | ----------------------- | -------------- | ----------------------------- |
157
+ | GEMINI_API_KEY not set | 未设置 API Key | `export GEMINI_API_KEY="..."` |
158
+ | Content filtered | 内容安全过滤 | 调整描述,避免敏感词 |
159
+ | Invalid aspect ratio | 不支持的宽高比 | 使用支持的宽高比 |
160
+ | Image generation failed | API 调用失败 | 检查网络和 API 配额 |
161
+
162
+ ## 参考文档
163
+
164
+ - [高级用法](references/advanced-usage.md) - 批量生成、图片编辑、参数优化
@@ -0,0 +1,189 @@
1
+ # 高级用法参考
2
+
3
+ ## 批量生成工作流
4
+
5
+ ### 1. 准备 prompt 列表
6
+
7
+ **纯文本格式** (`prompts.txt`):
8
+
9
+ ```
10
+ 可爱的柴犬在公园里玩耍
11
+ 专业产品照片:iPhone 手机壳
12
+ 科幻风格的城市夜景
13
+ ```
14
+
15
+ **CSV 格式** (`prompts.csv`):
16
+
17
+ ```csv
18
+ prompt,aspect_ratio,model
19
+ 可爱的柴犬,1:1,flash
20
+ 专业产品照片,4:5,pro
21
+ 科幻城市,16:9,pro
22
+ ```
23
+
24
+ ### 2. 转换为 JSON
25
+
26
+ ```bash
27
+ python ~/.claude/skills/banana-image/scripts/batch_prep.py prompts.txt
28
+ ```
29
+
30
+ 输出:
31
+
32
+ ```json
33
+ {
34
+ "source": "prompts.txt",
35
+ "count": 3,
36
+ "prompts": [
37
+ { "id": 1, "prompt": "可爱的柴犬在公园里玩耍" },
38
+ { "id": 2, "prompt": "专业产品照片:iPhone 手机壳" },
39
+ { "id": 3, "prompt": "科幻风格的城市夜景" }
40
+ ]
41
+ }
42
+ ```
43
+
44
+ ### 3. Claude 批量生成
45
+
46
+ Claude 读取 JSON 后逐个调用 `banana_image_exec.ts`:
47
+
48
+ ```bash
49
+ # 对每个 prompt 执行
50
+ npx tsx ~/.claude/skills/banana-image/scripts/banana_image_exec.ts \
51
+ -p "可爱的柴犬在公园里玩耍" \
52
+ -m pro
53
+ ```
54
+
55
+ ## 模板系统
56
+
57
+ ### 列出可用模板
58
+
59
+ ```bash
60
+ python ~/.claude/skills/banana-image/scripts/apply_template.py list
61
+ ```
62
+
63
+ ### 应用模板
64
+
65
+ ```bash
66
+ python ~/.claude/skills/banana-image/scripts/apply_template.py apply product \
67
+ -v '{"product": "sleek wireless earbuds"}'
68
+ ```
69
+
70
+ 输出:
71
+
72
+ ```json
73
+ {
74
+ "prompt": "Create a professional, high-end product photography shot of sleek wireless earbuds...",
75
+ "model_tier": "pro",
76
+ "resolution": "4k",
77
+ "aspect_ratio": "4:5",
78
+ "enable_grounding": true
79
+ }
80
+ ```
81
+
82
+ 然后使用输出参数调用 `banana_image_exec.ts`:
83
+
84
+ ```bash
85
+ npx tsx ~/.claude/skills/banana-image/scripts/banana_image_exec.ts \
86
+ -p "Create a professional, high-end product photography shot of sleek wireless earbuds..." \
87
+ -m pro -r 4K -a 4:5 -g
88
+ ```
89
+
90
+ ## 图片编辑模式
91
+
92
+ ### 编辑现有图片
93
+
94
+ ```bash
95
+ npx tsx ~/.claude/skills/banana-image/scripts/banana_image_exec.ts \
96
+ -p "Make the background a sunset beach scene" \
97
+ -i /path/to/original.png
98
+ ```
99
+
100
+ ### 风格迁移
101
+
102
+ ```bash
103
+ npx tsx ~/.claude/skills/banana-image/scripts/banana_image_exec.ts \
104
+ -p "Transform this photo into a Studio Ghibli anime style" \
105
+ -i /path/to/photo.jpg \
106
+ -m pro
107
+ ```
108
+
109
+ ## 参数优化技巧
110
+
111
+ ### 提高质量
112
+
113
+ 1. 使用 Pro 模型:`-m pro`
114
+ 2. 使用 4K 分辨率:`-r 4K`
115
+ 3. 启用 Google 搜索锚定:`-g`
116
+ 4. 详细的提示词描述
117
+
118
+ ### 加快速度
119
+
120
+ 1. 使用 Flash 模型:`-m flash`
121
+ 2. 降低分辨率:`-r 1K`
122
+ 3. 简化提示词
123
+
124
+ ### Negative Prompt 示例
125
+
126
+ ```bash
127
+ npx tsx ~/.claude/skills/banana-image/scripts/banana_image_exec.ts \
128
+ -p "Professional portrait photo of a business person" \
129
+ -n "blurry, low quality, distorted, watermark, text, cartoon" \
130
+ -m pro
131
+ ```
132
+
133
+ ## 输出目录管理
134
+
135
+ 默认输出目录:`~/.claude/banana-image-output/`
136
+
137
+ 自定义输出目录:
138
+
139
+ ```bash
140
+ npx tsx ~/.claude/skills/banana-image/scripts/banana_image_exec.ts \
141
+ -p "产品图" \
142
+ -o /path/to/custom/output
143
+ ```
144
+
145
+ ## 常见问题
146
+
147
+ ### Q: 生成失败,提示安全过滤?
148
+
149
+ 尝试:
150
+
151
+ 1. 使用更中性的描述
152
+ 2. 避免敏感词汇
153
+ 3. 使用 `--negative` 排除不当内容
154
+
155
+ ### Q: 图片质量不够?
156
+
157
+ 1. 使用 Pro 模型:`-m pro`
158
+ 2. 提高分辨率:`-r 4K`
159
+ 3. 优化提示词,添加更多细节描述
160
+
161
+ ### Q: 如何生成多张变体?
162
+
163
+ ```bash
164
+ npx tsx ~/.claude/skills/banana-image/scripts/banana_image_exec.ts \
165
+ -p "产品照片" \
166
+ -c 4
167
+ ```
168
+
169
+ ### Q: 如何查看已生成的图片?
170
+
171
+ ```bash
172
+ ls -la ~/.claude/banana-image-output/
173
+ ```
174
+
175
+ ## 环境变量
176
+
177
+ | 变量 | 说明 | 必需 |
178
+ | ---------------- | --------------- | ---- |
179
+ | `GEMINI_API_KEY` | Gemini API 密钥 | 是 |
180
+
181
+ 设置方式:
182
+
183
+ ```bash
184
+ # 临时设置
185
+ export GEMINI_API_KEY="your-api-key"
186
+
187
+ # 永久设置(添加到 ~/.zshrc 或 ~/.bashrc)
188
+ echo 'export GEMINI_API_KEY="your-api-key"' >> ~/.zshrc
189
+ ```
@@ -0,0 +1,125 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ 模板应用脚本
4
+ 读取模板 JSON 并填充占位符,输出完整的生成参数
5
+ """
6
+
7
+ import sys
8
+ import json
9
+ import argparse
10
+ import re
11
+ from pathlib import Path
12
+
13
+
14
+ TEMPLATES_DIR = Path(__file__).parent.parent / "templates"
15
+
16
+
17
+ def list_templates() -> list[dict]:
18
+ """列出所有可用模板"""
19
+ templates = []
20
+ for f in TEMPLATES_DIR.glob("*.json"):
21
+ try:
22
+ with open(f, "r", encoding="utf-8") as file:
23
+ data = json.load(file)
24
+ templates.append(
25
+ {
26
+ "file": f.name,
27
+ "name": data.get("name", f.stem),
28
+ "description": data.get("description", ""),
29
+ }
30
+ )
31
+ except Exception:
32
+ continue
33
+ return templates
34
+
35
+
36
+ def load_template(name: str) -> dict:
37
+ """加载指定模板"""
38
+ # 尝试直接文件名
39
+ template_path = TEMPLATES_DIR / f"{name}.json"
40
+ if not template_path.exists():
41
+ # 尝试匹配名称
42
+ for f in TEMPLATES_DIR.glob("*.json"):
43
+ with open(f, "r", encoding="utf-8") as file:
44
+ data = json.load(file)
45
+ if data.get("name") == name:
46
+ return data
47
+ raise FileNotFoundError(f"模板不存在: {name}")
48
+
49
+ with open(template_path, "r", encoding="utf-8") as f:
50
+ return json.load(f)
51
+
52
+
53
+ def apply_template(template: dict, values: dict) -> dict:
54
+ """应用模板,填充占位符"""
55
+ prompt = template["prompt_template"]
56
+
57
+ # 替换占位符
58
+ for key, value in values.items():
59
+ prompt = prompt.replace(f"{{{{{key}}}}}", value)
60
+
61
+ # 检查未填充的占位符
62
+ missing = re.findall(r"\{\{(\w+)\}\}", prompt)
63
+ if missing:
64
+ placeholders = template.get("placeholders", {})
65
+ required = [m for m in missing if not placeholders.get(m, {}).get("optional")]
66
+ if required:
67
+ raise ValueError(f"缺少必需的占位符: {', '.join(required)}")
68
+ # 移除可选占位符
69
+ for m in missing:
70
+ prompt = prompt.replace(f"{{{{{m}}}}}", "")
71
+
72
+ # 构建结果
73
+ result = {"prompt": prompt.strip(), **template.get("defaults", {})}
74
+
75
+ return result
76
+
77
+
78
+ def main():
79
+ parser = argparse.ArgumentParser(description="应用模板生成图片参数")
80
+ subparsers = parser.add_subparsers(dest="command", help="子命令")
81
+
82
+ # list 子命令
83
+ subparsers.add_parser("list", help="列出所有模板")
84
+
85
+ # apply 子命令
86
+ apply_parser = subparsers.add_parser("apply", help="应用模板")
87
+ apply_parser.add_argument("template", help="模板名称")
88
+ apply_parser.add_argument(
89
+ "--values",
90
+ "-v",
91
+ type=str,
92
+ help='JSON 格式的占位符值,如: {"product": "coffee maker"}',
93
+ )
94
+ apply_parser.add_argument("--output", "-o", help="输出文件路径")
95
+
96
+ args = parser.parse_args()
97
+
98
+ if args.command == "list":
99
+ templates = list_templates()
100
+ print(json.dumps(templates, ensure_ascii=False, indent=2))
101
+
102
+ elif args.command == "apply":
103
+ try:
104
+ template = load_template(args.template)
105
+ values = json.loads(args.values) if args.values else {}
106
+ result = apply_template(template, values)
107
+
108
+ output = json.dumps(result, ensure_ascii=False, indent=2)
109
+
110
+ if args.output:
111
+ with open(args.output, "w", encoding="utf-8") as f:
112
+ f.write(output)
113
+ print(f"已保存到: {args.output}")
114
+ else:
115
+ print(output)
116
+ except Exception as e:
117
+ print(json.dumps({"error": str(e)}))
118
+ sys.exit(1)
119
+
120
+ else:
121
+ parser.print_help()
122
+
123
+
124
+ if __name__ == "__main__":
125
+ main()