@rosetears/aili-pi 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (531) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +109 -0
  3. package/THIRD_PARTY_NOTICES.md +64 -0
  4. package/extensions/index.ts +6 -0
  5. package/install.sh +5 -0
  6. package/manifests/adapter-evidence.json +45 -0
  7. package/manifests/capabilities.json +124 -0
  8. package/manifests/live-verification.json +26 -0
  9. package/manifests/provenance.json +71 -0
  10. package/manifests/roles.json +474 -0
  11. package/manifests/sbom.json +7797 -0
  12. package/manifests/skill-compatibility.json +8100 -0
  13. package/manifests/subagent-provenance.json +37 -0
  14. package/package.json +91 -0
  15. package/prompts/build.md +8 -0
  16. package/prompts/define.md +8 -0
  17. package/prompts/ideate.md +8 -0
  18. package/prompts/local-review.md +8 -0
  19. package/prompts/ship.md +8 -0
  20. package/roles/agent-evaluator.md +47 -0
  21. package/roles/ai-regression-scout.md +47 -0
  22. package/roles/browser-qa-runner.md +47 -0
  23. package/roles/code-reviewer.md +47 -0
  24. package/roles/code-scout.md +47 -0
  25. package/roles/convergence-reviewer.md +55 -0
  26. package/roles/doc-researcher.md +47 -0
  27. package/roles/e2e-artifact-runner.md +47 -0
  28. package/roles/implementer.md +47 -0
  29. package/roles/opensource-sanitizer.md +47 -0
  30. package/roles/plan-auditor.md +47 -0
  31. package/roles/pr-test-analyzer.md +47 -0
  32. package/roles/security-auditor.md +47 -0
  33. package/roles/silent-failure-reviewer.md +47 -0
  34. package/roles/spec-miner.md +47 -0
  35. package/roles/test-coverage-reviewer.md +47 -0
  36. package/roles/test-engineer.md +48 -0
  37. package/roles/web-performance-auditor.md +47 -0
  38. package/roles/web-researcher.md +47 -0
  39. package/scripts/apply-adapter-evidence.ts +73 -0
  40. package/scripts/bootstrap.sh +180 -0
  41. package/scripts/generate-provenance.ts +143 -0
  42. package/scripts/local-package-e2e.ts +51 -0
  43. package/scripts/sync-roles.ts +213 -0
  44. package/scripts/sync-skills.ts +356 -0
  45. package/scripts/validate-runtime.ts +11 -0
  46. package/skills/academic-paper-review/SKILL.md +81 -0
  47. package/skills/agents-md-initialization/SKILL.md +121 -0
  48. package/skills/agents-md-initialization/references/agents-template.md +83 -0
  49. package/skills/agents-md-initialization/references/agents_md.py +215 -0
  50. package/skills/ai-regression-scout/SKILL.md +24 -0
  51. package/skills/aili-delivery-flow/SKILL.md +125 -0
  52. package/skills/aili-delivery-flow/references/artifact-contracts.md +138 -0
  53. package/skills/aili-delivery-flow/references/backend-routing.md +40 -0
  54. package/skills/aili-delivery-flow/references/build-execution-loop.md +113 -0
  55. package/skills/aili-delivery-flow/references/build-goal-mode.md +3 -0
  56. package/skills/aili-delivery-flow/references/direct-vs-delegated-work.md +38 -0
  57. package/skills/aili-delivery-flow/references/implementation-packages.md +54 -0
  58. package/skills/aili-delivery-flow/references/lifecycle.md +127 -0
  59. package/skills/aili-delivery-flow/references/protocols/acceptance-test-plan.md +18 -0
  60. package/skills/aili-delivery-flow/references/protocols/alignment-questionnaire.md +10 -0
  61. package/skills/aili-delivery-flow/references/protocols/closeout-report.md +101 -0
  62. package/skills/aili-delivery-flow/references/protocols/compact-evidence-pack.md +46 -0
  63. package/skills/aili-delivery-flow/references/protocols/idea-brief.md +10 -0
  64. package/skills/aili-delivery-flow/references/protocols/implementation-package.md +53 -0
  65. package/skills/aili-delivery-flow/references/protocols/research-evidence-pack.md +19 -0
  66. package/skills/aili-delivery-flow/references/protocols/review-report.md +7 -0
  67. package/skills/aili-delivery-flow/references/protocols/spec-draft.md +12 -0
  68. package/skills/aili-delivery-flow/references/protocols/subagent-result.md +60 -0
  69. package/skills/aili-delivery-flow/references/protocols/subagent-task-packet.md +29 -0
  70. package/skills/aili-delivery-flow/references/protocols/worktree-context.md +109 -0
  71. package/skills/aili-delivery-flow/references/questionnaire-policy.md +62 -0
  72. package/skills/aili-delivery-flow/references/review-repair-loop.md +16 -0
  73. package/skills/aili-delivery-flow/references/test-document-policy.md +35 -0
  74. package/skills/android-native-dev/SKILL.md +722 -0
  75. package/skills/android-native-dev/references/accessibility.md +209 -0
  76. package/skills/android-native-dev/references/adaptive-screens.md +231 -0
  77. package/skills/android-native-dev/references/design-style-guide.md +365 -0
  78. package/skills/android-native-dev/references/functional-requirements.md +229 -0
  79. package/skills/android-native-dev/references/motion-system.md +203 -0
  80. package/skills/android-native-dev/references/performance-stability.md +223 -0
  81. package/skills/android-native-dev/references/privacy-security.md +244 -0
  82. package/skills/android-native-dev/references/testing.md +554 -0
  83. package/skills/android-native-dev/references/visual-design.md +246 -0
  84. package/skills/api-and-interface-design/SKILL.md +318 -0
  85. package/skills/browser-qa/SKILL.md +32 -0
  86. package/skills/browser-testing-with-devtools/SKILL.md +323 -0
  87. package/skills/build-failure-repair/SKILL.md +49 -0
  88. package/skills/chart-visualization/SKILL.md +73 -0
  89. package/skills/ci-cd-and-automation/SKILL.md +353 -0
  90. package/skills/code-review-and-quality/SKILL.md +375 -0
  91. package/skills/code-review-quality-gates/SKILL.md +132 -0
  92. package/skills/code-simplification/SKILL.md +371 -0
  93. package/skills/comment-accuracy-review/SKILL.md +37 -0
  94. package/skills/consulting-analysis/SKILL.md +69 -0
  95. package/skills/context-engineering/SKILL.md +375 -0
  96. package/skills/coverage-review/SKILL.md +24 -0
  97. package/skills/data-analysis/SKILL.md +74 -0
  98. package/skills/deprecation-and-migration/SKILL.md +222 -0
  99. package/skills/documentation-and-adrs/SKILL.md +330 -0
  100. package/skills/e2e-artifact-handling/SKILL.md +30 -0
  101. package/skills/evidence-scoped-retrospective/SKILL.md +156 -0
  102. package/skills/explain-by-allegory/SKILL.md +99 -0
  103. package/skills/flutter-dev/SKILL.md +162 -0
  104. package/skills/flutter-dev/references/animations.md +497 -0
  105. package/skills/flutter-dev/references/bloc-state.md +281 -0
  106. package/skills/flutter-dev/references/forms.md +656 -0
  107. package/skills/flutter-dev/references/gorouter-navigation.md +257 -0
  108. package/skills/flutter-dev/references/localization.md +510 -0
  109. package/skills/flutter-dev/references/networking.md +566 -0
  110. package/skills/flutter-dev/references/performance.md +305 -0
  111. package/skills/flutter-dev/references/platform-specific.md +417 -0
  112. package/skills/flutter-dev/references/project-structure.md +273 -0
  113. package/skills/flutter-dev/references/riverpod-state.md +232 -0
  114. package/skills/flutter-dev/references/testing.md +364 -0
  115. package/skills/flutter-dev/references/widget-patterns.md +233 -0
  116. package/skills/frontend-dev/SKILL.md +468 -0
  117. package/skills/frontend-dev/canvas-fonts/ArsenalSC-OFL.txt +93 -0
  118. package/skills/frontend-dev/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  119. package/skills/frontend-dev/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  120. package/skills/frontend-dev/canvas-fonts/BigShoulders-OFL.txt +93 -0
  121. package/skills/frontend-dev/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  122. package/skills/frontend-dev/canvas-fonts/Boldonse-OFL.txt +93 -0
  123. package/skills/frontend-dev/canvas-fonts/Boldonse-Regular.ttf +0 -0
  124. package/skills/frontend-dev/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  125. package/skills/frontend-dev/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
  126. package/skills/frontend-dev/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  127. package/skills/frontend-dev/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  128. package/skills/frontend-dev/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  129. package/skills/frontend-dev/canvas-fonts/CrimsonPro-OFL.txt +93 -0
  130. package/skills/frontend-dev/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  131. package/skills/frontend-dev/canvas-fonts/DMMono-OFL.txt +93 -0
  132. package/skills/frontend-dev/canvas-fonts/DMMono-Regular.ttf +0 -0
  133. package/skills/frontend-dev/canvas-fonts/EricaOne-OFL.txt +94 -0
  134. package/skills/frontend-dev/canvas-fonts/EricaOne-Regular.ttf +0 -0
  135. package/skills/frontend-dev/canvas-fonts/GeistMono-Bold.ttf +0 -0
  136. package/skills/frontend-dev/canvas-fonts/GeistMono-OFL.txt +93 -0
  137. package/skills/frontend-dev/canvas-fonts/GeistMono-Regular.ttf +0 -0
  138. package/skills/frontend-dev/canvas-fonts/Gloock-OFL.txt +93 -0
  139. package/skills/frontend-dev/canvas-fonts/Gloock-Regular.ttf +0 -0
  140. package/skills/frontend-dev/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  141. package/skills/frontend-dev/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
  142. package/skills/frontend-dev/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  143. package/skills/frontend-dev/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  144. package/skills/frontend-dev/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  145. package/skills/frontend-dev/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  146. package/skills/frontend-dev/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  147. package/skills/frontend-dev/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  148. package/skills/frontend-dev/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  149. package/skills/frontend-dev/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  150. package/skills/frontend-dev/canvas-fonts/InstrumentSans-OFL.txt +93 -0
  151. package/skills/frontend-dev/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  152. package/skills/frontend-dev/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  153. package/skills/frontend-dev/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  154. package/skills/frontend-dev/canvas-fonts/Italiana-OFL.txt +93 -0
  155. package/skills/frontend-dev/canvas-fonts/Italiana-Regular.ttf +0 -0
  156. package/skills/frontend-dev/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  157. package/skills/frontend-dev/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
  158. package/skills/frontend-dev/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  159. package/skills/frontend-dev/canvas-fonts/Jura-Light.ttf +0 -0
  160. package/skills/frontend-dev/canvas-fonts/Jura-Medium.ttf +0 -0
  161. package/skills/frontend-dev/canvas-fonts/Jura-OFL.txt +93 -0
  162. package/skills/frontend-dev/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
  163. package/skills/frontend-dev/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  164. package/skills/frontend-dev/canvas-fonts/Lora-Bold.ttf +0 -0
  165. package/skills/frontend-dev/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  166. package/skills/frontend-dev/canvas-fonts/Lora-Italic.ttf +0 -0
  167. package/skills/frontend-dev/canvas-fonts/Lora-OFL.txt +93 -0
  168. package/skills/frontend-dev/canvas-fonts/Lora-Regular.ttf +0 -0
  169. package/skills/frontend-dev/canvas-fonts/NationalPark-Bold.ttf +0 -0
  170. package/skills/frontend-dev/canvas-fonts/NationalPark-OFL.txt +93 -0
  171. package/skills/frontend-dev/canvas-fonts/NationalPark-Regular.ttf +0 -0
  172. package/skills/frontend-dev/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
  173. package/skills/frontend-dev/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  174. package/skills/frontend-dev/canvas-fonts/Outfit-Bold.ttf +0 -0
  175. package/skills/frontend-dev/canvas-fonts/Outfit-OFL.txt +93 -0
  176. package/skills/frontend-dev/canvas-fonts/Outfit-Regular.ttf +0 -0
  177. package/skills/frontend-dev/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  178. package/skills/frontend-dev/canvas-fonts/PixelifySans-OFL.txt +93 -0
  179. package/skills/frontend-dev/canvas-fonts/PoiretOne-OFL.txt +93 -0
  180. package/skills/frontend-dev/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  181. package/skills/frontend-dev/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  182. package/skills/frontend-dev/canvas-fonts/RedHatMono-OFL.txt +93 -0
  183. package/skills/frontend-dev/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  184. package/skills/frontend-dev/canvas-fonts/Silkscreen-OFL.txt +93 -0
  185. package/skills/frontend-dev/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  186. package/skills/frontend-dev/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  187. package/skills/frontend-dev/canvas-fonts/SmoochSans-OFL.txt +93 -0
  188. package/skills/frontend-dev/canvas-fonts/Tektur-Medium.ttf +0 -0
  189. package/skills/frontend-dev/canvas-fonts/Tektur-OFL.txt +93 -0
  190. package/skills/frontend-dev/canvas-fonts/Tektur-Regular.ttf +0 -0
  191. package/skills/frontend-dev/canvas-fonts/WorkSans-Bold.ttf +0 -0
  192. package/skills/frontend-dev/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  193. package/skills/frontend-dev/canvas-fonts/WorkSans-Italic.ttf +0 -0
  194. package/skills/frontend-dev/canvas-fonts/WorkSans-OFL.txt +93 -0
  195. package/skills/frontend-dev/canvas-fonts/WorkSans-Regular.ttf +0 -0
  196. package/skills/frontend-dev/canvas-fonts/YoungSerif-OFL.txt +93 -0
  197. package/skills/frontend-dev/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  198. package/skills/frontend-dev/references/asset-prompt-guide.md +43 -0
  199. package/skills/frontend-dev/references/env-setup.md +33 -0
  200. package/skills/frontend-dev/references/minimax-cli-reference.md +133 -0
  201. package/skills/frontend-dev/references/minimax-image-guide.md +65 -0
  202. package/skills/frontend-dev/references/minimax-music-guide.md +216 -0
  203. package/skills/frontend-dev/references/minimax-tts-guide.md +78 -0
  204. package/skills/frontend-dev/references/minimax-video-guide.md +82 -0
  205. package/skills/frontend-dev/references/minimax-voice-catalog.md +685 -0
  206. package/skills/frontend-dev/references/motion-recipes.md +407 -0
  207. package/skills/frontend-dev/references/troubleshooting.md +85 -0
  208. package/skills/frontend-dev/scripts/minimax_image.py +137 -0
  209. package/skills/frontend-dev/scripts/minimax_music.py +157 -0
  210. package/skills/frontend-dev/scripts/minimax_tts.py +127 -0
  211. package/skills/frontend-dev/scripts/minimax_video.py +187 -0
  212. package/skills/frontend-dev/templates/generator_template.js +223 -0
  213. package/skills/frontend-dev/templates/viewer.html +599 -0
  214. package/skills/frontend-ui-engineering/SKILL.md +367 -0
  215. package/skills/fullstack-dev/SKILL.md +819 -0
  216. package/skills/fullstack-dev/references/api-design.md +444 -0
  217. package/skills/fullstack-dev/references/auth-flow.md +165 -0
  218. package/skills/fullstack-dev/references/db-schema.md +706 -0
  219. package/skills/fullstack-dev/references/django-best-practices.md +466 -0
  220. package/skills/fullstack-dev/references/environment-management.md +78 -0
  221. package/skills/fullstack-dev/references/release-checklist.md +278 -0
  222. package/skills/fullstack-dev/references/technology-selection.md +254 -0
  223. package/skills/fullstack-dev/references/testing-strategy.md +404 -0
  224. package/skills/git-workflow-and-versioning/SKILL.md +446 -0
  225. package/skills/github-evidence-triage/SKILL.md +115 -0
  226. package/skills/harness-evolution/SKILL.md +59 -0
  227. package/skills/harness-evolution/references/activation-matrix.md +13 -0
  228. package/skills/harness-evolution/references/approval-policy.md +20 -0
  229. package/skills/harness-evolution/references/change-report-template.md +33 -0
  230. package/skills/harness-evolution/references/component-taxonomy.md +19 -0
  231. package/skills/harness-evolution/references/verdict-policy.md +13 -0
  232. package/skills/harness-issue-triage/SKILL.md +72 -0
  233. package/skills/harness-issue-triage/references/component-diagnosis.md +25 -0
  234. package/skills/harness-issue-triage/references/triage-report-template.md +34 -0
  235. package/skills/harness-optimization-audit/SKILL.md +125 -0
  236. package/skills/idea-refine/SKILL.md +191 -0
  237. package/skills/idea-refine/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/LICENSE +21 -0
  238. package/skills/idea-refine/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/NOTICE.md +9 -0
  239. package/skills/idea-refine/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/idea-refine/SKILL.upstream.md +178 -0
  240. package/skills/idea-refine/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/idea-refine/examples.md +238 -0
  241. package/skills/idea-refine/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/idea-refine/frameworks.md +99 -0
  242. package/skills/idea-refine/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/idea-refine/refinement-criteria.md +113 -0
  243. package/skills/idea-refine/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/idea-refine/scripts/idea-refine.upstream.sh +15 -0
  244. package/skills/incremental-implementation/SKILL.md +252 -0
  245. package/skills/ios-application-dev/SKILL.md +212 -0
  246. package/skills/ios-application-dev/references/accessibility.md +259 -0
  247. package/skills/ios-application-dev/references/graphics-animation.md +350 -0
  248. package/skills/ios-application-dev/references/layout-system.md +199 -0
  249. package/skills/ios-application-dev/references/metal-shader.md +178 -0
  250. package/skills/ios-application-dev/references/navigation-patterns.md +175 -0
  251. package/skills/ios-application-dev/references/swift-coding-standards.md +757 -0
  252. package/skills/ios-application-dev/references/swiftui-design-guidelines.md +1167 -0
  253. package/skills/ios-application-dev/references/system-integration.md +401 -0
  254. package/skills/ios-application-dev/references/uikit-components.md +297 -0
  255. package/skills/local-review-gate/SKILL.md +207 -0
  256. package/skills/local-review-gate/references/addyosmani-code-review-rubric.md +33 -0
  257. package/skills/local-review-gate/references/codex-github-compatibility.md +26 -0
  258. package/skills/local-review-gate/references/ecc-code-review-adaptation.md +40 -0
  259. package/skills/local-review-gate/references/graphify-local-review.md +33 -0
  260. package/skills/local-review-gate/references/orchestration-adaptation.md +51 -0
  261. package/skills/local-review-gate/references/review-repair-lane-adaptation.md +46 -0
  262. package/skills/local-review-gate/references/upstream-provenance.md +61 -0
  263. package/skills/mature-project-pattern-research/SKILL.md +155 -0
  264. package/skills/mature-project-pattern-research/references/research-rubric.md +45 -0
  265. package/skills/minimax-docx/LICENSE +21 -0
  266. package/skills/minimax-docx/SKILL.md +273 -0
  267. package/skills/minimax-docx/assets/styles/academic_styles.xml +250 -0
  268. package/skills/minimax-docx/assets/styles/corporate_styles.xml +284 -0
  269. package/skills/minimax-docx/assets/styles/default_styles.xml +449 -0
  270. package/skills/minimax-docx/assets/xsd/aesthetic-rules.xsd +470 -0
  271. package/skills/minimax-docx/assets/xsd/business-rules.xsd +130 -0
  272. package/skills/minimax-docx/assets/xsd/common-types.xsd +159 -0
  273. package/skills/minimax-docx/assets/xsd/wml-subset.xsd +589 -0
  274. package/skills/minimax-docx/references/cjk_typography.md +357 -0
  275. package/skills/minimax-docx/references/cjk_university_template_guide.md +184 -0
  276. package/skills/minimax-docx/references/comments_guide.md +191 -0
  277. package/skills/minimax-docx/references/design_good_bad_examples.md +829 -0
  278. package/skills/minimax-docx/references/design_principles.md +819 -0
  279. package/skills/minimax-docx/references/openxml_element_order.md +308 -0
  280. package/skills/minimax-docx/references/openxml_encyclopedia_part1.md +4061 -0
  281. package/skills/minimax-docx/references/openxml_encyclopedia_part2.md +2820 -0
  282. package/skills/minimax-docx/references/openxml_encyclopedia_part3.md +3381 -0
  283. package/skills/minimax-docx/references/openxml_namespaces.md +82 -0
  284. package/skills/minimax-docx/references/openxml_units.md +72 -0
  285. package/skills/minimax-docx/references/scenario_a_create.md +284 -0
  286. package/skills/minimax-docx/references/scenario_b_edit_content.md +295 -0
  287. package/skills/minimax-docx/references/scenario_c_apply_template.md +456 -0
  288. package/skills/minimax-docx/references/track_changes_guide.md +200 -0
  289. package/skills/minimax-docx/references/troubleshooting.md +506 -0
  290. package/skills/minimax-docx/references/typography_guide.md +294 -0
  291. package/skills/minimax-docx/references/xsd_validation_guide.md +158 -0
  292. package/skills/minimax-docx/scripts/doc_to_docx.sh +40 -0
  293. package/skills/minimax-docx/scripts/docx_preview.sh +37 -0
  294. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Cli/MiniMaxAIDocx.Cli.csproj +19 -0
  295. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Cli/Program.cs +18 -0
  296. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/AnalyzeCommand.cs +147 -0
  297. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/ApplyTemplateCommand.cs +322 -0
  298. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/CreateCommand.cs +324 -0
  299. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/DiffCommand.cs +155 -0
  300. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/EditContentCommand.cs +487 -0
  301. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/FixOrderCommand.cs +108 -0
  302. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/MergeRunsCommand.cs +122 -0
  303. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/ValidateCommand.cs +107 -0
  304. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/MiniMaxAIDocx.Core.csproj +15 -0
  305. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/CommentSynchronizer.cs +169 -0
  306. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/ElementOrder.cs +80 -0
  307. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/NamespaceConstants.cs +42 -0
  308. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/RunMerger.cs +81 -0
  309. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/StyleAnalyzer.cs +81 -0
  310. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/TrackChangesHelper.cs +99 -0
  311. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/UnitConverter.cs +23 -0
  312. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples.cs +1832 -0
  313. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch1.cs +910 -0
  314. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch2.cs +999 -0
  315. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch3.cs +1048 -0
  316. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch4.cs +1038 -0
  317. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/CharacterFormattingSamples.cs +1020 -0
  318. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/DocumentCreationSamples.cs +1121 -0
  319. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/FieldAndTocSamples.cs +624 -0
  320. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/FootnoteAndCommentSamples.cs +675 -0
  321. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/HeaderFooterSamples.cs +838 -0
  322. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ImageSamples.cs +917 -0
  323. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ListAndNumberingSamples.cs +826 -0
  324. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ParagraphFormattingSamples.cs +1199 -0
  325. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/StyleSystemSamples.cs +1487 -0
  326. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/TableSamples.cs +1163 -0
  327. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/TrackChangesSamples.cs +595 -0
  328. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Typography/CjkHelper.cs +39 -0
  329. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Typography/FontDefaults.cs +24 -0
  330. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Typography/PageSizes.cs +20 -0
  331. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/BusinessRuleValidator.cs +224 -0
  332. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/GateCheckValidator.cs +148 -0
  333. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/ValidationResult.cs +23 -0
  334. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/XsdValidator.cs +69 -0
  335. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.slnx +4 -0
  336. package/skills/minimax-docx/scripts/env_check.sh +196 -0
  337. package/skills/minimax-docx/scripts/setup.ps1 +274 -0
  338. package/skills/minimax-docx/scripts/setup.sh +504 -0
  339. package/skills/minimax-pdf/README.md +222 -0
  340. package/skills/minimax-pdf/SKILL.md +218 -0
  341. package/skills/minimax-pdf/design/design.md +381 -0
  342. package/skills/minimax-pdf/scripts/cover.py +1579 -0
  343. package/skills/minimax-pdf/scripts/fill_inspect.py +200 -0
  344. package/skills/minimax-pdf/scripts/fill_write.py +242 -0
  345. package/skills/minimax-pdf/scripts/make.sh +491 -0
  346. package/skills/minimax-pdf/scripts/merge.py +112 -0
  347. package/skills/minimax-pdf/scripts/palette.py +521 -0
  348. package/skills/minimax-pdf/scripts/reformat_parse.py +374 -0
  349. package/skills/minimax-pdf/scripts/render_body.py +1052 -0
  350. package/skills/minimax-pdf/scripts/render_cover.js +111 -0
  351. package/skills/minimax-xlsx/SKILL.md +156 -0
  352. package/skills/minimax-xlsx/references/create.md +691 -0
  353. package/skills/minimax-xlsx/references/edit.md +684 -0
  354. package/skills/minimax-xlsx/references/fix.md +37 -0
  355. package/skills/minimax-xlsx/references/format.md +768 -0
  356. package/skills/minimax-xlsx/references/ooxml-cheatsheet.md +231 -0
  357. package/skills/minimax-xlsx/references/read-analyze.md +97 -0
  358. package/skills/minimax-xlsx/references/validate.md +772 -0
  359. package/skills/minimax-xlsx/scripts/formula_check.py +422 -0
  360. package/skills/minimax-xlsx/scripts/libreoffice_recalc.py +248 -0
  361. package/skills/minimax-xlsx/scripts/shared_strings_builder.py +163 -0
  362. package/skills/minimax-xlsx/scripts/style_audit.py +575 -0
  363. package/skills/minimax-xlsx/scripts/xlsx_add_column.py +395 -0
  364. package/skills/minimax-xlsx/scripts/xlsx_insert_row.py +274 -0
  365. package/skills/minimax-xlsx/scripts/xlsx_pack.py +87 -0
  366. package/skills/minimax-xlsx/scripts/xlsx_reader.py +362 -0
  367. package/skills/minimax-xlsx/scripts/xlsx_shift_rows.py +396 -0
  368. package/skills/minimax-xlsx/scripts/xlsx_unpack.py +130 -0
  369. package/skills/minimax-xlsx/templates/minimal_xlsx/[Content_Types].xml +9 -0
  370. package/skills/minimax-xlsx/templates/minimal_xlsx/_rels/.rels +6 -0
  371. package/skills/minimax-xlsx/templates/minimal_xlsx/xl/_rels/workbook.xml.rels +19 -0
  372. package/skills/minimax-xlsx/templates/minimal_xlsx/xl/sharedStrings.xml +33 -0
  373. package/skills/minimax-xlsx/templates/minimal_xlsx/xl/styles.xml +160 -0
  374. package/skills/minimax-xlsx/templates/minimal_xlsx/xl/workbook.xml +30 -0
  375. package/skills/minimax-xlsx/templates/minimal_xlsx/xl/worksheets/sheet1.xml +70 -0
  376. package/skills/newsletter-generation/SKILL.md +71 -0
  377. package/skills/oss-release-readiness/SKILL.md +47 -0
  378. package/skills/parallel-subagent-dispatch/SKILL.md +58 -0
  379. package/skills/performance-optimization/SKILL.md +364 -0
  380. package/skills/planning-and-task-breakdown/SKILL.md +290 -0
  381. package/skills/pptx-generator/SKILL.md +275 -0
  382. package/skills/pptx-generator/references/design-system.md +392 -0
  383. package/skills/pptx-generator/references/editing.md +162 -0
  384. package/skills/pptx-generator/references/pitfalls.md +112 -0
  385. package/skills/pptx-generator/references/pptxgenjs.md +420 -0
  386. package/skills/pptx-generator/references/slide-types.md +413 -0
  387. package/skills/pr-test-analysis/SKILL.md +24 -0
  388. package/skills/react-native-dev/SKILL.md +180 -0
  389. package/skills/react-native-dev/references/animations.md +254 -0
  390. package/skills/react-native-dev/references/components.md +124 -0
  391. package/skills/react-native-dev/references/engineering.md +527 -0
  392. package/skills/react-native-dev/references/forms.md +300 -0
  393. package/skills/react-native-dev/references/native-capabilities.md +163 -0
  394. package/skills/react-native-dev/references/navigation.md +271 -0
  395. package/skills/react-native-dev/references/networking.md +346 -0
  396. package/skills/react-native-dev/references/performance.md +215 -0
  397. package/skills/react-native-dev/references/state-management.md +230 -0
  398. package/skills/react-native-dev/references/styling.md +117 -0
  399. package/skills/react-native-dev/references/testing.md +341 -0
  400. package/skills/requirements-grilling/SKILL.md +447 -0
  401. package/skills/requirements-grilling/references/ADR-FORMAT.md +46 -0
  402. package/skills/requirements-grilling/references/CONTEXT-FORMAT.md +41 -0
  403. package/skills/requirements-grilling/references/INTERVIEW-PACKET-FORMAT.md +62 -0
  404. package/skills/requirements-grilling/references/MIT-LICENSE-MATT-POCOCK.md +25 -0
  405. package/skills/requirements-grilling/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/LICENSE +21 -0
  406. package/skills/requirements-grilling/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/NOTICE.md +9 -0
  407. package/skills/requirements-grilling/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/interview-me/SKILL.upstream.md +225 -0
  408. package/skills/requirements-grilling/references/upstream/mattpocock-skills/9603c1cc8118d08bc1b3bf34cf714f62178dea3b/LICENSE +21 -0
  409. package/skills/requirements-grilling/references/upstream/mattpocock-skills/9603c1cc8118d08bc1b3bf34cf714f62178dea3b/NOTICE.md +12 -0
  410. package/skills/requirements-grilling/references/upstream/mattpocock-skills/9603c1cc8118d08bc1b3bf34cf714f62178dea3b/batch-grill-me/SKILL.upstream.md +15 -0
  411. package/skills/requirements-grilling/references/upstream/mattpocock-skills/9603c1cc8118d08bc1b3bf34cf714f62178dea3b/grill-me/SKILL.upstream.md +7 -0
  412. package/skills/requirements-grilling/references/upstream/mattpocock-skills/9603c1cc8118d08bc1b3bf34cf714f62178dea3b/grilling/SKILL.upstream.md +12 -0
  413. package/skills/review-pipeline/SKILL.md +38 -0
  414. package/skills/rose-memory/SKILL.md +210 -0
  415. package/skills/rose-memory/references/README.md +48 -0
  416. package/skills/rose-memory/references/memory_cli.py +2384 -0
  417. package/skills/rose-memory/references/schema.sql +315 -0
  418. package/skills/security-and-hardening/SKILL.md +369 -0
  419. package/skills/session-handoff/SKILL.md +88 -0
  420. package/skills/session-handoff/references/upstream/mattpocock-skills/391a2701dd948f94f56a39f7533f8eea9a859c87/LICENSE +21 -0
  421. package/skills/session-handoff/references/upstream/mattpocock-skills/391a2701dd948f94f56a39f7533f8eea9a859c87/NOTICE.md +9 -0
  422. package/skills/session-handoff/references/upstream/mattpocock-skills/391a2701dd948f94f56a39f7533f8eea9a859c87/productivity/handoff/SKILL.upstream.md +16 -0
  423. package/skills/session-handoff/scripts/session_handoff.py +764 -0
  424. package/skills/shader-dev/SKILL.md +316 -0
  425. package/skills/shader-dev/reference/ambient-occlusion.md +382 -0
  426. package/skills/shader-dev/reference/analytic-ray-tracing.md +651 -0
  427. package/skills/shader-dev/reference/anti-aliasing.md +71 -0
  428. package/skills/shader-dev/reference/atmospheric-scattering.md +571 -0
  429. package/skills/shader-dev/reference/camera-effects.md +80 -0
  430. package/skills/shader-dev/reference/cellular-automata.md +635 -0
  431. package/skills/shader-dev/reference/color-palette.md +481 -0
  432. package/skills/shader-dev/reference/csg-boolean-operations.md +466 -0
  433. package/skills/shader-dev/reference/domain-repetition.md +436 -0
  434. package/skills/shader-dev/reference/domain-warping.md +419 -0
  435. package/skills/shader-dev/reference/fluid-simulation.md +425 -0
  436. package/skills/shader-dev/reference/fractal-rendering.md +525 -0
  437. package/skills/shader-dev/reference/lighting-model.md +639 -0
  438. package/skills/shader-dev/reference/matrix-transform.md +535 -0
  439. package/skills/shader-dev/reference/multipass-buffer.md +571 -0
  440. package/skills/shader-dev/reference/normal-estimation.md +418 -0
  441. package/skills/shader-dev/reference/particle-system.md +589 -0
  442. package/skills/shader-dev/reference/path-tracing-gi.md +602 -0
  443. package/skills/shader-dev/reference/polar-uv-manipulation.md +521 -0
  444. package/skills/shader-dev/reference/post-processing.md +375 -0
  445. package/skills/shader-dev/reference/procedural-2d-pattern.md +439 -0
  446. package/skills/shader-dev/reference/procedural-noise.md +551 -0
  447. package/skills/shader-dev/reference/ray-marching.md +396 -0
  448. package/skills/shader-dev/reference/sdf-2d.md +724 -0
  449. package/skills/shader-dev/reference/sdf-3d.md +805 -0
  450. package/skills/shader-dev/reference/sdf-tricks.md +63 -0
  451. package/skills/shader-dev/reference/shadow-techniques.md +476 -0
  452. package/skills/shader-dev/reference/simulation-physics.md +644 -0
  453. package/skills/shader-dev/reference/sound-synthesis.md +578 -0
  454. package/skills/shader-dev/reference/terrain-rendering.md +839 -0
  455. package/skills/shader-dev/reference/texture-mapping-advanced.md +87 -0
  456. package/skills/shader-dev/reference/texture-sampling.md +553 -0
  457. package/skills/shader-dev/reference/volumetric-rendering.md +608 -0
  458. package/skills/shader-dev/reference/voronoi-cellular-noise.md +486 -0
  459. package/skills/shader-dev/reference/voxel-rendering.md +701 -0
  460. package/skills/shader-dev/reference/water-ocean.md +445 -0
  461. package/skills/shader-dev/reference/webgl-pitfalls.md +41 -0
  462. package/skills/shader-dev/techniques/ambient-occlusion.md +364 -0
  463. package/skills/shader-dev/techniques/analytic-ray-tracing.md +542 -0
  464. package/skills/shader-dev/techniques/anti-aliasing.md +124 -0
  465. package/skills/shader-dev/techniques/atmospheric-scattering.md +522 -0
  466. package/skills/shader-dev/techniques/camera-effects.md +115 -0
  467. package/skills/shader-dev/techniques/cellular-automata.md +531 -0
  468. package/skills/shader-dev/techniques/color-palette.md +380 -0
  469. package/skills/shader-dev/techniques/csg-boolean-operations.md +491 -0
  470. package/skills/shader-dev/techniques/domain-repetition.md +333 -0
  471. package/skills/shader-dev/techniques/domain-warping.md +414 -0
  472. package/skills/shader-dev/techniques/fluid-simulation.md +1175 -0
  473. package/skills/shader-dev/techniques/fractal-rendering.md +436 -0
  474. package/skills/shader-dev/techniques/lighting-model.md +527 -0
  475. package/skills/shader-dev/techniques/matrix-transform.md +455 -0
  476. package/skills/shader-dev/techniques/multipass-buffer.md +922 -0
  477. package/skills/shader-dev/techniques/normal-estimation.md +318 -0
  478. package/skills/shader-dev/techniques/particle-system.md +1203 -0
  479. package/skills/shader-dev/techniques/path-tracing-gi.md +623 -0
  480. package/skills/shader-dev/techniques/polar-uv-manipulation.md +373 -0
  481. package/skills/shader-dev/techniques/post-processing.md +788 -0
  482. package/skills/shader-dev/techniques/procedural-2d-pattern.md +346 -0
  483. package/skills/shader-dev/techniques/procedural-noise.md +554 -0
  484. package/skills/shader-dev/techniques/ray-marching.md +467 -0
  485. package/skills/shader-dev/techniques/sdf-2d.md +631 -0
  486. package/skills/shader-dev/techniques/sdf-3d.md +589 -0
  487. package/skills/shader-dev/techniques/sdf-tricks.md +100 -0
  488. package/skills/shader-dev/techniques/shadow-techniques.md +776 -0
  489. package/skills/shader-dev/techniques/simulation-physics.md +1542 -0
  490. package/skills/shader-dev/techniques/sound-synthesis.md +490 -0
  491. package/skills/shader-dev/techniques/terrain-rendering.md +408 -0
  492. package/skills/shader-dev/techniques/texture-mapping-advanced.md +121 -0
  493. package/skills/shader-dev/techniques/texture-sampling.md +382 -0
  494. package/skills/shader-dev/techniques/volumetric-rendering.md +375 -0
  495. package/skills/shader-dev/techniques/voronoi-cellular-noise.md +458 -0
  496. package/skills/shader-dev/techniques/voxel-rendering.md +985 -0
  497. package/skills/shader-dev/techniques/water-ocean.md +490 -0
  498. package/skills/shader-dev/techniques/webgl-pitfalls.md +170 -0
  499. package/skills/shipping-and-launch/SKILL.md +334 -0
  500. package/skills/silent-failure-hunting/SKILL.md +24 -0
  501. package/skills/source-driven-development/SKILL.md +223 -0
  502. package/skills/spec-driven-development/SKILL.md +235 -0
  503. package/skills/spec-driven-development/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/LICENSE +21 -0
  504. package/skills/spec-driven-development/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/NOTICE.md +9 -0
  505. package/skills/spec-driven-development/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/spec-driven-development/SKILL.upstream.md +206 -0
  506. package/skills/strategy-stress-test/SKILL.md +185 -0
  507. package/skills/systematic-literature-review/SKILL.md +77 -0
  508. package/skills/test-document-generator/SKILL.md +152 -0
  509. package/skills/test-document-generator/references/test-document-template.md +45 -0
  510. package/skills/test-driven-development/SKILL.md +399 -0
  511. package/skills/write-skills/GLOSSARY.md +113 -0
  512. package/skills/write-skills/SKILL.md +133 -0
  513. package/skills/write-skills/references/upstream/mattpocock-skills/391a2701dd948f94f56a39f7533f8eea9a859c87/LICENSE +21 -0
  514. package/skills/write-skills/references/upstream/mattpocock-skills/391a2701dd948f94f56a39f7533f8eea9a859c87/NOTICE.md +9 -0
  515. package/skills/write-skills/references/upstream/mattpocock-skills/391a2701dd948f94f56a39f7533f8eea9a859c87/productivity/writing-great-skills/GLOSSARY.md +201 -0
  516. package/skills/write-skills/references/upstream/mattpocock-skills/391a2701dd948f94f56a39f7533f8eea9a859c87/productivity/writing-great-skills/SKILL.upstream.md +83 -0
  517. package/src/runtime/child-guard.ts +70 -0
  518. package/src/runtime/conflicts.ts +25 -0
  519. package/src/runtime/contracts.ts +9 -0
  520. package/src/runtime/doctor.ts +134 -0
  521. package/src/runtime/global-resources.ts +152 -0
  522. package/src/runtime/index.ts +23 -0
  523. package/src/runtime/lifecycle.ts +19 -0
  524. package/src/runtime/native-integrations.ts +44 -0
  525. package/src/runtime/path-boundaries.ts +69 -0
  526. package/src/runtime/registry.ts +213 -0
  527. package/src/runtime/roles.ts +64 -0
  528. package/src/runtime/rose-context.ts +24 -0
  529. package/src/runtime/subagents.ts +426 -0
  530. package/templates/APPEND_SYSTEM.md +12 -0
  531. package/upstream/aili-workflows.lock.json +3226 -0
