@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,248 @@
1
+ ---
2
+ description: "Scan project dependencies for CVEs, license issues, and outdated packages."
3
+ allowed-tools: Read, Bash(python*:*), Grep
4
+ argument-hint: "[cves|licenses|outdated]"
5
+ ---
6
+
7
+ # /OMG:deps — Dependency Health
8
+
9
+ Scan project dependencies for CVEs, license compatibility issues, and outdated packages.
10
+
11
+ ## Usage
12
+
13
+ ```
14
+ /OMG:deps
15
+ /OMG:deps cves
16
+ /OMG:deps licenses
17
+ /OMG:deps outdated
18
+ ```
19
+
20
+ ## Sub-Commands
21
+
22
+ ### `/OMG:deps` (default)
23
+
24
+ Full dependency health report combining CVE scan, license check, and outdated package detection.
25
+
26
+ Detects manifest files (package.json, requirements.txt, Cargo.toml, go.mod, Gemfile, pyproject.toml), then runs all three checks and prints a unified summary.
27
+
28
+ ```python
29
+ from plugins.dephealth.manifest_detector import detect_manifests
30
+ from plugins.dephealth.cve_scanner import scan_for_cves
31
+ from plugins.dephealth.license_checker import check_license_compatibility
32
+ from plugins.dephealth.vuln_analyzer import analyze_reachability
33
+
34
+ deps = detect_manifests(".")
35
+ dep_dicts = [{"name": p.name, "version": p.version, "ecosystem": p.ecosystem} for p in deps.packages]
36
+
37
+ # CVE scan
38
+ cve_result = scan_for_cves(dep_dicts, ".")
39
+ reachability = analyze_reachability(cve_result, ".")
40
+
41
+ # License check
42
+ license_result = check_license_compatibility(dep_dicts, ".")
43
+
44
+ # Summary
45
+ print(f"Manifests: {len(deps.manifests)} detected")
46
+ print(f"Packages: {len(deps.packages)} total")
47
+ print(f"CVEs found: {cve_result.get('total_vulns', 0)}")
48
+ print(f" Critical: {cve_result.get('by_severity', {}).get('CRITICAL', 0)}")
49
+ print(f" High: {cve_result.get('by_severity', {}).get('HIGH', 0)}")
50
+ print(f"Reachable: {sum(1 for v in reachability.get('results', []) if v.get('reachability') == 'direct')}")
51
+ print(f"License issues: {license_result.get('issue_count', 0)}")
52
+ ```
53
+
54
+ ### `/OMG:deps cves`
55
+
56
+ CVE scan results only. Queries the OSV batch API for known vulnerabilities in project dependencies.
57
+
58
+ Results include severity classification (CRITICAL/HIGH/MODERATE/LOW) and reachability analysis showing whether vulnerable code paths are actually imported.
59
+
60
+ ```python
61
+ from plugins.dephealth.manifest_detector import detect_manifests
62
+ from plugins.dephealth.cve_scanner import scan_for_cves
63
+ from plugins.dephealth.vuln_analyzer import analyze_reachability
64
+
65
+ deps = detect_manifests(".")
66
+ dep_dicts = [{"name": p.name, "version": p.version, "ecosystem": p.ecosystem} for p in deps.packages]
67
+
68
+ cve_result = scan_for_cves(dep_dicts, ".")
69
+ reachability = analyze_reachability(cve_result, ".")
70
+
71
+ print(f"Packages scanned: {len(dep_dicts)}")
72
+ print(f"Vulnerabilities: {cve_result.get('total_vulns', 0)}")
73
+ print()
74
+
75
+ for vuln in cve_result.get("vulnerabilities", []):
76
+ reach = next((r for r in reachability.get("results", []) if r.get("cve_id") == vuln.get("id")), {})
77
+ reach_label = reach.get("reachability", "unknown")
78
+ risk = reach.get("risk", "unknown")
79
+ print(f" [{vuln.get('severity', 'UNKNOWN')}] {vuln.get('id')}")
80
+ print(f" Package: {vuln.get('package')}")
81
+ print(f" Fixed in: {vuln.get('fixed_version', 'N/A')}")
82
+ print(f" Reachability: {reach_label}")
83
+ print(f" Risk: {risk}")
84
+ if reach.get("recommendation"):
85
+ print(f" Action: {reach['recommendation']}")
86
+ print()
87
+ ```
88
+
89
+ ### `/OMG:deps licenses`
90
+
91
+ License compatibility report only. Checks each dependency's license against a tiered compatibility model.
92
+
93
+ Tiers: permissive (MIT, Apache-2.0, BSD) > weak-copyleft (LGPL, MPL) > copyleft (GPL, AGPL). Flags packages with copyleft or unknown licenses.
94
+
95
+ ```python
96
+ from plugins.dephealth.manifest_detector import detect_manifests
97
+ from plugins.dephealth.license_checker import check_license_compatibility
98
+
99
+ deps = detect_manifests(".")
100
+ dep_dicts = [{"name": p.name, "version": p.version, "ecosystem": p.ecosystem} for p in deps.packages]
101
+
102
+ result = check_license_compatibility(dep_dicts, ".")
103
+
104
+ print(f"Packages checked: {len(dep_dicts)}")
105
+ print(f"License issues: {result.get('issue_count', 0)}")
106
+ print()
107
+
108
+ for pkg in result.get("packages", []):
109
+ tier = pkg.get("tier", "unknown")
110
+ marker = "!!" if tier in ("copyleft", "unknown") else " "
111
+ print(f" {marker} {pkg.get('name')}: {pkg.get('license', 'UNKNOWN')} ({tier})")
112
+
113
+ if result.get("issues"):
114
+ print()
115
+ print("Issues:")
116
+ for issue in result["issues"]:
117
+ print(f" - {issue}")
118
+ ```
119
+
120
+ ### `/OMG:deps outdated`
121
+
122
+ List packages with newer versions available. Compares locked versions against latest published versions.
123
+
124
+ ```python
125
+ from plugins.dephealth.manifest_detector import detect_manifests
126
+
127
+ deps = detect_manifests(".")
128
+
129
+ print(f"Manifests: {len(deps.manifests)}")
130
+ print(f"Packages: {len(deps.packages)}")
131
+ print()
132
+
133
+ print(f"{'Package':<40} {'Current':>12} {'Ecosystem':<12}")
134
+ print("-" * 66)
135
+ for pkg in deps.packages:
136
+ version = pkg.version or "unpinned"
137
+ print(f" {pkg.name:<38} {version:>12} {pkg.ecosystem:<12}")
138
+
139
+ print()
140
+ print("Note: Outdated detection requires network access to registry APIs.")
141
+ print("Packages listed above are from detected manifests.")
142
+ ```
143
+
144
+ ## Feature Flag
145
+
146
+ - **Flag name**: `OMG_DEP_HEALTH_ENABLED`
147
+ - **Default**: `False` (disabled)
148
+ - **Enable**: `export OMG_DEP_HEALTH_ENABLED=1`
149
+
150
+ Or set in `settings.json`:
151
+
152
+ ```json
153
+ {
154
+ "_omg": {
155
+ "features": {
156
+ "DEP_HEALTH": true
157
+ }
158
+ }
159
+ }
160
+ ```
161
+
162
+ ## Output Example
163
+
164
+ ```
165
+ ============================================================
166
+ OMG Dependency Health Report
167
+ ============================================================
168
+
169
+ Manifests: 3 detected
170
+ - package.json (npm)
171
+ - requirements.txt (pip)
172
+ - pyproject.toml (pip)
173
+
174
+ Packages: 87 total
175
+
176
+ CVEs found: 4
177
+ Critical: 1
178
+ High: 2
179
+ Moderate: 1
180
+ Low: 0
181
+
182
+ Reachable: 2 of 4 (direct import detected)
183
+
184
+ License issues: 1
185
+ !! node-ipc: UNKNOWN (unknown)
186
+
187
+ ============================================================
188
+
189
+ [CRITICAL] GHSA-xxxx-yyyy-zzzz
190
+ Package: lodash@4.17.20
191
+ Fixed in: 4.17.21
192
+ Reachability: direct
193
+ Risk: high
194
+ Action: Upgrade lodash to >=4.17.21
195
+
196
+ [HIGH] GHSA-aaaa-bbbb-cccc
197
+ Package: requests@2.25.0
198
+ Fixed in: 2.31.0
199
+ Reachability: transitive
200
+ Risk: medium
201
+ Action: Upgrade requests to >=2.31.0
202
+
203
+ ============================================================
204
+ ```
205
+
206
+ ## Supported Manifests
207
+
208
+ | Manifest | Ecosystem | Parser |
209
+ |----------|-----------|--------|
210
+ | `package.json` | npm | JSON dependencies + devDependencies |
211
+ | `requirements.txt` | pip | PEP 508 lines |
212
+ | `pyproject.toml` | pip | `[project.dependencies]` + `[tool.poetry.dependencies]` |
213
+ | `Cargo.toml` | crates.io | `[dependencies]` + `[dev-dependencies]` |
214
+ | `go.mod` | Go | `require` directives |
215
+ | `Gemfile` | RubyGems | `gem` declarations |
216
+
217
+ ## Safety
218
+
219
+ - **Read-only**: All sub-commands only read manifest files and query external APIs
220
+ - **Feature-gated**: Requires `DEP_HEALTH` flag enabled
221
+ - **No mutations**: Never modifies dependency files, lock files, or project code
222
+ - **Crash-isolated**: All operations exit 0 on failure (graceful error handling)
223
+ - **Cache**: CVE scan results cached to `.omg/state/dephealth/cve-cache.json` (1-hour TTL)
224
+ - **Network**: `/deps cves` requires internet access for OSV API queries
225
+
226
+ ## API
227
+
228
+ ```python
229
+ from plugins.dephealth.manifest_detector import detect_manifests, DependencyList
230
+ from plugins.dephealth.cve_scanner import scan_for_cves
231
+ from plugins.dephealth.license_checker import check_license_compatibility
232
+ from plugins.dephealth.vuln_analyzer import analyze_reachability
233
+
234
+ # Detect all manifest files and parse dependencies
235
+ deps: DependencyList = detect_manifests(".")
236
+
237
+ # Convert to dicts for scanner/checker APIs
238
+ dep_dicts = [{"name": p.name, "version": p.version, "ecosystem": p.ecosystem} for p in deps.packages]
239
+
240
+ # CVE scan via OSV batch API
241
+ cve_result = scan_for_cves(dep_dicts, ".")
242
+
243
+ # Reachability analysis (import tracing)
244
+ reachability = analyze_reachability(cve_result, ".")
245
+
246
+ # License compatibility check
247
+ license_result = check_license_compatibility(dep_dicts, ".")
248
+ ```
@@ -0,0 +1,33 @@
1
+ ---
2
+ description: Diagnose plugin interoperability and conflict status across OMG-supported hosts
3
+ allowed-tools: Bash(python3:*), Read, Grep, Glob
4
+ ---
5
+
6
+ # /OMG:diagnose-plugins
7
+
8
+ Run `python3 scripts/omg.py diagnose-plugins --format json` and report the diagnostics result.
9
+
10
+ ## Output Schema
11
+
12
+ - `schema`: `PluginDiagnosticsResult`
13
+ - `status`: `ok` | `warn` | `error`
14
+ - `records`: discovered plugin records
15
+ - `conflicts`: classified conflict entries
16
+ - `approval_states`: plugin approval states by plugin id
17
+ - `summary`: totals for records, conflicts, and severity buckets
18
+ - `next_actions`: top recommended remediations
19
+ - `elapsed_ms`: total diagnostic runtime
20
+
21
+ ## Commands
22
+
23
+ ```
24
+ python3 scripts/omg.py diagnose-plugins --format json
25
+ python3 scripts/omg.py diagnose-plugins --format text
26
+ python3 scripts/omg.py diagnose-plugins approve --source mcp:filesystem --host claude --reason "trusted" --format json
27
+ ```
28
+
29
+ ## Notes
30
+
31
+ - Base diagnostics command is read-only.
32
+ - Static mode is default; live probing must be explicit via `--live`.
33
+ - `approve` currently returns a pending stub response.
@@ -0,0 +1,37 @@
1
+ ---
2
+ description: Canonical install and runtime verification for OMG
3
+ allowed-tools: Bash(python3:*), Read, Grep, Glob
4
+ ---
5
+
6
+ # /OMG:doctor
7
+
8
+ Run `python3 scripts/omg.py doctor --format json` and report results.
9
+
10
+ ## Required Checks
11
+
12
+ 1. **python_version**: Python >= 3.10 installed and active.
13
+ 2. **fastmcp**: `fastmcp` package importable (needed for MCP server).
14
+ 3. **omg_control_reachable**: `.mcp.json` contains `omg-control` with stdio transport.
15
+ 4. **policy_files**: `commands/` directory or `.omg/policy.yaml` exists.
16
+ 5. **metadata_drift**: All public version surfaces match `CANONICAL_VERSION`.
17
+
18
+ ## Optional Checks
19
+
20
+ 6. **compiled_bundles**: `dist/` contains compiled channel bundles.
21
+ 7. **host_compatibility**: Host config directory (e.g. `~/.claude`) exists.
22
+ 8. **memory_reachable**: HTTP `omg-memory` configured (never required).
23
+ 9. **managed_runtime**: Managed venv at `$CLAUDE_DIR/omg-runtime/.venv` exists.
24
+
25
+ ## Output
26
+
27
+ Each check reports `name`, `status` (`ok` | `blocker` | `warning`), and `message`.
28
+
29
+ Exit code 0 when all **required** checks pass. Non-zero otherwise.
30
+
31
+ ```
32
+ python3 scripts/omg.py doctor --format json
33
+ ```
34
+
35
+ ## Legacy Compat
36
+
37
+ `omg compat run --skill omg-doctor` routes to the same engine.
@@ -0,0 +1,11 @@
1
+ ---
2
+ description: "Alias for /OMG:init [domain-name]. Use /OMG:init instead."
3
+ allowed-tools: Read, Write, Edit, MultiEdit, Bash(mkdir:*), Bash(cat:*), Bash(find:*), Bash(ls:*), Bash(head:*), Bash(grep:*), Bash(tree:*), Bash(node:*), Bash(python*:*), Bash(tee:*), Grep, Glob
4
+ argument-hint: "[domain name, e.g. 'payment' or 'user-profile']"
5
+ ---
6
+
7
+ # /OMG:domain-init → Redirects to /OMG:init [domain]
8
+
9
+ This command is now part of `/OMG:init`. Execute `/OMG:init [domain-name]` (domain scaffolding mode).
10
+
11
+ Follow the **MODE B: DOMAIN INIT** instructions in /OMG:init.
@@ -0,0 +1,52 @@
1
+ ---
2
+ description: Auto-route to Codex or Gemini using OMG standalone internal router.
3
+ allowed-tools: Read, Grep, Glob, Bash(git:*), Bash(rg:*), Bash(find:*), Bash(cat:*), Bash(python3:*)
4
+ argument-hint: "[codex|gemini|ccg|auto] 'task description' or just 'problem'"
5
+ ---
6
+
7
+ # /OMG:escalate — Standalone Smart Escalation
8
+
9
+ ## Auto-Routing
10
+ If no model specified:
11
+ - backend/security/debug/performance → `codex`
12
+ - ui/ux/layout/responsive → `gemini`
13
+ - full-stack/architecture/review-all → `ccg`
14
+
15
+ ## Context package
16
+ Build from OMG canonical state:
17
+ - `.omg/state/profile.yaml`
18
+ - `.omg/state/ledger/failure-tracker.json`
19
+ - relevant files (`git diff --name-only`)
20
+
21
+ ## Runtime entrypoint
22
+ Use the portable runtime installed by `OMG-setup.sh` (`~/.claude/omg-runtime/scripts/omg.py`).
23
+
24
+ ```bash
25
+ OMG_CLI="${OMG_CLI_PATH:-$HOME/.claude/omg-runtime/scripts/omg.py}"
26
+ if [ ! -f "$OMG_CLI" ] && [ -f "scripts/omg.py" ]; then OMG_CLI="scripts/omg.py"; fi
27
+ ```
28
+
29
+ ## Execute
30
+ ```bash
31
+ python3 "$OMG_CLI" teams --target auto --problem "[problem]"
32
+ ```
33
+
34
+ Explicit target:
35
+ ```bash
36
+ python3 "$OMG_CLI" teams --target codex --problem "[problem]"
37
+ python3 "$OMG_CLI" teams --target gemini --problem "[problem]"
38
+ python3 "$OMG_CLI" ccg --problem "[problem]"
39
+ ```
40
+
41
+ ## Output
42
+ Returns `TeamDispatchResult` with:
43
+ - findings
44
+ - action plan
45
+ - evidence metadata
46
+
47
+ Evidence now includes provider health details (`cli_health`) with:
48
+ - binary availability
49
+ - auth readiness (`auth status` probe)
50
+ - `live_connection` boolean per provider
51
+
52
+ No external legacy plugin is required.
@@ -0,0 +1,103 @@
1
+ ---
2
+ description: "FORGE — Labs-only domain-model prototyping and evaluation orchestration. Routes into the lab pipeline with policy enforcement."
3
+ allowed-tools: Read, Bash
4
+ argument-hint: "[job file path]"
5
+ ---
6
+
7
+ # /OMG:forge — Labs-Only Domain Prototyping
8
+
9
+ > **Availability**: `labs` preset only. Blocked on `safe`, `balanced`, and `interop` presets.
10
+
11
+ ## What It Does
12
+
13
+ Forge orchestrates domain-model prototyping and evaluation through the existing lab pipeline (`lab/pipeline.py`). It validates jobs against lab policies (`lab/policies.py`), runs the staged pipeline (data → refine → train/distill → evaluate → regression), and emits structured evidence.
14
+
15
+ Forge does **not**:
16
+ - Train frontier models or perform research-scale model training
17
+ - Bypass lab policy gates (license checks, source validation)
18
+ - Operate outside the `labs` preset boundary
19
+
20
+ ## Policy Enforcement
21
+
22
+ Every forge job is validated through `lab.policies.validate_job_request()` before pipeline execution:
23
+
24
+ 1. **Dataset license** must be in `ALLOWED_LICENSES`: `apache-2.0`, `mit`, `bsd-3-clause`, `cc-by-4.0`
25
+ 2. **Dataset source** must not contain blocked tokens: `unknown`, `leaked`, `stolen`, `unauthorized`, `pirated`
26
+ 3. **Model source** must not contain blocked tokens
27
+ 4. **Model distillation** must be explicitly allowed (`allow_distill: true`)
28
+
29
+ Jobs that fail policy checks are blocked with a structured reason before any pipeline stage runs.
30
+
31
+ ## CLI Usage
32
+
33
+ ```bash
34
+ # Run a forge job from a JSON file (domain required)
35
+ python3 scripts/omg.py forge run --job path/to/job.json
36
+
37
+ # Run with explicit preset (default: labs)
38
+ python3 scripts/omg.py forge run --job path/to/job.json --preset labs
39
+
40
+ # Run inline with domain-aware job JSON
41
+ python3 scripts/omg.py forge run --preset labs --job-json '{"domain":"vision","dataset":{"name":"vision-agent","license":"apache-2.0","source":"internal-curated"},"base_model":{"name":"distill-base-v1","source":"approved-registry","allow_distill":true},"target_metric":0.8,"simulated_metric":0.9,"specialists":["data-curator","training-architect","simulator-engineer"]}'
42
+ ```
43
+
44
+ ## Job File Format
45
+
46
+ Every forge job **must** include an explicit `domain` field. Valid canonical domains: `vision`, `robotics`, `algorithms`, `health`, `cybersecurity`. The alias `vision-agent` is accepted and canonicalized to `vision`.
47
+
48
+ ```json
49
+ {
50
+ "domain": "vision",
51
+ "dataset": {
52
+ "name": "vision-agent",
53
+ "license": "apache-2.0",
54
+ "source": "internal-curated"
55
+ },
56
+ "base_model": {
57
+ "name": "distill-base-v1",
58
+ "source": "approved-registry",
59
+ "allow_distill": true
60
+ },
61
+ "target_metric": 0.85,
62
+ "simulated_metric": 0.90,
63
+ "specialists": ["data-curator", "training-architect", "simulator-engineer"],
64
+ "evaluation_notes": "Domain adaptation for vision agent"
65
+ }
66
+ ```
67
+
68
+ ## Output
69
+
70
+ Forge returns structured JSON with pipeline results. Domain-aware jobs with specialists also include a `specialist_dispatch` block:
71
+
72
+ ```json
73
+ {
74
+ "status": "ready",
75
+ "stage": "complete",
76
+ "stages": [
77
+ {"name": "data_prepare", "status": "ok"},
78
+ {"name": "synthetic_refine", "status": "ok"},
79
+ {"name": "train_distill", "status": "ok"},
80
+ {"name": "evaluate", "status": "ok"},
81
+ {"name": "regression_test", "status": "ok"}
82
+ ],
83
+ "published": false,
84
+ "evaluation_report": {
85
+ "metric": 0.90,
86
+ "target_metric": 0.85,
87
+ "passed": true
88
+ },
89
+ "specialist_dispatch": {
90
+ "status": "ok",
91
+ "specialists_dispatched": ["data-curator", "training-architect", "simulator-engineer"]
92
+ }
93
+ }
94
+ ```
95
+
96
+ ## Scope Boundary
97
+
98
+ Forge is a **domain-prototyping** surface, not a model-training research tool. It stays within:
99
+
100
+ - The lab pipeline's staged execution model
101
+ - Lab policy validation for all dataset and model sources
102
+ - The `labs` preset boundary — no forge operations run without labs enabled
103
+ - Domain-pack contracts (`runtime/domain_packs.py`) for domain-specific prototyping
@@ -0,0 +1,48 @@
1
+ ---
2
+ description: Verify project setup, context health, and tool integration
3
+ allowed-tools: Bash(ls:*), Bash(cat:*), Bash(find:*), Bash(grep:*), Bash(git:*), Bash(which:*), Bash(head:*), Bash(wc:*), Bash(stat:*), Bash(npm run:*), Bash(npx:*), Bash(pnpm run:*), Bash(yarn run:*), Bash(pytest:*), Bash(python3:*), Read, Grep, Glob
4
+ ---
5
+
6
+ # /OMG:health-check
7
+
8
+ Run all checks silently, report only issues:
9
+
10
+ 1. **Profile**: .omg/state/profile.yaml exists and has required fields (name, language, framework)?
11
+ - FAIL if missing. WARN if key fields empty.
12
+
13
+ 2. **Knowledge**: .omg/knowledge/ has content? Any decision files older than 30 days?
14
+ - WARN if empty. WARN if stale files (suggest review).
15
+
16
+ 3. **Quality Gate**: .omg/state/quality-gate.json exists and configured commands are runnable?
17
+ - Check each command with `which` or `--version` where possible.
18
+ - If execution is restricted, report WARN (not FAIL) with "cannot verify — restricted permissions".
19
+ - If command found but fails: report FAIL with exit code.
20
+
21
+ 4. **Secrets**: No .env committed to git? No API keys in tracked files?
22
+ - `git ls-files | grep -i '\.env'` (exclude .env.example/.sample/.template).
23
+ - FAIL if real .env files tracked.
24
+
25
+ 5. **Tools**: Hooks installed? OMG team aliases available? MCP servers listed?
26
+ - Check ~/.claude/hooks/.omg-version exists.
27
+ - Check if Claude sees OMG through plugin-managed skills/surfaces rather than legacy `~/.claude/commands/` files:
28
+ - `~/.claude/plugins/known_marketplaces.json` contains `omg`
29
+ - `~/.claude/plugins/cache/omg/omg/<version>/.claude-plugin/plugin.json` exists
30
+ - WARN if only legacy command files exist without the plugin-managed surface
31
+ - List MCP servers from .mcp.json (informational).
32
+
33
+ 6. **Failures**: Stale failure patterns in failure-tracker.json?
34
+ - WARN if any pattern older than 24h. Suggest `/OMG:handoff` or manual reset.
35
+
36
+ 7. **Context Size**: Estimate total injection from session-start + prompt-enhancer.
37
+ - Sum: profile.yaml lines + working-memory.md lines + handoff.md lines.
38
+ - WARN if >80 lines total.
39
+
40
+ **Report format:**
41
+ ```
42
+ PASS [N] | WARN [N] | FAIL [N]
43
+
44
+ FAIL profile: .omg/state/profile.yaml not found → run /OMG:init
45
+ WARN quality: prettier not found → install or remove from quality-gate.json
46
+ PASS secrets: no .env files tracked
47
+ ...
48
+ ```
@@ -0,0 +1,134 @@
1
+ ---
2
+ description: "Unified initializer — auto-detects: project setup (if no .omg/state), domain scaffolding (if argument given), or health check."
3
+ allowed-tools: Read, Write, Edit, MultiEdit, Bash(mkdir:*), Bash(cat:*), Bash(find:*), Bash(ls:*), Bash(head:*), Bash(grep:*), Bash(tree:*), Bash(node:*), Bash(python*:*), Bash(tee:*), Grep, Glob
4
+ argument-hint: "[optional: domain name like 'payment', or 'check' for health check]"
5
+ ---
6
+
7
+ # /OMG:init — Unified Project & Domain Initializer
8
+
9
+ ## Auto-Detection Logic
10
+
11
+ ```
12
+ if argument is a domain name (e.g. "payment", "user-profile"):
13
+ → DOMAIN INIT (create new domain from existing patterns)
14
+ elif .omg/state directory does not exist:
15
+ → PROJECT INIT (first-time project setup)
16
+ elif .omg/state/profile.yaml exists:
17
+ → HEALTH CHECK (verify everything works, offer upgrades)
18
+ ```
19
+
20
+ ---
21
+
22
+ ## MODE A: PROJECT INIT (no .omg/state found)
23
+
24
+ ### Step 1: Create .omg/state/profile.yaml (MOST IMPORTANT)
25
+ Detect from code. Ask user for anything undetectable.
26
+
27
+ ```yaml
28
+ # .omg/state/profile.yaml — injected every session (keep under 20 lines)
29
+ name: "[from package.json/Cargo.toml/pyproject.toml]"
30
+ description: "[1 sentence]"
31
+ repo: "[from git remote -v]"
32
+
33
+ language: "[detect]"
34
+ framework: "[detect]"
35
+ database: "[detect or ask]"
36
+ infra: "[detect from Dockerfile/terraform/etc]"
37
+ key_deps: "[top 5]"
38
+
39
+ conventions:
40
+ naming: "[detect: camelCase/snake_case]"
41
+ test_cmd: "[detect: npm test/pytest/cargo test]"
42
+ lint_cmd: "[detect: eslint/ruff/clippy]"
43
+
44
+ ai_behavior:
45
+ communication: "[ask user: language preference]"
46
+ when_stuck: "Ask user after 2 failed attempts"
47
+ testing: "User-journey focused, not boilerplate"
48
+ ```
49
+
50
+ ### Step 2: Create knowledge structure + OMG v1 contract dirs
51
+ ```
52
+ mkdir -p .omg/state/ledger .omg/knowledge/decisions .omg/knowledge/patterns .omg/knowledge/rules
53
+ mkdir -p .omg/trust .omg/evidence .omg/shadow .omg/migrations
54
+ ```
55
+
56
+ Copy OMG v1 templates when missing:
57
+ - `.omg/idea.yml`
58
+ - `.omg/policy.yaml`
59
+ - `.omg/runtime.yaml`
60
+
61
+ ### Step 3: Auto-detect quality gate
62
+ ```json
63
+ // .omg/state/quality-gate.json — only include commands that exist
64
+ {
65
+ "format": "[detect: prettier/black/gofmt or null]",
66
+ "lint": "[detect: eslint/ruff/clippy or null]",
67
+ "typecheck": "[detect: tsc/mypy or null]",
68
+ "test": "[detect: npm test/pytest/cargo test or null]"
69
+ }
70
+ ```
71
+
72
+ ### Step 4: Copy relevant contextual rules
73
+ Based on detected project type, copy relevant rules from templates:
74
+ - Web project → security-domains.md, code-hygiene.md
75
+ - Backend → infra-safety.md, dependency-safety.md
76
+ - DDD project → ddd-sdd.md, outside-in.md
77
+
78
+ ### Step 5: Verify
79
+ Run `/OMG:health-check` to confirm setup.
80
+
81
+ ---
82
+
83
+ ## MODE B: DOMAIN INIT (argument = domain name)
84
+
85
+ ### Step 1: Find Reference Pattern
86
+ ```bash
87
+ find . -type f -name "*.ts" -o -name "*.py" | sed 's|/[^/]*$||' | sort | uniq -c | sort -rn | head -10
88
+ ```
89
+ Read the most complete existing domain. Extract:
90
+ - Directory structure (routes, services, models, tests)
91
+ - Naming conventions, error handling, data flow patterns
92
+
93
+ ### Step 2: Define the New Domain
94
+ Ask the user:
95
+ - "What entities does [domain] have?"
96
+ - "What actions can be performed?"
97
+ - "What external services does it talk to?"
98
+ - "What are the business rules?"
99
+
100
+ ### Step 3: Generate Domain Structure
101
+ Match the reference pattern EXACTLY. Create:
102
+ ```
103
+ src/[domain]/
104
+ ├── [domain].model.ts
105
+ ├── [domain].service.ts
106
+ ├── [domain].repository.ts
107
+ ├── [domain].controller.ts (or routes)
108
+ ├── [domain].types.ts
109
+ └── __tests__/
110
+ └── [domain].service.test.ts
111
+ ```
112
+
113
+ ### Step 4: Document the Pattern
114
+ Save to `.omg/knowledge/patterns/[domain]-pattern.md`
115
+
116
+ ---
117
+
118
+ ## MODE C: HEALTH CHECK (already initialized)
119
+
120
+ Run `/OMG:health-check` and additionally:
121
+ - Verify profile.yaml is up-to-date with current project state
122
+ - Check if new contextual rules should be added
123
+ - Offer to update quality-gate.json if tools changed
124
+
125
+ ---
126
+
127
+ ## File Write Method
128
+ Use `Write` tool first. If it fails (file exists), fall back to:
129
+ ```bash
130
+ cat > .omg/state/profile.yaml << 'EOF'
131
+ [content]
132
+ EOF
133
+ ```
134
+ Always READ the file after writing to confirm.