@vodailoc/kilo-kit-mcp 1.1.0 → 1.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 (582) hide show
  1. package/.mcp/kilo-kit.codex-windows.toml +5 -0
  2. package/LICENSE +190 -190
  3. package/QUICKSTART.md +265 -255
  4. package/README.md +321 -267
  5. package/mcp/README.md +64 -12
  6. package/mcp/dist/formatters.js +142 -1
  7. package/mcp/dist/orchestration-audit.js +20 -0
  8. package/mcp/dist/orchestration-memory.js +258 -0
  9. package/mcp/dist/orchestration-types.js +1 -0
  10. package/mcp/dist/orchestrator.js +222 -0
  11. package/mcp/dist/question-templates.js +249 -0
  12. package/mcp/dist/route-analytics.js +149 -0
  13. package/mcp/dist/router.js +75 -82
  14. package/mcp/dist/routing-policy-data.js +241 -0
  15. package/mcp/dist/routing-policy.js +145 -0
  16. package/mcp/dist/server.js +93 -4
  17. package/mcp/dist/smoke-env.js +18 -0
  18. package/mcp/dist/smoke.js +68 -1
  19. package/mcp/package.json +1 -2
  20. package/package.json +3 -2
  21. package/skills/README.md +647 -647
  22. package/skills/SKILLS_INDEX.md +139 -139
  23. package/skills/ai-media/ai-multimodal/.env.example +97 -97
  24. package/skills/ai-media/ai-multimodal/SKILL.md +357 -357
  25. package/skills/ai-media/ai-multimodal/references/audio-processing.md +373 -373
  26. package/skills/ai-media/ai-multimodal/references/image-generation.md +558 -558
  27. package/skills/ai-media/ai-multimodal/references/video-analysis.md +502 -502
  28. package/skills/ai-media/ai-multimodal/references/vision-understanding.md +483 -483
  29. package/skills/ai-media/ai-multimodal/scripts/document_converter.py +395 -395
  30. package/skills/ai-media/ai-multimodal/scripts/gemini_batch_process.py +480 -480
  31. package/skills/ai-media/ai-multimodal/scripts/media_optimizer.py +506 -506
  32. package/skills/ai-media/ai-multimodal/scripts/requirements.txt +26 -26
  33. package/skills/ai-media/ai-multimodal/scripts/tests/requirements.txt +20 -20
  34. package/skills/ai-media/ai-multimodal/scripts/tests/test_document_converter.py +299 -299
  35. package/skills/ai-media/ai-multimodal/scripts/tests/test_gemini_batch_process.py +362 -362
  36. package/skills/ai-media/ai-multimodal/scripts/tests/test_media_optimizer.py +373 -373
  37. package/skills/ai-media/media-processing/SKILL.md +358 -358
  38. package/skills/ai-media/media-processing/references/ffmpeg-encoding.md +358 -358
  39. package/skills/ai-media/media-processing/references/ffmpeg-filters.md +503 -503
  40. package/skills/ai-media/media-processing/references/ffmpeg-streaming.md +403 -403
  41. package/skills/ai-media/media-processing/references/format-compatibility.md +375 -375
  42. package/skills/ai-media/media-processing/references/imagemagick-batch.md +612 -612
  43. package/skills/ai-media/media-processing/references/imagemagick-editing.md +623 -623
  44. package/skills/ai-media/media-processing/scripts/batch_resize.py +342 -342
  45. package/skills/ai-media/media-processing/scripts/media_convert.py +311 -311
  46. package/skills/ai-media/media-processing/scripts/requirements.txt +24 -24
  47. package/skills/ai-media/media-processing/scripts/tests/requirements.txt +2 -2
  48. package/skills/ai-media/media-processing/scripts/tests/test_batch_resize.py +372 -372
  49. package/skills/ai-media/media-processing/scripts/tests/test_media_convert.py +259 -259
  50. package/skills/ai-media/media-processing/scripts/tests/test_video_optimize.py +397 -397
  51. package/skills/ai-media/media-processing/scripts/video_optimize.py +414 -414
  52. package/skills/ai-media/screenshot/LICENSE.txt +201 -201
  53. package/skills/ai-media/screenshot/SKILL.md +267 -267
  54. package/skills/ai-media/screenshot/agents/openai.yaml +6 -6
  55. package/skills/ai-media/screenshot/assets/screenshot-small.svg +5 -5
  56. package/skills/ai-media/screenshot/scripts/ensure_macos_permissions.sh +54 -54
  57. package/skills/ai-media/screenshot/scripts/macos_display_info.swift +22 -22
  58. package/skills/ai-media/screenshot/scripts/macos_permissions.swift +40 -40
  59. package/skills/ai-media/screenshot/scripts/macos_window_info.swift +126 -126
  60. package/skills/ai-media/screenshot/scripts/take_screenshot.ps1 +163 -163
  61. package/skills/ai-media/screenshot/scripts/take_screenshot.py +585 -585
  62. package/skills/ai-media/sora/LICENSE.txt +201 -201
  63. package/skills/ai-media/sora/SKILL.md +153 -153
  64. package/skills/ai-media/sora/agents/openai.yaml +6 -6
  65. package/skills/ai-media/sora/assets/sora-small.svg +4 -4
  66. package/skills/ai-media/sora/references/cinematic-shots.md +53 -53
  67. package/skills/ai-media/sora/references/cli.md +248 -248
  68. package/skills/ai-media/sora/references/codex-network.md +28 -28
  69. package/skills/ai-media/sora/references/prompting.md +137 -137
  70. package/skills/ai-media/sora/references/sample-prompts.md +95 -95
  71. package/skills/ai-media/sora/references/social-ads.md +42 -42
  72. package/skills/ai-media/sora/references/troubleshooting.md +58 -58
  73. package/skills/ai-media/sora/references/video-api.md +45 -45
  74. package/skills/ai-media/sora/scripts/sora.py +970 -970
  75. package/skills/design/aesthetic/SKILL.md +121 -121
  76. package/skills/design/aesthetic/assets/design-guideline-template.md +163 -163
  77. package/skills/design/aesthetic/assets/design-story-template.md +135 -135
  78. package/skills/design/aesthetic/references/design-principles.md +62 -62
  79. package/skills/design/aesthetic/references/design-resources.md +75 -75
  80. package/skills/design/aesthetic/references/micro-interactions.md +53 -53
  81. package/skills/design/aesthetic/references/storytelling-design.md +50 -50
  82. package/skills/design/figma/LICENSE.txt +202 -202
  83. package/skills/design/figma/SKILL.md +42 -42
  84. package/skills/design/figma/agents/openai.yaml +14 -14
  85. package/skills/design/figma/assets/figma-small.svg +3 -3
  86. package/skills/design/figma/assets/icon.svg +28 -28
  87. package/skills/design/figma/references/figma-mcp-config.md +35 -35
  88. package/skills/design/figma/references/figma-tools-and-prompts.md +34 -34
  89. package/skills/design/figma-implement-design/LICENSE.txt +202 -202
  90. package/skills/design/figma-implement-design/SKILL.md +264 -264
  91. package/skills/design/figma-implement-design/agents/openai.yaml +14 -14
  92. package/skills/design/figma-implement-design/assets/figma-small.svg +3 -3
  93. package/skills/design/figma-implement-design/assets/icon.svg +28 -28
  94. package/skills/design/frontend-design/SKILL.md +41 -41
  95. package/skills/design/frontend-design/references/animejs.md +395 -395
  96. package/skills/design/ui-styling/LICENSE.txt +201 -201
  97. package/skills/design/ui-styling/SKILL.md +321 -321
  98. package/skills/design/ui-styling/canvas-fonts/ArsenalSC-OFL.txt +93 -93
  99. package/skills/design/ui-styling/canvas-fonts/BigShoulders-OFL.txt +93 -93
  100. package/skills/design/ui-styling/canvas-fonts/Boldonse-OFL.txt +93 -93
  101. package/skills/design/ui-styling/canvas-fonts/BricolageGrotesque-OFL.txt +93 -93
  102. package/skills/design/ui-styling/canvas-fonts/CrimsonPro-OFL.txt +93 -93
  103. package/skills/design/ui-styling/canvas-fonts/DMMono-OFL.txt +93 -93
  104. package/skills/design/ui-styling/canvas-fonts/EricaOne-OFL.txt +94 -94
  105. package/skills/design/ui-styling/canvas-fonts/GeistMono-OFL.txt +93 -93
  106. package/skills/design/ui-styling/canvas-fonts/Gloock-OFL.txt +93 -93
  107. package/skills/design/ui-styling/canvas-fonts/IBMPlexMono-OFL.txt +93 -93
  108. package/skills/design/ui-styling/canvas-fonts/InstrumentSans-OFL.txt +93 -93
  109. package/skills/design/ui-styling/canvas-fonts/Italiana-OFL.txt +93 -93
  110. package/skills/design/ui-styling/canvas-fonts/JetBrainsMono-OFL.txt +93 -93
  111. package/skills/design/ui-styling/canvas-fonts/Jura-OFL.txt +93 -93
  112. package/skills/design/ui-styling/canvas-fonts/LibreBaskerville-OFL.txt +93 -93
  113. package/skills/design/ui-styling/canvas-fonts/Lora-OFL.txt +93 -93
  114. package/skills/design/ui-styling/canvas-fonts/NationalPark-OFL.txt +93 -93
  115. package/skills/design/ui-styling/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -93
  116. package/skills/design/ui-styling/canvas-fonts/Outfit-OFL.txt +93 -93
  117. package/skills/design/ui-styling/canvas-fonts/PixelifySans-OFL.txt +93 -93
  118. package/skills/design/ui-styling/canvas-fonts/PoiretOne-OFL.txt +93 -93
  119. package/skills/design/ui-styling/canvas-fonts/RedHatMono-OFL.txt +93 -93
  120. package/skills/design/ui-styling/canvas-fonts/Silkscreen-OFL.txt +93 -93
  121. package/skills/design/ui-styling/canvas-fonts/SmoochSans-OFL.txt +93 -93
  122. package/skills/design/ui-styling/canvas-fonts/Tektur-OFL.txt +93 -93
  123. package/skills/design/ui-styling/canvas-fonts/WorkSans-OFL.txt +93 -93
  124. package/skills/design/ui-styling/canvas-fonts/YoungSerif-OFL.txt +93 -93
  125. package/skills/design/ui-styling/references/canvas-design-system.md +320 -320
  126. package/skills/design/ui-styling/references/shadcn-accessibility.md +471 -471
  127. package/skills/design/ui-styling/references/shadcn-components.md +424 -424
  128. package/skills/design/ui-styling/references/shadcn-theming.md +373 -373
  129. package/skills/design/ui-styling/references/tailwind-customization.md +483 -483
  130. package/skills/design/ui-styling/references/tailwind-responsive.md +382 -382
  131. package/skills/design/ui-styling/references/tailwind-utilities.md +455 -455
  132. package/skills/design/ui-styling/scripts/requirements.txt +17 -17
  133. package/skills/design/ui-styling/scripts/shadcn_add.py +292 -292
  134. package/skills/design/ui-styling/scripts/tailwind_config_gen.py +456 -456
  135. package/skills/design/ui-styling/scripts/tests/requirements.txt +3 -3
  136. package/skills/design/ui-styling/scripts/tests/test_shadcn_add.py +266 -266
  137. package/skills/design/ui-styling/scripts/tests/test_tailwind_config_gen.py +336 -336
  138. package/skills/engineering/aspnet-core/LICENSE.txt +201 -201
  139. package/skills/engineering/aspnet-core/SKILL.md +61 -61
  140. package/skills/engineering/aspnet-core/agents/openai.yaml +5 -5
  141. package/skills/engineering/aspnet-core/references/_sections.md +40 -40
  142. package/skills/engineering/aspnet-core/references/apis-minimal-and-controllers.md +81 -81
  143. package/skills/engineering/aspnet-core/references/data-state-and-services.md +69 -69
  144. package/skills/engineering/aspnet-core/references/program-and-pipeline.md +103 -103
  145. package/skills/engineering/aspnet-core/references/realtime-grpc-and-background-work.md +58 -58
  146. package/skills/engineering/aspnet-core/references/security-and-identity.md +75 -75
  147. package/skills/engineering/aspnet-core/references/source-map.md +43 -43
  148. package/skills/engineering/aspnet-core/references/stack-selection.md +63 -63
  149. package/skills/engineering/aspnet-core/references/testing-performance-and-operations.md +92 -92
  150. package/skills/engineering/aspnet-core/references/ui-blazor.md +53 -53
  151. package/skills/engineering/aspnet-core/references/ui-mvc.md +56 -56
  152. package/skills/engineering/aspnet-core/references/ui-razor-pages.md +55 -55
  153. package/skills/engineering/aspnet-core/references/versioning-and-upgrades.md +51 -51
  154. package/skills/engineering/backend-development/SKILL.md +95 -95
  155. package/skills/engineering/backend-development/references/backend-api-design.md +495 -495
  156. package/skills/engineering/backend-development/references/backend-architecture.md +454 -454
  157. package/skills/engineering/backend-development/references/backend-authentication.md +338 -338
  158. package/skills/engineering/backend-development/references/backend-code-quality.md +659 -659
  159. package/skills/engineering/backend-development/references/backend-debugging.md +904 -904
  160. package/skills/engineering/backend-development/references/backend-devops.md +494 -494
  161. package/skills/engineering/backend-development/references/backend-mindset.md +387 -387
  162. package/skills/engineering/backend-development/references/backend-performance.md +397 -397
  163. package/skills/engineering/backend-development/references/backend-security.md +290 -290
  164. package/skills/engineering/backend-development/references/backend-technologies.md +256 -256
  165. package/skills/engineering/backend-development/references/backend-testing.md +429 -429
  166. package/skills/engineering/better-auth/SKILL.md +204 -204
  167. package/skills/engineering/better-auth/references/advanced-features.md +553 -553
  168. package/skills/engineering/better-auth/references/database-integration.md +577 -577
  169. package/skills/engineering/better-auth/references/email-password-auth.md +416 -416
  170. package/skills/engineering/better-auth/references/oauth-providers.md +430 -430
  171. package/skills/engineering/better-auth/scripts/better_auth_init.py +521 -521
  172. package/skills/engineering/better-auth/scripts/requirements.txt +15 -15
  173. package/skills/engineering/better-auth/scripts/tests/test_better_auth_init.py +421 -421
  174. package/skills/engineering/code-review/SKILL.md +140 -140
  175. package/skills/engineering/code-review/references/code-review-reception.md +208 -208
  176. package/skills/engineering/code-review/references/requesting-code-review.md +104 -104
  177. package/skills/engineering/code-review/references/verification-before-completion.md +138 -138
  178. package/skills/engineering/context-engineering/SKILL.md +86 -86
  179. package/skills/engineering/context-engineering/references/context-compression.md +84 -84
  180. package/skills/engineering/context-engineering/references/context-degradation.md +93 -93
  181. package/skills/engineering/context-engineering/references/context-fundamentals.md +75 -75
  182. package/skills/engineering/context-engineering/references/context-optimization.md +82 -82
  183. package/skills/engineering/context-engineering/references/evaluation.md +89 -89
  184. package/skills/engineering/context-engineering/references/memory-systems.md +88 -88
  185. package/skills/engineering/context-engineering/references/multi-agent-patterns.md +90 -90
  186. package/skills/engineering/context-engineering/references/project-development.md +97 -97
  187. package/skills/engineering/context-engineering/references/tool-design.md +86 -86
  188. package/skills/engineering/context-engineering/scripts/compression_evaluator.py +329 -329
  189. package/skills/engineering/context-engineering/scripts/context_analyzer.py +294 -294
  190. package/skills/engineering/databases/SKILL.md +232 -232
  191. package/skills/engineering/databases/references/mongodb-aggregation.md +447 -447
  192. package/skills/engineering/databases/references/mongodb-atlas.md +465 -465
  193. package/skills/engineering/databases/references/mongodb-crud.md +408 -408
  194. package/skills/engineering/databases/references/mongodb-indexing.md +442 -442
  195. package/skills/engineering/databases/references/postgresql-administration.md +594 -594
  196. package/skills/engineering/databases/references/postgresql-performance.md +527 -527
  197. package/skills/engineering/databases/references/postgresql-psql-cli.md +467 -467
  198. package/skills/engineering/databases/references/postgresql-queries.md +475 -475
  199. package/skills/engineering/databases/scripts/db_backup.py +502 -502
  200. package/skills/engineering/databases/scripts/db_migrate.py +414 -414
  201. package/skills/engineering/databases/scripts/db_performance_check.py +444 -444
  202. package/skills/engineering/databases/scripts/requirements.txt +20 -20
  203. package/skills/engineering/databases/scripts/tests/requirements.txt +4 -4
  204. package/skills/engineering/databases/scripts/tests/test_db_backup.py +340 -340
  205. package/skills/engineering/databases/scripts/tests/test_db_migrate.py +277 -277
  206. package/skills/engineering/databases/scripts/tests/test_db_performance_check.py +370 -370
  207. package/skills/engineering/diagnose/SKILL.md +117 -117
  208. package/skills/engineering/diagnose/scripts/hitl-loop.template.sh +41 -41
  209. package/skills/engineering/docs-seeker/SKILL.md +207 -207
  210. package/skills/engineering/docs-seeker/WORKFLOWS.md +505 -505
  211. package/skills/engineering/docs-seeker/references/best-practices.md +632 -632
  212. package/skills/engineering/docs-seeker/references/documentation-sources.md +461 -461
  213. package/skills/engineering/docs-seeker/references/error-handling.md +621 -621
  214. package/skills/engineering/docs-seeker/references/limitations.md +821 -821
  215. package/skills/engineering/docs-seeker/references/performance.md +574 -574
  216. package/skills/engineering/docs-seeker/references/tool-selection.md +262 -262
  217. package/skills/engineering/frontend-development/SKILL.md +398 -398
  218. package/skills/engineering/frontend-development/resources/common-patterns.md +330 -330
  219. package/skills/engineering/frontend-development/resources/complete-examples.md +871 -871
  220. package/skills/engineering/frontend-development/resources/component-patterns.md +501 -501
  221. package/skills/engineering/frontend-development/resources/data-fetching.md +766 -766
  222. package/skills/engineering/frontend-development/resources/file-organization.md +501 -501
  223. package/skills/engineering/frontend-development/resources/loading-and-error-states.md +500 -500
  224. package/skills/engineering/frontend-development/resources/performance.md +405 -405
  225. package/skills/engineering/frontend-development/resources/routing-guide.md +363 -363
  226. package/skills/engineering/frontend-development/resources/styling-guide.md +427 -427
  227. package/skills/engineering/frontend-development/resources/typescript-standards.md +417 -417
  228. package/skills/engineering/improve-codebase-architecture/DEEPENING.md +37 -37
  229. package/skills/engineering/improve-codebase-architecture/INTERFACE-DESIGN.md +44 -44
  230. package/skills/engineering/improve-codebase-architecture/LANGUAGE.md +53 -53
  231. package/skills/engineering/improve-codebase-architecture/SKILL.md +71 -71
  232. package/skills/engineering/openai-docs/LICENSE.txt +201 -201
  233. package/skills/engineering/openai-docs/SKILL.md +69 -69
  234. package/skills/engineering/openai-docs/agents/openai.yaml +14 -14
  235. package/skills/engineering/openai-docs/assets/openai-small.svg +3 -3
  236. package/skills/engineering/openai-docs/references/gpt-5p4-prompting-guide.md +433 -433
  237. package/skills/engineering/openai-docs/references/latest-model.md +35 -35
  238. package/skills/engineering/openai-docs/references/upgrading-to-gpt-5p4.md +164 -164
  239. package/skills/engineering/playwright/LICENSE.txt +201 -201
  240. package/skills/engineering/playwright/NOTICE.txt +14 -14
  241. package/skills/engineering/playwright/SKILL.md +147 -147
  242. package/skills/engineering/playwright/agents/openai.yaml +6 -6
  243. package/skills/engineering/playwright/assets/playwright-small.svg +3 -3
  244. package/skills/engineering/playwright/references/cli.md +116 -116
  245. package/skills/engineering/playwright/references/workflows.md +95 -95
  246. package/skills/engineering/playwright/scripts/playwright_cli.sh +25 -25
  247. package/skills/engineering/playwright-interactive/LICENSE.txt +201 -201
  248. package/skills/engineering/playwright-interactive/NOTICE.txt +13 -13
  249. package/skills/engineering/playwright-interactive/SKILL.md +689 -689
  250. package/skills/engineering/playwright-interactive/agents/openai.yaml +6 -6
  251. package/skills/engineering/playwright-interactive/assets/playwright-small.svg +3 -3
  252. package/skills/engineering/render-deploy/LICENSE.txt +201 -201
  253. package/skills/engineering/render-deploy/SKILL.md +479 -479
  254. package/skills/engineering/render-deploy/agents/openai.yaml +14 -14
  255. package/skills/engineering/render-deploy/assets/docker.yaml +62 -62
  256. package/skills/engineering/render-deploy/assets/go-api.yaml +35 -35
  257. package/skills/engineering/render-deploy/assets/nextjs-postgres.yaml +35 -35
  258. package/skills/engineering/render-deploy/assets/node-express.yaml +25 -25
  259. package/skills/engineering/render-deploy/assets/python-django.yaml +89 -89
  260. package/skills/engineering/render-deploy/assets/render-small.svg +3 -3
  261. package/skills/engineering/render-deploy/assets/static-site.yaml +54 -54
  262. package/skills/engineering/render-deploy/references/blueprint-spec.md +718 -718
  263. package/skills/engineering/render-deploy/references/codebase-analysis.md +49 -49
  264. package/skills/engineering/render-deploy/references/configuration-guide.md +603 -603
  265. package/skills/engineering/render-deploy/references/deployment-details.md +224 -224
  266. package/skills/engineering/render-deploy/references/direct-creation.md +113 -113
  267. package/skills/engineering/render-deploy/references/error-patterns.md +13 -13
  268. package/skills/engineering/render-deploy/references/post-deploy-checks.md +36 -36
  269. package/skills/engineering/render-deploy/references/runtimes.md +473 -473
  270. package/skills/engineering/render-deploy/references/service-types.md +450 -450
  271. package/skills/engineering/render-deploy/references/troubleshooting-basics.md +36 -36
  272. package/skills/engineering/repomix/SKILL.md +215 -215
  273. package/skills/engineering/repomix/references/configuration.md +211 -211
  274. package/skills/engineering/repomix/references/usage-patterns.md +232 -232
  275. package/skills/engineering/repomix/scripts/README.md +179 -179
  276. package/skills/engineering/repomix/scripts/repomix_batch.py +455 -455
  277. package/skills/engineering/repomix/scripts/repos.example.json +15 -15
  278. package/skills/engineering/repomix/scripts/requirements.txt +15 -15
  279. package/skills/engineering/repomix/scripts/tests/test_repomix_batch.py +531 -531
  280. package/skills/engineering/setup-matt-pocock-skills/SKILL.md +121 -121
  281. package/skills/engineering/setup-matt-pocock-skills/domain.md +51 -51
  282. package/skills/engineering/setup-matt-pocock-skills/issue-tracker-github.md +22 -22
  283. package/skills/engineering/setup-matt-pocock-skills/issue-tracker-gitlab.md +23 -23
  284. package/skills/engineering/setup-matt-pocock-skills/issue-tracker-local.md +19 -19
  285. package/skills/engineering/setup-matt-pocock-skills/triage-labels.md +15 -15
  286. package/skills/engineering/shopify/README.md +66 -66
  287. package/skills/engineering/shopify/SKILL.md +319 -319
  288. package/skills/engineering/shopify/references/app-development.md +470 -470
  289. package/skills/engineering/shopify/references/extensions.md +493 -493
  290. package/skills/engineering/shopify/references/themes.md +498 -498
  291. package/skills/engineering/shopify/scripts/requirements.txt +19 -19
  292. package/skills/engineering/shopify/scripts/shopify_init.py +423 -423
  293. package/skills/engineering/shopify/scripts/tests/test_shopify_init.py +385 -385
  294. package/skills/engineering/tdd/SKILL.md +109 -109
  295. package/skills/engineering/tdd/deep-modules.md +33 -33
  296. package/skills/engineering/tdd/interface-design.md +31 -31
  297. package/skills/engineering/tdd/mocking.md +59 -59
  298. package/skills/engineering/tdd/refactoring.md +10 -10
  299. package/skills/engineering/tdd/tests.md +61 -61
  300. package/skills/engineering/to-issues/SKILL.md +81 -81
  301. package/skills/engineering/to-prd/SKILL.md +74 -74
  302. package/skills/engineering/triage/AGENT-BRIEF.md +168 -168
  303. package/skills/engineering/triage/OUT-OF-SCOPE.md +101 -101
  304. package/skills/engineering/triage/SKILL.md +103 -103
  305. package/skills/engineering/web-frameworks/SKILL.md +324 -324
  306. package/skills/engineering/web-frameworks/references/nextjs-app-router.md +465 -465
  307. package/skills/engineering/web-frameworks/references/nextjs-data-fetching.md +459 -459
  308. package/skills/engineering/web-frameworks/references/nextjs-optimization.md +511 -511
  309. package/skills/engineering/web-frameworks/references/nextjs-server-components.md +495 -495
  310. package/skills/engineering/web-frameworks/references/remix-icon-integration.md +603 -603
  311. package/skills/engineering/web-frameworks/references/turborepo-caching.md +551 -551
  312. package/skills/engineering/web-frameworks/references/turborepo-pipelines.md +517 -517
  313. package/skills/engineering/web-frameworks/references/turborepo-setup.md +542 -542
  314. package/skills/engineering/web-frameworks/scripts/nextjs_init.py +547 -547
  315. package/skills/engineering/web-frameworks/scripts/requirements.txt +16 -16
  316. package/skills/engineering/web-frameworks/scripts/tests/requirements.txt +3 -3
  317. package/skills/engineering/web-frameworks/scripts/tests/test_nextjs_init.py +319 -319
  318. package/skills/engineering/web-frameworks/scripts/tests/test_turborepo_migrate.py +374 -374
  319. package/skills/engineering/web-frameworks/scripts/turborepo_migrate.py +394 -394
  320. package/skills/engineering/write-a-skill/SKILL.md +117 -117
  321. package/skills/kilo-kit/SKILL.md +346 -346
  322. package/skills/kilo-kit/_template/SKILL.md +185 -185
  323. package/skills/kilo-kit/debugging/root-cause/SKILL.md +360 -360
  324. package/skills/kilo-kit/debugging/systematic/SKILL.md +339 -339
  325. package/skills/kilo-kit/debugging/verification/SKILL.md +424 -424
  326. package/skills/kilo-kit/development/backend/SKILL.md +540 -540
  327. package/skills/kilo-kit/development/security/SKILL.md +529 -529
  328. package/skills/kilo-kit/quality/code-review/SKILL.md +297 -297
  329. package/skills/kilo-kit/quality/testing/SKILL.md +540 -540
  330. package/skills/kilo-kit/references/output-formats.md +204 -204
  331. package/skills/kilo-kit/references/patterns.md +156 -156
  332. package/skills/kilo-kit/references/performance-benchmarks.md +90 -90
  333. package/skills/operations/chrome-devtools/SKILL.md +392 -392
  334. package/skills/operations/chrome-devtools/references/cdp-domains.md +694 -694
  335. package/skills/operations/chrome-devtools/references/performance-guide.md +940 -940
  336. package/skills/operations/chrome-devtools/references/puppeteer-reference.md +953 -953
  337. package/skills/operations/chrome-devtools/scripts/PERSISTENT-BROWSER.md +107 -107
  338. package/skills/operations/chrome-devtools/scripts/README.md +213 -213
  339. package/skills/operations/chrome-devtools/scripts/__tests__/selector.test.js +210 -210
  340. package/skills/operations/chrome-devtools/scripts/click.js +79 -79
  341. package/skills/operations/chrome-devtools/scripts/close-persistent.js +36 -36
  342. package/skills/operations/chrome-devtools/scripts/console.js +75 -75
  343. package/skills/operations/chrome-devtools/scripts/evaluate.js +49 -49
  344. package/skills/operations/chrome-devtools/scripts/fill.js +72 -72
  345. package/skills/operations/chrome-devtools/scripts/install-deps.sh +181 -181
  346. package/skills/operations/chrome-devtools/scripts/install.sh +83 -83
  347. package/skills/operations/chrome-devtools/scripts/launch-persistent.js +71 -71
  348. package/skills/operations/chrome-devtools/scripts/lib/browser.js +144 -144
  349. package/skills/operations/chrome-devtools/scripts/lib/selector.js +178 -178
  350. package/skills/operations/chrome-devtools/scripts/navigate.js +46 -46
  351. package/skills/operations/chrome-devtools/scripts/network.js +102 -102
  352. package/skills/operations/chrome-devtools/scripts/package-lock.json +1206 -1206
  353. package/skills/operations/chrome-devtools/scripts/package.json +15 -15
  354. package/skills/operations/chrome-devtools/scripts/performance.js +145 -145
  355. package/skills/operations/chrome-devtools/scripts/screenshot.js +180 -180
  356. package/skills/operations/chrome-devtools/scripts/snapshot.js +131 -131
  357. package/skills/operations/devops/.env.example +76 -76
  358. package/skills/operations/devops/SKILL.md +285 -285
  359. package/skills/operations/devops/references/browser-rendering.md +305 -305
  360. package/skills/operations/devops/references/cloudflare-d1-kv.md +123 -123
  361. package/skills/operations/devops/references/cloudflare-platform.md +271 -271
  362. package/skills/operations/devops/references/cloudflare-r2-storage.md +280 -280
  363. package/skills/operations/devops/references/cloudflare-workers-advanced.md +312 -312
  364. package/skills/operations/devops/references/cloudflare-workers-apis.md +309 -309
  365. package/skills/operations/devops/references/cloudflare-workers-basics.md +418 -418
  366. package/skills/operations/devops/references/docker-basics.md +297 -297
  367. package/skills/operations/devops/references/docker-compose.md +292 -292
  368. package/skills/operations/devops/references/gcloud-platform.md +297 -297
  369. package/skills/operations/devops/references/gcloud-services.md +304 -304
  370. package/skills/operations/devops/scripts/cloudflare_deploy.py +269 -269
  371. package/skills/operations/devops/scripts/docker_optimize.py +320 -320
  372. package/skills/operations/devops/scripts/requirements.txt +20 -20
  373. package/skills/operations/devops/scripts/tests/requirements.txt +3 -3
  374. package/skills/operations/devops/scripts/tests/test_cloudflare_deploy.py +285 -285
  375. package/skills/operations/devops/scripts/tests/test_docker_optimize.py +436 -436
  376. package/skills/operations/mcp-builder/LICENSE.txt +201 -201
  377. package/skills/operations/mcp-builder/SKILL.md +328 -328
  378. package/skills/operations/mcp-builder/reference/evaluation.md +601 -601
  379. package/skills/operations/mcp-builder/reference/mcp_best_practices.md +915 -915
  380. package/skills/operations/mcp-builder/reference/node_mcp_server.md +915 -915
  381. package/skills/operations/mcp-builder/reference/python_mcp_server.md +751 -751
  382. package/skills/operations/mcp-builder/scripts/connections.py +151 -151
  383. package/skills/operations/mcp-builder/scripts/evaluation.py +373 -373
  384. package/skills/operations/mcp-builder/scripts/example_evaluation.xml +22 -22
  385. package/skills/operations/mcp-builder/scripts/requirements.txt +2 -2
  386. package/skills/operations/mcp-management/README.md +219 -219
  387. package/skills/operations/mcp-management/SKILL.md +175 -175
  388. package/skills/operations/mcp-management/assets/tools.json +3043 -3043
  389. package/skills/operations/mcp-management/references/configuration.md +114 -114
  390. package/skills/operations/mcp-management/references/gemini-cli-integration.md +201 -201
  391. package/skills/operations/mcp-management/references/mcp-protocol.md +116 -116
  392. package/skills/operations/mcp-management/scripts/.env.example +10 -10
  393. package/skills/operations/mcp-management/scripts/cli.ts +155 -155
  394. package/skills/operations/mcp-management/scripts/dist/analyze-tools.js +70 -70
  395. package/skills/operations/mcp-management/scripts/dist/cli.js +131 -131
  396. package/skills/operations/mcp-management/scripts/dist/mcp-client.js +115 -115
  397. package/skills/operations/mcp-management/scripts/mcp-client.ts +163 -163
  398. package/skills/operations/mcp-management/scripts/package.json +18 -18
  399. package/skills/operations/mcp-management/scripts/tsconfig.json +15 -15
  400. package/skills/problem-solving/collision-zone-thinking/SKILL.md +62 -62
  401. package/skills/problem-solving/defense-in-depth/SKILL.md +130 -130
  402. package/skills/problem-solving/inversion-exercise/SKILL.md +58 -58
  403. package/skills/problem-solving/meta-pattern-recognition/SKILL.md +54 -54
  404. package/skills/problem-solving/root-cause-tracing/SKILL.md +177 -177
  405. package/skills/problem-solving/root-cause-tracing/find-polluter.sh +63 -63
  406. package/skills/problem-solving/scale-game/SKILL.md +63 -63
  407. package/skills/problem-solving/sequential-thinking/README.md +118 -118
  408. package/skills/problem-solving/sequential-thinking/SKILL.md +93 -93
  409. package/skills/problem-solving/sequential-thinking/references/advanced.md +122 -122
  410. package/skills/problem-solving/sequential-thinking/references/examples.md +274 -274
  411. package/skills/problem-solving/simplification-cascades/SKILL.md +76 -76
  412. package/skills/problem-solving/when-stuck/SKILL.md +88 -88
  413. package/skills/productivity/caveman/SKILL.md +49 -49
  414. package/skills/productivity/grill-me/SKILL.md +10 -10
  415. package/skills/productivity/grill-with-docs/ADR-FORMAT.md +47 -47
  416. package/skills/productivity/grill-with-docs/CONTEXT-FORMAT.md +77 -77
  417. package/skills/productivity/grill-with-docs/SKILL.md +88 -88
  418. package/skills/productivity/writing-skills/graphviz-conventions.dot +171 -171
  419. package/skills/productivity/zoom-out/SKILL.md +7 -7
  420. package/skills/writing-docs/doc/LICENSE.txt +201 -201
  421. package/skills/writing-docs/doc/SKILL.md +80 -80
  422. package/skills/writing-docs/doc/agents/openai.yaml +6 -6
  423. package/skills/writing-docs/doc/assets/doc-small.svg +3 -3
  424. package/skills/writing-docs/doc/scripts/render_docx.py +296 -296
  425. package/skills/writing-docs/docx/LICENSE.txt +30 -30
  426. package/skills/writing-docs/docx/SKILL.md +196 -196
  427. package/skills/writing-docs/docx/docx-js.md +349 -349
  428. package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -1499
  429. package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -146
  430. package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -1085
  431. package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -11
  432. package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -3081
  433. package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -23
  434. package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -185
  435. package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -287
  436. package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -1676
  437. package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -28
  438. package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -144
  439. package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -174
  440. package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -25
  441. package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -18
  442. package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -59
  443. package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -56
  444. package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -195
  445. package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -582
  446. package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -25
  447. package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -4439
  448. package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -570
  449. package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -509
  450. package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -12
  451. package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -108
  452. package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -96
  453. package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -3646
  454. package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -116
  455. package/skills/writing-docs/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -42
  456. package/skills/writing-docs/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -50
  457. package/skills/writing-docs/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -49
  458. package/skills/writing-docs/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -33
  459. package/skills/writing-docs/docx/ooxml/schemas/mce/mc.xsd +75 -75
  460. package/skills/writing-docs/docx/ooxml/schemas/microsoft/wml-2010.xsd +560 -560
  461. package/skills/writing-docs/docx/ooxml/schemas/microsoft/wml-2012.xsd +67 -67
  462. package/skills/writing-docs/docx/ooxml/schemas/microsoft/wml-2018.xsd +14 -14
  463. package/skills/writing-docs/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -20
  464. package/skills/writing-docs/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -13
  465. package/skills/writing-docs/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -4
  466. package/skills/writing-docs/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -8
  467. package/skills/writing-docs/docx/ooxml/scripts/pack.py +159 -159
  468. package/skills/writing-docs/docx/ooxml/scripts/unpack.py +29 -29
  469. package/skills/writing-docs/docx/ooxml/scripts/validate.py +69 -69
  470. package/skills/writing-docs/docx/ooxml/scripts/validation/__init__.py +15 -15
  471. package/skills/writing-docs/docx/ooxml/scripts/validation/base.py +951 -951
  472. package/skills/writing-docs/docx/ooxml/scripts/validation/docx.py +274 -274
  473. package/skills/writing-docs/docx/ooxml/scripts/validation/pptx.py +315 -315
  474. package/skills/writing-docs/docx/ooxml/scripts/validation/redlining.py +279 -279
  475. package/skills/writing-docs/docx/ooxml.md +609 -609
  476. package/skills/writing-docs/docx/scripts/__init__.py +1 -1
  477. package/skills/writing-docs/docx/scripts/document.py +1276 -1276
  478. package/skills/writing-docs/docx/scripts/templates/comments.xml +2 -2
  479. package/skills/writing-docs/docx/scripts/templates/commentsExtended.xml +2 -2
  480. package/skills/writing-docs/docx/scripts/templates/commentsExtensible.xml +2 -2
  481. package/skills/writing-docs/docx/scripts/templates/commentsIds.xml +2 -2
  482. package/skills/writing-docs/docx/scripts/templates/people.xml +2 -2
  483. package/skills/writing-docs/docx/scripts/utilities.py +374 -374
  484. package/skills/writing-docs/mermaidjs-v11/SKILL.md +115 -115
  485. package/skills/writing-docs/mermaidjs-v11/references/cli-usage.md +228 -228
  486. package/skills/writing-docs/mermaidjs-v11/references/configuration.md +232 -232
  487. package/skills/writing-docs/mermaidjs-v11/references/diagram-types.md +315 -315
  488. package/skills/writing-docs/mermaidjs-v11/references/examples.md +344 -344
  489. package/skills/writing-docs/mermaidjs-v11/references/integration.md +310 -310
  490. package/skills/writing-docs/pdf/LICENSE.txt +30 -30
  491. package/skills/writing-docs/pdf/SKILL.md +294 -294
  492. package/skills/writing-docs/pdf/forms.md +205 -205
  493. package/skills/writing-docs/pdf/reference.md +611 -611
  494. package/skills/writing-docs/pdf/scripts/check_bounding_boxes.py +70 -70
  495. package/skills/writing-docs/pdf/scripts/check_bounding_boxes_test.py +226 -226
  496. package/skills/writing-docs/pdf/scripts/check_fillable_fields.py +12 -12
  497. package/skills/writing-docs/pdf/scripts/convert_pdf_to_images.py +35 -35
  498. package/skills/writing-docs/pdf/scripts/create_validation_image.py +41 -41
  499. package/skills/writing-docs/pdf/scripts/extract_form_field_info.py +152 -152
  500. package/skills/writing-docs/pdf/scripts/fill_fillable_fields.py +114 -114
  501. package/skills/writing-docs/pdf/scripts/fill_pdf_form_with_annotations.py +107 -107
  502. package/skills/writing-docs/pptx/LICENSE.txt +30 -30
  503. package/skills/writing-docs/pptx/SKILL.md +483 -483
  504. package/skills/writing-docs/pptx/html2pptx.md +624 -624
  505. package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -1499
  506. package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -146
  507. package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -1085
  508. package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -11
  509. package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -3081
  510. package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -23
  511. package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -185
  512. package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -287
  513. package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -1676
  514. package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -28
  515. package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -144
  516. package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -174
  517. package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -25
  518. package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -18
  519. package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -59
  520. package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -56
  521. package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -195
  522. package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -582
  523. package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -25
  524. package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -4439
  525. package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -570
  526. package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -509
  527. package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -12
  528. package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -108
  529. package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -96
  530. package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -3646
  531. package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -116
  532. package/skills/writing-docs/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -42
  533. package/skills/writing-docs/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -50
  534. package/skills/writing-docs/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -49
  535. package/skills/writing-docs/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -33
  536. package/skills/writing-docs/pptx/ooxml/schemas/mce/mc.xsd +75 -75
  537. package/skills/writing-docs/pptx/ooxml/schemas/microsoft/wml-2010.xsd +560 -560
  538. package/skills/writing-docs/pptx/ooxml/schemas/microsoft/wml-2012.xsd +67 -67
  539. package/skills/writing-docs/pptx/ooxml/schemas/microsoft/wml-2018.xsd +14 -14
  540. package/skills/writing-docs/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -20
  541. package/skills/writing-docs/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -13
  542. package/skills/writing-docs/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -4
  543. package/skills/writing-docs/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -8
  544. package/skills/writing-docs/pptx/ooxml/scripts/pack.py +159 -159
  545. package/skills/writing-docs/pptx/ooxml/scripts/unpack.py +29 -29
  546. package/skills/writing-docs/pptx/ooxml/scripts/validate.py +69 -69
  547. package/skills/writing-docs/pptx/ooxml/scripts/validation/__init__.py +15 -15
  548. package/skills/writing-docs/pptx/ooxml/scripts/validation/base.py +951 -951
  549. package/skills/writing-docs/pptx/ooxml/scripts/validation/docx.py +274 -274
  550. package/skills/writing-docs/pptx/ooxml/scripts/validation/pptx.py +315 -315
  551. package/skills/writing-docs/pptx/ooxml/scripts/validation/redlining.py +279 -279
  552. package/skills/writing-docs/pptx/ooxml.md +426 -426
  553. package/skills/writing-docs/pptx/scripts/html2pptx.js +978 -978
  554. package/skills/writing-docs/pptx/scripts/inventory.py +1020 -1020
  555. package/skills/writing-docs/pptx/scripts/rearrange.py +231 -231
  556. package/skills/writing-docs/pptx/scripts/replace.py +385 -385
  557. package/skills/writing-docs/pptx/scripts/thumbnail.py +450 -450
  558. package/skills/writing-docs/slides/LICENSE.txt +201 -201
  559. package/skills/writing-docs/slides/SKILL.md +71 -71
  560. package/skills/writing-docs/slides/agents/openai.yaml +6 -6
  561. package/skills/writing-docs/slides/assets/pptxgenjs_helpers/code.js +104 -104
  562. package/skills/writing-docs/slides/assets/pptxgenjs_helpers/image.js +333 -333
  563. package/skills/writing-docs/slides/assets/pptxgenjs_helpers/index.js +33 -33
  564. package/skills/writing-docs/slides/assets/pptxgenjs_helpers/latex.js +51 -51
  565. package/skills/writing-docs/slides/assets/pptxgenjs_helpers/layout.js +643 -643
  566. package/skills/writing-docs/slides/assets/pptxgenjs_helpers/layout_builders.js +358 -358
  567. package/skills/writing-docs/slides/assets/pptxgenjs_helpers/svg.js +36 -36
  568. package/skills/writing-docs/slides/assets/pptxgenjs_helpers/text.js +789 -789
  569. package/skills/writing-docs/slides/assets/pptxgenjs_helpers/util.js +24 -24
  570. package/skills/writing-docs/slides/assets/slides-small.svg +3 -3
  571. package/skills/writing-docs/slides/references/pptxgenjs-helpers.md +61 -61
  572. package/skills/writing-docs/slides/scripts/create_montage.py +300 -300
  573. package/skills/writing-docs/slides/scripts/detect_font.py +873 -873
  574. package/skills/writing-docs/slides/scripts/ensure_raster_image.py +202 -202
  575. package/skills/writing-docs/slides/scripts/render_slides.py +273 -273
  576. package/skills/writing-docs/slides/scripts/slides_test.py +201 -201
  577. package/skills/writing-docs/template-skill/SKILL.md +26 -26
  578. package/skills/writing-docs/xlsx/LICENSE.txt +30 -30
  579. package/skills/writing-docs/xlsx/SKILL.md +288 -288
  580. package/skills/writing-docs/xlsx/recalc.py +177 -177
  581. package/src/core/KILO_MASTER.md +448 -448
  582. package/src/tools/validate-skill.js +421 -421
