@trac3r/oh-my-god 2.2.11

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 (638) hide show
  1. package/CHANGELOG.md +188 -0
  2. package/INSTALL-VERIFICATION-INDEX.md +51 -0
  3. package/LICENSE +21 -0
  4. package/OMG-setup.sh +2549 -0
  5. package/QUICK-REFERENCE.md +58 -0
  6. package/README.md +207 -0
  7. package/agents/__init__.py +1 -0
  8. package/agents/__pycache__/model_roles.cpython-313.pyc +0 -0
  9. package/agents/_model_roles.yaml +26 -0
  10. package/agents/designer.md +67 -0
  11. package/agents/explore.md +60 -0
  12. package/agents/model_roles.py +196 -0
  13. package/agents/omg-api-builder.md +23 -0
  14. package/agents/omg-architect-mode.md +41 -0
  15. package/agents/omg-architect.md +13 -0
  16. package/agents/omg-backend-engineer.md +41 -0
  17. package/agents/omg-critic.md +16 -0
  18. package/agents/omg-database-engineer.md +41 -0
  19. package/agents/omg-escalation-router.md +17 -0
  20. package/agents/omg-executor.md +12 -0
  21. package/agents/omg-frontend-designer.md +41 -0
  22. package/agents/omg-implement-mode.md +49 -0
  23. package/agents/omg-infra-engineer.md +41 -0
  24. package/agents/omg-qa-tester.md +16 -0
  25. package/agents/omg-research-mode.md +41 -0
  26. package/agents/omg-security-auditor.md +41 -0
  27. package/agents/omg-testing-engineer.md +41 -0
  28. package/agents/plan.md +80 -0
  29. package/agents/quick_task.md +64 -0
  30. package/agents/reviewer.md +83 -0
  31. package/agents/task.md +71 -0
  32. package/bin/omg +41 -0
  33. package/commands/OMG:ai-commit.md +113 -0
  34. package/commands/OMG:api-twin.md +22 -0
  35. package/commands/OMG:arch.md +313 -0
  36. package/commands/OMG:browser.md +29 -0
  37. package/commands/OMG:ccg.md +22 -0
  38. package/commands/OMG:compat.md +57 -0
  39. package/commands/OMG:cost.md +181 -0
  40. package/commands/OMG:crazy.md +125 -0
  41. package/commands/OMG:create-agent.md +183 -0
  42. package/commands/OMG:deep-plan.md +18 -0
  43. package/commands/OMG:deps.md +248 -0
  44. package/commands/OMG:diagnose-plugins.md +33 -0
  45. package/commands/OMG:doctor.md +37 -0
  46. package/commands/OMG:domain-init.md +11 -0
  47. package/commands/OMG:escalate.md +52 -0
  48. package/commands/OMG:forge.md +103 -0
  49. package/commands/OMG:health-check.md +48 -0
  50. package/commands/OMG:init.md +134 -0
  51. package/commands/OMG:issue.md +56 -0
  52. package/commands/OMG:mode.md +44 -0
  53. package/commands/OMG:playwright.md +17 -0
  54. package/commands/OMG:preflight.md +26 -0
  55. package/commands/OMG:preset.md +49 -0
  56. package/commands/OMG:profile-review.md +58 -0
  57. package/commands/OMG:project-init.md +11 -0
  58. package/commands/OMG:ralph-start.md +43 -0
  59. package/commands/OMG:ralph-stop.md +23 -0
  60. package/commands/OMG:security-check.md +28 -0
  61. package/commands/OMG:session-branch.md +101 -0
  62. package/commands/OMG:session-fork.md +57 -0
  63. package/commands/OMG:session-merge.md +138 -0
  64. package/commands/OMG:setup.md +82 -0
  65. package/commands/OMG:ship.md +18 -0
  66. package/commands/OMG:stats.md +225 -0
  67. package/commands/OMG:teams.md +54 -0
  68. package/commands/OMG:theme.md +44 -0
  69. package/commands/OMG:validate.md +59 -0
  70. package/commands/__init__.py +1 -0
  71. package/docs/command-surface.md +55 -0
  72. package/docs/install/claude-code.md +53 -0
  73. package/docs/install/codex.md +45 -0
  74. package/docs/install/gemini.md +43 -0
  75. package/docs/install/github-action.md +81 -0
  76. package/docs/install/github-app-required-checks.md +107 -0
  77. package/docs/install/github-app.md +161 -0
  78. package/docs/install/kimi.md +43 -0
  79. package/docs/install/opencode.md +38 -0
  80. package/docs/proof.md +182 -0
  81. package/hooks/__init__.py +0 -0
  82. package/hooks/__pycache__/__init__.cpython-313.pyc +0 -0
  83. package/hooks/__pycache__/_agent_registry.cpython-313.pyc +0 -0
  84. package/hooks/__pycache__/_analytics.cpython-313.pyc +0 -0
  85. package/hooks/__pycache__/_budget.cpython-313.pyc +0 -0
  86. package/hooks/__pycache__/_common.cpython-313.pyc +0 -0
  87. package/hooks/__pycache__/_compression_optimizer.cpython-313.pyc +0 -0
  88. package/hooks/__pycache__/_cost_ledger.cpython-313.pyc +0 -0
  89. package/hooks/__pycache__/_learnings.cpython-313.pyc +0 -0
  90. package/hooks/__pycache__/_memory.cpython-313.pyc +0 -0
  91. package/hooks/__pycache__/_post_write.cpython-313.pyc +0 -0
  92. package/hooks/__pycache__/_protected_context.cpython-313.pyc +0 -0
  93. package/hooks/__pycache__/_token_counter.cpython-313.pyc +0 -0
  94. package/hooks/__pycache__/branch_manager.cpython-313.pyc +0 -0
  95. package/hooks/__pycache__/budget_governor.cpython-313.pyc +0 -0
  96. package/hooks/__pycache__/circuit-breaker.cpython-313.pyc +0 -0
  97. package/hooks/__pycache__/compression_feedback.cpython-313.pyc +0 -0
  98. package/hooks/__pycache__/config-guard.cpython-313.pyc +0 -0
  99. package/hooks/__pycache__/context_pressure.cpython-313.pyc +0 -0
  100. package/hooks/__pycache__/credential_store.cpython-313.pyc +0 -0
  101. package/hooks/__pycache__/fetch-rate-limits.cpython-313.pyc +0 -0
  102. package/hooks/__pycache__/firewall.cpython-313.pyc +0 -0
  103. package/hooks/__pycache__/hashline-formatter-bridge.cpython-313.pyc +0 -0
  104. package/hooks/__pycache__/hashline-injector.cpython-313.pyc +0 -0
  105. package/hooks/__pycache__/hashline-validator.cpython-313.pyc +0 -0
  106. package/hooks/__pycache__/idle-detector.cpython-313.pyc +0 -0
  107. package/hooks/__pycache__/instructions-loaded.cpython-313.pyc +0 -0
  108. package/hooks/__pycache__/intentgate-keyword-detector.cpython-313.pyc +0 -0
  109. package/hooks/__pycache__/magic-keyword-router.cpython-313.pyc +0 -0
  110. package/hooks/__pycache__/policy_engine.cpython-313.pyc +0 -0
  111. package/hooks/__pycache__/post-tool-failure.cpython-313.pyc +0 -0
  112. package/hooks/__pycache__/post-write.cpython-313.pyc +0 -0
  113. package/hooks/__pycache__/post_write.cpython-313.pyc +0 -0
  114. package/hooks/__pycache__/pre-compact.cpython-313.pyc +0 -0
  115. package/hooks/__pycache__/pre-tool-inject.cpython-313.pyc +0 -0
  116. package/hooks/__pycache__/prompt-enhancer.cpython-313.pyc +0 -0
  117. package/hooks/__pycache__/quality-runner.cpython-313.pyc +0 -0
  118. package/hooks/__pycache__/query.cpython-313.pyc +0 -0
  119. package/hooks/__pycache__/secret-guard.cpython-313.pyc +0 -0
  120. package/hooks/__pycache__/secret_audit.cpython-313.pyc +0 -0
  121. package/hooks/__pycache__/security_validators.cpython-313.pyc +0 -0
  122. package/hooks/__pycache__/session-end-capture.cpython-313.pyc +0 -0
  123. package/hooks/__pycache__/session-start.cpython-313.pyc +0 -0
  124. package/hooks/__pycache__/setup_wizard.cpython-313.pyc +0 -0
  125. package/hooks/__pycache__/shadow_manager.cpython-313.pyc +0 -0
  126. package/hooks/__pycache__/state_migration.cpython-313.pyc +0 -0
  127. package/hooks/__pycache__/stop-gate.cpython-313.pyc +0 -0
  128. package/hooks/__pycache__/stop_dispatcher.cpython-313.pyc +0 -0
  129. package/hooks/__pycache__/tdd-gate.cpython-313.pyc +0 -0
  130. package/hooks/__pycache__/terms-guard.cpython-313.pyc +0 -0
  131. package/hooks/__pycache__/test-validator.cpython-313.pyc +0 -0
  132. package/hooks/__pycache__/test_generator_hook.cpython-313.pyc +0 -0
  133. package/hooks/__pycache__/todo-state-tracker.cpython-313.pyc +0 -0
  134. package/hooks/__pycache__/tool-ledger.cpython-313.pyc +0 -0
  135. package/hooks/__pycache__/trust_review.cpython-313.pyc +0 -0
  136. package/hooks/__pycache__/user-prompt-submit.cpython-313.pyc +0 -0
  137. package/hooks/_agent_registry.py +481 -0
  138. package/hooks/_analytics.py +291 -0
  139. package/hooks/_budget.py +31 -0
  140. package/hooks/_common.py +761 -0
  141. package/hooks/_compression_optimizer.py +119 -0
  142. package/hooks/_cost_ledger.py +176 -0
  143. package/hooks/_learnings.py +126 -0
  144. package/hooks/_memory.py +103 -0
  145. package/hooks/_post_write.py +46 -0
  146. package/hooks/_protected_context.py +150 -0
  147. package/hooks/_token_counter.py +221 -0
  148. package/hooks/branch_manager.py +255 -0
  149. package/hooks/budget_governor.py +326 -0
  150. package/hooks/circuit-breaker.py +270 -0
  151. package/hooks/compression_feedback.py +254 -0
  152. package/hooks/config-guard.py +193 -0
  153. package/hooks/context_pressure.py +119 -0
  154. package/hooks/credential_store.py +970 -0
  155. package/hooks/fetch-rate-limits.py +212 -0
  156. package/hooks/firewall.py +323 -0
  157. package/hooks/hashline-formatter-bridge.py +224 -0
  158. package/hooks/hashline-injector.py +273 -0
  159. package/hooks/hashline-validator.py +216 -0
  160. package/hooks/idle-detector.py +97 -0
  161. package/hooks/instructions-loaded.py +26 -0
  162. package/hooks/intentgate-keyword-detector.py +200 -0
  163. package/hooks/magic-keyword-router.py +195 -0
  164. package/hooks/policy_engine.py +767 -0
  165. package/hooks/post-tool-failure.py +19 -0
  166. package/hooks/post-write.py +233 -0
  167. package/hooks/pre-compact.py +470 -0
  168. package/hooks/pre-tool-inject.py +98 -0
  169. package/hooks/prompt-enhancer.py +879 -0
  170. package/hooks/quality-runner.py +191 -0
  171. package/hooks/query.py +512 -0
  172. package/hooks/secret-guard.py +120 -0
  173. package/hooks/secret_audit.py +144 -0
  174. package/hooks/security_validators.py +93 -0
  175. package/hooks/session-end-capture.py +505 -0
  176. package/hooks/session-start.py +261 -0
  177. package/hooks/setup_wizard.py +1101 -0
  178. package/hooks/shadow_manager.py +476 -0
  179. package/hooks/state_migration.py +228 -0
  180. package/hooks/stop-gate.py +7 -0
  181. package/hooks/stop_dispatcher.py +1259 -0
  182. package/hooks/tdd-gate.py +10 -0
  183. package/hooks/terms-guard.py +98 -0
  184. package/hooks/test-validator.py +462 -0
  185. package/hooks/test_generator_hook.py +123 -0
  186. package/hooks/todo-state-tracker.py +114 -0
  187. package/hooks/tool-ledger.py +165 -0
  188. package/hooks/trust_review.py +662 -0
  189. package/hooks/user-prompt-submit.py +12 -0
  190. package/hud/omg-hud.mjs +1571 -0
  191. package/lab/__init__.py +1 -0
  192. package/lab/__pycache__/__init__.cpython-313.pyc +0 -0
  193. package/lab/__pycache__/axolotl_adapter.cpython-313.pyc +0 -0
  194. package/lab/__pycache__/forge_runner.cpython-313.pyc +0 -0
  195. package/lab/__pycache__/gazebo_adapter.cpython-313.pyc +0 -0
  196. package/lab/__pycache__/isaac_gym_adapter.cpython-313.pyc +0 -0
  197. package/lab/__pycache__/mock_isaac_env.cpython-313.pyc +0 -0
  198. package/lab/__pycache__/pipeline.cpython-313.pyc +0 -0
  199. package/lab/__pycache__/policies.cpython-313.pyc +0 -0
  200. package/lab/__pycache__/pybullet_adapter.cpython-313.pyc +0 -0
  201. package/lab/axolotl_adapter.py +531 -0
  202. package/lab/forge_runner.py +103 -0
  203. package/lab/gazebo_adapter.py +168 -0
  204. package/lab/isaac_gym_adapter.py +190 -0
  205. package/lab/mock_isaac_env.py +47 -0
  206. package/lab/pipeline.py +712 -0
  207. package/lab/policies.py +52 -0
  208. package/lab/pybullet_adapter.py +192 -0
  209. package/package.json +61 -0
  210. package/plugins/README.md +78 -0
  211. package/plugins/__init__.py +1 -0
  212. package/plugins/__pycache__/__init__.cpython-313.pyc +0 -0
  213. package/plugins/advanced/commands/OMG-code-review.md +114 -0
  214. package/plugins/advanced/commands/OMG-deep-plan.md +266 -0
  215. package/plugins/advanced/commands/OMG-handoff.md +115 -0
  216. package/plugins/advanced/commands/OMG-learn.md +110 -0
  217. package/plugins/advanced/commands/OMG-maintainer.md +31 -0
  218. package/plugins/advanced/commands/OMG-ralph-start.md +43 -0
  219. package/plugins/advanced/commands/OMG-ralph-stop.md +23 -0
  220. package/plugins/advanced/commands/OMG-security-review.md +16 -0
  221. package/plugins/advanced/commands/OMG-sequential-thinking.md +20 -0
  222. package/plugins/advanced/commands/OMG-ship.md +46 -0
  223. package/plugins/advanced/commands/OMG:code-review.md +114 -0
  224. package/plugins/advanced/commands/OMG:deep-plan.md +266 -0
  225. package/plugins/advanced/commands/OMG:handoff.md +115 -0
  226. package/plugins/advanced/commands/OMG:learn.md +110 -0
  227. package/plugins/advanced/commands/OMG:maintainer.md +31 -0
  228. package/plugins/advanced/commands/OMG:ralph-start.md +43 -0
  229. package/plugins/advanced/commands/OMG:ralph-stop.md +23 -0
  230. package/plugins/advanced/commands/OMG:security-review.md +16 -0
  231. package/plugins/advanced/commands/OMG:sequential-thinking.md +20 -0
  232. package/plugins/advanced/commands/OMG:ship.md +46 -0
  233. package/plugins/advanced/plugin.json +104 -0
  234. package/plugins/core/plugin.json +204 -0
  235. package/plugins/dephealth/__init__.py +0 -0
  236. package/plugins/dephealth/__pycache__/__init__.cpython-313.pyc +0 -0
  237. package/plugins/dephealth/__pycache__/cve_scanner.cpython-313.pyc +0 -0
  238. package/plugins/dephealth/__pycache__/license_checker.cpython-313.pyc +0 -0
  239. package/plugins/dephealth/__pycache__/manifest_detector.cpython-313.pyc +0 -0
  240. package/plugins/dephealth/__pycache__/vuln_analyzer.cpython-313.pyc +0 -0
  241. package/plugins/dephealth/cve_scanner.py +279 -0
  242. package/plugins/dephealth/license_checker.py +135 -0
  243. package/plugins/dephealth/manifest_detector.py +423 -0
  244. package/plugins/dephealth/vuln_analyzer.py +176 -0
  245. package/plugins/testgen/__init__.py +0 -0
  246. package/plugins/testgen/__pycache__/__init__.cpython-313.pyc +0 -0
  247. package/plugins/testgen/__pycache__/codamosa_engine.cpython-313.pyc +0 -0
  248. package/plugins/testgen/__pycache__/edge_case_synthesizer.cpython-313.pyc +0 -0
  249. package/plugins/testgen/__pycache__/framework_detector.cpython-313.pyc +0 -0
  250. package/plugins/testgen/__pycache__/skeleton_generator.cpython-313.pyc +0 -0
  251. package/plugins/testgen/codamosa_engine.py +402 -0
  252. package/plugins/testgen/edge_case_synthesizer.py +184 -0
  253. package/plugins/testgen/framework_detector.py +271 -0
  254. package/plugins/testgen/skeleton_generator.py +219 -0
  255. package/plugins/viz/__init__.py +0 -0
  256. package/plugins/viz/__pycache__/__init__.cpython-313.pyc +0 -0
  257. package/plugins/viz/__pycache__/ast_parser.cpython-313.pyc +0 -0
  258. package/plugins/viz/__pycache__/diagram_generator.cpython-313.pyc +0 -0
  259. package/plugins/viz/__pycache__/graph_builder.cpython-313.pyc +0 -0
  260. package/plugins/viz/__pycache__/native_parsers.cpython-313.pyc +0 -0
  261. package/plugins/viz/__pycache__/regex_parser.cpython-313.pyc +0 -0
  262. package/plugins/viz/ast_parser.py +139 -0
  263. package/plugins/viz/diagram_generator.py +192 -0
  264. package/plugins/viz/graph_builder.py +444 -0
  265. package/plugins/viz/native_parsers.py +259 -0
  266. package/plugins/viz/regex_parser.py +112 -0
  267. package/pyproject.toml +143 -0
  268. package/registry/__init__.py +1 -0
  269. package/registry/__pycache__/__init__.cpython-313.pyc +0 -0
  270. package/registry/__pycache__/approval_artifact.cpython-313.pyc +0 -0
  271. package/registry/__pycache__/verify_artifact.cpython-313.pyc +0 -0
  272. package/registry/approval_artifact.py +236 -0
  273. package/registry/bundles/algorithms.yaml +45 -0
  274. package/registry/bundles/api-twin.yaml +48 -0
  275. package/registry/bundles/ast-pack.yaml +80 -0
  276. package/registry/bundles/claim-judge.yaml +49 -0
  277. package/registry/bundles/control-plane.yaml +192 -0
  278. package/registry/bundles/data-lineage.yaml +47 -0
  279. package/registry/bundles/delta-classifier.yaml +47 -0
  280. package/registry/bundles/eval-gate.yaml +47 -0
  281. package/registry/bundles/hash-edit.yaml +73 -0
  282. package/registry/bundles/health.yaml +45 -0
  283. package/registry/bundles/hook-governor.yaml +101 -0
  284. package/registry/bundles/incident-replay.yaml +47 -0
  285. package/registry/bundles/lsp-pack.yaml +80 -0
  286. package/registry/bundles/mcp-fabric.yaml +53 -0
  287. package/registry/bundles/plan-council.yaml +56 -0
  288. package/registry/bundles/preflight.yaml +48 -0
  289. package/registry/bundles/proof-gate.yaml +49 -0
  290. package/registry/bundles/remote-supervisor.yaml +49 -0
  291. package/registry/bundles/robotics.yaml +45 -0
  292. package/registry/bundles/secure-worktree-pipeline.yaml +69 -0
  293. package/registry/bundles/security-check.yaml +50 -0
  294. package/registry/bundles/terminal-lane.yaml +61 -0
  295. package/registry/bundles/test-intent-lock.yaml +49 -0
  296. package/registry/bundles/tracebank.yaml +47 -0
  297. package/registry/bundles/vision.yaml +45 -0
  298. package/registry/omg-capability.schema.json +378 -0
  299. package/registry/policy-packs/airgapped.lock.json +11 -0
  300. package/registry/policy-packs/airgapped.signature.json +10 -0
  301. package/registry/policy-packs/airgapped.yaml +16 -0
  302. package/registry/policy-packs/fintech.lock.json +11 -0
  303. package/registry/policy-packs/fintech.signature.json +10 -0
  304. package/registry/policy-packs/fintech.yaml +15 -0
  305. package/registry/policy-packs/locked-prod.lock.json +11 -0
  306. package/registry/policy-packs/locked-prod.signature.json +10 -0
  307. package/registry/policy-packs/locked-prod.yaml +18 -0
  308. package/registry/trusted_signers.json +44 -0
  309. package/registry/verify_artifact.py +493 -0
  310. package/runtime/__init__.py +36 -0
  311. package/runtime/__pycache__/__init__.cpython-313.pyc +0 -0
  312. package/runtime/__pycache__/adoption.cpython-313.pyc +0 -0
  313. package/runtime/__pycache__/agent_selector.cpython-313.pyc +0 -0
  314. package/runtime/__pycache__/api_twin.cpython-313.pyc +0 -0
  315. package/runtime/__pycache__/architecture_signal.cpython-313.pyc +0 -0
  316. package/runtime/__pycache__/artifact_parsers.cpython-313.pyc +0 -0
  317. package/runtime/__pycache__/asset_loader.cpython-313.pyc +0 -0
  318. package/runtime/__pycache__/background_verification.cpython-313.pyc +0 -0
  319. package/runtime/__pycache__/budget_envelopes.cpython-313.pyc +0 -0
  320. package/runtime/__pycache__/business_workflow.cpython-313.pyc +0 -0
  321. package/runtime/__pycache__/canonical_surface.cpython-313.pyc +0 -0
  322. package/runtime/__pycache__/canonical_taxonomy.cpython-313.pyc +0 -0
  323. package/runtime/__pycache__/claim_judge.cpython-313.pyc +0 -0
  324. package/runtime/__pycache__/cli_provider.cpython-313.pyc +0 -0
  325. package/runtime/__pycache__/compat.cpython-313.pyc +0 -0
  326. package/runtime/__pycache__/complexity_scorer.cpython-313.pyc +0 -0
  327. package/runtime/__pycache__/compliance_governor.cpython-313.pyc +0 -0
  328. package/runtime/__pycache__/config_transaction.cpython-313.pyc +0 -0
  329. package/runtime/__pycache__/context_compiler.cpython-313.pyc +0 -0
  330. package/runtime/__pycache__/context_engine.cpython-313.pyc +0 -0
  331. package/runtime/__pycache__/context_limits.cpython-313.pyc +0 -0
  332. package/runtime/__pycache__/contract_compiler.cpython-313.pyc +0 -0
  333. package/runtime/__pycache__/custom_agent_loader.cpython-313.pyc +0 -0
  334. package/runtime/__pycache__/data_lineage.cpython-313.pyc +0 -0
  335. package/runtime/__pycache__/defense_state.cpython-313.pyc +0 -0
  336. package/runtime/__pycache__/delta_classifier.cpython-313.pyc +0 -0
  337. package/runtime/__pycache__/dispatcher.cpython-313.pyc +0 -0
  338. package/runtime/__pycache__/doc_generator.cpython-313.pyc +0 -0
  339. package/runtime/__pycache__/domain_packs.cpython-313.pyc +0 -0
  340. package/runtime/__pycache__/ecosystem.cpython-313.pyc +0 -0
  341. package/runtime/__pycache__/equalizer.cpython-313.pyc +0 -0
  342. package/runtime/__pycache__/eval_gate.cpython-313.pyc +0 -0
  343. package/runtime/__pycache__/evidence_narrator.cpython-313.pyc +0 -0
  344. package/runtime/__pycache__/evidence_query.cpython-313.pyc +0 -0
  345. package/runtime/__pycache__/evidence_registry.cpython-313.pyc +0 -0
  346. package/runtime/__pycache__/evidence_requirements.cpython-313.pyc +0 -0
  347. package/runtime/__pycache__/exec_kernel.cpython-313.pyc +0 -0
  348. package/runtime/__pycache__/explainer_formatter.cpython-313.pyc +0 -0
  349. package/runtime/__pycache__/feature_registry.cpython-313.pyc +0 -0
  350. package/runtime/__pycache__/forge_agents.cpython-313.pyc +0 -0
  351. package/runtime/__pycache__/forge_contracts.cpython-313.pyc +0 -0
  352. package/runtime/__pycache__/forge_domains.cpython-313.pyc +0 -0
  353. package/runtime/__pycache__/forge_run_id.cpython-313.pyc +0 -0
  354. package/runtime/__pycache__/github_integration.cpython-313.pyc +0 -0
  355. package/runtime/__pycache__/github_review_bot.cpython-313.pyc +0 -0
  356. package/runtime/__pycache__/github_review_contract.cpython-313.pyc +0 -0
  357. package/runtime/__pycache__/github_review_formatter.cpython-313.pyc +0 -0
  358. package/runtime/__pycache__/guide_assert.cpython-313.pyc +0 -0
  359. package/runtime/__pycache__/hook_governor.cpython-313.pyc +0 -0
  360. package/runtime/__pycache__/host_parity.cpython-313.pyc +0 -0
  361. package/runtime/__pycache__/incident_replay.cpython-313.pyc +0 -0
  362. package/runtime/__pycache__/install_planner.cpython-313.pyc +0 -0
  363. package/runtime/__pycache__/interaction_journal.cpython-313.pyc +0 -0
  364. package/runtime/__pycache__/issue_surface.cpython-313.pyc +0 -0
  365. package/runtime/__pycache__/legacy_compat.cpython-313.pyc +0 -0
  366. package/runtime/__pycache__/mcp_config_writers.cpython-313.pyc +0 -0
  367. package/runtime/__pycache__/mcp_lifecycle.cpython-313.pyc +0 -0
  368. package/runtime/__pycache__/mcp_memory_server.cpython-313.pyc +0 -0
  369. package/runtime/__pycache__/memory_store.cpython-313.pyc +0 -0
  370. package/runtime/__pycache__/merge_writer.cpython-313.pyc +0 -0
  371. package/runtime/__pycache__/music_omr_testbed.cpython-313.pyc +0 -0
  372. package/runtime/__pycache__/mutation_gate.cpython-313.pyc +0 -0
  373. package/runtime/__pycache__/omc_compat.cpython-313.pyc +0 -0
  374. package/runtime/__pycache__/omg_browser_cli.cpython-313.pyc +0 -0
  375. package/runtime/__pycache__/omg_mcp_server.cpython-313.pyc +0 -0
  376. package/runtime/__pycache__/opus_plan.cpython-313.pyc +0 -0
  377. package/runtime/__pycache__/playwright_adapter.cpython-313.pyc +0 -0
  378. package/runtime/__pycache__/playwright_pack.cpython-313.pyc +0 -0
  379. package/runtime/__pycache__/plugin_diagnostics.cpython-313.pyc +0 -0
  380. package/runtime/__pycache__/plugin_interop.cpython-313.pyc +0 -0
  381. package/runtime/__pycache__/policy_pack_loader.cpython-313.pyc +0 -0
  382. package/runtime/__pycache__/preflight.cpython-313.pyc +0 -0
  383. package/runtime/__pycache__/profile_io.cpython-313.pyc +0 -0
  384. package/runtime/__pycache__/prompt_compiler.cpython-313.pyc +0 -0
  385. package/runtime/__pycache__/proof_chain.cpython-313.pyc +0 -0
  386. package/runtime/__pycache__/proof_gate.cpython-313.pyc +0 -0
  387. package/runtime/__pycache__/provider_parity_eval.cpython-313.pyc +0 -0
  388. package/runtime/__pycache__/release_artifact_audit.cpython-313.pyc +0 -0
  389. package/runtime/__pycache__/release_run_coordinator.cpython-313.pyc +0 -0
  390. package/runtime/__pycache__/release_surface_compiler.cpython-313.pyc +0 -0
  391. package/runtime/__pycache__/release_surface_registry.cpython-313.pyc +0 -0
  392. package/runtime/__pycache__/release_surfaces.cpython-313.pyc +0 -0
  393. package/runtime/__pycache__/remote_supervisor.cpython-313.pyc +0 -0
  394. package/runtime/__pycache__/repro_pack.cpython-313.pyc +0 -0
  395. package/runtime/__pycache__/rollback_manifest.cpython-313.pyc +0 -0
  396. package/runtime/__pycache__/router_critics.cpython-313.pyc +0 -0
  397. package/runtime/__pycache__/router_executor.cpython-313.pyc +0 -0
  398. package/runtime/__pycache__/router_selector.cpython-313.pyc +0 -0
  399. package/runtime/__pycache__/runtime_contracts.cpython-313.pyc +0 -0
  400. package/runtime/__pycache__/runtime_profile.cpython-313.pyc +0 -0
  401. package/runtime/__pycache__/security_check.cpython-313.pyc +0 -0
  402. package/runtime/__pycache__/session_health.cpython-313.pyc +0 -0
  403. package/runtime/__pycache__/skill_evolution.cpython-313.pyc +0 -0
  404. package/runtime/__pycache__/skill_registry.cpython-313.pyc +0 -0
  405. package/runtime/__pycache__/subagent_dispatcher.cpython-313.pyc +0 -0
  406. package/runtime/__pycache__/subscription_tiers.cpython-313.pyc +0 -0
  407. package/runtime/__pycache__/team_router.cpython-313.pyc +0 -0
  408. package/runtime/__pycache__/test_intent_lock.cpython-313-pytest-9.0.2.pyc +0 -0
  409. package/runtime/__pycache__/test_intent_lock.cpython-313.pyc +0 -0
  410. package/runtime/__pycache__/tmux_session_manager.cpython-313.pyc +0 -0
  411. package/runtime/__pycache__/tool_fabric.cpython-313.pyc +0 -0
  412. package/runtime/__pycache__/tool_plan_gate.cpython-313.pyc +0 -0
  413. package/runtime/__pycache__/tool_relevance.cpython-313.pyc +0 -0
  414. package/runtime/__pycache__/tracebank.cpython-313.pyc +0 -0
  415. package/runtime/__pycache__/untrusted_content.cpython-313.pyc +0 -0
  416. package/runtime/__pycache__/validate.cpython-313.pyc +0 -0
  417. package/runtime/__pycache__/verdict_schema.cpython-313.pyc +0 -0
  418. package/runtime/__pycache__/verification_controller.cpython-313.pyc +0 -0
  419. package/runtime/__pycache__/verification_loop.cpython-313.pyc +0 -0
  420. package/runtime/__pycache__/vision_artifacts.cpython-313.pyc +0 -0
  421. package/runtime/__pycache__/vision_cache.cpython-313.pyc +0 -0
  422. package/runtime/__pycache__/vision_jobs.cpython-313.pyc +0 -0
  423. package/runtime/__pycache__/worker_watchdog.cpython-313.pyc +0 -0
  424. package/runtime/adapters/__init__.py +13 -0
  425. package/runtime/adapters/__pycache__/__init__.cpython-313.pyc +0 -0
  426. package/runtime/adapters/__pycache__/claude.cpython-313.pyc +0 -0
  427. package/runtime/adapters/__pycache__/gpt.cpython-313.pyc +0 -0
  428. package/runtime/adapters/__pycache__/local.cpython-313.pyc +0 -0
  429. package/runtime/adapters/claude.py +63 -0
  430. package/runtime/adapters/gpt.py +56 -0
  431. package/runtime/adapters/local.py +56 -0
  432. package/runtime/adoption.py +280 -0
  433. package/runtime/api_twin.py +450 -0
  434. package/runtime/architecture_signal.py +226 -0
  435. package/runtime/artifact_parsers.py +161 -0
  436. package/runtime/asset_loader.py +62 -0
  437. package/runtime/background_verification.py +178 -0
  438. package/runtime/budget_envelopes.py +398 -0
  439. package/runtime/business_workflow.py +234 -0
  440. package/runtime/canonical_surface.py +53 -0
  441. package/runtime/canonical_taxonomy.py +27 -0
  442. package/runtime/claim_judge.py +648 -0
  443. package/runtime/cli_provider.py +105 -0
  444. package/runtime/compat.py +2222 -0
  445. package/runtime/complexity_scorer.py +148 -0
  446. package/runtime/compliance_governor.py +505 -0
  447. package/runtime/config_transaction.py +304 -0
  448. package/runtime/context_compiler.py +131 -0
  449. package/runtime/context_engine.py +708 -0
  450. package/runtime/context_limits.py +363 -0
  451. package/runtime/contract_compiler.py +3664 -0
  452. package/runtime/custom_agent_loader.py +366 -0
  453. package/runtime/data_lineage.py +244 -0
  454. package/runtime/defense_state.py +261 -0
  455. package/runtime/delta_classifier.py +231 -0
  456. package/runtime/dispatcher.py +47 -0
  457. package/runtime/doc_generator.py +319 -0
  458. package/runtime/domain_packs.py +75 -0
  459. package/runtime/ecosystem.py +371 -0
  460. package/runtime/equalizer.py +268 -0
  461. package/runtime/eval_gate.py +96 -0
  462. package/runtime/evidence_narrator.py +147 -0
  463. package/runtime/evidence_query.py +303 -0
  464. package/runtime/evidence_registry.py +16 -0
  465. package/runtime/evidence_requirements.py +157 -0
  466. package/runtime/exec_kernel.py +267 -0
  467. package/runtime/explainer_formatter.py +82 -0
  468. package/runtime/feature_registry.py +109 -0
  469. package/runtime/forge_agents.py +915 -0
  470. package/runtime/forge_contracts.py +519 -0
  471. package/runtime/forge_domains.py +68 -0
  472. package/runtime/forge_run_id.py +86 -0
  473. package/runtime/guide_assert.py +135 -0
  474. package/runtime/hook_governor.py +156 -0
  475. package/runtime/host_parity.py +373 -0
  476. package/runtime/incident_replay.py +310 -0
  477. package/runtime/install_planner.py +617 -0
  478. package/runtime/interaction_journal.py +566 -0
  479. package/runtime/issue_surface.py +472 -0
  480. package/runtime/legacy_compat.py +7 -0
  481. package/runtime/mcp_config_writers.py +360 -0
  482. package/runtime/mcp_lifecycle.py +175 -0
  483. package/runtime/mcp_memory_server.py +220 -0
  484. package/runtime/memory_parsers/__init__.py +0 -0
  485. package/runtime/memory_parsers/__pycache__/__init__.cpython-313.pyc +0 -0
  486. package/runtime/memory_parsers/__pycache__/chatgpt_parser.cpython-313.pyc +0 -0
  487. package/runtime/memory_parsers/__pycache__/claude_import.cpython-313.pyc +0 -0
  488. package/runtime/memory_parsers/__pycache__/export.cpython-313.pyc +0 -0
  489. package/runtime/memory_parsers/__pycache__/gemini_import.cpython-313.pyc +0 -0
  490. package/runtime/memory_parsers/__pycache__/kimi_import.cpython-313.pyc +0 -0
  491. package/runtime/memory_parsers/chatgpt_parser.py +257 -0
  492. package/runtime/memory_parsers/claude_import.py +107 -0
  493. package/runtime/memory_parsers/export.py +97 -0
  494. package/runtime/memory_parsers/gemini_import.py +91 -0
  495. package/runtime/memory_parsers/kimi_import.py +91 -0
  496. package/runtime/memory_store.py +1182 -0
  497. package/runtime/merge_writer.py +445 -0
  498. package/runtime/music_omr_testbed.py +336 -0
  499. package/runtime/mutation_gate.py +320 -0
  500. package/runtime/omc_compat.py +7 -0
  501. package/runtime/omg_browser_cli.py +95 -0
  502. package/runtime/omg_compat_contract_snapshot.json +936 -0
  503. package/runtime/omg_contract_snapshot.json +936 -0
  504. package/runtime/omg_mcp_server.py +306 -0
  505. package/runtime/playwright_adapter.py +39 -0
  506. package/runtime/playwright_pack.py +253 -0
  507. package/runtime/plugin_diagnostics.py +308 -0
  508. package/runtime/plugin_interop.py +1060 -0
  509. package/runtime/policy_pack_loader.py +147 -0
  510. package/runtime/preflight.py +135 -0
  511. package/runtime/profile_io.py +328 -0
  512. package/runtime/proof_chain.py +472 -0
  513. package/runtime/proof_gate.py +442 -0
  514. package/runtime/provider_parity_eval.py +109 -0
  515. package/runtime/providers/__init__.py +0 -0
  516. package/runtime/providers/__pycache__/__init__.cpython-313.pyc +0 -0
  517. package/runtime/providers/__pycache__/codex_provider.cpython-313.pyc +0 -0
  518. package/runtime/providers/__pycache__/gemini_provider.cpython-313.pyc +0 -0
  519. package/runtime/providers/__pycache__/kimi_provider.cpython-313.pyc +0 -0
  520. package/runtime/providers/__pycache__/opencode_provider.cpython-313.pyc +0 -0
  521. package/runtime/providers/codex_provider.py +129 -0
  522. package/runtime/providers/gemini_provider.py +143 -0
  523. package/runtime/providers/kimi_provider.py +167 -0
  524. package/runtime/providers/opencode_provider.py +99 -0
  525. package/runtime/release_artifact_audit.py +556 -0
  526. package/runtime/release_run_coordinator.py +574 -0
  527. package/runtime/release_surface_compiler.py +643 -0
  528. package/runtime/release_surface_registry.py +283 -0
  529. package/runtime/release_surfaces.py +320 -0
  530. package/runtime/remote_supervisor.py +79 -0
  531. package/runtime/repro_pack.py +398 -0
  532. package/runtime/rollback_manifest.py +143 -0
  533. package/runtime/router_critics.py +229 -0
  534. package/runtime/router_executor.py +142 -0
  535. package/runtime/router_selector.py +99 -0
  536. package/runtime/runtime_contracts.py +292 -0
  537. package/runtime/runtime_profile.py +133 -0
  538. package/runtime/security_check.py +1094 -0
  539. package/runtime/session_health.py +546 -0
  540. package/runtime/skill_evolution.py +221 -0
  541. package/runtime/skill_registry.py +53 -0
  542. package/runtime/subagent_dispatcher.py +604 -0
  543. package/runtime/subscription_tiers.py +258 -0
  544. package/runtime/team_router.py +1399 -0
  545. package/runtime/test_intent_lock.py +543 -0
  546. package/runtime/tmux_session_manager.py +172 -0
  547. package/runtime/tool_fabric.py +570 -0
  548. package/runtime/tool_plan_gate.py +460 -0
  549. package/runtime/tracebank.py +125 -0
  550. package/runtime/untrusted_content.py +360 -0
  551. package/runtime/validate.py +293 -0
  552. package/runtime/verdict_schema.py +198 -0
  553. package/runtime/verification_controller.py +235 -0
  554. package/runtime/verification_loop.py +73 -0
  555. package/runtime/vision_artifacts.py +31 -0
  556. package/runtime/vision_cache.py +38 -0
  557. package/runtime/vision_jobs.py +92 -0
  558. package/runtime/worker_watchdog.py +526 -0
  559. package/scripts/__pycache__/audit-published-artifact.cpython-313.pyc +0 -0
  560. package/scripts/__pycache__/check-doc-parity.cpython-313.pyc +0 -0
  561. package/scripts/__pycache__/check-omg-standalone-clean.cpython-313.pyc +0 -0
  562. package/scripts/__pycache__/github_review_helpers.cpython-313.pyc +0 -0
  563. package/scripts/__pycache__/omg.cpython-313.pyc +0 -0
  564. package/scripts/__pycache__/prepare-release-proof-fixtures.cpython-313.pyc +0 -0
  565. package/scripts/__pycache__/sync-release-identity.cpython-313.pyc +0 -0
  566. package/scripts/__pycache__/validate-release-identity.cpython-313.pyc +0 -0
  567. package/scripts/audit-published-artifact.py +59 -0
  568. package/scripts/check-omg-compat-contract-snapshot.py +137 -0
  569. package/scripts/check-omg-contract-snapshot.py +12 -0
  570. package/scripts/check-omg-public-ready.py +273 -0
  571. package/scripts/check-omg-standalone-clean.py +133 -0
  572. package/scripts/emit_host_parity.py +72 -0
  573. package/scripts/legacy_to_omg_migrate.py +29 -0
  574. package/scripts/migrate-legacy.py +464 -0
  575. package/scripts/omc_to_omg_migrate.py +12 -0
  576. package/scripts/omg.py +2962 -0
  577. package/scripts/pre-release-check.sh +38 -0
  578. package/scripts/prepare-release-proof-fixtures.py +602 -0
  579. package/scripts/print-canonical-version.py +80 -0
  580. package/scripts/settings-merge.py +289 -0
  581. package/scripts/sync-release-identity.py +481 -0
  582. package/scripts/validate-release-identity.py +632 -0
  583. package/scripts/verify-no-omc.sh +5 -0
  584. package/scripts/verify-standalone.sh +35 -0
  585. package/settings.json +751 -0
  586. package/tools/__init__.py +2 -0
  587. package/tools/__pycache__/__init__.cpython-313.pyc +0 -0
  588. package/tools/__pycache__/browser_consent.cpython-313.pyc +0 -0
  589. package/tools/__pycache__/browser_stealth.cpython-313.pyc +0 -0
  590. package/tools/__pycache__/browser_tool.cpython-313.pyc +0 -0
  591. package/tools/__pycache__/changelog_generator.cpython-313.pyc +0 -0
  592. package/tools/__pycache__/commit_splitter.cpython-313.pyc +0 -0
  593. package/tools/__pycache__/config_discovery.cpython-313.pyc +0 -0
  594. package/tools/__pycache__/config_merger.cpython-313.pyc +0 -0
  595. package/tools/__pycache__/dashboard_generator.cpython-313.pyc +0 -0
  596. package/tools/__pycache__/git_inspector.cpython-313.pyc +0 -0
  597. package/tools/__pycache__/lsp_client.cpython-313.pyc +0 -0
  598. package/tools/__pycache__/lsp_operations.cpython-313.pyc +0 -0
  599. package/tools/__pycache__/pr_generator.cpython-313.pyc +0 -0
  600. package/tools/__pycache__/python_repl.cpython-313.pyc +0 -0
  601. package/tools/__pycache__/python_sandbox.cpython-313.pyc +0 -0
  602. package/tools/__pycache__/session_snapshot.cpython-313.pyc +0 -0
  603. package/tools/__pycache__/ssh_manager.cpython-313.pyc +0 -0
  604. package/tools/__pycache__/theme_engine.cpython-313.pyc +0 -0
  605. package/tools/__pycache__/theme_selector.cpython-313.pyc +0 -0
  606. package/tools/__pycache__/web_search.cpython-313.pyc +0 -0
  607. package/tools/browser_consent.py +289 -0
  608. package/tools/browser_stealth.py +481 -0
  609. package/tools/browser_tool.py +448 -0
  610. package/tools/changelog_generator.py +347 -0
  611. package/tools/commit_splitter.py +749 -0
  612. package/tools/config_discovery.py +151 -0
  613. package/tools/config_merger.py +449 -0
  614. package/tools/dashboard_generator.py +300 -0
  615. package/tools/git_inspector.py +298 -0
  616. package/tools/lsp_client.py +275 -0
  617. package/tools/lsp_discovery.py +231 -0
  618. package/tools/lsp_operations.py +392 -0
  619. package/tools/pr_generator.py +404 -0
  620. package/tools/python_repl.py +712 -0
  621. package/tools/python_sandbox.py +768 -0
  622. package/tools/search_providers/__init__.py +77 -0
  623. package/tools/search_providers/__pycache__/__init__.cpython-313.pyc +0 -0
  624. package/tools/search_providers/__pycache__/brave.cpython-313.pyc +0 -0
  625. package/tools/search_providers/__pycache__/exa.cpython-313.pyc +0 -0
  626. package/tools/search_providers/__pycache__/jina.cpython-313.pyc +0 -0
  627. package/tools/search_providers/__pycache__/perplexity.cpython-313.pyc +0 -0
  628. package/tools/search_providers/__pycache__/synthetic.cpython-313.pyc +0 -0
  629. package/tools/search_providers/brave.py +115 -0
  630. package/tools/search_providers/exa.py +116 -0
  631. package/tools/search_providers/jina.py +104 -0
  632. package/tools/search_providers/perplexity.py +139 -0
  633. package/tools/search_providers/synthetic.py +74 -0
  634. package/tools/session_snapshot.py +851 -0
  635. package/tools/ssh_manager.py +912 -0
  636. package/tools/theme_engine.py +296 -0
  637. package/tools/theme_selector.py +137 -0
  638. package/tools/web_search.py +675 -0
