agent-skill-kit 3.9.135

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 (615) hide show
  1. package/.agent/global.d.ts +80 -0
  2. package/.agent/rules/GEMINI.md +210 -0
  3. package/.agent/rules/autopilot.md +287 -0
  4. package/.agent/rules/code-rules.md +227 -0
  5. package/.agent/scripts/audit_workflows.ts +23 -0
  6. package/.agent/scripts/auto_preview.ts +170 -0
  7. package/.agent/scripts/checklist.ts +180 -0
  8. package/.agent/scripts/compile-agents.ts +237 -0
  9. package/.agent/scripts/fix_skills.ts +49 -0
  10. package/.agent/scripts/session_manager.ts +222 -0
  11. package/.agent/scripts/skill-audit.ts +255 -0
  12. package/.agent/scripts/sync_workflows.ts +54 -0
  13. package/.agent/scripts/utils/colors.ts +58 -0
  14. package/.agent/scripts/utils/process-manager.ts +131 -0
  15. package/.agent/scripts/utils/reporter.ts +192 -0
  16. package/.agent/scripts/utils/runner.ts +128 -0
  17. package/.agent/scripts/verify_all.ts +243 -0
  18. package/.agent/scripts/version-sync.ts +256 -0
  19. package/.agent/skills/SKILL_INDEX.md +129 -0
  20. package/.agent/skills/agent-browser/AGENTS.md +728 -0
  21. package/.agent/skills/agent-browser/SKILL.md +193 -0
  22. package/.agent/skills/agent-browser/rules/_sections.md +15 -0
  23. package/.agent/skills/agent-browser/rules/_template.md +32 -0
  24. package/.agent/skills/agent-browser/rules/engineering-spec.md +528 -0
  25. package/.agent/skills/agent-browser/scripts/browser_cli.ts +52 -0
  26. package/.agent/skills/agent-browser/scripts/session_manager.ts +166 -0
  27. package/.agent/skills/ai-artist/AGENTS.md +1082 -0
  28. package/.agent/skills/ai-artist/SKILL.md +186 -0
  29. package/.agent/skills/ai-artist/rules/_sections.md +30 -0
  30. package/.agent/skills/ai-artist/rules/_template.md +32 -0
  31. package/.agent/skills/ai-artist/rules/domain-code.md +118 -0
  32. package/.agent/skills/ai-artist/rules/domain-marketing.md +105 -0
  33. package/.agent/skills/ai-artist/rules/engineering-spec.md +519 -0
  34. package/.agent/skills/ai-artist/rules/image-prompts.md +195 -0
  35. package/.agent/skills/ai-artist/rules/model-syntax.md +115 -0
  36. package/.agent/skills/ai-artist/scripts/prompt_compiler.ts +72 -0
  37. package/.agent/skills/ai-artist/templates/image-core.txt +1 -0
  38. package/.agent/skills/ai-artist/templates/llm-core.txt +6 -0
  39. package/.agent/skills/api-architect/AGENTS.md +1896 -0
  40. package/.agent/skills/api-architect/SKILL.md +173 -0
  41. package/.agent/skills/api-architect/rules/_sections.md +35 -0
  42. package/.agent/skills/api-architect/rules/_template.md +32 -0
  43. package/.agent/skills/api-architect/rules/api-style.md +115 -0
  44. package/.agent/skills/api-architect/rules/auth.md +134 -0
  45. package/.agent/skills/api-architect/rules/documentation.md +131 -0
  46. package/.agent/skills/api-architect/rules/engineering-spec.md +505 -0
  47. package/.agent/skills/api-architect/rules/graphql.md +154 -0
  48. package/.agent/skills/api-architect/rules/rate-limiting.md +76 -0
  49. package/.agent/skills/api-architect/rules/response.md +138 -0
  50. package/.agent/skills/api-architect/rules/rest.md +113 -0
  51. package/.agent/skills/api-architect/rules/security-testing.md +146 -0
  52. package/.agent/skills/api-architect/rules/trpc.md +129 -0
  53. package/.agent/skills/api-architect/rules/versioning.md +100 -0
  54. package/.agent/skills/api-architect/scripts/api_validator.ts +413 -0
  55. package/.agent/skills/auth-patterns/AGENTS.md +1830 -0
  56. package/.agent/skills/auth-patterns/SKILL.md +163 -0
  57. package/.agent/skills/auth-patterns/rules/_sections.md +30 -0
  58. package/.agent/skills/auth-patterns/rules/_template.md +32 -0
  59. package/.agent/skills/auth-patterns/rules/engineering-spec.md +515 -0
  60. package/.agent/skills/auth-patterns/rules/jwt-deep.md +196 -0
  61. package/.agent/skills/auth-patterns/rules/mfa.md +174 -0
  62. package/.agent/skills/auth-patterns/rules/oauth2.md +134 -0
  63. package/.agent/skills/auth-patterns/rules/passkey.md +243 -0
  64. package/.agent/skills/auth-patterns/rules/rbac-abac.md +206 -0
  65. package/.agent/skills/auth-patterns/rules/session.md +183 -0
  66. package/.agent/skills/auth-patterns/scripts/auth_validator.ts +121 -0
  67. package/.agent/skills/chrome-devtools/AGENTS.md +952 -0
  68. package/.agent/skills/chrome-devtools/SKILL.md +160 -0
  69. package/.agent/skills/chrome-devtools/rules/_sections.md +25 -0
  70. package/.agent/skills/chrome-devtools/rules/_template.md +32 -0
  71. package/.agent/skills/chrome-devtools/rules/aria-snapshot.md +95 -0
  72. package/.agent/skills/chrome-devtools/rules/engineering-spec.md +510 -0
  73. package/.agent/skills/chrome-devtools/rules/scripts-guide.md +174 -0
  74. package/.agent/skills/chrome-devtools/scripts/aria-snapshot.ts +3 -0
  75. package/.agent/skills/chrome-devtools/scripts/click.ts +3 -0
  76. package/.agent/skills/chrome-devtools/scripts/console.ts +3 -0
  77. package/.agent/skills/chrome-devtools/scripts/core_cli.ts +79 -0
  78. package/.agent/skills/chrome-devtools/scripts/evaluate.ts +3 -0
  79. package/.agent/skills/chrome-devtools/scripts/fill.ts +3 -0
  80. package/.agent/skills/chrome-devtools/scripts/navigate.ts +3 -0
  81. package/.agent/skills/chrome-devtools/scripts/network.ts +3 -0
  82. package/.agent/skills/chrome-devtools/scripts/performance.ts +3 -0
  83. package/.agent/skills/chrome-devtools/scripts/screenshot.ts +3 -0
  84. package/.agent/skills/chrome-devtools/scripts/select-ref.ts +3 -0
  85. package/.agent/skills/cicd-pipeline/AGENTS.md +809 -0
  86. package/.agent/skills/cicd-pipeline/SKILL.md +164 -0
  87. package/.agent/skills/cicd-pipeline/rules/_sections.md +15 -0
  88. package/.agent/skills/cicd-pipeline/rules/_template.md +32 -0
  89. package/.agent/skills/cicd-pipeline/rules/engineering-spec.md +477 -0
  90. package/.agent/skills/cicd-pipeline/scripts/flag-manager.ts +253 -0
  91. package/.agent/skills/cicd-pipeline/scripts/pipeline_validator.ts +133 -0
  92. package/.agent/skills/code-constitution/AGENTS.md +597 -0
  93. package/.agent/skills/code-constitution/CHANGELOG.md +216 -0
  94. package/.agent/skills/code-constitution/SKILL.md +191 -0
  95. package/.agent/skills/code-constitution/VERSION +3 -0
  96. package/.agent/skills/code-constitution/examples/violation-backend-mutation/after.tsx +59 -0
  97. package/.agent/skills/code-constitution/examples/violation-backend-mutation/before.tsx +42 -0
  98. package/.agent/skills/code-constitution/examples/violation-backend-mutation/explanation.md +91 -0
  99. package/.agent/skills/code-constitution/examples/violation-chart-injection/after.tsx +99 -0
  100. package/.agent/skills/code-constitution/examples/violation-chart-injection/before.tsx +57 -0
  101. package/.agent/skills/code-constitution/examples/violation-chart-injection/explanation.md +120 -0
  102. package/.agent/skills/code-constitution/knowledge/lessons-learned.yaml +3 -0
  103. package/.agent/skills/code-constitution/metadata/precedence.yaml +117 -0
  104. package/.agent/skills/code-constitution/metadata/scope-map.yaml +156 -0
  105. package/.agent/skills/code-constitution/proposals/v1.1-change-proposal-template.md +201 -0
  106. package/.agent/skills/code-constitution/resources/AUTHORITY_MODEL.md +115 -0
  107. package/.agent/skills/code-constitution/resources/ENFORCEMENT_GUIDE.md +246 -0
  108. package/.agent/skills/code-constitution/resources/LOAD_ORDER.md +86 -0
  109. package/.agent/skills/code-constitution/rules/_sections.md +15 -0
  110. package/.agent/skills/code-constitution/rules/_template.md +32 -0
  111. package/.agent/skills/code-constitution/rules/constitution/master-constitution.md +210 -0
  112. package/.agent/skills/code-constitution/rules/doctrines/architecture/architecture-doctrine.md +188 -0
  113. package/.agent/skills/code-constitution/rules/doctrines/backend/backend-data-engine-doctrine.md +218 -0
  114. package/.agent/skills/code-constitution/rules/doctrines/commercial/commercial-guardrails-doctrine.md +196 -0
  115. package/.agent/skills/code-constitution/rules/doctrines/data/data-integrity-doctrine.md +202 -0
  116. package/.agent/skills/code-constitution/rules/doctrines/frontend/frontend-mobile-doctrine.md +169 -0
  117. package/.agent/skills/code-constitution/rules/doctrines/frontend/interaction-patterns-doctrine.md +176 -0
  118. package/.agent/skills/code-constitution/rules/doctrines/learning/learning-engine-doctrine.md +192 -0
  119. package/.agent/skills/code-constitution/rules/doctrines/performance/performance-doctrine.md +180 -0
  120. package/.agent/skills/code-constitution/rules/doctrines/review/code-review-doctrine.md +174 -0
  121. package/.agent/skills/code-constitution/rules/enforcement/agents/agent-enforcement-protocol.md +218 -0
  122. package/.agent/skills/code-constitution/rules/enforcement/agents/agent-system-prompt.md +196 -0
  123. package/.agent/skills/code-constitution/rules/enforcement/checklists/backend-api-review-checklist.md +131 -0
  124. package/.agent/skills/code-constitution/rules/enforcement/checklists/chart-component-review-checklist.md +147 -0
  125. package/.agent/skills/code-constitution/rules/enforcement/checklists/frontend-review-checklist.md +194 -0
  126. package/.agent/skills/code-constitution/rules/enforcement/playbooks/doctrine-violation-playbook.md +236 -0
  127. package/.agent/skills/code-constitution/rules/engineering-spec.md +561 -0
  128. package/.agent/skills/code-constitution/scripts/audit_pr.ts +219 -0
  129. package/.agent/skills/code-constitution/scripts/check_boundaries.ts +134 -0
  130. package/.agent/skills/code-constitution/scripts/learn.ts +202 -0
  131. package/.agent/skills/code-constitution/scripts/validate_doctrine.ts +287 -0
  132. package/.agent/skills/code-craft/AGENTS.md +803 -0
  133. package/.agent/skills/code-craft/SKILL.md +170 -0
  134. package/.agent/skills/code-craft/rules/_sections.md +20 -0
  135. package/.agent/skills/code-craft/rules/_template.md +32 -0
  136. package/.agent/skills/code-craft/rules/engineering-spec.md +447 -0
  137. package/.agent/skills/code-craft/rules/verification-scripts.md +83 -0
  138. package/.agent/skills/code-craft/scripts/code_quality_checker.ts +193 -0
  139. package/.agent/skills/code-review/AGENTS.md +1664 -0
  140. package/.agent/skills/code-review/SKILL.md +152 -0
  141. package/.agent/skills/code-review/rules/_sections.md +15 -0
  142. package/.agent/skills/code-review/rules/_template.md +32 -0
  143. package/.agent/skills/code-review/rules/engineering-spec.md +466 -0
  144. package/.agent/skills/code-review/scripts/lint_runner.ts +213 -0
  145. package/.agent/skills/code-review/scripts/type_coverage.ts +118 -0
  146. package/.agent/skills/context-engineering/AGENTS.md +499 -0
  147. package/.agent/skills/context-engineering/SKILL.md +147 -0
  148. package/.agent/skills/context-engineering/rules/_sections.md +15 -0
  149. package/.agent/skills/context-engineering/rules/_template.md +32 -0
  150. package/.agent/skills/context-engineering/rules/engineering-spec.md +463 -0
  151. package/.agent/skills/context-engineering/scripts/context_analyzer.ts +127 -0
  152. package/.agent/skills/copywriting/AGENTS.md +501 -0
  153. package/.agent/skills/copywriting/SKILL.md +188 -0
  154. package/.agent/skills/copywriting/rules/_sections.md +15 -0
  155. package/.agent/skills/copywriting/rules/_template.md +32 -0
  156. package/.agent/skills/copywriting/rules/engineering-spec.md +465 -0
  157. package/.agent/skills/copywriting/scripts/copy_validator.ts +185 -0
  158. package/.agent/skills/data-modeler/AGENTS.md +814 -0
  159. package/.agent/skills/data-modeler/SKILL.md +195 -0
  160. package/.agent/skills/data-modeler/rules/_sections.md +15 -0
  161. package/.agent/skills/data-modeler/rules/_template.md +32 -0
  162. package/.agent/skills/data-modeler/rules/database-selection.md +124 -0
  163. package/.agent/skills/data-modeler/rules/engineering-spec.md +479 -0
  164. package/.agent/skills/data-modeler/rules/indexing.md +166 -0
  165. package/.agent/skills/data-modeler/rules/migrations.md +176 -0
  166. package/.agent/skills/data-modeler/rules/optimization.md +161 -0
  167. package/.agent/skills/data-modeler/rules/orm-selection.md +155 -0
  168. package/.agent/skills/data-modeler/rules/schema-design.md +162 -0
  169. package/.agent/skills/data-modeler/scripts/schema_validator.ts +357 -0
  170. package/.agent/skills/debug-pro/AGENTS.md +798 -0
  171. package/.agent/skills/debug-pro/SKILL.md +193 -0
  172. package/.agent/skills/debug-pro/defense-in-depth/SKILL.md +148 -0
  173. package/.agent/skills/debug-pro/root-cause-tracing/SKILL.md +196 -0
  174. package/.agent/skills/debug-pro/root-cause-tracing/find-polluter.sh +63 -0
  175. package/.agent/skills/debug-pro/rules/_sections.md +15 -0
  176. package/.agent/skills/debug-pro/rules/_template.md +32 -0
  177. package/.agent/skills/debug-pro/rules/engineering-spec.md +491 -0
  178. package/.agent/skills/debug-pro/scripts/debug_verifier.ts +148 -0
  179. package/.agent/skills/debug-pro/verification-before-completion/SKILL.md +160 -0
  180. package/.agent/skills/design-system/AGENTS.md +4216 -0
  181. package/.agent/skills/design-system/SKILL.md +186 -0
  182. package/.agent/skills/design-system/rules/_sections.md +65 -0
  183. package/.agent/skills/design-system/rules/_template.md +32 -0
  184. package/.agent/skills/design-system/rules/animation-guide.md +355 -0
  185. package/.agent/skills/design-system/rules/color-system.md +335 -0
  186. package/.agent/skills/design-system/rules/color-systems.md +133 -0
  187. package/.agent/skills/design-system/rules/decision-trees.md +442 -0
  188. package/.agent/skills/design-system/rules/design-extraction.md +152 -0
  189. package/.agent/skills/design-system/rules/engineering-spec.md +484 -0
  190. package/.agent/skills/design-system/rules/motion-design.md +161 -0
  191. package/.agent/skills/design-system/rules/motion-graphics.md +330 -0
  192. package/.agent/skills/design-system/rules/spatial-composition.md +184 -0
  193. package/.agent/skills/design-system/rules/typography-system.md +369 -0
  194. package/.agent/skills/design-system/rules/typography.md +124 -0
  195. package/.agent/skills/design-system/rules/ux-psychology.md +565 -0
  196. package/.agent/skills/design-system/rules/visual-effects.md +407 -0
  197. package/.agent/skills/design-system/scripts/accessibility_checker.ts +292 -0
  198. package/.agent/skills/design-system/scripts/ux_audit.ts +356 -0
  199. package/.agent/skills/doc-templates/AGENTS.md +820 -0
  200. package/.agent/skills/doc-templates/SKILL.md +260 -0
  201. package/.agent/skills/doc-templates/rules/_sections.md +20 -0
  202. package/.agent/skills/doc-templates/rules/_template.md +32 -0
  203. package/.agent/skills/doc-templates/rules/doc.md +355 -0
  204. package/.agent/skills/doc-templates/rules/engineering-spec.md +422 -0
  205. package/.agent/skills/doc-templates/scripts/editor-server.ts +162 -0
  206. package/.agent/skills/doc-templates/scripts/inject_otel.ts +22 -0
  207. package/.agent/skills/doc-templates/scripts/kanban-server.ts +171 -0
  208. package/.agent/skills/doc-templates/scripts/markdown-server.ts +185 -0
  209. package/.agent/skills/e2e-automation/AGENTS.md +882 -0
  210. package/.agent/skills/e2e-automation/SKILL.md +175 -0
  211. package/.agent/skills/e2e-automation/rules/_sections.md +20 -0
  212. package/.agent/skills/e2e-automation/rules/_template.md +32 -0
  213. package/.agent/skills/e2e-automation/rules/aria-snapshot.md +185 -0
  214. package/.agent/skills/e2e-automation/rules/engineering-spec.md +501 -0
  215. package/.agent/skills/e2e-automation/scripts/playwright_runner.ts +208 -0
  216. package/.agent/skills/execution-reporter/AGENTS.md +419 -0
  217. package/.agent/skills/execution-reporter/SKILL.md +152 -0
  218. package/.agent/skills/execution-reporter/rules/_sections.md +15 -0
  219. package/.agent/skills/execution-reporter/rules/_template.md +32 -0
  220. package/.agent/skills/execution-reporter/rules/engineering-spec.md +389 -0
  221. package/.agent/skills/game-development/2d-games/SKILL.md +140 -0
  222. package/.agent/skills/game-development/3d-games/SKILL.md +156 -0
  223. package/.agent/skills/game-development/AGENTS.md +783 -0
  224. package/.agent/skills/game-development/SKILL.md +178 -0
  225. package/.agent/skills/game-development/game-art/SKILL.md +207 -0
  226. package/.agent/skills/game-development/game-audio/SKILL.md +211 -0
  227. package/.agent/skills/game-development/game-design/SKILL.md +151 -0
  228. package/.agent/skills/game-development/mobile-games/SKILL.md +130 -0
  229. package/.agent/skills/game-development/multiplayer/SKILL.md +154 -0
  230. package/.agent/skills/game-development/pc-games/SKILL.md +167 -0
  231. package/.agent/skills/game-development/rules/_sections.md +15 -0
  232. package/.agent/skills/game-development/rules/_template.md +32 -0
  233. package/.agent/skills/game-development/rules/engineering-spec.md +480 -0
  234. package/.agent/skills/game-development/vr-ar/SKILL.md +144 -0
  235. package/.agent/skills/game-development/web-games/SKILL.md +173 -0
  236. package/.agent/skills/git-workflow/AGENTS.md +554 -0
  237. package/.agent/skills/git-workflow/SKILL.md +181 -0
  238. package/.agent/skills/git-workflow/rules/_sections.md +15 -0
  239. package/.agent/skills/git-workflow/rules/_template.md +32 -0
  240. package/.agent/skills/git-workflow/rules/engineering-spec.md +518 -0
  241. package/.agent/skills/gitops/AGENTS.md +921 -0
  242. package/.agent/skills/gitops/SKILL.md +163 -0
  243. package/.agent/skills/gitops/rules/_sections.md +25 -0
  244. package/.agent/skills/gitops/rules/_template.md +32 -0
  245. package/.agent/skills/gitops/rules/argocd-setup.md +148 -0
  246. package/.agent/skills/gitops/rules/engineering-spec.md +450 -0
  247. package/.agent/skills/gitops/rules/sync-policies.md +145 -0
  248. package/.agent/skills/google-adk-python/AGENTS.md +1054 -0
  249. package/.agent/skills/google-adk-python/SKILL.md +168 -0
  250. package/.agent/skills/google-adk-python/rules/_sections.md +25 -0
  251. package/.agent/skills/google-adk-python/rules/_template.md +32 -0
  252. package/.agent/skills/google-adk-python/rules/deployment.md +138 -0
  253. package/.agent/skills/google-adk-python/rules/engineering-spec.md +451 -0
  254. package/.agent/skills/google-adk-python/rules/multi-agent.md +146 -0
  255. package/.agent/skills/google-adk-python/rules/tools.md +131 -0
  256. package/.agent/skills/idea-storm/AGENTS.md +995 -0
  257. package/.agent/skills/idea-storm/SKILL.md +160 -0
  258. package/.agent/skills/idea-storm/rules/_sections.md +25 -0
  259. package/.agent/skills/idea-storm/rules/_template.md +32 -0
  260. package/.agent/skills/idea-storm/rules/architecture-debate.md +122 -0
  261. package/.agent/skills/idea-storm/rules/dynamic-questioning.md +374 -0
  262. package/.agent/skills/idea-storm/rules/engineering-spec.md +466 -0
  263. package/.agent/skills/knowledge-compiler/SKILL.md +320 -0
  264. package/.agent/skills/knowledge-graph/AGENTS.md +762 -0
  265. package/.agent/skills/knowledge-graph/SKILL.md +157 -0
  266. package/.agent/skills/knowledge-graph/rules/_sections.md +15 -0
  267. package/.agent/skills/knowledge-graph/rules/_template.md +32 -0
  268. package/.agent/skills/knowledge-graph/rules/engineering-spec.md +439 -0
  269. package/.agent/skills/knowledge-linter/SKILL.md +217 -0
  270. package/.agent/skills/lifecycle-orchestrator/AGENTS.md +989 -0
  271. package/.agent/skills/lifecycle-orchestrator/SKILL.md +169 -0
  272. package/.agent/skills/lifecycle-orchestrator/rules/_sections.md +15 -0
  273. package/.agent/skills/lifecycle-orchestrator/rules/_template.md +32 -0
  274. package/.agent/skills/lifecycle-orchestrator/rules/engineering-spec.md +525 -0
  275. package/.agent/skills/lifecycle-orchestrator/scripts/state_manager.ts +189 -0
  276. package/.agent/skills/mcp-builder/AGENTS.md +1653 -0
  277. package/.agent/skills/mcp-builder/SKILL.md +166 -0
  278. package/.agent/skills/mcp-builder/rules/_sections.md +40 -0
  279. package/.agent/skills/mcp-builder/rules/_template.md +32 -0
  280. package/.agent/skills/mcp-builder/rules/best-practices.md +157 -0
  281. package/.agent/skills/mcp-builder/rules/design-principles.md +105 -0
  282. package/.agent/skills/mcp-builder/rules/engineering-spec.md +473 -0
  283. package/.agent/skills/mcp-builder/rules/evaluation.md +103 -0
  284. package/.agent/skills/mcp-builder/rules/python-implementation.md +249 -0
  285. package/.agent/skills/mcp-builder/rules/quickstart.md +111 -0
  286. package/.agent/skills/mcp-builder/rules/typescript-implementation.md +280 -0
  287. package/.agent/skills/mcp-management/AGENTS.md +837 -0
  288. package/.agent/skills/mcp-management/SKILL.md +164 -0
  289. package/.agent/skills/mcp-management/rules/_sections.md +25 -0
  290. package/.agent/skills/mcp-management/rules/_template.md +32 -0
  291. package/.agent/skills/mcp-management/rules/cli-usage.md +146 -0
  292. package/.agent/skills/mcp-management/rules/engineering-spec.md +501 -0
  293. package/.agent/skills/mcp-management/rules/protocol.md +159 -0
  294. package/.agent/skills/media-processing/AGENTS.md +479 -0
  295. package/.agent/skills/media-processing/SKILL.md +176 -0
  296. package/.agent/skills/media-processing/rules/_sections.md +15 -0
  297. package/.agent/skills/media-processing/rules/_template.md +32 -0
  298. package/.agent/skills/media-processing/rules/engineering-spec.md +452 -0
  299. package/.agent/skills/media-processing/scripts/convert-video.ts +155 -0
  300. package/.agent/skills/media-processing/scripts/optimize-image.ts +127 -0
  301. package/.agent/skills/mobile-design/AGENTS.md +6531 -0
  302. package/.agent/skills/mobile-design/SKILL.md +165 -0
  303. package/.agent/skills/mobile-design/rules/_sections.md +45 -0
  304. package/.agent/skills/mobile-design/rules/_template.md +32 -0
  305. package/.agent/skills/mobile-design/rules/decision-trees.md +540 -0
  306. package/.agent/skills/mobile-design/rules/engineering-spec.md +467 -0
  307. package/.agent/skills/mobile-design/rules/mobile-backend.md +516 -0
  308. package/.agent/skills/mobile-design/rules/mobile-color-system.md +436 -0
  309. package/.agent/skills/mobile-design/rules/mobile-debugging.md +146 -0
  310. package/.agent/skills/mobile-design/rules/mobile-design-thinking.md +381 -0
  311. package/.agent/skills/mobile-design/rules/mobile-navigation.md +474 -0
  312. package/.agent/skills/mobile-design/rules/mobile-performance.md +783 -0
  313. package/.agent/skills/mobile-design/rules/mobile-testing.md +380 -0
  314. package/.agent/skills/mobile-design/rules/mobile-typography.md +449 -0
  315. package/.agent/skills/mobile-design/rules/platform-android.md +682 -0
  316. package/.agent/skills/mobile-design/rules/platform-ios.md +577 -0
  317. package/.agent/skills/mobile-design/rules/touch-psychology.md +553 -0
  318. package/.agent/skills/mobile-design/scripts/mobile_audit.ts +309 -0
  319. package/.agent/skills/mobile-developer/AGENTS.md +904 -0
  320. package/.agent/skills/mobile-developer/SKILL.md +194 -0
  321. package/.agent/skills/mobile-developer/rules/_sections.md +75 -0
  322. package/.agent/skills/mobile-developer/rules/_template.md +32 -0
  323. package/.agent/skills/mobile-developer/rules/anti-patterns.md +70 -0
  324. package/.agent/skills/mobile-developer/rules/app-store-optimization.md +319 -0
  325. package/.agent/skills/mobile-developer/rules/decision-trees.md +545 -0
  326. package/.agent/skills/mobile-developer/rules/deep-linking.md +441 -0
  327. package/.agent/skills/mobile-developer/rules/engineering-spec.md +477 -0
  328. package/.agent/skills/mobile-developer/rules/flutter.md +475 -0
  329. package/.agent/skills/mobile-developer/rules/mobile-backend.md +516 -0
  330. package/.agent/skills/mobile-developer/rules/mobile-color-system.md +444 -0
  331. package/.agent/skills/mobile-developer/rules/mobile-debugging.md +428 -0
  332. package/.agent/skills/mobile-developer/rules/mobile-design-thinking.md +367 -0
  333. package/.agent/skills/mobile-developer/rules/mobile-navigation.md +483 -0
  334. package/.agent/skills/mobile-developer/rules/mobile-performance.md +778 -0
  335. package/.agent/skills/mobile-developer/rules/mobile-testing.md +382 -0
  336. package/.agent/skills/mobile-developer/rules/mobile-typography.md +457 -0
  337. package/.agent/skills/mobile-developer/rules/native.md +572 -0
  338. package/.agent/skills/mobile-developer/rules/platform-android.md +676 -0
  339. package/.agent/skills/mobile-developer/rules/platform-ios.md +571 -0
  340. package/.agent/skills/mobile-developer/rules/push-notifications.md +599 -0
  341. package/.agent/skills/mobile-developer/rules/react-native.md +422 -0
  342. package/.agent/skills/mobile-developer/rules/touch-psychology.md +547 -0
  343. package/.agent/skills/mobile-developer/scripts/mobile_audit.ts +701 -0
  344. package/.agent/skills/nextjs-pro/AGENTS.md +3932 -0
  345. package/.agent/skills/nextjs-pro/SKILL.md +171 -0
  346. package/.agent/skills/nextjs-pro/rules/_sections.md +50 -0
  347. package/.agent/skills/nextjs-pro/rules/_template.md +32 -0
  348. package/.agent/skills/nextjs-pro/rules/advanced-event-handler-refs.md +59 -0
  349. package/.agent/skills/nextjs-pro/rules/advanced-init-once.md +46 -0
  350. package/.agent/skills/nextjs-pro/rules/advanced-use-latest.md +43 -0
  351. package/.agent/skills/nextjs-pro/rules/async-api-routes.md +42 -0
  352. package/.agent/skills/nextjs-pro/rules/async-defer-await.md +84 -0
  353. package/.agent/skills/nextjs-pro/rules/async-dependencies.md +55 -0
  354. package/.agent/skills/nextjs-pro/rules/async-parallel.md +32 -0
  355. package/.agent/skills/nextjs-pro/rules/async-suspense-boundaries.md +103 -0
  356. package/.agent/skills/nextjs-pro/rules/bundle-barrel-imports.md +63 -0
  357. package/.agent/skills/nextjs-pro/rules/bundle-conditional.md +35 -0
  358. package/.agent/skills/nextjs-pro/rules/bundle-defer-third-party.md +53 -0
  359. package/.agent/skills/nextjs-pro/rules/bundle-dynamic-imports.md +39 -0
  360. package/.agent/skills/nextjs-pro/rules/bundle-preload.md +54 -0
  361. package/.agent/skills/nextjs-pro/rules/client-event-listeners.md +78 -0
  362. package/.agent/skills/nextjs-pro/rules/client-localstorage-schema.md +75 -0
  363. package/.agent/skills/nextjs-pro/rules/client-passive-event-listeners.md +52 -0
  364. package/.agent/skills/nextjs-pro/rules/client-swr-dedup.md +60 -0
  365. package/.agent/skills/nextjs-pro/rules/engineering-spec.md +440 -0
  366. package/.agent/skills/nextjs-pro/rules/js-batch-dom-css.md +111 -0
  367. package/.agent/skills/nextjs-pro/rules/js-cache-function-results.md +84 -0
  368. package/.agent/skills/nextjs-pro/rules/js-cache-property-access.md +32 -0
  369. package/.agent/skills/nextjs-pro/rules/js-cache-storage.md +74 -0
  370. package/.agent/skills/nextjs-pro/rules/js-combine-iterations.md +36 -0
  371. package/.agent/skills/nextjs-pro/rules/js-early-exit.md +54 -0
  372. package/.agent/skills/nextjs-pro/rules/js-hoist-regexp.md +49 -0
  373. package/.agent/skills/nextjs-pro/rules/js-index-maps.md +41 -0
  374. package/.agent/skills/nextjs-pro/rules/js-length-check-first.md +53 -0
  375. package/.agent/skills/nextjs-pro/rules/js-min-max-loop.md +86 -0
  376. package/.agent/skills/nextjs-pro/rules/js-set-map-lookups.md +28 -0
  377. package/.agent/skills/nextjs-pro/rules/js-tosorted-immutable.md +61 -0
  378. package/.agent/skills/nextjs-pro/rules/rendering-activity.md +30 -0
  379. package/.agent/skills/nextjs-pro/rules/rendering-animate-svg-wrapper.md +51 -0
  380. package/.agent/skills/nextjs-pro/rules/rendering-conditional-render.md +44 -0
  381. package/.agent/skills/nextjs-pro/rules/rendering-content-visibility.md +42 -0
  382. package/.agent/skills/nextjs-pro/rules/rendering-hoist-jsx.md +50 -0
  383. package/.agent/skills/nextjs-pro/rules/rendering-hydration-no-flicker.md +86 -0
  384. package/.agent/skills/nextjs-pro/rules/rendering-hydration-suppress-warning.md +34 -0
  385. package/.agent/skills/nextjs-pro/rules/rendering-svg-precision.md +32 -0
  386. package/.agent/skills/nextjs-pro/rules/rendering-usetransition-loading.md +79 -0
  387. package/.agent/skills/nextjs-pro/rules/rerender-defer-reads.md +43 -0
  388. package/.agent/skills/nextjs-pro/rules/rerender-dependencies.md +49 -0
  389. package/.agent/skills/nextjs-pro/rules/rerender-derived-state-no-effect.md +44 -0
  390. package/.agent/skills/nextjs-pro/rules/rerender-derived-state.md +33 -0
  391. package/.agent/skills/nextjs-pro/rules/rerender-functional-setstate.md +78 -0
  392. package/.agent/skills/nextjs-pro/rules/rerender-lazy-state-init.md +62 -0
  393. package/.agent/skills/nextjs-pro/rules/rerender-memo-with-default-value.md +42 -0
  394. package/.agent/skills/nextjs-pro/rules/rerender-memo.md +48 -0
  395. package/.agent/skills/nextjs-pro/rules/rerender-move-effect-to-event.md +49 -0
  396. package/.agent/skills/nextjs-pro/rules/rerender-simple-expression-in-memo.md +39 -0
  397. package/.agent/skills/nextjs-pro/rules/rerender-transitions.md +44 -0
  398. package/.agent/skills/nextjs-pro/rules/rerender-use-ref-transient-values.md +77 -0
  399. package/.agent/skills/nextjs-pro/rules/schema.json +34 -0
  400. package/.agent/skills/nextjs-pro/rules/server-after-nonblocking.md +77 -0
  401. package/.agent/skills/nextjs-pro/rules/server-auth-actions.md +100 -0
  402. package/.agent/skills/nextjs-pro/rules/server-cache-lru.md +45 -0
  403. package/.agent/skills/nextjs-pro/rules/server-cache-react.md +80 -0
  404. package/.agent/skills/nextjs-pro/rules/server-dedup-props.md +69 -0
  405. package/.agent/skills/nextjs-pro/rules/server-parallel-fetching.md +87 -0
  406. package/.agent/skills/nextjs-pro/rules/server-serialization.md +42 -0
  407. package/.agent/skills/nodejs-pro/AGENTS.md +866 -0
  408. package/.agent/skills/nodejs-pro/SKILL.md +172 -0
  409. package/.agent/skills/nodejs-pro/rules/_sections.md +50 -0
  410. package/.agent/skills/nodejs-pro/rules/_template.md +32 -0
  411. package/.agent/skills/nodejs-pro/rules/architecture-patterns.md +229 -0
  412. package/.agent/skills/nodejs-pro/rules/async-patterns.md +246 -0
  413. package/.agent/skills/nodejs-pro/rules/engineering-spec.md +438 -0
  414. package/.agent/skills/nodejs-pro/rules/error-handling.md +257 -0
  415. package/.agent/skills/nodejs-pro/rules/framework-selection.md +220 -0
  416. package/.agent/skills/nodejs-pro/rules/runtime-modules.md +176 -0
  417. package/.agent/skills/nodejs-pro/rules/testing-strategy.md +266 -0
  418. package/.agent/skills/nodejs-pro/rules/validation-security.md +205 -0
  419. package/.agent/skills/observability/AGENTS.md +607 -0
  420. package/.agent/skills/observability/SKILL.md +178 -0
  421. package/.agent/skills/observability/rules/_sections.md +15 -0
  422. package/.agent/skills/observability/rules/_template.md +32 -0
  423. package/.agent/skills/observability/rules/engineering-spec.md +440 -0
  424. package/.agent/skills/offensive-sec/AGENTS.md +849 -0
  425. package/.agent/skills/offensive-sec/SKILL.md +191 -0
  426. package/.agent/skills/offensive-sec/rules/_sections.md +15 -0
  427. package/.agent/skills/offensive-sec/rules/_template.md +32 -0
  428. package/.agent/skills/offensive-sec/rules/engineering-spec.md +470 -0
  429. package/.agent/skills/perf-optimizer/AGENTS.md +870 -0
  430. package/.agent/skills/perf-optimizer/SKILL.md +189 -0
  431. package/.agent/skills/perf-optimizer/rules/_sections.md +15 -0
  432. package/.agent/skills/perf-optimizer/rules/_template.md +32 -0
  433. package/.agent/skills/perf-optimizer/rules/backend-patterns.md +312 -0
  434. package/.agent/skills/perf-optimizer/rules/engineering-spec.md +428 -0
  435. package/.agent/skills/perf-optimizer/scripts/lighthouse_audit.ts +201 -0
  436. package/.agent/skills/problem-checker/AGENTS.md +519 -0
  437. package/.agent/skills/problem-checker/SKILL.md +189 -0
  438. package/.agent/skills/problem-checker/rules/_sections.md +15 -0
  439. package/.agent/skills/problem-checker/rules/_template.md +32 -0
  440. package/.agent/skills/problem-checker/rules/engineering-spec.md +483 -0
  441. package/.agent/skills/problem-checker/scripts/check_problems.ts +396 -0
  442. package/.agent/skills/project-planner/AGENTS.md +2698 -0
  443. package/.agent/skills/project-planner/SKILL.md +166 -0
  444. package/.agent/skills/project-planner/rules/_sections.md +15 -0
  445. package/.agent/skills/project-planner/rules/_template.md +32 -0
  446. package/.agent/skills/project-planner/rules/engineering-spec.md +420 -0
  447. package/.agent/skills/python-pro/AGENTS.md +1871 -0
  448. package/.agent/skills/python-pro/SKILL.md +182 -0
  449. package/.agent/skills/python-pro/rules/_sections.md +50 -0
  450. package/.agent/skills/python-pro/rules/_template.md +32 -0
  451. package/.agent/skills/python-pro/rules/async-patterns.md +168 -0
  452. package/.agent/skills/python-pro/rules/django-patterns.md +194 -0
  453. package/.agent/skills/python-pro/rules/engineering-spec.md +442 -0
  454. package/.agent/skills/python-pro/rules/fastapi-patterns.md +179 -0
  455. package/.agent/skills/python-pro/rules/framework-selection.md +167 -0
  456. package/.agent/skills/python-pro/rules/project-structure.md +181 -0
  457. package/.agent/skills/python-pro/rules/testing-patterns.md +212 -0
  458. package/.agent/skills/python-pro/rules/type-hints.md +159 -0
  459. package/.agent/skills/react-pro/AGENTS.md +963 -0
  460. package/.agent/skills/react-pro/SKILL.md +232 -0
  461. package/.agent/skills/react-pro/rules/_sections.md +40 -0
  462. package/.agent/skills/react-pro/rules/_template.md +32 -0
  463. package/.agent/skills/react-pro/rules/component-patterns.md +145 -0
  464. package/.agent/skills/react-pro/rules/composition-compound.md +82 -0
  465. package/.agent/skills/react-pro/rules/data-fetching.md +133 -0
  466. package/.agent/skills/react-pro/rules/engineering-spec.md +453 -0
  467. package/.agent/skills/react-pro/rules/error-boundary.md +61 -0
  468. package/.agent/skills/react-pro/rules/file-organization.md +158 -0
  469. package/.agent/skills/react-pro/rules/hooks-custom.md +61 -0
  470. package/.agent/skills/react-pro/rules/mui-styling.md +138 -0
  471. package/.agent/skills/react-pro/rules/patterns.md +24 -0
  472. package/.agent/skills/react-pro/rules/performance-optimization.md +65 -0
  473. package/.agent/skills/react-pro/rules/performance.md +137 -0
  474. package/.agent/skills/react-pro/rules/react19-hooks.md +85 -0
  475. package/.agent/skills/react-pro/rules/state-management.md +90 -0
  476. package/.agent/skills/react-pro/rules/testing-patterns.md +52 -0
  477. package/.agent/skills/registry.json +1251 -0
  478. package/.agent/skills/security-scanner/AGENTS.md +851 -0
  479. package/.agent/skills/security-scanner/SKILL.md +182 -0
  480. package/.agent/skills/security-scanner/rules/_sections.md +15 -0
  481. package/.agent/skills/security-scanner/rules/_template.md +32 -0
  482. package/.agent/skills/security-scanner/rules/auth-patterns.md +281 -0
  483. package/.agent/skills/security-scanner/rules/checklists.md +186 -0
  484. package/.agent/skills/security-scanner/rules/engineering-spec.md +440 -0
  485. package/.agent/skills/security-scanner/scripts/security_scan.ts +513 -0
  486. package/.agent/skills/seo-optimizer/AGENTS.md +839 -0
  487. package/.agent/skills/seo-optimizer/SKILL.md +180 -0
  488. package/.agent/skills/seo-optimizer/rules/_sections.md +15 -0
  489. package/.agent/skills/seo-optimizer/rules/_template.md +32 -0
  490. package/.agent/skills/seo-optimizer/rules/engineering-spec.md +433 -0
  491. package/.agent/skills/seo-optimizer/scripts/geo_checker.ts +109 -0
  492. package/.agent/skills/seo-optimizer/scripts/seo_checker.ts +308 -0
  493. package/.agent/skills/server-ops/AGENTS.md +643 -0
  494. package/.agent/skills/server-ops/SKILL.md +194 -0
  495. package/.agent/skills/server-ops/rules/_sections.md +15 -0
  496. package/.agent/skills/server-ops/rules/_template.md +32 -0
  497. package/.agent/skills/server-ops/rules/engineering-spec.md +450 -0
  498. package/.agent/skills/shell-script/AGENTS.md +499 -0
  499. package/.agent/skills/shell-script/SKILL.md +205 -0
  500. package/.agent/skills/shell-script/rules/_sections.md +15 -0
  501. package/.agent/skills/shell-script/rules/_template.md +32 -0
  502. package/.agent/skills/shell-script/rules/engineering-spec.md +463 -0
  503. package/.agent/skills/skill-generator/SKILL.md +147 -0
  504. package/.agent/skills/smart-router/SKILL.md +95 -0
  505. package/.agent/skills/studio/AGENTS.md +636 -0
  506. package/.agent/skills/studio/SKILL.md +178 -0
  507. package/.agent/skills/studio/data/charts.csv +26 -0
  508. package/.agent/skills/studio/data/colors.csv +97 -0
  509. package/.agent/skills/studio/data/icons.csv +101 -0
  510. package/.agent/skills/studio/data/landing.csv +31 -0
  511. package/.agent/skills/studio/data/products.csv +97 -0
  512. package/.agent/skills/studio/data/prompts.csv +24 -0
  513. package/.agent/skills/studio/data/react-performance.csv +45 -0
  514. package/.agent/skills/studio/data/stacks/flutter.csv +52 -0
  515. package/.agent/skills/studio/data/stacks/html-tailwind.csv +56 -0
  516. package/.agent/skills/studio/data/stacks/jetpack-compose.csv +53 -0
  517. package/.agent/skills/studio/data/stacks/nextjs.csv +53 -0
  518. package/.agent/skills/studio/data/stacks/nuxt-ui.csv +51 -0
  519. package/.agent/skills/studio/data/stacks/nuxtjs.csv +59 -0
  520. package/.agent/skills/studio/data/stacks/react-native.csv +52 -0
  521. package/.agent/skills/studio/data/stacks/react.csv +54 -0
  522. package/.agent/skills/studio/data/stacks/shadcn.csv +61 -0
  523. package/.agent/skills/studio/data/stacks/svelte.csv +54 -0
  524. package/.agent/skills/studio/data/stacks/swiftui.csv +51 -0
  525. package/.agent/skills/studio/data/stacks/vue.csv +50 -0
  526. package/.agent/skills/studio/data/styles.csv +59 -0
  527. package/.agent/skills/studio/data/typography.csv +58 -0
  528. package/.agent/skills/studio/data/ui-reasoning.csv +101 -0
  529. package/.agent/skills/studio/data/ux-guidelines.csv +100 -0
  530. package/.agent/skills/studio/data/web-interface.csv +31 -0
  531. package/.agent/skills/studio/rules/_sections.md +15 -0
  532. package/.agent/skills/studio/rules/_template.md +32 -0
  533. package/.agent/skills/studio/rules/engineering-spec.md +455 -0
  534. package/.agent/skills/studio/scripts/core.ts +345 -0
  535. package/.agent/skills/studio/scripts/design_system.ts +953 -0
  536. package/.agent/skills/studio/scripts/search.ts +197 -0
  537. package/.agent/skills/studio/scripts/types.ts +147 -0
  538. package/.agent/skills/studio/scripts/utils/component-specs.ts +154 -0
  539. package/.agent/skills/studio/scripts/utils/config-loader.ts +165 -0
  540. package/.agent/skills/studio/scripts/utils/css-templates.ts +169 -0
  541. package/.agent/skills/studio/scripts/utils/css-validator.ts +95 -0
  542. package/.agent/skills/studio/scripts/utils/csv-loader.ts +52 -0
  543. package/.agent/skills/studio/scripts/utils/intelligent-overrides.ts +129 -0
  544. package/.agent/skills/studio/scripts/utils/page-override-formatter.ts +143 -0
  545. package/.agent/skills/studio/scripts/utils/page-type-detector.ts +124 -0
  546. package/.agent/skills/studio/scripts/utils/search-cache.ts +165 -0
  547. package/.agent/skills/studio/scripts/utils/text-utils.ts +44 -0
  548. package/.agent/skills/system-design/AGENTS.md +597 -0
  549. package/.agent/skills/system-design/SKILL.md +153 -0
  550. package/.agent/skills/system-design/rules/_sections.md +15 -0
  551. package/.agent/skills/system-design/rules/_template.md +32 -0
  552. package/.agent/skills/system-design/rules/context-discovery.md +117 -0
  553. package/.agent/skills/system-design/rules/engineering-spec.md +437 -0
  554. package/.agent/skills/system-design/rules/examples.md +180 -0
  555. package/.agent/skills/system-design/rules/pattern-selection.md +130 -0
  556. package/.agent/skills/system-design/rules/patterns-reference.md +110 -0
  557. package/.agent/skills/system-design/rules/trade-off-analysis.md +169 -0
  558. package/.agent/skills/tailwind-kit/AGENTS.md +1135 -0
  559. package/.agent/skills/tailwind-kit/SKILL.md +171 -0
  560. package/.agent/skills/tailwind-kit/rules/_sections.md +20 -0
  561. package/.agent/skills/tailwind-kit/rules/_template.md +32 -0
  562. package/.agent/skills/tailwind-kit/rules/components.md +232 -0
  563. package/.agent/skills/tailwind-kit/rules/engineering-spec.md +435 -0
  564. package/.agent/skills/tailwind-kit/rules/responsive.md +221 -0
  565. package/.agent/skills/tailwind-kit/rules/v4-config.md +72 -0
  566. package/.agent/skills/test-architect/AGENTS.md +851 -0
  567. package/.agent/skills/test-architect/SKILL.md +176 -0
  568. package/.agent/skills/test-architect/rules/_sections.md +15 -0
  569. package/.agent/skills/test-architect/rules/_template.md +32 -0
  570. package/.agent/skills/test-architect/rules/engineering-spec.md +434 -0
  571. package/.agent/skills/test-architect/scripts/test_runner.ts +265 -0
  572. package/.agent/skills/typescript-expert/AGENTS.md +1045 -0
  573. package/.agent/skills/typescript-expert/SKILL.md +200 -0
  574. package/.agent/skills/typescript-expert/rules/_sections.md +20 -0
  575. package/.agent/skills/typescript-expert/rules/_template.md +32 -0
  576. package/.agent/skills/typescript-expert/rules/engineering-spec.md +433 -0
  577. package/.agent/skills/typescript-expert/rules/tsconfig-strict.json +92 -0
  578. package/.agent/skills/typescript-expert/rules/typescript-cheatsheet.md +407 -0
  579. package/.agent/skills/typescript-expert/rules/utility-types.ts +264 -0
  580. package/.agent/skills/typescript-expert/scripts/ts_diagnostic.ts +321 -0
  581. package/.agent/skills/vercel-deploy/AGENTS.md +490 -0
  582. package/.agent/skills/vercel-deploy/SKILL.md +175 -0
  583. package/.agent/skills/vercel-deploy/rules/_sections.md +15 -0
  584. package/.agent/skills/vercel-deploy/rules/_template.md +32 -0
  585. package/.agent/skills/vercel-deploy/rules/engineering-spec.md +463 -0
  586. package/.agent/skills/vercel-deploy/scripts/deploy.sh +310 -0
  587. package/.agent/workflows/api.md +377 -0
  588. package/.agent/workflows/autopilot.md +344 -0
  589. package/.agent/workflows/build.md +338 -0
  590. package/.agent/workflows/chronicle.md +279 -0
  591. package/.agent/workflows/cook.md +217 -0
  592. package/.agent/workflows/diagnose.md +302 -0
  593. package/.agent/workflows/fix.md +253 -0
  594. package/.agent/workflows/game.md +329 -0
  595. package/.agent/workflows/inspect.md +276 -0
  596. package/.agent/workflows/knowledge.md +212 -0
  597. package/.agent/workflows/launch.md +345 -0
  598. package/.agent/workflows/mobile.md +354 -0
  599. package/.agent/workflows/monitor.md +239 -0
  600. package/.agent/workflows/optimize.md +269 -0
  601. package/.agent/workflows/plan.md +278 -0
  602. package/.agent/workflows/stage.md +286 -0
  603. package/.agent/workflows/studio.md +276 -0
  604. package/.agent/workflows/think.md +262 -0
  605. package/.agent/workflows/validate.md +289 -0
  606. package/.agentignore +161 -0
  607. package/.gitattributes +16 -0
  608. package/CHANGELOG.md +198 -0
  609. package/LICENSE +40 -0
  610. package/README.md +173 -0
  611. package/docs/SKILL_DESIGN_GUIDE.md +561 -0
  612. package/docs/The-Complete-Guide-to-Building-Skills-for-Claude.md +1207 -0
  613. package/docs/WORKFLOW_DESIGN_GUIDE.md +325 -0
  614. package/package.json +33 -0
  615. package/tsconfig.json +28 -0