@@ -1,612 +1,612 @@
1
- # ImageMagick Batch Processing
2
-
3
- Complete guide to batch operations, mogrify command, parallel processing, and automation.
4
-
5
- ## Mogrify Command
6
-
7
- ### Basic Mogrify
8
- Modify files in-place (overwrites originals).
9
-
10
- ```bash
11
- # Resize all JPEGs
12
- mogrify -resize 800x600 *.jpg
13
-
14
- # Convert format (creates new files)
15
- mogrify -format png *.jpg
16
-
17
- # Apply effect to all images
18
- mogrify -quality 85 -strip *.jpg
19
- ```
20
-
21
- **Warning:** mogrify modifies files in-place. Always backup originals or use `-path` to output to different directory.
22
-
23
- ### Output to Different Directory
24
- Preserve originals.
25
-
26
- ```bash
27
- # Create output directory first
28
- mkdir output
29
-
30
- # Process to output directory
31
- mogrify -path ./output -resize 800x600 *.jpg
32
-
33
- # With format conversion
34
- mogrify -path ./optimized -format webp -quality 80 *.png
35
- ```
36
-
37
- ## Common Batch Operations
38
-
39
- ### Resize All Images
40
-
41
- ```bash
42
- # Resize to width 800
43
- mogrify -resize 800x *.jpg
44
-
45
- # Resize to height 600
46
- mogrify -resize x600 *.jpg
47
-
48
- # Fit within 800×600
49
- mogrify -resize 800x600 *.jpg
50
-
51
- # Resize to exact dimensions
52
- mogrify -resize 800x600! *.jpg
53
-
54
- # Only shrink, never enlarge
55
- mogrify -resize 800x600\> *.jpg
56
- ```
57
-
58
- ### Format Conversion
59
-
60
- ```bash
61
- # PNG to JPEG
62
- mogrify -path ./jpg -format jpg -quality 85 *.png
63
-
64
- # JPEG to WebP
65
- mogrify -path ./webp -format webp -quality 80 *.jpg
66
-
67
- # Any format to PNG
68
- mogrify -path ./png -format png *.{jpg,gif,bmp}
69
- ```
70
-
71
- ### Optimize Images
72
-
73
- ```bash
74
- # Strip metadata from all JPEGs
75
- mogrify -strip *.jpg
76
-
77
- # Optimize JPEGs for web
78
- mogrify -quality 85 -strip -interlace Plane *.jpg
79
-
80
- # Compress PNGs
81
- mogrify -quality 95 *.png
82
-
83
- # Combined optimization
84
- mogrify -quality 85 -strip -interlace Plane -sampling-factor 4:2:0 *.jpg
85
- ```
86
-
87
- ### Apply Effects
88
-
89
- ```bash
90
- # Add watermark to all images
91
- mogrify -gravity southeast -draw "image over 10,10 0,0 'watermark.png'" *.jpg
92
-
93
- # Convert all to grayscale
94
- mogrify -colorspace Gray *.jpg
95
-
96
- # Apply sepia tone
97
- mogrify -sepia-tone 80% *.jpg
98
-
99
- # Sharpen all images
100
- mogrify -sharpen 0x1 *.jpg
101
- ```
102
-
103
- ### Thumbnail Generation
104
-
105
- ```bash
106
- # Create square thumbnails
107
- mogrify -path ./thumbnails -resize 200x200^ -gravity center -extent 200x200 *.jpg
108
-
109
- # Create thumbnails with max dimension
110
- mogrify -path ./thumbs -thumbnail 300x300 *.jpg
111
-
112
- # Thumbnails with quality control
113
- mogrify -path ./thumbs -thumbnail 200x200 -quality 80 -strip *.jpg
114
- ```
115
-
116
- ## Shell Loops
117
-
118
- ### Basic For Loop
119
- More control than mogrify.
120
-
121
- ```bash
122
- # Resize with custom naming
123
- for img in *.jpg; do
124
- magick "$img" -resize 800x600 "resized_$img"
125
- done
126
-
127
- # Process to subdirectory
128
- mkdir processed
129
- for img in *.jpg; do
130
- magick "$img" -resize 1920x1080 "processed/$img"
131
- done
132
- ```
133
-
134
- ### Multiple Operations
135
-
136
- ```bash
137
- # Complex processing pipeline
138
- for img in *.jpg; do
139
- magick "$img" \
140
- -resize 1920x1080^ \
141
- -gravity center \
142
- -crop 1920x1080+0+0 +repage \
143
- -unsharp 0x1 \
144
- -quality 85 -strip \
145
- "processed_$img"
146
- done
147
- ```
148
-
149
- ### Format Conversion with Rename
150
-
151
- ```bash
152
- # Convert PNG to JPEG with new names
153
- for img in *.png; do
154
- magick "$img" -quality 90 "${img%.png}.jpg"
155
- done
156
-
157
- # Add prefix during conversion
158
- for img in *.jpg; do
159
- magick "$img" -resize 800x "web_${img}"
160
- done
161
- ```
162
-
163
- ### Conditional Processing
164
-
165
- ```bash
166
- # Only process large images
167
- for img in *.jpg; do
168
- width=$(identify -format "%w" "$img")
169
- if [ $width -gt 2000 ]; then
170
- magick "$img" -resize 2000x "resized_$img"
171
- fi
172
- done
173
-
174
- # Skip existing output files
175
- for img in *.jpg; do
176
- output="output_$img"
177
- if [ ! -f "$output" ]; then
178
- magick "$img" -resize 800x "$output"
179
- fi
180
- done
181
- ```
182
-
183
- ## Parallel Processing
184
-
185
- ### GNU Parallel
186
- Process multiple images simultaneously.
187
-
188
- ```bash
189
- # Install GNU Parallel
190
- # Ubuntu/Debian: sudo apt-get install parallel
191
- # macOS: brew install parallel
192
-
193
- # Basic parallel resize
194
- parallel magick {} -resize 800x600 resized_{} ::: *.jpg
195
-
196
- # Parallel with function
197
- resize_image() {
198
- magick "$1" -resize 1920x1080 -quality 85 "processed_$1"
199
- }
200
- export -f resize_image
201
- parallel resize_image ::: *.jpg
202
-
203
- # Limit concurrent jobs
204
- parallel -j 4 magick {} -resize 800x {} ::: *.jpg
205
-
206
- # Progress indicator
207
- parallel --progress magick {} -resize 800x {} ::: *.jpg
208
- ```
209
-
210
- ### Xargs Parallel
211
-
212
- ```bash
213
- # Using xargs for parallel processing
214
- ls *.jpg | xargs -I {} -P 4 magick {} -resize 800x processed_{}
215
-
216
- # With find
217
- find . -name "*.jpg" -print0 | \
218
- xargs -0 -I {} -P 4 magick {} -resize 800x {}
219
- ```
220
-
221
- ## Advanced Batch Patterns
222
-
223
- ### Recursive Processing
224
-
225
- ```bash
226
- # Process all JPEGs in subdirectories
227
- find . -name "*.jpg" -exec magick {} -resize 800x {} \;
228
-
229
- # With output directory structure
230
- find . -name "*.jpg" -type f | while read img; do
231
- outdir="output/$(dirname "$img")"
232
- mkdir -p "$outdir"
233
- magick "$img" -resize 800x "$outdir/$(basename "$img")"
234
- done
235
- ```
236
-
237
- ### Batch with Different Sizes
238
-
239
- ```bash
240
- # Generate multiple sizes
241
- for size in 320 640 1024 1920; do
242
- mkdir -p "output/${size}w"
243
- for img in *.jpg; do
244
- magick "$img" -resize ${size}x -quality 85 "output/${size}w/$img"
245
- done
246
- done
247
-
248
- # Parallel version
249
- for size in 320 640 1024 1920; do
250
- mkdir -p "output/${size}w"
251
- parallel magick {} -resize ${size}x -quality 85 "output/${size}w/{}" ::: *.jpg
252
- done
253
- ```
254
-
255
- ### Responsive Image Set
256
-
257
- ```bash
258
- # Create responsive image set with srcset
259
- mkdir -p responsive
260
- for img in *.jpg; do
261
- base="${img%.jpg}"
262
- for width in 320 640 1024 1920; do
263
- magick "$img" -resize ${width}x -quality 85 \
264
- "responsive/${base}-${width}w.jpg"
265
- done
266
- done
267
- ```
268
-
269
- ### Watermark Batch
270
-
271
- ```bash
272
- # Add watermark to all images
273
- for img in *.jpg; do
274
- magick "$img" watermark.png \
275
- -gravity southeast -geometry +10+10 \
276
- -composite "watermarked_$img"
277
- done
278
-
279
- # Different watermark positions for portrait vs landscape
280
- for img in *.jpg; do
281
- width=$(identify -format "%w" "$img")
282
- height=$(identify -format "%h" "$img")
283
-
284
- if [ $width -gt $height ]; then
285
- # Landscape
286
- magick "$img" watermark.png -gravity southeast -composite "marked_$img"
287
- else
288
- # Portrait
289
- magick "$img" watermark.png -gravity south -composite "marked_$img"
290
- fi
291
- done
292
- ```
293
-
294
- ## Error Handling
295
-
296
- ### Check Before Processing
297
-
298
- ```bash
299
- # Verify image before processing
300
- for img in *.jpg; do
301
- if identify "$img" > /dev/null 2>&1; then
302
- magick "$img" -resize 800x "processed_$img"
303
- else
304
- echo "Skipping corrupt image: $img"
305
- fi
306
- done
307
- ```
308
-
309
- ### Log Processing
310
-
311
- ```bash
312
- # Log successful and failed operations
313
- log_file="batch_process.log"
314
- error_log="errors.log"
315
-
316
- for img in *.jpg; do
317
- if magick "$img" -resize 800x "output/$img" 2>> "$error_log"; then
318
- echo "$(date): Processed $img" >> "$log_file"
319
- else
320
- echo "$(date): Failed $img" >> "$error_log"
321
- fi
322
- done
323
- ```
324
-
325
- ### Dry Run Mode
326
-
327
- ```bash
328
- # Test without modifying files
329
- dry_run=true
330
-
331
- for img in *.jpg; do
332
- cmd="magick $img -resize 800x processed_$img"
333
- if [ "$dry_run" = true ]; then
334
- echo "Would run: $cmd"
335
- else
336
- eval $cmd
337
- fi
338
- done
339
- ```
340
-
341
- ## Optimization Workflows
342
-
343
- ### Web Publishing Pipeline
344
-
345
- ```bash
346
- # Complete web optimization workflow
347
- mkdir -p web/{original,optimized,thumbnails}
348
-
349
- # Copy originals
350
- cp *.jpg web/original/
351
-
352
- # Create optimized versions
353
- mogrify -path web/optimized \
354
- -resize 1920x1080\> \
355
- -quality 85 \
356
- -strip \
357
- -interlace Plane \
358
- web/original/*.jpg
359
-
360
- # Create thumbnails
361
- mogrify -path web/thumbnails \
362
- -thumbnail 300x300 \
363
- -quality 80 \
364
- -strip \
365
- web/original/*.jpg
366
- ```
367
-
368
- ### Archive to Web Conversion
369
-
370
- ```bash
371
- # Convert high-res archives to web formats
372
- for img in archives/*.jpg; do
373
- base=$(basename "$img" .jpg)
374
-
375
- # Full size web version
376
- magick "$img" -resize 2048x2048\> -quality 90 -strip "web/${base}.jpg"
377
-
378
- # Thumbnail
379
- magick "$img" -thumbnail 400x400 -quality 85 "web/${base}_thumb.jpg"
380
-
381
- # WebP version
382
- magick "$img" -resize 2048x2048\> -quality 85 "web/${base}.webp"
383
- done
384
- ```
385
-
386
- ### Print to Web Workflow
387
-
388
- ```bash
389
- # Convert print-ready images to web
390
- for img in print/*.tif; do
391
- base=$(basename "$img" .tif)
392
-
393
- # Convert colorspace and optimize
394
- magick "$img" \
395
- -colorspace sRGB \
396
- -resize 2000x2000\> \
397
- -quality 90 \
398
- -strip \
399
- -interlace Plane \
400
- "web/${base}.jpg"
401
- done
402
- ```
403
-
404
- ## Batch Reporting
405
-
406
- ### Generate Report
407
-
408
- ```bash
409
- # Create processing report
410
- report="batch_report.txt"
411
- echo "Batch Processing Report - $(date)" > "$report"
412
- echo "================================" >> "$report"
413
-
414
- total=0
415
- success=0
416
- failed=0
417
-
418
- for img in *.jpg; do
419
- ((total++))
420
- if magick "$img" -resize 800x "output/$img" 2>/dev/null; then
421
- ((success++))
422
- echo "✓ $img" >> "$report"
423
- else
424
- ((failed++))
425
- echo "✗ $img" >> "$report"
426
- fi
427
- done
428
-
429
- echo "" >> "$report"
430
- echo "Total: $total, Success: $success, Failed: $failed" >> "$report"
431
- ```
432
-
433
- ### Image Inventory
434
-
435
- ```bash
436
- # Create inventory of images
437
- inventory="image_inventory.csv"
438
- echo "Filename,Width,Height,Format,Size,ColorSpace" > "$inventory"
439
-
440
- for img in *.{jpg,png,gif}; do
441
- [ -f "$img" ] || continue
442
- info=$(identify -format "%f,%w,%h,%m,%b,%[colorspace]" "$img")
443
- echo "$info" >> "$inventory"
444
- done
445
- ```
446
-
447
- ## Performance Tips
448
-
449
- ### Optimize Loop Performance
450
-
451
- ```bash
452
- # Bad: Launch mogrify for each file
453
- for img in *.jpg; do
454
- mogrify -resize 800x "$img"
455
- done
456
-
457
- # Good: Process all files in one mogrify call
458
- mogrify -resize 800x *.jpg
459
-
460
- # Best: Use parallel processing for complex operations
461
- parallel magick {} -resize 800x -quality 85 processed_{} ::: *.jpg
462
- ```
463
-
464
- ### Memory Management
465
-
466
- ```bash
467
- # Limit memory for batch processing
468
- for img in *.jpg; do
469
- magick -limit memory 2GB -limit map 4GB \
470
- "$img" -resize 50% "output/$img"
471
- done
472
- ```
473
-
474
- ### Progress Tracking
475
-
476
- ```bash
477
- # Show progress for long batch operations
478
- total=$(ls *.jpg | wc -l)
479
- current=0
480
-
481
- for img in *.jpg; do
482
- ((current++))
483
- echo "Processing $current/$total: $img"
484
- magick "$img" -resize 800x "output/$img"
485
- done
486
- ```
487
-
488
- ## Automation Scripts
489
-
490
- ### Complete Bash Script
491
-
492
- ```bash
493
- #!/bin/bash
494
-
495
- # Configuration
496
- INPUT_DIR="./input"
497
- OUTPUT_DIR="./output"
498
- QUALITY=85
499
- MAX_WIDTH=1920
500
- THUMBNAIL_SIZE=300
501
-
502
- # Create output directories
503
- mkdir -p "$OUTPUT_DIR"/{full,thumbnails}
504
-
505
- # Process images
506
- echo "Processing images..."
507
- for img in "$INPUT_DIR"/*.{jpg,jpeg,png}; do
508
- [ -f "$img" ] || continue
509
-
510
- filename=$(basename "$img")
511
- base="${filename%.*}"
512
-
513
- # Full size
514
- magick "$img" \
515
- -resize ${MAX_WIDTH}x\> \
516
- -quality $QUALITY \
517
- -strip \
518
- "$OUTPUT_DIR/full/${base}.jpg"
519
-
520
- # Thumbnail
521
- magick "$img" \
522
- -thumbnail ${THUMBNAIL_SIZE}x${THUMBNAIL_SIZE} \
523
- -quality 80 \
524
- -strip \
525
- "$OUTPUT_DIR/thumbnails/${base}_thumb.jpg"
526
-
527
- echo "✓ $filename"
528
- done
529
-
530
- echo "Done!"
531
- ```
532
-
533
- ### Python Batch Script
534
-
535
- ```python
536
- #!/usr/bin/env python3
537
- import os
538
- import subprocess
539
- from pathlib import Path
540
-
541
- INPUT_DIR = Path("./input")
542
- OUTPUT_DIR = Path("./output")
543
- SIZES = [320, 640, 1024, 1920]
544
-
545
- # Create output directories
546
- for size in SIZES:
547
- (OUTPUT_DIR / f"{size}w").mkdir(parents=True, exist_ok=True)
548
-
549
- # Process images
550
- for img in INPUT_DIR.glob("*.jpg"):
551
- for size in SIZES:
552
- output = OUTPUT_DIR / f"{size}w" / img.name
553
- subprocess.run([
554
- "magick", str(img),
555
- "-resize", f"{size}x",
556
- "-quality", "85",
557
- "-strip",
558
- str(output)
559
- ])
560
- print(f"✓ {img.name} -> {size}w")
561
- ```
562
-
563
- ## Common Batch Recipes
564
-
565
- ### Social Media Sizes
566
-
567
- ```bash
568
- # Generate social media image sizes
569
- for img in *.jpg; do
570
- base="${img%.jpg}"
571
-
572
- # Instagram square (1080×1080)
573
- magick "$img" -resize 1080x1080^ -gravity center -extent 1080x1080 "${base}_ig_square.jpg"
574
-
575
- # Instagram portrait (1080×1350)
576
- magick "$img" -resize 1080x1350^ -gravity center -extent 1080x1350 "${base}_ig_portrait.jpg"
577
-
578
- # Facebook post (1200×630)
579
- magick "$img" -resize 1200x630^ -gravity center -extent 1200x630 "${base}_fb_post.jpg"
580
-
581
- # Twitter post (1200×675)
582
- magick "$img" -resize 1200x675^ -gravity center -extent 1200x675 "${base}_tw_post.jpg"
583
- done
584
- ```
585
-
586
- ### Email Newsletter Images
587
-
588
- ```bash
589
- # Optimize images for email
590
- mogrify -path ./email \
591
- -resize 600x\> \
592
- -quality 75 \
593
- -strip \
594
- -interlace Plane \
595
- *.jpg
596
- ```
597
-
598
- ### Backup and Archive
599
-
600
- ```bash
601
- # Create web versions and keep originals
602
- mkdir -p {originals,web}
603
-
604
- # Move originals
605
- mv *.jpg originals/
606
-
607
- # Create optimized copies
608
- for img in originals/*.jpg; do
609
- base=$(basename "$img")
610
- magick "$img" -resize 2000x2000\> -quality 85 -strip "web/$base"
611
- done
612
- ```
1
+ # ImageMagick Batch Processing
2
+
3
+ Complete guide to batch operations, mogrify command, parallel processing, and automation.
4
+
5
+ ## Mogrify Command
6
+
7
+ ### Basic Mogrify
8
+ Modify files in-place (overwrites originals).
9
+
10
+ ```bash
11
+ # Resize all JPEGs
12
+ mogrify -resize 800x600 *.jpg
13
+
14
+ # Convert format (creates new files)
15
+ mogrify -format png *.jpg
16
+
17
+ # Apply effect to all images
18
+ mogrify -quality 85 -strip *.jpg
19
+ ```
20
+
21
+ **Warning:** mogrify modifies files in-place. Always backup originals or use `-path` to output to different directory.
22
+
23
+ ### Output to Different Directory
24
+ Preserve originals.
25
+
26
+ ```bash
27
+ # Create output directory first
28
+ mkdir output
29
+
30
+ # Process to output directory
31
+ mogrify -path ./output -resize 800x600 *.jpg
32
+
33
+ # With format conversion
34
+ mogrify -path ./optimized -format webp -quality 80 *.png
35
+ ```
36
+
37
+ ## Common Batch Operations
38
+
39
+ ### Resize All Images
40
+
41
+ ```bash
42
+ # Resize to width 800
43
+ mogrify -resize 800x *.jpg
44
+
45
+ # Resize to height 600
46
+ mogrify -resize x600 *.jpg
47
+
48
+ # Fit within 800×600
49
+ mogrify -resize 800x600 *.jpg
50
+
51
+ # Resize to exact dimensions
52
+ mogrify -resize 800x600! *.jpg
53
+
54
+ # Only shrink, never enlarge
55
+ mogrify -resize 800x600\> *.jpg
56
+ ```
57
+
58
+ ### Format Conversion
59
+
60
+ ```bash
61
+ # PNG to JPEG
62
+ mogrify -path ./jpg -format jpg -quality 85 *.png
63
+
64
+ # JPEG to WebP
65
+ mogrify -path ./webp -format webp -quality 80 *.jpg
66
+
67
+ # Any format to PNG
68
+ mogrify -path ./png -format png *.{jpg,gif,bmp}
69
+ ```
70
+
71
+ ### Optimize Images
72
+
73
+ ```bash
74
+ # Strip metadata from all JPEGs
75
+ mogrify -strip *.jpg
76
+
77
+ # Optimize JPEGs for web
78
+ mogrify -quality 85 -strip -interlace Plane *.jpg
79
+
80
+ # Compress PNGs
81
+ mogrify -quality 95 *.png
82
+
83
+ # Combined optimization
84
+ mogrify -quality 85 -strip -interlace Plane -sampling-factor 4:2:0 *.jpg
85
+ ```
86
+
87
+ ### Apply Effects
88
+
89
+ ```bash
90
+ # Add watermark to all images
91
+ mogrify -gravity southeast -draw "image over 10,10 0,0 'watermark.png'" *.jpg
92
+
93
+ # Convert all to grayscale
94
+ mogrify -colorspace Gray *.jpg
95
+
96
+ # Apply sepia tone
97
+ mogrify -sepia-tone 80% *.jpg
98
+
99
+ # Sharpen all images
100
+ mogrify -sharpen 0x1 *.jpg
101
+ ```
102
+
103
+ ### Thumbnail Generation
104
+
105
+ ```bash
106
+ # Create square thumbnails
107
+ mogrify -path ./thumbnails -resize 200x200^ -gravity center -extent 200x200 *.jpg
108
+
109
+ # Create thumbnails with max dimension
110
+ mogrify -path ./thumbs -thumbnail 300x300 *.jpg
111
+
112
+ # Thumbnails with quality control
113
+ mogrify -path ./thumbs -thumbnail 200x200 -quality 80 -strip *.jpg
114
+ ```
115
+
116
+ ## Shell Loops
117
+
118
+ ### Basic For Loop
119
+ More control than mogrify.
120
+
121
+ ```bash
122
+ # Resize with custom naming
123
+ for img in *.jpg; do
124
+ magick "$img" -resize 800x600 "resized_$img"
125
+ done
126
+
127
+ # Process to subdirectory
128
+ mkdir processed
129
+ for img in *.jpg; do
130
+ magick "$img" -resize 1920x1080 "processed/$img"
131
+ done
132
+ ```
133
+
134
+ ### Multiple Operations
135
+
136
+ ```bash
137
+ # Complex processing pipeline
138
+ for img in *.jpg; do
139
+ magick "$img" \
140
+ -resize 1920x1080^ \
141
+ -gravity center \
142
+ -crop 1920x1080+0+0 +repage \
143
+ -unsharp 0x1 \
144
+ -quality 85 -strip \
145
+ "processed_$img"
146
+ done
147
+ ```
148
+
149
+ ### Format Conversion with Rename
150
+
151
+ ```bash
152
+ # Convert PNG to JPEG with new names
153
+ for img in *.png; do
154
+ magick "$img" -quality 90 "${img%.png}.jpg"
155
+ done
156
+
157
+ # Add prefix during conversion
158
+ for img in *.jpg; do
159
+ magick "$img" -resize 800x "web_${img}"
160
+ done
161
+ ```
162
+
163
+ ### Conditional Processing
164
+
165
+ ```bash
166
+ # Only process large images
167
+ for img in *.jpg; do
168
+ width=$(identify -format "%w" "$img")
169
+ if [ $width -gt 2000 ]; then
170
+ magick "$img" -resize 2000x "resized_$img"
171
+ fi
172
+ done
173
+
174
+ # Skip existing output files
175
+ for img in *.jpg; do
176
+ output="output_$img"
177
+ if [ ! -f "$output" ]; then
178
+ magick "$img" -resize 800x "$output"
179
+ fi
180
+ done
181
+ ```
182
+
183
+ ## Parallel Processing
184
+
185
+ ### GNU Parallel
186
+ Process multiple images simultaneously.
187
+
188
+ ```bash
189
+ # Install GNU Parallel
190
+ # Ubuntu/Debian: sudo apt-get install parallel
191
+ # macOS: brew install parallel
192
+
193
+ # Basic parallel resize
194
+ parallel magick {} -resize 800x600 resized_{} ::: *.jpg
195
+
196
+ # Parallel with function
197
+ resize_image() {
198
+ magick "$1" -resize 1920x1080 -quality 85 "processed_$1"
199
+ }
200
+ export -f resize_image
201
+ parallel resize_image ::: *.jpg
202
+
203
+ # Limit concurrent jobs
204
+ parallel -j 4 magick {} -resize 800x {} ::: *.jpg
205
+
206
+ # Progress indicator
207
+ parallel --progress magick {} -resize 800x {} ::: *.jpg
208
+ ```
209
+
210
+ ### Xargs Parallel
211
+
212
+ ```bash
213
+ # Using xargs for parallel processing
214
+ ls *.jpg | xargs -I {} -P 4 magick {} -resize 800x processed_{}
215
+
216
+ # With find
217
+ find . -name "*.jpg" -print0 | \
218
+ xargs -0 -I {} -P 4 magick {} -resize 800x {}
219
+ ```
220
+
221
+ ## Advanced Batch Patterns
222
+
223
+ ### Recursive Processing
224
+
225
+ ```bash
226
+ # Process all JPEGs in subdirectories
227
+ find . -name "*.jpg" -exec magick {} -resize 800x {} \;
228
+
229
+ # With output directory structure
230
+ find . -name "*.jpg" -type f | while read img; do
231
+ outdir="output/$(dirname "$img")"
232
+ mkdir -p "$outdir"
233
+ magick "$img" -resize 800x "$outdir/$(basename "$img")"
234
+ done
235
+ ```
236
+
237
+ ### Batch with Different Sizes
238
+
239
+ ```bash
240
+ # Generate multiple sizes
241
+ for size in 320 640 1024 1920; do
242
+ mkdir -p "output/${size}w"
243
+ for img in *.jpg; do
244
+ magick "$img" -resize ${size}x -quality 85 "output/${size}w/$img"
245
+ done
246
+ done
247
+
248
+ # Parallel version
249
+ for size in 320 640 1024 1920; do
250
+ mkdir -p "output/${size}w"
251
+ parallel magick {} -resize ${size}x -quality 85 "output/${size}w/{}" ::: *.jpg
252
+ done
253
+ ```
254
+
255
+ ### Responsive Image Set
256
+
257
+ ```bash
258
+ # Create responsive image set with srcset
259
+ mkdir -p responsive
260
+ for img in *.jpg; do
261
+ base="${img%.jpg}"
262
+ for width in 320 640 1024 1920; do
263
+ magick "$img" -resize ${width}x -quality 85 \
264
+ "responsive/${base}-${width}w.jpg"
265
+ done
266
+ done
267
+ ```
268
+
269
+ ### Watermark Batch
270
+
271
+ ```bash
272
+ # Add watermark to all images
273
+ for img in *.jpg; do
274
+ magick "$img" watermark.png \
275
+ -gravity southeast -geometry +10+10 \
276
+ -composite "watermarked_$img"
277
+ done
278
+
279
+ # Different watermark positions for portrait vs landscape
280
+ for img in *.jpg; do
281
+ width=$(identify -format "%w" "$img")
282
+ height=$(identify -format "%h" "$img")
283
+
284
+ if [ $width -gt $height ]; then
285
+ # Landscape
286
+ magick "$img" watermark.png -gravity southeast -composite "marked_$img"
287
+ else
288
+ # Portrait
289
+ magick "$img" watermark.png -gravity south -composite "marked_$img"
290
+ fi
291
+ done
292
+ ```
293
+
294
+ ## Error Handling
295
+
296
+ ### Check Before Processing
297
+
298
+ ```bash
299
+ # Verify image before processing
300
+ for img in *.jpg; do
301
+ if identify "$img" > /dev/null 2>&1; then
302
+ magick "$img" -resize 800x "processed_$img"
303
+ else
304
+ echo "Skipping corrupt image: $img"
305
+ fi
306
+ done
307
+ ```
308
+
309
+ ### Log Processing
310
+
311
+ ```bash
312
+ # Log successful and failed operations
313
+ log_file="batch_process.log"
314
+ error_log="errors.log"
315
+
316
+ for img in *.jpg; do
317
+ if magick "$img" -resize 800x "output/$img" 2>> "$error_log"; then
318
+ echo "$(date): Processed $img" >> "$log_file"
319
+ else
320
+ echo "$(date): Failed $img" >> "$error_log"
321
+ fi
322
+ done
323
+ ```
324
+
325
+ ### Dry Run Mode
326
+
327
+ ```bash
328
+ # Test without modifying files
329
+ dry_run=true
330
+
331
+ for img in *.jpg; do
332
+ cmd="magick $img -resize 800x processed_$img"
333
+ if [ "$dry_run" = true ]; then
334
+ echo "Would run: $cmd"
335
+ else
336
+ eval $cmd
337
+ fi
338
+ done
339
+ ```
340
+
341
+ ## Optimization Workflows
342
+
343
+ ### Web Publishing Pipeline
344
+
345
+ ```bash
346
+ # Complete web optimization workflow
347
+ mkdir -p web/{original,optimized,thumbnails}
348
+
349
+ # Copy originals
350
+ cp *.jpg web/original/
351
+
352
+ # Create optimized versions
353
+ mogrify -path web/optimized \
354
+ -resize 1920x1080\> \
355
+ -quality 85 \
356
+ -strip \
357
+ -interlace Plane \
358
+ web/original/*.jpg
359
+
360
+ # Create thumbnails
361
+ mogrify -path web/thumbnails \
362
+ -thumbnail 300x300 \
363
+ -quality 80 \
364
+ -strip \
365
+ web/original/*.jpg
366
+ ```
367
+
368
+ ### Archive to Web Conversion
369
+
370
+ ```bash
371
+ # Convert high-res archives to web formats
372
+ for img in archives/*.jpg; do
373
+ base=$(basename "$img" .jpg)
374
+
375
+ # Full size web version
376
+ magick "$img" -resize 2048x2048\> -quality 90 -strip "web/${base}.jpg"
377
+
378
+ # Thumbnail
379
+ magick "$img" -thumbnail 400x400 -quality 85 "web/${base}_thumb.jpg"
380
+
381
+ # WebP version
382
+ magick "$img" -resize 2048x2048\> -quality 85 "web/${base}.webp"
383
+ done
384
+ ```
385
+
386
+ ### Print to Web Workflow
387
+
388
+ ```bash
389
+ # Convert print-ready images to web
390
+ for img in print/*.tif; do
391
+ base=$(basename "$img" .tif)
392
+
393
+ # Convert colorspace and optimize
394
+ magick "$img" \
395
+ -colorspace sRGB \
396
+ -resize 2000x2000\> \
397
+ -quality 90 \
398
+ -strip \
399
+ -interlace Plane \
400
+ "web/${base}.jpg"
401
+ done
402
+ ```
403
+
404
+ ## Batch Reporting
405
+
406
+ ### Generate Report
407
+
408
+ ```bash
409
+ # Create processing report
410
+ report="batch_report.txt"
411
+ echo "Batch Processing Report - $(date)" > "$report"
412
+ echo "================================" >> "$report"
413
+
414
+ total=0
415
+ success=0
416
+ failed=0
417
+
418
+ for img in *.jpg; do
419
+ ((total++))
420
+ if magick "$img" -resize 800x "output/$img" 2>/dev/null; then
421
+ ((success++))
422
+ echo "✓ $img" >> "$report"
423
+ else
424
+ ((failed++))
425
+ echo "✗ $img" >> "$report"
426
+ fi
427
+ done
428
+
429
+ echo "" >> "$report"
430
+ echo "Total: $total, Success: $success, Failed: $failed" >> "$report"
431
+ ```
432
+
433
+ ### Image Inventory
434
+
435
+ ```bash
436
+ # Create inventory of images
437
+ inventory="image_inventory.csv"
438
+ echo "Filename,Width,Height,Format,Size,ColorSpace" > "$inventory"
439
+
440
+ for img in *.{jpg,png,gif}; do
441
+ [ -f "$img" ] || continue
442
+ info=$(identify -format "%f,%w,%h,%m,%b,%[colorspace]" "$img")
443
+ echo "$info" >> "$inventory"
444
+ done
445
+ ```
446
+
447
+ ## Performance Tips
448
+
449
+ ### Optimize Loop Performance
450
+
451
+ ```bash
452
+ # Bad: Launch mogrify for each file
453
+ for img in *.jpg; do
454
+ mogrify -resize 800x "$img"
455
+ done
456
+
457
+ # Good: Process all files in one mogrify call
458
+ mogrify -resize 800x *.jpg
459
+
460
+ # Best: Use parallel processing for complex operations
461
+ parallel magick {} -resize 800x -quality 85 processed_{} ::: *.jpg
462
+ ```
463
+
464
+ ### Memory Management
465
+
466
+ ```bash
467
+ # Limit memory for batch processing
468
+ for img in *.jpg; do
469
+ magick -limit memory 2GB -limit map 4GB \
470
+ "$img" -resize 50% "output/$img"
471
+ done
472
+ ```
473
+
474
+ ### Progress Tracking
475
+
476
+ ```bash
477
+ # Show progress for long batch operations
478
+ total=$(ls *.jpg | wc -l)
479
+ current=0
480
+
481
+ for img in *.jpg; do
482
+ ((current++))
483
+ echo "Processing $current/$total: $img"
484
+ magick "$img" -resize 800x "output/$img"
485
+ done
486
+ ```
487
+
488
+ ## Automation Scripts
489
+
490
+ ### Complete Bash Script
491
+
492
+ ```bash
493
+ #!/bin/bash
494
+
495
+ # Configuration
496
+ INPUT_DIR="./input"
497
+ OUTPUT_DIR="./output"
498
+ QUALITY=85
499
+ MAX_WIDTH=1920
500
+ THUMBNAIL_SIZE=300
501
+
502
+ # Create output directories
503
+ mkdir -p "$OUTPUT_DIR"/{full,thumbnails}
504
+
505
+ # Process images
506
+ echo "Processing images..."
507
+ for img in "$INPUT_DIR"/*.{jpg,jpeg,png}; do
508
+ [ -f "$img" ] || continue
509
+
510
+ filename=$(basename "$img")
511
+ base="${filename%.*}"
512
+
513
+ # Full size
514
+ magick "$img" \
515
+ -resize ${MAX_WIDTH}x\> \
516
+ -quality $QUALITY \
517
+ -strip \
518
+ "$OUTPUT_DIR/full/${base}.jpg"
519
+
520
+ # Thumbnail
521
+ magick "$img" \
522
+ -thumbnail ${THUMBNAIL_SIZE}x${THUMBNAIL_SIZE} \
523
+ -quality 80 \
524
+ -strip \
525
+ "$OUTPUT_DIR/thumbnails/${base}_thumb.jpg"
526
+
527
+ echo "✓ $filename"
528
+ done
529
+
530
+ echo "Done!"
531
+ ```
532
+
533
+ ### Python Batch Script
534
+
535
+ ```python
536
+ #!/usr/bin/env python3
537
+ import os
538
+ import subprocess
539
+ from pathlib import Path
540
+
541
+ INPUT_DIR = Path("./input")
542
+ OUTPUT_DIR = Path("./output")
543
+ SIZES = [320, 640, 1024, 1920]
544
+
545
+ # Create output directories
546
+ for size in SIZES:
547
+ (OUTPUT_DIR / f"{size}w").mkdir(parents=True, exist_ok=True)
548
+
549
+ # Process images
550
+ for img in INPUT_DIR.glob("*.jpg"):
551
+ for size in SIZES:
552
+ output = OUTPUT_DIR / f"{size}w" / img.name
553
+ subprocess.run([
554
+ "magick", str(img),
555
+ "-resize", f"{size}x",
556
+ "-quality", "85",
557
+ "-strip",
558
+ str(output)
559
+ ])
560
+ print(f"✓ {img.name} -> {size}w")
561
+ ```
562
+
563
+ ## Common Batch Recipes
564
+
565
+ ### Social Media Sizes
566
+
567
+ ```bash
568
+ # Generate social media image sizes
569
+ for img in *.jpg; do
570
+ base="${img%.jpg}"
571
+
572
+ # Instagram square (1080×1080)
573
+ magick "$img" -resize 1080x1080^ -gravity center -extent 1080x1080 "${base}_ig_square.jpg"
574
+
575
+ # Instagram portrait (1080×1350)
576
+ magick "$img" -resize 1080x1350^ -gravity center -extent 1080x1350 "${base}_ig_portrait.jpg"
577
+
578
+ # Facebook post (1200×630)
579
+ magick "$img" -resize 1200x630^ -gravity center -extent 1200x630 "${base}_fb_post.jpg"
580
+
581
+ # Twitter post (1200×675)
582
+ magick "$img" -resize 1200x675^ -gravity center -extent 1200x675 "${base}_tw_post.jpg"
583
+ done
584
+ ```
585
+
586
+ ### Email Newsletter Images
587
+
588
+ ```bash
589
+ # Optimize images for email
590
+ mogrify -path ./email \
591
+ -resize 600x\> \
592
+ -quality 75 \
593
+ -strip \
594
+ -interlace Plane \
595
+ *.jpg
596
+ ```
597
+
598
+ ### Backup and Archive
599
+
600
+ ```bash
601
+ # Create web versions and keep originals
602
+ mkdir -p {originals,web}
603
+
604
+ # Move originals
605
+ mv *.jpg originals/
606
+
607
+ # Create optimized copies
608
+ for img in originals/*.jpg; do
609
+ base=$(basename "$img")
610
+ magick "$img" -resize 2000x2000\> -quality 85 -strip "web/$base"
611
+ done
612
+ ```