@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,450 +1,450 @@
1
- # Render Service Types
2
-
3
- Detailed explanation of each service type available on Render. Choose the right service type based on your application's needs.
4
-
5
- ## Web Services (`type: web`)
6
-
7
- ### Purpose
8
-
9
- Web services are HTTP servers that handle incoming requests from the internet. They're publicly accessible via HTTPS URLs.
10
-
11
- ### Use Cases
12
-
13
- - **REST APIs**: JSON APIs for mobile apps or frontend applications
14
- - **GraphQL servers**: GraphQL endpoints for client queries
15
- - **Web applications**: Server-rendered websites (Django, Rails, Express)
16
- - **Full-stack frameworks**: Next.js, Nuxt.js, Remix, SvelteKit
17
- - **WebSocket servers**: Real-time communication servers
18
- - **SSR applications**: Server-side rendered React, Vue, or Angular apps
19
-
20
- ### Key Characteristics
21
-
22
- - **Public URL**: Automatically assigned `https://[service-name].onrender.com`
23
- - **Port binding required**: Must bind to `0.0.0.0:$PORT`
24
- - **Health checks**: Render pings your service to verify it's running
25
- - **HTTPS**: Automatic SSL/TLS certificates
26
- - **Load balancing**: Traffic distributed across multiple instances
27
- - **Custom domains**: Support for your own domain names
28
-
29
- ### Required Configuration
30
-
31
- ```yaml
32
- type: web
33
- name: my-api
34
- runtime: node
35
- buildCommand: npm ci
36
- startCommand: npm start
37
- ```
38
-
39
- ### Best Practices
40
-
41
- 1. **Bind to environment PORT**:
42
- ```javascript
43
- const PORT = process.env.PORT || 3000;
44
- app.listen(PORT, '0.0.0.0');
45
- ```
46
-
47
- 2. **Add health check endpoint**:
48
- ```javascript
49
- app.get('/health', (req, res) => {
50
- res.status(200).json({ status: 'ok' });
51
- });
52
- ```
53
-
54
- 3. **Use appropriate timeouts**: Web requests should complete within 30 seconds
55
-
56
- 4. **Implement graceful shutdown**: Handle SIGTERM signals properly
57
-
58
- ---
59
-
60
- ## Worker Services (`type: worker`)
61
-
62
- ### Purpose
63
-
64
- Worker services run background tasks without handling HTTP requests. They're not publicly accessible.
65
-
66
- ### Use Cases
67
-
68
- - **Queue processors**: Redis queue, BullMQ, Celery, Sidekiq
69
- - **Background jobs**: Email sending, image processing, data exports
70
- - **Event consumers**: Message queue consumers (Kafka, RabbitMQ, etc.)
71
- - **Data pipeline workers**: ETL processes, data transformation
72
- - **Scheduled background tasks**: Continuous processes (not cron)
73
- - **WebSocket backend**: Dedicated WebSocket handler services
74
-
75
- ### Key Characteristics
76
-
77
- - **No public URL**: Not accessible from internet
78
- - **No port binding**: Doesn't need to listen on a port
79
- - **No health checks**: Render monitors process health differently
80
- - **Long-running**: Can run indefinitely
81
- - **Private communication**: Access via internal networking
82
- - **Restart on crash**: Automatically restarted if process dies
83
-
84
- ### Required Configuration
85
-
86
- ```yaml
87
- type: worker
88
- name: queue-processor
89
- runtime: python
90
- buildCommand: pip install -r requirements.txt
91
- startCommand: celery -A tasks worker --loglevel=info
92
- ```
93
-
94
- ### Best Practices
95
-
96
- 1. **Connect to message queue**:
97
- ```python
98
- import redis
99
- r = redis.from_url(os.environ['REDIS_URL'])
100
- ```
101
-
102
- 2. **Implement retry logic**: Handle failures gracefully
103
-
104
- 3. **Monitor queue depth**: Track pending jobs
105
-
106
- 4. **Log processing status**: Make debugging easier
107
-
108
- 5. **Graceful shutdown**: Finish current jobs before exiting
109
-
110
- ### Common Patterns
111
-
112
- **Node.js with BullMQ:**
113
- ```yaml
114
- type: worker
115
- name: job-processor
116
- runtime: node
117
- buildCommand: npm ci
118
- startCommand: node worker.js
119
- envVars:
120
- - key: REDIS_URL
121
- fromDatabase:
122
- name: redis
123
- property: connectionString
124
- ```
125
-
126
- **Python with Celery:**
127
- ```yaml
128
- type: worker
129
- name: celery-worker
130
- runtime: python
131
- buildCommand: pip install -r requirements.txt
132
- startCommand: celery -A app.celery worker
133
- envVars:
134
- - key: REDIS_URL
135
- fromDatabase:
136
- name: redis
137
- property: connectionString
138
- ```
139
-
140
- ---
141
-
142
- ## Cron Jobs (`type: cron`)
143
-
144
- ### Purpose
145
-
146
- Cron jobs run scheduled tasks on a repeating schedule. They execute, complete, and shut down.
147
-
148
- ### Use Cases
149
-
150
- - **Database backups**: Regular automated backups
151
- - **Report generation**: Daily/weekly reports
152
- - **Data cleanup**: Delete old records periodically
153
- - **Cache warming**: Pre-populate caches
154
- - **Email digests**: Send scheduled email summaries
155
- - **Data synchronization**: Sync between systems
156
- - **Batch processing**: Process accumulated data
157
-
158
- ### Key Characteristics
159
-
160
- - **Scheduled execution**: Runs on cron schedule
161
- - **Automatic shutdown**: Shuts down after completing
162
- - **No persistent port**: Doesn't maintain listening port
163
- - **No health checks**: Task either completes or fails
164
- - **UTC timezone**: All schedules in UTC
165
- - **Maximum runtime**: Jobs timeout after configured limit
166
-
167
- ### Required Configuration
168
-
169
- ```yaml
170
- type: cron
171
- name: daily-backup
172
- runtime: node
173
- schedule: "0 2 * * *" # Daily at 2 AM UTC
174
- buildCommand: npm ci
175
- startCommand: node scripts/backup.js
176
- ```
177
-
178
- ### Schedule Format
179
-
180
- Standard cron syntax: `minute hour day month weekday`
181
-
182
- **Common schedules:**
183
-
184
- | Schedule | Description |
185
- |----------|-------------|
186
- | `*/5 * * * *` | Every 5 minutes |
187
- | `0 * * * *` | Every hour |
188
- | `0 0 * * *` | Daily at midnight UTC |
189
- | `0 9 * * 1-5` | Weekdays at 9 AM UTC |
190
- | `0 0 1 * *` | First day of each month |
191
- | `0 9 * * 1` | Every Monday at 9 AM UTC |
192
-
193
- ### Best Practices
194
-
195
- 1. **Handle failures gracefully**: Jobs should be idempotent
196
-
197
- 2. **Log completion status**: Track success/failure
198
-
199
- 3. **Set appropriate timeouts**: Match expected job duration
200
-
201
- 4. **Use UTC times**: All schedules are UTC-based
202
-
203
- 5. **Test thoroughly**: Test with different data scenarios
204
-
205
- ### Example Use Cases
206
-
207
- **Daily Database Backup:**
208
- ```yaml
209
- type: cron
210
- name: db-backup
211
- runtime: python
212
- schedule: "0 1 * * *" # 1 AM UTC daily
213
- buildCommand: pip install -r requirements.txt
214
- startCommand: python scripts/backup.py
215
- envVars:
216
- - key: DATABASE_URL
217
- fromDatabase:
218
- name: postgres
219
- property: connectionString
220
- - key: S3_BUCKET
221
- value: my-backups
222
- ```
223
-
224
- **Hourly Cache Refresh:**
225
- ```yaml
226
- type: cron
227
- name: cache-refresh
228
- runtime: node
229
- schedule: "0 * * * *" # Top of every hour
230
- buildCommand: npm ci
231
- startCommand: node scripts/refresh-cache.js
232
- ```
233
-
234
- ---
235
-
236
- ## Static Sites (`type: web` + `runtime: static`)
237
-
238
- ### Purpose
239
-
240
- Serve static HTML, CSS, and JavaScript files via CDN. No backend runtime.
241
-
242
- ### Use Cases
243
-
244
- - **Single Page Applications (SPAs)**: React, Vue, Angular apps
245
- - **Static site generators**: Gatsby, Next.js (static export), Hugo
246
- - **Documentation sites**: MkDocs, Docusaurus, VitePress
247
- - **Landing pages**: Marketing sites
248
- - **Portfolio sites**: Personal websites
249
- - **JAMstack sites**: Static sites with API integration
250
-
251
- ### Key Characteristics
252
-
253
- - **CDN delivery**: Global edge caching
254
- - **No backend runtime**: Only serves built files
255
- - **Build output only**: Serves contents of build directory
256
- - **Routing support**: Rewrite rules for SPA routing
257
- - **Custom headers**: Cache control, security headers
258
- - **Fast deployment**: Quick to build and deploy
259
-
260
- ### Required Configuration
261
-
262
- ```yaml
263
- type: web
264
- name: frontend
265
- runtime: static
266
- buildCommand: npm ci && npm run build
267
- staticPublishPath: ./dist # or ./build, ./out, ./public
268
- ```
269
-
270
- ### Routing for SPAs
271
-
272
- Single Page Applications need rewrite rules to handle client-side routing:
273
-
274
- ```yaml
275
- type: web
276
- name: react-app
277
- runtime: static
278
- buildCommand: npm ci && npm run build
279
- staticPublishPath: ./build
280
- routes:
281
- - type: rewrite
282
- source: /*
283
- destination: /index.html
284
- ```
285
-
286
- ### Custom Headers
287
-
288
- Add cache control and security headers:
289
-
290
- ```yaml
291
- type: web
292
- name: static-site
293
- runtime: static
294
- buildCommand: npm ci && npm run build
295
- staticPublishPath: ./dist
296
- headers:
297
- # Cache static assets
298
- - path: /static/*
299
- name: Cache-Control
300
- value: public, max-age=31536000, immutable
301
-
302
- # Security headers
303
- - path: /*
304
- name: X-Frame-Options
305
- value: DENY
306
- - path: /*
307
- name: X-Content-Type-Options
308
- value: nosniff
309
- ```
310
-
311
- ### Build Filters
312
-
313
- For monorepos, only build when frontend files change:
314
-
315
- ```yaml
316
- type: web
317
- name: frontend
318
- runtime: static
319
- buildCommand: npm ci && npm run build
320
- staticPublishPath: ./dist
321
- buildFilter:
322
- paths:
323
- - frontend/**
324
- ignoredPaths:
325
- - frontend/**/*.test.js
326
- - frontend/README.md
327
- ```
328
-
329
- ### Best Practices
330
-
331
- 1. **Optimize build output**: Minify, compress, tree-shake
332
-
333
- 2. **Use proper cache headers**: Long cache for hashed assets
334
-
335
- 3. **Add security headers**: Protect against common attacks
336
-
337
- 4. **Configure SPA routing**: Add rewrite rules for client routing
338
-
339
- 5. **Handle 404s**: Create custom 404.html page
340
-
341
- ---
342
-
343
- ## Private Services (`type: pserv`)
344
-
345
- ### Purpose
346
-
347
- Internal services accessible only within your Render account. Not exposed to the internet.
348
-
349
- ### Use Cases
350
-
351
- - **Internal APIs**: Services accessed only by other services
352
- - **Database proxies**: Connection pools, read replicas
353
- - **Microservices**: Service mesh architectures
354
- - **Admin tools**: Internal dashboards
355
- - **Cache layers**: Internal caching services
356
- - **Message brokers**: Internal message queues
357
-
358
- ### Key Characteristics
359
-
360
- - **No public URL**: Only accessible via internal DNS
361
- - **Internal networking**: Fast, low-latency connections
362
- - **Port binding required**: Must bind to `0.0.0.0:$PORT`
363
- - **Private DNS**: `[service-name].render-internal.com`
364
- - **Same-account only**: Only accessible from same account
365
- - **No internet access**: Traffic stays within Render network
366
-
367
- ### Required Configuration
368
-
369
- ```yaml
370
- type: pserv
371
- name: internal-api
372
- runtime: node
373
- buildCommand: npm ci
374
- startCommand: npm start
375
- ```
376
-
377
- ### Accessing Private Services
378
-
379
- From other services in the same account:
380
-
381
- ```javascript
382
- // Use .render-internal.com domain
383
- const API_URL = 'http://internal-api.render-internal.com:10000';
384
- ```
385
-
386
- Or use service references:
387
-
388
- ```yaml
389
- services:
390
- - type: web
391
- name: frontend
392
- runtime: node
393
- envVars:
394
- - key: INTERNAL_API_URL
395
- fromService:
396
- name: internal-api
397
- type: pserv
398
- property: hostport
399
- ```
400
-
401
- ### Best Practices
402
-
403
- 1. **Use internal DNS**: Always use `.render-internal.com` domains
404
-
405
- 2. **No authentication needed**: Already isolated to account
406
-
407
- 3. **Fast communication**: Low latency between services
408
-
409
- 4. **Simplify architecture**: No need for external load balancers
410
-
411
- ---
412
-
413
- ## Comparison Table
414
-
415
- | Feature | Web | Worker | Cron | Static | Private |
416
- |---------|-----|--------|------|--------|---------|
417
- | Public URL | ✅ Yes | ❌ No | ❌ No | ✅ Yes | ❌ No |
418
- | Port Binding | ✅ Required | ❌ Not needed | ❌ Not needed | ❌ N/A | ✅ Required |
419
- | Health Checks | ✅ Yes | ❌ No | ❌ No | ❌ N/A | ✅ Yes |
420
- | Runtime | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No | ✅ Yes |
421
- | Persistent | ✅ Yes | ✅ Yes | ❌ No | ✅ Yes | ✅ Yes |
422
- | Scaling | ✅ Yes | ✅ Yes | ❌ No | ✅ Yes | ✅ Yes |
423
- | Use Case | HTTP servers | Background jobs | Scheduled tasks | Static files | Internal services |
424
-
425
- ## Choosing the Right Service Type
426
-
427
- **Use Web Service when:**
428
- - Your app handles HTTP requests
429
- - Users need to access it via URL
430
- - You need load balancing and scaling
431
-
432
- **Use Worker Service when:**
433
- - Processing background jobs
434
- - Consuming from message queues
435
- - Running long-lived processes without HTTP
436
-
437
- **Use Cron Job when:**
438
- - Running scheduled tasks
439
- - Processing doesn't need to be always-on
440
- - Tasks run periodically (hourly, daily, weekly)
441
-
442
- **Use Static Site when:**
443
- - Serving pre-built HTML/CSS/JS
444
- - No backend processing needed
445
- - Want CDN caching and fast delivery
446
-
447
- **Use Private Service when:**
448
- - Service only accessed by other services
449
- - Want internal-only communication
450
- - Building microservice architectures
1
+ # Render Service Types
2
+
3
+ Detailed explanation of each service type available on Render. Choose the right service type based on your application's needs.
4
+
5
+ ## Web Services (`type: web`)
6
+
7
+ ### Purpose
8
+
9
+ Web services are HTTP servers that handle incoming requests from the internet. They're publicly accessible via HTTPS URLs.
10
+
11
+ ### Use Cases
12
+
13
+ - **REST APIs**: JSON APIs for mobile apps or frontend applications
14
+ - **GraphQL servers**: GraphQL endpoints for client queries
15
+ - **Web applications**: Server-rendered websites (Django, Rails, Express)
16
+ - **Full-stack frameworks**: Next.js, Nuxt.js, Remix, SvelteKit
17
+ - **WebSocket servers**: Real-time communication servers
18
+ - **SSR applications**: Server-side rendered React, Vue, or Angular apps
19
+
20
+ ### Key Characteristics
21
+
22
+ - **Public URL**: Automatically assigned `https://[service-name].onrender.com`
23
+ - **Port binding required**: Must bind to `0.0.0.0:$PORT`
24
+ - **Health checks**: Render pings your service to verify it's running
25
+ - **HTTPS**: Automatic SSL/TLS certificates
26
+ - **Load balancing**: Traffic distributed across multiple instances
27
+ - **Custom domains**: Support for your own domain names
28
+
29
+ ### Required Configuration
30
+
31
+ ```yaml
32
+ type: web
33
+ name: my-api
34
+ runtime: node
35
+ buildCommand: npm ci
36
+ startCommand: npm start
37
+ ```
38
+
39
+ ### Best Practices
40
+
41
+ 1. **Bind to environment PORT**:
42
+ ```javascript
43
+ const PORT = process.env.PORT || 3000;
44
+ app.listen(PORT, '0.0.0.0');
45
+ ```
46
+
47
+ 2. **Add health check endpoint**:
48
+ ```javascript
49
+ app.get('/health', (req, res) => {
50
+ res.status(200).json({ status: 'ok' });
51
+ });
52
+ ```
53
+
54
+ 3. **Use appropriate timeouts**: Web requests should complete within 30 seconds
55
+
56
+ 4. **Implement graceful shutdown**: Handle SIGTERM signals properly
57
+
58
+ ---
59
+
60
+ ## Worker Services (`type: worker`)
61
+
62
+ ### Purpose
63
+
64
+ Worker services run background tasks without handling HTTP requests. They're not publicly accessible.
65
+
66
+ ### Use Cases
67
+
68
+ - **Queue processors**: Redis queue, BullMQ, Celery, Sidekiq
69
+ - **Background jobs**: Email sending, image processing, data exports
70
+ - **Event consumers**: Message queue consumers (Kafka, RabbitMQ, etc.)
71
+ - **Data pipeline workers**: ETL processes, data transformation
72
+ - **Scheduled background tasks**: Continuous processes (not cron)
73
+ - **WebSocket backend**: Dedicated WebSocket handler services
74
+
75
+ ### Key Characteristics
76
+
77
+ - **No public URL**: Not accessible from internet
78
+ - **No port binding**: Doesn't need to listen on a port
79
+ - **No health checks**: Render monitors process health differently
80
+ - **Long-running**: Can run indefinitely
81
+ - **Private communication**: Access via internal networking
82
+ - **Restart on crash**: Automatically restarted if process dies
83
+
84
+ ### Required Configuration
85
+
86
+ ```yaml
87
+ type: worker
88
+ name: queue-processor
89
+ runtime: python
90
+ buildCommand: pip install -r requirements.txt
91
+ startCommand: celery -A tasks worker --loglevel=info
92
+ ```
93
+
94
+ ### Best Practices
95
+
96
+ 1. **Connect to message queue**:
97
+ ```python
98
+ import redis
99
+ r = redis.from_url(os.environ['REDIS_URL'])
100
+ ```
101
+
102
+ 2. **Implement retry logic**: Handle failures gracefully
103
+
104
+ 3. **Monitor queue depth**: Track pending jobs
105
+
106
+ 4. **Log processing status**: Make debugging easier
107
+
108
+ 5. **Graceful shutdown**: Finish current jobs before exiting
109
+
110
+ ### Common Patterns
111
+
112
+ **Node.js with BullMQ:**
113
+ ```yaml
114
+ type: worker
115
+ name: job-processor
116
+ runtime: node
117
+ buildCommand: npm ci
118
+ startCommand: node worker.js
119
+ envVars:
120
+ - key: REDIS_URL
121
+ fromDatabase:
122
+ name: redis
123
+ property: connectionString
124
+ ```
125
+
126
+ **Python with Celery:**
127
+ ```yaml
128
+ type: worker
129
+ name: celery-worker
130
+ runtime: python
131
+ buildCommand: pip install -r requirements.txt
132
+ startCommand: celery -A app.celery worker
133
+ envVars:
134
+ - key: REDIS_URL
135
+ fromDatabase:
136
+ name: redis
137
+ property: connectionString
138
+ ```
139
+
140
+ ---
141
+
142
+ ## Cron Jobs (`type: cron`)
143
+
144
+ ### Purpose
145
+
146
+ Cron jobs run scheduled tasks on a repeating schedule. They execute, complete, and shut down.
147
+
148
+ ### Use Cases
149
+
150
+ - **Database backups**: Regular automated backups
151
+ - **Report generation**: Daily/weekly reports
152
+ - **Data cleanup**: Delete old records periodically
153
+ - **Cache warming**: Pre-populate caches
154
+ - **Email digests**: Send scheduled email summaries
155
+ - **Data synchronization**: Sync between systems
156
+ - **Batch processing**: Process accumulated data
157
+
158
+ ### Key Characteristics
159
+
160
+ - **Scheduled execution**: Runs on cron schedule
161
+ - **Automatic shutdown**: Shuts down after completing
162
+ - **No persistent port**: Doesn't maintain listening port
163
+ - **No health checks**: Task either completes or fails
164
+ - **UTC timezone**: All schedules in UTC
165
+ - **Maximum runtime**: Jobs timeout after configured limit
166
+
167
+ ### Required Configuration
168
+
169
+ ```yaml
170
+ type: cron
171
+ name: daily-backup
172
+ runtime: node
173
+ schedule: "0 2 * * *" # Daily at 2 AM UTC
174
+ buildCommand: npm ci
175
+ startCommand: node scripts/backup.js
176
+ ```
177
+
178
+ ### Schedule Format
179
+
180
+ Standard cron syntax: `minute hour day month weekday`
181
+
182
+ **Common schedules:**
183
+
184
+ | Schedule | Description |
185
+ |----------|-------------|
186
+ | `*/5 * * * *` | Every 5 minutes |
187
+ | `0 * * * *` | Every hour |
188
+ | `0 0 * * *` | Daily at midnight UTC |
189
+ | `0 9 * * 1-5` | Weekdays at 9 AM UTC |
190
+ | `0 0 1 * *` | First day of each month |
191
+ | `0 9 * * 1` | Every Monday at 9 AM UTC |
192
+
193
+ ### Best Practices
194
+
195
+ 1. **Handle failures gracefully**: Jobs should be idempotent
196
+
197
+ 2. **Log completion status**: Track success/failure
198
+
199
+ 3. **Set appropriate timeouts**: Match expected job duration
200
+
201
+ 4. **Use UTC times**: All schedules are UTC-based
202
+
203
+ 5. **Test thoroughly**: Test with different data scenarios
204
+
205
+ ### Example Use Cases
206
+
207
+ **Daily Database Backup:**
208
+ ```yaml
209
+ type: cron
210
+ name: db-backup
211
+ runtime: python
212
+ schedule: "0 1 * * *" # 1 AM UTC daily
213
+ buildCommand: pip install -r requirements.txt
214
+ startCommand: python scripts/backup.py
215
+ envVars:
216
+ - key: DATABASE_URL
217
+ fromDatabase:
218
+ name: postgres
219
+ property: connectionString
220
+ - key: S3_BUCKET
221
+ value: my-backups
222
+ ```
223
+
224
+ **Hourly Cache Refresh:**
225
+ ```yaml
226
+ type: cron
227
+ name: cache-refresh
228
+ runtime: node
229
+ schedule: "0 * * * *" # Top of every hour
230
+ buildCommand: npm ci
231
+ startCommand: node scripts/refresh-cache.js
232
+ ```
233
+
234
+ ---
235
+
236
+ ## Static Sites (`type: web` + `runtime: static`)
237
+
238
+ ### Purpose
239
+
240
+ Serve static HTML, CSS, and JavaScript files via CDN. No backend runtime.
241
+
242
+ ### Use Cases
243
+
244
+ - **Single Page Applications (SPAs)**: React, Vue, Angular apps
245
+ - **Static site generators**: Gatsby, Next.js (static export), Hugo
246
+ - **Documentation sites**: MkDocs, Docusaurus, VitePress
247
+ - **Landing pages**: Marketing sites
248
+ - **Portfolio sites**: Personal websites
249
+ - **JAMstack sites**: Static sites with API integration
250
+
251
+ ### Key Characteristics
252
+
253
+ - **CDN delivery**: Global edge caching
254
+ - **No backend runtime**: Only serves built files
255
+ - **Build output only**: Serves contents of build directory
256
+ - **Routing support**: Rewrite rules for SPA routing
257
+ - **Custom headers**: Cache control, security headers
258
+ - **Fast deployment**: Quick to build and deploy
259
+
260
+ ### Required Configuration
261
+
262
+ ```yaml
263
+ type: web
264
+ name: frontend
265
+ runtime: static
266
+ buildCommand: npm ci && npm run build
267
+ staticPublishPath: ./dist # or ./build, ./out, ./public
268
+ ```
269
+
270
+ ### Routing for SPAs
271
+
272
+ Single Page Applications need rewrite rules to handle client-side routing:
273
+
274
+ ```yaml
275
+ type: web
276
+ name: react-app
277
+ runtime: static
278
+ buildCommand: npm ci && npm run build
279
+ staticPublishPath: ./build
280
+ routes:
281
+ - type: rewrite
282
+ source: /*
283
+ destination: /index.html
284
+ ```
285
+
286
+ ### Custom Headers
287
+
288
+ Add cache control and security headers:
289
+
290
+ ```yaml
291
+ type: web
292
+ name: static-site
293
+ runtime: static
294
+ buildCommand: npm ci && npm run build
295
+ staticPublishPath: ./dist
296
+ headers:
297
+ # Cache static assets
298
+ - path: /static/*
299
+ name: Cache-Control
300
+ value: public, max-age=31536000, immutable
301
+
302
+ # Security headers
303
+ - path: /*
304
+ name: X-Frame-Options
305
+ value: DENY
306
+ - path: /*
307
+ name: X-Content-Type-Options
308
+ value: nosniff
309
+ ```
310
+
311
+ ### Build Filters
312
+
313
+ For monorepos, only build when frontend files change:
314
+
315
+ ```yaml
316
+ type: web
317
+ name: frontend
318
+ runtime: static
319
+ buildCommand: npm ci && npm run build
320
+ staticPublishPath: ./dist
321
+ buildFilter:
322
+ paths:
323
+ - frontend/**
324
+ ignoredPaths:
325
+ - frontend/**/*.test.js
326
+ - frontend/README.md
327
+ ```
328
+
329
+ ### Best Practices
330
+
331
+ 1. **Optimize build output**: Minify, compress, tree-shake
332
+
333
+ 2. **Use proper cache headers**: Long cache for hashed assets
334
+
335
+ 3. **Add security headers**: Protect against common attacks
336
+
337
+ 4. **Configure SPA routing**: Add rewrite rules for client routing
338
+
339
+ 5. **Handle 404s**: Create custom 404.html page
340
+
341
+ ---
342
+
343
+ ## Private Services (`type: pserv`)
344
+
345
+ ### Purpose
346
+
347
+ Internal services accessible only within your Render account. Not exposed to the internet.
348
+
349
+ ### Use Cases
350
+
351
+ - **Internal APIs**: Services accessed only by other services
352
+ - **Database proxies**: Connection pools, read replicas
353
+ - **Microservices**: Service mesh architectures
354
+ - **Admin tools**: Internal dashboards
355
+ - **Cache layers**: Internal caching services
356
+ - **Message brokers**: Internal message queues
357
+
358
+ ### Key Characteristics
359
+
360
+ - **No public URL**: Only accessible via internal DNS
361
+ - **Internal networking**: Fast, low-latency connections
362
+ - **Port binding required**: Must bind to `0.0.0.0:$PORT`
363
+ - **Private DNS**: `[service-name].render-internal.com`
364
+ - **Same-account only**: Only accessible from same account
365
+ - **No internet access**: Traffic stays within Render network
366
+
367
+ ### Required Configuration
368
+
369
+ ```yaml
370
+ type: pserv
371
+ name: internal-api
372
+ runtime: node
373
+ buildCommand: npm ci
374
+ startCommand: npm start
375
+ ```
376
+
377
+ ### Accessing Private Services
378
+
379
+ From other services in the same account:
380
+
381
+ ```javascript
382
+ // Use .render-internal.com domain
383
+ const API_URL = 'http://internal-api.render-internal.com:10000';
384
+ ```
385
+
386
+ Or use service references:
387
+
388
+ ```yaml
389
+ services:
390
+ - type: web
391
+ name: frontend
392
+ runtime: node
393
+ envVars:
394
+ - key: INTERNAL_API_URL
395
+ fromService:
396
+ name: internal-api
397
+ type: pserv
398
+ property: hostport
399
+ ```
400
+
401
+ ### Best Practices
402
+
403
+ 1. **Use internal DNS**: Always use `.render-internal.com` domains
404
+
405
+ 2. **No authentication needed**: Already isolated to account
406
+
407
+ 3. **Fast communication**: Low latency between services
408
+
409
+ 4. **Simplify architecture**: No need for external load balancers
410
+
411
+ ---
412
+
413
+ ## Comparison Table
414
+
415
+ | Feature | Web | Worker | Cron | Static | Private |
416
+ |---------|-----|--------|------|--------|---------|
417
+ | Public URL | ✅ Yes | ❌ No | ❌ No | ✅ Yes | ❌ No |
418
+ | Port Binding | ✅ Required | ❌ Not needed | ❌ Not needed | ❌ N/A | ✅ Required |
419
+ | Health Checks | ✅ Yes | ❌ No | ❌ No | ❌ N/A | ✅ Yes |
420
+ | Runtime | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No | ✅ Yes |
421
+ | Persistent | ✅ Yes | ✅ Yes | ❌ No | ✅ Yes | ✅ Yes |
422
+ | Scaling | ✅ Yes | ✅ Yes | ❌ No | ✅ Yes | ✅ Yes |
423
+ | Use Case | HTTP servers | Background jobs | Scheduled tasks | Static files | Internal services |
424
+
425
+ ## Choosing the Right Service Type
426
+
427
+ **Use Web Service when:**
428
+ - Your app handles HTTP requests
429
+ - Users need to access it via URL
430
+ - You need load balancing and scaling
431
+
432
+ **Use Worker Service when:**
433
+ - Processing background jobs
434
+ - Consuming from message queues
435
+ - Running long-lived processes without HTTP
436
+
437
+ **Use Cron Job when:**
438
+ - Running scheduled tasks
439
+ - Processing doesn't need to be always-on
440
+ - Tasks run periodically (hourly, daily, weekly)
441
+
442
+ **Use Static Site when:**
443
+ - Serving pre-built HTML/CSS/JS
444
+ - No backend processing needed
445
+ - Want CDN caching and fast delivery
446
+
447
+ **Use Private Service when:**
448
+ - Service only accessed by other services
449
+ - Want internal-only communication
450
+ - Building microservice architectures