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,276 @@
1
+ ---
2
+ name: oma-scholar
3
+ description: Search academic literature and generate, validate, or compare Knows
4
+ paper sidecars. Use for claim/evidence analysis and literature synthesis.
5
+ ---
6
+
7
+ # Scholar - Research Paper Sidecar Companion
8
+
9
+ ## Scheduling
10
+
11
+ ### Goal
12
+ Search, fetch, generate, validate, analyze, review, and compare scholarly paper sidecars using the Knows `.knows.yaml` spec for token-efficient research workflows.
13
+
14
+ ### Intent signature
15
+ - User asks for academic literature search, sidecar generation, sidecar validation, paper claims/evidence summary, structural paper comparison, or peer review as sidecar.
16
+ - User references Knows, `.knows.yaml`, knows.academy, OpenAlex, claims, evidence, relations, or paper sidecars.
17
+
18
+ ### When to use
19
+
20
+ - Reading research papers token-efficiently via Knows sidecars (~700 tokens for claims-only vs ~10K for full PDF)
21
+ - Generating `.knows.yaml` sidecars from your own paper drafts, LaTeX, or research notes
22
+ - Validating sidecar structure (rule-based) before sharing
23
+ - Producing peer reviews as sidecars
24
+ - Querying or summarizing existing sidecars
25
+ - Structurally comparing two papers (claims, methods, evidence)
26
+ - Searching/fetching sidecars from `knows.academy` (2026 papers only; current counts via `/api/proxy/jobs/stats`)
27
+
28
+ ### When NOT to use
29
+
30
+ - General web search or non-academic content -> use `oma-search`
31
+ - Translating papers -> use `oma-translation`
32
+ - PDF parsing only (no sidecar) -> use `oma-pdf`
33
+ - Submitting sidecars back to knows.academy -> out of scope (host LLM only consumes/produces locally)
34
+ - Full peer-review workflow with editor system -> out of scope
35
+
36
+ ### Expected inputs
37
+ - Paper, abstract, draft, LaTeX, research notes, sidecar file, DOI, OpenAlex ID, Knows record ID, or search query
38
+ - Desired mode: generate, validate, review, analyze, compare, or remote fetch
39
+ - Optional strictness, section filter, or CI behavior
40
+
41
+ ### Expected outputs
42
+ - `.knows.yaml` sidecar, review sidecar, lint report, search/fetch result, natural-language analysis, or structural comparison
43
+ - Sidecars conforming to v0.9.0 / `paper@1` profile
44
+ - Validation status and warnings before sharing generated sidecars
45
+
46
+ ### Dependencies
47
+ - `oma scholar` CLI subcommands
48
+ - knows.academy public API; OpenAlex and Semantic Scholar fallbacks
49
+ - `resources/sidecar-spec.md`, API endpoints, OpenAlex setup, upstream cache, checklist, and execution protocol
50
+
51
+ ### Control-flow features
52
+ - Branches by mode, source availability, Knows/OpenAlex coverage, strict vs lenient validation, and fetched section
53
+ - Reads/writes YAML sidecars and may call public APIs
54
+ - Avoids fabrication when source evidence is missing
55
+
56
+ ## Structural Flow
57
+
58
+ ### Entry
59
+ 1. Identify mode and source artifact/query.
60
+ 2. Resolve paper identity through Knows or OpenAlex when needed.
61
+ 3. Load sidecar spec and mode-specific protocol.
62
+
63
+ ### Scenes
64
+ 1. **PREPARE**: Select mode and gather source or remote identifiers.
65
+ 2. **ACQUIRE**: Fetch paper metadata, sidecar sections, or local source text.
66
+ 3. **REASON**: Extract claims, evidence, relations, provenance, or comparison structure.
67
+ 4. **ACT**: Generate, lint, review, analyze, compare, or fetch sidecar data.
68
+ 5. **VERIFY**: Check the supported local contract, IDs, relations, and provenance; report lint limitations. Full canonical conformance requires the exact schema validator.
69
+ 6. **FINALIZE**: Return sidecar, report, summary, or comparison with caveats.
70
+
71
+ ### Transitions
72
+ - If knows.academy lacks the paper, fall back to OpenAlex metadata/abstract.
73
+ - If generating a sidecar, run lint before sharing.
74
+ - If consuming third-party sidecars with dangling references, use lenient mode when appropriate.
75
+ - If source evidence is absent, omit fields instead of guessing.
76
+
77
+ ### Failure and recovery
78
+ - If remote API times out, retry or use OpenAlex fallback.
79
+ - If YAML fails parsing, fix indentation and scalar types.
80
+ - If relation density or orphan statements warn, review coverage and type-appropriate links. Preserve source-anchored questions/definitions; never add unsupported relations to satisfy a quota.
81
+
82
+ ### Exit
83
+ - Success: requested sidecar operation completes with validation status.
84
+ - Partial success: missing metadata, fallback source, or validation warnings are explicit.
85
+
86
+ ## Logical Operations
87
+
88
+ ### Actions
89
+ | Action | SSL primitive | Evidence |
90
+ |--------|---------------|----------|
91
+ | Select mode | `SELECT` | Generate/Validate/Review/Analyze/Compare/Remote |
92
+ | Read paper or sidecar | `READ` | Source files or YAML |
93
+ | Request remote data | `REQUEST` | Knows/OpenAlex APIs |
94
+ | Infer claims/evidence/relations | `INFER` | Sidecar generation/analysis |
95
+ | Write sidecar | `WRITE` | `.knows.yaml` outputs |
96
+ | Validate sidecar | `VALIDATE` | `oma scholar lint` |
97
+ | Report result | `NOTIFY` | Summary or lint report |
98
+
99
+ ### Tools and instruments
100
+ - `oma scholar search|resolve|get|lint`
101
+ - Knows public API, OpenAlex fallback, sidecar spec, checklist
102
+
103
+ ### Canonical command path
104
+ ```bash
105
+ oma scholar search "<query>"
106
+ oma scholar resolve "<title-or-doi>"
107
+ oma scholar get "<record-id-or-doi>"
108
+ oma scholar lint "<paper.knows.yaml>"
109
+ ```
110
+
111
+ ### Resource scope
112
+ | Scope | Resource target |
113
+ |-------|-----------------|
114
+ | `LOCAL_FS` | Paper drafts, sidecar YAML, review sidecars |
115
+ | `NETWORK` | knows.academy and OpenAlex APIs |
116
+ | `PROCESS` | `oma scholar` CLI and lint |
117
+ | `USER_DATA` | User-provided paper content and research notes |
118
+
119
+ ### Preconditions
120
+ - Mode and source are identifiable.
121
+ - Spec rules are available for generation or validation.
122
+
123
+ ### Effects and side effects
124
+ - May create local sidecar or review sidecar files.
125
+ - May query public scholarly APIs.
126
+ - Does not submit sidecars back to knows.academy.
127
+
128
+ ### Guardrails
129
+
130
+ 1. **Local generation targets v0.9.0 production compatibility / `paper@1`** (review sidecars use `review@1`). This is narrower than complete canonical schema conformance; see `resources/sidecar-spec.md`.
131
+ 2. **Host LLM generates sidecars**: never shell out to `anthropic` SDK or external LLM CLI; this skill runs inside an agent
132
+ 3. **Anti-fabrication**: if DOI/venue/year is not visible in source, **omit the key entirely**; never write `doi: TODO` or guess
133
+ 4. **Top-level metadata**: `title`, `authors`, `venue`, `year` live at the top level (no `metadata` wrapper)
134
+ 5. **Field names are exact**: `statement_type`, `evidence_type`, `predicate`, `artifact_type` (not `type`/`claim`)
135
+ 6. **Provenance has SINGLE actor**: `provenance.actor` is one object, NOT a `provenance.actors` array
136
+ 7. **Confidence is an object**: `{claim_strength: ..., extraction_fidelity: ...}`, both from `high|medium|low`
137
+ 8. **Coverage is an object**: `coverage.statements` (4-value enum) + `coverage.evidence` (3-value enum)
138
+ 9. **Closed enums**: actor `tool|person|org` (never `ai`/`llm`/`model`); artifact role `subject|supporting|cited`; predicates in present tense
139
+ 10. **Numbers unquoted**: `value: 22`, never `value: '22'`
140
+ 11. **Relation coverage**: review the local ratio/orphan warnings; add only source-supported, type-appropriate relations. Claims with evidence use `supported_by`; definitions and open questions can remain source-anchored. A ratio of 1.5 is diagnostic, not a graph-padding quota.
141
+ 12. **ID format**: descriptive kebab-case with prefix: `stmt:privacy-budget-tradeoff`, `ev:cifar10-accuracy-table`, `art:paper`
142
+ 13. **Validate before sharing**: run `oma scholar lint` after Generate and Review; cross-record refs (`record_id#local_id`) in review sidecars are recognized and not flagged as dangling
143
+ 14. **Remote API has no auth**: `https://knows.academy/api/proxy/*` is public; do not invent auth headers
144
+ 15. **Partial fetch param is `section` (singular)**: fixed enum `statements|evidence|relations|artifacts|citation`
145
+ 16. **Fallback API keys are optional**: `OPENALEX_API_KEY` (metadata enrichment) and `S2_API_KEY` (Semantic Scholar dedicated rate limit) both improve throughput but the cascade degrades gracefully without them
146
+ 17. **Sidecar content stays English**: schema fields, IDs, statement text follow upstream convention; user-facing responses follow `oma-config.yaml` `language`
147
+ 18. **Contract scope**: local generation rules and lint track production compatibility, not the complete canonical v0.9 schema. Preserve canonical imported shapes and report local-lint incompatibilities. Do not claim full schema compliance or add `$schema` without validation against that exact schema; see `resources/upstream-spec-cache.md`.
148
+
149
+ ### Modes
150
+
151
+ | Mode | Trigger | Output |
152
+ |------|---------|--------|
153
+ | **Generate** | "create sidecar from this paper / abstract / draft", "generate `.knows.yaml`" | `{paper}.knows.yaml` (host LLM emits, then `oma scholar lint` validates) |
154
+ | **Validate** | "lint this sidecar", "validate `.knows.yaml`" | Pass/fail report with file:line issues |
155
+ | **Review** | "peer review this paper as sidecar" | `{paper}.review.knows.yaml` |
156
+ | **Analyze** | "summarize this sidecar", "what claims does it make?" | Natural-language answer |
157
+ | **Compare** | "compare paper A and paper B structurally" | Diff table (claims/methods/evidence) |
158
+ | **Remote** | "find papers on X", "fetch sidecar :id", "get claims only for :id" | Search results / sidecar payload |
159
+
160
+ ### Provider Fallback (knows.academy → OpenAlex → Semantic Scholar)
161
+
162
+ `knows.academy` currently indexes **only 2026 papers** (mostly arXiv). For
163
+ older or non-2026 papers (Transformer 2017, BERT 2018, classics, journals),
164
+ the skill automatically falls back to **OpenAlex** for metadata and abstract,
165
+ then to **Semantic Scholar** (AI TL;DR, citation + influential-citation
166
+ counts) when OpenAlex also has nothing. See `resources/fallback-providers.md`.
167
+
168
+ Use the `oma scholar` CLI subcommands:
169
+
170
+ ```bash
171
+ # Hybrid search: knows first, OpenAlex fallback
172
+ oma scholar search "vision language action"
173
+
174
+ # Cross-source resolve: figures out which source has the right paper
175
+ oma scholar resolve "Attention Is All You Need"
176
+
177
+ # Get by id (knows record_id, OpenAlex W-id, DOI, arXiv:<id>, CorpusId:<n>)
178
+ oma scholar get "10.48550/arXiv.1706.03762"
179
+ ```
180
+
181
+ When OpenAlex returns the answer (knows.academy lacks the paper), use the
182
+ returned abstract as input to **Mode 1 Generate** to produce a local sidecar.
183
+
184
+ ### Quick Reference
185
+
186
+ #### Search (knows + auto OpenAlex fallback)
187
+ ```bash
188
+ oma scholar search "diffusion super resolution"
189
+ oma scholar search --year-min 2024 "vision language action"
190
+ ```
191
+
192
+ #### Find one specific paper
193
+ ```bash
194
+ oma scholar resolve "Attention Is All You Need"
195
+ # returns top hit from each source + recommendation
196
+ ```
197
+
198
+ #### Fetch a sidecar or work
199
+ ```bash
200
+ # knows.academy full sidecar
201
+ oma scholar get "knows:generated/reconvla/1.0.0"
202
+
203
+ # Partial fetch (claims only, ~700 tokens, 93% reduction vs PDF)
204
+ oma scholar get --section statements "knows:generated/reconvla/1.0.0"
205
+
206
+ # By DOI or OpenAlex W-id (works regardless of knows.academy availability)
207
+ oma scholar get "10.48550/arXiv.1706.03762"
208
+
209
+ # Semantic Scholar: AI TL;DR + citation/influential-citation counts
210
+ oma scholar get "arXiv:1706.03762"
211
+ ```
212
+
213
+ When knows.academy is unreachable, `get knows:...` automatically falls back
214
+ to OpenAlex by extracting the slug from the record_id. The result is marked
215
+ with `fallback: "openalex"` and contains metadata + abstract, useful for
216
+ running Mode 1 Generate locally.
217
+
218
+ #### Validate
219
+ ```bash
220
+ # Strict mode for own Generate output (default)
221
+ oma scholar lint paper.knows.yaml
222
+
223
+ # Lenient mode for third-party / fetched sidecars
224
+ oma scholar lint --lenient remote.knows.yaml
225
+
226
+ # Treat warnings as failures (CI mode)
227
+ oma scholar lint --fail-on-warning paper.knows.yaml
228
+ ```
229
+
230
+ About **47% of knows.academy-served sidecars contain at least one dangling
231
+ cross-reference** (typo in `subject_ref`/`object_ref`, measured across 15
232
+ production samples). Use `--lenient` when consuming third-party records so
233
+ these surface as warnings rather than blocking errors.
234
+
235
+ #### Raw API (when CLI is unavailable)
236
+ ```bash
237
+ curl -s "https://knows.academy/api/proxy/search?q=..."
238
+ curl -s "https://knows.academy/api/proxy/sidecars/<encoded-id>"
239
+ curl -s "https://knows.academy/api/proxy/partial?record_id=<id>&section=statements"
240
+ curl -s "https://knows.academy/api/proxy/jobs/stats" # platform health
241
+ ```
242
+
243
+ ### Configuration
244
+
245
+ Project-specific settings: `config/scholar-config.yaml`. One key is user-tunable and lives elsewhere — read `scholar.base_url` from `.agents/oma-config.yaml` first and fall back to `api.base_url` in the skill config. Everything else there (endpoint paths, timeouts, id prefixes, lint rules) is protocol shape, not preference.
246
+
247
+ ### Troubleshooting
248
+
249
+ | Issue | Solution |
250
+ |-------|----------|
251
+ | `[ERROR] *.value: numeric value '22' is quoted` | Remove quotes: `value: '22'` -> `value: 22` |
252
+ | `[ERROR] provenance.actor.type: 'ai' is not allowed` | Change to `tool`, `person`, or `org` |
253
+ | `[ERROR] *.type: use \`statement_type\` instead of \`type\`` | Rename `type` -> `statement_type` (or `evidence_type`/`predicate`/`artifact_type`) |
254
+ | `[ERROR] provenance.actors: v0.9 spec uses singular \`actor\`` | Replace `actors: [{...}]` array with `actor: {...}` object |
255
+ | `[ERROR] *.object_ref: reference 'X' does not match any defined id` | Fix the `subject_ref`/`object_ref` to point to a real id, OR use `--lenient` if consuming third-party data (cross-record `record_id#local_id` refs are recognized and never flagged) |
256
+ | `[WARN] relations: avg relations/statement is N.NN (target ≥ 1.5)` | Review coverage; add only supported, type-appropriate links, never pad the graph |
257
+ | `[WARN] statements: only N statements; most papers warrant ≥ 8` | Expected when generating from abstract only; full-paper Generate should hit 15+ |
258
+ | `[WARN] *.predicate: past-tense '...' is suspicious` | Switch to present tense (`evaluated_on` -> `evaluates_on`) |
259
+ | Remote API returns empty results | Try broader query; check `/api/proxy/jobs/stats`; CLI auto-falls-back to OpenAlex |
260
+ | `knows.academy search failed: fetch failed` (stderr) | Platform timeout; fallback to OpenAlex is automatic; retry later for sidecars |
261
+ | OpenAlex 403/429 | Set `OPENALEX_API_KEY` (see `resources/setup-openalex.md`) |
262
+ | `semanticscholar error: HTTP 429` (stderr) | Anonymous pool throttled; CLI retries once then skips the source. Set `S2_API_KEY` (free form at semanticscholar.org/product/api) for a dedicated limit |
263
+ | YAML won't parse | Check indentation; numbers/booleans must be unquoted; strings with `:` need quotes |
264
+
265
+ ## References
266
+
267
+ - Execution steps (follow for the selected task): `resources/execution-protocol.md`
268
+ - Sidecar spec rules: `resources/sidecar-spec.md`
269
+ - API endpoints: `resources/api-endpoints.md`
270
+ - OpenAlex setup: `resources/setup-openalex.md`
271
+ - Upstream spec snapshot: `resources/upstream-spec-cache.md`
272
+ - Post-generation checklist: `resources/checklist.md`
273
+ - CLI subcommands: `oma scholar search|resolve|get|lint` (implementation under `cli/commands/scholar/`)
274
+ - Context loading: `../_shared/core/context-loading.md`
275
+ - Quality principles: `../_shared/core/quality-principles.md`
276
+ - i18n rules: `../../rules/i18n-guide.md`
@@ -0,0 +1,79 @@
1
+ # oma-scholar configuration
2
+ # Knows sidecar generation and remote access settings
3
+
4
+ # Remote API
5
+ # `base_url` is the one user-tunable key here (self-hosted knows instances).
6
+ # Set it as `scholar.base_url` in .agents/oma-config.yaml, which wins and which
7
+ # `oma update` preserves — this file is overwritten and supplies only the
8
+ # shipped default. Everything else below is protocol shape.
9
+ api:
10
+ base_url: https://knows.academy
11
+ endpoints:
12
+ search: /api/proxy/search
13
+ sidecar: /api/proxy/sidecars/{record_id}
14
+ partial: /api/proxy/partial
15
+ stats: /api/proxy/jobs/stats
16
+ # No auth required for proxy endpoints
17
+ timeout_seconds: 30
18
+
19
+ # Partial-fetch defaults: fields you can request individually
20
+ # (must match `oma scholar get --section` enum; methods/provenance are NOT
21
+ # available via partial fetch — fetch the full sidecar for those)
22
+ partial_fields:
23
+ available:
24
+ - statements
25
+ - evidence
26
+ - relations
27
+ - artifacts
28
+ - citation
29
+ default_for_summary:
30
+ - statements
31
+ - citation
32
+
33
+ # Semantic Scholar fallback (optional key)
34
+ # Tier-3 search fallback + `get arXiv:<id>` / `CorpusId:<n>` direct fetch.
35
+ # Anonymous use shares a global pool (429s under load; CLI retries once).
36
+ semanticscholar:
37
+ env_var: S2_API_KEY # sent as x-api-key header
38
+ key_request_url: https://www.semanticscholar.org/product/api
39
+
40
+ # OpenAlex metadata enrichment (optional)
41
+ # Used during Generate mode to backfill DOI/venue/year when missing
42
+ openalex:
43
+ enabled_when_key_present: true
44
+ env_var: OPENALEX_API_KEY
45
+ # Polite-pool email also accepted for higher anonymous rate limits
46
+ polite_pool_env_var: OPENALEX_EMAIL
47
+ signup_url: https://openalex.org/
48
+ settings_url: https://openalex.org/settings/api
49
+ # Free daily allowance (no key): $1 value, ~10K list calls, ~1K search calls
50
+
51
+ # Sidecar generation defaults
52
+ generation:
53
+ # Minimum number of statements before warning user about under-extraction
54
+ min_statements_complex_paper: 15
55
+ # Average relations per statement (relation wiring quality threshold)
56
+ min_relations_per_statement: 1.5
57
+ # ID format
58
+ # Methods are statements (statement_type: method) and use "stmt:"; actors have no ids
59
+ id_prefixes:
60
+ statement: "stmt:"
61
+ evidence: "ev:"
62
+ relation: "rel:"
63
+ artifact: "art:"
64
+ representation: "rep:"
65
+
66
+ # Output behavior
67
+ output:
68
+ # When no output path is specified:
69
+ # "same_dir" = output next to the input source file
70
+ # "cwd" = output in current working directory
71
+ default_location: same_dir
72
+ filename_pattern: "{base}.knows.yaml"
73
+ review_filename_pattern: "{base}.review.knows.yaml"
74
+ overwrite: false # Prompt before overwriting existing files
75
+
76
+ # Lint behavior
77
+ lint:
78
+ command: "oma scholar lint"
79
+ fail_on_warning: false
@@ -0,0 +1,174 @@
1
+ # knows.academy API Endpoints
2
+
3
+ Base URL: `https://knows.academy`
4
+
5
+ All endpoints are public proxies. **No authentication required**, so do not invent or send `Authorization` headers.
6
+
7
+ ## Search
8
+
9
+ ```
10
+ GET /api/proxy/search?q={query}
11
+ GET /api/proxy/search?q={query}&discipline={field}
12
+ ```
13
+
14
+ ```bash
15
+ curl -s "https://knows.academy/api/proxy/search?q=diffusion+super+resolution"
16
+ ```
17
+
18
+ Response shape (verified):
19
+ ```json
20
+ {
21
+ "results": [
22
+ {
23
+ "record_id": "knows:generated/{slug}/{version}",
24
+ "profile": "paper@1",
25
+ "title": "...",
26
+ "summary": "...",
27
+ "venue": "...",
28
+ "year": 2026,
29
+ "discipline": null,
30
+ "keywords": [],
31
+ "coverage_statements": "exhaustive",
32
+ "coverage_evidence": "key_evidence_only",
33
+ "provenance_origin": "machine",
34
+ "provenance_actor_name": "knows-gen",
35
+ "version_record": "1.0.0",
36
+ "lint_passed": true,
37
+ "download_count": 0,
38
+ "created_at": "...",
39
+ "stats": {...}
40
+ }
41
+ ]
42
+ }
43
+ ```
44
+
45
+ `record_id` format: `knows:generated/{slug}/{version}` includes colons and slashes that **must be URL-encoded** when used as a path/query param.
46
+
47
+ ## Fetch Full Sidecar
48
+
49
+ ```
50
+ GET /api/proxy/sidecars/{record_id}
51
+ ```
52
+
53
+ The full v0.9.0 record (~22 KB / ~4.5K tokens, 55% smaller than the source PDF).
54
+
55
+ ```bash
56
+ RID=$(python3 -c "import urllib.parse; print(urllib.parse.quote('knows:generated/{slug}/1.0.0', safe=''))")
57
+ curl -s "https://knows.academy/api/proxy/sidecars/${RID}"
58
+ ```
59
+
60
+ ## Partial Fetch (Token-Saving)
61
+
62
+ ```
63
+ GET /api/proxy/partial?record_id={id}&section={one_of}
64
+ ```
65
+
66
+ Note: parameter is **`section` (singular)**, value must match `^(statements|evidence|relations|artifacts|citation)$`.
67
+
68
+ Available sections (verified):
69
+ - `statements` (typically ~700 tokens, 93% reduction vs full PDF)
70
+ - `evidence`
71
+ - `relations`
72
+ - `artifacts`
73
+ - `citation`
74
+
75
+ **Not available** via partial fetch: `methods` (statement_type), `provenance`. Fetch the full sidecar instead.
76
+
77
+ ```bash
78
+ RID=$(python3 -c "import urllib.parse; print(urllib.parse.quote('knows:generated/{slug}/1.0.0', safe=''))")
79
+
80
+ # Just the claims
81
+ curl -s "https://knows.academy/api/proxy/partial?record_id=${RID}&section=statements"
82
+
83
+ # Evidence only
84
+ curl -s "https://knows.academy/api/proxy/partial?record_id=${RID}&section=evidence"
85
+ ```
86
+
87
+ Response shape:
88
+ ```json
89
+ {
90
+ "record_id": "...",
91
+ "items": [...]
92
+ }
93
+ ```
94
+
95
+ **When to use partial vs full:**
96
+ - "What claims does this paper make?" -> `section=statements` only
97
+ - "What experiments?" -> `section=evidence`
98
+ - "What does it cite?" -> `section=citation` (or `section=artifacts` filtered by `role: cited`)
99
+ - Multi-section analysis -> fetch full sidecar (cheaper than 3 partial calls)
100
+
101
+ ## Platform Stats
102
+
103
+ ```
104
+ GET /api/proxy/jobs/stats
105
+ ```
106
+
107
+ ```bash
108
+ curl -s "https://knows.academy/api/proxy/jobs/stats"
109
+ ```
110
+
111
+ Returns processing queue health (response shape verified; values are a point-in-time example):
112
+ ```json
113
+ {
114
+ "pending": 10735,
115
+ "running": 288,
116
+ "completed": 37897,
117
+ "failed": 1243,
118
+ "skipped": 433,
119
+ "total": 50596
120
+ }
121
+ ```
122
+
123
+ Use this for:
124
+ - Health check before bulk operations
125
+ - Estimating coverage ("how many papers are in the index?")
126
+ - Diagnosing slow responses
127
+
128
+ ## Skill Self-Description
129
+
130
+ ```
131
+ GET /api/proxy/skill/knows.md
132
+ ```
133
+
134
+ The canonical generation guide (natural language, slightly different from the JSON Schema). Refresh `upstream-spec-cache.md` from here.
135
+
136
+ ## JSON Schema (Reference)
137
+
138
+ Schema id used by sidecars: `https://knows.dev/schema/record-0.9.json`
139
+
140
+ Fetch the schema at this ID when canonical validation is required. If that fetch fails during the run, record the error and use `upstream-spec-cache.md` and `sidecar-spec.md` for local compatibility checks. A successful `oma scholar lint` result does not validate the complete canonical JSON Schema. For failed sidecar/API requests, follow the Error Handling table below and the existing cascade in `fallback-providers.md`.
141
+
142
+ ## Rate Limiting
143
+
144
+ No hard limits documented. Be polite:
145
+ - Avoid bursting more than ~10 req/sec
146
+ - Cache responses locally for repeated queries within a session
147
+ - Prefer partial fetch over full when possible
148
+
149
+ ## Error Handling
150
+
151
+ | Status | Meaning | Recovery |
152
+ |--------|---------|----------|
153
+ | 404 | record_id not found | Verify ID via `/search`; the record may not be sidecared yet |
154
+ | 422 | Validation error (bad params) | Check `section` value against the allowed enum |
155
+ | 5xx | Platform issue | Retry once; check `/jobs/stats` |
156
+ | Timeout | Network / slow response | Retry with longer timeout; fall back to local sidecar if cached |
157
+
158
+ ## URL Encoding
159
+
160
+ `record_id` contains `:` and `/`, so always URL-encode when placing in a path or query parameter. Examples:
161
+
162
+ ```bash
163
+ # Bash with python3
164
+ RID=$(python3 -c "import urllib.parse; print(urllib.parse.quote('$RAW_RID', safe=''))")
165
+
166
+ # Or with jq
167
+ echo -n "$RAW_RID" | jq -sRr @uri
168
+ ```
169
+
170
+ ## Notes
171
+
172
+ - Endpoints starting with `/api/proxy/` are stable public routes
173
+ - Direct (non-proxy) endpoints may exist but are not contract-stable; do not rely on them
174
+ - This skill **only consumes** the API. Submission/upload is out of scope
@@ -0,0 +1,92 @@
1
+ # Local Production Compatibility Checklist (v0.9.0)
2
+
3
+ Run this for local-profile Generate/Review output. This checklist and local lint
4
+ do not validate the complete canonical schema. Preserve wider canonical shapes
5
+ in imported records (including author objects, imported provenance, and normative
6
+ modality); report incompatibilities instead of destructively normalizing them.
7
+
8
+ ## Top-Level Structure
9
+
10
+ - [ ] `title` is set at the **top level** (not `metadata.title`)
11
+ - [ ] Local-generation `authors` is a top-level list of strings; preserve author objects in canonical imported records
12
+ - [ ] `venue`, `year`, `doi` keys present **only** if visible in source (no TODO/TBD)
13
+ - [ ] `knows_version` set (e.g., `"0.9.0"`)
14
+ - [ ] `profile` set (e.g., `"paper@1"`)
15
+ - [ ] `subject_ref` points to an `art:` artifact id
16
+ - [ ] `coverage` is an object with `statements` and `evidence` keys (each from its own enum)
17
+ - [ ] `provenance` is present with single `actor` object (not `actors` array)
18
+ - [ ] `version` block has `spec`, `record`, `source`
19
+ - [ ] `freshness` block has `as_of`, `update_policy`
20
+
21
+ ## Provenance
22
+
23
+ - [ ] Local-generation `provenance.origin` is `machine` or `author`; canonical imports can include `imported` (report local-lint incompatibility)
24
+ - [ ] `provenance.actor.type` is `tool`, `person`, or `org` (never `ai`/`llm`/`model`)
25
+ - [ ] `provenance.actor.name` is set
26
+ - [ ] `provenance.method` describes how the sidecar was produced (e.g., `extraction`)
27
+ - [ ] `provenance.generated_at` is a valid ISO timestamp
28
+
29
+ ## IDs
30
+
31
+ - [ ] All IDs use descriptive kebab-case (no `stmt:c1`, `ev:001`)
32
+ - [ ] Type prefixes correct: `stmt:`, `ev:`, `rel:`, `art:`, `rep:`
33
+ - [ ] No duplicate IDs across the document
34
+
35
+ ## Field Names
36
+
37
+ - [ ] Statements use `statement_type` (not `type` or `claim`)
38
+ - [ ] Evidence uses `evidence_type`
39
+ - [ ] Relations use `predicate`
40
+ - [ ] Artifacts use `artifact_type`
41
+
42
+ ## Statement Internals
43
+
44
+ - [ ] Each statement has `statement_type` from: `claim`, `method`, `limitation`, `assumption`, `definition`, `question` (review sidecars use the same enum — no `review_comment`)
45
+ - [ ] Local generation uses observed modalities `descriptive`, `empirical`, `theoretical`; preserve canonical imported `normative` values
46
+ - [ ] Each statement has `status` (commonly `asserted`)
47
+ - [ ] `confidence` is an object: `{claim_strength: ..., extraction_fidelity: ...}`, both from `high|medium|low`
48
+ - [ ] `source_anchors` reference a valid `representation_ref` (e.g., `rep:paper-pdf`)
49
+
50
+ ## Values
51
+
52
+ - [ ] Numbers unquoted (`value: 22`, not `value: '22'`)
53
+ - [ ] `coverage.statements` from: `exhaustive`, `main_claims_only`, `key_claims_and_limitations`, `partial`
54
+ - [ ] `coverage.evidence` from: `exhaustive`, `key_evidence_only`, `partial`
55
+ - [ ] `artifacts[].role` from: `subject`, `supporting`, `cited`
56
+ - [ ] Predicates use present tense (`evaluates_on`, not `evaluated_on`)
57
+
58
+ ## Relations
59
+
60
+ - [ ] Relations are source-supported and appropriate to each statement type
61
+ - [ ] Claims with evidence use `supported_by`; source-anchored questions/definitions are not given fabricated support
62
+ - [ ] Ratio warnings prompt a coverage review, not graph padding
63
+ - [ ] Methods have at least one of: `implements`, `uses`, `evaluates_on`, `documents`
64
+ - [ ] No dangling references; every `subject_ref` and `object_ref` points to an existing id
65
+ - [ ] Review sidecars (Mode 3): cross-record refs use the `record_id#local_id` grammar (e.g., `knows:examples/resnet/1.0.0#stmt:main-contribution`) — lint accepts these; bare foreign ids are still errors
66
+
67
+ ## Density
68
+
69
+ - [ ] Statement count appropriate for paper length (complex papers ≥ 15)
70
+ - [ ] Limitations and discussion mined for additional statements
71
+ - [ ] No important section ignored (abstract, methods, results, discussion, limits)
72
+
73
+ ## Lint
74
+
75
+ - [ ] Newly generated local-profile output passes `oma scholar lint`; imported-record incompatibilities are reported without loss of canonical data
76
+ - [ ] Warnings reviewed (recommended-key warnings are usually acceptable for local drafts)
77
+
78
+ ## Anti-Fabrication
79
+
80
+ - [ ] No fabricated DOIs, ORCIDs, or URLs
81
+ - [ ] No "TODO", "TBD", "N/A" placeholder values
82
+ - [ ] All quoted statement text is paraphrased or quoted accurately from source
83
+ - [ ] No invented author names or affiliations
84
+
85
+ ## Final Report to User
86
+
87
+ Include:
88
+ - Output file path
89
+ - Counts: `statements`, `evidence`, `relations`, `artifacts`
90
+ - Ratio: relations/statements (diagnostic target 1.5; no fabricated links)
91
+ - Lint status: clean / N warnings / N errors
92
+ - Fields explicitly omitted due to anti-fabrication (e.g., "DOI not visible; please paste if you have it")