@@ -0,0 +1,490 @@
1
+ **IMPORTANT - GLSL ES 3.00 Critical Rules**:
2
+ 1. **Type strictness**: `int` and `float` cannot be mixed directly; array indices must be of `int` type
3
+ 2. **Reserved words**: `sample` is a reserved word in GLSL ES 3.00; it cannot be used as a variable name
4
+ 3. **Constant arrays**: Must explicitly specify size when declaring, e.g., `const float ARR[4] = float[4](1.,2.,3.,4.);`
5
+ 4. **Integer division**: In GLSL ES 3.00, `1/2` evaluates to 0 (integer division); must use `1.0/2.0` or `float(1)/float(2)`
6
+
7
+ # Sound Synthesis (Procedural Audio)
8
+
9
+ ## Use Cases
10
+ - Generate procedural audio using `mainSound()` in ShaderToy
11
+ - Synthesize melodies, chords, rhythm patterns, and complete music
12
+ - Synthesize instrument timbres: piano, bass, acid synth, percussion
13
+ - Implement audio effects: delay, reverb, distortion, filters
14
+ - Pure mathematical audio generation without external samples
15
+
16
+ ## Core Principles
17
+
18
+ ShaderToy sound shader four-layer architecture:
19
+
20
+ 1. **Oscillator layer**: `sin(2π·f·t)`, layering harmonics or FM modulation to build timbre
21
+ 2. **Envelope layer**: `exp(-rate·t)` + `smoothstep` attack, simulating strike→decay
22
+ 3. **Sequencer layer**: Macro definitions / array lookup / hash pseudo-random for arranging melodies
23
+ 4. **Effects layer**: Reverb, delay, distortion, filters, and other post-processing
24
+
25
+ Key formulas:
26
+ - MIDI → frequency: `f = 440.0 × 2^((n - 69) / 12)`
27
+ - Sine oscillator: `y = sin(2π × freq × time)`
28
+ - Exponential decay: `env = exp(-decay_rate × time)`
29
+ - FM modulation: `y = sin(2π × f_c × t + depth × sin(2π × f_m × t))`
30
+
31
+ ## Implementation Steps
32
+
33
+ ### Step 1: mainSound Entry Framework
34
+ ```glsl
35
+ #define TAU 6.28318530718
36
+ #define BPM 120.0
37
+ #define SPB (60.0 / BPM)
38
+
39
+ vec2 mainSound(int samp, float time) {
40
+ vec2 audio = vec2(0.0);
41
+ // Layer each instrument/track
42
+ audio *= 0.5 * smoothstep(0.0, 0.5, time); // Master volume + pop prevention
43
+ return clamp(audio, -1.0, 1.0);
44
+ }
45
+ ```
46
+
47
+ ### Step 2: MIDI Note to Frequency
48
+ ```glsl
49
+ float noteFreq(float note) {
50
+ return 440.0 * pow(2.0, (note - 69.0) / 12.0);
51
+ }
52
+ ```
53
+
54
+ ### Step 3: Basic Oscillators
55
+ ```glsl
56
+ float osc_sin(float t) { return sin(TAU * t); }
57
+ float osc_saw(float t) { return fract(t) * 2.0 - 1.0; }
58
+ float osc_sqr(float t) { return step(fract(t), 0.5) * 2.0 - 1.0; }
59
+ float osc_tri(float t) { return abs(fract(t) - 0.5) * 4.0 - 1.0; }
60
+ ```
61
+
62
+ ### Step 4: Additive Synthesis Instrument
63
+ ```glsl
64
+ // Layer harmonics to build timbre; higher harmonics decay faster
65
+ float instrument_additive(float freq, float t) {
66
+ float y = 0.0;
67
+ y += 0.50 * sin(TAU * 1.00 * freq * t) * exp(-0.0015 * 1.0 * freq * t);
68
+ y += 0.30 * sin(TAU * 2.01 * freq * t) * exp(-0.0015 * 2.0 * freq * t);
69
+ y += 0.20 * sin(TAU * 4.01 * freq * t) * exp(-0.0015 * 4.0 * freq * t);
70
+ y += 0.1 * y * y * y; // Nonlinear waveshaping
71
+ y *= 0.9 + 0.1 * cos(40.0 * t); // Tremolo
72
+ y *= smoothstep(0.0, 0.01, t); // Smooth attack
73
+ return y;
74
+ }
75
+ ```
76
+
77
+ ### Step 5: FM Synthesis Instrument
78
+ ```glsl
79
+ // FM electric piano (stereo)
80
+ vec2 fm_epiano(float freq, float t) {
81
+ vec2 f0 = vec2(freq * 0.998, freq * 1.002); // Stereo micro-detuning
82
+ // "Glass" layer - high-frequency FM, metallic attack
83
+ vec2 glass = sin(TAU * (f0 + 3.0) * t
84
+ + sin(TAU * 14.0 * f0 * t) * exp(-30.0 * t)
85
+ ) * exp(-4.0 * t);
86
+ glass = sin(glass);
87
+ // "Body" layer - low-frequency FM, warm sustained tone
88
+ vec2 body = sin(TAU * f0 * t
89
+ + sin(TAU * f0 * t) * exp(-0.5 * t) * pow(440.0 / f0.x, 0.5)
90
+ ) * exp(-t);
91
+ return (glass + body) * smoothstep(0.0, 0.001, t) * 0.1;
92
+ }
93
+
94
+ // FM generic instrument (struct parameterized)
95
+ struct Instr {
96
+ float att, fo, vibe, vphas, phas, dtun;
97
+ };
98
+
99
+ float fm_instrument(float freq, float t, float beatTime, Instr ins) {
100
+ float f = freq - beatTime * ins.dtun;
101
+ float phase = f * t * TAU;
102
+ float vibrato = cos(beatTime * ins.vibe * 3.14159 / 8.0 + ins.vphas * 1.5708);
103
+ float fm = sin(phase + vibrato * sin(phase * ins.phas));
104
+ float env = exp(-beatTime * ins.fo) * (1.0 - exp(-beatTime * ins.att));
105
+ return fm * env * (1.0 - beatTime * 0.125);
106
+ }
107
+ ```
108
+
109
+ ### Step 6: Percussion Synthesis
110
+ ```glsl
111
+ float hash(float p) {
112
+ p = fract(p * 0.1031); p *= p + 33.33; p *= p + p; return fract(p);
113
+ }
114
+
115
+ // 909 kick drum: frequency sweep + noise click
116
+ float kick(float t) {
117
+ float phase = TAU * (60.0 * t - 512.0 * 0.01 * exp(-t / 0.01));
118
+ float body = sin(phase) * smoothstep(0.3, 0.0, t) * 1.5;
119
+ float click = sin(TAU * 8000.0 * fract(t)) * hash(t * 2000.0)
120
+ * smoothstep(0.007, 0.0, t);
121
+ return body + click;
122
+ }
123
+
124
+ // Hi-hat: noise + exponential decay. decay: 5.0=open, 15.0=closed
125
+ float hihat(float t, float decay) {
126
+ float noise = hash(floor(t * 44100.0)) * 2.0 - 1.0;
127
+ return noise * exp(-decay * t) * smoothstep(0.0, 0.02, t);
128
+ }
129
+
130
+ // Clap/snare
131
+ float clap(float t) {
132
+ float noise = hash(floor(t * 44100.0)) * 2.0 - 1.0;
133
+ return noise * smoothstep(0.1, 0.0, t);
134
+ }
135
+ ```
136
+
137
+ ### Step 7: Note Sequence Arrangement
138
+ ```glsl
139
+ // === Method A: D() macro accumulation (good for handwritten melodies) ===
140
+ #define D(duration, note) b += float(duration); if(t > b) { x = b; n = float(note); }
141
+
142
+ float melody_macro(float time) {
143
+ float t = time / 0.18;
144
+ float n = 0.0, b = 0.0, x = 0.0;
145
+ D(10,71) D(2,76) D(3,79) D(1,78) D(2,76) D(4,83) D(2,81) D(6,78)
146
+ float freq = noteFreq(n);
147
+ float noteTime = 0.18 * (t - x);
148
+ return instrument_additive(freq, noteTime);
149
+ }
150
+
151
+ // === Method B: Array lookup (good for complex arrangements) ===
152
+ // NOTE: Array indices must be int type in GLSL ES 3.00
153
+ const float NOTES[16] = float[16](
154
+ 60., 62., 64., 65., 67., 69., 71., 72.,
155
+ 60., 64., 67., 72., 65., 69., 64., 60.
156
+ );
157
+
158
+ float melody_array(float time, float bpm) {
159
+ float beat = time * bpm / 60.0;
160
+ int idx = int(mod(beat, 16.0)); // IMPORTANT: Must use int() conversion
161
+ float noteTime = fract(beat);
162
+ float freq = noteFreq(NOTES[idx]);
163
+ return instrument_additive(freq, noteTime * 60.0 / bpm);
164
+ }
165
+
166
+ // === Method C: Hash pseudo-random (good for algorithmic composition) ===
167
+ float nse(float x) { return fract(sin(x * 110.082) * 19871.8972); }
168
+
169
+ float scale_filter(float note) {
170
+ float n2 = mod(note, 12.0);
171
+ if (n2==1.||n2==3.||n2==6.||n2==8.||n2==10.) return -100.0;
172
+ return note;
173
+ }
174
+
175
+ float melody_random(float time, float bpm) {
176
+ float beat = time * bpm / 60.0;
177
+ float note = 48.0 + floor(nse(floor(beat)) * 24.0);
178
+ note = scale_filter(note);
179
+ return instrument_additive(noteFreq(note), fract(beat) * 60.0 / bpm);
180
+ }
181
+ ```
182
+
183
+ ### Step 8: Chord Construction
184
+ ```glsl
185
+ vec2 chord(float time, float root, float isMinor) {
186
+ vec2 result = vec2(0.0);
187
+ float bass = root - 24.0;
188
+ result += fm_epiano(noteFreq(bass), time, 2.0);
189
+ result += fm_epiano(noteFreq(root), time - SPB * 0.5, 1.25);
190
+ result += fm_epiano(noteFreq(root + 4.0 - isMinor), time - SPB, 1.5); // Third
191
+ result += fm_epiano(noteFreq(root + 7.0), time - SPB * 0.5, 1.25); // Fifth
192
+ result += fm_epiano(noteFreq(root + 11.0 - isMinor), time - SPB, 1.5); // Seventh
193
+ result += fm_epiano(noteFreq(root + 14.0), time - SPB, 1.5); // Ninth
194
+ return result;
195
+ }
196
+ ```
197
+
198
+ ### Step 9: Delay and Reverb
199
+ ```glsl
200
+ // Multi-tap echo
201
+ // NOTE: "sample" is a reserved word in GLSL ES 3.00; use "samp" instead
202
+ vec2 echo_reverb(float time) {
203
+ vec2 tot = vec2(0.0);
204
+ float hh = 1.0;
205
+ for (int i = 0; i < 6; i++) {
206
+ float h = float(i) / 5.0;
207
+ float samp = get_instrument_sample(time - 0.7 * h);
208
+ tot += samp * vec2(0.5 + 0.1 * h, 0.5 - 0.1 * h) * hh;
209
+ hh *= 0.5;
210
+ }
211
+ return tot;
212
+ }
213
+
214
+ // Ping-pong stereo delay
215
+ vec2 pingpong_delay(float time) {
216
+ vec2 mx = get_stereo_sample(time) * 0.5;
217
+ float ec = 0.4, fb = 0.6, dt = 0.222;
218
+ float et = dt;
219
+ mx += get_stereo_sample(time - et) * ec * vec2(1.0, 0.5); ec *= fb; et += dt;
220
+ mx += get_stereo_sample(time - et) * ec * vec2(0.5, 1.0); ec *= fb; et += dt;
221
+ mx += get_stereo_sample(time - et) * ec * vec2(1.0, 0.5); ec *= fb; et += dt;
222
+ mx += get_stereo_sample(time - et) * ec * vec2(0.5, 1.0); ec *= fb; et += dt;
223
+ return mx;
224
+ }
225
+ ```
226
+
227
+ ### Step 10: Beat and Arrangement Structure
228
+ ```glsl
229
+ vec2 mainSound(int samp, float time) {
230
+ vec2 audio = vec2(0.0);
231
+ float beat = time * BPM / 60.0;
232
+ float bar = beat / 4.0;
233
+
234
+ // Kick (every beat) + hi-hat (every half beat) + melody
235
+ float kickTime = mod(time, SPB);
236
+ audio += vec2(kick(kickTime) * 0.5);
237
+ float hatTime = mod(time, SPB * 0.5);
238
+ audio += vec2(hihat(hatTime, 15.0) * 0.15);
239
+ audio += vec2(melody_array(time, BPM)) * 0.3;
240
+
241
+ // Arrangement: smoothstep controls intro/outro
242
+ audio *= smoothstep(0.0, 4.0, bar); // Fade in over first 4 bars
243
+ audio *= 0.35 * smoothstep(0.0, 0.5, time);
244
+ // IMPORTANT: Array indices must be int type
245
+ // float idx = mod(beat, 16.0); // WRONG: float cannot be used as index
246
+ int idx = int(mod(beat, 16.0)); // CORRECT: int(mod(...)) conversion
247
+ return clamp(audio, -1.0, 1.0);
248
+ }
249
+ ```
250
+
251
+ ## Complete Code Template
252
+
253
+ Can be pasted directly into the ShaderToy Sound tab to run. Includes FM piano melody, kick drum rhythm, and ping-pong delay.
254
+
255
+ ```glsl
256
+ // === Sound Synthesis Complete Template ===
257
+ #define TAU 6.28318530718
258
+ #define BPM 130.0
259
+ #define SPB (60.0 / BPM)
260
+ #define NUM_HARMONICS 4
261
+ #define ECHO_TAPS 4
262
+ #define ECHO_DELAY 0.18
263
+ #define ECHO_DECAY 0.45
264
+
265
+ float noteFreq(float note) {
266
+ return 440.0 * pow(2.0, (note - 69.0) / 12.0);
267
+ }
268
+
269
+ float hash11(float p) {
270
+ p = fract(p * 0.1031); p *= p + 33.33; p *= p + p; return fract(p);
271
+ }
272
+
273
+ float osc_tri(float t) { return abs(fract(t) - 0.5) * 4.0 - 1.0; }
274
+
275
+ float instrument(float freq, float t) {
276
+ float y = 0.0;
277
+ for (int i = 1; i <= NUM_HARMONICS; i++) {
278
+ float h = float(i);
279
+ float amp = 0.6 / h;
280
+ float decay = 0.002 * h * freq;
281
+ y += amp * sin(TAU * h * 1.003 * freq * t) * exp(-decay * t);
282
+ }
283
+ y += 0.15 * y * y * y;
284
+ y *= 0.9 + 0.1 * cos(35.0 * t);
285
+ y *= smoothstep(0.0, 0.008, t);
286
+ return y;
287
+ }
288
+
289
+ vec2 epiano(float freq, float t) {
290
+ vec2 f0 = vec2(freq * 0.998, freq * 1.002);
291
+ vec2 glass = sin(TAU * (f0 + 3.0) * t
292
+ + sin(TAU * 14.0 * f0 * t) * exp(-30.0 * t)
293
+ ) * exp(-4.0 * t);
294
+ glass = sin(glass);
295
+ vec2 body = sin(TAU * f0 * t
296
+ + sin(TAU * f0 * t) * exp(-0.5 * t) * pow(440.0 / max(f0.x, 1.0), 0.5)
297
+ ) * exp(-t);
298
+ return (glass + body) * smoothstep(0.0, 0.001, t) * 0.12;
299
+ }
300
+
301
+ float kick(float t) {
302
+ float df = 512.0, dftime = 0.01, freq = 60.0;
303
+ float phase = TAU * (freq * t - df * dftime * exp(-t / dftime));
304
+ float body = sin(phase) * smoothstep(0.3, 0.0, t) * 1.5;
305
+ float click = sin(TAU * 8000.0 * fract(t)) * hash11(t * 2048.0)
306
+ * smoothstep(0.007, 0.0, t);
307
+ return body + click;
308
+ }
309
+
310
+ float hihat(float t) {
311
+ float noise = hash11(floor(t * 44100.0)) * 2.0 - 1.0;
312
+ return noise * exp(-15.0 * t) * smoothstep(0.0, 0.002, t);
313
+ }
314
+
315
+ const float MELODY[16] = float[16](
316
+ 67., 67., 72., 71., 69., 67., 64., 64.,
317
+ 65., 65., 69., 67., 67., 65., 64., 62.
318
+ );
319
+
320
+ const float BASS[4] = float[4](43., 48., 45., 41.);
321
+
322
+ vec2 mainSound(int samp, float time) {
323
+ time = mod(time, 32.0 * SPB * 4.0);
324
+ vec2 audio = vec2(0.0);
325
+ float beat = time / SPB;
326
+ float bar = beat / 4.0;
327
+
328
+ // Melody
329
+ { int idx = int(mod(beat, 16.0));
330
+ float noteTime = fract(beat) * SPB;
331
+ audio += vec2(instrument(noteFreq(MELODY[idx]), noteTime) * 0.25); }
332
+
333
+ // Bass
334
+ { int idx = int(mod(bar, 4.0));
335
+ float noteTime = fract(bar) * SPB * 4.0;
336
+ float freq = noteFreq(BASS[idx]);
337
+ audio += vec2(osc_tri(freq * noteTime) * exp(-1.5 * noteTime)
338
+ * smoothstep(0.0, 0.01, noteTime) * 0.3); }
339
+
340
+ // Kick (every beat) + sidechain compression
341
+ { float kt = mod(time, SPB);
342
+ float k = kick(kt) * 0.4;
343
+ audio *= min(1.0, kt * 6.0 / SPB);
344
+ audio += vec2(k); }
345
+
346
+ // Hi-hat (every half beat, panned right)
347
+ { float ht = mod(time, SPB * 0.5);
348
+ audio += vec2(0.4, 0.6) * hihat(ht) * 0.12; }
349
+
350
+ // Ping-pong delay (melody)
351
+ { float ec = 0.3;
352
+ for (int i = 1; i <= ECHO_TAPS; i++) {
353
+ float dt = ECHO_DELAY * float(i);
354
+ int idx = int(mod((time - dt) / SPB, 16.0));
355
+ float nt = fract((time - dt) / SPB) * SPB;
356
+ float echoed = instrument(noteFreq(MELODY[idx]), nt) * 0.25 * ec;
357
+ if (i % 2 == 0) audio += vec2(0.3, 1.0) * echoed;
358
+ else audio += vec2(1.0, 0.3) * echoed;
359
+ ec *= ECHO_DECAY;
360
+ } }
361
+
362
+ audio *= 0.4 * smoothstep(0.0, 2.0, time);
363
+ return clamp(audio, -1.0, 1.0);
364
+ }
365
+ ```
366
+
367
+ ## Common Variants
368
+
369
+ ### Variant 1: Subtractive Synthesis / TB-303 Acid Synth
370
+ Sawtooth wave through resonant low-pass filter, cutoff frequency modulated by envelope to produce the "wow" sound.
371
+ ```glsl
372
+ #define NSPC 128
373
+ float lpf_response(float h, float cutoff, float reso) {
374
+ cutoff -= 20.0;
375
+ float df = max(h - cutoff, 0.0);
376
+ float df2 = abs(h - cutoff);
377
+ return exp(-0.005 * df * df) * 0.5 + exp(df2 * df2 * -0.1) * reso;
378
+ }
379
+
380
+ vec2 acid_synth(float freq, float noteTime) {
381
+ vec2 v = vec2(0.0);
382
+ float cutoff = exp(noteTime * -1.5) * 50.0 + 10.0;
383
+ float sqr = step(0.5, fract(noteTime * 4.5));
384
+ for (int i = 0; i < NSPC; i++) {
385
+ float h = float(i + 1);
386
+ float inten = 1.0 / h;
387
+ inten = mix(inten, inten * mod(h, 2.0), sqr);
388
+ inten *= lpf_response(h, cutoff, 2.2);
389
+ v.x += inten * sin((TAU + 0.01) * noteTime * freq * h);
390
+ v.y += inten * sin(TAU * noteTime * freq * h);
391
+ }
392
+ float amp = smoothstep(0.05, 0.0, abs(noteTime - 0.31) - 0.26) * exp(noteTime * -1.0);
393
+ return clamp(v * amp * 2.0, -1.0, 1.0);
394
+ }
395
+ ```
396
+
397
+ ### Variant 2: IIR Biquad Filter
398
+ Time-domain IIR filter based on the Audio EQ Cookbook, supporting 7 types including low-pass/high-pass/band-pass.
399
+ ```glsl
400
+ float waveSaw(float freq, int samp) {
401
+ return fract(freq * float(samp) / iSampleRate) * 2.0 - 1.0;
402
+ }
403
+
404
+ vec2 widerSaw(float freq, int samp) {
405
+ int offset = int(freq) * 64;
406
+ return vec2(waveSaw(freq, samp - offset), waveSaw(freq, samp + offset));
407
+ }
408
+
409
+ void biquadLPF(float freq, float Q, float sr,
410
+ out float b0, out float b1, out float b2,
411
+ out float a0, out float a1, out float a2) {
412
+ float omega = TAU * freq / sr;
413
+ float sn = sin(omega), cs = cos(omega);
414
+ float alpha = sn / (2.0 * Q);
415
+ b0 = (1.0 - cs) * 0.5; b1 = 1.0 - cs; b2 = (1.0 - cs) * 0.5;
416
+ a0 = 1.0 + alpha; a1 = -2.0 * cs; a2 = 1.0 - alpha;
417
+ }
418
+ ```
419
+
420
+ ### Variant 3: Vocal / Formant Synthesis
421
+ Vocal tract model simulating human voice by synthesizing vowels through formant frequencies and bandwidths.
422
+ ```glsl
423
+ float tract(float x, float formantFreq, float bandwidth) {
424
+ return sin(TAU * formantFreq * x) * exp(-bandwidth * 3.14159 * x);
425
+ }
426
+
427
+ float vowel_aah(float t, float pitch) {
428
+ float x = mod(t, 1.0 / pitch);
429
+ float aud = tract(x, 710.0, 70.0) * 0.5 // F1
430
+ + tract(x, 1000.0, 90.0) * 0.6 // F2
431
+ + tract(x, 2450.0, 140.0) * 0.4; // F3
432
+ return aud;
433
+ }
434
+
435
+ float fricative(float t, float formantFreq) {
436
+ return (hash11(floor(formantFreq * t) * 20.0) - 0.5) * 3.0;
437
+ }
438
+ ```
439
+
440
+ ### Variant 4: Algorithmic Composition
441
+ Hash pseudo-random melody + scale quantization, multi-layer rhythmic subdivision producing fractal music structures.
442
+ ```glsl
443
+ vec2 noteRing(float n) {
444
+ float r = 0.5 + 0.5 * fract(sin(mod(floor(n), 32.123) * 32.123) * 41.123);
445
+ n = mod(n, 8.0);
446
+ float note = n<1.?0. : n<2.?5. : n<3.?-2. : n<4.?4. : n<5.?7. : n<6.?4. : n<7.?2. : 0.;
447
+ return vec2(note, r);
448
+ }
449
+
450
+ vec2 generativeNote(float beat) {
451
+ float b2 = floor(beat * 0.25);
452
+ return noteRing(b2 * 0.0625) + noteRing(b2 * 0.25) + noteRing(b2);
453
+ }
454
+ ```
455
+
456
+ ### Variant 5: Circle of Fifths Chord Progressions
457
+ Automatically generates harmony based on the circle of fifths, advancing +7 semitones every 4 beats, alternating major/minor chords.
458
+ ```glsl
459
+ vec2 mainSound(int samp, float time) {
460
+ float id = floor(time / SPB / 4.0);
461
+ float offset = id * 7.0;
462
+ float minor = mod(id, 4.0) >= 3.0 ? 1.0 : 0.0;
463
+ float t = mod(time, SPB * 4.0);
464
+ float root = 57.0 + mod(offset, 12.0);
465
+ vec2 result = chord(t, root, minor);
466
+ result += vec2(0.5, 0.2) * chord(t - SPB * 0.5, root, minor);
467
+ result += vec2(0.05, 0.1) * chord(t - SPB, root, minor);
468
+ return result;
469
+ }
470
+ ```
471
+
472
+ ## Performance & Composition
473
+
474
+ **Performance Tips:**
475
+ - Harmonic count (`NUM_HARMONICS` / `NSPC`) is the biggest bottleneck; start with 4-8, stop when sufficient
476
+ - IIR filters require looping through sample history per output sample; prefer frequency-domain methods
477
+ - Each delay tap requires recomputing the full signal chain; 4 taps = 5x computation
478
+ - `fract(x)` is faster than `mod(x, 1.0)`; hoist constants out of loops
479
+ - Use Common Pass to share constants; avoid redundant computation between Sound and Image
480
+
481
+ **Composition Tips:**
482
+ - **Audio visualization**: Sound output is read via `iChannel0` in the Image shader for spectrum display
483
+ - **Raymarching sync**: Common Pass defines shared timeline; Sound/Image reference it synchronously
484
+ - **Particle systems**: Use kick triggers to drive particle emission; share BPM/SPB for beat position calculation
485
+ - **Post-processing linkage**: Sidechain compression coefficients drive bloom/chromatic aberration/dithering via Common Pass
486
+ - **Text overlay**: `message()` in Image shader renders parameter display or interaction instructions
487
+
488
+ ## Further Reading
489
+
490
+ For complete step-by-step tutorials, mathematical derivations, and advanced usage, see [reference](../reference/sound-synthesis.md)