oh-my-agent-commandcode 0.0.0-stage → 20.38.3

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 (334) hide show
  1. package/README.md +35 -2
  2. package/filter-test-output.sh +52 -0
  3. package/mods/oma.ts +347 -0
  4. package/package.json +30 -4
  5. package/skills/_shared/conditional/experiment-ledger.md +28 -0
  6. package/skills/_shared/conditional/exploration-loop.md +22 -0
  7. package/skills/_shared/conditional/quality-score.md +33 -0
  8. package/skills/_shared/core/anti-ai-prose.md +191 -0
  9. package/skills/_shared/core/api-contracts/README.md +28 -0
  10. package/skills/_shared/core/api-contracts/template.md +90 -0
  11. package/skills/_shared/core/clarification-protocol.md +23 -0
  12. package/skills/_shared/core/code-intelligence.md +46 -0
  13. package/skills/_shared/core/collaboration-policy.md +28 -0
  14. package/skills/_shared/core/common-checklist.md +28 -0
  15. package/skills/_shared/core/context-budget.md +22 -0
  16. package/skills/_shared/core/context-loading.md +34 -0
  17. package/skills/_shared/core/difficulty-guide.md +26 -0
  18. package/skills/_shared/core/execution-policy.md +31 -0
  19. package/skills/_shared/core/lessons-learned.md +33 -0
  20. package/skills/_shared/core/prompt-structure.md +18 -0
  21. package/skills/_shared/core/quality-principles.md +11 -0
  22. package/skills/_shared/core/session-metrics.md +35 -0
  23. package/skills/_shared/core/skill-routing.md +39 -0
  24. package/skills/_shared/core/test-approach.md +54 -0
  25. package/skills/_shared/core/vendor-detection.md +52 -0
  26. package/skills/_shared/runtime/memory-protocol.md +118 -0
  27. package/skills/_shared/runtime/result-contract.md +64 -0
  28. package/skills/_shared/ui-interaction-quality.md +133 -0
  29. package/skills/oma-academic-writing/SKILL.md +181 -0
  30. package/skills/oma-academic-writing/resources/abstract-guide.md +51 -0
  31. package/skills/oma-academic-writing/resources/academic-verb-tiers.md +42 -0
  32. package/skills/oma-academic-writing/resources/anti-ai-checklist.md +52 -0
  33. package/skills/oma-academic-writing/resources/hedging-guide.md +132 -0
  34. package/skills/oma-academic-writing/resources/sentence-structure-reference.md +151 -0
  35. package/skills/oma-architecture/SKILL.md +203 -0
  36. package/skills/oma-architecture/resources/api-evolution.md +41 -0
  37. package/skills/oma-architecture/resources/checklist.md +42 -0
  38. package/skills/oma-architecture/resources/execution-protocol.md +115 -0
  39. package/skills/oma-architecture/resources/methodology-selection.md +92 -0
  40. package/skills/oma-architecture/resources/migration-patterns.md +28 -0
  41. package/skills/oma-architecture/resources/output-templates.md +111 -0
  42. package/skills/oma-architecture/resources/stakeholder-synthesis.md +80 -0
  43. package/skills/oma-backend/SKILL.md +202 -0
  44. package/skills/oma-backend/resources/checklist.md +45 -0
  45. package/skills/oma-backend/resources/error-playbook.md +97 -0
  46. package/skills/oma-backend/resources/execution-protocol.md +39 -0
  47. package/skills/oma-backend/resources/orm-reference.md +61 -0
  48. package/skills/oma-backend/variants/node/api-template.ts +315 -0
  49. package/skills/oma-backend/variants/node/snippets.md +475 -0
  50. package/skills/oma-backend/variants/node/stack.yaml +21 -0
  51. package/skills/oma-backend/variants/node/tech-stack.md +33 -0
  52. package/skills/oma-backend/variants/python/api-template.py +378 -0
  53. package/skills/oma-backend/variants/python/snippets.md +199 -0
  54. package/skills/oma-backend/variants/python/stack.yaml +18 -0
  55. package/skills/oma-backend/variants/python/tech-stack.md +45 -0
  56. package/skills/oma-backend/variants/rust/api-template.rs +635 -0
  57. package/skills/oma-backend/variants/rust/snippets.md +471 -0
  58. package/skills/oma-backend/variants/rust/stack.yaml +20 -0
  59. package/skills/oma-backend/variants/rust/tech-stack.md +36 -0
  60. package/skills/oma-backend/variants/stack.schema.json +73 -0
  61. package/skills/oma-brainstorm/SKILL.md +166 -0
  62. package/skills/oma-brainstorm/resources/triz-lite.md +117 -0
  63. package/skills/oma-coordination/SKILL.md +171 -0
  64. package/skills/oma-db/SKILL.md +201 -0
  65. package/skills/oma-db/resources/anti-patterns.md +177 -0
  66. package/skills/oma-db/resources/checklist.md +67 -0
  67. package/skills/oma-db/resources/document-templates.md +107 -0
  68. package/skills/oma-db/resources/error-playbook.md +50 -0
  69. package/skills/oma-db/resources/examples.md +170 -0
  70. package/skills/oma-db/resources/execution-protocol.md +127 -0
  71. package/skills/oma-db/resources/iso-controls.md +98 -0
  72. package/skills/oma-db/resources/migration-playbook.md +93 -0
  73. package/skills/oma-db/resources/query-tuning.md +57 -0
  74. package/skills/oma-db/resources/vector-db.md +159 -0
  75. package/skills/oma-debug/SKILL.md +146 -0
  76. package/skills/oma-debug/resources/bug-report-template.md +327 -0
  77. package/skills/oma-debug/resources/checklist.md +31 -0
  78. package/skills/oma-debug/resources/common-patterns.md +734 -0
  79. package/skills/oma-debug/resources/debugging-checklist.md +364 -0
  80. package/skills/oma-debug/resources/error-playbook.md +94 -0
  81. package/skills/oma-debug/resources/execution-protocol.md +40 -0
  82. package/skills/oma-design/SKILL.md +135 -0
  83. package/skills/oma-design/resources/asset-strategy.md +34 -0
  84. package/skills/oma-design/resources/checklist.md +63 -0
  85. package/skills/oma-design/resources/data-grid.md +48 -0
  86. package/skills/oma-design/resources/design-md-spec.md +107 -0
  87. package/skills/oma-design/resources/design-tokens.md +53 -0
  88. package/skills/oma-design/resources/error-playbook.md +18 -0
  89. package/skills/oma-design/resources/execution-protocol.md +95 -0
  90. package/skills/oma-design/resources/external-design-skills.md +130 -0
  91. package/skills/oma-design/resources/getdesign-fetcher.md +104 -0
  92. package/skills/oma-design/resources/product-interface-review.md +59 -0
  93. package/skills/oma-design/resources/redesign-protocol.md +52 -0
  94. package/skills/oma-design/resources/stitch-integration.md +244 -0
  95. package/skills/oma-dev-workflow/SKILL.md +375 -0
  96. package/skills/oma-dev-workflow/resources/affected-checks.py +58 -0
  97. package/skills/oma-dev-workflow/resources/api-workflows.md +58 -0
  98. package/skills/oma-dev-workflow/resources/database-patterns.md +107 -0
  99. package/skills/oma-dev-workflow/resources/i18n-patterns.md +63 -0
  100. package/skills/oma-dev-workflow/resources/release-coordination.md +240 -0
  101. package/skills/oma-dev-workflow/resources/tooling-profiles.md +217 -0
  102. package/skills/oma-dev-workflow/resources/troubleshooting.md +78 -0
  103. package/skills/oma-dev-workflow/resources/validation-pipeline.md +246 -0
  104. package/skills/oma-docs/SKILL.md +77 -0
  105. package/skills/oma-docs/resources/commands.md +76 -0
  106. package/skills/oma-explanation/SKILL.md +212 -0
  107. package/skills/oma-explanation/resources/document-structure.md +115 -0
  108. package/skills/oma-explanation/resources/draft-format.md +199 -0
  109. package/skills/oma-explanation/resources/html-contract.md +102 -0
  110. package/skills/oma-frontend/SKILL.md +227 -0
  111. package/skills/oma-frontend/resources/angular-rules.md +110 -0
  112. package/skills/oma-frontend/resources/checklist.md +76 -0
  113. package/skills/oma-frontend/resources/error-playbook.md +125 -0
  114. package/skills/oma-frontend/resources/execution-protocol.md +46 -0
  115. package/skills/oma-frontend/resources/snippets.md +354 -0
  116. package/skills/oma-frontend/resources/specialized-visual-implementation.md +193 -0
  117. package/skills/oma-frontend/resources/tailwind-rules.md +83 -0
  118. package/skills/oma-frontend/resources/tech-stack.md +156 -0
  119. package/skills/oma-hwp/SKILL.md +166 -0
  120. package/skills/oma-hwp/config/hwp-config.yaml +35 -0
  121. package/skills/oma-hwp/resources/balanced-tables.ts +39 -0
  122. package/skills/oma-hwp/resources/execution-protocol.md +145 -0
  123. package/skills/oma-hwp/resources/flatten-tables.ts +101 -0
  124. package/skills/oma-hwp/resources/package.json +13 -0
  125. package/skills/oma-hwp/resources/troubleshooting.md +70 -0
  126. package/skills/oma-hwp/resources/tsconfig.json +10 -0
  127. package/skills/oma-hwp/resources/turndown-plugin-gfm.d.ts +9 -0
  128. package/skills/oma-image/SKILL.md +142 -0
  129. package/skills/oma-image/config/image-config.yaml +70 -0
  130. package/skills/oma-image/resources/checklist.md +18 -0
  131. package/skills/oma-image/resources/execution-protocol.md +117 -0
  132. package/skills/oma-image/resources/invocation.md +105 -0
  133. package/skills/oma-image/resources/prompt-tips.md +71 -0
  134. package/skills/oma-image/resources/vendor-matrix.md +90 -0
  135. package/skills/oma-market/SKILL.md +142 -0
  136. package/skills/oma-market/resources/checklist.md +12 -0
  137. package/skills/oma-market/resources/error-playbook.md +12 -0
  138. package/skills/oma-market/resources/execution-protocol.md +60 -0
  139. package/skills/oma-market/resources/frameworks/pestel.md +101 -0
  140. package/skills/oma-market/resources/frameworks/porters-5f.md +90 -0
  141. package/skills/oma-market/resources/frameworks/swot.md +61 -0
  142. package/skills/oma-market/resources/intent-rules.md +35 -0
  143. package/skills/oma-market/resources/output-laws.md +53 -0
  144. package/skills/oma-mobile/SKILL.md +168 -0
  145. package/skills/oma-mobile/resources/checklist.md +77 -0
  146. package/skills/oma-mobile/resources/error-playbook.md +198 -0
  147. package/skills/oma-mobile/resources/execution-protocol.md +47 -0
  148. package/skills/oma-mobile/resources/screen-template.dart +331 -0
  149. package/skills/oma-mobile/resources/screen-template.swift +239 -0
  150. package/skills/oma-mobile/resources/screen-template.tsx +179 -0
  151. package/skills/oma-mobile/resources/tech-stack.md +69 -0
  152. package/skills/oma-mobile/variants/README.md +45 -0
  153. package/skills/oma-mobile/variants/flutter/api-template.dart +461 -0
  154. package/skills/oma-mobile/variants/flutter/snippets.md +1353 -0
  155. package/skills/oma-mobile/variants/flutter/stack.yaml +21 -0
  156. package/skills/oma-mobile/variants/flutter/tech-stack.md +201 -0
  157. package/skills/oma-mobile/variants/kotlin-android/api-template.kt +182 -0
  158. package/skills/oma-mobile/variants/kotlin-android/snippets.md +871 -0
  159. package/skills/oma-mobile/variants/kotlin-android/stack.yaml +32 -0
  160. package/skills/oma-mobile/variants/kotlin-android/tech-stack.md +159 -0
  161. package/skills/oma-mobile/variants/react-native/api-template.ts +531 -0
  162. package/skills/oma-mobile/variants/react-native/snippets.md +1014 -0
  163. package/skills/oma-mobile/variants/react-native/stack.yaml +22 -0
  164. package/skills/oma-mobile/variants/react-native/tech-stack.md +192 -0
  165. package/skills/oma-mobile/variants/stack.schema.json +68 -0
  166. package/skills/oma-mobile/variants/swift-ios/api-template.swift +165 -0
  167. package/skills/oma-mobile/variants/swift-ios/snippets.md +1028 -0
  168. package/skills/oma-mobile/variants/swift-ios/stack.yaml +25 -0
  169. package/skills/oma-mobile/variants/swift-ios/tech-stack.md +174 -0
  170. package/skills/oma-observability/SKILL.md +225 -0
  171. package/skills/oma-observability/resources/anti-patterns.md +555 -0
  172. package/skills/oma-observability/resources/boundaries/cross-application.md +348 -0
  173. package/skills/oma-observability/resources/boundaries/multi-tenant.md +290 -0
  174. package/skills/oma-observability/resources/boundaries/release.md +372 -0
  175. package/skills/oma-observability/resources/boundaries/slo.md +225 -0
  176. package/skills/oma-observability/resources/checklist.md +123 -0
  177. package/skills/oma-observability/resources/examples.md +448 -0
  178. package/skills/oma-observability/resources/execution-protocol.md +166 -0
  179. package/skills/oma-observability/resources/incident-forensics.md +348 -0
  180. package/skills/oma-observability/resources/intent-rules.md +307 -0
  181. package/skills/oma-observability/resources/layers/L3-network.md +281 -0
  182. package/skills/oma-observability/resources/layers/L4-transport.md +299 -0
  183. package/skills/oma-observability/resources/layers/L7-application/crash-analytics.md +359 -0
  184. package/skills/oma-observability/resources/layers/L7-application/mobile-rum.md +278 -0
  185. package/skills/oma-observability/resources/layers/L7-application/waf.md +246 -0
  186. package/skills/oma-observability/resources/layers/L7-application/web-rum.md +350 -0
  187. package/skills/oma-observability/resources/layers/mesh.md +368 -0
  188. package/skills/oma-observability/resources/matrix.md +177 -0
  189. package/skills/oma-observability/resources/meta-observability.md +605 -0
  190. package/skills/oma-observability/resources/observability-as-code.md +666 -0
  191. package/skills/oma-observability/resources/signals/audit.md +310 -0
  192. package/skills/oma-observability/resources/signals/cost.md +303 -0
  193. package/skills/oma-observability/resources/signals/logs.md +263 -0
  194. package/skills/oma-observability/resources/signals/metrics.md +478 -0
  195. package/skills/oma-observability/resources/signals/privacy.md +351 -0
  196. package/skills/oma-observability/resources/signals/profiles.md +245 -0
  197. package/skills/oma-observability/resources/signals/traces.md +360 -0
  198. package/skills/oma-observability/resources/standards.md +214 -0
  199. package/skills/oma-observability/resources/transport/collector-topology.md +308 -0
  200. package/skills/oma-observability/resources/transport/otlp-grpc-vs-http.md +256 -0
  201. package/skills/oma-observability/resources/transport/sampling-recipes.md +297 -0
  202. package/skills/oma-observability/resources/transport/udp-statsd-mtu.md +167 -0
  203. package/skills/oma-observability/resources/vendor-categories.md +352 -0
  204. package/skills/oma-orchestration/SKILL.md +302 -0
  205. package/skills/oma-orchestration/config/cli-config.yaml +92 -0
  206. package/skills/oma-orchestration/resources/memory-schema.md +232 -0
  207. package/skills/oma-orchestration/resources/subagent-prompt-template.md +30 -0
  208. package/skills/oma-orchestration/scripts/parallel-run.sh +6 -0
  209. package/skills/oma-orchestration/scripts/spawn-agent.sh +5 -0
  210. package/skills/oma-orchestration/scripts/verify.sh +20 -0
  211. package/skills/oma-orchestration/templates/backend-task.md +19 -0
  212. package/skills/oma-orchestration/templates/debug-task.md +16 -0
  213. package/skills/oma-orchestration/templates/frontend-task.md +18 -0
  214. package/skills/oma-orchestration/templates/mobile-task.md +18 -0
  215. package/skills/oma-orchestration/templates/qa-task.md +16 -0
  216. package/skills/oma-orchestration/templates/tasks-example.yaml +15 -0
  217. package/skills/oma-pdf/SKILL.md +162 -0
  218. package/skills/oma-pdf/config/pdf-config.yaml +27 -0
  219. package/skills/oma-pdf/resources/execution-protocol.md +127 -0
  220. package/skills/oma-pm/SKILL.md +157 -0
  221. package/skills/oma-pm/resources/error-playbook.md +75 -0
  222. package/skills/oma-pm/resources/examples.md +439 -0
  223. package/skills/oma-pm/resources/execution-protocol.md +62 -0
  224. package/skills/oma-pm/resources/iso-planning.md +110 -0
  225. package/skills/oma-pm/resources/plan-phase-protocol.md +66 -0
  226. package/skills/oma-pm/resources/task-template.json +86 -0
  227. package/skills/oma-qa/SKILL.md +141 -0
  228. package/skills/oma-qa/resources/checklist.md +339 -0
  229. package/skills/oma-qa/resources/error-playbook.md +98 -0
  230. package/skills/oma-qa/resources/execution-protocol.md +169 -0
  231. package/skills/oma-qa/resources/iso-quality.md +82 -0
  232. package/skills/oma-qa/resources/verify-ship-protocol.md +116 -0
  233. package/skills/oma-recap/SKILL.md +245 -0
  234. package/skills/oma-recap/resources/output-formats.md +83 -0
  235. package/skills/oma-refactor/SKILL.md +184 -0
  236. package/skills/oma-refactor/resources/definition.md +108 -0
  237. package/skills/oma-refactor/resources/governance.md +33 -0
  238. package/skills/oma-refactor/resources/hotspots.py +44 -0
  239. package/skills/oma-refactor/resources/measurement.md +93 -0
  240. package/skills/oma-scholar/SKILL.md +276 -0
  241. package/skills/oma-scholar/config/scholar-config.yaml +79 -0
  242. package/skills/oma-scholar/resources/api-endpoints.md +174 -0
  243. package/skills/oma-scholar/resources/checklist.md +92 -0
  244. package/skills/oma-scholar/resources/execution-protocol.md +224 -0
  245. package/skills/oma-scholar/resources/fallback-providers.md +143 -0
  246. package/skills/oma-scholar/resources/setup-openalex.md +85 -0
  247. package/skills/oma-scholar/resources/sidecar-spec.md +341 -0
  248. package/skills/oma-scholar/resources/upstream-spec-cache.md +972 -0
  249. package/skills/oma-scm/SKILL.md +103 -0
  250. package/skills/oma-scm/resources/cm-operations.md +56 -0
  251. package/skills/oma-scm/resources/codeowners-playbook.md +45 -0
  252. package/skills/oma-scm/resources/conventional-commits.md +108 -0
  253. package/skills/oma-scm/resources/merge-risk.md +76 -0
  254. package/skills/oma-scm/resources/onboarding-risk-signals.md +71 -0
  255. package/skills/oma-search/SKILL.md +125 -0
  256. package/skills/oma-search/resources/checklist.md +36 -0
  257. package/skills/oma-search/resources/error-playbook.md +66 -0
  258. package/skills/oma-search/resources/examples.md +80 -0
  259. package/skills/oma-search/resources/execution-protocol.md +86 -0
  260. package/skills/oma-search/resources/intent-rules.md +47 -0
  261. package/skills/oma-search/resources/trust-registry.md +53 -0
  262. package/skills/oma-security/SKILL.md +172 -0
  263. package/skills/oma-security/resources/artex.md +108 -0
  264. package/skills/oma-security/resources/ci.md +134 -0
  265. package/skills/oma-security/resources/cisco-source.md +108 -0
  266. package/skills/oma-security/resources/deepsec-config.md +45 -0
  267. package/skills/oma-security/resources/deepsec-matchers.md +35 -0
  268. package/skills/oma-security/resources/deepsec-scanning.md +45 -0
  269. package/skills/oma-security/resources/deepsec-setup.md +41 -0
  270. package/skills/oma-security/resources/findings-contract.md +408 -0
  271. package/skills/oma-security/resources/mcp-scanning.md +122 -0
  272. package/skills/oma-security/resources/skill-scanning.md +106 -0
  273. package/skills/oma-security/resources/validation.md +71 -0
  274. package/skills/oma-skill-creation/SKILL.md +84 -0
  275. package/skills/oma-skill-creation/resources/prompt-evaluation.md +36 -0
  276. package/skills/oma-skill-creation/resources/ssl-lite-template.md +108 -0
  277. package/skills/oma-skill-creation/resources/validation-checklist.md +101 -0
  278. package/skills/oma-slide/SKILL.md +277 -0
  279. package/skills/oma-slide/resources/animation-patterns.md +245 -0
  280. package/skills/oma-slide/resources/assets/deck-stage.js +514 -0
  281. package/skills/oma-slide/resources/assets/viewport-base.css +257 -0
  282. package/skills/oma-slide/resources/canva-integration.md +203 -0
  283. package/skills/oma-slide/resources/checklist.md +46 -0
  284. package/skills/oma-slide/resources/design-doctrine.md +260 -0
  285. package/skills/oma-slide/resources/fixed-stage.md +232 -0
  286. package/skills/oma-slide/resources/generation-protocol.md +393 -0
  287. package/skills/oma-slide/resources/native-pptx.md +84 -0
  288. package/skills/oma-slide/resources/selection-index.json +461 -0
  289. package/skills/oma-slide/resources/style-presets.LICENSE +10 -0
  290. package/skills/oma-slide/resources/style-presets.md +520 -0
  291. package/skills/oma-tf-infra/SKILL.md +201 -0
  292. package/skills/oma-tf-infra/resources/checklist.md +53 -0
  293. package/skills/oma-tf-infra/resources/cost-optimization.md +574 -0
  294. package/skills/oma-tf-infra/resources/error-playbook.md +68 -0
  295. package/skills/oma-tf-infra/resources/examples.md +38 -0
  296. package/skills/oma-tf-infra/resources/execution-protocol.md +129 -0
  297. package/skills/oma-tf-infra/resources/iso-42001-infra.md +229 -0
  298. package/skills/oma-tf-infra/resources/multi-cloud-examples.md +241 -0
  299. package/skills/oma-tf-infra/resources/policy-testing-examples.md +332 -0
  300. package/skills/oma-translation/SKILL.md +229 -0
  301. package/skills/oma-translation/resources/anti-ai-patterns.md +104 -0
  302. package/skills/oma-translation/resources/lang/_template.md +73 -0
  303. package/skills/oma-translation/resources/lang/en.md +123 -0
  304. package/skills/oma-translation/resources/lang/ja.md +274 -0
  305. package/skills/oma-translation/resources/lang/ko.md +228 -0
  306. package/skills/oma-translation/resources/lang/zh.md +285 -0
  307. package/skills/oma-translation/resources/style-skills.md +104 -0
  308. package/skills/oma-translation/resources/translation-rubric.md +126 -0
  309. package/skills/oma-video/SKILL.md +229 -0
  310. package/skills/oma-video/config/video-config.yaml +60 -0
  311. package/skills/oma-video/resources/checklist.md +26 -0
  312. package/skills/oma-video/resources/execution-protocol.md +122 -0
  313. package/skills/oma-video/resources/existing-media.md +185 -0
  314. package/skills/oma-video/resources/hyperframes-authoring/README.md +44 -0
  315. package/skills/oma-video/resources/hyperframes-authoring/demo.md +31 -0
  316. package/skills/oma-video/resources/hyperframes-authoring/explainer.md +10 -0
  317. package/skills/oma-video/resources/hyperframes-authoring/shorts.md +10 -0
  318. package/skills/oma-video/resources/motion-principles.md +81 -0
  319. package/skills/oma-video/resources/mpt/driver.py +301 -0
  320. package/skills/oma-video/resources/prompt-tips.md +75 -0
  321. package/skills/oma-video/resources/script-schema.md +81 -0
  322. package/skills/oma-video/resources/sound-design.md +127 -0
  323. package/skills/oma-video/resources/strudel/package.json +11 -0
  324. package/skills/oma-video/resources/strudel/page.html +87 -0
  325. package/skills/oma-video/resources/strudel/render.mjs +295 -0
  326. package/skills/oma-video/resources/vendor-matrix.md +124 -0
  327. package/skills/oma-voice/SKILL.md +249 -0
  328. package/skills/oma-voice/config/voice-config.yaml +30 -0
  329. package/skills/oma-voice/resources/audio-processing.md +119 -0
  330. package/skills/oma-voice/resources/checklist.md +47 -0
  331. package/skills/oma-voice/resources/execution-protocol.md +215 -0
  332. package/skills/oma-voice/resources/prompt-tips.md +43 -0
  333. package/skills/oma-voice/resources/voice-matrix.md +51 -0
  334. package/skills/oma-voice/resources/voicestudio.md +87 -0
