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,35 @@
1
+ # Session Evidence
2
+
3
+ Consult this guide for a requested retrospective, a substantive correction, or a review finding worth preserving. Routine work does not need a second log alongside existing progress and result artifacts.
4
+
5
+ ## Record observations, not penalty scores
6
+
7
+ Do not assign points to questions, corrections, or review judgments. The former Clarification Debt (CD) and Evaluator Accuracy (EA) weights and thresholds are retired; they were prompt instructions, not CLI-computed metrics. Necessary clarification is not a failure, a user changing scope is not an agent error, and a disputed QA finding is not an established false positive.
8
+
9
+ When useful, record an event with session/task/run identity, an evidence path, observed impact, cause if known, and the action taken. Reuse the existing result or progress artifact. For a separate session summary, use the configured coordination store's `session-metrics-{sessionId}.md` (default `.agents/state/memories/`). Distinguish:
10
+
11
+ | Observation | Evidence to retain |
12
+ |---|---|
13
+ | Material clarification | Missing decision and how the answer changed dependent work |
14
+ | User scope change | New request and affected acceptance criteria |
15
+ | Agent mistake or rework | Requirement missed, affected behavior, correction, and verification |
16
+ | Blocked action | Exact missing input or authority and independent work completed |
17
+ | Review error or useful finding | Finding, reproduction or counterexample, adjudicated outcome, and impact |
18
+
19
+ A disputed finding stays unresolved until code, tests, or other evidence settle it. Judge severity by impact and exposure, not diff size. Keep useful catches, false positives, and missed defects separate; do not net them into an agent score or claim an accuracy rate without a defined labeled evaluation set.
20
+
21
+ ## Respond to the cause
22
+
23
+ Correct the affected work and verify it. Pause only actions dependent on unresolved information or authorization, under `execution-policy.md`. Do not stop a session, trigger another agent, or require an RCA because a counter crossed a threshold.
24
+
25
+ For repeated failures, a consequential incident, or a user-requested retrospective, record the known cause and prevention evidence using `lessons-learned.md`. An ordinary failed check, including an expected RED test, does not require a separate RCA. Propose durable instruction changes only when evidence supports them; edit canonical definitions within an authorized source-maintenance task.
26
+
27
+ ## Measurements and tooling
28
+
29
+ - Prefer observed task outcomes, relevant check results, retries, elapsed time, and recorded usage over inferred scores. State the measurement source and limits; progress updates are not a reliable turn counter, and checkpoint counts are not reset counts.
30
+ - `oma stats` reports the CLI's productivity and recorded usage/cost summaries. It does not parse this Markdown into CD or EA scores. Cost estimates are not billing receipts.
31
+ - `oma retro` groups recorded `gate.failed`, `blocker.raised`, and `decision.missing` events into harness suggestions. Those suggestions still need causal review; they do not automatically modify prompts.
32
+ - If the active workflow uses quality measurement or experiments, link the actual artifacts from `../conditional/quality-score.md` and `../conditional/experiment-ledger.md`. Do not fabricate missing measurements or mix them with conversational event counts.
33
+ - For model or prompt comparisons, use `../../oma-skill-creation/resources/prompt-evaluation.md`. Compare equivalent tasks and report correctness, interruptions, latency, and measured cost separately.
34
+
35
+ Keep existing historical logs as evidence. This guide neither schedules deletion nor imposes a retention deadline.
@@ -0,0 +1,39 @@
1
+ # Skill Routing
2
+
3
+ Use this map when selecting a specialist or coordinating an authorized multi-agent task. Route by the requested outcome and concrete dependencies, not a keyword alone. Choosing a skill does not start a workflow or authorize delegation.
4
+
5
+ ## Context and ownership
6
+
7
+ The runtime exposes skill names and descriptions for discovery. Read the owning SKILL.md when the task matches its scope or the user invokes it, under the host's skill rules. Load supporting references only when needed (`context-loading.md`). Use one owning specialist for a scoped task; add a handoff only when it supplies a distinct needed capability.
8
+
9
+ | Requested outcome | Owning skill |
10
+ |---|---|
11
+ | Application API, server auth, service/data access logic | `oma-backend` |
12
+ | Schema, migration design, indexing, query tuning, database operations | `oma-db` |
13
+ | Web components, pages, forms, client state | `oma-frontend` |
14
+ | Mobile screens, widgets, platform integration | `oma-mobile` |
15
+ | System boundaries, architecture tradeoffs, ADR | `oma-architecture` |
16
+ | Diagnose and fix incorrect behavior | `oma-debug` |
17
+ | Review correctness, security, accessibility, performance | `oma-qa` |
18
+ | Visual system, DESIGN.md, redesign direction | `oma-design` |
19
+ | Requested ideation or alternative exploration | `oma-brainstorm` |
20
+ | Requirements, dependencies, acceptance criteria | `oma-pm` |
21
+ | Requested parallel specialist execution | `oma-orchestration` |
22
+ | Requested manual multi-agent coordination | `oma-coordination` |
23
+ | Git branches, commits, merges, repository history | `oma-scm` |
24
+
25
+ For other domains, select from the installed skill descriptions. Preserve explicit task ownership and vendor/model configuration.
26
+
27
+ ## Dependencies
28
+
29
+ - Resolve an unsettled architecture or product decision before work that depends on it. Existing decisions do not need to pass through architecture, brainstorming, or PM again.
30
+ - Backend and client work may proceed independently when their shared API contract is usable. If it is missing, settle that boundary with the relevant owners; use `api-contracts/README.md` when a contract artifact is needed.
31
+ - Review can start on a completed, reviewable portion while independent implementation continues. Do not review an unstable artifact as final evidence.
32
+ - A bug found during implementation can be fixed by its owner. Add debug assistance when diagnosis warrants it; there is no required implementation-to-debug chain.
33
+ - For a cross-domain defect, identify the failing contract and responsible owner from evidence. An API mismatch does not automatically mean the backend must change.
34
+
35
+ ## Dispatch and completion
36
+
37
+ Use `vendor-detection.md` when dispatch details are unresolved. Parallelize only independent work within the authorized task and available runtime. Each dispatched task needs ownership, acceptance criteria, relevant context, and the runtime's result contract.
38
+
39
+ A difficulty estimate does not impose fixed per-agent turn limits. Respect explicit user/runtime budgets and preserve partial progress when a real limit is reached. Completion and unresolved decisions follow `execution-policy.md`.
@@ -0,0 +1,54 @@
1
+ # Per-Task Test Approach & TDD Evidence
2
+
3
+ Opt-in, per-task test strategy carried in the PM plan (`plan-{sessionId}.json`).
4
+ PM assigns it (see `oma-pm/resources/execution-protocol.md` Step 3); implementation
5
+ agents honor it; QA and Ultrawork gates verify evidence **only** for tasks marked `tdd`.
6
+
7
+ ## Approaches
8
+
9
+ | `test_approach` | Meaning | Agent obligation |
10
+ |---|---|---|
11
+ | `tdd` | Deterministic, high-risk behavior (validation, authorization, state transitions, calculations, error handling) | Write and run the focused test **before** the production change (RED), make the minimal change (GREEN), refactor only if needed. Record a `TDD_EVIDENCE` block in the result file. |
12
+ | `test_after` | Automated tests required, but a useful isolated RED state is impractical | Write tests with/after the implementation. No evidence block required. |
13
+ | `not_applicable` | Automated tests inappropriate | Perform the plan's `alternative_verification` and report its outcome. Plan must carry `test_approach_rationale`. |
14
+
15
+ Tasks without a `test_approach` field behave as today (tests per the agent's
16
+ normal protocol). Refactor tasks never use `tdd` — they keep the
17
+ characterization-test safety net (`oma-refactor`).
18
+
19
+ ## Coverage applicability rule
20
+
21
+ `test_approach` does not silently waive coverage. Use the project's declared
22
+ baseline, changed-code target, or task-specific risk target when coverage is
23
+ applicable. When it is not, the plan must state risk-focused tests or an
24
+ alternative verification method and its limits. Do not impose a global numeric
25
+ floor on projects that have not defined one.
26
+
27
+ ## TDD_EVIDENCE block format
28
+
29
+ Append to the task/run-scoped result report, one entry per `tdd` task:
30
+
31
+ ```
32
+ TDD_EVIDENCE:
33
+ - task: task-2
34
+ test_command: bun test src/services/discount.test.ts
35
+ red: "expected 400, received 200" (before implementation)
36
+ green: 12 pass, 0 fail (after implementation)
37
+ ```
38
+
39
+ Requirements (enforced by `oma verify agent <agent>` → "TDD Evidence" check):
40
+
41
+ 1. Block starts with the literal marker `TDD_EVIDENCE:`
42
+ 2. Every `tdd` task id from the plan appears in the block
43
+ 3. At least one `red:` entry (the observed failure before the change) and one
44
+ `green:` entry (the passing result after the change)
45
+
46
+ A task may opt out with `tdd_evidence_required: false` in the plan (e.g., the
47
+ RED state is demonstrated in a linked CI run instead); the rationale belongs in
48
+ the task description.
49
+
50
+ ## Debug parity
51
+
52
+ Debug regression tests follow the same discipline where feasible: run the
53
+ regression test before applying the fix, record the failing output (RED) and
54
+ the post-fix pass (GREEN) in the bug report / result file.
@@ -0,0 +1,52 @@
1
+ # Vendor Detection Protocol
2
+
3
+ When executing a workflow, determine your runtime environment using this priority order.
4
+ Then resolve the target vendor for each agent from `.agents/oma-config.cue` or `.agents/oma-config.yaml`. Apply project-local configuration overlays. With `model_preset: free`, use `oma agent spawn` so the FreeLLMAPI route is applied. Otherwise explicit `agents:` model overrides take priority. With `model_preset: auto` (the default for new installs), unconfigured agents follow the current runtime's native agent definitions and model settings; do not substitute a fixed vendor preset or inject a model/effort override. When the runtime cannot be detected, use `default_cli` (or `claude` when omitted). Fixed built-in and custom presets continue to resolve model slugs (`<owner>/<slug>`) to their owning vendors. See `web/docs/guide/per-agent-models.md` for details.
5
+
6
+ Important:
7
+ - Do **not** choose one spawn strategy for the entire workflow based only on the main runtime vendor.
8
+ - Decide per agent:
9
+ - `current_runtime_vendor`
10
+ - `target_vendor_for_agent`
11
+ - whether that exact runtime can invoke that target vendor natively
12
+ - If native invocation is not available for that agent, fall back to `oma agent spawn`.
13
+
14
+ ## Identify the current runtime
15
+
16
+ Use explicit host identity and runtime configuration first. Inspect the native dispatch capability actually exposed in the session. Shared tool names such as `apply_patch`, an `@` syntax, or a skill-directory path do not uniquely identify a vendor.
17
+
18
+ If identity or native dispatch is unresolved, use the configured fallback; do not guess that the runtime is Codex or Antigravity from a generic tool. For OpenCode, an explicitly identified session with native `task` can dispatch through it even when `apply_patch` is also available.
19
+
20
+ ## Vendor-Specific Spawn Methods
21
+
22
+ | Vendor | Spawn Method | Result Handling |
23
+ |:---|:---|:---|
24
+ | Claude Code | `Agent` tool with `.claude/agents/{name}.md` | Return value (foreground) or completion notification (`run_in_background=true`) |
25
+ | OpenCode | Same session: native `task` tool with `subagent_type: {agent-id}` (the only path that shows as a native child task in the active OpenCode GUI/TUI). External fallback: `oma agent spawn`, which creates a temporary primary wrapper that delegates to the `mode: subagent` agent — `opencode run --agent {subagent}` alone is rejected and falls back to the default agent. | Native task return / result file poll |
26
+ | Kilo Code | Same as OpenCode (Kilo is an OpenCode fork): native `task` tool with `subagent_type: {agent-id}` for `.kilo/agents/{name}.md`; external fallback `oma agent spawn` uses the same temporary primary wrapper (`kilo run --agent {subagent}` alone is rejected the same way). Kilo sets `KILO=1` in tool subprocesses. | Native task return / result file poll |
27
+ | Codex CLI | Current-session native dispatch with custom agents in `.codex/agents/{name}.toml` when available, otherwise `oma agent spawn`. A role file without `model` runs on the parent's model; spawn `docs-curator` and `research-explorer` with the fastest model the spawn tool lists as available, and leave `model` unset for other roles and for files that pin one. Never invent a model name. | JSON output |
28
+ | Antigravity | Prefer `oma agent spawn` unless a native role-subagent path is explicitly verified for the target vendor | MCP memory poll |
29
+ | CLI Fallback | `oma agent spawn {agent} {prompt} {session} -w {workspace}` | Result file poll |
30
+
31
+ ## Dispatch Rule
32
+
33
+ For each agent:
34
+
35
+ 1. Resolve `target_vendor_for_agent` from config
36
+ 2. If `target_vendor_for_agent === current_runtime_vendor` and that runtime has a verified native role-subagent path for that vendor, use the vendor variant agent definition
37
+ 3. Otherwise, use `oma agent spawn`
38
+
39
+ Example:
40
+ - Runtime: Claude Code
41
+ - Resolved models: `frontend` → `anthropic/…`, `backend` → `anthropic/…`, `qa` → `openai/…` (owning vendors: claude, claude, codex)
42
+ - Result:
43
+ - `frontend` -> native Claude subagent
44
+ - `backend` -> native Claude subagent
45
+ - `qa` -> external Codex spawn via `oma agent spawn`
46
+
47
+ ### OpenCode specifics
48
+
49
+ - If `current_runtime_vendor == opencode` and `target_vendor_for_agent == opencode` and the `task` tool exists, use native `task(subagent_type: "<agent-id>")`.
50
+ - Do **not** use `oma agent spawn` for same-session OpenCode subagents — it is an external fallback and will not appear as a native child task in the active OpenCode GUI/TUI.
51
+ - Before using the `oma agent spawn` fallback, confirm that native same-runtime dispatch is genuinely unavailable.
52
+ - Kilo Code follows the same rules with `kilo` in place of `opencode`.
@@ -0,0 +1,118 @@
1
+ # Memory Protocol (CLI Mode)
2
+
3
+ > **Note**: This file documents the default (direct-file) memory protocol. Vendor-specific execution protocols are injected automatically by `oma agent spawn` from `execution-protocols/{vendor}.md`.
4
+
5
+ When running as a CLI subagent, follow this protocol.
6
+
7
+ ## Tool Reference
8
+
9
+ Coordination artifacts are read and written as plain files using your native file tools.
10
+ Tool names remain configurable via `mcp.json → memoryConfig.tools`; this file
11
+ memory contract is independent of any code-intelligence provider.
12
+ - `[READ]` → default: `Read`
13
+ - `[WRITE]` → default: `Write`
14
+ - `[EDIT]` → default: `Edit`
15
+ - `[LIST]` → default: directory listing (e.g. `ls` / `list_dir`)
16
+ - `[DELETE]` → default: file delete (e.g. `rm`)
17
+
18
+ Memory base path is configurable via `memoryConfig.basePath` (default: `.agents/state/memories`). Create the directory if it does not yet exist.
19
+
20
+ > **CRITICAL**: Do NOT use Serena's MCP `write_memory` / `read_memory` for workflow state or result reports. Use file tools (`Read`/`Write`/`Edit`): session and progress notes go under `{memoryConfig.basePath}/`, and `result-*.md` reports always go under the project-root `.agents/results/`. Create `.agents/results/` if it does not yet exist. Verification gates check these durable files and their receipt bindings.
21
+
22
+ ---
23
+
24
+ ## Path Resolution (CRITICAL)
25
+
26
+ Use the injected `claimPath` for structured result claims and do not rename or
27
+ move it. Keep existing flat session artifacts for consumer compatibility. Add
28
+ task and run identity to human-readable reports:
29
+
30
+ ```
31
+ {memoryConfig.basePath}/
32
+ orchestrator-session-{sessionId}.md
33
+ task-board-{sessionId}.md
34
+ progress-{agentId}-{taskId}-{runId}-{sessionId}.md
35
+ lessons-{sessionId}.md
36
+ experiment-ledger-{sessionId}.md
37
+
38
+ .agents/results/
39
+ result-{agentId}-{taskId}-{runId}-{sessionId}.md
40
+ ```
41
+
42
+ `taskId` and `runId` are required for plan-based work. A manual run may use a
43
+ generated local run ID. Never use workspace or agent ID alone as artifact
44
+ identity. Receipts remain in `.agents/state/agent-runs/` and retain their
45
+ existing structured schema. Reports are independent of `memoryConfig.basePath`.
46
+
47
+ Existing reports under `.agents/state/memories/`, the configured memory base, or `.serena/memories/` remain read fallback until migration. Write new reports only to `.agents/results/`, preserving task/run/session filenames. Do not move structured claims or manually rewrite verification receipts when relocating reports.
48
+
49
+ ## On Start
50
+
51
+ 1. `[READ]("task-board-{sessionId}.md")` to confirm your assigned task
52
+ 2. `[WRITE]("progress-{agentId}-{taskId}-{runId}-{sessionId}.md", initial progress entry)` with Turn 1 status
53
+
54
+ ## During Execution
55
+
56
+ - Every 3-5 turns: `[EDIT]("progress-{agentId}-{taskId}-{runId}-{sessionId}.md")` to append a new turn entry
57
+ - Include: action taken, current status, files created/modified
58
+
59
+ ## On Completion
60
+
61
+ - `[WRITE](".agents/results/result-{agentId}-{taskId}-{runId}-{sessionId}.md")` with final result including:
62
+ - Status: `completed`, `partial`, `blocked`, or `failed`
63
+ - Summary of work done
64
+ - Files created/modified
65
+ - Acceptance criteria checklist
66
+
67
+ ## On Failure
68
+
69
+ - Still create the run-scoped result with an accurate status.
70
+ - Include detailed error description and what remains incomplete
71
+
72
+ ---
73
+
74
+ ## Experiment Tracking (Optional Extension)
75
+
76
+ When a task compares an actual experiment, use `../conditional/experiment-ledger.md` for recording and `../conditional/quality-score.md` for comparable measurements. Routine verification does not require a ledger.
77
+
78
+ Use `experiment-ledger-{sessionId}.md` under the configured coordination store. The coordinator merges task/run-scoped agent results into this shared artifact; parallel workers do not append concurrently. Link baseline and candidate evidence, required check results, the decision and reason, and owned paths. No composite score, fixed row layout, or agent ranking is required.
79
+
80
+ ---
81
+
82
+ ## Example with Default Tools (Direct File)
83
+
84
+ ```
85
+ # On Start
86
+ Read(".agents/state/memories/task-board-session-20260405-100835.md")
87
+ Write(".agents/state/memories/progress-backend-task-api-run-01-session-20260405-100835.md", initial_content)
88
+
89
+ # During Execution
90
+ Edit(".agents/state/memories/progress-backend-task-api-run-01-session-20260405-100835.md", turn_update)
91
+
92
+ # On Completion
93
+ Write(".agents/results/result-backend-task-api-run-01-session-20260405-100835.md", final_result)
94
+ ```
95
+
96
+ ## Example with Custom Tools
97
+
98
+ If `memoryConfig.tools` is configured differently:
99
+
100
+ ```json
101
+ {
102
+ "memoryConfig": {
103
+ "tools": {
104
+ "read": "fs_read",
105
+ "write": "fs_write",
106
+ "edit": "fs_patch"
107
+ }
108
+ }
109
+ }
110
+ ```
111
+
112
+ Then use:
113
+ ```python
114
+ fs_read("task-board-session-20260405-100835.md")
115
+ fs_write("progress-backend-task-api-run-01-session-20260405-100835.md", initial_content)
116
+ fs_patch("progress-backend-task-api-run-01-session-20260405-100835.md", turn_update)
117
+ fs_write(".agents/results/result-backend-task-api-run-01-session-20260405-100835.md", final_result)
118
+ ```
@@ -0,0 +1,64 @@
1
+ # Agent Result Contract
2
+
3
+ `oma agent spawn` and `oma agent parallel` create a unique run and inject its result path. Use `--task-id` on spawn to match the session plan. A process exiting zero without a valid claim is `partial`, and a failed process is `failed`.
4
+
5
+ Native agents use the same contract:
6
+
7
+ 1. Define the acceptance contract in the session plan (see below), then run `oma agent begin <agent-id> <task-id> <session-id>` from the project root. Save `runId` and `claimPath` from its JSON output.
8
+ 2. Load task references with `oma agent context <agent-id> --difficulty Medium`, perform the task, and execute its pinned checks with `oma agent verify <run-id> --required`. Spawn/parallel already inject this graph-selected context. Individual exact commands can also be recorded with `oma agent verify <run-id> -- <executable> <args...>`. Run checks serially per run. No build unless explicitly requested.
9
+ 3. Write the claim file with `status` (`completed`, `partial`, `blocked`, or `failed`), `changedFiles` (relative paths), `unresolved` (descriptions), and `artifacts` (relative paths to reports). A non-executable review may use `verificationSkipped` with a specific reason; it cannot override failed checks.
10
+ 4. Native agents call `oma agent finish <run-id> <claim-file>`. Spawned processes leave finalization to the parent. The parent captures the actual exit code.
11
+
12
+ Example claim:
13
+
14
+ ```json
15
+ {"status":"completed","changedFiles":["src/parser.ts"],"unresolved":[],"artifacts":[".agents/results/result-qa-s1.md",".agents/results/plan-s1.json",".agents/state/memories/session-ultrawork.md"]}
16
+ ```
17
+
18
+ Receipts live in `.agents/state/agent-runs/`. They contain session/task/run IDs, vendor, workspace, timestamps, actual command argv and exit codes, working tree hashes, artifact hashes, unresolved work, and final status. These records prevent accidental reuse of stale evidence; they are local files, not a security boundary against an agent that intentionally edits receipts. Human-readable workflow reports are supplemental files at `.agents/results/result-{agentId}-{taskId}-{runId}-{sessionId}.md` for every dispatch path; the injected claim path and receipt schema remain unchanged. Preserve report filenames. Existing reports under configured coordination memory, `.agents/state/memories/`, or `.serena/memories/` remain read fallback until migration; write new reports only to `.agents/results/`.
19
+
20
+ The Ralph gate requires QA and REFINE task IDs in a nonempty plan, current successful executable checks, and report/plan/phase artifacts bound to those runs. A waiver alone does not pass this gate. Record a justified REFINE exception as `REFINE skipped: <specific reason>` before QA finalizes its evidence. Old Markdown-only reports remain readable but must be reverified to pass the gate.
21
+
22
+ Checks cover the Git working tree (HEAD, tracked contents/modes and nonignored untracked files). Generated `.agents/state`, `.agents/results`, and `.serena/memories`, and generated `.opencode/agents/oma-spawn-*.md` / `.kilo/agents/oma-spawn-*.md` wrappers are excluded from the tree hash and artifacts are hashed separately. In an unversioned directory, all files except those generated directories, `.git`, and `node_modules` are covered. External services, ignored dependencies, and malicious receipt tampering require separate controls.
23
+
24
+ ## Artifact storage
25
+
26
+ - `docs/decisions/`: retained approach proposals, architecture decisions, and ADRs intended for version control; update `docs/decisions/index.md`. `design` names UI work. Read `docs/plans/designs/` and `docs/design-docs/` only as legacy fallback until migration.
27
+ - `docs/plans/work/`: execution plans and technical debt; `docs/plans/contracts/`: adopted API contracts. Keep their existing lifecycle and promotion rules.
28
+ - `.agents/results/`: run-specific reports, research, explanations, and draft contracts. When promoting a selected document into `docs/`, leave its destination in the source report.
29
+ - `.agents/state/`: coordination, resumption, and verification records. State notes link reports instead of holding duplicate report bodies.
30
+
31
+ If a report is already bound to a verification receipt, preserve its original path and bytes. Create a maintained copy and link it from the documentation index instead of editing or moving the bound report. Migration reports these files as deferred and never rewrites receipts, claims, or frozen plans.
32
+
33
+ Preview existing files with `oma docs migrate --dry-run --json`; apply the migration with `oma docs migrate`. The report lists moved and rewritten paths, skips, and conflicts.
34
+
35
+ ## Coordination notes
36
+
37
+ Use native file tools and `memoryConfig.basePath` (default `.agents/state/memories/`) at the project root for optional coordination notes. Read an assigned task board and report progress for long tasks. Use the unique progress names from [Memory Protocol](memory-protocol.md); keep the injected claim path unchanged. Write all `result-*.md` reports in the project-root `.agents/results/`, independently of `memoryConfig.basePath`. Their presence alone does not prove completion. Include unresolved work in the claim even after failure.
38
+
39
+ Read-only dispatch returns `OMA_RESULT_JSON: {claim}` as one final stdout line. The parent persists that inspection. A `verificationSkipped` inspection remains distinguishable from executable checks and does not pass Ralph.
40
+
41
+ Repository checks: `cli/state/agent-results.test.ts`, `cli/state/artifact-verifier.test.ts`.
42
+
43
+ ## Acceptance and recovery
44
+
45
+ Each executable task declares `acceptance_criteria: [{id, description}]` and `required_checks: [{id, criteria: [criterionId], command: [executable, ...args], cwd: "."}]`. Every criterion needs a check. Check IDs and executable/argv/cwd selectors must be unique. The run snapshots this contract. Another command/directory, a removed requirement or an uncovered criterion cannot count as acceptance evidence. Legacy plans without required checks remain readable but need a new contract/run to pass executable completion.
46
+
47
+ `oma agent verify RUN_ID --affected PATH...` executes tests selected from actual graph references and records outcomes. They count toward acceptance only when matching pinned checks. Use `--required` for all declared checks. Unmatched paths and empty graph test selections fail explicitly.
48
+
49
+ Optional `inputs` narrows hashing to declared project-relative files/directories and must include all relevant source, tests, configuration and dependency inputs. Missing/deleted inputs change the hash. No globs or symlink traversal are supported. Omit it for whole-tree hashing. The contract is checked independently of scope. Task dependency IDs use the existing `dependencies` array.
50
+
51
+ `oma agent resume SESSION_ID --dry-run` reports reused, ready, running and blocked tasks. Without `--dry-run`, it retries ready tasks in dependency order, persists outcomes, and revalidates evidence before success. Changed dependencies invalidate dependent reuse even if their own inputs match. Live managed processes and native attempts without liveness evidence are not duplicated.
52
+
53
+ Automatic replay requires `retry_policy: "safe"` and a prompt/agent in the plan or saved dispatch. The default is `manual`. `--max-attempts` defaults to 3 including the original attempt. A session lease prevents duplicate coordinators and permits recovery after the local owner dies. Mark interrupted native attempts partial/failed through their result contract before resuming. Keep the JSON plan fixed while recovery runs; record progress separately. This resumes tasks, not the model's interrupted conversation.
54
+
55
+ ## Plan lineage and evidence failures
56
+
57
+ The plan's optional `lineage_id` defaults to its session ID. Keep it stable for the same workflow goal across resumed sessions. A task's optional `goal_id` defaults to its task ID; predeclared alternative task IDs for the same logical work must share it. Plan `max_attempts` defaults to 3 including the original attempt. Direct begin/spawn and resume count all runs for that lineage/goal, including runs without `resumedFrom`. `resume --max-attempts` can lower, but cannot raise, the frozen plan's bound.
58
+
59
+ First dispatch pins the full plan under `.agents/state/agent-plans/`. Task IDs, prompts, dependencies, checks, scope, and retry limits are immutable. JSON formatting/key order and transport `session_id`/`created` metadata do not change the contract. Progress belongs in coordination notes. Unknown task IDs and dependency cycles fail before dispatch. Contract changes require an explicitly separated new session and lineage; record why the scope changed and preserve the prior run's outcome. Never use a new lineage to evade a retry limit or repair metadata for the same goal. Do not insert tasks that recursively regenerate/review the executing plan.
60
+
61
+ - `PRODUCT_FAILURE`: executable checks failed, product inputs changed, or product work remains unresolved. Retry only within the shared goal budget.
62
+ - `WORKFLOW_EVIDENCE_FAILURE`: current product checks pass but a claim, artifact binding, or completion metadata is invalid. Automatic resume blocks product replay and returns the run/claim paths. One direct begin/spawn for that existing task may repair metadata within the same attempt budget; the run is marked `evidenceRepair`, and completion rejects product-input changes. Correct claim/report bindings and reverify the pinned checks, without changing the plan or dispatching planners/reviewers. A second evidence repair is rejected. If unresolved, stop with `partial`, distinguish product success from workflow failure, and provide the exact diagnostic and correction needed.
63
+
64
+ Keep mutable task boards, phase logs, receipts, and repair notes under `.agents/state/`, `.agents/results/`, or `.serena/memories/`, which are excluded from product hashes. They may be bound as separate artifacts only after their final update; a later metadata edit invalidates that binding without making it a product failure. Do not narrow product `inputs` to hide relevant source changes.
@@ -0,0 +1,133 @@
1
+ # UI Interaction Quality
2
+
3
+ Load the relevant sections when changing motion, input feedback, or rendered
4
+ web-component behavior. Static document corrections do not require this resource.
5
+ Follow existing project conventions; native implementation uses `oma-mobile`.
6
+
7
+ ## Decide what the interaction needs
8
+
9
+ `oma-design` owns the intended behavior and its effect on the user:
10
+
11
+ - Name the purpose: acknowledge input, show a state change, explain a spatial
12
+ relationship, preserve continuity, or support an explicitly requested effect.
13
+ Keep a direct state change when motion adds no useful information.
14
+ - Consider how often the interaction occurs and whether it blocks the next
15
+ action. Repeated work and keyboard-driven workflows need prompt, unobstructed
16
+ feedback; occasional explanatory moments can support more expression.
17
+ - Keep content stable while the user reads, compares, selects, or acts on it.
18
+ Decorative movement must not compete with task information or conceal state.
19
+ - Define the reduced-motion result with the behavior. Preserve essential state,
20
+ feedback, and control when movement is reduced or removed.
21
+ - Reuse the approved project direction, motion tokens, and component behavior.
22
+ Specify the affected states and acceptance criteria rather than imposing a new
23
+ timing scale, spring table, or page-wide motion quota.
24
+
25
+ Use the supplied brief and inspected UI to make these decisions. Ask only about
26
+ a material unresolved choice. An audit returns findings within its read-only
27
+ scope; an implementation request proceeds under the existing authorization.
28
+
29
+ ## Implement within the current stack
30
+
31
+ `oma-frontend` owns the implementation. First inspect the component primitives,
32
+ existing motion mechanisms, tokens, and affected lifecycle. Extend a suitable
33
+ existing mechanism before adding a second one.
34
+
35
+ | Mechanism | Relevant use |
36
+ |---|---|
37
+ | CSS transitions or animations | Stylesheet-driven changes and predetermined motion that need no additional controller |
38
+ | Web Animations API | Browser-native imperative playback, cancellation, or sequencing where it fits the required behavior |
39
+ | Project-selected Motion integration | Supported spring, layout, entry/exit, or gesture behavior in the project's current component architecture |
40
+ | Existing or selected GSAP integration | Its timelines, scroll coordination, or plugins when those capabilities are part of the task |
41
+
42
+ This table identifies capabilities, not an automatic dependency choice. A fade
43
+ does not justify installing an engine. Preserve the project's framework,
44
+ component library, styling, state, and dependency policy.
45
+
46
+ ### State and interruption
47
+
48
+ An interaction may reverse, repeat, or be cancelled before a transition ends.
49
+ Continue from the currently displayed position and velocity where appropriate,
50
+ rather than resetting to an obsolete starting frame. Keep one owner for each
51
+ animated property and cancel or supersede stale work.
52
+
53
+ Keep semantic state authoritative. A visual exit must not leave a hidden control
54
+ active, preserve stale content after reopening, or lose the intended focus
55
+ destination. Use the existing component's state and lifecycle contracts instead
56
+ of adding an independent animation state machine without a demonstrated need.
57
+
58
+ In React, keep continuous visual values outside component render state when they
59
+ do not change the UI's meaning. Use the existing controller, motion values, or
60
+ refs for those updates. Commit meaningful state changes through the normal React
61
+ model; do not force a render for every animation frame or pointer sample merely
62
+ to move an element.
63
+
64
+ ### Press, focus, hover, and touch
65
+
66
+ - Give prompt press feedback through the project's control primitives. Feedback
67
+ on pointer-down is distinct from committing an action: preserve cancellation,
68
+ click/activation semantics, and keyboard behavior.
69
+ - Keep focus visible and stable through transitions. Exercise keyboard entry,
70
+ activation, dismissal, and return focus where the component supports them.
71
+ - Gate hover-only decoration by input capability. Keep essential information
72
+ and actions available to touch and keyboard users; support mixed input devices
73
+ without assuming a screen width or user-agent identifies the input method.
74
+ - Preserve zoom, browser scrolling, and text interaction. Scope gesture handling
75
+ and selection restrictions to the control that needs them.
76
+ - Verify pending, disabled, success, and failure feedback where those states
77
+ exist. Appearance alone must not substitute for the component's actual state.
78
+
79
+ ### Component lifetime
80
+
81
+ Tie controllers, frames, listeners, observers, timers, and subscriptions to the
82
+ component lifetime. Use the incumbent integration's cleanup mechanisms; cancel
83
+ obsolete work on unmount or replacement. Check repeated mount/unmount and rapid
84
+ open/close for duplicate handlers, stale callbacks, and continuing animations.
85
+ Pause nonessential continuous work when the surface is inactive when appropriate.
86
+
87
+ ## Diagnose performance from evidence
88
+
89
+ Reproduce the affected interaction with representative content and concurrent
90
+ work. Inspect browser profiling, renders, layout, paint, and compositing as the
91
+ symptom requires. Compare frame work with the actual target device's budget;
92
+ do not infer smoothness from a library name or a desktop screenshot.
93
+
94
+ Transforms and opacity often avoid layout work, but acceleration depends on the
95
+ actual property, browser, controller, and content. Check costly descendants,
96
+ inherited custom-property updates, effects, and large layers before choosing a
97
+ fix. Add layer promotion or `will-change` only for an observed need, then verify
98
+ the effect and resource cost.
99
+
100
+ Measure the affected case before and after a proposed performance fix. Record
101
+ the browser/device, content, steps, relevant trace or observation, and remaining
102
+ limits. Emulation and code inspection can support findings; they do not prove
103
+ behavior on an untested physical device.
104
+
105
+ ## Exercise realistic content and states
106
+
107
+ Use fixtures at the component's real data boundary and container size. Derive
108
+ limits from the schema, API, validation, and supported product behavior. Mark an
109
+ unknown limit as unknown; use plausible stress data without inventing product
110
+ claims or introducing real personal data into a fixture.
111
+
112
+ Select cases relevant to the affected UI:
113
+
114
+ - Long and short names, unbroken identifiers, translated labels, CJK text and
115
+ mixed scripts. Check glyph fallback, line breaking, wrapping, and readable
116
+ control labels with the project's actual fonts and supported languages.
117
+ - Empty, single-item, and realistic large collections; absent optional fields,
118
+ unavailable images, and the number/date formats the product supports.
119
+ - Loading, failure, retry, disabled and successful states; repeated activation,
120
+ cancellation, reopening, and interruption while content or layout changes.
121
+ - Supported narrow containers, zoom/text enlargement, themes, directionality,
122
+ and input modes. Include keyboard, touch, safe-area, or software-keyboard
123
+ behavior when the changed surface depends on them.
124
+
125
+ Keep meaning and essential values accessible when space is tight. Use the
126
+ project's existing wrapping, disclosure, scrolling, or truncation conventions
127
+ according to the data's purpose. An optional debug fixture or prototype stays
128
+ outside production flows unless the task explicitly includes it.
129
+
130
+ Report what was exercised and observed, including the component/state, content,
131
+ viewport or input, and result. Separate rendered findings from code-only
132
+ inferences and unrun checks. Keep fixes within the authorized scope and repeat
133
+ the affected checks after a change.