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,110 @@
1
+ # Frontend Agent - Angular Rules
2
+
3
+ Applies when the target project is Angular (`angular.json` present, or `@angular/core` in
4
+ `package.json`). In Angular projects these rules **replace** the React/Next.js-specific
5
+ sections of this skill (shadcn workflow, Server/Client component split, Next.js libraries).
6
+ Cross-cutting rules still apply: accessibility, design tokens, i18n sources of truth,
7
+ self-describing file names, and verification before handoff.
8
+
9
+ ## Core Conventions
10
+
11
+ 1. **Standalone components only** — no new `NgModule`s. Existing NgModule code may stay;
12
+ migrate opportunistically, never big-bang.
13
+ 2. **`ChangeDetectionStrategy.OnPush` on every component.** Prefer zoneless
14
+ (`provideZonelessChangeDetection`) when the project already opts in.
15
+ 3. **Signals first**: `signal`, `computed`, `effect`, signal inputs `input()`, `model()`,
16
+ and `output()` are the default state primitives. Reach for RxJS only for genuine
17
+ event streams (see RxJS policy below).
18
+ 4. **`inject()` over constructor injection** in new code.
19
+ 5. **New template control flow** — `@if` / `@for` / `@switch` / `@defer`. Do not write
20
+ `*ngIf` / `*ngFor` in new templates.
21
+ 6. **Lazy routes**: `loadComponent` / `loadChildren`; colocate feature route configs with
22
+ the feature.
23
+ 7. **Typed Reactive Forms** for anything beyond a single input; validation schemas live
24
+ next to the form.
25
+ 8. **Angular CLI for scaffolding** (`ng generate`); respect the project's generator
26
+ defaults and file-naming style. For naming, follow the project's existing convention;
27
+ new projects follow the current Angular style guide (kebab-case basenames).
28
+ 9. **UI library**: use the project's detected library (Spartan UI, Angular Material,
29
+ PrimeNG, …) before hand-rolling components. Tailwind CSS follows
30
+ `resources/tailwind-rules.md` where applicable.
31
+ 10. **Data access**: `HttpClient` (or `httpResource`) lives in injectable services, never
32
+ inline in components.
33
+
34
+ ## RxJS Policy — Marble Tests Are MANDATORY
35
+
36
+ Signals cover most component state. RxJS is the right tool for **streams over time**:
37
+ debounced input, cancellation (`switchMap`), merging event sources, websockets, polling.
38
+
39
+ Interop happens at boundaries only: `toSignal` / `toObservable` from
40
+ `@angular/core/rxjs-interop`. Do not hand-subscribe in components when `toSignal` or the
41
+ `async` pipe can own the subscription.
42
+
43
+ **Non-negotiable: every non-trivial Observable pipeline ships with a marble test.**
44
+ A stream without a marble test fails review.
45
+
46
+ "Non-trivial" means the pipeline contains any of:
47
+
48
+ - time-based operators: `debounceTime`, `throttleTime`, `auditTime`, `delay`, `timer`-driven logic
49
+ - combination operators: `combineLatest`, `withLatestFrom`, `merge`, `zip`, `race`
50
+ - higher-order mapping: `switchMap`, `mergeMap`, `concatMap`, `exhaustMap`
51
+ - error/retry flow: `retry`, `retryWhen`, `catchError` with re-subscription
52
+ - any custom operator
53
+
54
+ A single synchronous `map`/`filter` on an `HttpClient` call may use a standard async test
55
+ instead — everything else gets marbles.
56
+
57
+ ### Marble test skeleton (`TestScheduler`, runner-agnostic)
58
+
59
+ ```ts
60
+ import { TestScheduler } from 'rxjs/testing';
61
+ import { debounceTime } from 'rxjs';
62
+
63
+ describe('search query stream', () => {
64
+ let scheduler: TestScheduler;
65
+
66
+ beforeEach(() => {
67
+ scheduler = new TestScheduler((actual, expected) => {
68
+ expect(actual).toEqual(expected); // wire to the runner's deep-equal
69
+ });
70
+ });
71
+
72
+ it('emits only the last value inside the debounce window', () => {
73
+ scheduler.run(({ cold, expectObservable }) => {
74
+ const source$ = cold('a 50ms b 199ms c|', { a: 'n', b: 'ng', c: 'ngx' });
75
+ const result$ = source$.pipe(debounceTime(100));
76
+ expectObservable(result$).toBe('151ms b 100ms (c|)', { b: 'ng', c: 'ngx' });
77
+ });
78
+ });
79
+ });
80
+ ```
81
+
82
+ Rules for marble tests:
83
+
84
+ 1. **Always use `scheduler.run()`** — it virtualizes time, so `debounceTime(300)` needs no
85
+ real waiting and no scheduler injection into production code.
86
+ 2. **Test timing, not just values**: the marble diagram must assert *when* emissions
87
+ happen, including completion/error frames.
88
+ 3. **Cover cancellation** for higher-order mappings (`switchMap` dropping the stale inner
89
+ observable is exactly the behavior marbles exist to prove) — use `expectSubscriptions`
90
+ for inner-subscription lifetimes when relevant.
91
+ 4. `TestScheduler` is runner-agnostic — it works under Vitest, Jest, and Jasmine/Karma;
92
+ only the `assertDeepEqual` wiring differs.
93
+
94
+ ## Verification
95
+
96
+ Before handoff, run the project's Angular checks (typical set):
97
+
98
+ ```bash
99
+ {pm} run lint # or: ng lint
100
+ bunx tsc --noEmit -p tsconfig.app.json
101
+ {test_cmd} # e.g. bunx vitest run, ng test --watch=false
102
+ ```
103
+
104
+ Checklist deltas vs the React checklist:
105
+
106
+ - [ ] New components are standalone + OnPush
107
+ - [ ] No new `*ngIf` / `*ngFor` / `NgModule`
108
+ - [ ] Component state is signal-based unless a stream is genuinely needed
109
+ - [ ] Every non-trivial RxJS pipeline has a passing marble test
110
+ - [ ] Routes added lazily (`loadComponent` / `loadChildren`)
@@ -0,0 +1,76 @@
1
+ # Frontend Agent - Self-Verification Checklist
2
+
3
+ Run through every item before submitting your work.
4
+
5
+ ## Next.js 16 Conventions
6
+ - [ ] Request-proxy/auth-gate file is named `proxy.ts` (NOT `middleware.ts`) and exports `proxy` (NOT `middleware`)
7
+ <!-- oma-docs:ignore-start -->
8
+ - [ ] Do NOT flag `src/proxy.ts` as dead code or recommend renaming to `middleware.ts`; `proxy.ts` is the canonical Next.js 16+ convention
9
+ <!-- oma-docs:ignore-end -->
10
+ - [ ] Config flags use the `Proxy` form (e.g. `skipProxyUrlNormalize`), not the legacy `Middleware` form
11
+ - [ ] Every `<Link>` passes `prefetch={false}`; any prefetching link is a deliberate high-intent target with an inline reason
12
+
13
+ ## TypeScript
14
+ - [ ] Strict mode, no `any` types
15
+ - [ ] Explicit interfaces for all component props
16
+ - [ ] No TypeScript errors (run the project's configured `typecheck` command; preserve framework checks and the selected TypeScript 7/native-preview executable)
17
+
18
+ ## Styling
19
+ - [ ] Tailwind CSS only (no inline styles, no CSS modules)
20
+ - [ ] Responsive at 320px, 768px, 1024px, 1440px
21
+ - [ ] Dark mode supported (if project uses it)
22
+ - [ ] No hardcoded colors (use Tailwind theme tokens)
23
+
24
+ ## Accessibility (WCAG 2.2 AA)
25
+ - [ ] Semantic HTML elements (`<nav>`, `<main>`, `<button>`)
26
+ - [ ] All images have alt text
27
+ - [ ] Color contrast >= 4.5:1 (normal text), >= 3:1 (large text)
28
+ - [ ] Keyboard navigation works for all interactive elements
29
+ - [ ] ARIA labels on non-obvious interactive elements
30
+ - [ ] Focus indicators visible
31
+
32
+ ## UX States
33
+ - [ ] Loading state (skeleton or spinner)
34
+ - [ ] Error state (user-friendly message + retry action)
35
+ - [ ] Empty state (helpful message + CTA)
36
+ - [ ] Optimistic updates where appropriate
37
+
38
+ ## Recommended product-interface review (advisory)
39
+
40
+ For new or substantially changed admin consoles, dashboards, SaaS product UI,
41
+ and internal tools, recommend `oma-design` with Interface Design
42
+ `design-review` using [product-interface-review.md](../../oma-design/resources/product-interface-review.md).
43
+ Record `completed`, `recommended-not-run` with a reason, or `not-applicable`.
44
+ An unavailable or omitted advisory review does not block completion; the task's
45
+ required functional, responsive, and accessibility checks still apply.
46
+
47
+ ## Deferred / Stub Markers (transparency)
48
+ - [ ] Every deferred external integration is wrapped in `// TODO(oma-deferred): <vendor or feature>`
49
+ - [ ] Every mock data block has `// MVP: replace with <real-source>` on top
50
+ - [ ] Every save/persist UI has a working storage adapter (localStorage, IndexedDB, or API). Empty `onClick={() => console.log("save")}` does NOT count; wire actual persistence, or mark explicitly: `// TODO(oma-deferred): persist <state> to <storage>`
51
+ - [ ] Reload-after-save round-trips state for any save action surfaced in the UI
52
+
53
+ ## React 19 hook patterns (catch what eslint catches)
54
+ React 19 + recent `eslint-plugin-react-hooks` flag these as hard errors. They aren't style nits; they break runtime behavior. Avoid them at write-time, not "fix later".
55
+
56
+ - [ ] **Don't put `setState` synchronously inside `useEffect`** (`react-hooks/set-state-in-effect`). Cascading renders trash performance and, in graphics contexts, can exhaust GPU resources. Replace with: derive in render (`const count = items.length`), lazy `useState` initializer (`useState(() => computeOnce())`), move the update into the event handler that triggered it, or `useSyncExternalStore` for external subscriptions.
57
+ - [ ] **Don't read `ref.current` during render** (`react-hooks/refs`). Refs are null on first render and don't trigger re-renders when they attach, so any JSX gated on `ref.current` is wrong. Read refs only inside event handlers or effects. When a child component needs an instance, pass the ref object itself (or use a callback ref); let the child read `.current` from inside its own effect/handler.
58
+ - [ ] **`useEffect` deps complete and stable.** List every referenced reactive value. Wrap object/array literals in `useMemo` so the dep identity doesn't change every render.
59
+ - [ ] **No prop-mirroring via effect.** `useEffect(() => setX(derive(props)))` is always a bug; compute `x` in the render body or memoize.
60
+
61
+ ## react-three-fiber specifics
62
+ - [ ] Heavy components (`Canvas`, drei helpers, anything that touches `window`/WebGL) load via `next/dynamic` with `ssr: false`.
63
+ - [ ] Effects, helpers, and post-process passes mount unconditionally on the relevant state; don't gate them on `ref.current` truthiness in JSX.
64
+ - [ ] Background and lighting work without remote assets when the project doesn't ship a CDN HDR. Solid `<color attach="background">` or local textures beat a `<Environment preset>` that depends on network.
65
+ - [ ] Shadow map sizes scale to the number of lights; default to 1024 unless the scene needs more. Multiple 2048-shadowed lights drain GPU memory on integrated graphics.
66
+
67
+ ## Performance
68
+ - [ ] No unnecessary re-renders (check with React DevTools Profiler)
69
+ - [ ] Memoization matches the project's React Compiler setting: compiler ON (`reactCompiler` in `next.config.*`) → no hand-written `useMemo`/`useCallback`/`React.memo` in new code; compiler OFF → memoize manually (see `tech-stack.md` §React Compiler)
70
+ - [ ] Code splitting for route-level components
71
+ - [ ] Images optimized and lazy-loaded
72
+
73
+ ## Testing
74
+ - [ ] Unit tests for components with logic
75
+ - [ ] User interactions tested (click, type, submit)
76
+ - [ ] Async behavior tested (loading -> data -> display)
@@ -0,0 +1,125 @@
1
+ # Frontend Agent - Error Recovery Playbook
2
+
3
+ When you encounter a failure, find the matching scenario and follow the recovery steps.
4
+ Use the relevant recovery steps. If required information or authority is missing, pause the dependent action and continue independent work.
5
+
6
+ ---
7
+
8
+ ## False Positive: `proxy.ts` flagged as dead code or `middleware.ts` demanded
9
+
10
+ <!-- oma-docs:ignore-start -->
11
+ **Symptoms**: Reviewer claims `src/proxy.ts` won't be picked up, demands rename to `src/middleware.ts`, or flags the auth gate as not wired.
12
+ <!-- oma-docs:ignore-end -->
13
+
14
+ 1. Check the installed Next.js version and the project's request interception convention.
15
+ 2. For a project using the Next.js 16+ proxy convention, inspect `proxy.ts` in the root or `src/` and its `proxy` export.
16
+ 3. Verify location, configuration, and relevant tests. A framework entry point need not have application imports.
17
+ 4. Correct a finding based only on an outdated filename assumption; retain any wiring or authorization defect supported by evidence.
18
+ 5. Reference: https://nextjs.org/docs/messages/middleware-to-proxy
19
+
20
+ ---
21
+
22
+ ## TypeScript Compilation Error
23
+
24
+ **Symptoms**: `TS2322`, `TS2345`, `Type X is not assignable to type Y`
25
+
26
+ 1. Read the error: which file, which line, which types conflict
27
+ 2. Check: is the interface/type definition correct?
28
+ 3. Check: is the API response type matching the expected shape?
29
+ 4. If API mismatch: update the type to match actual response (don't cast with `as any`)
30
+ 5. If generic issue: use explicit type parameter `<Type>` instead of inference
31
+ 6. **NEVER do this**: `@ts-ignore`, `as any` (hides type issues without resolving them)
32
+
33
+ ---
34
+
35
+ ## Build Error
36
+
37
+ **Symptoms**: `next build` fails, `Module not found`, `SyntaxError`
38
+
39
+ 1. Read the full error: which module, which file
40
+ 2. If missing dependency: note in result as "requires `npm install X`"; do NOT install yourself
41
+ 3. If import path wrong: use `search_for_pattern("export.*ComponentName")` to find actual path
42
+ 4. If dynamic import issue: ensure component is client-side (`'use client'`)
43
+ 5. Re-run the build only if the user explicitly requested a build; otherwise use relevant non-build checks and report the verification limit.
44
+
45
+ ---
46
+
47
+ ## Test Failure
48
+
49
+ **Symptoms**: `vitest` FAILED, `expect(X).toBe(Y)` assertion errors
50
+
51
+ 1. Read the error: expected vs received, which test file
52
+ 2. `find_symbol("ComponentName")` to check current implementation
53
+ 3. Determine: test outdated or implementation wrong?
54
+ - Test expects old behavior → update test
55
+ - Component bug → fix component
56
+ 4. Re-run the specific test: `npx vitest run path/to/test.ts`
57
+ 5. **After 3 failures**: Try a different approach. Record in progress
58
+
59
+ ---
60
+
61
+ ## Hydration Mismatch (Next.js)
62
+
63
+ **Symptoms**: `Hydration failed`, `Text content does not match server-rendered HTML`
64
+
65
+ 1. Find the component that renders differently on server vs client
66
+ 2. Common causes:
67
+ - `Date.now()` or `Math.random()` in render
68
+ - Browser-only APIs (`window`, `localStorage`) without `useEffect`
69
+ - Conditional rendering based on client-only state
70
+ 3. Fix: keep the server and first client render identical, then set browser-only state in `useEffect`; use a narrowly scoped `dynamic(..., { ssr: false })` boundary when rendering must be client-only
71
+ 4. If third-party component: wrap with `dynamic(() => import(...), { ssr: false })`
72
+
73
+ ---
74
+
75
+ ## API Integration Error
76
+
77
+ **Symptoms**: `Network Error`, `CORS`, `401 Unauthorized`, wrong data shape
78
+
79
+ 1. **CORS**: Check backend CORS config; is frontend origin allowed?
80
+ 2. **401**: Check token; is it in the header? is it expired?
81
+ 3. **Wrong data**: Log `response.data` and compare with expected type
82
+ 4. **Network Error**: Is the backend running? Correct port?
83
+ 5. If backend isn't your responsibility: document the expected API contract in result
84
+
85
+ ---
86
+
87
+ ## Styling / Layout Broken
88
+
89
+ **Symptoms**: Component renders but looks wrong, responsive breakpoint fails
90
+
91
+ 1. Check Tailwind classes: typo? wrong breakpoint prefix?
92
+ 2. Check parent container: is it blocking layout? (`overflow-hidden`, fixed width)
93
+ 3. Test at specific breakpoints: 320px, 768px, 1024px, 1440px
94
+ 4. Use browser DevTools to inspect computed styles
95
+ 5. If dark mode issue: check `dark:` variants applied
96
+
97
+ ---
98
+
99
+ ## Rate Limit / Quota Error (LLM runtime)
100
+
101
+ **Symptoms**: `429`, `RESOURCE_EXHAUSTED`, `rate limit exceeded` (any vendor runtime: Claude, Codex, etc.)
102
+
103
+ 1. Identify the source. An expected rate-limit response from the application under review is a test result, not an agent-provider quota failure.
104
+ 2. For provider quota exhaustion, stop affected provider calls and record the unavailable checks; continue independent authorized work when possible.
105
+ 3. Preserve injected session/task/run IDs and the claim path. Save progress/results under the configured memory base using the task/run-scoped names in `../../_shared/runtime/memory-protocol.md`.
106
+ 4. Use a valid claim status (`partial`, `blocked`, or `failed`) with the actual cause and unresolved work per `../../_shared/runtime/result-contract.md`; do not invent a `quota_exceeded` status.
107
+
108
+ ---
109
+
110
+ ## Workflow State Unavailable
111
+
112
+ Follow `../../_shared/runtime/memory-protocol.md`; state storage is independent of the code-intelligence provider.
113
+
114
+ 1. Use the injected progress/result paths and session/task identity.
115
+ 2. If a file operation fails, retry once when the failure may be transient.
116
+ 3. Preserve work and report the failed path and error to the coordinator. Do not silently redirect artifacts to `/tmp` or mark a missing result as completed.
117
+ 4. For read-only tasks, return the result through the runtime's response channel as required by the dispatch contract.
118
+
119
+ ---
120
+
121
+ ## General Principles
122
+
123
+ - **After 3 failures**: If same approach fails 3 times, must try a different method
124
+ - **Blocked**: If no progress after 5 turns, save current state and record `Status: blocked`
125
+ - **Out of scope**: If you find backend issues, only record in result; do not modify directly
@@ -0,0 +1,46 @@
1
+ # Frontend Agent - Execution Protocol
2
+
3
+ ## Preparation
4
+ Use the task's scope, existing project conventions, and acceptance criteria. Follow `../../_shared/core/execution-policy.md` when it has not already been supplied. Read only references needed by the selected operation; consult lessons or recovery guides for an observed issue. Expand planning depth only when the change requires it.
5
+
6
+ ## Step 1: Analyze
7
+ - Read the task requirements carefully
8
+ - Read `DESIGN.md` if present at the project root; treat Section 9 (Agent Prompt Guide) as authoritative component spec
9
+ - Identify which components, pages, and hooks are needed
10
+ - Inspect existing structure and relevant symbols via `../../_shared/core/code-intelligence.md`; if the configured provider is unavailable, use native search only for paths outside this project or ignored paths
11
+ - Review existing patterns: reference search for `Button` through the configured provider to understand usage conventions. Native search is only for paths outside this project or ignored paths.
12
+ - List assumptions; ask if unclear
13
+
14
+ ## Step 2: Plan
15
+ - Decide on component structure (which are new, which extend existing)
16
+ - Define props interfaces with TypeScript
17
+ - Plan state management approach (Jotai or Zustand for client, nuqs for URL, TanStack Query for server)
18
+ - Identify API integration points (orval-generated TanStack Query hooks when an OpenAPI spec exists; regenerate via the project's `gen:api` task after contract changes)
19
+ - Plan responsive breakpoints and accessibility requirements
20
+ - For requested GPU/canvas effects, cinematic video-scroll, or selected GSAP APIs,
21
+ choose the matching route in [specialized-visual-implementation.md](specialized-visual-implementation.md).
22
+ - For affected motion, touch, feedback, or interaction performance, apply
23
+ [shared interaction quality](../../_shared/ui-interaction-quality.md).
24
+
25
+ ## Step 3: Implement
26
+ - **Honor the task's `test_approach`** (see `../../_shared/core/test-approach.md`): for `tdd` tasks, write and run the focused test first (record the RED failure), make the minimal change (GREEN), then continue
27
+ - Typical affected files (choose an order from actual dependencies):
28
+ 1. TypeScript types/interfaces
29
+ 2. API client hooks (orval-generated from OpenAPI when available; hand-written TanStack Query otherwise)
30
+ 3. Reusable UI components (shadcn/ui based)
31
+ 4. Feature components (compose UI + logic)
32
+ 5. Page components (route-level)
33
+ 6. Tests (unit + integration)
34
+ - Follow `resources/tailwind-rules.md` for styling
35
+
36
+ ## Step 4: Verify
37
+ - Check applicable items in `resources/checklist.md`
38
+ - Use `../../_shared/core/common-checklist.md` only for cross-domain verification
39
+ - Check TypeScript strict mode: no errors
40
+ - For `tdd` tasks, append the `TDD_EVIDENCE` block (test command, RED, GREEN) to the result file per `../../_shared/core/test-approach.md`
41
+ - Verify responsive design at 320px, 768px, 1024px, 1440px
42
+ - Test keyboard navigation and screen reader compatibility
43
+ - For a new or substantially changed admin console, dashboard, SaaS product UI, or internal tool, follow the [recommended product-interface review](../../oma-design/resources/product-interface-review.md). Record its advisory outcome; reviewer approval is not a completion prerequisite unless the task explicitly requires it.
44
+
45
+ ## On Error
46
+ See `resources/error-playbook.md` for recovery steps.