@@ -0,0 +1,452 @@
1
+ ---
2
+ name: media-processing-engineering-spec
3
+ description: Full 21-section engineering spec — 3-tool routing, CRF quality guide, RMBG model selection, destructive warnings
4
+ title: "Media Processing - Engineering Specification"
5
+ impact: MEDIUM
6
+ impactDescription: "Moderate improvement to quality or maintainability"
7
+ tags: engineering, spec
8
+ ---
9
+
10
+ # Media Processing — Engineering Specification
11
+
12
+ > Production-grade specification for multimedia processing with FFmpeg, ImageMagick, and RMBG at FAANG scale.
13
+
14
+ ---
15
+
16
+ ## 1. Overview
17
+
18
+ Media Processing provides deterministic tool selection and command generation for multimedia operations: video encoding/conversion (FFmpeg), audio extraction (FFmpeg), image resize/compression (ImageMagick), and background removal (RMBG). The skill operates as an **Expert (decision tree)** — it produces tool selections, command templates, and quality parameter recommendations. It does not execute commands, process media files, or install tools.
19
+
20
+ **Contract Version:** 2.0.0
21
+ **Backward Compatibility:** breaking (first hardened version)
22
+ **Breaking Changes:** None — new spec for first hardening
23
+
24
+ ---
25
+
26
+ ## 2. Problem Statement
27
+
28
+ Media processing at scale faces four quantified problems:
29
+
30
+ | Problem | Measurement | Impact |
31
+ |---------|-------------|--------|
32
+ | Wrong tool for task | 30% of media tasks use suboptimal tool | Quality or size penalty |
33
+ | Wrong compression settings | 40% of videos use default CRF (23) without consideration | Oversized or low-quality output |
34
+ | In-place modification without backup | 20% of mogrify operations destroy originals | Irreversible data loss |
35
+ | Wrong RMBG model for use case | 35% of bg removal uses default model | Poor quality or excessive wait |
36
+
37
+ Media Processing eliminates these with deterministic tool routing (task → tool), fixed CRF recommendations (18/22/28), mandatory backup warnings for destructive operations, and model selection based on quality/speed trade-off.
38
+
39
+ ---
40
+
41
+ ## 3. Design Goals
42
+
43
+ | ID | Goal | Measurable Constraint |
44
+ |----|------|-----------------------|
45
+ | G1 | 3-tool routing | FFmpeg (video/audio), ImageMagick (image), RMBG (bg removal) |
46
+ | G2 | CRF quality guide | 18 (lossless), 22 (recommended), 28 (smaller) — fixed |
47
+ | G3 | RMBG model selection | briaai (highest/slow), u2netp (good/fast), modnet (balanced/medium) |
48
+ | G4 | JPEG quality default | 85 — fixed standard |
49
+ | G5 | Destructive operation warning | mogrify always flagged |
50
+ | G6 | Web-optimized video | `-movflags +faststart` always included for MP4 |
51
+
52
+ ---
53
+
54
+ ## 4. Non-Goals
55
+
56
+ | ID | Excluded | Rationale |
57
+ |----|----------|-----------|
58
+ | NG1 | Media file execution | Caller executes generated commands |
59
+ | NG2 | Tool installation | Infrastructure concern |
60
+ | NG3 | Streaming media | Different architecture |
61
+ | NG4 | Video editing (cuts, effects) | Specialized tool |
62
+ | NG5 | Image design/composition | Owned by `studio` skill |
63
+ | NG6 | Performance profiling | Owned by `perf-optimizer` skill |
64
+
65
+ ---
66
+
67
+ ## 5. System Boundaries
68
+
69
+ | Boundary | Owned | Not Owned |
70
+ |----------|-------|-----------|
71
+ | Tool selection (3 tools) | Task → tool mapping | Tool installation |
72
+ | Command generation | Template + parameters | Command execution |
73
+ | Quality parameter guidance | CRF, JPEG quality, RMBG model | Perceptual quality assessment |
74
+ | Destructive operation warnings | mogrify flagging | File backup execution |
75
+ | Format conversion guidance | Codec + container selection | Transcoding execution |
76
+
77
+ **Side-effect boundary:** Media Processing produces commands and tool recommendations. It does not execute commands, read/write media files, or interact with the filesystem.
78
+
79
+ ---
80
+
81
+ ## 6. Integration Model
82
+
83
+ ### 6.1 Agent Contract
84
+
85
+ #### Input Schema
86
+
87
+ ```
88
+ Request_Type: string # "tool-select" | "command-gen" | "quality-guide" | "model-select"
89
+ Context: {
90
+ task: string # "encode" | "extract-audio" | "thumbnail" | "resize" |
91
+ # "compress" | "bg-remove" | "convert" | "gif" | "batch-resize"
92
+ input_format: string | null # Source format (e.g., "mov", "jpg", "png")
93
+ output_format: string | null # Target format (e.g., "mp4", "webp", "png")
94
+ quality: string | null # "lossless" | "recommended" | "smaller" | null
95
+ rmbg_priority: string | null # "quality" | "speed" | "balanced" | null
96
+ dimensions: string | null # Target dimensions (e.g., "800x600", "800x")
97
+ timestamp: string | null # For thumbnail extraction (e.g., "00:00:05")
98
+ }
99
+ contract_version: string # "2.0.0"
100
+ ```
101
+
102
+ #### Output Schema
103
+
104
+ ```
105
+ Status: "success" | "error"
106
+ Data: {
107
+ tool: {
108
+ name: string # "ffmpeg" | "imagemagick" | "rmbg"
109
+ rationale: string
110
+ } | null
111
+ command: {
112
+ template: string # Full CLI command
113
+ destructive: boolean # true if modifies in-place (mogrify)
114
+ warning: string | null # Backup warning if destructive
115
+ } | null
116
+ quality: {
117
+ parameter: string # "crf" | "quality" | "model"
118
+ value: string | number # CRF number, JPEG quality, model name
119
+ description: string
120
+ } | null
121
+ model: {
122
+ name: string # "briaai" | "u2netp" | "modnet"
123
+ quality_tier: string # "highest" | "good" | "balanced"
124
+ speed_tier: string # "slow" | "fast" | "medium"
125
+ } | null
126
+ metadata: {
127
+ contract_version: string
128
+ backward_compatibility: string
129
+ }
130
+ }
131
+ Error: ErrorSchema | null
132
+ ```
133
+
134
+ #### Error Schema
135
+
136
+ ```
137
+ Code: string # From Error Taxonomy (Section 11)
138
+ Message: string
139
+ Request_Type: string
140
+ Recoverable: boolean
141
+ ```
142
+
143
+ #### Deterministic Guarantees
144
+
145
+ - Tool selection is fixed: video/audio tasks → FFmpeg; image tasks → ImageMagick; bg removal → RMBG.
146
+ - CRF values are fixed: lossless = 18, recommended = 22, smaller = 28.
147
+ - JPEG quality is fixed: 85 (default).
148
+ - RMBG model selection is fixed: quality → briaai, speed → u2netp, balanced → modnet.
149
+ - MP4 output always includes `-movflags +faststart`.
150
+ - mogrify commands always flagged as destructive with backup warning.
151
+ - `-strip` always included for JPEG compression (removes EXIF).
152
+
153
+ #### What Agents May Assume
154
+
155
+ - Tool selection maps to task type deterministically.
156
+ - CRF/quality values produce consistent visual results.
157
+ - Commands are syntactically correct for current tool versions.
158
+ - Destructive operations are always flagged.
159
+
160
+ #### What Agents Must NOT Assume
161
+
162
+ - FFmpeg, ImageMagick, or RMBG is installed.
163
+ - Commands execute successfully (depends on input file).
164
+ - CRF values produce identical file sizes across inputs.
165
+ - RMBG models handle all image types equally.
166
+
167
+ #### Side-Effect Boundaries
168
+
169
+ | Operation | Side Effects |
170
+ |-----------|-------------|
171
+ | Tool select | None; recommendation |
172
+ | Command gen | None; command template |
173
+ | Quality guide | None; parameter recommendation |
174
+ | Model select | None; model recommendation |
175
+
176
+ ### 6.2 Workflow Contract
177
+
178
+ #### Invocation Pattern
179
+
180
+ ```
181
+ 1. Identify media task (encode, resize, bg-remove, etc.)
182
+ 2. Invoke tool-select to determine tool
183
+ 3. Invoke command-gen with task + parameters
184
+ 4. Review generated command (check destructive flag)
185
+ 5. Execute command (caller's responsibility)
186
+ 6. Verify output (caller's responsibility)
187
+ ```
188
+
189
+ #### Execution Guarantees
190
+
191
+ - Each invocation produces a complete command or recommendation.
192
+ - Destructive commands are always flagged.
193
+
194
+ #### Failure Propagation Model
195
+
196
+ | Failure Severity | Propagation | Workflow Action |
197
+ |-----------------|-------------|-----------------|
198
+ | Unknown task type | Return error | Use supported task |
199
+ | Missing format | Return error | Supply format |
200
+ | Unknown RMBG priority | Default to "balanced" | Transparent |
201
+ | Unsupported conversion | Return error | Use supported format pair |
202
+
203
+ #### Retry Boundaries
204
+
205
+ - Zero internal retries. Deterministic output.
206
+
207
+ #### Isolation Model
208
+
209
+ - Each invocation is stateless and independent.
210
+
211
+ #### Idempotency Expectations
212
+
213
+ | Operation | Idempotent | Notes |
214
+ |-----------|-----------|-------|
215
+ | Tool select | Yes | Same task = same tool |
216
+ | Command gen | Yes | Same context = same command |
217
+ | Quality guide | Yes | Same quality tier = same value |
218
+ | Model select | Yes | Same priority = same model |
219
+
220
+ ---
221
+
222
+ ## 7. Execution Model
223
+
224
+ ### 2-Phase Lifecycle
225
+
226
+ | Phase | Action | Output |
227
+ |-------|--------|--------|
228
+ | **Classify** | Validate task, determine tool, check destructive | Classification |
229
+ | **Generate** | Produce command template or recommendation | Complete output |
230
+
231
+ All phases synchronous. No async pipeline.
232
+
233
+ ---
234
+
235
+ ## 8. Deterministic Design Principles
236
+
237
+ | Principle | Enforcement |
238
+ |-----------|-------------|
239
+ | Fixed tool routing | video/audio → FFmpeg, image → ImageMagick, bg → RMBG |
240
+ | Fixed CRF values | 18 (lossless), 22 (recommended), 28 (smaller) |
241
+ | Fixed JPEG quality | 85 default |
242
+ | Fixed RMBG models | briaai (highest/slow), u2netp (good/fast), modnet (balanced/medium) |
243
+ | Web-optimized MP4 | `-movflags +faststart` always |
244
+ | Destructive warning | mogrify always flagged |
245
+ | EXIF stripping | `-strip` always for JPEG compression |
246
+ | No execution | Command output only; caller executes |
247
+
248
+ ---
249
+
250
+ ## 9. State & Idempotency Model
251
+
252
+ Stateless. Fully idempotent. No persistent state.
253
+
254
+ ---
255
+
256
+ ## 10. Failure Handling Strategy
257
+
258
+ | Failure Class | Behavior | Caller Recovery |
259
+ |---------------|----------|-----------------|
260
+ | Unknown task type | Return `ERR_UNKNOWN_TASK` | Use supported task |
261
+ | Missing input format | Return `ERR_MISSING_FORMAT` | Supply format |
262
+ | Unsupported format pair | Return `ERR_UNSUPPORTED_FORMAT` | Use supported conversion |
263
+ | Tool not installed (caller) | Not this skill's error | Install tool |
264
+
265
+ **Invariant:** Every failure returns a structured error. No partial commands.
266
+
267
+ ---
268
+
269
+ ## 11. Error Taxonomy
270
+
271
+ | Code | Category | Recoverable | Description |
272
+ |------|----------|-------------|-------------|
273
+ | `ERR_UNKNOWN_TASK` | Validation | No | Task type not supported |
274
+ | `ERR_MISSING_FORMAT` | Validation | Yes | Input or output format not provided |
275
+ | `ERR_UNSUPPORTED_FORMAT` | Validation | No | Format pair not supported |
276
+ | `ERR_INVALID_QUALITY` | Validation | Yes | Quality tier not recognized |
277
+ | `WARN_DESTRUCTIVE` | Advisory | Yes | Command modifies files in-place |
278
+
279
+ ---
280
+
281
+ ## 12. Timeout & Retry Policy
282
+
283
+ | Parameter | Default | Maximum | Rationale |
284
+ |-----------|---------|---------|-----------|
285
+ | Command generation | N/A | N/A | Synchronous; < 50ms |
286
+ | Internal retries | Zero | Zero | Deterministic output |
287
+
288
+ ---
289
+
290
+ ## 13. Observability & Logging Schema
291
+
292
+ ### Log Entry Format
293
+
294
+ ```json
295
+ {
296
+ "trace_id": "uuid",
297
+ "skill_name": "media-processing",
298
+ "contract_version": "2.0.0",
299
+ "execution_id": "uuid",
300
+ "timestamp": "ISO-8601",
301
+ "request_type": "string",
302
+ "task": "string",
303
+ "tool_selected": "string|null",
304
+ "destructive": "boolean",
305
+ "quality_parameter": "string|null",
306
+ "quality_value": "string|number|null",
307
+ "status": "success|error",
308
+ "error_code": "string|null",
309
+ "duration_ms": "number"
310
+ }
311
+ ```
312
+
313
+ ### Required Log Points
314
+
315
+ | Event | Log Level | Fields |
316
+ |-------|-----------|--------|
317
+ | Tool selected | INFO | task, tool_selected |
318
+ | Command generated | INFO | task, tool_selected, destructive |
319
+ | Destructive warning | WARN | command_template |
320
+ | Quality recommendation | INFO | quality_parameter, quality_value |
321
+ | Decision failed | ERROR | error_code, message |
322
+
323
+ ### Metrics
324
+
325
+ | Metric | Type | Unit |
326
+ |--------|------|------|
327
+ | `mediaproc.decision.duration` | Histogram | ms |
328
+ | `mediaproc.tool.distribution` | Counter | per tool |
329
+ | `mediaproc.task.distribution` | Counter | per task |
330
+ | `mediaproc.destructive.count` | Counter | per invocation |
331
+
332
+ ---
333
+
334
+ ## 14. Security & Trust Model
335
+
336
+ ### Data Handling
337
+
338
+ - Media Processing does not access file contents.
339
+ - No credentials, tokens, or PII handled.
340
+ - Generated commands may reference user-supplied file paths.
341
+ - File path sanitization is caller's responsibility.
342
+
343
+ ### Destructive Operation Safety
344
+
345
+ | Rule | Enforcement |
346
+ |------|-------------|
347
+ | mogrify always flagged | `destructive: true` + warning |
348
+ | Backup recommended | Warning message in output |
349
+ | Test before batch | Guidance to test on single file |
350
+
351
+ ---
352
+
353
+ ## 15. Scalability Model
354
+
355
+ | Dimension | Constraint | Mitigation |
356
+ |-----------|-----------|------------|
357
+ | Throughput | CPU-bound command generation | < 50ms; scales linearly |
358
+ | Concurrency | Stateless invocations | Unlimited parallel |
359
+ | Memory per invocation | < 1 MB | No accumulation |
360
+ | Network | Zero network calls | No external dependency |
361
+
362
+ ---
363
+
364
+ ## 16. Concurrency Model
365
+
366
+ Fully parallel. No shared state. No coordination required.
367
+
368
+ ---
369
+
370
+ ## 17. Resource Lifecycle Management
371
+
372
+ All resources scoped to invocation. No persistent handles.
373
+
374
+ ---
375
+
376
+ ## 18. Performance Constraints
377
+
378
+ | Operation | P50 Target | P99 Target | Hard Limit |
379
+ |-----------|-----------|-----------|------------|
380
+ | Tool selection | < 1 ms | < 5 ms | 20 ms |
381
+ | Command generation | < 3 ms | < 10 ms | 30 ms |
382
+ | Full pipeline (select + gen) | < 5 ms | < 15 ms | 50 ms |
383
+ | Output size | ≤ 500 chars | ≤ 1,500 chars | 3,000 chars |
384
+
385
+ ---
386
+
387
+ ## 19. Operational Risks
388
+
389
+ | Risk | Likelihood | Impact | Mitigation |
390
+ |------|-----------|--------|------------|
391
+ | Tool version mismatch | Medium | Command syntax may differ | Document supported versions |
392
+ | mogrify data loss | High if unflagged | Permanent file destruction | Always flag destructive |
393
+ | Wrong CRF for content type | Low | Suboptimal quality/size | CRF guide with descriptions |
394
+ | RMBG model deprecated | Low | Model unavailable | Track model availability |
395
+ | ImageMagick policy restrictions | Medium | Operations blocked | Document policy.xml fix |
396
+
397
+ ---
398
+
399
+ ## 20. Compliance with skill-design-guide.md
400
+
401
+ | Requirement | Status | Evidence |
402
+ |-------------|--------|----------|
403
+ | YAML frontmatter complete | ✅ | name, description, metadata with category, version, triggers, coordinates_with, success_metrics |
404
+ | SKILL.md < 200 lines | ✅ | Entry point under 200 lines |
405
+ | Prerequisites documented | ✅ | ffmpeg, imagemagick, rmbg-cli installation |
406
+ | When to Use section | ✅ | Task-based routing table |
407
+ | Core content matches skill type | ✅ | Expert type: decision trees, command templates |
408
+ | Troubleshooting section | ✅ | Anti-patterns table |
409
+ | Related section | ✅ | Cross-links to perf-optimizer, studio |
410
+ | Content Map for multi-file | ✅ | Link to engineering-spec.md |
411
+ | Contract versioning | ✅ | contract_version, backward_compatibility, breaking_changes |
412
+ | Compliance matrix structured | ✅ | This table with ✅/❌ + evidence |
413
+
414
+ ---
415
+
416
+ ## 21. Production Readiness Checklist
417
+
418
+ | Category | Check | Status |
419
+ |----------|-------|--------|
420
+ | **Functionality** | 3-tool routing (FFmpeg, ImageMagick, RMBG) | ✅ |
421
+ | **Functionality** | CRF quality guide (18/22/28) | ✅ |
422
+ | **Functionality** | RMBG model selection (3 models) | ✅ |
423
+ | **Functionality** | Destructive operation warnings | ✅ |
424
+ | **Functionality** | Web-optimized MP4 (-movflags +faststart) | ✅ |
425
+ | **Contracts** | Input/output/error schemas in pseudo-schema format | ✅ |
426
+ | **Contracts** | Contract versioning with semver | ✅ |
427
+ | **Failure** | Error taxonomy with 5 categorized codes | ✅ |
428
+ | **Failure** | No partial commands on error | ✅ |
429
+ | **Failure** | Zero internal retries | ✅ |
430
+ | **Determinism** | Fixed tool routing, fixed CRF, fixed models | ✅ |
431
+ | **Security** | No file access, no credentials | ✅ |
432
+ | **Observability** | Structured log schema with 5 mandatory fields | ✅ |
433
+ | **Observability** | 4 metrics defined | ✅ |
434
+ | **Performance** | P50/P99 targets for all operations | ✅ |
435
+ | **Scalability** | Stateless; unlimited parallel | ✅ |
436
+ | **Compliance** | All skill-design-guide.md sections mapped with evidence | ✅ |
437
+
438
+ ---
439
+
440
+ ## 🔗 Related
441
+
442
+ | File | When to Read |
443
+ |------|-------------|
444
+ | [../SKILL.md](../SKILL.md) | Quick reference, CRF guide, RMBG models |
445
+ | [../scripts/convert-video.ts](../scripts/convert-video.ts) | FFmpeg video converter script |
446
+ | [../scripts/optimize-image.ts](../scripts/optimize-image.ts) | ImageMagick image optimizer script |
447
+ | `perf-optimizer` | Performance profiling |
448
+ | `studio` | Design assets |
449
+
450
+ ---
451
+
452
+ ⚡ PikaKit v3.9.134
@@ -0,0 +1,155 @@
1
+ #!/usr/bin/env node
2
+ // @ts-nocheck
3
+ /**
4
+ * Video Converter — FFmpeg CLI wrapper
5
+ *
6
+ * Convert and optimize videos for web delivery.
7
+ * Supports encoding, audio extraction, thumbnails, and GIF generation.
8
+ *
9
+ * @version 2.0.0
10
+ * @contract media-processing v2.0.0
11
+ * @see references/engineering-spec.md
12
+ *
13
+ * CRF Guide (fixed):
14
+ * 18 = Visually lossless (archival)
15
+ * 22 = Recommended balance (default)
16
+ * 28 = Smaller file (web previews)
17
+ *
18
+ * Read-only: does not modify input files.
19
+ */
20
+
21
+ import { execSync } from 'node:child_process';
22
+ import path from 'node:path';
23
+
24
+ // Parse arguments
25
+ const args = process.argv.slice(2);
26
+ const getArg = (name) => {
27
+ const idx = args.indexOf(`--${name}`);
28
+ return idx !== -1 ? args[idx + 1] : null;
29
+ };
30
+
31
+ const input = getArg('input');
32
+ const output = getArg('output');
33
+ const crf = getArg('crf') || '22';
34
+ const preset = getArg('preset') || 'medium';
35
+ const mode = getArg('mode') || 'encode';
36
+
37
+ // Help
38
+ if (args.includes('--help') || !input) {
39
+ console.log(`
40
+ Video Converter — FFmpeg CLI wrapper (v2.0.0)
41
+
42
+ Usage:
43
+ node convert-video.js --input <file> [options]
44
+
45
+ Options:
46
+ --input Input video file (required)
47
+ --output Output file (default: input_web.mp4)
48
+ --mode Operation mode: encode | audio | thumbnail | gif (default: encode)
49
+ --crf Quality 0-51, lower=better (default: 22)
50
+ --preset Encoding speed: ultrafast/fast/medium/slow (default: medium)
51
+ --help Show this help
52
+
53
+ CRF Guide:
54
+ 18 = Visually lossless (large file)
55
+ 22 = Recommended balance
56
+ 28 = Smaller file, lower quality
57
+
58
+ Examples:
59
+ node convert-video.js --input raw.mov
60
+ node convert-video.js --input raw.mov --crf 18 --preset slow
61
+ node convert-video.js --input video.mp4 --mode audio
62
+ node convert-video.js --input video.mp4 --mode thumbnail
63
+ node convert-video.js --input video.mp4 --mode gif
64
+ `);
65
+ process.exit(0);
66
+ }
67
+
68
+ // Check FFmpeg
69
+ try {
70
+ execSync('ffmpeg -version', { stdio: 'ignore' });
71
+ } catch {
72
+ console.error(JSON.stringify({
73
+ success: false,
74
+ error: { code: 'ERR_TOOL_MISSING', message: 'FFmpeg not found. Install: brew install ffmpeg | choco install ffmpeg | apt install ffmpeg' }
75
+ }));
76
+ process.exit(1);
77
+ }
78
+
79
+ // Default output name
80
+ const ext = path.extname(input);
81
+ const base = path.basename(input, ext);
82
+
83
+ /** Build FFmpeg command based on mode. */
84
+ function buildCommand() {
85
+ switch (mode) {
86
+ case 'encode': {
87
+ const out = output || `${base}_web.mp4`;
88
+ return {
89
+ cmd: `ffmpeg -i "${input}" -c:v libx264 -crf ${crf} -preset ${preset} -c:a aac -movflags +faststart -y "${out}"`,
90
+ outputFile: out,
91
+ description: `Encode with CRF ${crf}, preset ${preset}`
92
+ };
93
+ }
94
+ case 'audio': {
95
+ const out = output || `${base}.m4a`;
96
+ return {
97
+ cmd: `ffmpeg -i "${input}" -vn -c:a copy -y "${out}"`,
98
+ outputFile: out,
99
+ description: 'Extract audio (copy codec)'
100
+ };
101
+ }
102
+ case 'thumbnail': {
103
+ const timestamp = getArg('timestamp') || '00:00:05';
104
+ const out = output || `${base}_thumb.jpg`;
105
+ return {
106
+ cmd: `ffmpeg -i "${input}" -ss ${timestamp} -vframes 1 -y "${out}"`,
107
+ outputFile: out,
108
+ description: `Thumbnail at ${timestamp}`
109
+ };
110
+ }
111
+ case 'gif': {
112
+ const fps = getArg('fps') || '10';
113
+ const width = getArg('width') || '480';
114
+ const out = output || `${base}.gif`;
115
+ return {
116
+ cmd: `ffmpeg -i "${input}" -vf "fps=${fps},scale=${width}:-1:flags=lanczos" -y "${out}"`,
117
+ outputFile: out,
118
+ description: `GIF at ${fps}fps, ${width}px wide`
119
+ };
120
+ }
121
+ default:
122
+ return null;
123
+ }
124
+ }
125
+
126
+ const result = buildCommand();
127
+
128
+ if (!result) {
129
+ console.error(JSON.stringify({
130
+ success: false,
131
+ error: { code: 'ERR_UNKNOWN_MODE', message: `Unknown mode: ${mode}. Use: encode, audio, thumbnail, gif` }
132
+ }));
133
+ process.exit(1);
134
+ }
135
+
136
+ console.log(`🔄 ${result.description}: ${input}`);
137
+
138
+ try {
139
+ execSync(result.cmd, { stdio: 'inherit' });
140
+ console.log(JSON.stringify({
141
+ success: true,
142
+ version: '2.0.0',
143
+ tool: 'ffmpeg',
144
+ mode,
145
+ input,
146
+ output: result.outputFile,
147
+ params: { crf: mode === 'encode' ? crf : undefined, preset: mode === 'encode' ? preset : undefined }
148
+ }));
149
+ } catch (err) {
150
+ console.error(JSON.stringify({
151
+ success: false,
152
+ error: { code: 'ERR_FFMPEG', message: err.message }
153
+ }));
154
+ process.exit(1);
155
+ }