claude-code-arcane 1.0.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 (1778) hide show
  1. package/CHANGELOG.md +100 -0
  2. package/LICENSE +26 -0
  3. package/README.md +372 -0
  4. package/agents/ai/ai-architect.md +80 -0
  5. package/agents/ai/data-engineer.md +66 -0
  6. package/agents/ai/data-scientist.md +58 -0
  7. package/agents/ai/ml-engineer.md +61 -0
  8. package/agents/business/business-ops-lead.md +64 -0
  9. package/agents/business/financial-analyst.md +62 -0
  10. package/agents/business/sales-engineer.md +74 -0
  11. package/agents/clevel/ceo-advisor.md +64 -0
  12. package/agents/clevel/cfo-advisor.md +63 -0
  13. package/agents/clevel/chief-of-staff.md +60 -0
  14. package/agents/clevel/cmo-advisor.md +67 -0
  15. package/agents/clevel/coo-advisor.md +79 -0
  16. package/agents/clevel/cto-advisor.md +72 -0
  17. package/agents/devops/cloud-architect.md +52 -0
  18. package/agents/devops/platform-lead.md +72 -0
  19. package/agents/devops/sre-lead.md +100 -0
  20. package/agents/engineering/android-engineer.md +78 -0
  21. package/agents/engineering/backend-architect.md +127 -0
  22. package/agents/engineering/database-architect.md +138 -0
  23. package/agents/engineering/flutter-engineer.md +75 -0
  24. package/agents/engineering/frontend-architect.md +138 -0
  25. package/agents/engineering/go-engineer.md +102 -0
  26. package/agents/engineering/ios-engineer.md +76 -0
  27. package/agents/engineering/node-engineer.md +107 -0
  28. package/agents/engineering/react-engineer.md +109 -0
  29. package/agents/engineering/react-native-engineer.md +112 -0
  30. package/agents/engineering/sql-specialist.md +106 -0
  31. package/agents/game/accessibility-specialist.md +150 -0
  32. package/agents/game/ai-programmer.md +95 -0
  33. package/agents/game/analytics-engineer.md +101 -0
  34. package/agents/game/art-director.md +64 -0
  35. package/agents/game/economy-designer.md +143 -0
  36. package/agents/game/game-designer.md +70 -0
  37. package/agents/game/gameplay-programmer.md +133 -0
  38. package/agents/game/lead-programmer.md +62 -0
  39. package/agents/game/level-designer.md +115 -0
  40. package/agents/game/live-ops-designer.md +184 -0
  41. package/agents/game/narrative-director.md +60 -0
  42. package/agents/game/network-programmer.md +98 -0
  43. package/agents/game/performance-analyst.md +112 -0
  44. package/agents/game/qa-lead.md +65 -0
  45. package/agents/game/qa-tester-gamedev.md +230 -0
  46. package/agents/game/release-manager.md +65 -0
  47. package/agents/game/sound-designer.md +85 -0
  48. package/agents/game/systems-designer.md +157 -0
  49. package/agents/game/technical-artist.md +108 -0
  50. package/agents/game/technical-director.md +74 -0
  51. package/agents/game/ue-replication-specialist.md +143 -0
  52. package/agents/game/unity-shader-specialist.md +178 -0
  53. package/agents/game/unity-specialist.md +184 -0
  54. package/agents/game/unreal-specialist.md +172 -0
  55. package/agents/game/ux-designer.md +112 -0
  56. package/agents/game/world-builder.md +111 -0
  57. package/agents/game/writer.md +104 -0
  58. package/agents/integrations/api-tools-specialist.md +209 -0
  59. package/agents/integrations/comms-tools-specialist.md +159 -0
  60. package/agents/integrations/design-tools-specialist.md +129 -0
  61. package/agents/integrations/docs-tools-specialist.md +116 -0
  62. package/agents/integrations/integrations-architect.md +144 -0
  63. package/agents/integrations/project-tools-specialist.md +129 -0
  64. package/agents/management/delivery-manager.md +105 -0
  65. package/agents/management/program-director.md +55 -0
  66. package/agents/management/project-manager.md +126 -0
  67. package/agents/management/scrum-master.md +96 -0
  68. package/agents/marketing/content-lead.md +74 -0
  69. package/agents/marketing/growth-lead.md +72 -0
  70. package/agents/marketing/marketing-analyst.md +89 -0
  71. package/agents/marketing/marketing-director.md +75 -0
  72. package/agents/marketing/seo-lead.md +80 -0
  73. package/agents/product/chief-product-officer.md +79 -0
  74. package/agents/product/design-system-lead.md +76 -0
  75. package/agents/product/product-manager.md +132 -0
  76. package/agents/product/ui-lead.md +73 -0
  77. package/agents/product/ux-lead.md +103 -0
  78. package/agents/quality/qa-director.md +121 -0
  79. package/agents/quality/qa-engineer.md +92 -0
  80. package/agents/quality/security-architect.md +144 -0
  81. package/agents/regulatory/compliance-officer.md +88 -0
  82. package/agents/regulatory/quality-manager.md +90 -0
  83. package/agents/regulatory/regulatory-director.md +92 -0
  84. package/agents/visualnovel/vn-comfyui-artist.md +91 -0
  85. package/agents/visualnovel/vn-narrative-director.md +86 -0
  86. package/agents/visualnovel/vn-producer.md +108 -0
  87. package/agents/visualnovel/vn-renpy-developer.md +118 -0
  88. package/agents/visualnovel/vn-scene-director.md +98 -0
  89. package/agents/visualnovel/vn-ui-designer.md +97 -0
  90. package/dist/cli.js +2352 -0
  91. package/docs/SKILLS-CATALOG.md +457 -0
  92. package/docs/USER-GUIDE.md +543 -0
  93. package/docs/agent-hierarchy.md +133 -0
  94. package/docs/coding-standards.md +135 -0
  95. package/docs/collaborative-design.md +439 -0
  96. package/docs/context-management.md +200 -0
  97. package/docs/coordination-rules.md +164 -0
  98. package/docs/directory-structure.md +156 -0
  99. package/docs/division-structure.md +135 -0
  100. package/docs/gamedev/coding-standards.md +184 -0
  101. package/docs/gates/README.md +169 -0
  102. package/docs/gates/gamedev-gates.md +509 -0
  103. package/docs/gates/software-gates.md +449 -0
  104. package/docs/software/coding-standards.md +165 -0
  105. package/docs/technical-preferences.md +61 -0
  106. package/docs/templates/accessibility-requirements.md +331 -0
  107. package/docs/templates/architecture-decision-record.md +177 -0
  108. package/docs/templates/architecture-doc-from-code.md +266 -0
  109. package/docs/templates/architecture-traceability.md +101 -0
  110. package/docs/templates/changelog-template.md +62 -0
  111. package/docs/templates/collaborative-protocols/design-agent-protocol.md +157 -0
  112. package/docs/templates/collaborative-protocols/implementation-agent-protocol.md +160 -0
  113. package/docs/templates/collaborative-protocols/leadership-agent-protocol.md +181 -0
  114. package/docs/templates/design-doc-from-implementation.md +204 -0
  115. package/docs/templates/incident-response.md +135 -0
  116. package/docs/templates/interaction-pattern-library.md +1089 -0
  117. package/docs/templates/milestone-definition.md +79 -0
  118. package/docs/templates/post-mortem.md +69 -0
  119. package/docs/templates/prd.md +222 -0
  120. package/docs/templates/project-stage-report.md +218 -0
  121. package/docs/templates/release-checklist-template.md +125 -0
  122. package/docs/templates/release-notes.md +103 -0
  123. package/docs/templates/rfc.md +256 -0
  124. package/docs/templates/risk-register-entry.md +58 -0
  125. package/docs/templates/skill-test-spec.md +96 -0
  126. package/docs/templates/sprint-plan.md +75 -0
  127. package/docs/templates/technical-design-document.md +98 -0
  128. package/docs/templates/test-evidence.md +86 -0
  129. package/docs/templates/test-plan.md +151 -0
  130. package/docs/templates/ux-spec.md +544 -0
  131. package/hooks/check-update.sh +82 -0
  132. package/hooks/detect-division.sh +28 -0
  133. package/hooks/detect-gaps.sh +230 -0
  134. package/hooks/log-agent-stop.sh +7 -0
  135. package/hooks/log-agent.sh +7 -0
  136. package/hooks/notify.sh +7 -0
  137. package/hooks/post-compact.sh +7 -0
  138. package/hooks/pre-compact.sh +7 -0
  139. package/hooks/session-start.sh +78 -0
  140. package/hooks/session-stop.sh +7 -0
  141. package/hooks/statusline.sh +98 -0
  142. package/hooks/validate-assets.sh +10 -0
  143. package/hooks/validate-commit.sh +24 -0
  144. package/hooks/validate-push.sh +21 -0
  145. package/hooks/validate-secrets.sh +23 -0
  146. package/hooks/validate-skill-change.sh +19 -0
  147. package/package.json +63 -0
  148. package/profiles/agile.yaml +60 -0
  149. package/profiles/ai.yaml +27 -0
  150. package/profiles/android-native.yaml +36 -0
  151. package/profiles/backend-go.yaml +56 -0
  152. package/profiles/backend-ts.yaml +59 -0
  153. package/profiles/business.yaml +24 -0
  154. package/profiles/clevel.yaml +48 -0
  155. package/profiles/clickup.yaml +21 -0
  156. package/profiles/core.yaml +83 -0
  157. package/profiles/database.yaml +28 -0
  158. package/profiles/design.yaml +30 -0
  159. package/profiles/docs.yaml +31 -0
  160. package/profiles/finance.yaml +23 -0
  161. package/profiles/flutter.yaml +37 -0
  162. package/profiles/frontend.yaml +39 -0
  163. package/profiles/infra.yaml +47 -0
  164. package/profiles/integrations.yaml +23 -0
  165. package/profiles/ios-native.yaml +37 -0
  166. package/profiles/jira.yaml +21 -0
  167. package/profiles/marketing.yaml +64 -0
  168. package/profiles/mobile.yaml +39 -0
  169. package/profiles/regulatory.yaml +33 -0
  170. package/profiles/security.yaml +30 -0
  171. package/profiles/self-improving.yaml +22 -0
  172. package/profiles/statusline.yaml +21 -0
  173. package/profiles/testing.yaml +32 -0
  174. package/profiles/unity-design.yaml +37 -0
  175. package/profiles/unity-dev.yaml +44 -0
  176. package/profiles/visual-novel.yaml +54 -0
  177. package/rules/ai-code.md +60 -0
  178. package/rules/api-code.md +41 -0
  179. package/rules/backend-code.md +35 -0
  180. package/rules/data-files.md +58 -0
  181. package/rules/frontend-code.md +35 -0
  182. package/rules/gamedev/ai-code.md +15 -0
  183. package/rules/gamedev/design-docs.md +18 -0
  184. package/rules/gamedev/engine-code.md +41 -0
  185. package/rules/gamedev/gameplay-code.md +31 -0
  186. package/rules/gamedev/narrative.md +15 -0
  187. package/rules/gamedev/network-code.md +15 -0
  188. package/rules/gamedev/shader-code.md +43 -0
  189. package/rules/gamedev/ui-code.md +15 -0
  190. package/rules/gamedev/vn-code.md +37 -0
  191. package/rules/implementation-workflow.md +48 -0
  192. package/rules/infra-code.md +47 -0
  193. package/rules/migration-code.md +41 -0
  194. package/rules/prototype-code.md +40 -0
  195. package/rules/test-standards.md +55 -0
  196. package/skills/ab-test-setup/SKILL.md +99 -0
  197. package/skills/ab-test-setup/references/sample-size-guide.md +252 -0
  198. package/skills/ab-test-setup/references/test-templates.md +268 -0
  199. package/skills/ab-test-setup/scripts/sample_size_calculator.py +337 -0
  200. package/skills/accessibility/SKILL.md +32 -0
  201. package/skills/accessibility/references/anti-patterns.md +9 -0
  202. package/skills/accessibility/references/component-requirements.md +15 -0
  203. package/skills/accessibility/references/focus-forms-testing.md +31 -0
  204. package/skills/accessibility/references/wcag-criteria.md +17 -0
  205. package/skills/ad-creative/SKILL.md +85 -0
  206. package/skills/ad-creative/references/creative-frameworks.md +253 -0
  207. package/skills/ad-creative/references/platform-specs.md +170 -0
  208. package/skills/ad-creative/scripts/ad_copy_validator.py +490 -0
  209. package/skills/agent-designer/README.md +430 -0
  210. package/skills/agent-designer/SKILL.md +64 -0
  211. package/skills/agent-designer/agent_evaluator.py +1223 -0
  212. package/skills/agent-designer/agent_planner.py +911 -0
  213. package/skills/agent-designer/assets/sample_execution_logs.json +543 -0
  214. package/skills/agent-designer/assets/sample_system_requirements.json +57 -0
  215. package/skills/agent-designer/assets/sample_tool_descriptions.json +545 -0
  216. package/skills/agent-designer/expected_outputs/sample_agent_architecture.json +488 -0
  217. package/skills/agent-designer/expected_outputs/sample_evaluation_report.json +570 -0
  218. package/skills/agent-designer/expected_outputs/sample_tool_schemas.json +416 -0
  219. package/skills/agent-designer/references/agent_architecture_patterns.md +445 -0
  220. package/skills/agent-designer/references/evaluation_methodology.md +749 -0
  221. package/skills/agent-designer/references/tool_design_best_practices.md +470 -0
  222. package/skills/agent-designer/tool_schema_generator.py +978 -0
  223. package/skills/agent-protocol/SKILL.md +102 -0
  224. package/skills/agent-protocol/references/communication-standard.md +115 -0
  225. package/skills/agent-protocol/references/invocation-patterns.md +247 -0
  226. package/skills/agent-protocol/references/quality-loop.md +123 -0
  227. package/skills/agent-workflow-designer/SKILL.md +59 -0
  228. package/skills/agent-workflow-designer/references/workflow-patterns.md +82 -0
  229. package/skills/agent-workflow-designer/scripts/workflow_scaffolder.py +113 -0
  230. package/skills/ai-security/SKILL.md +113 -0
  231. package/skills/ai-security/references/atlas-coverage.md +150 -0
  232. package/skills/ai-security/scripts/ai_threat_scanner.py +564 -0
  233. package/skills/ai-seo/SKILL.md +172 -0
  234. package/skills/ai-seo/references/ai-search-landscape.md +191 -0
  235. package/skills/ai-seo/references/content-patterns.md +276 -0
  236. package/skills/ai-seo/references/monitoring-guide.md +208 -0
  237. package/skills/ai-seo/references/optimization-playbook.md +58 -0
  238. package/skills/analytics-tracking/SKILL.md +105 -0
  239. package/skills/analytics-tracking/references/debugging-playbook.md +224 -0
  240. package/skills/analytics-tracking/references/event-taxonomy-guide.md +203 -0
  241. package/skills/analytics-tracking/references/gtm-patterns.md +298 -0
  242. package/skills/analytics-tracking/scripts/tracking_plan_generator.py +386 -0
  243. package/skills/android-native-dev/SKILL.md +878 -0
  244. package/skills/android-native-dev/references/accessibility.md +209 -0
  245. package/skills/android-native-dev/references/adaptive-screens.md +231 -0
  246. package/skills/android-native-dev/references/design-style-guide.md +365 -0
  247. package/skills/android-native-dev/references/functional-requirements.md +229 -0
  248. package/skills/android-native-dev/references/motion-system.md +203 -0
  249. package/skills/android-native-dev/references/performance-stability.md +223 -0
  250. package/skills/android-native-dev/references/privacy-security.md +244 -0
  251. package/skills/android-native-dev/references/testing.md +554 -0
  252. package/skills/android-native-dev/references/visual-design.md +246 -0
  253. package/skills/api-design/SKILL.md +88 -0
  254. package/skills/api-design/references/anti-patterns.md +14 -0
  255. package/skills/api-design/references/versioning-deprecation.md +23 -0
  256. package/skills/api-docs/SKILL.md +101 -0
  257. package/skills/api-versioning/SKILL.md +51 -0
  258. package/skills/api-versioning/references/anti-patterns-and-checklist.md +27 -0
  259. package/skills/api-versioning/references/implementation-by-framework.md +31 -0
  260. package/skills/app-store-optimization/HOW_TO_USE.md +281 -0
  261. package/skills/app-store-optimization/SKILL.md +150 -0
  262. package/skills/app-store-optimization/assets/aso-audit-template.md +268 -0
  263. package/skills/app-store-optimization/expected_output.json +170 -0
  264. package/skills/app-store-optimization/references/ab-testing-guide.md +72 -0
  265. package/skills/app-store-optimization/references/aso-best-practices.md +403 -0
  266. package/skills/app-store-optimization/references/before-after-examples.md +73 -0
  267. package/skills/app-store-optimization/references/keyword-research-guide.md +419 -0
  268. package/skills/app-store-optimization/references/metadata-optimization.md +65 -0
  269. package/skills/app-store-optimization/references/platform-requirements.md +324 -0
  270. package/skills/app-store-optimization/sample_input.json +30 -0
  271. package/skills/app-store-optimization/scripts/ab_test_planner.py +662 -0
  272. package/skills/app-store-optimization/scripts/aso_scorer.py +482 -0
  273. package/skills/app-store-optimization/scripts/competitor_analyzer.py +577 -0
  274. package/skills/app-store-optimization/scripts/keyword_analyzer.py +406 -0
  275. package/skills/app-store-optimization/scripts/launch_checklist.py +739 -0
  276. package/skills/app-store-optimization/scripts/localization_helper.py +588 -0
  277. package/skills/app-store-optimization/scripts/metadata_optimizer.py +581 -0
  278. package/skills/app-store-optimization/scripts/review_analyzer.py +714 -0
  279. package/skills/arcane-add/SKILL.md +47 -0
  280. package/skills/arcane-clean/SKILL.md +45 -0
  281. package/skills/arcane-list/SKILL.md +46 -0
  282. package/skills/arcane-remove/SKILL.md +68 -0
  283. package/skills/arcane-status/SKILL.md +42 -0
  284. package/skills/architecture-decision/SKILL.md +75 -0
  285. package/skills/architecture-decision/templates/adr.md +101 -0
  286. package/skills/architecture-review/SKILL.md +90 -0
  287. package/skills/art-bible/SKILL.md +88 -0
  288. package/skills/art-bible/references/anti-patterns.md +8 -0
  289. package/skills/art-bible/references/checklist.md +17 -0
  290. package/skills/asset-audit/SKILL.md +95 -0
  291. package/skills/asset-spec/SKILL.md +72 -0
  292. package/skills/asset-spec/references/anti-patterns-checklist.md +19 -0
  293. package/skills/asset-spec/references/spec-output-format.md +34 -0
  294. package/skills/async-ops/SKILL.md +59 -0
  295. package/skills/async-ops/references/anti-patterns.md +16 -0
  296. package/skills/async-ops/references/checklist.md +10 -0
  297. package/skills/async-ops/references/job-scheduling.md +37 -0
  298. package/skills/async-ops/references/outbound-webhooks.md +19 -0
  299. package/skills/atlassian-admin/SKILL.md +121 -0
  300. package/skills/atlassian-admin/assets/permission_scheme_template.json +173 -0
  301. package/skills/atlassian-admin/references/security-hardening-guide.md +214 -0
  302. package/skills/atlassian-admin/references/user-provisioning-checklist.md +177 -0
  303. package/skills/atlassian-admin/scripts/permission_audit_tool.py +469 -0
  304. package/skills/atlassian-templates/SKILL.md +128 -0
  305. package/skills/atlassian-templates/references/governance-framework.md +234 -0
  306. package/skills/atlassian-templates/references/template-design-patterns.md +252 -0
  307. package/skills/atlassian-templates/scripts/template_scaffolder.py +418 -0
  308. package/skills/audit-dev/SKILL.md +43 -0
  309. package/skills/audit-game/SKILL.md +54 -0
  310. package/skills/audit-game/references/cross-reference-criteria.md +42 -0
  311. package/skills/audit-game/references/output-template.md +48 -0
  312. package/skills/audit-log/SKILL.md +75 -0
  313. package/skills/auth-strategy/SKILL.md +120 -0
  314. package/skills/auth-strategy/references/anti-patterns.md +21 -0
  315. package/skills/aws-solution-architect/SKILL.md +125 -0
  316. package/skills/aws-solution-architect/assets/expected_output.json +55 -0
  317. package/skills/aws-solution-architect/assets/sample_input.json +18 -0
  318. package/skills/aws-solution-architect/references/architecture_patterns.md +535 -0
  319. package/skills/aws-solution-architect/references/best_practices.md +631 -0
  320. package/skills/aws-solution-architect/references/service_selection.md +484 -0
  321. package/skills/aws-solution-architect/scripts/architecture_designer.py +808 -0
  322. package/skills/aws-solution-architect/scripts/cost_optimizer.py +346 -0
  323. package/skills/aws-solution-architect/scripts/serverless_stack.py +663 -0
  324. package/skills/azure-cloud-architect/SKILL.md +128 -0
  325. package/skills/azure-cloud-architect/references/architecture_patterns.md +413 -0
  326. package/skills/azure-cloud-architect/references/best_practices.md +337 -0
  327. package/skills/azure-cloud-architect/references/service_selection.md +250 -0
  328. package/skills/azure-cloud-architect/scripts/architecture_designer.py +592 -0
  329. package/skills/azure-cloud-architect/scripts/bicep_generator.py +775 -0
  330. package/skills/azure-cloud-architect/scripts/cost_optimizer.py +492 -0
  331. package/skills/backup-strategy/SKILL.md +101 -0
  332. package/skills/balance-check/SKILL.md +119 -0
  333. package/skills/board-deck-builder/SKILL.md +64 -0
  334. package/skills/board-deck-builder/references/deck-frameworks.md +184 -0
  335. package/skills/board-deck-builder/templates/board-deck-template.md +210 -0
  336. package/skills/board-meeting/SKILL.md +58 -0
  337. package/skills/board-meeting/references/meeting-facilitation.md +167 -0
  338. package/skills/board-meeting/templates/meeting-agenda.md +81 -0
  339. package/skills/board-meeting/templates/meeting-minutes.md +91 -0
  340. package/skills/brainstorm/SKILL.md +94 -0
  341. package/skills/brainstorm/references/next-steps-pipeline.md +13 -0
  342. package/skills/brainstorm/references/review-mode-gates.md +13 -0
  343. package/skills/brand-guidelines/SKILL.md +91 -0
  344. package/skills/brand-guidelines/references/brand-identity-and-framework.md +262 -0
  345. package/skills/bug-report/SKILL.md +53 -0
  346. package/skills/bug-triage/SKILL.md +74 -0
  347. package/skills/business-investment-advisor/SKILL.md +83 -0
  348. package/skills/business-investment-advisor/references/analysis-frameworks.md +113 -0
  349. package/skills/caching-strategy/SKILL.md +81 -0
  350. package/skills/caching-strategy/references/http-headers.md +9 -0
  351. package/skills/caching-strategy/references/patterns-and-invalidation.md +25 -0
  352. package/skills/caching-strategy/references/redis-and-client.md +13 -0
  353. package/skills/caching-strategy/references/ttl-defaults.md +11 -0
  354. package/skills/campaign-analytics/SKILL.md +93 -0
  355. package/skills/campaign-analytics/assets/ab_test_template.md +130 -0
  356. package/skills/campaign-analytics/assets/campaign_report_template.md +141 -0
  357. package/skills/campaign-analytics/assets/channel_comparison_template.md +158 -0
  358. package/skills/campaign-analytics/assets/expected_output.json +110 -0
  359. package/skills/campaign-analytics/assets/sample_campaign_data.json +151 -0
  360. package/skills/campaign-analytics/references/attribution-models-guide.md +285 -0
  361. package/skills/campaign-analytics/references/campaign-metrics-benchmarks.md +259 -0
  362. package/skills/campaign-analytics/references/funnel-optimization-framework.md +302 -0
  363. package/skills/campaign-analytics/scripts/attribution_analyzer.py +347 -0
  364. package/skills/campaign-analytics/scripts/campaign_roi_calculator.py +459 -0
  365. package/skills/campaign-analytics/scripts/funnel_analyzer.py +305 -0
  366. package/skills/capa-officer/SKILL.md +125 -0
  367. package/skills/capa-officer/references/effectiveness-verification-guide.md +462 -0
  368. package/skills/capa-officer/references/rca-methodologies.md +455 -0
  369. package/skills/capa-officer/scripts/capa_tracker.py +638 -0
  370. package/skills/capa-officer/scripts/root_cause_analyzer.py +486 -0
  371. package/skills/cdn-setup/SKILL.md +33 -0
  372. package/skills/cdn-setup/references/cache-strategy-and-invalidation.md +30 -0
  373. package/skills/cdn-setup/references/security-and-anti-patterns.md +26 -0
  374. package/skills/ceo-advisor/SKILL.md +110 -0
  375. package/skills/ceo-advisor/references/board_governance_investor_relations.md +599 -0
  376. package/skills/ceo-advisor/references/executive_decision_framework.md +475 -0
  377. package/skills/ceo-advisor/references/leadership_organizational_culture.md +682 -0
  378. package/skills/ceo-advisor/scripts/financial_scenario_analyzer.py +451 -0
  379. package/skills/ceo-advisor/scripts/strategy_analyzer.py +609 -0
  380. package/skills/cfo-advisor/SKILL.md +81 -0
  381. package/skills/cfo-advisor/references/cash_management.md +374 -0
  382. package/skills/cfo-advisor/references/financial_planning.md +500 -0
  383. package/skills/cfo-advisor/references/fundraising_playbook.md +419 -0
  384. package/skills/cfo-advisor/scripts/burn_rate_calculator.py +402 -0
  385. package/skills/cfo-advisor/scripts/fundraising_model.py +490 -0
  386. package/skills/cfo-advisor/scripts/unit_economics_analyzer.py +529 -0
  387. package/skills/change-management/SKILL.md +53 -0
  388. package/skills/change-management/references/adkar-details.md +110 -0
  389. package/skills/change-management/references/change-playbook.md +308 -0
  390. package/skills/changelog/SKILL.md +111 -0
  391. package/skills/check/SKILL.md +22 -0
  392. package/skills/chief-of-staff/SKILL.md +70 -0
  393. package/skills/chief-of-staff/references/routing-matrix.md +212 -0
  394. package/skills/chief-of-staff/references/synthesis-framework.md +201 -0
  395. package/skills/chro-advisor/SKILL.md +86 -0
  396. package/skills/chro-advisor/references/comp_frameworks.md +320 -0
  397. package/skills/chro-advisor/references/org_design.md +333 -0
  398. package/skills/chro-advisor/references/people_strategy.md +320 -0
  399. package/skills/chro-advisor/scripts/comp_benchmarker.py +613 -0
  400. package/skills/chro-advisor/scripts/hiring_plan_modeler.py +572 -0
  401. package/skills/churn-prevention/SKILL.md +200 -0
  402. package/skills/churn-prevention/references/cancel-flow-playbook.md +254 -0
  403. package/skills/churn-prevention/references/dunning-guide.md +276 -0
  404. package/skills/churn-prevention/references/exit-survey-and-save-offers.md +42 -0
  405. package/skills/churn-prevention/scripts/churn_impact_calculator.py +199 -0
  406. package/skills/ci-cd-setup/SKILL.md +66 -0
  407. package/skills/ci-cd-setup/references/anti-patterns.md +10 -0
  408. package/skills/ci-cd-setup/references/checklist.md +14 -0
  409. package/skills/ci-cd-setup/references/secret-and-deploy.md +30 -0
  410. package/skills/ciso-advisor/SKILL.md +86 -0
  411. package/skills/ciso-advisor/references/compliance_roadmap.md +370 -0
  412. package/skills/ciso-advisor/references/incident_response.md +350 -0
  413. package/skills/ciso-advisor/references/security_strategy.md +321 -0
  414. package/skills/ciso-advisor/scripts/compliance_tracker.py +781 -0
  415. package/skills/ciso-advisor/scripts/risk_quantifier.py +690 -0
  416. package/skills/clickup/SKILL.md +134 -0
  417. package/skills/cloud-security/SKILL.md +107 -0
  418. package/skills/cloud-security/references/cspm-checks.md +109 -0
  419. package/skills/cloud-security/scripts/cloud_posture_check.py +1180 -0
  420. package/skills/cmo-advisor/SKILL.md +82 -0
  421. package/skills/cmo-advisor/references/brand_positioning.md +374 -0
  422. package/skills/cmo-advisor/references/growth_frameworks.md +456 -0
  423. package/skills/cmo-advisor/references/marketing_org.md +281 -0
  424. package/skills/cmo-advisor/scripts/growth_model_simulator.py +416 -0
  425. package/skills/cmo-advisor/scripts/marketing_budget_modeler.py +440 -0
  426. package/skills/code-review/SKILL.md +66 -0
  427. package/skills/cold-email/SKILL.md +178 -0
  428. package/skills/cold-email/references/deliverability-guide.md +225 -0
  429. package/skills/cold-email/references/follow-up-playbook.md +225 -0
  430. package/skills/cold-email/references/frameworks.md +217 -0
  431. package/skills/cold-email/references/voice-and-subject-lines.md +41 -0
  432. package/skills/cold-email/scripts/email_sequence_analyzer.py +517 -0
  433. package/skills/commit/SKILL.md +25 -0
  434. package/skills/company-os/SKILL.md +66 -0
  435. package/skills/company-os/references/implementation-guide.md +249 -0
  436. package/skills/company-os/references/os-comparison.md +242 -0
  437. package/skills/company-os/references/six-components.md +129 -0
  438. package/skills/competitive-intel/SKILL.md +62 -0
  439. package/skills/competitive-intel/references/ci-playbook.md +237 -0
  440. package/skills/competitive-intel/templates/battlecard-template.md +99 -0
  441. package/skills/competitive-teardown/SKILL.md +169 -0
  442. package/skills/competitive-teardown/references/analysis-templates.md +203 -0
  443. package/skills/competitive-teardown/references/competitive-analysis-frameworks.md +107 -0
  444. package/skills/competitive-teardown/references/data-collection-guide.md +104 -0
  445. package/skills/competitive-teardown/references/scoring-rubric.md +116 -0
  446. package/skills/competitive-teardown/scripts/competitive_matrix_builder.py +299 -0
  447. package/skills/competitor-alternatives/SKILL.md +92 -0
  448. package/skills/competitor-alternatives/references/content-architecture.md +263 -0
  449. package/skills/competitor-alternatives/references/templates.md +212 -0
  450. package/skills/competitor-alternatives/scripts/comparison_matrix_builder.py +365 -0
  451. package/skills/confluence-expert/SKILL.md +129 -0
  452. package/skills/confluence-expert/references/macro-cheat-sheet.md +144 -0
  453. package/skills/confluence-expert/references/space-architecture-patterns.md +246 -0
  454. package/skills/confluence-expert/references/templates.md +725 -0
  455. package/skills/confluence-expert/scripts/content_audit_analyzer.py +457 -0
  456. package/skills/confluence-expert/scripts/space_structure_generator.py +517 -0
  457. package/skills/consistency-check/SKILL.md +68 -0
  458. package/skills/content-creator/SKILL.md +52 -0
  459. package/skills/content-creator/assets/content_calendar_template.md +99 -0
  460. package/skills/content-creator/examples/brand_voice_analysis_example.md +180 -0
  461. package/skills/content-creator/examples/seo_optimization_example.md +259 -0
  462. package/skills/content-creator/references/analytics_guide.md +352 -0
  463. package/skills/content-creator/references/brand_guidelines.md +219 -0
  464. package/skills/content-creator/references/content_frameworks.md +551 -0
  465. package/skills/content-creator/references/social_media_optimization.md +342 -0
  466. package/skills/content-humanizer/SKILL.md +193 -0
  467. package/skills/content-humanizer/references/ai-tells-checklist.md +157 -0
  468. package/skills/content-humanizer/references/voice-techniques.md +168 -0
  469. package/skills/content-humanizer/scripts/humanizer_scorer.py +504 -0
  470. package/skills/content-production/SKILL.md +192 -0
  471. package/skills/content-production/references/content-brief-guide.md +146 -0
  472. package/skills/content-production/references/optimization-checklist.md +139 -0
  473. package/skills/content-production/scripts/brand_voice_analyzer.py +197 -0
  474. package/skills/content-production/scripts/content_scorer.py +464 -0
  475. package/skills/content-production/scripts/seo_optimizer.py +433 -0
  476. package/skills/content-production/templates/content-brief-template.md +126 -0
  477. package/skills/content-strategy/SKILL.md +125 -0
  478. package/skills/content-strategy/references/content-strategy-reference.md +278 -0
  479. package/skills/content-strategy/scripts/topic_cluster_mapper.py +243 -0
  480. package/skills/context-engine/SKILL.md +50 -0
  481. package/skills/context-engine/references/anonymization-protocol.md +173 -0
  482. package/skills/context-prime/SKILL.md +25 -0
  483. package/skills/contract-and-proposal-writer/SKILL.md +126 -0
  484. package/skills/contract-and-proposal-writer/references/contract-templates.md +276 -0
  485. package/skills/contract-testing/SKILL.md +42 -0
  486. package/skills/contract-testing/references/anti-patterns-and-checklist.md +28 -0
  487. package/skills/contract-testing/references/implementation-details.md +29 -0
  488. package/skills/coo-advisor/SKILL.md +92 -0
  489. package/skills/coo-advisor/references/ops_cadence.md +606 -0
  490. package/skills/coo-advisor/references/process_frameworks.md +459 -0
  491. package/skills/coo-advisor/references/scaling_playbook.md +465 -0
  492. package/skills/coo-advisor/scripts/okr_tracker.py +1100 -0
  493. package/skills/coo-advisor/scripts/ops_efficiency_analyzer.py +1071 -0
  494. package/skills/copy-editing/SKILL.md +124 -0
  495. package/skills/copy-editing/references/copy-editing-checklist.md +134 -0
  496. package/skills/copy-editing/references/plain-english-alternatives.md +376 -0
  497. package/skills/copy-editing/references/seven-sweeps-framework.md +228 -0
  498. package/skills/copy-editing/scripts/readability_scorer.py +285 -0
  499. package/skills/copywriting/SKILL.md +192 -0
  500. package/skills/copywriting/references/copy-frameworks.md +338 -0
  501. package/skills/copywriting/references/natural-transitions.md +252 -0
  502. package/skills/copywriting/references/writing-style-rules.md +63 -0
  503. package/skills/copywriting/scripts/headline_scorer.py +256 -0
  504. package/skills/cpo-advisor/SKILL.md +102 -0
  505. package/skills/cpo-advisor/references/pmf_playbook.md +307 -0
  506. package/skills/cpo-advisor/references/product_org_design.md +407 -0
  507. package/skills/cpo-advisor/references/product_strategy.md +454 -0
  508. package/skills/cpo-advisor/scripts/pmf_scorer.py +600 -0
  509. package/skills/cpo-advisor/scripts/portfolio_analyzer.py +547 -0
  510. package/skills/create-epics/SKILL.md +65 -0
  511. package/skills/create-pr/SKILL.md +26 -0
  512. package/skills/create-stories/SKILL.md +85 -0
  513. package/skills/create-test-user/SKILL.md +37 -0
  514. package/skills/create-ticket/SKILL.md +50 -0
  515. package/skills/cro-advisor/SKILL.md +86 -0
  516. package/skills/cro-advisor/references/nrr_playbook.md +380 -0
  517. package/skills/cro-advisor/references/pricing_strategy.md +417 -0
  518. package/skills/cro-advisor/references/sales_playbook.md +461 -0
  519. package/skills/cro-advisor/scripts/churn_analyzer.py +742 -0
  520. package/skills/cro-advisor/scripts/revenue_forecast_model.py +571 -0
  521. package/skills/cs-onboard/SKILL.md +60 -0
  522. package/skills/cs-onboard/references/interview-guide.md +173 -0
  523. package/skills/cs-onboard/templates/company-context-template.md +144 -0
  524. package/skills/csp-headers/SKILL.md +53 -0
  525. package/skills/csp-headers/references/anti-patterns-checklist.md +26 -0
  526. package/skills/csp-headers/references/implementation.md +18 -0
  527. package/skills/cto-advisor/SKILL.md +95 -0
  528. package/skills/cto-advisor/references/architecture_decision_records.md +294 -0
  529. package/skills/cto-advisor/references/engineering_metrics.md +393 -0
  530. package/skills/cto-advisor/references/technology_evaluation_framework.md +370 -0
  531. package/skills/cto-advisor/references/workflows.md +84 -0
  532. package/skills/cto-advisor/scripts/team_scaling_calculator.py +562 -0
  533. package/skills/cto-advisor/scripts/tech_debt_analyzer.py +450 -0
  534. package/skills/culture-architect/SKILL.md +66 -0
  535. package/skills/culture-architect/references/culture-playbook.md +243 -0
  536. package/skills/culture-architect/templates/culture-code-template.md +137 -0
  537. package/skills/customer-success-manager/SKILL.md +97 -0
  538. package/skills/customer-success-manager/assets/executive_business_review_template.md +209 -0
  539. package/skills/customer-success-manager/assets/expected_output.json +170 -0
  540. package/skills/customer-success-manager/assets/onboarding_checklist_template.md +215 -0
  541. package/skills/customer-success-manager/assets/qbr_template.md +163 -0
  542. package/skills/customer-success-manager/assets/sample_customer_data.json +314 -0
  543. package/skills/customer-success-manager/assets/success_plan_template.md +167 -0
  544. package/skills/customer-success-manager/references/cs-metrics-benchmarks.md +259 -0
  545. package/skills/customer-success-manager/references/cs-playbooks.md +290 -0
  546. package/skills/customer-success-manager/references/health-scoring-framework.md +184 -0
  547. package/skills/customer-success-manager/scripts/churn_risk_analyzer.py +487 -0
  548. package/skills/customer-success-manager/scripts/expansion_opportunity_scorer.py +414 -0
  549. package/skills/customer-success-manager/scripts/health_score_calculator.py +438 -0
  550. package/skills/data-migrations/SKILL.md +113 -0
  551. package/skills/data-migrations/references/anti-patterns.md +14 -0
  552. package/skills/data-migrations/references/batching.md +9 -0
  553. package/skills/data-migrations/references/checklist.md +14 -0
  554. package/skills/data-migrations/references/expand-contract.md +19 -0
  555. package/skills/data-operations/SKILL.md +59 -0
  556. package/skills/data-operations/references/anti-patterns.md +17 -0
  557. package/skills/data-operations/references/query-optimization.md +37 -0
  558. package/skills/data-operations/references/seeding.md +38 -0
  559. package/skills/data-seeding/SKILL.md +96 -0
  560. package/skills/database/SKILL.md +74 -0
  561. package/skills/database/references/anti-patterns.md +20 -0
  562. package/skills/database/references/query-patterns.md +32 -0
  563. package/skills/database-indexing/SKILL.md +85 -0
  564. package/skills/database-indexing/references/anti-patterns.md +14 -0
  565. package/skills/database-indexing/references/checklists.md +23 -0
  566. package/skills/database-indexing/references/index-types.md +18 -0
  567. package/skills/database-setup/SKILL.md +109 -0
  568. package/skills/database-setup/references/indexing-guide.md +126 -0
  569. package/skills/db-diagram/SKILL.md +87 -0
  570. package/skills/decision-logger/SKILL.md +59 -0
  571. package/skills/decision-logger/references/entry-format.md +55 -0
  572. package/skills/decision-logger/scripts/decision_tracker.py +620 -0
  573. package/skills/decision-logger/templates/decision-entry.md +63 -0
  574. package/skills/deploy-check/SKILL.md +87 -0
  575. package/skills/deploy-staging/SKILL.md +44 -0
  576. package/skills/deps-audit/SKILL.md +92 -0
  577. package/skills/design-handoff/SKILL.md +49 -0
  578. package/skills/design-system/SKILL.md +56 -0
  579. package/skills/design-system/references/post-design-validation.md +8 -0
  580. package/skills/design-system/references/section-guidance.md +29 -0
  581. package/skills/distributed-tracing/SKILL.md +86 -0
  582. package/skills/doc-gdd/SKILL.md +56 -0
  583. package/skills/doc-pas/SKILL.md +41 -0
  584. package/skills/doc-pas/references/examples-and-usage.md +27 -0
  585. package/skills/doc-pas/references/output-format-template.md +63 -0
  586. package/skills/doc-rfc/SKILL.md +55 -0
  587. package/skills/doc-rfc/templates/decision.md +38 -0
  588. package/skills/doc-rfc/templates/epica.md +68 -0
  589. package/skills/doc-rfc/templates/hu.md +52 -0
  590. package/skills/doc-rfc/templates/tarea.md +37 -0
  591. package/skills/docker-setup/SKILL.md +78 -0
  592. package/skills/docker-setup/references/anti-patterns.md +10 -0
  593. package/skills/docker-setup/references/checklists.md +34 -0
  594. package/skills/docker-setup/references/size-optimization.md +7 -0
  595. package/skills/docx-generator/SKILL.md +249 -0
  596. package/skills/docx-generator/assets/styles/academic_styles.xml +250 -0
  597. package/skills/docx-generator/assets/styles/corporate_styles.xml +284 -0
  598. package/skills/docx-generator/assets/styles/default_styles.xml +449 -0
  599. package/skills/docx-generator/assets/xsd/aesthetic-rules.xsd +470 -0
  600. package/skills/docx-generator/assets/xsd/business-rules.xsd +130 -0
  601. package/skills/docx-generator/assets/xsd/common-types.xsd +159 -0
  602. package/skills/docx-generator/assets/xsd/wml-subset.xsd +589 -0
  603. package/skills/docx-generator/references/cjk_typography.md +357 -0
  604. package/skills/docx-generator/references/cjk_university_template_guide.md +184 -0
  605. package/skills/docx-generator/references/comments_guide.md +191 -0
  606. package/skills/docx-generator/references/design_good_bad_examples.md +829 -0
  607. package/skills/docx-generator/references/design_principles.md +819 -0
  608. package/skills/docx-generator/references/openxml_element_order.md +308 -0
  609. package/skills/docx-generator/references/openxml_encyclopedia_part1.md +4061 -0
  610. package/skills/docx-generator/references/openxml_encyclopedia_part2.md +2820 -0
  611. package/skills/docx-generator/references/openxml_encyclopedia_part3.md +3381 -0
  612. package/skills/docx-generator/references/openxml_namespaces.md +82 -0
  613. package/skills/docx-generator/references/openxml_units.md +72 -0
  614. package/skills/docx-generator/references/scenario_a_create.md +284 -0
  615. package/skills/docx-generator/references/scenario_b_edit_content.md +295 -0
  616. package/skills/docx-generator/references/scenario_c_apply_template.md +456 -0
  617. package/skills/docx-generator/references/track_changes_guide.md +200 -0
  618. package/skills/docx-generator/references/troubleshooting.md +506 -0
  619. package/skills/docx-generator/references/typography_guide.md +294 -0
  620. package/skills/docx-generator/references/xsd_validation_guide.md +158 -0
  621. package/skills/docx-generator/scripts/doc_to_docx.sh +40 -0
  622. package/skills/docx-generator/scripts/docx_preview.sh +37 -0
  623. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Cli/Program.cs +18 -0
  624. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/Commands/AnalyzeCommand.cs +147 -0
  625. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/Commands/ApplyTemplateCommand.cs +322 -0
  626. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/Commands/CreateCommand.cs +324 -0
  627. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/Commands/DiffCommand.cs +155 -0
  628. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/Commands/EditContentCommand.cs +487 -0
  629. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/Commands/FixOrderCommand.cs +108 -0
  630. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/Commands/MergeRunsCommand.cs +122 -0
  631. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/Commands/ValidateCommand.cs +107 -0
  632. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/CommentSynchronizer.cs +169 -0
  633. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/ElementOrder.cs +80 -0
  634. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/NamespaceConstants.cs +42 -0
  635. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/RunMerger.cs +81 -0
  636. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/StyleAnalyzer.cs +81 -0
  637. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/TrackChangesHelper.cs +99 -0
  638. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/UnitConverter.cs +23 -0
  639. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples.cs +1832 -0
  640. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch1.cs +910 -0
  641. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch2.cs +999 -0
  642. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch3.cs +1048 -0
  643. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch4.cs +1038 -0
  644. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/Samples/CharacterFormattingSamples.cs +1020 -0
  645. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/Samples/DocumentCreationSamples.cs +1121 -0
  646. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/Samples/FieldAndTocSamples.cs +624 -0
  647. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/Samples/FootnoteAndCommentSamples.cs +675 -0
  648. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/Samples/HeaderFooterSamples.cs +838 -0
  649. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ImageSamples.cs +917 -0
  650. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ListAndNumberingSamples.cs +826 -0
  651. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ParagraphFormattingSamples.cs +1199 -0
  652. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/Samples/StyleSystemSamples.cs +1487 -0
  653. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/Samples/TableSamples.cs +1163 -0
  654. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/Samples/TrackChangesSamples.cs +595 -0
  655. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/Typography/CjkHelper.cs +39 -0
  656. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/Typography/FontDefaults.cs +24 -0
  657. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/Typography/PageSizes.cs +20 -0
  658. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/Validation/BusinessRuleValidator.cs +224 -0
  659. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/Validation/GateCheckValidator.cs +148 -0
  660. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/Validation/ValidationResult.cs +23 -0
  661. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.Core/Validation/XsdValidator.cs +69 -0
  662. package/skills/docx-generator/scripts/dotnet/MiniMaxAIDocx.slnx +4 -0
  663. package/skills/docx-generator/scripts/env_check.sh +196 -0
  664. package/skills/docx-generator/scripts/setup.ps1 +274 -0
  665. package/skills/docx-generator/scripts/setup.sh +504 -0
  666. package/skills/email-sequence/SKILL.md +119 -0
  667. package/skills/email-sequence/references/email-sequence-playbook.md +209 -0
  668. package/skills/email-sequence/scripts/sequence_analyzer.py +354 -0
  669. package/skills/email-template-builder/SKILL.md +93 -0
  670. package/skills/email-template-builder/references/react-email-templates.md +323 -0
  671. package/skills/env-sync/SKILL.md +102 -0
  672. package/skills/error-tracking/SKILL.md +25 -0
  673. package/skills/error-tracking/references/anti-patterns-and-checklist.md +23 -0
  674. package/skills/error-tracking/references/operational-details.md +38 -0
  675. package/skills/error-tracking/references/setup-per-stack.md +24 -0
  676. package/skills/estimate/SKILL.md +51 -0
  677. package/skills/estimate/references/complexity-factors.md +30 -0
  678. package/skills/estimate/references/estimate-template.md +60 -0
  679. package/skills/executive-mentor/.claude-plugin/plugin.json +13 -0
  680. package/skills/executive-mentor/SKILL.md +90 -0
  681. package/skills/executive-mentor/agents/devils-advocate.md +139 -0
  682. package/skills/executive-mentor/references/board_dynamics.md +263 -0
  683. package/skills/executive-mentor/references/crisis_playbook.md +173 -0
  684. package/skills/executive-mentor/references/hard_things.md +256 -0
  685. package/skills/executive-mentor/scripts/decision_matrix_scorer.py +491 -0
  686. package/skills/executive-mentor/scripts/stakeholder_mapper.py +547 -0
  687. package/skills/executive-mentor/skills/board-prep/SKILL.md +76 -0
  688. package/skills/executive-mentor/skills/challenge/SKILL.md +80 -0
  689. package/skills/executive-mentor/skills/hard-call/SKILL.md +64 -0
  690. package/skills/executive-mentor/skills/postmortem/SKILL.md +78 -0
  691. package/skills/executive-mentor/skills/stress-test/SKILL.md +74 -0
  692. package/skills/executive-mentor/skills/stress-test/references/patterns-by-type.md +73 -0
  693. package/skills/experiment-designer/SKILL.md +108 -0
  694. package/skills/experiment-designer/references/experiment-playbook.md +70 -0
  695. package/skills/experiment-designer/references/statistics-reference.md +56 -0
  696. package/skills/experiment-designer/scripts/sample_size_calculator.py +100 -0
  697. package/skills/fda-consultant-specialist/SKILL.md +102 -0
  698. package/skills/fda-consultant-specialist/references/device_cybersecurity_guidance.md +695 -0
  699. package/skills/fda-consultant-specialist/references/fda_capa_requirements.md +718 -0
  700. package/skills/fda-consultant-specialist/references/fda_submission_guide.md +400 -0
  701. package/skills/fda-consultant-specialist/references/hipaa_compliance_framework.md +721 -0
  702. package/skills/fda-consultant-specialist/references/qsr_compliance_requirements.md +753 -0
  703. package/skills/fda-consultant-specialist/scripts/fda_submission_tracker.py +493 -0
  704. package/skills/fda-consultant-specialist/scripts/hipaa_risk_assessment.py +626 -0
  705. package/skills/fda-consultant-specialist/scripts/qsr_compliance_checker.py +618 -0
  706. package/skills/feature-flags/SKILL.md +98 -0
  707. package/skills/figma/SKILL.md +124 -0
  708. package/skills/figma-to-code/SKILL.md +80 -0
  709. package/skills/figma-to-code/references/checklist-and-output.md +32 -0
  710. package/skills/figma-to-code/references/stack-detection.md +34 -0
  711. package/skills/figma-tokens/SKILL.md +55 -0
  712. package/skills/file-uploads/SKILL.md +95 -0
  713. package/skills/financial-analyst/SKILL.md +152 -0
  714. package/skills/financial-analyst/assets/dcf_analysis_template.md +184 -0
  715. package/skills/financial-analyst/assets/expected_output.json +161 -0
  716. package/skills/financial-analyst/assets/forecast_report_template.md +177 -0
  717. package/skills/financial-analyst/assets/sample_financial_data.json +219 -0
  718. package/skills/financial-analyst/assets/variance_report_template.md +122 -0
  719. package/skills/financial-analyst/references/financial-ratios-guide.md +376 -0
  720. package/skills/financial-analyst/references/forecasting-best-practices.md +279 -0
  721. package/skills/financial-analyst/references/industry-adaptations.md +103 -0
  722. package/skills/financial-analyst/references/valuation-methodology.md +246 -0
  723. package/skills/financial-analyst/scripts/budget_variance_analyzer.py +406 -0
  724. package/skills/financial-analyst/scripts/dcf_valuation.py +449 -0
  725. package/skills/financial-analyst/scripts/forecast_builder.py +494 -0
  726. package/skills/financial-analyst/scripts/ratio_calculator.py +432 -0
  727. package/skills/fix-issue/SKILL.md +19 -0
  728. package/skills/flutter-dev/SKILL.md +122 -0
  729. package/skills/flutter-dev/references/animations.md +497 -0
  730. package/skills/flutter-dev/references/bloc-state.md +281 -0
  731. package/skills/flutter-dev/references/forms.md +656 -0
  732. package/skills/flutter-dev/references/gorouter-navigation.md +257 -0
  733. package/skills/flutter-dev/references/localization.md +510 -0
  734. package/skills/flutter-dev/references/networking.md +566 -0
  735. package/skills/flutter-dev/references/performance.md +306 -0
  736. package/skills/flutter-dev/references/platform-specific.md +417 -0
  737. package/skills/flutter-dev/references/project-structure.md +274 -0
  738. package/skills/flutter-dev/references/riverpod-state.md +232 -0
  739. package/skills/flutter-dev/references/testing.md +364 -0
  740. package/skills/flutter-dev/references/widget-patterns.md +233 -0
  741. package/skills/form-cro/SKILL.md +128 -0
  742. package/skills/form-cro/references/experiments.md +77 -0
  743. package/skills/form-cro/references/form-cro-playbook.md +271 -0
  744. package/skills/form-cro/scripts/form_field_analyzer.py +291 -0
  745. package/skills/form-validation/SKILL.md +75 -0
  746. package/skills/founder-coach/SKILL.md +57 -0
  747. package/skills/founder-coach/references/delegation-energy.md +124 -0
  748. package/skills/founder-coach/references/founder-toolkit.md +296 -0
  749. package/skills/founder-coach/references/leadership-evolution.md +112 -0
  750. package/skills/founder-coach/references/leadership-growth.md +178 -0
  751. package/skills/free-tool-strategy/SKILL.md +167 -0
  752. package/skills/free-tool-strategy/references/design-and-lead-capture.md +58 -0
  753. package/skills/free-tool-strategy/references/launch-playbook.md +182 -0
  754. package/skills/free-tool-strategy/references/tool-types-guide.md +253 -0
  755. package/skills/free-tool-strategy/scripts/tool_roi_estimator.py +401 -0
  756. package/skills/frontend-dev/SKILL.md +555 -0
  757. package/skills/frontend-dev/canvas-fonts/ArsenalSC-OFL.txt +93 -0
  758. package/skills/frontend-dev/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  759. package/skills/frontend-dev/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  760. package/skills/frontend-dev/canvas-fonts/BigShoulders-OFL.txt +93 -0
  761. package/skills/frontend-dev/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  762. package/skills/frontend-dev/canvas-fonts/Boldonse-OFL.txt +93 -0
  763. package/skills/frontend-dev/canvas-fonts/Boldonse-Regular.ttf +0 -0
  764. package/skills/frontend-dev/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  765. package/skills/frontend-dev/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
  766. package/skills/frontend-dev/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  767. package/skills/frontend-dev/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  768. package/skills/frontend-dev/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  769. package/skills/frontend-dev/canvas-fonts/CrimsonPro-OFL.txt +93 -0
  770. package/skills/frontend-dev/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  771. package/skills/frontend-dev/canvas-fonts/DMMono-OFL.txt +93 -0
  772. package/skills/frontend-dev/canvas-fonts/DMMono-Regular.ttf +0 -0
  773. package/skills/frontend-dev/canvas-fonts/EricaOne-OFL.txt +94 -0
  774. package/skills/frontend-dev/canvas-fonts/EricaOne-Regular.ttf +0 -0
  775. package/skills/frontend-dev/canvas-fonts/GeistMono-Bold.ttf +0 -0
  776. package/skills/frontend-dev/canvas-fonts/GeistMono-OFL.txt +93 -0
  777. package/skills/frontend-dev/canvas-fonts/GeistMono-Regular.ttf +0 -0
  778. package/skills/frontend-dev/canvas-fonts/Gloock-OFL.txt +93 -0
  779. package/skills/frontend-dev/canvas-fonts/Gloock-Regular.ttf +0 -0
  780. package/skills/frontend-dev/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  781. package/skills/frontend-dev/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
  782. package/skills/frontend-dev/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  783. package/skills/frontend-dev/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  784. package/skills/frontend-dev/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  785. package/skills/frontend-dev/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  786. package/skills/frontend-dev/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  787. package/skills/frontend-dev/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  788. package/skills/frontend-dev/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  789. package/skills/frontend-dev/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  790. package/skills/frontend-dev/canvas-fonts/InstrumentSans-OFL.txt +93 -0
  791. package/skills/frontend-dev/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  792. package/skills/frontend-dev/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  793. package/skills/frontend-dev/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  794. package/skills/frontend-dev/canvas-fonts/Italiana-OFL.txt +93 -0
  795. package/skills/frontend-dev/canvas-fonts/Italiana-Regular.ttf +0 -0
  796. package/skills/frontend-dev/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  797. package/skills/frontend-dev/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
  798. package/skills/frontend-dev/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  799. package/skills/frontend-dev/canvas-fonts/Jura-Light.ttf +0 -0
  800. package/skills/frontend-dev/canvas-fonts/Jura-Medium.ttf +0 -0
  801. package/skills/frontend-dev/canvas-fonts/Jura-OFL.txt +93 -0
  802. package/skills/frontend-dev/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
  803. package/skills/frontend-dev/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  804. package/skills/frontend-dev/canvas-fonts/Lora-Bold.ttf +0 -0
  805. package/skills/frontend-dev/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  806. package/skills/frontend-dev/canvas-fonts/Lora-Italic.ttf +0 -0
  807. package/skills/frontend-dev/canvas-fonts/Lora-OFL.txt +93 -0
  808. package/skills/frontend-dev/canvas-fonts/Lora-Regular.ttf +0 -0
  809. package/skills/frontend-dev/canvas-fonts/NationalPark-Bold.ttf +0 -0
  810. package/skills/frontend-dev/canvas-fonts/NationalPark-OFL.txt +93 -0
  811. package/skills/frontend-dev/canvas-fonts/NationalPark-Regular.ttf +0 -0
  812. package/skills/frontend-dev/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
  813. package/skills/frontend-dev/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  814. package/skills/frontend-dev/canvas-fonts/Outfit-Bold.ttf +0 -0
  815. package/skills/frontend-dev/canvas-fonts/Outfit-OFL.txt +93 -0
  816. package/skills/frontend-dev/canvas-fonts/Outfit-Regular.ttf +0 -0
  817. package/skills/frontend-dev/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  818. package/skills/frontend-dev/canvas-fonts/PixelifySans-OFL.txt +93 -0
  819. package/skills/frontend-dev/canvas-fonts/PoiretOne-OFL.txt +93 -0
  820. package/skills/frontend-dev/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  821. package/skills/frontend-dev/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  822. package/skills/frontend-dev/canvas-fonts/RedHatMono-OFL.txt +93 -0
  823. package/skills/frontend-dev/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  824. package/skills/frontend-dev/canvas-fonts/Silkscreen-OFL.txt +93 -0
  825. package/skills/frontend-dev/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  826. package/skills/frontend-dev/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  827. package/skills/frontend-dev/canvas-fonts/SmoochSans-OFL.txt +93 -0
  828. package/skills/frontend-dev/canvas-fonts/Tektur-Medium.ttf +0 -0
  829. package/skills/frontend-dev/canvas-fonts/Tektur-OFL.txt +93 -0
  830. package/skills/frontend-dev/canvas-fonts/Tektur-Regular.ttf +0 -0
  831. package/skills/frontend-dev/canvas-fonts/WorkSans-Bold.ttf +0 -0
  832. package/skills/frontend-dev/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  833. package/skills/frontend-dev/canvas-fonts/WorkSans-Italic.ttf +0 -0
  834. package/skills/frontend-dev/canvas-fonts/WorkSans-OFL.txt +93 -0
  835. package/skills/frontend-dev/canvas-fonts/WorkSans-Regular.ttf +0 -0
  836. package/skills/frontend-dev/canvas-fonts/YoungSerif-OFL.txt +93 -0
  837. package/skills/frontend-dev/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  838. package/skills/frontend-dev/references/asset-prompt-guide.md +43 -0
  839. package/skills/frontend-dev/references/env-setup.md +33 -0
  840. package/skills/frontend-dev/references/minimax-cli-reference.md +133 -0
  841. package/skills/frontend-dev/references/minimax-image-guide.md +65 -0
  842. package/skills/frontend-dev/references/minimax-music-guide.md +216 -0
  843. package/skills/frontend-dev/references/minimax-tts-guide.md +78 -0
  844. package/skills/frontend-dev/references/minimax-video-guide.md +82 -0
  845. package/skills/frontend-dev/references/minimax-voice-catalog.md +686 -0
  846. package/skills/frontend-dev/references/motion-recipes.md +407 -0
  847. package/skills/frontend-dev/references/troubleshooting.md +85 -0
  848. package/skills/frontend-dev/scripts/minimax_image.py +137 -0
  849. package/skills/frontend-dev/scripts/minimax_music.py +157 -0
  850. package/skills/frontend-dev/scripts/minimax_tts.py +127 -0
  851. package/skills/frontend-dev/scripts/minimax_video.py +187 -0
  852. package/skills/frontend-dev/templates/generator_template.js +223 -0
  853. package/skills/frontend-dev/templates/viewer.html +599 -0
  854. package/skills/game-analysis/SKILL.md +51 -0
  855. package/skills/game-analysis/references/anti-patterns-checklist.md +25 -0
  856. package/skills/game-analysis/references/balance-report-format.md +21 -0
  857. package/skills/game-analysis/references/playtest-template.md +28 -0
  858. package/skills/game-audit/SKILL.md +66 -0
  859. package/skills/game-docs/SKILL.md +58 -0
  860. package/skills/game-docs/references/gdd-structure.md +24 -0
  861. package/skills/game-docs/references/pas-format.md +49 -0
  862. package/skills/game-docs/references/writing-rules.md +17 -0
  863. package/skills/gate-check/SKILL.md +93 -0
  864. package/skills/gcp-cloud-architect/SKILL.md +127 -0
  865. package/skills/gcp-cloud-architect/references/architecture_patterns.md +512 -0
  866. package/skills/gcp-cloud-architect/references/best_practices.md +467 -0
  867. package/skills/gcp-cloud-architect/references/service_selection.md +547 -0
  868. package/skills/gcp-cloud-architect/scripts/architecture_designer.py +805 -0
  869. package/skills/gcp-cloud-architect/scripts/cost_optimizer.py +465 -0
  870. package/skills/gcp-cloud-architect/scripts/deployment_manager.py +835 -0
  871. package/skills/gdocs/SKILL.md +128 -0
  872. package/skills/gdpr-dsgvo-expert/SKILL.md +97 -0
  873. package/skills/gdpr-dsgvo-expert/references/dpia_methodology.md +412 -0
  874. package/skills/gdpr-dsgvo-expert/references/gdpr_compliance_guide.md +336 -0
  875. package/skills/gdpr-dsgvo-expert/references/german_bdsg_requirements.md +327 -0
  876. package/skills/gdpr-dsgvo-expert/scripts/data_subject_rights_tracker.py +541 -0
  877. package/skills/gdpr-dsgvo-expert/scripts/dpia_generator.py +670 -0
  878. package/skills/gdpr-dsgvo-expert/scripts/gdpr_compliance_checker.py +443 -0
  879. package/skills/gdrive/SKILL.md +46 -0
  880. package/skills/gh-projects/SKILL.md +103 -0
  881. package/skills/gh-projects/references/graphql-queries.md +207 -0
  882. package/skills/git-worktree-manager/SKILL.md +86 -0
  883. package/skills/git-worktree-manager/references/docker-compose-patterns.md +62 -0
  884. package/skills/git-worktree-manager/references/port-allocation-strategy.md +46 -0
  885. package/skills/git-worktree-manager/scripts/worktree_cleanup.py +196 -0
  886. package/skills/git-worktree-manager/scripts/worktree_manager.py +240 -0
  887. package/skills/go-clean-architecture/SKILL.md +95 -0
  888. package/skills/go-clean-architecture/references/anti-patterns.md +7 -0
  889. package/skills/go-clean-architecture/references/checklist.md +13 -0
  890. package/skills/gsheets/SKILL.md +46 -0
  891. package/skills/helm-chart-builder/.claude-plugin/plugin.json +13 -0
  892. package/skills/helm-chart-builder/SKILL.md +122 -0
  893. package/skills/helm-chart-builder/references/chart-patterns.md +435 -0
  894. package/skills/helm-chart-builder/references/values-design.md +462 -0
  895. package/skills/helm-chart-builder/scripts/chart_analyzer.py +542 -0
  896. package/skills/helm-chart-builder/scripts/values_validator.py +442 -0
  897. package/skills/help/SKILL.md +75 -0
  898. package/skills/hotfix/SKILL.md +63 -0
  899. package/skills/i18n-setup/SKILL.md +79 -0
  900. package/skills/incident/SKILL.md +107 -0
  901. package/skills/incident-commander/SKILL.md +133 -0
  902. package/skills/incident-commander/assets/incident_report_template.md +171 -0
  903. package/skills/incident-commander/assets/runbook_template.md +289 -0
  904. package/skills/incident-commander/assets/sample_incident_classification.json +14 -0
  905. package/skills/incident-commander/assets/sample_incident_data.json +276 -0
  906. package/skills/incident-commander/assets/sample_incident_pir_data.json +74 -0
  907. package/skills/incident-commander/assets/sample_timeline_events.json +263 -0
  908. package/skills/incident-commander/assets/simple_incident.json +6 -0
  909. package/skills/incident-commander/assets/simple_timeline_events.json +30 -0
  910. package/skills/incident-commander/expected_outputs/incident_classification_text_output.txt +44 -0
  911. package/skills/incident-commander/expected_outputs/pir_markdown_output.md +88 -0
  912. package/skills/incident-commander/expected_outputs/simple_incident_classification.txt +44 -0
  913. package/skills/incident-commander/expected_outputs/timeline_reconstruction_text_output.txt +110 -0
  914. package/skills/incident-commander/references/communication_templates.md +591 -0
  915. package/skills/incident-commander/references/incident-response-framework.md +372 -0
  916. package/skills/incident-commander/references/incident_severity_matrix.md +292 -0
  917. package/skills/incident-commander/references/rca_frameworks_guide.md +562 -0
  918. package/skills/incident-commander/references/reference-information.md +201 -0
  919. package/skills/incident-commander/references/sla-management-guide.md +566 -0
  920. package/skills/incident-commander/scripts/incident_classifier.py +914 -0
  921. package/skills/incident-commander/scripts/incident_timeline_builder.py +742 -0
  922. package/skills/incident-commander/scripts/pir_generator.py +1638 -0
  923. package/skills/incident-commander/scripts/postmortem_generator.py +804 -0
  924. package/skills/incident-commander/scripts/severity_classifier.py +1228 -0
  925. package/skills/incident-commander/scripts/timeline_reconstructor.py +1007 -0
  926. package/skills/incident-response/SKILL.md +103 -0
  927. package/skills/incident-response/references/regulatory-deadlines.md +125 -0
  928. package/skills/incident-response/scripts/incident_triage.py +768 -0
  929. package/skills/information-security-manager-iso27001/SKILL.md +120 -0
  930. package/skills/information-security-manager-iso27001/references/incident-response.md +420 -0
  931. package/skills/information-security-manager-iso27001/references/iso27001-controls.md +381 -0
  932. package/skills/information-security-manager-iso27001/references/risk-assessment-guide.md +262 -0
  933. package/skills/information-security-manager-iso27001/scripts/compliance_checker.py +398 -0
  934. package/skills/information-security-manager-iso27001/scripts/risk_assessment.py +403 -0
  935. package/skills/internal-narrative/SKILL.md +68 -0
  936. package/skills/internal-narrative/references/narrative-frameworks.md +211 -0
  937. package/skills/internal-narrative/templates/all-hands-template.md +103 -0
  938. package/skills/intl-expansion/SKILL.md +72 -0
  939. package/skills/intl-expansion/references/market-entry-playbook.md +138 -0
  940. package/skills/intl-expansion/references/regional-guide.md +144 -0
  941. package/skills/ios-application-dev/SKILL.md +172 -0
  942. package/skills/ios-application-dev/references/accessibility.md +259 -0
  943. package/skills/ios-application-dev/references/graphics-animation.md +350 -0
  944. package/skills/ios-application-dev/references/layout-system.md +199 -0
  945. package/skills/ios-application-dev/references/metal-shader.md +178 -0
  946. package/skills/ios-application-dev/references/navigation-patterns.md +175 -0
  947. package/skills/ios-application-dev/references/swift-coding-standards.md +757 -0
  948. package/skills/ios-application-dev/references/swiftui-design-guidelines.md +1167 -0
  949. package/skills/ios-application-dev/references/system-integration.md +401 -0
  950. package/skills/ios-application-dev/references/uikit-components.md +297 -0
  951. package/skills/isms-audit-expert/SKILL.md +108 -0
  952. package/skills/isms-audit-expert/references/cloud-security-audit.md +226 -0
  953. package/skills/isms-audit-expert/references/iso27001-audit-methodology.md +260 -0
  954. package/skills/isms-audit-expert/references/security-control-testing.md +276 -0
  955. package/skills/isms-audit-expert/scripts/isms_audit_scheduler.py +279 -0
  956. package/skills/jira-tickets/SKILL.md +52 -0
  957. package/skills/jira-tickets/references/states-epics-sprints.md +43 -0
  958. package/skills/jira-tickets/references/team-data.md +51 -0
  959. package/skills/job-scheduling/SKILL.md +107 -0
  960. package/skills/jwt-strategy/SKILL.md +74 -0
  961. package/skills/jwt-strategy/references/anti-patterns.md +16 -0
  962. package/skills/jwt-strategy/references/checklist.md +13 -0
  963. package/skills/jwt-strategy/references/implementation.md +21 -0
  964. package/skills/kickoff/SKILL.md +180 -0
  965. package/skills/launch-strategy/SKILL.md +72 -0
  966. package/skills/launch-strategy/references/launch-frameworks-and-checklists.md +317 -0
  967. package/skills/launch-strategy/scripts/launch_readiness_scorer.py +301 -0
  968. package/skills/llm-cost-optimizer/SKILL.md +194 -0
  969. package/skills/local-database-setup/SKILL.md +48 -0
  970. package/skills/logging-setup/SKILL.md +79 -0
  971. package/skills/logging-setup/references/anti-patterns.md +7 -0
  972. package/skills/logging-setup/references/checklist.md +14 -0
  973. package/skills/logging-setup/references/pii-audit-access.md +25 -0
  974. package/skills/ma-playbook/SKILL.md +72 -0
  975. package/skills/ma-playbook/references/due-diligence-checklist.md +148 -0
  976. package/skills/ma-playbook/references/integration-playbook.md +145 -0
  977. package/skills/map-systems/SKILL.md +82 -0
  978. package/skills/map-systems/references/dependency-layers-priorities.md +36 -0
  979. package/skills/map-systems/references/implicit-systems.md +13 -0
  980. package/skills/marketing-context/SKILL.md +167 -0
  981. package/skills/marketing-context/references/context-template.md +64 -0
  982. package/skills/marketing-context/scripts/context_validator.py +219 -0
  983. package/skills/marketing-context/templates/marketing-context-template.md +133 -0
  984. package/skills/marketing-demand-acquisition/SKILL.md +124 -0
  985. package/skills/marketing-demand-acquisition/references/attribution-guide.md +217 -0
  986. package/skills/marketing-demand-acquisition/references/campaign-templates.md +221 -0
  987. package/skills/marketing-demand-acquisition/references/hubspot-workflows.md +168 -0
  988. package/skills/marketing-demand-acquisition/references/international-playbooks.md +200 -0
  989. package/skills/marketing-demand-acquisition/scripts/calculate_cac.py +101 -0
  990. package/skills/marketing-ideas/SKILL.md +83 -0
  991. package/skills/marketing-ideas/references/ideas-by-category.md +347 -0
  992. package/skills/marketing-ops/SKILL.md +188 -0
  993. package/skills/marketing-ops/references/routing-matrix.md +37 -0
  994. package/skills/marketing-ops/scripts/campaign_tracker.py +156 -0
  995. package/skills/marketing-psychology/SKILL.md +121 -0
  996. package/skills/marketing-psychology/references/mental-models-catalog.md +397 -0
  997. package/skills/marketing-strategy-pmm/SKILL.md +130 -0
  998. package/skills/marketing-strategy-pmm/references/international-gtm.md +401 -0
  999. package/skills/marketing-strategy-pmm/references/launch-checklists.md +333 -0
  1000. package/skills/marketing-strategy-pmm/references/messaging-templates.md +446 -0
  1001. package/skills/marketing-strategy-pmm/references/positioning-frameworks.md +279 -0
  1002. package/skills/mcp-server-builder/SKILL.md +109 -0
  1003. package/skills/mcp-server-builder/references/openapi-extraction-guide.md +34 -0
  1004. package/skills/mcp-server-builder/references/python-server-template.md +22 -0
  1005. package/skills/mcp-server-builder/references/typescript-server-template.md +19 -0
  1006. package/skills/mcp-server-builder/references/validation-checklist.md +30 -0
  1007. package/skills/mcp-server-builder/scripts/mcp_validator.py +186 -0
  1008. package/skills/mcp-server-builder/scripts/openapi_to_mcp.py +284 -0
  1009. package/skills/mdr-745-specialist/SKILL.md +110 -0
  1010. package/skills/mdr-745-specialist/references/clinical-evidence-requirements.md +303 -0
  1011. package/skills/mdr-745-specialist/references/mdr-classification-guide.md +289 -0
  1012. package/skills/mdr-745-specialist/references/technical-documentation-templates.md +355 -0
  1013. package/skills/mdr-745-specialist/scripts/mdr_gap_analyzer.py +511 -0
  1014. package/skills/meeting-analyzer/SKILL.md +99 -0
  1015. package/skills/meeting-analyzer/references/analysis-modules.md +92 -0
  1016. package/skills/meeting-to-tasks/SKILL.md +63 -0
  1017. package/skills/mfa-setup/SKILL.md +111 -0
  1018. package/skills/mfa-setup/references/anti-patterns.md +15 -0
  1019. package/skills/mfa-setup/references/checklist.md +17 -0
  1020. package/skills/mfa-setup/references/rate-limiting.md +10 -0
  1021. package/skills/mfa-setup/references/role-rules.md +9 -0
  1022. package/skills/mfa-setup/references/schema-db.md +5 -0
  1023. package/skills/milestone-review/SKILL.md +46 -0
  1024. package/skills/monorepo-setup/SKILL.md +66 -0
  1025. package/skills/monorepo-setup/references/anti-patterns-and-checklist.md +27 -0
  1026. package/skills/ms365-tenant-manager/SKILL.md +104 -0
  1027. package/skills/ms365-tenant-manager/expected_output.json +86 -0
  1028. package/skills/ms365-tenant-manager/references/powershell-templates.md +704 -0
  1029. package/skills/ms365-tenant-manager/references/security-policies.md +357 -0
  1030. package/skills/ms365-tenant-manager/references/troubleshooting.md +411 -0
  1031. package/skills/ms365-tenant-manager/references/workflow-scripts.md +145 -0
  1032. package/skills/ms365-tenant-manager/sample_input.json +21 -0
  1033. package/skills/ms365-tenant-manager/scripts/powershell_generator.py +430 -0
  1034. package/skills/ms365-tenant-manager/scripts/tenant_setup.py +447 -0
  1035. package/skills/ms365-tenant-manager/scripts/user_management.py +447 -0
  1036. package/skills/oauth-setup/SKILL.md +92 -0
  1037. package/skills/observability/SKILL.md +88 -0
  1038. package/skills/observability-ops/SKILL.md +42 -0
  1039. package/skills/observability-ops/references/anti-patterns.md +14 -0
  1040. package/skills/observability-ops/references/slo-sli-framework.md +44 -0
  1041. package/skills/observability-ops/references/tracing-setup.md +35 -0
  1042. package/skills/observability-setup/SKILL.md +43 -0
  1043. package/skills/observability-setup/references/conventions-and-anti-patterns.md +32 -0
  1044. package/skills/observability-setup/references/stack-setup-details.md +23 -0
  1045. package/skills/onboard/SKILL.md +123 -0
  1046. package/skills/onboarding-cro/SKILL.md +149 -0
  1047. package/skills/onboarding-cro/references/experiments.md +89 -0
  1048. package/skills/onboarding-cro/scripts/activation_funnel_analyzer.py +217 -0
  1049. package/skills/optimize/SKILL.md +27 -0
  1050. package/skills/org-health-diagnostic/SKILL.md +79 -0
  1051. package/skills/org-health-diagnostic/references/health-benchmarks.md +217 -0
  1052. package/skills/org-health-diagnostic/scripts/health_scorer.py +585 -0
  1053. package/skills/owasp-top10-check/SKILL.md +110 -0
  1054. package/skills/owasp-top10-check/references/anti-patterns.md +19 -0
  1055. package/skills/owasp-top10-check/references/educabot-specifics.md +6 -0
  1056. package/skills/owasp-top10-check/references/tools.md +9 -0
  1057. package/skills/page-cro/SKILL.md +160 -0
  1058. package/skills/page-cro/references/experiments.md +71 -0
  1059. package/skills/page-cro/scripts/conversion_audit.py +427 -0
  1060. package/skills/paid-ads/SKILL.md +162 -0
  1061. package/skills/paid-ads/references/ad-copy-templates.md +200 -0
  1062. package/skills/paid-ads/references/audience-targeting.md +234 -0
  1063. package/skills/paid-ads/references/campaign-structure.md +103 -0
  1064. package/skills/paid-ads/references/platform-setup-checklists.md +269 -0
  1065. package/skills/paid-ads/scripts/roas_calculator.py +304 -0
  1066. package/skills/patch-notes/SKILL.md +51 -0
  1067. package/skills/paywall-upgrade-cro/SKILL.md +189 -0
  1068. package/skills/paywall-upgrade-cro/references/experiments.md +78 -0
  1069. package/skills/pdf-generator/SKILL.md +181 -0
  1070. package/skills/pdf-generator/design/design.md +381 -0
  1071. package/skills/pdf-generator/scripts/cover.py +1579 -0
  1072. package/skills/pdf-generator/scripts/fill_inspect.py +200 -0
  1073. package/skills/pdf-generator/scripts/fill_write.py +242 -0
  1074. package/skills/pdf-generator/scripts/make.sh +491 -0
  1075. package/skills/pdf-generator/scripts/merge.py +112 -0
  1076. package/skills/pdf-generator/scripts/palette.py +521 -0
  1077. package/skills/pdf-generator/scripts/reformat_parse.py +374 -0
  1078. package/skills/pdf-generator/scripts/render_body.py +1052 -0
  1079. package/skills/pdf-generator/scripts/render_cover.js +111 -0
  1080. package/skills/perf-profile/SKILL.md +82 -0
  1081. package/skills/performance/SKILL.md +37 -0
  1082. package/skills/performance/references/anti-patterns.md +25 -0
  1083. package/skills/performance/references/cache-strategy.md +48 -0
  1084. package/skills/performance/references/rate-limit-config.md +48 -0
  1085. package/skills/performance-test/SKILL.md +87 -0
  1086. package/skills/playtest-report/SKILL.md +45 -0
  1087. package/skills/playwright-pro/.mcp.json +27 -0
  1088. package/skills/playwright-pro/CLAUDE.md +84 -0
  1089. package/skills/playwright-pro/LICENSE +21 -0
  1090. package/skills/playwright-pro/SKILL.md +91 -0
  1091. package/skills/playwright-pro/agents/migration-planner.md +121 -0
  1092. package/skills/playwright-pro/agents/test-architect.md +105 -0
  1093. package/skills/playwright-pro/agents/test-debugger.md +117 -0
  1094. package/skills/playwright-pro/hooks/detect-playwright.sh +23 -0
  1095. package/skills/playwright-pro/hooks/hooks.json +25 -0
  1096. package/skills/playwright-pro/hooks/validate-test.sh +58 -0
  1097. package/skills/playwright-pro/references/assertions.md +89 -0
  1098. package/skills/playwright-pro/references/common-pitfalls.md +137 -0
  1099. package/skills/playwright-pro/references/fixtures.md +121 -0
  1100. package/skills/playwright-pro/references/flaky-tests.md +56 -0
  1101. package/skills/playwright-pro/references/golden-rules.md +12 -0
  1102. package/skills/playwright-pro/references/locators.md +77 -0
  1103. package/skills/playwright-pro/settings.json +8 -0
  1104. package/skills/playwright-pro/skills/browserstack/SKILL.md +169 -0
  1105. package/skills/playwright-pro/skills/fix/SKILL.md +114 -0
  1106. package/skills/playwright-pro/skills/fix/flaky-taxonomy.md +134 -0
  1107. package/skills/playwright-pro/skills/generate/SKILL.md +145 -0
  1108. package/skills/playwright-pro/skills/generate/patterns.md +163 -0
  1109. package/skills/playwright-pro/skills/init/SKILL.md +168 -0
  1110. package/skills/playwright-pro/skills/migrate/SKILL.md +136 -0
  1111. package/skills/playwright-pro/skills/migrate/cypress-mapping.md +79 -0
  1112. package/skills/playwright-pro/skills/migrate/selenium-mapping.md +94 -0
  1113. package/skills/playwright-pro/skills/report/SKILL.md +127 -0
  1114. package/skills/playwright-pro/skills/review/SKILL.md +103 -0
  1115. package/skills/playwright-pro/skills/review/anti-patterns.md +182 -0
  1116. package/skills/playwright-pro/skills/testrail/SKILL.md +130 -0
  1117. package/skills/playwright-pro/templates/README.md +123 -0
  1118. package/skills/playwright-pro/templates/accessibility/color-contrast.md +162 -0
  1119. package/skills/playwright-pro/templates/accessibility/keyboard-navigation.md +149 -0
  1120. package/skills/playwright-pro/templates/accessibility/screen-reader.md +159 -0
  1121. package/skills/playwright-pro/templates/api/auth-headers.md +148 -0
  1122. package/skills/playwright-pro/templates/api/error-responses.md +157 -0
  1123. package/skills/playwright-pro/templates/api/graphql.md +174 -0
  1124. package/skills/playwright-pro/templates/api/rate-limiting.md +152 -0
  1125. package/skills/playwright-pro/templates/api/rest-crud.md +152 -0
  1126. package/skills/playwright-pro/templates/auth/login.md +119 -0
  1127. package/skills/playwright-pro/templates/auth/logout.md +112 -0
  1128. package/skills/playwright-pro/templates/auth/mfa.md +125 -0
  1129. package/skills/playwright-pro/templates/auth/password-reset.md +129 -0
  1130. package/skills/playwright-pro/templates/auth/rbac.md +132 -0
  1131. package/skills/playwright-pro/templates/auth/remember-me.md +127 -0
  1132. package/skills/playwright-pro/templates/auth/session-timeout.md +113 -0
  1133. package/skills/playwright-pro/templates/auth/sso.md +115 -0
  1134. package/skills/playwright-pro/templates/checkout/add-to-cart.md +112 -0
  1135. package/skills/playwright-pro/templates/checkout/apply-coupon.md +123 -0
  1136. package/skills/playwright-pro/templates/checkout/order-confirm.md +108 -0
  1137. package/skills/playwright-pro/templates/checkout/order-history.md +119 -0
  1138. package/skills/playwright-pro/templates/checkout/payment.md +148 -0
  1139. package/skills/playwright-pro/templates/checkout/update-quantity.md +125 -0
  1140. package/skills/playwright-pro/templates/crud/bulk-operations.md +129 -0
  1141. package/skills/playwright-pro/templates/crud/create.md +118 -0
  1142. package/skills/playwright-pro/templates/crud/delete.md +116 -0
  1143. package/skills/playwright-pro/templates/crud/read.md +117 -0
  1144. package/skills/playwright-pro/templates/crud/soft-delete.md +113 -0
  1145. package/skills/playwright-pro/templates/crud/update.md +129 -0
  1146. package/skills/playwright-pro/templates/dashboard/chart-rendering.md +131 -0
  1147. package/skills/playwright-pro/templates/dashboard/data-loading.md +128 -0
  1148. package/skills/playwright-pro/templates/dashboard/date-range-filter.md +136 -0
  1149. package/skills/playwright-pro/templates/dashboard/export.md +146 -0
  1150. package/skills/playwright-pro/templates/dashboard/realtime-updates.md +143 -0
  1151. package/skills/playwright-pro/templates/forms/autosave.md +135 -0
  1152. package/skills/playwright-pro/templates/forms/conditional-fields.md +120 -0
  1153. package/skills/playwright-pro/templates/forms/file-upload.md +136 -0
  1154. package/skills/playwright-pro/templates/forms/multi-step.md +137 -0
  1155. package/skills/playwright-pro/templates/forms/single-step.md +124 -0
  1156. package/skills/playwright-pro/templates/forms/validation.md +141 -0
  1157. package/skills/playwright-pro/templates/notifications/in-app.md +125 -0
  1158. package/skills/playwright-pro/templates/notifications/notification-center.md +128 -0
  1159. package/skills/playwright-pro/templates/notifications/toast-messages.md +139 -0
  1160. package/skills/playwright-pro/templates/onboarding/email-verification.md +118 -0
  1161. package/skills/playwright-pro/templates/onboarding/first-time-setup.md +130 -0
  1162. package/skills/playwright-pro/templates/onboarding/registration.md +131 -0
  1163. package/skills/playwright-pro/templates/onboarding/welcome-tour.md +128 -0
  1164. package/skills/playwright-pro/templates/search/basic-search.md +118 -0
  1165. package/skills/playwright-pro/templates/search/empty-state.md +109 -0
  1166. package/skills/playwright-pro/templates/search/filters.md +128 -0
  1167. package/skills/playwright-pro/templates/search/pagination.md +123 -0
  1168. package/skills/playwright-pro/templates/search/sorting.md +131 -0
  1169. package/skills/playwright-pro/templates/settings/account-delete.md +136 -0
  1170. package/skills/playwright-pro/templates/settings/notification-prefs.md +139 -0
  1171. package/skills/playwright-pro/templates/settings/password-change.md +143 -0
  1172. package/skills/playwright-pro/templates/settings/profile-update.md +130 -0
  1173. package/skills/popup-cro/SKILL.md +142 -0
  1174. package/skills/popup-cro/references/experiments.md +88 -0
  1175. package/skills/popup-cro/references/popup-cro-playbook.md +261 -0
  1176. package/skills/postman/SKILL.md +79 -0
  1177. package/skills/pptx-generator/SKILL.md +246 -0
  1178. package/skills/pptx-generator/references/design-system.md +392 -0
  1179. package/skills/pptx-generator/references/editing.md +162 -0
  1180. package/skills/pptx-generator/references/pitfalls.md +112 -0
  1181. package/skills/pptx-generator/references/pptxgenjs.md +420 -0
  1182. package/skills/pptx-generator/references/slide-types.md +413 -0
  1183. package/skills/pricing-strategy/SKILL.md +101 -0
  1184. package/skills/pricing-strategy/references/pricing-models.md +194 -0
  1185. package/skills/pricing-strategy/references/pricing-page-playbook.md +221 -0
  1186. package/skills/pricing-strategy/scripts/pricing_modeler.py +283 -0
  1187. package/skills/product-analytics/SKILL.md +151 -0
  1188. package/skills/product-analytics/references/dashboard-templates.md +66 -0
  1189. package/skills/product-analytics/references/metrics-frameworks.md +84 -0
  1190. package/skills/product-analytics/scripts/metrics_calculator.py +195 -0
  1191. package/skills/product-discovery/SKILL.md +118 -0
  1192. package/skills/product-discovery/references/discovery-frameworks.md +72 -0
  1193. package/skills/product-discovery/scripts/assumption_mapper.py +123 -0
  1194. package/skills/product-manager-toolkit/SKILL.md +121 -0
  1195. package/skills/product-manager-toolkit/assets/prd_template.md +132 -0
  1196. package/skills/product-manager-toolkit/assets/rice_input_template.csv +4 -0
  1197. package/skills/product-manager-toolkit/references/frameworks.md +559 -0
  1198. package/skills/product-manager-toolkit/references/input-output-examples.md +156 -0
  1199. package/skills/product-manager-toolkit/references/prd_templates.md +317 -0
  1200. package/skills/product-manager-toolkit/scripts/customer_interview_analyzer.py +452 -0
  1201. package/skills/product-manager-toolkit/scripts/rice_prioritizer.py +296 -0
  1202. package/skills/product-spec/SKILL.md +65 -0
  1203. package/skills/product-strategist/SKILL.md +122 -0
  1204. package/skills/product-strategist/assets/okr_template.md +106 -0
  1205. package/skills/product-strategist/references/examples/sample_growth_okrs.json +366 -0
  1206. package/skills/product-strategist/references/okr_framework.md +328 -0
  1207. package/skills/product-strategist/references/strategy_types.md +320 -0
  1208. package/skills/product-strategist/scripts/okr_cascade_generator.py +592 -0
  1209. package/skills/programmatic-seo/SKILL.md +156 -0
  1210. package/skills/programmatic-seo/references/playbooks.md +72 -0
  1211. package/skills/programmatic-seo/scripts/url_pattern_generator.py +194 -0
  1212. package/skills/prompt-engineer-toolkit/README.md +51 -0
  1213. package/skills/prompt-engineer-toolkit/SKILL.md +136 -0
  1214. package/skills/prompt-engineer-toolkit/references/evaluation-rubric.md +14 -0
  1215. package/skills/prompt-engineer-toolkit/references/prompt-templates.md +105 -0
  1216. package/skills/prompt-engineer-toolkit/references/technique-guide.md +25 -0
  1217. package/skills/prompt-engineer-toolkit/scripts/prompt_tester.py +239 -0
  1218. package/skills/prompt-engineer-toolkit/scripts/prompt_versioner.py +235 -0
  1219. package/skills/prototype/SKILL.md +54 -0
  1220. package/skills/qa-plan/SKILL.md +77 -0
  1221. package/skills/qms-audit-expert/SKILL.md +116 -0
  1222. package/skills/qms-audit-expert/references/iso13485-audit-guide.md +388 -0
  1223. package/skills/qms-audit-expert/references/nonconformity-classification.md +221 -0
  1224. package/skills/qms-audit-expert/scripts/audit_schedule_optimizer.py +420 -0
  1225. package/skills/quality-documentation-manager/SKILL.md +140 -0
  1226. package/skills/quality-documentation-manager/references/21cfr11-compliance-guide.md +398 -0
  1227. package/skills/quality-documentation-manager/references/document-control-procedures.md +340 -0
  1228. package/skills/quality-documentation-manager/scripts/document_validator.py +646 -0
  1229. package/skills/quality-documentation-manager/scripts/document_version_control.py +466 -0
  1230. package/skills/quality-manager-qmr/SKILL.md +129 -0
  1231. package/skills/quality-manager-qmr/references/management-review-guide.md +378 -0
  1232. package/skills/quality-manager-qmr/references/quality-kpi-framework.md +296 -0
  1233. package/skills/quality-manager-qmr/scripts/management_review_tracker.py +580 -0
  1234. package/skills/quality-manager-qmr/scripts/quality_effectiveness_monitor.py +481 -0
  1235. package/skills/quality-manager-qms-iso13485/SKILL.md +129 -0
  1236. package/skills/quality-manager-qms-iso13485/references/iso13485-clause-requirements.md +726 -0
  1237. package/skills/quality-manager-qms-iso13485/references/qms-process-templates.md +876 -0
  1238. package/skills/quality-manager-qms-iso13485/scripts/qms_audit_checklist.py +886 -0
  1239. package/skills/query-optimization/SKILL.md +107 -0
  1240. package/skills/quick-design/SKILL.md +47 -0
  1241. package/skills/rag-architect/SKILL.md +117 -0
  1242. package/skills/rag-architect/references/chunking_strategies_comparison.md +287 -0
  1243. package/skills/rag-architect/references/embedding_model_benchmark.md +338 -0
  1244. package/skills/rag-architect/references/rag_evaluation_framework.md +431 -0
  1245. package/skills/rag-architect/scripts/chunking_optimizer.py +787 -0
  1246. package/skills/rag-architect/scripts/rag_pipeline_designer.py +680 -0
  1247. package/skills/rag-architect/scripts/retrieval_evaluator.py +578 -0
  1248. package/skills/rate-limiting/SKILL.md +114 -0
  1249. package/skills/rbac-abac/SKILL.md +70 -0
  1250. package/skills/rbac-abac/references/anti-patterns.md +14 -0
  1251. package/skills/rbac-abac/references/checklist.md +13 -0
  1252. package/skills/rbac-abac/references/schema-jwt-cache.md +27 -0
  1253. package/skills/react-native-dev/SKILL.md +139 -0
  1254. package/skills/react-native-dev/references/animations.md +254 -0
  1255. package/skills/react-native-dev/references/components.md +124 -0
  1256. package/skills/react-native-dev/references/engineering.md +527 -0
  1257. package/skills/react-native-dev/references/forms.md +300 -0
  1258. package/skills/react-native-dev/references/native-capabilities.md +163 -0
  1259. package/skills/react-native-dev/references/navigation.md +271 -0
  1260. package/skills/react-native-dev/references/networking.md +346 -0
  1261. package/skills/react-native-dev/references/performance.md +215 -0
  1262. package/skills/react-native-dev/references/state-management.md +230 -0
  1263. package/skills/react-native-dev/references/styling.md +117 -0
  1264. package/skills/react-native-dev/references/testing.md +342 -0
  1265. package/skills/read-replicas/SKILL.md +46 -0
  1266. package/skills/read-replicas/references/anti-patterns-checklist.md +26 -0
  1267. package/skills/read-replicas/references/consistency-connection.md +24 -0
  1268. package/skills/read-replicas/references/ha-dr.md +18 -0
  1269. package/skills/red-team/SKILL.md +120 -0
  1270. package/skills/red-team/references/attack-path-methodology.md +135 -0
  1271. package/skills/red-team/scripts/engagement_planner.py +420 -0
  1272. package/skills/referral-program/SKILL.md +189 -0
  1273. package/skills/referral-program/references/loop-and-incentives.md +81 -0
  1274. package/skills/referral-program/references/measurement-framework.md +199 -0
  1275. package/skills/referral-program/references/program-mechanics.md +212 -0
  1276. package/skills/referral-program/scripts/referral_roi_calculator.py +420 -0
  1277. package/skills/regression-suite/SKILL.md +89 -0
  1278. package/skills/regulatory-affairs-head/SKILL.md +117 -0
  1279. package/skills/regulatory-affairs-head/references/eu-mdr-submission-guide.md +95 -0
  1280. package/skills/regulatory-affairs-head/references/fda-submission-guide.md +127 -0
  1281. package/skills/regulatory-affairs-head/references/global-regulatory-pathways.md +283 -0
  1282. package/skills/regulatory-affairs-head/references/iso-regulatory-requirements.md +363 -0
  1283. package/skills/regulatory-affairs-head/scripts/regulatory_pathway_analyzer.py +557 -0
  1284. package/skills/regulatory-affairs-head/scripts/regulatory_tracker.py +199 -0
  1285. package/skills/release/SKILL.md +89 -0
  1286. package/skills/release-announce/SKILL.md +64 -0
  1287. package/skills/release-checklist/SKILL.md +63 -0
  1288. package/skills/research-summarizer/SKILL.md +94 -0
  1289. package/skills/research-summarizer/references/citation-formats.md +105 -0
  1290. package/skills/research-summarizer/references/summary-templates.md +120 -0
  1291. package/skills/research-summarizer/scripts/extract_citations.py +309 -0
  1292. package/skills/research-summarizer/scripts/format_summary.py +244 -0
  1293. package/skills/retrospective/SKILL.md +72 -0
  1294. package/skills/revenue-operations/SKILL.md +101 -0
  1295. package/skills/revenue-operations/assets/expected_output.json +117 -0
  1296. package/skills/revenue-operations/assets/forecast_report_template.md +149 -0
  1297. package/skills/revenue-operations/assets/gtm_dashboard_template.md +215 -0
  1298. package/skills/revenue-operations/assets/pipeline_review_template.md +138 -0
  1299. package/skills/revenue-operations/assets/sample_forecast_data.json +23 -0
  1300. package/skills/revenue-operations/assets/sample_gtm_data.json +24 -0
  1301. package/skills/revenue-operations/assets/sample_pipeline_data.json +160 -0
  1302. package/skills/revenue-operations/references/gtm-efficiency-benchmarks.md +257 -0
  1303. package/skills/revenue-operations/references/pipeline-management-framework.md +292 -0
  1304. package/skills/revenue-operations/references/revops-metrics-guide.md +304 -0
  1305. package/skills/revenue-operations/scripts/forecast_accuracy_tracker.py +531 -0
  1306. package/skills/revenue-operations/scripts/gtm_efficiency_calculator.py +658 -0
  1307. package/skills/revenue-operations/scripts/pipeline_analyzer.py +496 -0
  1308. package/skills/reverse-document/SKILL.md +70 -0
  1309. package/skills/risk-management-specialist/SKILL.md +125 -0
  1310. package/skills/risk-management-specialist/references/iso14971-implementation-guide.md +468 -0
  1311. package/skills/risk-management-specialist/references/risk-analysis-methods.md +415 -0
  1312. package/skills/risk-management-specialist/references/risk-assessment-templates.md +77 -0
  1313. package/skills/risk-management-specialist/scripts/fmea_analyzer.py +442 -0
  1314. package/skills/risk-management-specialist/scripts/risk_matrix_calculator.py +419 -0
  1315. package/skills/roadmap-communicator/SKILL.md +96 -0
  1316. package/skills/roadmap-communicator/references/communication-templates.md +63 -0
  1317. package/skills/roadmap-communicator/references/roadmap-templates.md +44 -0
  1318. package/skills/roadmap-communicator/scripts/changelog_generator.py +151 -0
  1319. package/skills/rollback-strategy/SKILL.md +80 -0
  1320. package/skills/rollback-strategy/references/anti-patterns.md +14 -0
  1321. package/skills/rollback-strategy/references/canary-auto-rollback.md +17 -0
  1322. package/skills/rollback-strategy/references/communication-protocol.md +6 -0
  1323. package/skills/rollback-strategy/references/mobile-rollback.md +10 -0
  1324. package/skills/rollback-strategy/references/pre-deploy-checklist.md +15 -0
  1325. package/skills/rollback-strategy/references/runbook-commands.md +147 -0
  1326. package/skills/run-migrations/SKILL.md +67 -0
  1327. package/skills/runbooks/SKILL.md +57 -0
  1328. package/skills/runbooks/references/anti-patterns.md +6 -0
  1329. package/skills/runbooks/references/checklist.md +13 -0
  1330. package/skills/runbooks/references/lifecycle.md +14 -0
  1331. package/skills/runbooks/references/writing-principles.md +9 -0
  1332. package/skills/runbooks/templates/runbook.md +80 -0
  1333. package/skills/saas-metrics-coach/SKILL.md +156 -0
  1334. package/skills/saas-metrics-coach/assets/input-template.md +29 -0
  1335. package/skills/saas-metrics-coach/references/benchmarks.md +101 -0
  1336. package/skills/saas-metrics-coach/references/formulas.md +103 -0
  1337. package/skills/saas-metrics-coach/scripts/metrics_calculator.py +217 -0
  1338. package/skills/saas-metrics-coach/scripts/quick_ratio_calculator.py +173 -0
  1339. package/skills/saas-metrics-coach/scripts/unit_economics_simulator.py +205 -0
  1340. package/skills/sales-engineer/SKILL.md +104 -0
  1341. package/skills/sales-engineer/assets/demo_script_template.md +232 -0
  1342. package/skills/sales-engineer/assets/expected_output.json +474 -0
  1343. package/skills/sales-engineer/assets/poc_scorecard_template.md +213 -0
  1344. package/skills/sales-engineer/assets/sample_rfp_data.json +219 -0
  1345. package/skills/sales-engineer/assets/technical_proposal_template.md +231 -0
  1346. package/skills/sales-engineer/references/competitive-positioning-framework.md +226 -0
  1347. package/skills/sales-engineer/references/poc-best-practices.md +277 -0
  1348. package/skills/sales-engineer/references/rfp-response-guide.md +189 -0
  1349. package/skills/sales-engineer/scripts/competitive_matrix_builder.py +525 -0
  1350. package/skills/sales-engineer/scripts/poc_planner.py +765 -0
  1351. package/skills/sales-engineer/scripts/rfp_response_analyzer.py +557 -0
  1352. package/skills/scaffold-fastify-ts/SKILL.md +77 -0
  1353. package/skills/scaffold-fastify-ts/references/anti-patterns.md +10 -0
  1354. package/skills/scaffold-fastify-ts/references/key-decisions.md +27 -0
  1355. package/skills/scaffold-go/SKILL.md +77 -0
  1356. package/skills/scaffold-go/references/patterns.md +22 -0
  1357. package/skills/scaffold-go/references/project-structure.md +15 -0
  1358. package/skills/scaffold-react-native/SKILL.md +69 -0
  1359. package/skills/scaffold-react-native/references/conventions.md +26 -0
  1360. package/skills/scaffold-react-native/references/workflow-and-navigation.md +22 -0
  1361. package/skills/scaffold-react-vite/SKILL.md +76 -0
  1362. package/skills/scaffold-react-vite/references/anti-patterns.md +9 -0
  1363. package/skills/scaffold-react-vite/references/dependency-baseline.md +22 -0
  1364. package/skills/scaffold-unity/SKILL.md +52 -0
  1365. package/skills/scaffold-unity/references/folder-structure-and-files.md +43 -0
  1366. package/skills/scaffold-unity/references/naming-conventions.md +11 -0
  1367. package/skills/scenario-war-room/SKILL.md +81 -0
  1368. package/skills/scenario-war-room/references/cascade-model.md +103 -0
  1369. package/skills/scenario-war-room/references/scenario-planning.md +212 -0
  1370. package/skills/scenario-war-room/scripts/scenario_modeler.py +486 -0
  1371. package/skills/schema-markup/SKILL.md +184 -0
  1372. package/skills/schema-markup/references/implementation-patterns.md +437 -0
  1373. package/skills/schema-markup/references/schema-types-guide.md +285 -0
  1374. package/skills/schema-markup/references/testing-and-mistakes.md +43 -0
  1375. package/skills/schema-markup/scripts/schema_validator.py +442 -0
  1376. package/skills/scope-check/SKILL.md +67 -0
  1377. package/skills/scope-check/references/report-template.md +56 -0
  1378. package/skills/scrum-master/SKILL.md +128 -0
  1379. package/skills/scrum-master/assets/expected_output.json +131 -0
  1380. package/skills/scrum-master/assets/expected_velocity_output.json +85 -0
  1381. package/skills/scrum-master/assets/sample_sprint_data.json +821 -0
  1382. package/skills/scrum-master/assets/sprint_report_template.md +214 -0
  1383. package/skills/scrum-master/assets/team_health_check_template.md +380 -0
  1384. package/skills/scrum-master/references/retro-formats.md +336 -0
  1385. package/skills/scrum-master/references/team-dynamics-framework.md +561 -0
  1386. package/skills/scrum-master/references/velocity-forecasting-guide.md +386 -0
  1387. package/skills/scrum-master/scripts/retrospective_analyzer.py +914 -0
  1388. package/skills/scrum-master/scripts/sprint_health_scorer.py +744 -0
  1389. package/skills/scrum-master/scripts/velocity_analyzer.py +580 -0
  1390. package/skills/search-setup/SKILL.md +49 -0
  1391. package/skills/search-setup/references/anti-patterns-checklist.md +24 -0
  1392. package/skills/search-setup/references/engine-details.md +15 -0
  1393. package/skills/search-setup/references/indexing-pipeline.md +11 -0
  1394. package/skills/search-setup/references/observability.md +6 -0
  1395. package/skills/secret-management/SKILL.md +49 -0
  1396. package/skills/secret-management/references/anti-patterns.md +7 -0
  1397. package/skills/secret-management/references/checklist.md +13 -0
  1398. package/skills/secret-management/references/implementation-details.md +37 -0
  1399. package/skills/security-audit/SKILL.md +86 -0
  1400. package/skills/security-pen-testing/SKILL.md +114 -0
  1401. package/skills/security-pen-testing/references/attack_patterns.md +629 -0
  1402. package/skills/security-pen-testing/references/owasp_top_10_checklist.md +440 -0
  1403. package/skills/security-pen-testing/references/responsible_disclosure.md +317 -0
  1404. package/skills/security-pen-testing/scripts/dependency_auditor.py +455 -0
  1405. package/skills/security-pen-testing/scripts/pentest_report_generator.py +462 -0
  1406. package/skills/security-pen-testing/scripts/vulnerability_scanner.py +545 -0
  1407. package/skills/self-improving-agent/.claude-plugin/plugin.json +13 -0
  1408. package/skills/self-improving-agent/CLAUDE.md +79 -0
  1409. package/skills/self-improving-agent/LICENSE +21 -0
  1410. package/skills/self-improving-agent/SKILL.md +112 -0
  1411. package/skills/self-improving-agent/agents/memory-analyst.md +74 -0
  1412. package/skills/self-improving-agent/agents/skill-extractor.md +110 -0
  1413. package/skills/self-improving-agent/hooks/error-capture.sh +110 -0
  1414. package/skills/self-improving-agent/hooks/hooks.json +15 -0
  1415. package/skills/self-improving-agent/reference/memory-architecture.md +131 -0
  1416. package/skills/self-improving-agent/reference/promotion-rules.md +83 -0
  1417. package/skills/self-improving-agent/reference/rules-directory-patterns.md +137 -0
  1418. package/skills/self-improving-agent/settings.json +28 -0
  1419. package/skills/self-improving-agent/skills/extract/SKILL.md +182 -0
  1420. package/skills/self-improving-agent/skills/promote/SKILL.md +148 -0
  1421. package/skills/self-improving-agent/skills/remember/SKILL.md +102 -0
  1422. package/skills/self-improving-agent/skills/review/SKILL.md +130 -0
  1423. package/skills/self-improving-agent/skills/status/SKILL.md +107 -0
  1424. package/skills/self-improving-agent/templates/rule-template.md +17 -0
  1425. package/skills/self-improving-agent/templates/skill-template.md +53 -0
  1426. package/skills/senior-computer-vision/SKILL.md +125 -0
  1427. package/skills/senior-computer-vision/references/computer_vision_architectures.md +683 -0
  1428. package/skills/senior-computer-vision/references/object_detection_optimization.md +885 -0
  1429. package/skills/senior-computer-vision/references/production_vision_systems.md +1226 -0
  1430. package/skills/senior-computer-vision/references/reference-docs-and-commands.md +96 -0
  1431. package/skills/senior-computer-vision/scripts/dataset_pipeline_builder.py +1699 -0
  1432. package/skills/senior-computer-vision/scripts/inference_optimizer.py +557 -0
  1433. package/skills/senior-computer-vision/scripts/vision_model_trainer.py +576 -0
  1434. package/skills/senior-data-engineer/SKILL.md +198 -0
  1435. package/skills/senior-data-engineer/references/data_modeling_patterns.md +1058 -0
  1436. package/skills/senior-data-engineer/references/data_pipeline_architecture.md +1100 -0
  1437. package/skills/senior-data-engineer/references/dataops_best_practices.md +1502 -0
  1438. package/skills/senior-data-engineer/references/troubleshooting.md +183 -0
  1439. package/skills/senior-data-engineer/references/workflows.md +624 -0
  1440. package/skills/senior-data-engineer/scripts/data_quality_validator.py +1636 -0
  1441. package/skills/senior-data-engineer/scripts/etl_performance_optimizer.py +1685 -0
  1442. package/skills/senior-data-engineer/scripts/pipeline_orchestrator.py +883 -0
  1443. package/skills/senior-data-scientist/SKILL.md +117 -0
  1444. package/skills/senior-data-scientist/references/experiment_design_frameworks.md +80 -0
  1445. package/skills/senior-data-scientist/references/feature_engineering_patterns.md +80 -0
  1446. package/skills/senior-data-scientist/references/statistical_methods_advanced.md +80 -0
  1447. package/skills/senior-data-scientist/scripts/experiment_designer.py +100 -0
  1448. package/skills/senior-data-scientist/scripts/feature_engineering_pipeline.py +100 -0
  1449. package/skills/senior-data-scientist/scripts/model_evaluation_suite.py +100 -0
  1450. package/skills/senior-ml-engineer/SKILL.md +121 -0
  1451. package/skills/senior-ml-engineer/references/llm_integration_guide.md +317 -0
  1452. package/skills/senior-ml-engineer/references/mlops_production_patterns.md +265 -0
  1453. package/skills/senior-ml-engineer/references/rag_system_architecture.md +371 -0
  1454. package/skills/senior-ml-engineer/scripts/ml_monitoring_suite.py +100 -0
  1455. package/skills/senior-ml-engineer/scripts/model_deployment_pipeline.py +100 -0
  1456. package/skills/senior-ml-engineer/scripts/rag_system_builder.py +100 -0
  1457. package/skills/senior-pm/SKILL.md +109 -0
  1458. package/skills/senior-pm/assets/executive_report_template.md +267 -0
  1459. package/skills/senior-pm/assets/expected_output.json +150 -0
  1460. package/skills/senior-pm/assets/project_charter_template.md +274 -0
  1461. package/skills/senior-pm/assets/raci_matrix_template.md +265 -0
  1462. package/skills/senior-pm/assets/sample_project_data.json +458 -0
  1463. package/skills/senior-pm/references/portfolio-kpis.md +32 -0
  1464. package/skills/senior-pm/references/portfolio-prioritization-models.md +645 -0
  1465. package/skills/senior-pm/references/risk-management-framework.md +485 -0
  1466. package/skills/senior-pm/scripts/project_health_dashboard.py +814 -0
  1467. package/skills/senior-pm/scripts/resource_capacity_planner.py +846 -0
  1468. package/skills/senior-pm/scripts/risk_matrix_analyzer.py +698 -0
  1469. package/skills/senior-prompt-engineer/SKILL.md +108 -0
  1470. package/skills/senior-prompt-engineer/references/agentic_system_design.md +646 -0
  1471. package/skills/senior-prompt-engineer/references/llm_evaluation_frameworks.md +524 -0
  1472. package/skills/senior-prompt-engineer/references/prompt_engineering_patterns.md +572 -0
  1473. package/skills/senior-prompt-engineer/scripts/agent_orchestrator.py +560 -0
  1474. package/skills/senior-prompt-engineer/scripts/prompt_optimizer.py +519 -0
  1475. package/skills/senior-prompt-engineer/scripts/rag_evaluator.py +574 -0
  1476. package/skills/seo-audit/SKILL.md +150 -0
  1477. package/skills/seo-audit/references/aeo-geo-patterns.md +110 -0
  1478. package/skills/seo-audit/references/ai-writing-detection.md +63 -0
  1479. package/skills/seo-audit/references/seo-audit-reference.md +289 -0
  1480. package/skills/seo-audit/scripts/seo_checker.py +361 -0
  1481. package/skills/shader-dev/SKILL.md +299 -0
  1482. package/skills/shader-dev/reference/ambient-occlusion.md +382 -0
  1483. package/skills/shader-dev/reference/analytic-ray-tracing.md +651 -0
  1484. package/skills/shader-dev/reference/anti-aliasing.md +71 -0
  1485. package/skills/shader-dev/reference/atmospheric-scattering.md +571 -0
  1486. package/skills/shader-dev/reference/camera-effects.md +80 -0
  1487. package/skills/shader-dev/reference/cellular-automata.md +635 -0
  1488. package/skills/shader-dev/reference/color-palette.md +481 -0
  1489. package/skills/shader-dev/reference/csg-boolean-operations.md +466 -0
  1490. package/skills/shader-dev/reference/domain-repetition.md +436 -0
  1491. package/skills/shader-dev/reference/domain-warping.md +419 -0
  1492. package/skills/shader-dev/reference/fluid-simulation.md +425 -0
  1493. package/skills/shader-dev/reference/fractal-rendering.md +525 -0
  1494. package/skills/shader-dev/reference/lighting-model.md +639 -0
  1495. package/skills/shader-dev/reference/matrix-transform.md +535 -0
  1496. package/skills/shader-dev/reference/multipass-buffer.md +571 -0
  1497. package/skills/shader-dev/reference/normal-estimation.md +418 -0
  1498. package/skills/shader-dev/reference/particle-system.md +589 -0
  1499. package/skills/shader-dev/reference/path-tracing-gi.md +602 -0
  1500. package/skills/shader-dev/reference/polar-uv-manipulation.md +521 -0
  1501. package/skills/shader-dev/reference/post-processing.md +375 -0
  1502. package/skills/shader-dev/reference/procedural-2d-pattern.md +439 -0
  1503. package/skills/shader-dev/reference/procedural-noise.md +551 -0
  1504. package/skills/shader-dev/reference/ray-marching.md +396 -0
  1505. package/skills/shader-dev/reference/sdf-2d.md +724 -0
  1506. package/skills/shader-dev/reference/sdf-3d.md +805 -0
  1507. package/skills/shader-dev/reference/sdf-tricks.md +63 -0
  1508. package/skills/shader-dev/reference/shadow-techniques.md +476 -0
  1509. package/skills/shader-dev/reference/simulation-physics.md +644 -0
  1510. package/skills/shader-dev/reference/sound-synthesis.md +578 -0
  1511. package/skills/shader-dev/reference/terrain-rendering.md +839 -0
  1512. package/skills/shader-dev/reference/texture-mapping-advanced.md +87 -0
  1513. package/skills/shader-dev/reference/texture-sampling.md +553 -0
  1514. package/skills/shader-dev/reference/volumetric-rendering.md +608 -0
  1515. package/skills/shader-dev/reference/voronoi-cellular-noise.md +486 -0
  1516. package/skills/shader-dev/reference/voxel-rendering.md +701 -0
  1517. package/skills/shader-dev/reference/water-ocean.md +445 -0
  1518. package/skills/shader-dev/reference/webgl-pitfalls.md +41 -0
  1519. package/skills/shader-dev/techniques/ambient-occlusion.md +364 -0
  1520. package/skills/shader-dev/techniques/analytic-ray-tracing.md +542 -0
  1521. package/skills/shader-dev/techniques/anti-aliasing.md +124 -0
  1522. package/skills/shader-dev/techniques/atmospheric-scattering.md +522 -0
  1523. package/skills/shader-dev/techniques/camera-effects.md +115 -0
  1524. package/skills/shader-dev/techniques/cellular-automata.md +531 -0
  1525. package/skills/shader-dev/techniques/color-palette.md +380 -0
  1526. package/skills/shader-dev/techniques/csg-boolean-operations.md +491 -0
  1527. package/skills/shader-dev/techniques/domain-repetition.md +333 -0
  1528. package/skills/shader-dev/techniques/domain-warping.md +414 -0
  1529. package/skills/shader-dev/techniques/fluid-simulation.md +1175 -0
  1530. package/skills/shader-dev/techniques/fractal-rendering.md +436 -0
  1531. package/skills/shader-dev/techniques/lighting-model.md +527 -0
  1532. package/skills/shader-dev/techniques/matrix-transform.md +455 -0
  1533. package/skills/shader-dev/techniques/multipass-buffer.md +922 -0
  1534. package/skills/shader-dev/techniques/normal-estimation.md +318 -0
  1535. package/skills/shader-dev/techniques/particle-system.md +1203 -0
  1536. package/skills/shader-dev/techniques/path-tracing-gi.md +623 -0
  1537. package/skills/shader-dev/techniques/polar-uv-manipulation.md +373 -0
  1538. package/skills/shader-dev/techniques/post-processing.md +788 -0
  1539. package/skills/shader-dev/techniques/procedural-2d-pattern.md +346 -0
  1540. package/skills/shader-dev/techniques/procedural-noise.md +554 -0
  1541. package/skills/shader-dev/techniques/ray-marching.md +467 -0
  1542. package/skills/shader-dev/techniques/sdf-2d.md +631 -0
  1543. package/skills/shader-dev/techniques/sdf-3d.md +589 -0
  1544. package/skills/shader-dev/techniques/sdf-tricks.md +100 -0
  1545. package/skills/shader-dev/techniques/shadow-techniques.md +776 -0
  1546. package/skills/shader-dev/techniques/simulation-physics.md +1542 -0
  1547. package/skills/shader-dev/techniques/sound-synthesis.md +490 -0
  1548. package/skills/shader-dev/techniques/terrain-rendering.md +408 -0
  1549. package/skills/shader-dev/techniques/texture-mapping-advanced.md +121 -0
  1550. package/skills/shader-dev/techniques/texture-sampling.md +382 -0
  1551. package/skills/shader-dev/techniques/volumetric-rendering.md +375 -0
  1552. package/skills/shader-dev/techniques/voronoi-cellular-noise.md +458 -0
  1553. package/skills/shader-dev/techniques/voxel-rendering.md +985 -0
  1554. package/skills/shader-dev/techniques/water-ocean.md +490 -0
  1555. package/skills/shader-dev/techniques/webgl-pitfalls.md +170 -0
  1556. package/skills/signup-flow-cro/SKILL.md +150 -0
  1557. package/skills/signup-flow-cro/references/experiments.md +76 -0
  1558. package/skills/signup-flow-cro/references/signup-cro-playbook.md +180 -0
  1559. package/skills/signup-flow-cro/scripts/funnel_drop_analyzer.py +320 -0
  1560. package/skills/site-architecture/SKILL.md +167 -0
  1561. package/skills/site-architecture/references/internal-linking-playbook.md +216 -0
  1562. package/skills/site-architecture/references/navigation-design.md +32 -0
  1563. package/skills/site-architecture/references/silo-and-linking-guide.md +80 -0
  1564. package/skills/site-architecture/references/url-design-guide.md +220 -0
  1565. package/skills/site-architecture/scripts/sitemap_analyzer.py +375 -0
  1566. package/skills/skill-auditor/SKILL.md +159 -0
  1567. package/skills/skill-auditor/references/frontmatter-spec.md +113 -0
  1568. package/skills/skill-auditor/references/lazy-loading-guide.md +98 -0
  1569. package/skills/skill-improve/SKILL.md +59 -0
  1570. package/skills/skill-test/SKILL.md +45 -0
  1571. package/skills/skill-test/references/audit-mode-procedure.md +7 -0
  1572. package/skills/skill-test/references/category-mode-procedure.md +7 -0
  1573. package/skills/skill-test/references/next-steps-guide.md +9 -0
  1574. package/skills/skill-test/references/spec-mode-procedure.md +8 -0
  1575. package/skills/skill-test/references/static-checks.md +13 -0
  1576. package/skills/slack/SKILL.md +45 -0
  1577. package/skills/slo-sli/SKILL.md +92 -0
  1578. package/skills/slo-sli/references/alerting-burn-rate.md +22 -0
  1579. package/skills/slo-sli/references/anti-patterns.md +12 -0
  1580. package/skills/slo-sli/references/checklist.md +14 -0
  1581. package/skills/smoke-check/SKILL.md +77 -0
  1582. package/skills/snowflake-development/SKILL.md +119 -0
  1583. package/skills/snowflake-development/references/cortex_ai_and_agents.md +280 -0
  1584. package/skills/snowflake-development/references/snowflake_sql_and_pipelines.md +281 -0
  1585. package/skills/snowflake-development/references/troubleshooting.md +155 -0
  1586. package/skills/snowflake-development/scripts/snowflake_query_helper.py +233 -0
  1587. package/skills/soc2-compliance/SKILL.md +132 -0
  1588. package/skills/soc2-compliance/references/evidence_collection_guide.md +227 -0
  1589. package/skills/soc2-compliance/references/trust_service_criteria.md +273 -0
  1590. package/skills/soc2-compliance/references/type1_vs_type2.md +273 -0
  1591. package/skills/soc2-compliance/scripts/control_matrix_builder.py +679 -0
  1592. package/skills/soc2-compliance/scripts/evidence_tracker.py +240 -0
  1593. package/skills/soc2-compliance/scripts/gap_analyzer.py +479 -0
  1594. package/skills/social-content/SKILL.md +155 -0
  1595. package/skills/social-content/references/hooks-and-repurposing.md +74 -0
  1596. package/skills/social-content/references/platforms.md +163 -0
  1597. package/skills/social-content/references/post-templates.md +171 -0
  1598. package/skills/social-content/references/reverse-engineering.md +190 -0
  1599. package/skills/social-media-analyzer/HOW_TO_USE.md +39 -0
  1600. package/skills/social-media-analyzer/SKILL.md +190 -0
  1601. package/skills/social-media-analyzer/assets/expected_output.json +61 -0
  1602. package/skills/social-media-analyzer/assets/sample_input.json +42 -0
  1603. package/skills/social-media-analyzer/references/platform-benchmarks.md +226 -0
  1604. package/skills/social-media-analyzer/scripts/analyze_performance.py +180 -0
  1605. package/skills/social-media-analyzer/scripts/calculate_metrics.py +147 -0
  1606. package/skills/social-media-manager/SKILL.md +195 -0
  1607. package/skills/social-media-manager/scripts/social_calendar_generator.py +399 -0
  1608. package/skills/sprint-ceremony/SKILL.md +75 -0
  1609. package/skills/sprint-plan/SKILL.md +47 -0
  1610. package/skills/sprint-report/SKILL.md +124 -0
  1611. package/skills/standup-report/SKILL.md +51 -0
  1612. package/skills/start/SKILL.md +67 -0
  1613. package/skills/start-service/SKILL.md +45 -0
  1614. package/skills/state-management/SKILL.md +75 -0
  1615. package/skills/story-done/SKILL.md +69 -0
  1616. package/skills/story-done/references/review-gates.md +9 -0
  1617. package/skills/story-done/references/test-evidence-traceability.md +17 -0
  1618. package/skills/story-readiness/SKILL.md +57 -0
  1619. package/skills/story-readiness/references/context-loading.md +9 -0
  1620. package/skills/story-readiness/references/output-format.md +7 -0
  1621. package/skills/story-readiness/references/readiness-checklist.md +33 -0
  1622. package/skills/strategic-alignment/SKILL.md +79 -0
  1623. package/skills/strategic-alignment/references/alignment-playbook.md +205 -0
  1624. package/skills/strategic-alignment/scripts/alignment_checker.py +455 -0
  1625. package/skills/stripe-integration-expert/SKILL.md +65 -0
  1626. package/skills/stripe-integration-expert/references/stripe-code-examples.md +372 -0
  1627. package/skills/tdd-guide/HOW_TO_USE.md +313 -0
  1628. package/skills/tdd-guide/SKILL.md +114 -0
  1629. package/skills/tdd-guide/assets/expected_output.json +77 -0
  1630. package/skills/tdd-guide/assets/sample_coverage_report.lcov +56 -0
  1631. package/skills/tdd-guide/assets/sample_input_python.json +39 -0
  1632. package/skills/tdd-guide/assets/sample_input_typescript.json +36 -0
  1633. package/skills/tdd-guide/references/ci-integration.md +195 -0
  1634. package/skills/tdd-guide/references/framework-guide.md +206 -0
  1635. package/skills/tdd-guide/references/tdd-best-practices.md +128 -0
  1636. package/skills/tdd-guide/references/tdd-code-examples.md +229 -0
  1637. package/skills/tdd-guide/scripts/coverage_analyzer.py +434 -0
  1638. package/skills/tdd-guide/scripts/fixture_generator.py +440 -0
  1639. package/skills/tdd-guide/scripts/format_detector.py +384 -0
  1640. package/skills/tdd-guide/scripts/framework_adapter.py +428 -0
  1641. package/skills/tdd-guide/scripts/metrics_calculator.py +456 -0
  1642. package/skills/tdd-guide/scripts/output_formatter.py +354 -0
  1643. package/skills/tdd-guide/scripts/tdd_workflow.py +474 -0
  1644. package/skills/tdd-guide/scripts/test_generator.py +438 -0
  1645. package/skills/team-communications/SKILL.md +69 -0
  1646. package/skills/team-communications/references/3p-updates.md +47 -0
  1647. package/skills/team-communications/references/company-newsletter.md +65 -0
  1648. package/skills/team-communications/references/faq-answers.md +30 -0
  1649. package/skills/team-communications/references/general-comms.md +16 -0
  1650. package/skills/team-vn/SKILL.md +187 -0
  1651. package/skills/tech-debt/SKILL.md +91 -0
  1652. package/skills/tech-debt/references/register-format.md +20 -0
  1653. package/skills/tech-debt/references/scan-indicators.md +22 -0
  1654. package/skills/tech-stack-evaluator/SKILL.md +111 -0
  1655. package/skills/tech-stack-evaluator/assets/expected_output_comparison.json +82 -0
  1656. package/skills/tech-stack-evaluator/assets/sample_input_structured.json +39 -0
  1657. package/skills/tech-stack-evaluator/assets/sample_input_tco.json +42 -0
  1658. package/skills/tech-stack-evaluator/assets/sample_input_text.json +4 -0
  1659. package/skills/tech-stack-evaluator/references/examples.md +383 -0
  1660. package/skills/tech-stack-evaluator/references/metrics.md +242 -0
  1661. package/skills/tech-stack-evaluator/references/workflows.md +362 -0
  1662. package/skills/tech-stack-evaluator/scripts/ecosystem_analyzer.py +501 -0
  1663. package/skills/tech-stack-evaluator/scripts/format_detector.py +430 -0
  1664. package/skills/tech-stack-evaluator/scripts/migration_analyzer.py +587 -0
  1665. package/skills/tech-stack-evaluator/scripts/report_generator.py +460 -0
  1666. package/skills/tech-stack-evaluator/scripts/security_assessor.py +518 -0
  1667. package/skills/tech-stack-evaluator/scripts/stack_comparator.py +389 -0
  1668. package/skills/tech-stack-evaluator/scripts/tco_calculator.py +458 -0
  1669. package/skills/terraform-init/SKILL.md +80 -0
  1670. package/skills/terraform-init/references/anti-patterns.md +11 -0
  1671. package/skills/terraform-init/references/security-checklist.md +10 -0
  1672. package/skills/test-flakiness/SKILL.md +90 -0
  1673. package/skills/test-helpers/SKILL.md +50 -0
  1674. package/skills/test-setup/SKILL.md +58 -0
  1675. package/skills/testing/SKILL.md +32 -0
  1676. package/skills/testing/references/anti-patterns.md +11 -0
  1677. package/skills/testing/references/coverage-strategy.md +11 -0
  1678. package/skills/testing/references/framework-setup.md +25 -0
  1679. package/skills/testing/references/helper-patterns.md +9 -0
  1680. package/skills/threat-detection/SKILL.md +114 -0
  1681. package/skills/threat-detection/references/hunt-playbooks.md +131 -0
  1682. package/skills/threat-detection/scripts/threat_signal_analyzer.py +571 -0
  1683. package/skills/unity-game-architecture/SKILL.md +45 -0
  1684. package/skills/unity-game-architecture/references/anti-patterns.md +15 -0
  1685. package/skills/unity-game-architecture/references/checklist.md +16 -0
  1686. package/skills/unity-game-architecture/references/performance-and-systems.md +29 -0
  1687. package/skills/user-persona/SKILL.md +65 -0
  1688. package/skills/user-persona/references/persona-template.md +27 -0
  1689. package/skills/ux-design/SKILL.md +60 -0
  1690. package/skills/ux-design/references/cross-reference-and-routing.md +19 -0
  1691. package/skills/ux-design/references/spec-sections.md +19 -0
  1692. package/skills/ux-review/SKILL.md +70 -0
  1693. package/skills/video-content-strategist/SKILL.md +181 -0
  1694. package/skills/video-content-strategist/references/scripts-and-anti-patterns.md +48 -0
  1695. package/skills/visual-regression/SKILL.md +86 -0
  1696. package/skills/vn-asset-pipeline/SKILL.md +166 -0
  1697. package/skills/vn-character-design/SKILL.md +220 -0
  1698. package/skills/vn-comfyui-gen/SKILL.md +235 -0
  1699. package/skills/vn-comfyui-gen/references/comfyui-vn-workflows.md +197 -0
  1700. package/skills/vn-dialogue-tree/SKILL.md +126 -0
  1701. package/skills/vn-gdd/SKILL.md +133 -0
  1702. package/skills/vn-narrative-design/SKILL.md +185 -0
  1703. package/skills/vn-renpy-setup/SKILL.md +136 -0
  1704. package/skills/vn-scene-compose/SKILL.md +234 -0
  1705. package/skills/vn-script/SKILL.md +140 -0
  1706. package/skills/vn-script/references/renpy-cheatsheet.md +169 -0
  1707. package/skills/vn-testing/SKILL.md +178 -0
  1708. package/skills/vn-ui-design/SKILL.md +220 -0
  1709. package/skills/web-security/SKILL.md +92 -0
  1710. package/skills/web-security/references/csp-and-frontend.md +36 -0
  1711. package/skills/webhooks/SKILL.md +102 -0
  1712. package/skills/websocket-realtime-rooms/SKILL.md +46 -0
  1713. package/skills/websocket-realtime-rooms/references/anti-patterns-checklist.md +27 -0
  1714. package/skills/websocket-realtime-rooms/references/auth-security.md +9 -0
  1715. package/skills/websocket-realtime-rooms/references/client-implementation.md +15 -0
  1716. package/skills/websocket-realtime-rooms/references/heartbeat-reconnect-backpressure.md +17 -0
  1717. package/skills/weekly-digest/SKILL.md +51 -0
  1718. package/skills/worktree-isolation/README.md +193 -0
  1719. package/skills/worktree-isolation/SKILL.md +87 -0
  1720. package/skills/worktree-isolation/scripts/apply.py +178 -0
  1721. package/skills/worktree-isolation/scripts/lib.py +371 -0
  1722. package/skills/worktree-isolation-setup/README.md +137 -0
  1723. package/skills/worktree-isolation-setup/SKILL.md +192 -0
  1724. package/skills/worktree-isolation-setup/scripts/apply.py +178 -0
  1725. package/skills/worktree-isolation-setup/scripts/install_hook.py +118 -0
  1726. package/skills/worktree-isolation-setup/scripts/lib.py +371 -0
  1727. package/skills/x-twitter-growth/SKILL.md +91 -0
  1728. package/skills/x-twitter-growth/references/algorithm-signals.md +70 -0
  1729. package/skills/x-twitter-growth/scripts/competitor_analyzer.py +235 -0
  1730. package/skills/x-twitter-growth/scripts/content_planner.py +210 -0
  1731. package/skills/x-twitter-growth/scripts/growth_tracker.py +259 -0
  1732. package/skills/x-twitter-growth/scripts/profile_auditor.py +294 -0
  1733. package/skills/x-twitter-growth/scripts/tweet_composer.py +290 -0
  1734. package/skills/xlsx-generator/SKILL.md +135 -0
  1735. package/skills/xlsx-generator/references/create.md +691 -0
  1736. package/skills/xlsx-generator/references/edit.md +684 -0
  1737. package/skills/xlsx-generator/references/fix.md +37 -0
  1738. package/skills/xlsx-generator/references/format.md +768 -0
  1739. package/skills/xlsx-generator/references/ooxml-cheatsheet.md +231 -0
  1740. package/skills/xlsx-generator/references/read-analyze.md +97 -0
  1741. package/skills/xlsx-generator/references/validate.md +772 -0
  1742. package/skills/xlsx-generator/scripts/formula_check.py +422 -0
  1743. package/skills/xlsx-generator/scripts/libreoffice_recalc.py +248 -0
  1744. package/skills/xlsx-generator/scripts/shared_strings_builder.py +163 -0
  1745. package/skills/xlsx-generator/scripts/style_audit.py +575 -0
  1746. package/skills/xlsx-generator/scripts/xlsx_add_column.py +395 -0
  1747. package/skills/xlsx-generator/scripts/xlsx_insert_row.py +274 -0
  1748. package/skills/xlsx-generator/scripts/xlsx_pack.py +87 -0
  1749. package/skills/xlsx-generator/scripts/xlsx_reader.py +362 -0
  1750. package/skills/xlsx-generator/scripts/xlsx_shift_rows.py +396 -0
  1751. package/skills/xlsx-generator/scripts/xlsx_unpack.py +130 -0
  1752. package/skills/xlsx-generator/templates/minimal_xlsx/[Content_Types].xml +9 -0
  1753. package/skills/xlsx-generator/templates/minimal_xlsx/_rels/.rels +6 -0
  1754. package/skills/xlsx-generator/templates/minimal_xlsx/xl/_rels/workbook.xml.rels +19 -0
  1755. package/skills/xlsx-generator/templates/minimal_xlsx/xl/sharedStrings.xml +33 -0
  1756. package/skills/xlsx-generator/templates/minimal_xlsx/xl/styles.xml +160 -0
  1757. package/skills/xlsx-generator/templates/minimal_xlsx/xl/workbook.xml +30 -0
  1758. package/skills/xlsx-generator/templates/minimal_xlsx/xl/worksheets/sheet1.xml +70 -0
  1759. package/templates/gamedev/architecture-decision-record.md +176 -0
  1760. package/templates/gamedev/art-bible.md +80 -0
  1761. package/templates/gamedev/concept-doc-from-prototype.md +304 -0
  1762. package/templates/gamedev/difficulty-curve.md +330 -0
  1763. package/templates/gamedev/economy-model.md +130 -0
  1764. package/templates/gamedev/faction-design.md +166 -0
  1765. package/templates/gamedev/game-concept.md +316 -0
  1766. package/templates/gamedev/game-design-document.md +219 -0
  1767. package/templates/gamedev/game-pillars.md +313 -0
  1768. package/templates/gamedev/hud-design.md +505 -0
  1769. package/templates/gamedev/level-design-document.md +111 -0
  1770. package/templates/gamedev/narrative-character-sheet.md +111 -0
  1771. package/templates/gamedev/pitch-document.md +140 -0
  1772. package/templates/gamedev/player-journey.md +357 -0
  1773. package/templates/gamedev/project-stage-report.md +199 -0
  1774. package/templates/gamedev/sound-bible.md +130 -0
  1775. package/templates/gamedev/systems-index.md +146 -0
  1776. package/templates/gamedev/technical-design-document.md +96 -0
  1777. package/templates/gamedev/test-evidence.md +86 -0
  1778. package/templates/gamedev/test-plan.md +144 -0