@@ -0,0 +1,81 @@
1
+ # OMG GitHub Action
2
+
3
+ The official `OMG PR Reviewer` composite action provides one-step integration for
4
+ evidence-backed PR governance checks. It wraps the full review pipeline into a
5
+ single `action.yml` consumable from any GitHub Actions workflow.
6
+
7
+ ## Quick Setup
8
+
9
+ Add the action to your workflow:
10
+
11
+ ```yaml
12
+ name: OMG PR Review
13
+ on:
14
+ pull_request:
15
+ types: [opened, synchronize, reopened]
16
+
17
+ jobs:
18
+ review:
19
+ runs-on: ubuntu-latest
20
+ steps:
21
+ - uses: actions/checkout@v4
22
+
23
+ # ... your build / test steps that produce artifacts/ ...
24
+
25
+ - uses: trac3r00/OMG@v2
26
+ with:
27
+ repo-full-name: ${{ github.repository }}
28
+ pr-number: ${{ github.event.pull_request.number }}
29
+ head-sha: ${{ github.event.pull_request.head.sha }}
30
+ github-app-id: ${{ vars.OMG_APP_ID }}
31
+ github-app-installation-id: ${{ vars.OMG_APP_INSTALLATION_ID }}
32
+ github-app-private-key: ${{ secrets.OMG_APP_PRIVATE_KEY }}
33
+ ```
34
+
35
+ The action is defined in the root `action.yml` of this repository.
36
+
37
+ ## Inputs
38
+
39
+ | Input | Required | Description |
40
+ | :--- | :---: | :--- |
41
+ | `repo-full-name` | ✅ | Repository full name (`owner/repo`) |
42
+ | `pr-number` | ✅ | Pull request number |
43
+ | `head-sha` | ✅ | PR head commit SHA |
44
+ | `github-app-id` | ✅ | GitHub App ID for posting the review |
45
+ | `github-app-installation-id` | ✅ | GitHub App installation ID |
46
+ | `github-app-private-key` | ✅ | GitHub App private key (PEM format) |
47
+
48
+ ## GitHub App Setup
49
+
50
+ The action authenticates via a GitHub App. Follow [GitHub App Setup](github-app.md)
51
+ to create the app, generate a private key, and configure the required secrets.
52
+
53
+ ## Stable Check Name
54
+
55
+ The required-check name for branch protection is **immutable**:
56
+
57
+ ```
58
+ OMG PR Reviewer
59
+ ```
60
+
61
+ This name is defined in `action.yml` and must not be changed. Set it as your
62
+ required status check in **Settings → Branches → Branch protection rules**.
63
+
64
+ > **Important**: When adding the required check in the GitHub UI, select the
65
+ > entry showing the OMG App icon (not the GitHub Actions icon) to ensure the
66
+ > check is pinned to your App's `app_id`. See [GitHub App Setup](github-app.md)
67
+ > for `app_id` pinning details.
68
+
69
+ ## Reusable Workflow
70
+
71
+ For repositories that prefer a reusable workflow over a composite action, OMG
72
+ also ships `.github/workflows/evidence-gate.yml`. See [GitHub App Setup](github-app.md)
73
+ for the reusable workflow invocation pattern.
74
+
75
+ ## Troubleshooting
76
+
77
+ | Symptom | Cause | Fix |
78
+ | :--- | :--- | :--- |
79
+ | Check never appears | App not installed on repo | Install the GitHub App on the target repository |
80
+ | `GITHUB_CREDENTIALS_MISSING` | Missing env vars | Verify all three secrets/variables are set |
81
+ | Wrong check selected in branch protection | Selected Actions check instead of App check | Choose the entry with the OMG App icon |
@@ -0,0 +1,107 @@
1
+ # GitHub App Required Checks
2
+
3
+ ## Required Check Context Name
4
+
5
+ The OMG PR Reviewer creates a check-run with a deterministic name:
6
+
7
+ ```
8
+ OMG PR Reviewer
9
+ ```
10
+
11
+ This name is the **context** string used for required status checks in branch protection rules.
12
+
13
+ ## Pinning Required Checks to `app_id`
14
+
15
+ GitHub allows any integration or workflow to create a check-run with any name. To prevent spoofing of the `OMG PR Reviewer` check, pin the required check to the OMG GitHub App's `app_id` in your branch protection settings.
16
+
17
+ ### REST API (branch protection)
18
+
19
+ ```json
20
+ PUT /repos/{owner}/{repo}/branches/{branch}/protection
21
+ {
22
+ "required_status_checks": {
23
+ "strict": true,
24
+ "contexts": [],
25
+ "checks": [
26
+ {
27
+ "context": "OMG PR Reviewer",
28
+ "app_id": YOUR_OMG_APP_ID
29
+ }
30
+ ]
31
+ }
32
+ }
33
+ ```
34
+
35
+ When `app_id` is set, only check-runs created by that specific GitHub App are considered authoritative. A workflow or third-party App posting a check-run with the same name but a different `app_id` will not satisfy the requirement.
36
+
37
+ > **Important**: The `app_id` field **must** be specified in the branch protection API call. Omitting it leaves the check unpinned.
38
+
39
+ > **Warning**: Never leave required checks unpinned — any actor can spoof an unpinned check name. Always specify `app_id` to bind the check to the OMG GitHub App.
40
+
41
+ ### Repository Settings UI
42
+
43
+ 1. Go to **Settings > Branches > Branch protection rules**.
44
+ 2. Edit the rule for your default branch.
45
+ 3. Under **Require status checks to pass before merging**, search for `OMG PR Reviewer`.
46
+ 4. Select the entry that shows the OMG App icon (not the GitHub Actions icon).
47
+
48
+ ## Merge-Readiness Evaluation via `isRequired` GraphQL Field
49
+
50
+ Do **not** rely on the raw `mergeable` field from the REST API to determine merge readiness. The `mergeable` field conflates merge conflict status with required-check status and can produce false positives.
51
+
52
+ Instead, use the GraphQL `statusCheckRollup` with the `isRequired` field to query whether each required check has passed:
53
+
54
+ ```graphql
55
+ query MergeReadiness($owner: String!, $repo: String!, $pr: Int!) {
56
+ repository(owner: $owner, name: $repo) {
57
+ pullRequest(number: $pr) {
58
+ commits(last: 1) {
59
+ nodes {
60
+ commit {
61
+ statusCheckRollup {
62
+ contexts(first: 50) {
63
+ nodes {
64
+ ... on CheckRun {
65
+ name
66
+ conclusion
67
+ isRequired(pullRequestNumber: $pr)
68
+ }
69
+ ... on StatusContext {
70
+ context
71
+ state
72
+ isRequired(pullRequestNumber: $pr)
73
+ }
74
+ }
75
+ }
76
+ }
77
+ }
78
+ }
79
+ }
80
+ }
81
+ }
82
+ }
83
+ ```
84
+
85
+ The `isRequired` field returns `true` only for checks that are configured as required for the target branch. A PR is merge-ready when every context where `isRequired: true` also has `conclusion: "SUCCESS"` (for check-runs) or `state: "SUCCESS"` (for status contexts).
86
+
87
+ ## Split-Lane Security Model
88
+
89
+ The OMG CI pipeline uses a split-lane model to isolate untrusted analysis from trusted posting:
90
+
91
+ | Job | Permissions | Checkout | Purpose |
92
+ |---|---|---|---|
93
+ | `pr-analyze` | `contents: read` | PR head (default) | Runs analysis on PR code, produces review artifacts |
94
+ | `post-review` | `contents: read`, `pull-requests: write`, `checks: write` | **Base SHA** (`github.event.pull_request.base.sha`) | Posts review and check-run using App credentials |
95
+
96
+ The `post-review` job checks out the **base branch SHA**, not the PR head. This ensures the posting code is from the trusted base branch and cannot be tampered with by the PR author. App credentials (`OMG_APP_ID`, `OMG_APP_PRIVATE_KEY`, `OMG_APP_INSTALLATION_ID`) are only available in the trusted posting job.
97
+
98
+ ## Check-Run Conclusions
99
+
100
+ The OMG PR Reviewer maps verdict statuses to GitHub check-run conclusions:
101
+
102
+ | Verdict Status | GitHub Conclusion | PR UI Effect |
103
+ |---|---|---|
104
+ | `pass` | `success` | Green checkmark |
105
+ | `fail` | `failure` | Red X |
106
+ | `action_required` | `action_required` | "Take action" button |
107
+ | `pending` | `neutral` | Grey dash |
@@ -0,0 +1,161 @@
1
+ # GitHub App Setup
2
+
3
+ The PR Reviewer Bot uses a GitHub App to securely interact with your repositories. This method is preferred over personal access tokens as it provides fine-grained permissions and short-lived installation tokens.
4
+
5
+ ## Setup
6
+
7
+ ### 1. Create the GitHub App
8
+ 1. Navigate to **Settings** -> **Developer settings** -> **GitHub Apps** -> **New GitHub App**.
9
+ 2. **GitHub App name**: Choose a unique name (e.g., `OMG-Reviewer-Bot`).
10
+ 3. **Homepage URL**: Use your repository URL.
11
+ 4. **Webhook**: Uncheck **Active** unless you are using a custom webhook listener.
12
+ 5. **Permissions**: Grant the following minimum repository permissions:
13
+ - **Pull requests**: Read & write (to post reviews and comments)
14
+ - **Checks**: Read & write (to create check runs)
15
+ - **Contents**: Read-only (to analyze code)
16
+ 6. **Where can this GitHub App be installed?**: Select **Only on this account** or **Any account** based on your needs.
17
+ 7. Click **Create GitHub App**.
18
+
19
+ ### 2. Generate Private Key and Installation ID
20
+ 1. After creation, scroll down to the **Private keys** section and click **Generate a private key**. A `.pem` file will download.
21
+ 2. Note the **App ID** displayed at the top of the app settings page.
22
+ 3. Navigate to **Install App** in the sidebar and install it on your target repository or organization.
23
+ 4. After installation, the URL will look like `https://github.com/settings/installations/12345678`. The number at the end is your `GITHUB_INSTALLATION_ID`.
24
+
25
+ ### 3. Configure Environment Variables
26
+ The bot requires three configuration variables.
27
+
28
+ | Variable | Type | Description |
29
+ | :--- | :--- | :--- |
30
+ | `OMG_APP_ID` | Config Variable | The App ID from your GitHub App settings. |
31
+ | `OMG_APP_PRIVATE_KEY` | Secret | The full content of the downloaded `.pem` file. |
32
+ | `OMG_APP_INSTALLATION_ID` | Config Variable | The ID from the installation URL. |
33
+
34
+ #### Local Development
35
+ Store the private key in a file and load it:
36
+ ```bash
37
+ export GITHUB_APP_ID="123456"
38
+ export GITHUB_INSTALLATION_ID="78901234"
39
+ export GITHUB_APP_PRIVATE_KEY="$(cat path/to/your-app.private-key.pem)"
40
+ ```
41
+
42
+ #### GitHub Actions
43
+ Add the App ID and Installation ID as **Variables** and the Private Key as a **Secret**.
44
+ GitHub Actions forbids secret names starting with `GITHUB_`, so we use the `OMG_` prefix for stored values and map them to the `GITHUB_`-prefixed env vars the runtime expects:
45
+ ```yaml
46
+ env:
47
+ GITHUB_APP_ID: ${{ vars.OMG_APP_ID }}
48
+ GITHUB_INSTALLATION_ID: ${{ vars.OMG_APP_INSTALLATION_ID }}
49
+ GITHUB_APP_PRIVATE_KEY: ${{ secrets.OMG_APP_PRIVATE_KEY }}
50
+ ```
51
+
52
+ ## Reusable Workflow
53
+
54
+ OMG ships a reusable GitHub Actions workflow at `.github/workflows/evidence-gate.yml` that wraps the trusted PR review and check-run posting steps. Consumer repositories can call it from their own workflow instead of duplicating the posting logic:
55
+
56
+ ```yaml
57
+ jobs:
58
+ evidence-gate:
59
+ uses: trac3r00/OMG/.github/workflows/evidence-gate.yml@main
60
+ with:
61
+ repo-full-name: ${{ github.repository }}
62
+ pr-number: ${{ github.event.pull_request.number }}
63
+ head-sha: ${{ github.event.pull_request.head.sha }}
64
+ secrets:
65
+ GITHUB_APP_ID: ${{ secrets.OMG_APP_ID }}
66
+ GITHUB_APP_PRIVATE_KEY: ${{ secrets.OMG_APP_PRIVATE_KEY }}
67
+ GITHUB_INSTALLATION_ID: ${{ secrets.OMG_APP_INSTALLATION_ID }}
68
+ ```
69
+
70
+ The reusable workflow accepts three inputs (`repo-full-name`, `pr-number`, `head-sha`) and three secrets (`GITHUB_APP_ID`, `GITHUB_APP_PRIVATE_KEY`, `GITHUB_INSTALLATION_ID`). The caller is responsible for ensuring the checkout happens from the trusted base SHA — the reusable workflow itself only runs the posting step.
71
+
72
+ > **Tip**: Pin the workflow reference to a specific commit SHA or tag rather than `@main` for production use: `uses: trac3r00/OMG/.github/workflows/evidence-gate.yml@<sha>`.
73
+
74
+ ## Pinning Required Checks by `app_id`
75
+
76
+ GitHub allows any integration or workflow to create a check-run with any name. To prevent spoofing of the `OMG PR Reviewer` check, you **must** pin the required check to the OMG GitHub App's `app_id` in your branch protection settings.
77
+
78
+ When using the REST API to configure branch protection, specify `app_id` in the `checks` array:
79
+
80
+ ```json
81
+ {
82
+ "required_status_checks": {
83
+ "strict": true,
84
+ "contexts": [],
85
+ "checks": [
86
+ {
87
+ "context": "OMG PR Reviewer",
88
+ "app_id": YOUR_OMG_APP_ID
89
+ }
90
+ ]
91
+ }
92
+ }
93
+ ```
94
+
95
+ When `app_id` is set, only check-runs created by that specific GitHub App are considered authoritative. A workflow or third-party App posting a check-run with the same name but a different `app_id` will **not** satisfy the requirement.
96
+
97
+ In the repository settings UI, select the entry showing the OMG App icon (not the GitHub Actions icon) when adding the required check.
98
+
99
+ See [Required Checks Reference](github-app-required-checks.md) for the full API shape and GraphQL merge-readiness queries.
100
+
101
+ ## Stable Check Name
102
+
103
+ The required-check name used by OMG is **immutable**:
104
+
105
+ ```
106
+ OMG PR Reviewer
107
+ ```
108
+
109
+ This value is baked into `action.yml` and the reusable workflow. It must never be
110
+ renamed — branch protection rules, merge queues, and downstream integrations
111
+ depend on this exact string. If you need to change how the check behaves, modify
112
+ the review logic, not the name.
113
+
114
+ > **New**: The root `action.yml` is now the recommended consumable entrypoint for
115
+ > GitHub Actions integration. See [GitHub Action Setup](github-action.md) for the
116
+ > turnkey guide.
117
+
118
+ ## Security Hardening
119
+
120
+ ### Secret Management
121
+ - **GITHUB_APP_ID**: This is non-sensitive. Store it as a repository or organization configuration variable.
122
+ - **GITHUB_APP_PRIVATE_KEY**: This is highly sensitive. Store it as an encrypted secret. Never commit this key to version control.
123
+ - **Rotation**: Regularly rotate your private keys in the GitHub App settings and delete old, unused keys.
124
+
125
+ ### Execution Safety
126
+ - **Untrusted PRs**: Never expose `GITHUB_APP_PRIVATE_KEY` to `pull_request` event jobs that check out untrusted code. Secrets are unavailable to forks by default, but you must ensure your workflow does not manually bypass this.
127
+ - **Workflow Triggers**: Avoid using `pull_request_target` with an explicit checkout of the PR head if you are using app secrets. This combination can allow malicious PRs to exfiltrate your secrets.
128
+ - **Token Expiry**: The bot caches installation access tokens in memory for the duration of their 1-hour TTL and regenerates automatically when they expire. Do not persist tokens to disk or share them across processes.
129
+
130
+ ## Verify
131
+
132
+ Confirm your setup with this checklist:
133
+ - [ ] **Token Generation**: Run the bot locally or in a test workflow. It should successfully exchange the JWT for an installation token.
134
+ - [ ] **Review Posting**: Create a test PR. The bot should post a review or comment.
135
+ - [ ] **Stale Review Dismissal**: Push a new commit to the test PR. The bot should dismiss or update its prior approval.
136
+ - [ ] **Permissions**: Verify the bot can only access the repositories it was explicitly installed on.
137
+
138
+ ## Troubleshooting
139
+
140
+ | Error Code | Cause | Resolution |
141
+ | :--- | :--- | :--- |
142
+ | `GITHUB_CREDENTIALS_MISSING` | One or more env vars are empty. | Check that `GITHUB_APP_ID`, `GITHUB_APP_PRIVATE_KEY`, and `GITHUB_INSTALLATION_ID` are set. |
143
+ | `GITHUB_APP_PRIVATE_KEY_INVALID` | The PEM key is malformed or not RSA. | Ensure the secret contains the full `<RSA PRIVATE KEY PEM HEADER>` block and no extra whitespace. |
144
+ | `GITHUB_JWT_SIGNING_FAILED` | Cryptography error during signing. | Verify your environment has the required dependencies installed. |
145
+ | `GITHUB_TOKEN_REQUEST_FAILED` | Network error or GitHub API downtime. | Check your internet connection and GitHub Status. |
146
+ | `GITHUB_TOKEN_REQUEST_REJECTED` | 403/404 error from GitHub. | Verify the `GITHUB_INSTALLATION_ID` is correct and the app is installed on the repo. |
147
+ | `GITHUB_TOKEN_RESPONSE_INVALID` | Unexpected response from GitHub. | Check if GitHub API versions have changed or if there is a proxy interference. |
148
+
149
+ <!-- OMG:GENERATED:install-fast-path -->
150
+ ## Fast Path
151
+
152
+ > **Prerequisites**: macOS or Linux, Node >=18, Python >=3.10
153
+
154
+ ```bash
155
+ npx omg env doctor
156
+ npx omg install --plan # preview only, no mutations
157
+ npx omg install --apply # apply configuration
158
+ ```
159
+
160
+ The preview step is advisory only and makes no mutations until you run apply.
161
+ <!-- /OMG:GENERATED:install-fast-path -->
@@ -0,0 +1,43 @@
1
+ # Install OMG for Kimi CLI
2
+
3
+ <!-- OMG:GENERATED:install-fast-path -->
4
+ ## Fast Path
5
+
6
+ > **Prerequisites**: macOS or Linux, Node >=18, Python >=3.10
7
+
8
+ ```bash
9
+ npx omg env doctor
10
+ npx omg install --plan # preview only, no mutations
11
+ npx omg install --apply # apply configuration
12
+ ```
13
+
14
+ The preview step is advisory only and makes no mutations until you run apply.
15
+ <!-- /OMG:GENERATED:install-fast-path -->
16
+
17
+ <details><summary>Restricted environments / manual setup</summary>
18
+
19
+ ```bash
20
+ git clone https://github.com/trac3r00/OMG
21
+ cd OMG
22
+ ./OMG-setup.sh install --mode=omg-only --preset=interop
23
+ ```
24
+
25
+ Optional browser capability:
26
+
27
+ ```bash
28
+ ./OMG-setup.sh install --mode=omg-only --preset=interop --enable-browser
29
+ ```
30
+
31
+ </details>
32
+
33
+ ## Verify
34
+
35
+ - `kimi mcp list` should include `omg-control`
36
+ - `~/.kimi/mcp.json` should contain `mcpServers.omg-control`
37
+ - the configured command should point at `~/.claude/omg-runtime/.venv/bin/python`
38
+ - if browser capability is enabled, `~/.claude/omg-runtime/browser/capability.json` should exist
39
+
40
+ ## Notes
41
+
42
+ - Kimi uses native MCP registration; it does not consume Claude `/OMG:*` slash commands
43
+ - OMG support on Kimi is the shared runtime plus MCP control plane
@@ -0,0 +1,38 @@
1
+ # Install OMG for OpenCode
2
+
3
+ <!-- OMG:GENERATED:install-fast-path -->
4
+ ## Fast Path
5
+
6
+ > **Prerequisites**: macOS or Linux, Node >=18, Python >=3.10
7
+
8
+ ```bash
9
+ npx omg env doctor
10
+ npx omg install --plan # preview only, no mutations
11
+ npx omg install --apply # apply configuration
12
+ ```
13
+
14
+ The preview step is advisory only and makes no mutations until you run apply.
15
+ <!-- /OMG:GENERATED:install-fast-path -->
16
+
17
+ <details><summary>Restricted environments / manual setup</summary>
18
+
19
+ ```bash
20
+ git clone https://github.com/trac3r00/OMG
21
+ cd OMG
22
+ ./OMG-setup.sh install --mode=omg-only --preset=interop
23
+ ```
24
+
25
+ </details>
26
+
27
+ ## Verify
28
+
29
+ - OpenCode is supported as a compatibility host in v1 (not a canonical contract host)
30
+ - global config path: `~/.config/opencode/opencode.json`
31
+ - project config path: `opencode.json`
32
+ - MCP entries use the `mcp` key (not `mcpServers`)
33
+ - plugin discovery reads `.opencode/plugins/`
34
+
35
+ ## Notes
36
+
37
+ - OpenCode consumes OMG through compatibility-host MCP registration
38
+ - canonical v2.2.10 behavior-parity hosts are Claude Code, Codex, Gemini CLI, and Kimi CLI
package/docs/proof.md ADDED
@@ -0,0 +1,182 @@
1
+ # OMG Proof Surface
2
+
3
+ [![Compat Gate](https://github.com/trac3r00/OMG/actions/workflows/omg-compat-gate.yml/badge.svg)](https://github.com/trac3r00/OMG/actions/workflows/omg-compat-gate.yml)
4
+ [![npm version](https://img.shields.io/npm/v/%40trac3r%2Foh-my-god)](https://www.npmjs.com/package/@trac3r/oh-my-god)
5
+
6
+ ## How to Read Your Proof
7
+
8
+ <!-- OMG:GENERATED:proof-quickstart -->
9
+ ## Proof Quickstart
10
+
11
+ ```bash
12
+ npx omg proof open --html
13
+ npx omg blocked --last
14
+ npx omg explain run --run-id <id>
15
+ ```
16
+
17
+ Use the HTML view first, then inspect blockers or explain a specific run.
18
+ <!-- /OMG:GENERATED:proof-quickstart -->
19
+
20
+ OMG generates machine-backed evidence for every claim. Here is what the outputs mean.
21
+
22
+ ### Quick Verdict
23
+
24
+ Run `npx omg proof open --html` to see a rendered summary, or `npx omg proof` for a terminal summary. The output tells you:
25
+
26
+ - **Status**: `pass` or `fail` — whether all required evidence was produced and valid
27
+ - **Blockers**: What failed and why, in plain language
28
+ - **Evidence Coverage**: Which verification areas have evidence and which are missing
29
+
30
+ ### What "Pass" Means
31
+
32
+ A passing proof means:
33
+ 1. All required evidence artifacts were generated and are fresh (not stale)
34
+ 2. The claim-judge verified every claim has backing evidence
35
+ 3. Test-intent-lock confirmed tests match stated intentions
36
+ 4. No governance blockers are active
37
+
38
+ ### What "Fail" Means
39
+
40
+ A failing proof means one or more of:
41
+ - Missing evidence artifacts (check `.omg/evidence/` for gaps)
42
+ - Stale evidence (re-run the relevant workflow)
43
+ - Claim without backing evidence (the claim-judge rejected a claim)
44
+ - Active governance blockers (run `npx omg blocked --last` for details)
45
+
46
+ ### Common Commands
47
+
48
+ | Goal | Command |
49
+ |:-----|:--------|
50
+ | See proof summary | `npx omg proof` |
51
+ | Open HTML report | `npx omg proof open --html` |
52
+ | See what is blocked | `npx omg blocked --last` |
53
+ | Explain a specific run | `npx omg explain run --run-id <id>` |
54
+ | Check budget usage | `npx omg budget simulate --enforce` |
55
+
56
+ ## Verification Status
57
+
58
+ OMG keeps verification visible instead of burying it in implementation details.
59
+
60
+ - Runtime evidence root: `.omg/evidence/`
61
+ - Doctor output: `.omg/evidence/doctor.json`
62
+ - Plugin diagnostics: `.omg/evidence/plugin-diagnostics.json` (via `diagnose-plugins`)
63
+ - Security-check artifacts: `.omg/evidence/security-check-*.json`
64
+ - Trust and external input artifacts: `.omg/evidence/trust-*.json`
65
+ - Truth bundles:
66
+ - `claim-judge`: `.omg/evidence/claim-judge-*.json` (verifies claim-to-evidence mapping)
67
+ - `test-intent-lock`: `.omg/evidence/test-intent-lock-*.json` (verifies test-to-intent alignment)
68
+ - `proof-gate`: `.omg/evidence/proof-gate-*.json` (verifies final release readiness)
69
+ - Release execution primitives required by `omg release readiness`:
70
+ - canonical evidence profile registry: `runtime.evidence_requirements.EVIDENCE_REQUIREMENTS_BY_PROFILE` (release-facing labels derive from this map)
71
+ - run coordinator state: `.omg/state/release_run_coordinator/<run_id>.json`
72
+ - TDD lock evidence: `.omg/state/test-intent-lock/*.json`
73
+ - rollback manifest: `.omg/state/rollback_manifest/*.json`
74
+ - session health: `.omg/state/session_health/<run_id>.json`
75
+ - council verdicts: `.omg/state/council_verdicts/<run_id>.json`
76
+ - Forge starter proof (`proof_backed: true`): `.omg/evidence/forge-specialists-*.json`
77
+ - exec kernel state: `.omg/state/exec-kernel/<run_id>.json`
78
+ - worker watchdog replay: `.omg/evidence/subagents/<run_id>-replay.json`
79
+ - merge writer provenance: `.omg/evidence/merge-writer-<run_id>.json`
80
+ - tool fabric ledger: `.omg/state/ledger/tool-ledger.jsonl`
81
+ - budget envelope state: `.omg/state/budget-envelopes/<run_id>.json`
82
+ - issue report: `.omg/evidence/issues/<run_id>.json`
83
+ - host parity report: `.omg/evidence/host-parity-<run_id>.json`
84
+ - music OMR testbed evidence: `.omg/evidence/music-omr-<run_id>.json`
85
+
86
+ ## Certification Lanes
87
+
88
+ OMG proof is multi-lane. Each lane binds a user-facing claim to a freshness policy,
89
+ required evidence, and a release-facing verdict. Music OMR is Lane 1 and the
90
+ permanent flagship gate because it is the hardest continuously enforced daily
91
+ testbed in the system: real-time optical music recognition, transcription
92
+ accuracy, and live transposition under production-style constraints.
93
+
94
+ - Lane 1 / flagship: Music OMR daily gate for deterministic score parsing and live transposition
95
+ - Planned lane: install/apply correctness for launcher previews versus applied mutations
96
+ - Planned lane: uninstall cleanliness for rollback and host cleanup guarantees
97
+ - Planned lane: host parity for canonical provider behavior normalization
98
+ - Planned lane: trust-chain verification for signed approvals, ledgering, and provenance
99
+ - Planned lane: proof-surface integrity for generated docs, artifacts, and release surfaces
100
+
101
+ ## Permanent Music OMR Daily Gate
102
+
103
+ Music OMR is the permanent daily release gate artifact. Release readiness requires a fresh Music OMR evidence file tied to the active run id.
104
+
105
+ - Gate cadence: daily scheduled run via `.github/workflows/omg-release-readiness.yml`
106
+ - Run scope: `run_id` must match the active release evidence pack run
107
+ - Freshness metadata: `freshness.generated_at`, `freshness.max_age_seconds`, `freshness.expires_at`, `freshness.is_fresh`
108
+ - Fixture inventory: `fixture_inventory` must include deterministic fixture ids (for this gate: `simple_c_major.json`, `simple_g_major.json`, `chromatic_fragment.json`, `waltz_three_four.json`, `transposition_pressure_fixture.json`); minimum 5 fixtures required (`fixture_inventory_valid` must be `true`)
109
+ - Trace metadata: `trace.trace_id`, `trace.gate=music-omr-daily`, `trace.run_scope=release-run`, `trace_metadata.testbed`, `trace_metadata.fixture_count`, `trace_metadata.run_id_linkage`
110
+ - Freshness threshold: `freshness_threshold_secs`, `freshness.freshness_threshold_secs`
111
+ - Run linkage: `run_id` must match the active release run, `trace_metadata.run_id_linkage` must equal `run_id`
112
+
113
+ ### What This Means
114
+
115
+ The Music OMR daily gate ensures the OMR (Optical Music Recognition) engine produces correct, deterministic results. If the gate passes, the transposition and score-parsing logic is verified against known fixtures. If it fails, check the `freshness` and `fixture_inventory_valid` fields in the evidence JSON for the specific failure reason.
116
+
117
+ ## Forge v0.3 Evidence
118
+
119
+ Forge v0.3 introduces richer evidence artifacts for domain-specific training and evaluation.
120
+
121
+ - Forge starter proof: `.omg/evidence/forge-specialists-{run_id}.json`
122
+ - Artifact contracts schema:
123
+ - `dataset_lineage`: provenance for training data
124
+ - `model_card`: model metadata and intended use
125
+ - `checkpoint_hash`: integrity for model weights
126
+ - `regression_scoreboard`: evaluation results vs baselines
127
+ - `promotion_decision`: automated or human-in-the-loop release signal
128
+ - Domain pack enforcement: Forge ensures that domain-specific constraints (e.g., robotics safety, algorithm determinism) are satisfied before emitting a release-ready claim.
129
+
130
+ - Release readiness machine output includes `checks.execution_primitives` with `missing`, `invalid`, and `evidence_paths`
131
+ - Browser evidence: `.omg/evidence/browser-*.png` and `.omg/evidence/browser-*.json` (Playwright-backed verification)
132
+ - Canonical browser command: `/OMG:browser` with `/OMG:playwright` as a compatibility alias
133
+ - Trace records and evidence links: `.omg/tracebank/events.jsonl`, `.omg/tracebank/evidence-links.jsonl`
134
+ - Eval gate artifacts and trace links: `.omg/evals/latest.json`, `.omg/evals/history.jsonl`, `.omg/evals/trace-links.jsonl`
135
+ - Lineage manifests: `.omg/lineage/*.json`
136
+ - Release readiness output links these machine artifacts instead of prose-only pass counts.
137
+
138
+ ## Provider Matrix
139
+
140
+ | Provider | Tier | Detect | Auth Check | MCP Config | Host Priority |
141
+ |----------|------|--------|------------|------------|---------------|
142
+ | Claude Code | Canonical | host-native | host-native | yes | primary |
143
+ | Codex | Canonical | yes | yes | yes | primary |
144
+ | Gemini | Canonical | yes | yes | yes | primary |
145
+ | Kimi | Canonical | yes | yes | yes | primary |
146
+ | OpenCode | Compatibility-only | yes | yes | yes | supported |
147
+
148
+ ## Adoption Evidence
149
+
150
+ - Native setup writes `.omg/state/adoption-report.json`
151
+ - Native setup writes `.omg/state/cli-config.yaml`
152
+ - Plugin allowlist: `.omg/state/plugins-allowlist.yaml`
153
+ - `OMG-only` and `coexist` are both covered in setup tests
154
+ - Canonical modes: `chill`, `focused`, `exploratory`
155
+ - OMC, OMX, and Superpowers references stay limited to compatibility and adoption guidance
156
+
157
+ ## HUD Artifact
158
+
159
+ ![OMG HUD](assets/omg-hud.svg)
160
+
161
+ ## Benchmark Tasks
162
+
163
+ Representative benchmark tasks for this release:
164
+
165
+ - host detection and auth wiring
166
+ - canonical security-check routing and evidence emission
167
+ - narrowed stdio OMG control MCP wiring
168
+ - truth bundle verification (claim-judge, test-intent-lock, proof-gate)
169
+ - plan-council role compilation and execution
170
+ - adoption detection with overlapping ecosystems
171
+ - plugin install and uninstall correctness
172
+ - `crazy` orchestration smoke coverage
173
+
174
+ ## Sample Transcripts
175
+
176
+ - Setup: [docs/transcripts/setup.md](transcripts/setup.md)
177
+ - Crazy: [docs/transcripts/crazy.md](transcripts/crazy.md)
178
+
179
+ ## Release Discipline
180
+
181
+ - Public launch checklist: [docs/release-checklist.md](release-checklist.md)
182
+ - Changelog: [CHANGELOG.md](../CHANGELOG.md)
File without changes