@@ -0,0 +1,215 @@
1
+ # Execution Protocol
2
+
3
+ This file lays out the Voicebox generation/transcription sequence. Existing-audio processing dispatches to `audio-processing.md` before the health check; it does not require Voicebox or a profile.
4
+
5
+ ## Step 0: Mode detection
6
+
7
+ Detect one of three modes from the user request:
8
+
9
+ | Signal | Mode |
10
+ |---|---|
11
+ | Short message after a long task, "tell me when done", "음성으로 알려줘" | `notify` |
12
+ | "Generate a voiceover", "make an mp3", "narrate this text", explicit length over a sentence | `asset` |
13
+ | Audio file path provided plus a "transcribe", "회의록", "받아 적어" intent | `transcribe` |
14
+ | Existing audio plus conversion, loudness, or duration fitting | `process`: use `audio-processing.md`; skip the Voicebox steps below |
15
+
16
+ If the signal is ambiguous, ask one question before proceeding.
17
+
18
+ ## Step 1: Health check
19
+
20
+ Resolve `voice.backend` first (`resources/voicestudio.md`). When it selects
21
+ VoiceStudio, follow that resource instead of Steps 1-3 and 6-7; the remaining
22
+ steps still apply.
23
+
24
+ 1. Probe `GET http://127.0.0.1:17493/health` with a 5-second timeout.
25
+ 2. On success, continue to Step 2.
26
+ 3. On failure with `voice.backend: auto`, probe VoiceStudio as described in
27
+ `resources/voicestudio.md`. With `voice.backend: voicebox`, or when no
28
+ backend is healthy, surface this hint and exit with code 5:
29
+ ```
30
+ Voicebox is not reachable. Install or launch the Voicebox desktop app
31
+ from GitHub Releases (https://github.com/jamiepine/voicebox/releases).
32
+ Voicebox is not in Homebrew.
33
+ - Apple Silicon: download Voicebox_<ver>_aarch64.dmg
34
+ - Intel Mac: download Voicebox_<ver>_x64.dmg
35
+ - Windows: Voicebox_<ver>_x64-setup.exe
36
+ Then register the MCP server:
37
+ claude mcp add --transport http voicebox http://127.0.0.1:17493/mcp
38
+ ```
39
+
40
+ ## Step 2: Tool discovery cache
41
+
42
+ Verified Voicebox MCP tool names (as of v0.5.0):
43
+
44
+ ```
45
+ tts -> voicebox_speak
46
+ stt -> voicebox_transcribe
47
+ profiles -> voicebox_list_profiles
48
+ captures -> voicebox_list_captures
49
+ ```
50
+
51
+ Model status and audio retrieval are REST-only at the Voicebox app, not exposed as MCP tools. Call them over loopback HTTP when needed:
52
+ - `GET http://127.0.0.1:17493/models/status`
53
+ - `GET http://127.0.0.1:17493/audio/{generation_id}`
54
+
55
+ On the first call in this session:
56
+
57
+ 1. Invoke MCP `tools/list` on the `voicebox` server.
58
+ 2. Confirm the tool required by the selected mode: `voicebox_transcribe` for `transcribe`, or
59
+ `voicebox_speak` and `voicebox_list_profiles` for `notify` and `asset`. `captures` is optional.
60
+ 3. If a required tool is missing, exit with code 4 and surface the gap. A missing profile tool
61
+ must not block transcription. Voicebox may have renamed a tool in a newer release.
62
+
63
+ ## Step 3: TTS profile resolution
64
+
65
+ Run this step only for `notify` and `asset` modes. `transcribe` has no profile
66
+ parameter: skip directly to its audio checks and then `voicebox_transcribe`.
67
+
68
+ 1. Call the cached `profiles` tool.
69
+ 2. If the list is empty, surface this hint and exit with code 3:
70
+ ```
71
+ No voice profile found in Voicebox.
72
+ Create one in the app UI (cloning or preset), then retry.
73
+ ```
74
+ 3. Resolve the target profile in this order:
75
+ 1. Explicit `profile` argument from the user.
76
+ 2. `notification_profile` from `voice-config.yaml` when mode is `notify`.
77
+ 3. `asset_profile` from `voice-config.yaml` when mode is `asset` and the user did not specify one.
78
+ 4. Else ask the user which profile to use.
79
+
80
+ ## Step 4: Clarification (asset and transcribe modes only)
81
+
82
+ Run the checklist from `SKILL.md > Clarification protocol`. Notification mode skips this step.
83
+
84
+ ## Step 5: Length and duration guard
85
+
86
+ | Mode | Check | Action |
87
+ |---|---|---|
88
+ | `notify` | `len(text) <= 240` | Truncate with ellipsis; warn user |
89
+ | `asset` | `len(text) <= 5000` | Ask user to split or truncate if exceeded |
90
+ | `transcribe` | audio duration <= 30 min | Ask user to confirm if exceeded |
91
+
92
+ ## Step 6: Model availability (optional)
93
+
94
+ For `asset` and `notify` modes only:
95
+
96
+ 1. Probe `GET http://127.0.0.1:17493/models/status` over loopback REST (model status is not exposed as an MCP tool — see Step 2).
97
+ 2. If the selected engine reports `loaded: false`, ask the user before triggering a download. Voicebox owns the download flow; this skill only relays the prompt.
98
+
99
+ ## Step 7: Invoke MCP tool
100
+
101
+ ### TTS path
102
+ ```text
103
+ MCP call: voicebox_speak
104
+ text: <normalized text, required>
105
+ profile: <resolved profile name from voicebox_list_profiles>
106
+ language: <auto or explicit; optional>
107
+ engine: <optional engine override>
108
+ personality: <optional bool>
109
+ ```
110
+ Voicebox plays the audio on the user speakers and saves a capture entry automatically. The tool returns a generation id; the audio file lives inside the Voicebox app's Captures panel and is also reachable over loopback at `GET /audio/{generation_id}` when a local copy is needed.
111
+
112
+ ### STT path
113
+ ```text
114
+ MCP call: voicebox_transcribe
115
+ audio_path: <absolute local path; loopback only>
116
+ # OR
117
+ audio_base64: <base64-encoded audio bytes>
118
+ language: <auto or explicit; optional>
119
+ model: <optional model override>
120
+ ```
121
+ Expected response: transcript text and detected language. Pass exactly one of `audio_path` or `audio_base64`.
122
+
123
+ ## Step 8: Persist output and manifest
124
+
125
+ ### TTS output
126
+
127
+ The MCP tool has no save-to-disk: fetch the generated audio over loopback REST
128
+ (`GET /audio/{generation_id}`) and write it as `output.wav` — Voicebox stores
129
+ TTS generations as wav. If the user asked for mp3, transcode locally with
130
+ ffmpeg after the fetch and record `"format": "mp3"` in the manifest.
131
+
132
+ ```text
133
+ .agents/results/voice/<YYYYMMDD-HHMMSS>-<shortid>/
134
+ ├── output.wav
135
+ └── manifest.json
136
+ ```
137
+
138
+ ### STT output
139
+ ```text
140
+ .agents/results/voice/transcripts/<YYYYMMDD-HHMMSS>-<shortid>/
141
+ ├── transcript.md
142
+ └── manifest.json
143
+ ```
144
+
145
+ ### Manifest shape
146
+
147
+ TTS:
148
+ ```json
149
+ {
150
+ "skill": "oma-voice",
151
+ "mode": "tts",
152
+ "voicebox_generation_id": "gen_abc123",
153
+ "text": "...",
154
+ "profile": "Nova",
155
+ "engine": "kokoro",
156
+ "language": "en",
157
+ "format": "wav",
158
+ "duration_sec": 7.4,
159
+ "created_at": "2026-05-15T09:15:33+09:00"
160
+ }
161
+ ```
162
+
163
+ STT:
164
+ ```json
165
+ {
166
+ "skill": "oma-voice",
167
+ "mode": "stt",
168
+ "voicebox_generation_id": "gen_def456",
169
+ "transcript_preview": "first 200 chars...",
170
+ "source_path": "/abs/path/to/input.mp3",
171
+ "profile": null,
172
+ "engine": "whisper",
173
+ "language": "ko",
174
+ "duration_sec": 312.0,
175
+ "created_at": "2026-05-15T09:18:20+09:00"
176
+ }
177
+ ```
178
+
179
+ For notification mode no manifest is required: Voicebox auto-saves the clip to its Captures panel and that is the system of record.
180
+
181
+ ## Step 9: Report
182
+
183
+ Report to the user in one short message:
184
+
185
+ - Mode (notify / tts / stt)
186
+ - Output path (or "played" for ephemeral notifications)
187
+ - Duration in seconds
188
+ - Any warnings (length truncated, disk warn fired, model fallback used)
189
+
190
+ ## Error code mapping
191
+
192
+ Mirror `oma-image` exit codes:
193
+
194
+ | Code | Meaning |
195
+ |---|---|
196
+ | 0 | Success |
197
+ | 1 | Generic failure |
198
+ | 2 | Safety block (currently unused; reserved) |
199
+ | 3 | Resource not found (no profile, missing audio file) |
200
+ | 4 | Invalid input (length, format, MCP tool missing) |
201
+ | 5 | Auth or environment required (voicebox not reachable) |
202
+ | 6 | Timeout |
203
+
204
+ ## Cancellation
205
+
206
+ On SIGINT or SIGTERM:
207
+
208
+ 1. Send an abort signal to the in-flight MCP call when supported.
209
+ 2. Do not write partial output.
210
+ 3. Exit with the originating signal's conventional code.
211
+
212
+ ## Idempotency
213
+
214
+ - Two identical TTS calls produce two separate generations and two separate output folders. The skill does not de-duplicate.
215
+ - Voicebox's own History panel tracks all generations; users can prune it from the app UI.
@@ -0,0 +1,43 @@
1
+ # Prompt Writing Rules for TTS
2
+
3
+ These rules apply to the text that the agent sends to Voicebox. STT input is audio, so these tips cover only the TTS side.
4
+
5
+ ## Core rules
6
+
7
+ 1. **Plain text only.** Do not include SSML tags. Voicebox does not advertise SSML support; tags will either be read aloud or stripped silently. Use punctuation, line breaks, and pacing words to control delivery.
8
+ 2. **One call per logical thought.** Keep a sentence intact rather than splitting mid-clause across MCP calls. Voicebox prosody works best on whole sentences.
9
+ 3. **Strip markdown markers** before sending. Remove `#`, `*`, `_`, backticks, list bullets, and table characters. They have no audible meaning and add awkward pauses.
10
+ 4. **Strip emojis.** Voicebox usually reads them as the literal Unicode name, which sounds wrong. Replace with the intended word when relevant ("success" instead of a check mark).
11
+ 5. **Mixed-language text stays in a single call.** Pick a multilingual engine. Splitting Korean and English into separate calls breaks intonation and timing.
12
+
13
+ ## Punctuation and pacing
14
+
15
+ - Use a comma where you want a short breath. Use a period for a longer stop.
16
+ - A blank line between paragraphs produces a longer pause than punctuation alone.
17
+ - Avoid stacked exclamation marks. Voicebox treats them as a single emphatic stop. Use one when emphasis matters.
18
+ - Use ellipsis sparingly for hesitation. Three dots `...` works; one dot does not.
19
+
20
+ ## Numbers, units, and acronyms
21
+
22
+ - Spell out numbers when natural reading matters: "삼 킬로그램" rather than "3kg", or "three kilograms" rather than "3 kg".
23
+ - Decimals: keep digit form when context is data-heavy ("0.42 percent"), spell out when conversational ("nearly half").
24
+ - Currency: write the symbol where readers expect it ("$12.50") and let Voicebox handle the read-out. If Voicebox misreads, switch to spelled form ("twelve dollars fifty").
25
+ - Acronyms: spell out the first occurrence when the meaning matters ("Application Programming Interface, A P I"). For short notifications, leave well-known acronyms as is.
26
+
27
+ ## Notifications
28
+
29
+ - One sentence, fewer than 240 characters.
30
+ - Lead with the outcome: "Build succeeded, 4 minor warnings" rather than "I have completed the build process and there are 4 minor warnings".
31
+ - Do not stack adjectives. "Tests passed" beats "All the tests have now successfully passed".
32
+ - Skip filler ("just to let you know that"). Time is the entire value of a voice notification.
33
+
34
+ ## Asset narration
35
+
36
+ - Read the text aloud yourself before sending. Awkward phrasing becomes obvious.
37
+ - Prefer active voice. Voicebox handles passive voice but it stretches the pacing.
38
+ - Where ambiguity exists ("read" past vs present), reword. Voicebox cannot disambiguate from context alone.
39
+
40
+ ## Caveats
41
+
42
+ - These are recommendations, not hard validators. The skill does not strip markdown or emojis automatically in v1; the calling agent should normalize text before invoking the MCP tool.
43
+ - If a future Voicebox release supports SSML or prosody hints, revisit rule 1 and add a section on supported tags.
@@ -0,0 +1,51 @@
1
+ # Voice Engine Matrix
2
+
3
+ This matrix covers the Voicebox backend. On VoiceStudio, discover installed engines and their languages from the running backend instead (`voicestudio.md`).
4
+
5
+ Voicebox bundles seven engines. All run locally; the user picks one when creating a voice profile in the Voicebox app, and the skill respects that choice. This matrix exists so the agent can recommend a profile-engine pair when the user has not yet decided.
6
+
7
+ ## Engine comparison
8
+
9
+ | Engine | Languages | Strengths | Best for | Weight | Notes |
10
+ |---|---|---|---|---|---|
11
+ | Qwen3-TTS | 10, strong CJK | Natural CJK prosody, fast on consumer GPU | Korean, Japanese, Chinese narration | Medium | First choice for mixed CJK content |
12
+ | Qwen CustomVoice | 9 presets | Quick start, no sample needed | Demo and prototyping in CJK | Medium | Limited tonal variety |
13
+ | LuxTTS | English only | Lightweight, CPU-friendly | Low-resource machines, quick notifications | Light | Less expressive than Kokoro |
14
+ | Chatterbox Multilingual | 23 | Broad coverage, decent quality | Multilingual content, mixed sentences | Medium-Heavy | Slower than Kokoro on CPU |
15
+ | Chatterbox Turbo | English | Emotion tags, expressive delivery | Character voices, podcast intros | Medium | Best with voice cloning |
16
+ | TADA (HumeAI) | 10 | Strong emotional range, narration cadence | Audiobook, story narration | Heavy | Largest models, GPU recommended |
17
+ | Kokoro | 8, 50 preset voices | Polished English, dependable defaults | Notifications and short English assets | Light-Medium | Default English fallback |
18
+
19
+ ## Picks by use case
20
+
21
+ | Use case | First choice | Second choice |
22
+ |---|---|---|
23
+ | Korean notification | Qwen3-TTS | Chatterbox Multilingual |
24
+ | English notification | Kokoro | LuxTTS |
25
+ | Japanese or Chinese narration | Qwen3-TTS | Chatterbox Multilingual |
26
+ | Mixed-language sentence | Chatterbox Multilingual | Qwen3-TTS |
27
+ | CPU-only laptop, short clips | LuxTTS | Kokoro |
28
+ | Expressive narration | TADA | Chatterbox Turbo |
29
+ | Character voice or cloned voice | Chatterbox Turbo + cloning | Qwen CustomVoice |
30
+ | Quick voiceover, English | Kokoro | Chatterbox Turbo |
31
+
32
+ ## Language-first rules
33
+
34
+ - **Korean text**: prefer Qwen3-TTS. If Korean mixes English technical terms, stay on Qwen3-TTS rather than switching engines mid-sentence.
35
+ - **English text**: Kokoro for clean defaults; Chatterbox Turbo when emotion tags or character voices matter.
36
+ - **Mixed sentences**: pick a multilingual engine and keep the call as a single request. Splitting hurts prosody.
37
+ - **Bottom-tier hardware**: LuxTTS or Kokoro stay snappy without a GPU.
38
+ - **Long-form narration (over 5 minutes total in chunks)**: prefer TADA or Chatterbox Turbo for sustained expression; reserve Kokoro for short bursts.
39
+
40
+ ## Profile selection heuristic
41
+
42
+ 1. If the user passes an explicit `profile` argument, use it.
43
+ 2. Else use `notification_profile` (notify mode) or `asset_profile` (asset mode) from `voice-config.yaml`.
44
+ 3. Else use the first available profile from `voicebox_list_profiles` whose engine matches the detected language pick in the table above.
45
+ 4. Else exit with a setup hint pointing the user to the Voicebox app Profiles tab.
46
+
47
+ ## Caveats
48
+
49
+ - Engine names above are the ones Voicebox surfaces in its UI. If voicebox renames an engine, the skill defers to whatever REST `GET /models/status` returns (model status is not exposed as an MCP tool).
50
+ - Voice cloning quality depends on the reference sample voicebox captured. The skill does not judge sample quality; it routes by language only.
51
+ - Some engines auto-download large model weights on first use. Trigger the download from the Voicebox app UI to keep the agent loop responsive.
@@ -0,0 +1,87 @@
1
+ # VoiceStudio Backend
2
+
3
+ Use this branch when `voice.backend` resolves to VoiceStudio
4
+ (`https://github.com/debpalash/VoiceStudio`), a local speech backend with
5
+ voice cloning, voice design, transcription and dubbing. Voicebox steps in
6
+ `execution-protocol.md` do not apply on this branch; the OMA modes, limits,
7
+ output layout, manifest and report still do. Existing-file processing stays
8
+ with `audio-processing.md` and needs no backend.
9
+
10
+ ## Resolve the backend
11
+
12
+ 1. Read `voice.backend` from `.agents/oma-config.yaml`. Values: `auto`
13
+ (default), `voicebox`, `voicestudio`. The oma-video narration provider
14
+ resolves the same setting.
15
+ 2. The VoiceStudio base URL is `OMA_VOICESTUDIO_URL`, then `VOICESTUDIO_URL`,
16
+ then `http://127.0.0.1:3900`.
17
+ 3. `auto` probes Voicebox `GET /health` first and VoiceStudio `GET /health`
18
+ second; the first healthy one wins. An explicit backend probes only itself
19
+ and never falls through.
20
+ 4. With no healthy backend, print the Voicebox hint from `execution-protocol.md`
21
+ plus "or open the VoiceStudio app", and exit with code 5. Do not launch,
22
+ install or update either app.
23
+
24
+ ## Route to the upstream skill
25
+
26
+ 1. Check the runtime skill catalog for `voicestudio` from
27
+ `https://github.com/debpalash/VoiceStudio` and read its complete `SKILL.md`.
28
+ 2. If it is absent, load it without a persistent installation or another agent:
29
+
30
+ ```bash
31
+ bunx skills use debpalash/VoiceStudio@voicestudio
32
+ ```
33
+
34
+ Omit `--agent`. `voicestudio-maintainer` maintains that repository and is
35
+ not part of this route.
36
+ 3. Follow the loaded upstream instructions for discovery (`/openapi.json`,
37
+ `/v1/audio/voices`), endpoints, authentication, and the clone, design,
38
+ dubbing and long-form job operations. Do not copy them into OMA resources.
39
+ 4. An already-connected VoiceStudio MCP server is an optional surface. Discover
40
+ its actual tools before calling them. Prefer the REST speech endpoint for a
41
+ file on disk, unless the MCP server runs in `files` mode with
42
+ `OMNIVOICE_MCP_BASE_PATH` inside `$PWD`.
43
+
44
+ ## OMA keeps
45
+
46
+ - **Modes and limits**: notify, asset and transcribe modes, the 240 / 5000
47
+ character and 30-minute limits, and the clarification protocol are unchanged.
48
+ - **Profiles**: resolve TTS voices from VoiceStudio's discovered profile IDs.
49
+ A `notification_profile` or `asset_profile` written for Voicebox does not
50
+ exist in VoiceStudio; ask instead of guessing. OpenAI voice names
51
+ (`alloy`, ...) are compatibility aliases, not saved voices; do not use one for
52
+ repeatable narration unless the user accepts it.
53
+ - **Output and manifest**: write to the same `.agents/results/voice/` layout.
54
+ Record `"backend": "voicestudio"`, the profile ID, the engine and language
55
+ when the backend reports them, `format`, `duration_sec` and `created_at`.
56
+ Omit `voicebox_generation_id`; never invent a Voicebox field.
57
+ - **Verification**: check the HTTP status, then probe the saved file with
58
+ ffprobe before calling it audio; an error body can be written to the output
59
+ path.
60
+ - **Notification mode**: VoiceStudio does not play generations on the
61
+ speakers. Write the clip to a temporary file, play it with an available local
62
+ player (`afplay`, or `ffplay -nodisp -autoexit`), then delete it. Without a
63
+ player, report that playback was unavailable.
64
+ - **Timed narration**: request `verbose_json` transcription for word timing,
65
+ then fit the raw WAV through `audio-processing.md`.
66
+
67
+ ## Consent and side effects
68
+
69
+ - Clone a voice only on an explicit request and with the voice owner's
70
+ permission. Cloning and `design_voice` create persistent profiles; confirm
71
+ before creating one.
72
+ - First use of an engine may download model weights (OmniVoice is about
73
+ 2.3 GB). Ask before triggering a download.
74
+ - Cloud translation, cloud sync, community features and remote backends run
75
+ only when the user chooses them. Send `OMNIVOICE_API_KEY` or a sharing PIN
76
+ only to the user's configured backend, over HTTPS unless it is loopback or
77
+ an explicitly trusted LAN. Never print a key or PIN.
78
+ - VoiceStudio is AGPL-3.0; OMA uses it only through its local API and does not
79
+ vendor or bundle it. Model, voice and output licences are per model in its
80
+ Model Manager; report them when the user asks about reuse.
81
+
82
+ ## References
83
+
84
+ - [Upstream VoiceStudio](https://github.com/debpalash/VoiceStudio):
85
+ `skills/voicestudio/SKILL.md`, `docs/mcp.md` and `docs/speech-platform.md`.
86
+ - [Skills CLI use](https://github.com/vercel-labs/skills/blob/main/docs/commands.md#skills-use):
87
+ prompt and complete support-directory loading without an installed skill.