@@ -0,0 +1,1175 @@
1
+ **IMPORTANT: Common Error When Extracting Shaders from HTML Script Tags**: When extracting source from `<script type="x-shader/x-fragment">`, you must ensure `#version` is the **very first character** of the string, with no leading whitespace or newlines:
2
+ ```javascript
3
+ // WRONG: indentation/newline inside script tag
4
+ // <script id="fs">
5
+ // #version 300 es <-- leading newline here!
6
+ // </script>
7
+ const source = document.getElementById('fs').textContent; // contains leading whitespace
8
+
9
+ // CORRECT: use .trim() or place template string flush with the start
10
+ const source = document.getElementById('fs').textContent.trim();
11
+ // Or in HTML, place content directly after the tag:
12
+ // <script id="fs">#version 300 es
13
+ // ...
14
+ ```
15
+
16
+ ### IMPORTANT: Float Texture Compatibility (Most Critical Issue for Fluid Simulation)
17
+
18
+ Fluid simulation requires float textures to store velocity (can be negative), pressure, and ink concentration (can exceed 1.0).
19
+
20
+ **IMPORTANT: Must use RGBA16F instead of RGBA32F**: Many environments (headless Chrome, SwiftShader, mobile) do not support `RGBA32F` render targets. Even when the `EXT_color_buffer_float` extension claims to be available, `RGBA32F` FBOs may silently fail (framebuffer reports complete but renders all zeros or all ones). `RGBA16F + HALF_FLOAT` has far better compatibility than `RGBA32F`, and its precision is more than sufficient for fluid simulation.
21
+
22
+ ```javascript
23
+ const gl = canvas.getContext("webgl2");
24
+ if (!gl) { /* error handling */ }
25
+
26
+ const ext = gl.getExtension("EXT_color_buffer_float");
27
+ // IMPORTANT: Continue even if ext is null — some environments support RGBA16F without this extension
28
+
29
+ function createFloatTexture(w, h) {
30
+ const tex = gl.createTexture();
31
+ gl.bindTexture(gl.TEXTURE_2D, tex);
32
+ // IMPORTANT: Must use RGBA16F + HALF_FLOAT, do NOT use RGBA32F + FLOAT
33
+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA16F, w, h, 0, gl.RGBA, gl.HALF_FLOAT, null);
34
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
35
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
36
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
37
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
38
+ return tex;
39
+ }
40
+
41
+ function createFBO(w, h) {
42
+ const tex = createFloatTexture(w, h);
43
+ const fbo = gl.createFramebuffer();
44
+ gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);
45
+ gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, tex, 0);
46
+ const status = gl.checkFramebufferStatus(gl.FRAMEBUFFER);
47
+ if (status !== gl.FRAMEBUFFER_COMPLETE) {
48
+ console.error("FBO incomplete:", status);
49
+ }
50
+ gl.bindFramebuffer(gl.FRAMEBUFFER, null);
51
+ return { fbo, tex };
52
+ }
53
+ ```
54
+
55
+ ### Mouse Interaction Implementation
56
+
57
+ Fluid simulation requires tracking mouse position and drag direction. iMouse uniform convention: **xy=current mouse position, z=mouse down flag (>0 means pressed), w=unused**. Mouse velocity is calculated from the position difference between current and previous frames:
58
+
59
+ ```javascript
60
+ // IMPORTANT: iMouse convention: xy=current position, z=pressed flag (1.0=down, 0.0=up), w=0
61
+ // Mouse velocity is computed via prevMouse on the JS side, passed through a separate uniform
62
+ let iMouse = [0, 0, 0, 0]; // [x, y, pressed, 0]
63
+ let prevMouse = [0, 0];
64
+ let mouseDown = false;
65
+
66
+ canvas.addEventListener('mousemove', (e) => {
67
+ const dpr = Math.min(window.devicePixelRatio, 1.5);
68
+ const x = e.clientX * dpr;
69
+ const y = canvas.height - e.clientY * dpr; // WebGL Y-axis is flipped
70
+ if (mouseDown) {
71
+ prevMouse[0] = iMouse[0];
72
+ prevMouse[1] = iMouse[1];
73
+ iMouse[0] = x;
74
+ iMouse[1] = y;
75
+ }
76
+ });
77
+
78
+ canvas.addEventListener('mousedown', (e) => {
79
+ mouseDown = true;
80
+ const dpr = Math.min(window.devicePixelRatio, 1.5);
81
+ const x = e.clientX * dpr;
82
+ const y = canvas.height - e.clientY * dpr;
83
+ iMouse[0] = x; iMouse[1] = y;
84
+ iMouse[2] = 1.0; // Flag: mouse pressed
85
+ prevMouse[0] = x; prevMouse[1] = y;
86
+ });
87
+
88
+ canvas.addEventListener('mouseup', () => {
89
+ mouseDown = false;
90
+ iMouse[2] = 0.0; // Flag: mouse released
91
+ });
92
+
93
+ // Pass uniforms in render loop
94
+ // iMouse: xy=position, z=pressed flag, w=0
95
+ gl.uniform4f(uMouse, iMouse[0], iMouse[1], iMouse[2], 0.0);
96
+ // IMPORTANT: Mouse velocity must be clamped, otherwise fast dragging produces huge velocity deltas causing NaN explosion
97
+ const mvx = Math.max(-50, Math.min(50, iMouse[0] - prevMouse[0]));
98
+ const mvy = Math.max(-50, Math.min(50, iMouse[1] - prevMouse[1]));
99
+ gl.uniform2f(uMouseVel, mvx, mvy);
100
+ ```
101
+
102
+ ### Handling WebGL 2 Unavailability
103
+
104
+ ```javascript
105
+ const gl = canvas.getContext("webgl2");
106
+ if (!gl) {
107
+ document.body.innerHTML = `
108
+ <div style="color:#fff;padding:20px;font-family:sans-serif;">
109
+ <h2>WebGL 2 Not Supported</h2>
110
+ <p>Fluid simulation requires WebGL 2. Please use a modern browser (Chrome 56+, Firefox 51+, Safari 15+).</p>
111
+ </div>
112
+ `;
113
+ throw new Error('WebGL2 not supported');
114
+ }
115
+ ```
116
+
117
+ # Real-Time Fluid Simulation
118
+
119
+ ## Use Cases
120
+ - Real-time 2D fluid effects in ShaderToy/WebGL (smoke, liquids, ink diffusion)
121
+ - Interactive fluid: mouse/touch-driven fluid response
122
+ - **Ink diffusion/curling vortex effects in water**: vorticity confinement + high diffusion coefficient + single or multi-color ink
123
+ - **Multi-color ink mixing**: multiple ink colors interpenetrating and blending (requires Buffer B to store RGB ink, see multi-color ink mixing template)
124
+ - Decorative fluid backgrounds, particle systems, vortex visualization
125
+ - **Lava/fire/magma effects**: fluid simulation + FBM noise texture + temperature color mapping
126
+ - **Water surface ripple effects**: wave equation + click-generated concentric ripples + interference and damping
127
+ - Core: solving simplified Navier-Stokes equations or wave equations in GPU fragment shaders
128
+
129
+ ## Core Principles
130
+
131
+ Incompressible Navier-Stokes equation discretization:
132
+
133
+ ```
134
+ Momentum equation: ∂v/∂t = -(v·∇)v - ∇p + ν∇²v + f
135
+ Continuity equation: ∇·v = 0
136
+ ```
137
+
138
+ Term meanings: `-(v·∇)v` advection, `-∇p` pressure gradient, `ν∇²v` viscous diffusion, `f` external forces.
139
+ Zero divergence = incompressibility constraint, achieved by projecting the velocity field through the pressure Poisson equation.
140
+
141
+ **ShaderToy implementation strategy**: texture buffer inter-frame feedback, each frame executes: advection → diffusion → external forces → pressure projection. Each pixel stores grid point physical quantities (velocity, pressure, density).
142
+
143
+ ### Water Surface Ripple Principles (Wave Equation)
144
+
145
+ Water surface ripples use the 2D wave equation rather than Navier-Stokes:
146
+
147
+ ```
148
+ ∂²h/∂t² = c² * ∇²h - damping * ∂h/∂t
149
+ ```
150
+
151
+ Discretized using Verlet integration: `next = speed * (2*curr - prev + laplacian) * damping`.
152
+
153
+ Data encoding: `.r = previous frame height (prev)`, `.g = current frame height (curr)`. Each frame computes the Laplacian to advance the wavefront, with ping-pong buffers alternating read/write.
154
+
155
+ ## Implementation Steps
156
+
157
+ ### Step 1: Data Encoding & Neighborhood Sampling
158
+ ```glsl
159
+ // Data layout: .xy=velocity, .z=pressure/density, .w=ink
160
+ #define T(p) texture(iChannel0, (p) / iResolution.xy)
161
+
162
+ vec4 c = T(p); // center
163
+ vec4 n = T(p + vec2(0, 1)); // north
164
+ vec4 e = T(p + vec2(1, 0)); // east
165
+ vec4 s = T(p - vec2(0, 1)); // south
166
+ vec4 w = T(p - vec2(1, 0)); // west
167
+ ```
168
+
169
+ ### Step 2: Discrete Differential Operators
170
+ ```glsl
171
+ // Laplacian (weighted 3x3 stencil)
172
+ const float _K0 = -20.0 / 6.0;
173
+ const float _K1 = 4.0 / 6.0;
174
+ const float _K2 = 1.0 / 6.0;
175
+ vec4 laplacian = _K0 * c
176
+ + _K1 * (n + e + s + w)
177
+ + _K2 * (T(p+vec2(1,1)) + T(p+vec2(-1,1)) + T(p+vec2(1,-1)) + T(p+vec2(-1,-1)));
178
+
179
+ // Gradient (central difference)
180
+ vec4 dx = (e - w) / 2.0;
181
+ vec4 dy = (n - s) / 2.0;
182
+
183
+ // Divergence & Curl
184
+ float div = dx.x + dy.y;
185
+ float curl = dx.y - dy.x;
186
+ ```
187
+
188
+ ### Step 3: Semi-Lagrangian Advection
189
+ ```glsl
190
+ #define DT 0.15 // time step
191
+ // Backward trace: sample from upstream, unconditionally stable
192
+ vec4 advected = T(p - DT * c.xy);
193
+ c.xyw = advected.xyw;
194
+ ```
195
+
196
+ ### Step 4: Viscous Diffusion
197
+ ```glsl
198
+ #define NU 0.5 // kinematic viscosity (0.01=water, 1.0=syrup)
199
+ #define KAPPA 0.1 // ink diffusion coefficient
200
+
201
+ c.xy += DT * NU * laplacian.xy;
202
+ c.w += DT * KAPPA * laplacian.w;
203
+ ```
204
+
205
+ ### Step 5: Pressure Projection
206
+ ```glsl
207
+ #define K 0.2 // pressure correction strength
208
+ c.xy -= K * vec2(dx.z, dy.z);
209
+ c.z -= DT * (dx.z * c.x + dy.z * c.y + div * c.z);
210
+ ```
211
+
212
+ ### Step 6: Mouse Interaction
213
+ ```glsl
214
+ // IMPORTANT: iMouse.z is the mouse-down flag (>0=pressed), not a position coordinate
215
+ // iMouseVel is mouse movement velocity, passed via a separate uniform
216
+ // IMPORTANT: Must clamp mouseVel to prevent NaN explosion
217
+ if (iMouse.z > 0.0) {
218
+ vec2 mouseVel = clamp(iMouseVel, vec2(-50.0), vec2(50.0));
219
+ float dist2 = dot(p - iMouse.xy, p - iMouse.xy);
220
+ float influence = exp(-dist2 / 50.0); // 50.0=influence radius
221
+ c.xy += DT * influence * mouseVel;
222
+ c.w += DT * influence * 0.5;
223
+ }
224
+ ```
225
+
226
+ ### Step 6b: Vorticity Confinement (Required for Ink Curling Effects)
227
+ ```glsl
228
+ // IMPORTANT: Ink diffusion/swirl effects require vorticity confinement, otherwise small vortices dissipate quickly leaving only smooth flow
229
+ // Vorticity confinement re-injects energy into small-scale vortices, producing characteristic curling textures
230
+ #define VORT_STR 0.035 // [0.01=subtle, 0.05=noticeable, 0.1=strong]
231
+ float curl_c = dx.y - dy.x;
232
+ float curl_n = (T(p + vec2(1,1)).y - T(p + vec2(-1,1)).y) / 2.0
233
+ - (T(p + vec2(0,2)).x - T(p).x) / 2.0;
234
+ float curl_s = (T(p + vec2(1,-1)).y - T(p + vec2(-1,-1)).y) / 2.0
235
+ - (T(p).x - T(p + vec2(0,-2)).x) / 2.0;
236
+ float curl_e = (T(p + vec2(2,0)).y - T(p).y) / 2.0
237
+ - (T(p + vec2(1,1)).x - T(p + vec2(1,-1)).x) / 2.0;
238
+ float curl_w = (T(p).y - T(p + vec2(-2,0)).y) / 2.0
239
+ - (T(p + vec2(-1,1)).x - T(p + vec2(-1,-1)).x) / 2.0;
240
+ vec2 eta = normalize(vec2(abs(curl_e)-abs(curl_w), abs(curl_n)-abs(curl_s)) + vec2(1e-5));
241
+ c.xy += DT * VORT_STR * vec2(eta.y, -eta.x) * curl_c;
242
+ ```
243
+
244
+ ### Step 7: Automatic Ink Sources (Critical: Ensures Visible Output Without Interaction)
245
+ ```glsl
246
+ // IMPORTANT: Must have automatic ink sources! Otherwise the screen is completely black without mouse interaction
247
+ // IMPORTANT: Ink injection and decay must be balanced! Too-strong injection or too-weak decay causes ink saturation across the entire screen → solid color with no features
248
+ // IMPORTANT: Gaussian denominator controls emitter radius — larger denominator means larger emitter!
249
+ // Denominator > 300 makes emitter cover most of the screen, ink saturates quickly
250
+ // Recommended 100~200, keeping it locally concentrated with visible gradient falloff at distance
251
+ float t = iTime;
252
+
253
+ // Emitter positions should move over time for dynamic effects
254
+ vec2 em1 = iResolution.xy * vec2(0.25, 0.5 + 0.2 * sin(t * 0.7));
255
+ vec2 em2 = iResolution.xy * vec2(0.75, 0.5 + 0.2 * cos(t * 0.9));
256
+ vec2 em3 = iResolution.xy * vec2(0.5, 0.3 + 0.15 * sin(t * 1.3));
257
+
258
+ // Gaussian influence radius controls locality (smaller denominator = more concentrated, 100~200 is reasonable)
259
+ float r1 = exp(-dot(p - em1, p - em1) / 150.0);
260
+ float r2 = exp(-dot(p - em2, p - em2) / 150.0);
261
+ float r3 = exp(-dot(p - em3, p - em3) / 120.0);
262
+
263
+ // Inject velocity (rotating, crossing directions make fluid motion more interesting)
264
+ c.xy += DT * r1 * vec2(cos(t), sin(t * 1.3)) * 3.0;
265
+ c.xy += DT * r2 * vec2(-cos(t * 0.8), sin(t * 0.6)) * 3.0;
266
+ c.xy += DT * r3 * vec2(sin(t * 1.1), -cos(t)) * 2.0;
267
+
268
+ // Inject ink (note: injection amount must balance with INK_DECAY, otherwise screen saturates)
269
+ c.w += DT * (r1 + r2 + r3) * 2.0;
270
+ ```
271
+
272
+ ### Step 8: Boundaries & Stability
273
+ ```glsl
274
+ // No-slip boundary
275
+ if (p.x < 1.0 || p.y < 1.0 ||
276
+ iResolution.x - p.x < 1.0 || iResolution.y - p.y < 1.0) {
277
+ c.xyw *= 0.0;
278
+ }
279
+
280
+ // IMPORTANT: Ink decay — must use multiplicative decay (e.g., *= 0.99), NOT subtractive decay (-= constant)
281
+ // Subtractive decay zeros out quickly at small ink values and decays too slowly at large values, causing saturation
282
+ // Multiplicative decay scales proportionally, maintaining contrast at any concentration
283
+ c.w *= 0.99; // 1% decay per frame, adjustable [0.98=fast dissipation, 0.995=persistent]
284
+
285
+ c = clamp(c, vec4(-5, -5, 0.5, 0), vec4(5, 5, 3, 5));
286
+ ```
287
+
288
+ ### Step 9: Visualization (Image Pass) — General Fluid
289
+ ```glsl
290
+ void mainImage(out vec4 fragColor, in vec2 fragCoord) {
291
+ vec2 uv = fragCoord / iResolution.xy;
292
+ vec4 c = texture(iChannel0, uv);
293
+
294
+ // IMPORTANT: Color base must be bright enough! 0.5+0.5*cos produces [0,1] range bright colors
295
+ // Never use vec3(0.02, 0.01, 0.08) or similar near-zero base colors — they become invisible when multiplied by ink
296
+ float angle = atan(c.y, c.x);
297
+ vec3 col = 0.5 + 0.5 * cos(angle + vec3(0.0, 2.1, 4.2));
298
+
299
+ // IMPORTANT: Use smoothstep to map ink concentration; upper limit should exceed actual ink range to preserve gradients
300
+ float ink = smoothstep(0.0, 2.0, c.w);
301
+ col *= ink;
302
+
303
+ // Pressure highlights
304
+ col += vec3(0.05) * clamp(c.z - 1.0, 0.0, 1.0);
305
+
306
+ // IMPORTANT: Background color must be visible (RGB at least > 5/255 ≈ 0.02), otherwise users think the page is all black
307
+ col = max(col, vec3(0.02, 0.012, 0.035));
308
+
309
+ fragColor = vec4(col, 1.0);
310
+ }
311
+ ```
312
+
313
+ ### Step 9b: Visualization (Image Pass) — Lava/Fire/Magma Effects
314
+
315
+ Lava/fire requires FBM noise for turbulent textures + temperature color band mapping. **Key: Must use FBM noise to distort UV coordinates and temperature values, otherwise the image is too smooth and looks like a plain gradient rather than lava.**
316
+
317
+ ```glsl
318
+ // IMPORTANT: FBM noise is the core of lava/fire visualization! Without it the image is a smooth gradient with no lava texture
319
+ // These noise functions must be defined in the Image Pass
320
+
321
+ float hash(vec2 p) {
322
+ return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453);
323
+ }
324
+
325
+ float noise(vec2 p) {
326
+ vec2 i = floor(p);
327
+ vec2 f = fract(p);
328
+ f = f * f * (3.0 - 2.0 * f); // smoothstep hermite
329
+ float a = hash(i);
330
+ float b = hash(i + vec2(1.0, 0.0));
331
+ float c = hash(i + vec2(0.0, 1.0));
332
+ float d = hash(i + vec2(1.0, 1.0));
333
+ return mix(mix(a, b, f.x), mix(c, d, f.x), f.y);
334
+ }
335
+
336
+ // IMPORTANT: octaves=4~6 produces sufficient detail; fewer than 3 gives too-coarse textures
337
+ float fbm(vec2 p, int octaves) {
338
+ float val = 0.0;
339
+ float amp = 0.5;
340
+ for (int i = 0; i < octaves; i++) {
341
+ val += amp * noise(p);
342
+ p *= 2.0;
343
+ amp *= 0.5;
344
+ }
345
+ return val;
346
+ }
347
+
348
+ void mainImage(out vec4 fragColor, in vec2 fragCoord) {
349
+ vec2 uv = fragCoord / iResolution.xy;
350
+ vec4 c = texture(iChannel0, uv);
351
+ float t = iTime;
352
+
353
+ // Use fluid velocity field to distort noise sampling coordinates so noise moves with the fluid
354
+ vec2 distortedUV = uv + c.xy * 0.002;
355
+ // FBM noise: multi-octave superposition produces turbulent detail
356
+ float n1 = fbm(distortedUV * 8.0 + t * 0.3, 5);
357
+ float n2 = fbm(distortedUV * 4.0 - t * 0.2 + 5.0, 4);
358
+
359
+ float ink = smoothstep(0.0, 2.0, c.w);
360
+ float speed = length(c.xy);
361
+
362
+ // Temperature = ink concentration + noise perturbation + speed contribution
363
+ // IMPORTANT: Noise perturbation amplitude of 0.2~0.4 produces visible texture without becoming noisy
364
+ float temp = ink * 0.7 + n1 * 0.25 + speed * 0.1;
365
+ // Second noise layer for cracks/dark veins
366
+ temp -= (1.0 - n2) * 0.15 * ink;
367
+ temp = clamp(temp, 0.0, 1.0);
368
+
369
+ // Lava temperature color band: black → dark red → orange → yellow → white-hot
370
+ vec3 col;
371
+ if (temp < 0.15) {
372
+ col = mix(vec3(0.05, 0.0, 0.0), vec3(0.5, 0.05, 0.0), temp / 0.15);
373
+ } else if (temp < 0.4) {
374
+ col = mix(vec3(0.5, 0.05, 0.0), vec3(1.0, 0.35, 0.0), (temp - 0.15) / 0.25);
375
+ } else if (temp < 0.7) {
376
+ col = mix(vec3(1.0, 0.35, 0.0), vec3(1.0, 0.75, 0.1), (temp - 0.4) / 0.3);
377
+ } else {
378
+ col = mix(vec3(1.0, 0.75, 0.1), vec3(1.0, 0.95, 0.7), clamp((temp - 0.7) / 0.3, 0.0, 1.0));
379
+ }
380
+
381
+ // Glow effect: additional additive glow in high-temperature regions
382
+ float glow = smoothstep(0.5, 1.0, temp) * 0.4;
383
+ col += vec3(1.0, 0.5, 0.1) * glow;
384
+
385
+ // HDR tone mapping
386
+ col = 1.0 - exp(-col * 1.5);
387
+
388
+ col = max(col, vec3(0.03, 0.005, 0.0));
389
+ fragColor = vec4(col, 1.0);
390
+ }
391
+ ```
392
+
393
+ ### Step 9c: Visualization (Image Pass) — Water Surface Ripple Effects
394
+
395
+ The water ripple Image Pass computes normals from the height field, then applies lighting + environment reflection. **Key: Normal perturbation strength must be large enough (50~100), water base color must be bright (blue component > 0.15), and specular highlights must be prominent.**
396
+
397
+ ```glsl
398
+ void mainImage(out vec4 fragColor, in vec2 fragCoord) {
399
+ vec2 uv = fragCoord / iResolution.xy;
400
+ vec2 texel = 1.0 / iResolution.xy;
401
+
402
+ // IMPORTANT: Sample from wave height field: .g channel stores current frame height
403
+ float h = texture(iChannel0, uv).g;
404
+ float hn = texture(iChannel0, uv + vec2(0.0, texel.y)).g;
405
+ float hs = texture(iChannel0, uv - vec2(0.0, texel.y)).g;
406
+ float he = texture(iChannel0, uv + vec2(texel.x, 0.0)).g;
407
+ float hw = texture(iChannel0, uv - vec2(texel.x, 0.0)).g;
408
+
409
+ // IMPORTANT: Normal perturbation factor must be large enough (50~100), otherwise ripples are invisible
410
+ // If drop strength is 1.0 and radius is 8~15px, using 80.0 produces clearly visible ripples
411
+ vec3 normal = normalize(vec3((hw - he) * 80.0, (hs - hn) * 80.0, 1.0));
412
+
413
+ vec3 lightDir = normalize(vec3(0.3, 0.5, 1.0));
414
+ vec3 viewDir = vec3(0.0, 0.0, 1.0);
415
+ vec3 halfVec = normalize(lightDir + viewDir);
416
+
417
+ float diffuse = max(dot(normal, lightDir), 0.0);
418
+ float specular = pow(max(dot(normal, halfVec), 0.0), 64.0);
419
+
420
+ // IMPORTANT: Water base color must be bright enough! Deep color no darker than vec3(0.02, 0.08, 0.2), shallow color use vec3(0.1, 0.3, 0.6)
421
+ vec3 deepColor = vec3(0.02, 0.08, 0.22);
422
+ vec3 shallowColor = vec3(0.1, 0.35, 0.65);
423
+ vec3 waterColor = mix(deepColor, shallowColor, 0.5 + h * 5.0);
424
+
425
+ float fresnel = pow(1.0 - max(dot(normal, viewDir), 0.0), 3.0);
426
+
427
+ vec3 col = waterColor * (0.4 + 0.6 * diffuse);
428
+ col += vec3(0.9, 0.95, 1.0) * specular * 2.0;
429
+ col += vec3(0.15, 0.25, 0.45) * fresnel * 0.6;
430
+
431
+ // Caustic effect
432
+ float caustic = pow(max(diffuse, 0.0), 8.0) * abs(h) * 5.0;
433
+ col += vec3(0.15, 0.35, 0.55) * caustic;
434
+
435
+ col = max(col, vec3(0.02, 0.06, 0.15));
436
+ col = pow(col, vec3(0.95));
437
+
438
+ fragColor = vec4(col, 1.0);
439
+ }
440
+ ```
441
+
442
+ ## IMPORTANT: Common Fatal Errors
443
+
444
+ 1. **RGBA32F silently fails in headless/SwiftShader environments**: Must use `RGBA16F + HALF_FLOAT`
445
+ 2. **Ink saturates entire screen**: Gaussian denominator too large (>300) or decay too weak (>0.995). Fix: denominator 100~200, decay `*= 0.99`
446
+ 3. **Image Pass colors too dark causing all-black screen**: Use `0.5 + 0.5 * cos(...)` color base to ensure bright range
447
+ 4. **Unclamped mouse velocity causing NaN crash**: Fast dragging or first-frame clicks produce huge velocity deltas → velocity explosion → NaN propagates across entire screen. **Both JS side and shader side must clamp mouseVel to [-50, 50]**
448
+ 5. **Using single scalar for multi-color ink prevents mixing**: A single `c.w` can only do single-color. Multi-color ink requires Buffer B to store RGB three channels (see multi-color ink mixing template)
449
+ 6. **GLSL strict typing**: `vec2 = float` is illegal, must use `vec2(float)`; integers and floats cannot be mixed
450
+
451
+ ## Complete Code Template
452
+
453
+ Setup: Buffer A's iChannel0 points to Buffer A itself (feedback loop).
454
+
455
+ ### Standalone HTML JS Skeleton (Ping-Pong Render Pipeline)
456
+
457
+ Fluid simulation requires framebuffer self-feedback + float textures. The following JS skeleton demonstrates the correct WebGL2 multi-pass ping-pong structure:
458
+
459
+ ```html
460
+ <!DOCTYPE html>
461
+ <html>
462
+ <head>
463
+ <meta charset="utf-8">
464
+ <meta name="viewport" content="width=device-width,initial-scale=1">
465
+ <title>Fluid Simulation</title>
466
+ <style>
467
+ /* IMPORTANT: Critical: canvas must fill the viewport, otherwise it may be invisible or clipped */
468
+ *{margin:0;padding:0}
469
+ html,body{width:100%;height:100%;overflow:hidden;background:#000}
470
+ canvas{display:block;width:100%;height:100%}
471
+ </style>
472
+ </head>
473
+ <body>
474
+ <canvas id="c"></canvas>
475
+ <script>
476
+ let frameCount = 0;
477
+ // IMPORTANT: iMouse convention: [x, y, pressedFlag, 0] — z is the pressed flag (1 or 0), not a coordinate
478
+ let mouse = [0, 0, 0, 0];
479
+ let prevMouse = [0, 0];
480
+ let mouseDown = false;
481
+
482
+ const canvas = document.getElementById('c');
483
+ const gl = canvas.getContext('webgl2');
484
+ if (!gl) {
485
+ document.body.innerHTML = '<div style="color:#fff;padding:20px;font-family:sans-serif;"><h2>WebGL 2 not supported</h2></div>';
486
+ throw new Error('WebGL2 not supported');
487
+ }
488
+ const ext = gl.getExtension('EXT_color_buffer_float');
489
+
490
+ function createShader(type, src) {
491
+ const s = gl.createShader(type);
492
+ gl.shaderSource(s, src);
493
+ gl.compileShader(s);
494
+ if (!gl.getShaderParameter(s, gl.COMPILE_STATUS))
495
+ console.error(gl.getShaderInfoLog(s));
496
+ return s;
497
+ }
498
+ function createProgram(vsSrc, fsSrc) {
499
+ const p = gl.createProgram();
500
+ gl.attachShader(p, createShader(gl.VERTEX_SHADER, vsSrc));
501
+ gl.attachShader(p, createShader(gl.FRAGMENT_SHADER, fsSrc));
502
+ gl.linkProgram(p);
503
+ if (!gl.getProgramParameter(p, gl.LINK_STATUS))
504
+ console.error(gl.getProgramInfoLog(p));
505
+ return p;
506
+ }
507
+
508
+ const vsSource = `#version 300 es
509
+ in vec2 pos;
510
+ void main(){ gl_Position=vec4(pos,0,1); }`;
511
+
512
+ // fsBuffer / fsImage: adapt from the Buffer A / Image templates below
513
+ // IMPORTANT: Fragment shaders must declare these uniforms:
514
+ // uniform sampler2D iChannel0;
515
+ // uniform vec2 iResolution;
516
+ // uniform float iTime;
517
+ // uniform int iFrame;
518
+ // uniform vec4 iMouse; // xy=position, z=pressed flag, w=0
519
+ // uniform vec2 iMouseVel; // mouse movement velocity (only needed in Buffer pass)
520
+
521
+ const progBuf = createProgram(vsSource, fsBuffer);
522
+ const progImg = createProgram(vsSource, fsImage);
523
+
524
+ // IMPORTANT: Must use RGBA16F + HALF_FLOAT, do NOT use RGBA32F + FLOAT
525
+ // RGBA32F may render all zeros in headless Chrome / SwiftShader even when framebuffer reports complete
526
+ function createFBO(w, h) {
527
+ const tex = gl.createTexture();
528
+ gl.bindTexture(gl.TEXTURE_2D, tex);
529
+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA16F, w, h, 0, gl.RGBA, gl.HALF_FLOAT, null);
530
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
531
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
532
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
533
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
534
+ const fbo = gl.createFramebuffer();
535
+ gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);
536
+ gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, tex, 0);
537
+ gl.bindFramebuffer(gl.FRAMEBUFFER, null);
538
+ return { fbo, tex };
539
+ }
540
+
541
+ let W, H, bufA, bufB;
542
+
543
+ const vao = gl.createVertexArray();
544
+ gl.bindVertexArray(vao);
545
+ const vbo = gl.createBuffer();
546
+ gl.bindBuffer(gl.ARRAY_BUFFER, vbo);
547
+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([-1,-1, 1,-1, -1,1, 1,1]), gl.STATIC_DRAW);
548
+ gl.enableVertexAttribArray(0);
549
+ gl.vertexAttribPointer(0, 2, gl.FLOAT, false, 0, 0);
550
+
551
+ function resize() {
552
+ const dpr = Math.min(window.devicePixelRatio, 1.5);
553
+ canvas.width = W = Math.floor(innerWidth * dpr);
554
+ canvas.height = H = Math.floor(innerHeight * dpr);
555
+ bufA = createFBO(W, H);
556
+ bufB = createFBO(W, H);
557
+ frameCount = 0;
558
+ }
559
+ addEventListener('resize', resize);
560
+ resize();
561
+
562
+ canvas.addEventListener('mousemove', e => {
563
+ const dpr = Math.min(devicePixelRatio, 1.5);
564
+ const x = e.clientX * dpr;
565
+ const y = H - e.clientY * dpr;
566
+ if (mouseDown) {
567
+ prevMouse[0] = mouse[0]; prevMouse[1] = mouse[1];
568
+ mouse[0] = x; mouse[1] = y;
569
+ }
570
+ });
571
+ canvas.addEventListener('mousedown', e => {
572
+ mouseDown = true;
573
+ const dpr = Math.min(devicePixelRatio, 1.5);
574
+ mouse[0] = e.clientX * dpr;
575
+ mouse[1] = H - e.clientY * dpr;
576
+ mouse[2] = 1.0; // IMPORTANT: Pressed flag, not a coordinate
577
+ prevMouse[0] = mouse[0]; prevMouse[1] = mouse[1];
578
+ });
579
+ canvas.addEventListener('mouseup', () => {
580
+ mouseDown = false;
581
+ mouse[2] = 0.0; // IMPORTANT: Released flag
582
+ });
583
+
584
+ // Touch events (mobile)
585
+ canvas.addEventListener('touchstart', e => {
586
+ e.preventDefault(); mouseDown = true;
587
+ const t = e.touches[0], dpr = Math.min(devicePixelRatio, 1.5);
588
+ mouse[0] = t.clientX * dpr; mouse[1] = H - t.clientY * dpr;
589
+ mouse[2] = 1.0;
590
+ prevMouse[0] = mouse[0]; prevMouse[1] = mouse[1];
591
+ }, {passive:false});
592
+ canvas.addEventListener('touchmove', e => {
593
+ e.preventDefault();
594
+ const t = e.touches[0], dpr = Math.min(devicePixelRatio, 1.5);
595
+ if (mouseDown) {
596
+ prevMouse[0] = mouse[0]; prevMouse[1] = mouse[1];
597
+ mouse[0] = t.clientX * dpr; mouse[1] = H - t.clientY * dpr;
598
+ }
599
+ }, {passive:false});
600
+ canvas.addEventListener('touchend', () => { mouseDown = false; mouse[2] = 0.0; });
601
+
602
+ // Cache uniform locations (avoid per-frame lookups)
603
+ const uBuf = {
604
+ ch0: gl.getUniformLocation(progBuf, 'iChannel0'),
605
+ res: gl.getUniformLocation(progBuf, 'iResolution'),
606
+ time: gl.getUniformLocation(progBuf, 'iTime'),
607
+ frame: gl.getUniformLocation(progBuf, 'iFrame'),
608
+ mouse: gl.getUniformLocation(progBuf, 'iMouse'),
609
+ mouseVel: gl.getUniformLocation(progBuf, 'iMouseVel')
610
+ };
611
+ const uImg = {
612
+ ch0: gl.getUniformLocation(progImg, 'iChannel0'),
613
+ res: gl.getUniformLocation(progImg, 'iResolution'),
614
+ time: gl.getUniformLocation(progImg, 'iTime')
615
+ };
616
+
617
+ function render(t) {
618
+ t *= 0.001;
619
+
620
+ // Buffer pass: read bufA → write bufB
621
+ gl.useProgram(progBuf);
622
+ gl.bindFramebuffer(gl.FRAMEBUFFER, bufB.fbo);
623
+ gl.viewport(0, 0, W, H);
624
+ gl.activeTexture(gl.TEXTURE0);
625
+ gl.bindTexture(gl.TEXTURE_2D, bufA.tex);
626
+ gl.uniform1i(uBuf.ch0, 0);
627
+ gl.uniform2f(uBuf.res, W, H);
628
+ gl.uniform1f(uBuf.time, t);
629
+ gl.uniform1i(uBuf.frame, frameCount);
630
+ gl.uniform4f(uBuf.mouse, mouse[0], mouse[1], mouse[2], 0.0);
631
+ // IMPORTANT: Must clamp mouse velocity! Fast movement or first-frame clicks can produce huge velocity values,
632
+ // causing shader velocity explosion → NaN propagation → page crash
633
+ const mvx = Math.max(-50, Math.min(50, mouse[0] - prevMouse[0]));
634
+ const mvy = Math.max(-50, Math.min(50, mouse[1] - prevMouse[1]));
635
+ gl.uniform2f(uBuf.mouseVel, mvx, mvy);
636
+ gl.bindVertexArray(vao);
637
+ gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
638
+ [bufA, bufB] = [bufB, bufA];
639
+
640
+ // Reset prevMouse each frame to avoid velocity accumulation
641
+ prevMouse[0] = mouse[0]; prevMouse[1] = mouse[1];
642
+
643
+ // Image pass: read bufA → screen
644
+ gl.useProgram(progImg);
645
+ gl.bindFramebuffer(gl.FRAMEBUFFER, null);
646
+ gl.viewport(0, 0, W, H);
647
+ gl.activeTexture(gl.TEXTURE0);
648
+ gl.bindTexture(gl.TEXTURE_2D, bufA.tex);
649
+ gl.uniform1i(uImg.ch0, 0);
650
+ gl.uniform2f(uImg.res, W, H);
651
+ gl.uniform1f(uImg.time, t);
652
+ gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
653
+
654
+ frameCount++;
655
+ requestAnimationFrame(render);
656
+ }
657
+ requestAnimationFrame(render);
658
+ </script>
659
+ ```
660
+
661
+ **Buffer A (Fluid Computation)**:
662
+ ```glsl
663
+ // Grid-Based Euler Fluid Solver — Buffer A
664
+ // Data layout: .xy=velocity, .z=pressure/density, .w=ink
665
+ // iChannel0 = Buffer A (self-feedback)
666
+
667
+ #define DT 0.15 // time step [0.05 - 0.3]
668
+ #define K 0.2 // pressure correction strength [0.1 - 0.4]
669
+ #define NU 0.5 // viscosity coefficient [0.01=water, 1.0=syrup]
670
+ #define KAPPA 0.1 // ink diffusion coefficient [0.0 - 0.5]
671
+ #define MOUSE_RAD 50.0 // mouse influence radius [10.0 - 200.0]
672
+
673
+ #define T(p) texture(iChannel0, (p) / iResolution.xy)
674
+
675
+ void mainImage(out vec4 fragColor, in vec2 p) {
676
+ // Initial frames: add slight noise to break symmetry lock
677
+ if (iFrame < 10) {
678
+ vec2 uv = p / iResolution.xy;
679
+ float noise = fract(sin(dot(uv, vec2(12.9898, 78.233))) * 43758.5453);
680
+ fragColor = vec4(noise * 1e-4, noise * 1e-4, 1.0, 0.0);
681
+ return;
682
+ }
683
+
684
+ vec4 c = T(p);
685
+
686
+ vec4 n = T(p + vec2(0, 1));
687
+ vec4 e = T(p + vec2(1, 0));
688
+ vec4 s = T(p - vec2(0, 1));
689
+ vec4 w = T(p - vec2(1, 0));
690
+
691
+ vec4 laplacian = (n + e + s + w - 4.0 * c);
692
+ vec4 dx = (e - w) / 2.0;
693
+ vec4 dy = (n - s) / 2.0;
694
+ float div = dx.x + dy.y;
695
+
696
+ c.z -= DT * (dx.z * c.x + dy.z * c.y + div * c.z);
697
+ c.xyw = T(p - DT * c.xy).xyw;
698
+ c.xyw += DT * vec3(NU, NU, KAPPA) * laplacian.xyw;
699
+ c.xy -= K * vec2(dx.z, dy.z);
700
+
701
+ // Mouse interaction: iMouse.z is the pressed flag (>0), velocity obtained via iMouseVel uniform
702
+ // IMPORTANT: mouseVel must be clamped to prevent NaN explosion (JS side should also clamp — double safety)
703
+ if (iMouse.z > 0.0) {
704
+ vec2 mouseVel = clamp(iMouseVel, vec2(-50.0), vec2(50.0));
705
+ float dist2 = dot(p - iMouse.xy, p - iMouse.xy);
706
+ float influence = exp(-dist2 / MOUSE_RAD);
707
+ c.xy += DT * influence * mouseVel;
708
+ c.w += DT * influence * 0.5;
709
+ }
710
+
711
+ // Vorticity confinement: prevents small vortices from dissipating too quickly, producing curling textures
712
+ // IMPORTANT: Ink diffusion/swirl effects (e.g., ink diffusing in water) require vorticity confinement, otherwise curl dissipates quickly leaving only smooth flow
713
+ float curl_c = dx.y - dy.x;
714
+ float curl_n = (T(p + vec2(1,1)).y - T(p + vec2(-1,1)).y) / 2.0
715
+ - (T(p + vec2(0,2)).x - T(p).x) / 2.0;
716
+ float curl_s = (T(p + vec2(1,-1)).y - T(p + vec2(-1,-1)).y) / 2.0
717
+ - (T(p).x - T(p + vec2(0,-2)).x) / 2.0;
718
+ float curl_e = (T(p + vec2(2,0)).y - T(p).y) / 2.0
719
+ - (T(p + vec2(1,1)).x - T(p + vec2(1,-1)).x) / 2.0;
720
+ float curl_w = (T(p).y - T(p + vec2(-2,0)).y) / 2.0
721
+ - (T(p + vec2(-1,1)).x - T(p + vec2(-1,-1)).x) / 2.0;
722
+ vec2 eta = vec2(abs(curl_e) - abs(curl_w), abs(curl_n) - abs(curl_s));
723
+ eta = normalize(eta + vec2(1e-5));
724
+ c.xy += DT * 0.035 * vec2(eta.y, -eta.x) * curl_c;
725
+
726
+ // IMPORTANT: Automatic ink sources: ensure visible fluid motion without mouse interaction
727
+ // Emitter positions must move over time, and Gaussian radius must be small enough to maintain locality
728
+ float t = iTime;
729
+ vec2 em1 = iResolution.xy * vec2(0.25, 0.5 + 0.2 * sin(t * 0.7));
730
+ vec2 em2 = iResolution.xy * vec2(0.75, 0.5 + 0.2 * cos(t * 0.9));
731
+ vec2 em3 = iResolution.xy * vec2(0.5, 0.3 + 0.15 * sin(t * 1.3));
732
+
733
+ float r1 = exp(-dot(p - em1, p - em1) / 150.0);
734
+ float r2 = exp(-dot(p - em2, p - em2) / 150.0);
735
+ float r3 = exp(-dot(p - em3, p - em3) / 120.0);
736
+
737
+ c.xy += DT * r1 * vec2(cos(t), sin(t * 1.3)) * 3.0;
738
+ c.xy += DT * r2 * vec2(-cos(t * 0.8), sin(t * 0.6)) * 3.0;
739
+ c.xy += DT * r3 * vec2(sin(t * 1.1), -cos(t)) * 2.0;
740
+ c.w += DT * (r1 + r2 + r3) * 2.0;
741
+
742
+ // IMPORTANT: Ink decay: must use multiplicative decay, do NOT use subtractive (subtractive causes saturation)
743
+ c.w *= 0.99;
744
+
745
+ c = clamp(c, vec4(-5, -5, 0.5, 0), vec4(5, 5, 3, 5));
746
+
747
+ if (p.x < 1.0 || p.y < 1.0 ||
748
+ iResolution.x - p.x < 1.0 || iResolution.y - p.y < 1.0) {
749
+ c.xyw *= 0.0;
750
+ }
751
+
752
+ fragColor = c;
753
+ }
754
+ ```
755
+
756
+ **Image (Visualization Rendering)**:
757
+ ```glsl
758
+ // Fluid Visualization — Image Pass
759
+ // iChannel0 = Buffer A
760
+
761
+ void mainImage(out vec4 fragColor, in vec2 fragCoord) {
762
+ vec2 uv = fragCoord / iResolution.xy;
763
+ vec4 c = texture(iChannel0, uv);
764
+
765
+ // IMPORTANT: Color base must be bright enough! 0.5+0.5*cos produces [0,1] range bright colors
766
+ // Never use vec3(0.02, 0.01, 0.08) or similar extremely dark base colors — they become invisible when multiplied by ink
767
+ float angle = atan(c.y, c.x);
768
+ vec3 col = 0.5 + 0.5 * cos(angle + vec3(0.0, 2.1, 4.2));
769
+
770
+ // IMPORTANT: smoothstep upper limit should cover actual ink range to preserve gradient variation
771
+ float ink = smoothstep(0.0, 2.0, c.w);
772
+ col *= ink;
773
+
774
+ // Pressure highlights
775
+ col += vec3(0.05) * clamp(c.z - 1.0, 0.0, 1.0);
776
+
777
+ // IMPORTANT: Background color must be visible (RGB at least > 5/255 ≈ 0.02), otherwise users think the page is all black
778
+ col = max(col, vec3(0.02, 0.012, 0.035));
779
+
780
+ fragColor = vec4(col, 1.0);
781
+ }
782
+ ```
783
+
784
+ ## Water Surface Ripple Complete Template
785
+
786
+ Water surface ripples use the wave equation rather than Navier-Stokes. Clicks/touches generate concentric ripples that interfere with each other and gradually decay.
787
+
788
+ **IMPORTANT: Water ripple drop injection must be implemented directly in the shader using iMouse**, do not use custom uniform arrays to pass click positions — that adds complexity on both JS/GLSL sides and is error-prone (uniform location not found, array length mismatch, etc.).
789
+
790
+ ### Water Ripple Buffer Pass (Wave Equation Solver)
791
+
792
+ ```glsl
793
+ // Water Ripple — Buffer Pass (Wave Equation Solver)
794
+ // Data encoding: .r = previous frame height (prev), .g = current frame height (curr)
795
+ // iChannel0 = self-feedback (ping-pong)
796
+ // IMPORTANT: Drop injection is done directly in the shader via iMouse, no custom uniforms needed
797
+
798
+ void main() {
799
+ vec2 p = gl_FragCoord.xy;
800
+ vec2 uv = p / iResolution.xy;
801
+
802
+ if (iFrame < 2) {
803
+ fragColor = vec4(0.0);
804
+ return;
805
+ }
806
+
807
+ float prev = texture(iChannel0, uv).r;
808
+ float curr = texture(iChannel0, uv).g;
809
+
810
+ vec2 texel = 1.0 / iResolution.xy;
811
+ float n = texture(iChannel0, uv + vec2(0.0, texel.y)).g;
812
+ float s = texture(iChannel0, uv - vec2(0.0, texel.y)).g;
813
+ float e = texture(iChannel0, uv + vec2(texel.x, 0.0)).g;
814
+ float w = texture(iChannel0, uv - vec2(texel.x, 0.0)).g;
815
+
816
+ float laplacian = n + s + e + w - 4.0 * curr;
817
+
818
+ // Verlet integration: next = 2*curr - prev + c²*laplacian
819
+ float speed = 0.45;
820
+ float next = 2.0 * curr - prev + speed * laplacian;
821
+
822
+ // damping: 0.995~0.998 lets ripples propagate several rings before disappearing
823
+ float damping = 0.996;
824
+ next *= damping;
825
+
826
+ // IMPORTANT: Mouse click drop injection — directly using iMouse, simple and reliable
827
+ // iMouse.z > 0 indicates mouse is pressed
828
+ if (iMouse.z > 0.0) {
829
+ float dist = length(p - iMouse.xy);
830
+ float radius = 12.0;
831
+ float strength = 1.5;
832
+ next += strength * exp(-dist * dist / (2.0 * radius * radius));
833
+ }
834
+
835
+ // IMPORTANT: Automatic ripples: ensure visible ripples even without interaction
836
+ // Use periodic functions of iTime to control auto-drop position and timing
837
+ float autoPhase = iTime * 0.5;
838
+ float autoPeriod = fract(autoPhase);
839
+ // Only inject during phase < 0.05 each cycle (avoid continuous injection)
840
+ if (autoPeriod < 0.05) {
841
+ float idx = floor(autoPhase);
842
+ // Pseudo-random position
843
+ vec2 autoPos = iResolution.xy * vec2(
844
+ 0.2 + 0.6 * fract(sin(idx * 12.9898) * 43758.5453),
845
+ 0.2 + 0.6 * fract(sin(idx * 78.233) * 43758.5453)
846
+ );
847
+ float dist = length(p - autoPos);
848
+ next += 1.2 * exp(-dist * dist / (2.0 * 10.0 * 10.0));
849
+ }
850
+
851
+ // Boundary absorption
852
+ if (p.x < 2.0 || p.y < 2.0 ||
853
+ iResolution.x - p.x < 2.0 || iResolution.y - p.y < 2.0) {
854
+ next *= 0.0;
855
+ }
856
+
857
+ // IMPORTANT: Output: .r = current frame (becomes next frame's prev), .g = newly computed (becomes next frame's curr)
858
+ fragColor = vec4(curr, next, 0.0, 1.0);
859
+ }
860
+ ```
861
+
862
+ ### Water Ripple JS Side
863
+
864
+ The water ripple JS structure is identical to the fluid simulation skeleton (ping-pong FBO + render loop), with only these differences:
865
+ - Buffer pass shader is the wave equation solver (template above)
866
+ - Image pass is the water surface lighting renderer (Step 9c)
867
+ - **No custom uniform arrays needed**, drop injection is done entirely in the shader via iMouse
868
+ - JS side only needs to pass standard uniforms: `iChannel0, iResolution, iTime, iFrame, iMouse`
869
+
870
+ When dragging the mouse, ripples are continuously injected (because iMouse.z > 0 remains true), and faster dragging produces denser ripples (a natural effect).
871
+
872
+ ### Water Ripple Image Pass
873
+
874
+ See Step 9c above.
875
+
876
+ ## Multi-Color Ink Mixing Template (Ink Diffusion in Water / Multi-Color Blending)
877
+
878
+ When multiple ink colors need to interpenetrate and blend, a single scalar `c.w` is insufficient. You need **two Buffers**: Buffer A stores velocity/pressure (same as above), Buffer B stores RGB three-channel ink concentration, sharing the same velocity field for advection.
879
+
880
+ **IMPORTANT: Key for multi-color ink: Buffer B's RGB channels independently store the concentration of each ink color, using Buffer A's velocity field for semi-Lagrangian advection. Different ink colors naturally blend during advection and diffusion.**
881
+
882
+ ### JS Side Changes (Three Buffer Ping-Pong)
883
+
884
+ Two sets of ping-pong FBOs are needed: `bufA/bufB` (velocity field) and `bufC/bufD` (ink RGB). In the render loop, first render Buffer A (velocity field), then Buffer B (ink advection), and finally the Image pass reads Buffer B for visualization:
885
+
886
+ ```javascript
887
+ // Create additional ink FBO pair
888
+ let bufC, bufD;
889
+ function resize() {
890
+ // ... same as above for bufA/bufB ...
891
+ bufC = createFBO(W, H);
892
+ bufD = createFBO(W, H);
893
+ }
894
+
895
+ // Buffer B shader needs two input textures:
896
+ // iChannel0 = Buffer B self (ink RGB)
897
+ // iChannel1 = Buffer A (velocity field)
898
+ const uBufInk = {
899
+ ch0: gl.getUniformLocation(progBufInk, 'iChannel0'),
900
+ ch1: gl.getUniformLocation(progBufInk, 'iChannel1'),
901
+ res: gl.getUniformLocation(progBufInk, 'iResolution'),
902
+ time: gl.getUniformLocation(progBufInk, 'iTime'),
903
+ frame: gl.getUniformLocation(progBufInk, 'iFrame'),
904
+ mouse: gl.getUniformLocation(progBufInk, 'iMouse'),
905
+ };
906
+
907
+ function render(t) {
908
+ t *= 0.001;
909
+ // Pass 1: Buffer A (velocity) — read bufA, write bufB
910
+ // ... same as above ...
911
+ [bufA, bufB] = [bufB, bufA];
912
+
913
+ // Pass 2: Buffer B (ink RGB) — read bufC(ink)+bufA(velocity), write bufD
914
+ gl.useProgram(progBufInk);
915
+ gl.bindFramebuffer(gl.FRAMEBUFFER, bufD.fbo);
916
+ gl.viewport(0, 0, W, H);
917
+ gl.activeTexture(gl.TEXTURE0);
918
+ gl.bindTexture(gl.TEXTURE_2D, bufC.tex); // previous frame ink
919
+ gl.activeTexture(gl.TEXTURE1);
920
+ gl.bindTexture(gl.TEXTURE_2D, bufA.tex); // current velocity field
921
+ gl.uniform1i(uBufInk.ch0, 0);
922
+ gl.uniform1i(uBufInk.ch1, 1);
923
+ gl.uniform2f(uBufInk.res, W, H);
924
+ gl.uniform1f(uBufInk.time, t);
925
+ gl.uniform1i(uBufInk.frame, frameCount);
926
+ gl.uniform4f(uBufInk.mouse, mouse[0], mouse[1], mouse[2], 0.0);
927
+ gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
928
+ [bufC, bufD] = [bufD, bufC];
929
+
930
+ // Pass 3: Image — read bufC(ink) to screen
931
+ gl.useProgram(progImg);
932
+ gl.bindFramebuffer(gl.FRAMEBUFFER, null);
933
+ gl.activeTexture(gl.TEXTURE0);
934
+ gl.bindTexture(gl.TEXTURE_2D, bufC.tex);
935
+ // ...
936
+ }
937
+ ```
938
+
939
+ ### Buffer B — Multi-Color Ink Advection Shader
940
+
941
+ ```glsl
942
+ // Multi-Color Ink — Buffer B (Ink Advection)
943
+ // .rgb = concentrations of three ink colors
944
+ // iChannel0 = Buffer B self (ink RGB)
945
+ // iChannel1 = Buffer A (velocity field, .xy=velocity)
946
+
947
+ #define DT 0.15
948
+ #define INK_KAPPA 0.3 // ink diffusion coefficient (higher than single-color template for faster blending)
949
+ #define INK_DECAY 0.995 // ink decay (slower than single-color to maintain richness)
950
+
951
+ #define TINK(p) texture(iChannel0, (p) / iResolution.xy)
952
+ #define TVEL(p) texture(iChannel1, (p) / iResolution.xy)
953
+
954
+ void mainImage(out vec4 fragColor, in vec2 p) {
955
+ if (iFrame < 10) { fragColor = vec4(0.0, 0.0, 0.0, 1.0); return; }
956
+
957
+ vec2 vel = TVEL(p).xy;
958
+
959
+ // Semi-Lagrangian advection: backward trace using velocity field
960
+ vec3 ink = TINK(p - DT * vel).rgb;
961
+
962
+ // Diffusion: Laplacian operator
963
+ vec3 inkC = TINK(p).rgb;
964
+ vec3 inkN = TINK(p + vec2(0,1)).rgb;
965
+ vec3 inkE = TINK(p + vec2(1,0)).rgb;
966
+ vec3 inkS = TINK(p - vec2(0,1)).rgb;
967
+ vec3 inkW = TINK(p - vec2(1,0)).rgb;
968
+ vec3 lapInk = inkN + inkE + inkS + inkW - 4.0 * inkC;
969
+ ink += DT * INK_KAPPA * lapInk;
970
+
971
+ // Automatic ink sources: multiple emitters with different colors
972
+ float t = iTime;
973
+ vec2 em1 = iResolution.xy * vec2(0.25, 0.5 + 0.2 * sin(t * 0.7));
974
+ vec2 em2 = iResolution.xy * vec2(0.75, 0.5 + 0.2 * cos(t * 0.9));
975
+ vec2 em3 = iResolution.xy * vec2(0.5, 0.3 + 0.15 * sin(t * 1.3));
976
+ vec2 em4 = iResolution.xy * vec2(0.5, 0.7 + 0.15 * cos(t * 0.5));
977
+
978
+ float r1 = exp(-dot(p - em1, p - em1) / 200.0);
979
+ float r2 = exp(-dot(p - em2, p - em2) / 200.0);
980
+ float r3 = exp(-dot(p - em3, p - em3) / 180.0);
981
+ float r4 = exp(-dot(p - em4, p - em4) / 180.0);
982
+
983
+ // Each emitter injects a different color
984
+ ink.r += DT * (r1 * 3.0 + r4 * 1.5); // red/magenta
985
+ ink.g += DT * (r2 * 3.0 + r3 * 1.5); // green/cyan
986
+ ink.b += DT * (r3 * 3.0 + r1 * 0.8 + r2 * 0.8); // blue/mixed
987
+
988
+ // Mouse stirring injects white ink (all channels)
989
+ if (iMouse.z > 0.0) {
990
+ float dist2 = dot(p - iMouse.xy, p - iMouse.xy);
991
+ float influence = exp(-dist2 / 80.0);
992
+ ink += vec3(DT * influence * 2.0);
993
+ }
994
+
995
+ // Decay + clamp
996
+ ink *= INK_DECAY;
997
+ ink = clamp(ink, vec3(0.0), vec3(5.0));
998
+
999
+ // Boundary clear
1000
+ if (p.x < 1.0 || p.y < 1.0 ||
1001
+ iResolution.x - p.x < 1.0 || iResolution.y - p.y < 1.0) {
1002
+ ink = vec3(0.0);
1003
+ }
1004
+
1005
+ fragColor = vec4(ink, 1.0);
1006
+ }
1007
+ ```
1008
+
1009
+ ### Step 9d: Visualization (Image Pass) — Multi-Color Ink Mixing
1010
+
1011
+ ```glsl
1012
+ // Multi-Color Ink Visualization — Image Pass
1013
+ // iChannel0 = Buffer B (ink RGB)
1014
+
1015
+ void mainImage(out vec4 fragColor, in vec2 fragCoord) {
1016
+ vec2 uv = fragCoord / iResolution.xy;
1017
+ vec3 ink = texture(iChannel0, uv).rgb;
1018
+
1019
+ // Use smoothstep to map each channel, preserving concentration gradients
1020
+ vec3 mapped = smoothstep(vec3(0.0), vec3(2.5), ink);
1021
+
1022
+ // Color mapping: map RGB concentrations to actual visible colors
1023
+ // IMPORTANT: Base colors must be bright, do not use extremely dark values
1024
+ vec3 col1 = vec3(0.9, 0.15, 0.2); // red ink
1025
+ vec3 col2 = vec3(0.1, 0.8, 0.3); // green ink
1026
+ vec3 col3 = vec3(0.15, 0.3, 0.95); // blue ink
1027
+
1028
+ vec3 col = col1 * mapped.r + col2 * mapped.g + col3 * mapped.b;
1029
+
1030
+ // Mixing regions produce new hues (additive blending naturally creates gradients)
1031
+ // HDR tone mapping to prevent overexposure
1032
+ col = 1.0 - exp(-col * 1.2);
1033
+
1034
+ // Background color
1035
+ float totalInk = mapped.r + mapped.g + mapped.b;
1036
+ vec3 bg = vec3(0.02, 0.015, 0.04);
1037
+ col = mix(bg, col, smoothstep(0.0, 0.3, totalInk));
1038
+
1039
+ fragColor = vec4(col, 1.0);
1040
+ }
1041
+ ```
1042
+
1043
+ **IMPORTANT: The multi-color ink Buffer A velocity field template is identical to the single-color version**, except `c.w` is no longer used for ink (ink is in Buffer B). Buffer A only handles velocity + pressure.
1044
+
1045
+ ## Common Variants
1046
+
1047
+ ### Variant 1: Rotational Self-Advection
1048
+ Does not use pressure projection; achieves naturally divergence-free advection through multi-scale rotational sampling.
1049
+ ```glsl
1050
+ #define RotNum 3
1051
+ #define angRnd 1.0
1052
+
1053
+ const float ang = 2.0 * 3.14159 / float(RotNum);
1054
+ mat2 m = mat2(cos(ang), sin(ang), -sin(ang), cos(ang));
1055
+
1056
+ float getRot(vec2 uv, float sc) {
1057
+ float ang2 = angRnd * randS(uv).x * ang;
1058
+ vec2 p = vec2(cos(ang2), sin(ang2));
1059
+ float rot = 0.0;
1060
+ for (int i = 0; i < RotNum; i++) {
1061
+ vec2 p2 = p * sc;
1062
+ vec2 v = texture(iChannel0, fract(uv + p2)).xy - vec2(0.5);
1063
+ rot += cross(vec3(v, 0.0), vec3(p2, 0.0)).z / dot(p2, p2);
1064
+ p = m * p;
1065
+ }
1066
+ return rot / float(RotNum);
1067
+ }
1068
+
1069
+ // Multi-scale advection superposition
1070
+ vec2 v = vec2(0);
1071
+ float sc = 1.0 / max(iResolution.x, iResolution.y);
1072
+ for (int level = 0; level < 20; level++) {
1073
+ if (sc > 0.7) break;
1074
+ vec2 p = vec2(cos(ang2), sin(ang2));
1075
+ for (int i = 0; i < RotNum; i++) {
1076
+ vec2 p2 = p * sc;
1077
+ float rot = getRot(uv + p2, sc);
1078
+ v += p2.yx * rot * vec2(-1, 1);
1079
+ p = m * p;
1080
+ }
1081
+ sc *= 2.0;
1082
+ }
1083
+ fragColor = texture(iChannel0, fract(uv + v * 3.0 / iResolution.x));
1084
+ ```
1085
+
1086
+ ### Variant 2: Vorticity Confinement
1087
+ Adds vorticity confinement force on top of the basic solver, preventing small vortices from dissipating too quickly.
1088
+ ```glsl
1089
+ #define VORT_STRENGTH 0.01 // [0.001 - 0.1]
1090
+
1091
+ float curl_c = curl_at(uv);
1092
+ float curl_n = abs(curl_at(uv + vec2(0, texel.y)));
1093
+ float curl_s = abs(curl_at(uv - vec2(0, texel.y)));
1094
+ float curl_e = abs(curl_at(uv + vec2(texel.x, 0)));
1095
+ float curl_w = abs(curl_at(uv - vec2(texel.x, 0)));
1096
+
1097
+ vec2 eta = normalize(vec2(curl_e - curl_w, curl_n - curl_s) + 1e-5);
1098
+ vec2 conf = VORT_STRENGTH * vec2(eta.y, -eta.x) * curl_c;
1099
+ c.xy += DT * conf;
1100
+ ```
1101
+
1102
+ ### Variant 3: Viscous Fingering
1103
+ Rotation-driven self-amplification + Laplacian diffusion, producing reaction-diffusion style organic patterns.
1104
+ ```glsl
1105
+ const float cs = 0.25; // curl→rotation scale
1106
+ const float ls = 0.24; // Laplacian diffusion strength
1107
+ const float ps = -0.06; // divergence-pressure feedback
1108
+ const float amp = 1.0; // self-amplification coefficient
1109
+ const float pwr = 0.2; // curl power exponent
1110
+
1111
+ float sc = cs * sign(curl) * pow(abs(curl), pwr);
1112
+ float ta = amp * uv.x + ls * lapl.x + norm.x * sp + uv.x * sd;
1113
+ float tb = amp * uv.y + ls * lapl.y + norm.y * sp + uv.y * sd;
1114
+ float a = ta * cos(sc) - tb * sin(sc);
1115
+ float b = ta * sin(sc) + tb * cos(sc);
1116
+ fragColor = clamp(vec4(a, b, div, 1), -1.0, 1.0);
1117
+ ```
1118
+
1119
+ ### Variant 4: Gaussian Kernel SPH Particle Fluid (Gaussian SPH)
1120
+ Gaussian kernel function for density and velocity estimation, a grid-based approximation of SPH.
1121
+ ```glsl
1122
+ #define RADIUS 7 // search radius [3-10]
1123
+
1124
+ vec4 r = vec4(0);
1125
+ for (vec2 i = vec2(-RADIUS); ++i.x < float(RADIUS);)
1126
+ for (i.y = -float(RADIUS); ++i.y < float(RADIUS);) {
1127
+ vec2 v = texelFetch(iChannel0, ivec2(i + fragCoord), 0).xy;
1128
+ float mass = texelFetch(iChannel0, ivec2(i + fragCoord), 0).z;
1129
+ float w = exp(-dot(v + i, v + i)) / 3.14;
1130
+ r += mass * w * vec4(mix(v + v + i, v, mass), 1, 1);
1131
+ }
1132
+ r.xy /= r.z + 1e-6;
1133
+ ```
1134
+
1135
+ ### Variant 5: Lagrangian Vortex Particle Method
1136
+ Tracks discrete vortex particles, computing the velocity field using the Biot-Savart law.
1137
+ ```glsl
1138
+ #define N 20 // N×N particles
1139
+ #define STRENGTH 1e3*0.25 // vorticity strength scale
1140
+
1141
+ vec2 F = vec2(0);
1142
+ for (int j = 0; j < N; j++)
1143
+ for (int i = 0; i < N; i++) {
1144
+ float w = vorticity(i, j);
1145
+ vec2 d = particle_pos(i, j) - my_pos;
1146
+ float l = dot(d, d);
1147
+ if (l > 1e-5)
1148
+ F += vec2(-d.y, d.x) * w / l;
1149
+ }
1150
+ velocity = STRENGTH * F;
1151
+ position += velocity * dt;
1152
+ ```
1153
+
1154
+ ## Performance & Composition
1155
+
1156
+ **Performance tips**:
1157
+ - 5-point cross stencil is fastest; 3x3 (9 samples) is the best accuracy/performance tradeoff
1158
+ - SPH search radius >7 is extremely slow; use `texelFetch` instead of `texture` to skip filtering
1159
+ - Merge multiple steps into a single Pass; inter-frame feedback forms implicit Jacobi iteration
1160
+ - Multi-step advection (`ADVECTION_STEPS=3`) improves accuracy but 3x sampling cost
1161
+ - `textureLod` provides O(1) multi-scale reads replacing large-radius sampling
1162
+ - Add slight noise (`1e-6`) on initial frames to break symmetry lock
1163
+ - `fract(uv + offset)` implements periodic boundaries without branching
1164
+ - Multiply pressure field by `0.9999` decay to prevent drift
1165
+
1166
+ **Composition directions**:
1167
+ - **+ Normal map lighting**: density field → height map → normals → Phong/GGX, liquid metal effects
1168
+ - **+ Particle tracing**: passive particles update position following the flow field, visualizing streamlines/ink wash
1169
+ - **+ Color advection**: extra channels store RGB, synchronous semi-Lagrangian advection, colorful blending
1170
+ - **+ Audio response**: low freq → thrust, high freq → vortex perturbation, music-driven fluid
1171
+ - **+ 3D volume rendering**: 2D slices packed as 3D voxels, ray marching to render clouds/explosions
1172
+
1173
+ ## Further Reading
1174
+
1175
+ Full step-by-step tutorial, mathematical derivations, and advanced usage in [reference](../reference/fluid-simulation.md)