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,92 @@
1
+ # Subagent vendor transport registry.
2
+ # Select routing with model_preset/agents/default_cli in .agents/oma-config.yaml.
3
+ # Legacy active_vendor and execution settings are not consumed by the parser.
4
+
5
+ # Vendor configurations
6
+ vendors:
7
+ claude:
8
+ command: claude
9
+ prompt_flag: "-p"
10
+ output_format_flag: "--output-format"
11
+ output_format: "json"
12
+ auto_approve_flag: "--dangerously-skip-permissions"
13
+ model_flag: "--model"
14
+ default_model: "sonnet"
15
+ # JSON output parsing
16
+ response_jq: ".result"
17
+ isolation_method: "flags"
18
+
19
+ # Codex runs in its workspace-write sandbox. oma also enables network and
20
+ # grants the project root, the OMA state home (~/.oma), and existing
21
+ # package-manager caches. This file is replaced by `oma update`; choose
22
+ # another mode durably with OMA_CODEX_SANDBOX=read-only|workspace-write|
23
+ # danger-full-access (danger-full-access = no sandbox, no approvals).
24
+ codex:
25
+ command: codex
26
+ subcommand: "exec"
27
+ prompt_flag: "none"
28
+ output_format_flag: "--json"
29
+ auto_approve_flag: "--sandbox workspace-write"
30
+ model_flag: "-m"
31
+ default_model: "gpt-6.1-terra"
32
+ response_jq: ".response"
33
+ isolation_method: "directory"
34
+
35
+ qwen:
36
+ command: qwen
37
+ prompt_flag: "-p"
38
+ output_format_flag: "--output-format"
39
+ output_format: "json"
40
+ auto_approve_flag: "--yolo"
41
+ model_flag: "-m"
42
+ default_model: "qwen3.7-plus"
43
+ response_jq: ".output"
44
+ isolation_method: "directory"
45
+
46
+ # Antigravity (agy) headless print mode: `agy -p "<prompt>"`.
47
+ # Models: run `agy models`. `--model` accepts ONLY those display names —
48
+ # a slug like `gemini-4-argon` makes agy exit with `Error: invalid --model`
49
+ # before running the prompt. The parenthesised tier is agy's effort dial.
50
+ # agy 1.0 had no --model / --add-dir / --print-timeout; oma probes
51
+ # `agy --help` once and drops whichever flags the installed binary lacks.
52
+ antigravity:
53
+ command: agy
54
+ prompt_flag: "-p"
55
+ auto_approve_flag: "--dangerously-skip-permissions"
56
+ model_flag: "--model"
57
+ default_model: "Gemini 4 Argon (High)"
58
+ isolation_method: "directory"
59
+
60
+ # Cursor Agent headless CLI: `cursor agent -p …` (--print). Prompt is positional.
61
+ # Models: run `cursor agent models` (legacy fallback: `cursor agent --list-models`).
62
+ # `auto` lets Cursor route to an available model (quota-friendly); pin to a specific
63
+ # id (e.g. composer-2.5, composer-2.5-fast) for reproducibility.
64
+ cursor:
65
+ command: cursor
66
+ prompt_flag: none
67
+ output_format_flag: "--output-format"
68
+ output_format: "json"
69
+ auto_approve_flag: "--yolo"
70
+ model_flag: "--model"
71
+ default_model: "auto"
72
+ isolation_method: "directory"
73
+
74
+ # Kiro CLI headless: `kiro-cli chat --no-interactive --trust-all-tools [--model …] "<prompt>"`.
75
+ # Models: AWS Bedrock IDs (e.g. anthropic.claude-sonnet-4-5-20251001-v1:0).
76
+ # Use "auto" to let Kiro select the model based on its own configuration.
77
+ kiro:
78
+ command: kiro-cli
79
+ prompt_flag: none
80
+ auto_approve_flag: "--trust-all-tools"
81
+ model_flag: "--model"
82
+ default_model: "auto"
83
+ isolation_method: "directory"
84
+
85
+ # pi headless print mode: `pi [--model …] -p "<prompt>"`.
86
+ # Model accepts any pi model pattern/alias, including thinking suffixes.
87
+ pi:
88
+ command: pi
89
+ prompt_flag: "-p"
90
+ model_flag: "--model"
91
+ default_model: "sonnet:high"
92
+ isolation_method: "directory"
@@ -0,0 +1,232 @@
1
+ # MCP Memory Schema for Multi-Agent Orchestration
2
+
3
+ ## Overview
4
+
5
+ Each subagent writes only to its own dedicated files. The orchestrator manages session-level files. This ownership model prevents write conflicts between concurrent agents.
6
+
7
+ ## Configuration
8
+
9
+ Memory base path and tool names are configurable via `.agents/mcp.json` (not the repo-root `.mcp.json`, which is the Claude Code MCP server config):
10
+ ```json
11
+ {
12
+ "memoryConfig": {
13
+ "basePath": ".agents/state/memories",
14
+ "tools": {
15
+ "read": "Read",
16
+ "write": "Write",
17
+ "edit": "Edit"
18
+ }
19
+ }
20
+ }
21
+ ```
22
+
23
+ Default base path: `.agents/state/memories`
24
+
25
+ ## File Structure
26
+
27
+ ```
28
+ {memoryConfig.basePath}/
29
+ orchestrator-session-{sessionId}.md # Session metadata
30
+ task-board-{sessionId}.md # Master task list
31
+ progress-{agentId}-{taskId}-{runId}-{sessionId}.md # Per-run progress log
32
+
33
+ .agents/results/
34
+ result-{agentId}-{taskId}-{runId}-{sessionId}.md # Per-run final report
35
+ ```
36
+
37
+ > **Path rule**: Resolve coordination notes from the project-root memory base and
38
+ > final reports from the project-root `.agents/results/`, then isolate every
39
+ > artifact by session, task, and run. In monorepos, never choose a
40
+ > subproject memory root. The injected claim path and agent-run receipt keep
41
+ > their structured contract and are not replaced by this report layout.
42
+
43
+ ## orchestrator-session.md
44
+
45
+ Created by the orchestrator at session start. Updated throughout execution.
46
+
47
+ ```markdown
48
+ # Orchestrator Session
49
+ ## ID: session-{YYYYMMDD}-{HHMMSS}
50
+ ## Started: {ISO timestamp}
51
+ ## Status: running | completed | failed | aborted
52
+
53
+ ## Agents
54
+ | Agent ID | CLI | PID | Status | Task |
55
+ |----------|-----|-----|--------|------|
56
+ | backend | gemini | 12345 | running | task-1 |
57
+ | frontend | gemini | 12346 | completed | task-2 |
58
+ | mobile | claude | 12347 | running | task-3 |
59
+
60
+ ## Configuration
61
+ - MAX_PARALLEL: 3
62
+ - MAX_RETRIES: 2
63
+ - POLL_INTERVAL: 30s
64
+
65
+ ## Summary (filled on completion)
66
+ - Total Tasks: X
67
+ - Completed: X
68
+ - Failed: X
69
+ - Files Created: [list]
70
+ - Issues: [list]
71
+ ```
72
+
73
+ ## task-board.md
74
+
75
+ Master task list created by the orchestrator. Subagents read this to understand their assignment but never write to it.
76
+
77
+ `Selected References` and `Selection Reason` are coordinator notes from PHASE
78
+ 1.5 in `SKILL.md`. They explain the task's relevant domain resources and any
79
+ uncertainty. The launcher does not enforce these Markdown fields; supply
80
+ references through the dispatch path's supported context mechanism. A single
81
+ confidently matched skill is sufficient.
82
+
83
+ ```markdown
84
+ # Task Board
85
+ ## Session: session-{YYYYMMDD}-{HHMMSS}
86
+
87
+ ### task-1
88
+ - **Agent**: backend
89
+ - **CLI**: gemini
90
+ - **Title**: JWT authentication API
91
+ - **Status**: pending | in_progress | completed | failed | blocked
92
+ - **Priority**: 1
93
+ - **Dependencies**: none
94
+ - **Selected References**: oma-backend, oma-db
95
+ - **Selection Reason**: API implementation changes the existing data-access boundary
96
+ - **Description**: Implement user registration and login with JWT tokens
97
+ - **Acceptance Criteria**:
98
+ - POST /api/auth/register with email + password
99
+ - POST /api/auth/login returns access + refresh tokens
100
+ - Password hashing with bcrypt
101
+ - Rate limiting on auth endpoints
102
+
103
+ ### task-2
104
+ - **Agent**: frontend
105
+ - **CLI**: gemini
106
+ - **Title**: Login and registration UI
107
+ - **Status**: pending
108
+ - **Priority**: 1
109
+ - **Dependencies**: none
110
+ - **Selected References**: oma-frontend, oma-design
111
+ - **Selection Reason**: Form implementation also requires the project's visual system
112
+ - **Description**: Build login and registration forms with validation
113
+ - **Acceptance Criteria**:
114
+ - Login form with email + password
115
+ - Registration form with validation
116
+ - Error handling for failed auth
117
+ - JWT token storage and auto-refresh
118
+
119
+ ### task-3
120
+ - **Agent**: qa
121
+ - **CLI**: gemini
122
+ - **Title**: Security and performance review
123
+ - **Status**: blocked
124
+ - **Priority**: 2
125
+ - **Dependencies**: task-1, task-2
126
+ - **Selected References**: oma-qa
127
+ - **Selection Reason**: Quality review matches one domain; load implementation references only when needed
128
+ - **Description**: Review all deliverables for security and performance
129
+ - **Acceptance Criteria**:
130
+ - OWASP Top 10 security check
131
+ - Performance benchmarks pass
132
+ - No critical or high severity issues
133
+ ```
134
+
135
+ ## progress-{agentId}-{taskId}-{runId}-{sessionId}.md
136
+
137
+ Each agent creates this file at start and appends entries every 3-5 turns. Only the owning agent writes to this file.
138
+
139
+ ```markdown
140
+ # Progress: backend
141
+ ## Task: task-1
142
+ ## Agent ID: backend
143
+ ## Started: {ISO timestamp}
144
+
145
+ ### Turn 1 - {ISO timestamp}
146
+ - **Action**: Reading task-board.md and understanding requirements
147
+ - **Status**: in_progress
148
+ - **Details**: Identified 4 acceptance criteria for JWT auth API
149
+
150
+ ### Turn 5 - {ISO timestamp}
151
+ - **Action**: Created user model and auth endpoints
152
+ - **Status**: in_progress
153
+ - **Details**: Implemented POST /api/auth/register and /api/auth/login
154
+ - **Files**: app/models/user.py, app/api/auth.py
155
+
156
+ ### Turn 12 - {ISO timestamp}
157
+ - **Action**: Added tests and rate limiting
158
+ - **Status**: in_progress
159
+ - **Details**: 15 test cases passing, rate limiter configured
160
+
161
+ ### Turn 18 - {ISO timestamp}
162
+ - **Action**: All acceptance criteria met
163
+ - **Status**: completed
164
+ - **Summary**: JWT auth API fully implemented with tests
165
+ ```
166
+
167
+ ## result-{agentId}-{taskId}-{runId}-{sessionId}.md
168
+
169
+ Each agent creates `.agents/results/result-{agentId}-{taskId}-{runId}-{sessionId}.md` upon completion (success or failure). Only the owning agent writes to this file. Preserve the injected filename and include the report path in the structured claim. Existing reports under the configured memory base, `.agents/state/memories/`, or `.serena/memories/` remain read fallback until migration; new reports always use `.agents/results/`.
170
+
171
+ ```markdown
172
+ # Result: backend
173
+ ## Task: task-1
174
+ ## Status: completed
175
+ ## Turns Used: 18
176
+
177
+ ## Summary
178
+ Implemented JWT authentication API with user registration, login,
179
+ password hashing (bcrypt), and rate limiting.
180
+
181
+ ## Files Created/Modified
182
+ - `app/models/user.py` (NEW) - User model with password hashing
183
+ - `app/api/auth.py` (NEW) - Auth endpoints
184
+ - `app/middleware/rate_limit.py` (NEW) - Rate limiting middleware
185
+ - `tests/test_auth.py` (NEW) - 15 test cases
186
+ - `alembic/versions/001_create_users.py` (NEW) - Migration
187
+
188
+ ## Acceptance Criteria
189
+ - [x] POST /api/auth/register with email + password
190
+ - [x] POST /api/auth/login returns access + refresh tokens
191
+ - [x] Password hashing with bcrypt
192
+ - [x] Rate limiting on auth endpoints
193
+
194
+ ## Issues Encountered
195
+ - None
196
+
197
+ ## Notes
198
+ - Access token expiry: 15 minutes
199
+ - Refresh token expiry: 7 days
200
+ - Rate limit: 5 requests/minute on login endpoint
201
+ ```
202
+
203
+ ### Failed Result Example
204
+
205
+ ```markdown
206
+ # Result: backend
207
+ ## Task: task-1
208
+ ## Status: failed
209
+ ## Turns Used: 20
210
+
211
+ ## Summary
212
+ Unable to complete JWT auth API. Database connection issues prevented testing.
213
+
214
+ ## Files Created/Modified
215
+ - `app/models/user.py` (NEW) - User model (untested)
216
+ - `app/api/auth.py` (NEW) - Auth endpoints (untested)
217
+
218
+ ## Acceptance Criteria
219
+ - [x] POST /api/auth/register with email + password
220
+ - [x] POST /api/auth/login returns access + refresh tokens
221
+ - [x] Password hashing with bcrypt
222
+ - [ ] Rate limiting on auth endpoints (NOT DONE)
223
+
224
+ ## Issues Encountered
225
+ - PostgreSQL connection refused on localhost:5432
226
+ - Could not run integration tests
227
+ - Rate limiting implementation incomplete due to turn limit
228
+
229
+ ## Notes
230
+ - Needs database running to complete testing
231
+ - Rate limiting code is written but untested
232
+ ```
@@ -0,0 +1,30 @@
1
+ # Subagent Prompt Template
2
+
3
+ Use this template for a bounded task. CLI dispatch injects the owning skill, vendor protocol, execution policy, and result contract; do not duplicate their bodies here.
4
+
5
+ ```markdown
6
+ ## Assignment
7
+ - Agent: {AGENT_ROLE}
8
+ - Task ID: {TASK_ID}
9
+ - Workspace: {WORKSPACE_PATH}
10
+ - Scope: {ALLOWED_PATHS}
11
+
12
+ {TASK_DESCRIPTION}
13
+
14
+ ## Acceptance criteria
15
+ {ACCEPTANCE_CRITERIA}
16
+
17
+ ## Task references
18
+ {RELEVANT_ARTIFACT_PATHS_AND_LOAD_CONDITIONS}
19
+
20
+ ## Material constraints
21
+ {TASK_SPECIFIC_CONSTRAINTS}
22
+
23
+ Use the injected run and claim identity. Preserve other agents' edits. Report necessary changes outside scope for coordination. Apply existing authorization and pause only dependent work when required information is missing.
24
+
25
+ Complete the assigned criteria and relevant checks. If interrupted or unable to finish, save progress, unresolved work, and evidence in the injected result contract. Turn estimates guide checkpoints; they are not completion boundaries.
26
+ ```
27
+
28
+ Use the assigned plan task ID and flat report name `result-{agentId}-{taskId}-{runId}-{sessionId}.md`. A report file supplements the structured claim; it is not proof of completion. Select tests or alternative verification for the task's risk under `_shared/core/test-approach.md`. No fixed Charter block is required.
29
+
30
+ For native dispatch, provide paths to the execution policy, result contract, and owning skill if not already present. Make additional specialist skills available as routes, rather than pasting every skill into the prompt.
@@ -0,0 +1,6 @@
1
+ #!/bin/bash
2
+ # parallel-run.sh - Wrapper for oma agent parallel
3
+ # Usage: ./parallel-run.sh <tasks-file.yaml> [--vendor <vendor>]
4
+ # ./parallel-run.sh --inline "backend:task1" "frontend:task2" ...
5
+
6
+ exec oma agent parallel "$@"
@@ -0,0 +1,5 @@
1
+ #!/bin/bash
2
+ # spawn-agent.sh - Wrapper for oma agent spawn
3
+ # Usage: ./spawn-agent.sh <agent-id> <prompt> <session-id> [-w workspace] [--vendor vendor]
4
+
5
+ exec oma agent spawn "$@"
@@ -0,0 +1,20 @@
1
+ #!/bin/bash
2
+ # verify.sh - Wrapper for oma verify
3
+ # Usage: ./verify.sh <agent-type> [workspace-path]
4
+
5
+ AGENT_TYPE="${1:-}"
6
+ WORKSPACE="${2:-.}"
7
+
8
+ case "$AGENT_TYPE" in
9
+ backend|frontend|mobile|qa|debug|pm) ;;
10
+ db|refactor|architecture|tf-infra|docs)
11
+ echo "SKIP: oma verify does not support agent type '$AGENT_TYPE'; continue with mechanical checks and QA cross-review."
12
+ exit 0
13
+ ;;
14
+ *)
15
+ echo "ERROR: unknown orchestrator agent type '$AGENT_TYPE'" >&2
16
+ exit 2
17
+ ;;
18
+ esac
19
+
20
+ exec oma verify agent "$AGENT_TYPE" --workspace "$WORKSPACE"
@@ -0,0 +1,19 @@
1
+ # Backend SubAgent Task
2
+
3
+ You are a Backend specialist. Focus only on the task below.
4
+
5
+ ## Guidelines
6
+ > Default stack assumptions. Use the owning skill and existing project conventions; these starter defaults do not authorize stack changes.
7
+ - Use FastAPI with async/await
8
+ - SQLAlchemy for database operations
9
+ - Pydantic for validation
10
+ - JWT for authentication
11
+ - Follow REST conventions
12
+ - Include error handling
13
+ - Select risk-relevant tests or an explicit alternative verification
14
+
15
+ ## Output Requirements
16
+ - Implement the requested functionality
17
+ - Create/modify necessary files
18
+ - Add appropriate tests
19
+ - Document API endpoints if created
@@ -0,0 +1,16 @@
1
+ # Debug SubAgent Task
2
+
3
+ You are a Debug specialist. Focus only on fixing the bug below.
4
+
5
+ ## Approach
6
+ 1. Reproduce the issue
7
+ 2. Identify root cause
8
+ 3. Implement fix
9
+ 4. Add regression test
10
+ 5. Document the fix
11
+
12
+ ## Output Requirements
13
+ - Explain the root cause
14
+ - Show before/after code
15
+ - Include regression test
16
+ - List related patterns to check
@@ -0,0 +1,18 @@
1
+ # Frontend SubAgent Task
2
+
3
+ You are a Frontend specialist. Focus only on the task below.
4
+
5
+ ## Guidelines
6
+ > Default stack assumptions. Use the owning skill and existing project conventions; these starter defaults do not authorize stack changes.
7
+ - React with TypeScript
8
+ - TailwindCSS for styling
9
+ - React Query for data fetching
10
+ - Proper loading/error states
11
+ - Accessible components (WCAG 2.2 AA)
12
+ - Mobile-responsive design
13
+
14
+ ## Output Requirements
15
+ - Implement the requested UI/feature
16
+ - Create/modify necessary components
17
+ - Add component tests if appropriate
18
+ - Ensure responsive behavior
@@ -0,0 +1,18 @@
1
+ # Mobile SubAgent Task
2
+
3
+ You are a Mobile specialist. Focus only on the task below.
4
+
5
+ ## Guidelines
6
+ > Default stack assumptions. Use the owning skill and existing project conventions; these starter defaults do not authorize stack changes.
7
+ - Flutter with Dart
8
+ - Clean Architecture (presentation/domain/data)
9
+ - Riverpod for state management
10
+ - Platform-aware UI components
11
+ - Proper navigation handling
12
+ - Offline-first when applicable
13
+
14
+ ## Output Requirements
15
+ - Implement the requested screen/feature
16
+ - Create/modify necessary files
17
+ - Handle both iOS and Android
18
+ - Test on multiple screen sizes
@@ -0,0 +1,16 @@
1
+ # QA SubAgent Task
2
+
3
+ You are a QA specialist. Focus only on the review below.
4
+
5
+ ## Review Checklist
6
+ - Security (OWASP Top 10)
7
+ - Performance (bundle size, API latency)
8
+ - Accessibility (WCAG 2.2 AA)
9
+ - Code quality (complexity, duplication)
10
+ - Test coverage
11
+
12
+ ## Output Requirements
13
+ - List issues found with severity (CRITICAL/HIGH/MEDIUM/LOW)
14
+ - Provide specific file:line references
15
+ - Suggest fixes for each issue
16
+ - Prioritize actionable feedback
@@ -0,0 +1,15 @@
1
+ # Example parallel tasks file
2
+ # Usage: ./parallel-run.sh tasks-example.yaml
3
+
4
+ tasks:
5
+ - agent: backend
6
+ task: "Implement JWT authentication with register and login endpoints"
7
+ workspace: ./backend
8
+
9
+ - agent: frontend
10
+ task: "Create login and registration forms with validation"
11
+ workspace: ./frontend
12
+
13
+ - agent: mobile
14
+ task: "Build authentication screens for iOS and Android"
15
+ workspace: ./mobile
@@ -0,0 +1,162 @@
1
+ ---
2
+ name: oma-pdf
3
+ description: Extract PDF text, headings, tables, and images into Markdown using
4
+ opendataloader-pdf. Use for PDF parsing, not PDF layout creation.
5
+ ---
6
+
7
+ # PDF Skill - PDF to Markdown Conversion
8
+
9
+ ## Scheduling
10
+
11
+ ### Goal
12
+ Convert PDF files into structured Markdown or another requested extraction format while preserving readable document structure for LLM context, RAG, or downstream review.
13
+
14
+ ### Intent signature
15
+ - User asks to convert, parse, read, extract, or transform a PDF.
16
+ - User needs PDF text, headings, lists, tables, or images prepared for AI consumption.
17
+ - User mentions "PDF to markdown", "parse PDF", "read this PDF", or equivalent wording.
18
+
19
+ ### When to use
20
+ - Converting PDF documents to Markdown for LLM context or RAG
21
+ - Extracting structured content such as tables, headings, lists, images, footnotes, or hyperlinks
22
+ - Preparing PDF data for AI consumption
23
+ - Checking whether a PDF has a text layer before choosing OCR
24
+
25
+ ### When NOT to use
26
+ - Generating or creating PDFs -> use document-generation tools
27
+ - Editing existing PDFs -> out of scope
28
+ - Reading an already-text file -> use direct file reading
29
+ - Processing HWP, HWPX, DOCX, XLSX, or slide decks -> use the matching document skill
30
+
31
+ ### Expected inputs
32
+ - `input_path`: PDF file or folder path
33
+ - `output_dir`: optional target directory
34
+ - `format`: optional output format, default `markdown`
35
+ - `ocr_languages`: optional OCR language list for scanned or image-based PDFs
36
+ - `extraction_options`: optional flags for tagged structure, image extraction, or hybrid conversion
37
+
38
+ ### Expected outputs
39
+ - Markdown, text, JSON, HTML, or combined extraction output
40
+ - Normalized Markdown when Markdown is produced
41
+ - A short report with output path, page count, and conversion issues
42
+
43
+ ### Dependencies
44
+ - `uvx opendataloader-pdf` for standard conversion
45
+ - `uvx --from "opendataloader-pdf[hybrid]" opendataloader-pdf-hybrid` for OCR or hybrid conversion (the hybrid server is a console script of the `[hybrid]` extra, not a standalone package)
46
+ - `uvx mdformat` for Markdown normalization
47
+ - Local filesystem access to input and output paths
48
+ - Optional OCR runtime via the hybrid server
49
+
50
+ ### Control-flow features
51
+ - Branches on text-layer quality, tagged PDF availability, scan/OCR needs, and user-requested output format
52
+ - Calls external CLI tools through `uvx`
53
+ - Reads local files and writes local extraction outputs
54
+ - Uses a hybrid server only when OCR or complex extraction needs justify it
55
+
56
+ ## Structural Flow
57
+
58
+ ### Entry
59
+ 1. Confirm that the input path exists and is a PDF file, PDF folder, or supported batch input.
60
+ 2. Check file size and warn when the input is large enough to risk slow conversion or memory pressure.
61
+ 3. Resolve `output_dir` and the expected output filename.
62
+
63
+ ### Scenes
64
+ 1. **PREPARE**: Validate the input path, output target, and requested extraction options.
65
+ 2. **ACQUIRE**: Assess whether the PDF has a readable text layer by extracting a text preview.
66
+ 3. **ACT**: Convert using standard mode, tagged-structure mode, or hybrid OCR mode.
67
+ 4. **VERIFY**: Run `mdformat` for Markdown output and inspect the result for readable structure.
68
+ 5. **FINALIZE**: Report output path, page count, format, and any extraction quality issues.
69
+
70
+ ### Transitions
71
+ - If the preview text is readable, use standard conversion.
72
+ - If the PDF is tagged and standard output is garbled, retry with `--use-struct-tree`.
73
+ - If tables are missing or broken, retry with `--table-method cluster` or `--markdown-with-html` before escalating to hybrid mode.
74
+ - If the PDF is scanned or image-based, start or reuse the hybrid OCR server and convert with hybrid mode.
75
+ - If conversion fails because the PDF is encrypted, stop and ask for the password or an unlocked copy.
76
+ - If conversion hits memory or size limits, process smaller page ranges into distinct output directories (or append `--to-stdout`) so repeated runs do not overwrite the same basename.
77
+
78
+ ### Failure and recovery
79
+ | Failure | Recovery |
80
+ |---------|----------|
81
+ | `uvx` unavailable | Ask user to install `uv` before conversion |
82
+ | `opendataloader-pdf-hybrid` not found | Invoke via `uvx --from "opendataloader-pdf[hybrid]" opendataloader-pdf-hybrid`; the bare package name does not exist on PyPI |
83
+ | Password-protected PDF | Ask for password or unlocked PDF |
84
+ | Garbled output | Retry with tagged structure or hybrid mode |
85
+ | Missing tables | Retry with `--table-method cluster` or `--markdown-with-html` first; hybrid mode for scanned tables |
86
+ | OCR language mismatch | Retry with explicit OCR languages, for example `ko,en` |
87
+ | Large file or memory pressure | Split into page ranges using distinct output directories or `--to-stdout`; never reuse one output directory for the same basename |
88
+
89
+ ### Exit
90
+ - Success: output file exists, Markdown is formatted when applicable, and extracted structure is readable.
91
+ - Partial success: output exists but quality issues are reported explicitly.
92
+ - Failure: no reliable output is produced and the blocking cause is reported.
93
+
94
+ ## Logical Operations
95
+
96
+ ### Actions
97
+ | Action | SSL primitive | Evidence |
98
+ |--------|---------------|----------|
99
+ | Validate path and options | `VALIDATE` | Input preflight in execution protocol |
100
+ | Probe text layer | `READ` | Text preview extraction |
101
+ | Choose conversion strategy | `SELECT` | Standard, tagged, or hybrid mode decision |
102
+ | Run converter | `CALL_TOOL` | `uvx opendataloader-pdf` |
103
+ | Start OCR server | `CALL_TOOL` | `uvx --from "opendataloader-pdf[hybrid]" opendataloader-pdf-hybrid` |
104
+ | Write output artifact | `WRITE` | Markdown, text, JSON, or HTML output |
105
+ | Normalize Markdown | `CALL_TOOL` | `uvx mdformat` |
106
+ | Inspect extraction quality | `VALIDATE` | Structure/readability verification |
107
+ | Report result | `NOTIFY` | Final user-facing summary |
108
+
109
+ ### Tools and instruments
110
+ - `opendataloader-pdf`: primary PDF extraction CLI
111
+ - `opendataloader-pdf-hybrid`: hybrid OCR and complex extraction path
112
+ - `mdformat`: Markdown normalization
113
+ - Filesystem commands such as `file`, `wc`, or `pdfinfo` may be used for preflight when available
114
+
115
+ ### Canonical command path
116
+ ```bash
117
+ uvx opendataloader-pdf "{input_path}" -f text --pages 1-3 --to-stdout -q # text-layer probe (no temp files)
118
+ uvx opendataloader-pdf "{input_path}" --format markdown --output-dir "{output_dir}"
119
+ uvx mdformat "{output_path}"
120
+ ```
121
+
122
+ For scanned/image-based PDFs, start OCR first and then convert through hybrid mode:
123
+ ```bash
124
+ uvx --from "opendataloader-pdf[hybrid]" opendataloader-pdf-hybrid --port 5002 --force-ocr --ocr-lang "{languages}"
125
+ uvx opendataloader-pdf --hybrid docling-fast --hybrid-mode full "{input_path}" --format markdown --output-dir "{output_dir}"
126
+ ```
127
+
128
+ On-request flags — `--sanitize` (PII masking), `--pages` (range extraction), `--threads` (parallel pages), `--detect-strikethrough`, hybrid `--enrich-formula` / `--enrich-picture-description` — are detailed in `resources/execution-protocol.md`. The two enrichment flags require client-side `--hybrid-mode full`.
129
+
130
+ ### Resource scope
131
+ | Scope | Resource target |
132
+ |-------|-----------------|
133
+ | `LOCAL_FS` | Input PDFs and generated output files |
134
+ | `PROCESS` | `uvx` subprocesses and optional hybrid server |
135
+ | `MEMORY` | Extracted previews and validation notes |
136
+ | `OTHER` | OCR model/runtime behavior inside hybrid mode |
137
+
138
+ ### Preconditions
139
+ - The input PDF path exists and is readable.
140
+ - The output location is writable or can be created.
141
+ - Required CLIs are available through `uvx`.
142
+ - OCR is only attempted when hybrid mode is available or can be started.
143
+ - Defaults come from the `pdf:` section of `.agents/oma-config.yaml`, falling back to `config/pdf-config.yaml` for unset keys; explicit user options override both, and `output.overwrite: false` requires confirmation before replacing an existing output file.
144
+
145
+ ### Effects and side effects
146
+ - Creates or overwrites extraction output depending on configuration and user intent.
147
+ - May start a local hybrid OCR server on the configured port.
148
+ - May consume significant CPU, memory, or time for large or scanned PDFs.
149
+ - Does not intentionally modify the source PDF.
150
+
151
+ ### Guardrails
152
+ 1. Do not invent missing content when extraction is incomplete.
153
+ 2. Always report garbled text, missing tables, OCR uncertainty, or partial extraction.
154
+ 3. Prefer standard conversion first when the text layer is readable.
155
+ 4. Use OCR only when the PDF is scanned, image-based, or standard extraction quality is insufficient.
156
+ 5. Keep detailed command sequences in `resources/execution-protocol.md` rather than duplicating every variant here.
157
+
158
+ ## References
159
+ - Execution protocol: `resources/execution-protocol.md`
160
+ - Configuration: read the `pdf:` section of `.agents/oma-config.yaml` first, then fall back to `config/pdf-config.yaml` for any key it does not set. User overrides belong in `.agents/oma-config.yaml`, since `oma update` overwrites the skill config.
161
+ - Context loading: `../_shared/core/context-loading.md`
162
+ - Quality principles: `../_shared/core/quality-principles.md`