@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.
- package/CHANGELOG.md +188 -0
- package/INSTALL-VERIFICATION-INDEX.md +51 -0
- package/LICENSE +21 -0
- package/OMG-setup.sh +2549 -0
- package/QUICK-REFERENCE.md +58 -0
- package/README.md +207 -0
- package/agents/__init__.py +1 -0
- package/agents/__pycache__/model_roles.cpython-313.pyc +0 -0
- package/agents/_model_roles.yaml +26 -0
- package/agents/designer.md +67 -0
- package/agents/explore.md +60 -0
- package/agents/model_roles.py +196 -0
- package/agents/omg-api-builder.md +23 -0
- package/agents/omg-architect-mode.md +41 -0
- package/agents/omg-architect.md +13 -0
- package/agents/omg-backend-engineer.md +41 -0
- package/agents/omg-critic.md +16 -0
- package/agents/omg-database-engineer.md +41 -0
- package/agents/omg-escalation-router.md +17 -0
- package/agents/omg-executor.md +12 -0
- package/agents/omg-frontend-designer.md +41 -0
- package/agents/omg-implement-mode.md +49 -0
- package/agents/omg-infra-engineer.md +41 -0
- package/agents/omg-qa-tester.md +16 -0
- package/agents/omg-research-mode.md +41 -0
- package/agents/omg-security-auditor.md +41 -0
- package/agents/omg-testing-engineer.md +41 -0
- package/agents/plan.md +80 -0
- package/agents/quick_task.md +64 -0
- package/agents/reviewer.md +83 -0
- package/agents/task.md +71 -0
- package/bin/omg +41 -0
- package/commands/OMG:ai-commit.md +113 -0
- package/commands/OMG:api-twin.md +22 -0
- package/commands/OMG:arch.md +313 -0
- package/commands/OMG:browser.md +29 -0
- package/commands/OMG:ccg.md +22 -0
- package/commands/OMG:compat.md +57 -0
- package/commands/OMG:cost.md +181 -0
- package/commands/OMG:crazy.md +125 -0
- package/commands/OMG:create-agent.md +183 -0
- package/commands/OMG:deep-plan.md +18 -0
- package/commands/OMG:deps.md +248 -0
- package/commands/OMG:diagnose-plugins.md +33 -0
- package/commands/OMG:doctor.md +37 -0
- package/commands/OMG:domain-init.md +11 -0
- package/commands/OMG:escalate.md +52 -0
- package/commands/OMG:forge.md +103 -0
- package/commands/OMG:health-check.md +48 -0
- package/commands/OMG:init.md +134 -0
- package/commands/OMG:issue.md +56 -0
- package/commands/OMG:mode.md +44 -0
- package/commands/OMG:playwright.md +17 -0
- package/commands/OMG:preflight.md +26 -0
- package/commands/OMG:preset.md +49 -0
- package/commands/OMG:profile-review.md +58 -0
- package/commands/OMG:project-init.md +11 -0
- package/commands/OMG:ralph-start.md +43 -0
- package/commands/OMG:ralph-stop.md +23 -0
- package/commands/OMG:security-check.md +28 -0
- package/commands/OMG:session-branch.md +101 -0
- package/commands/OMG:session-fork.md +57 -0
- package/commands/OMG:session-merge.md +138 -0
- package/commands/OMG:setup.md +82 -0
- package/commands/OMG:ship.md +18 -0
- package/commands/OMG:stats.md +225 -0
- package/commands/OMG:teams.md +54 -0
- package/commands/OMG:theme.md +44 -0
- package/commands/OMG:validate.md +59 -0
- package/commands/__init__.py +1 -0
- package/docs/command-surface.md +55 -0
- package/docs/install/claude-code.md +53 -0
- package/docs/install/codex.md +45 -0
- package/docs/install/gemini.md +43 -0
- package/docs/install/github-action.md +81 -0
- package/docs/install/github-app-required-checks.md +107 -0
- package/docs/install/github-app.md +161 -0
- package/docs/install/kimi.md +43 -0
- package/docs/install/opencode.md +38 -0
- package/docs/proof.md +182 -0
- package/hooks/__init__.py +0 -0
- package/hooks/__pycache__/__init__.cpython-313.pyc +0 -0
- package/hooks/__pycache__/_agent_registry.cpython-313.pyc +0 -0
- package/hooks/__pycache__/_analytics.cpython-313.pyc +0 -0
- package/hooks/__pycache__/_budget.cpython-313.pyc +0 -0
- package/hooks/__pycache__/_common.cpython-313.pyc +0 -0
- package/hooks/__pycache__/_compression_optimizer.cpython-313.pyc +0 -0
- package/hooks/__pycache__/_cost_ledger.cpython-313.pyc +0 -0
- package/hooks/__pycache__/_learnings.cpython-313.pyc +0 -0
- package/hooks/__pycache__/_memory.cpython-313.pyc +0 -0
- package/hooks/__pycache__/_post_write.cpython-313.pyc +0 -0
- package/hooks/__pycache__/_protected_context.cpython-313.pyc +0 -0
- package/hooks/__pycache__/_token_counter.cpython-313.pyc +0 -0
- package/hooks/__pycache__/branch_manager.cpython-313.pyc +0 -0
- package/hooks/__pycache__/budget_governor.cpython-313.pyc +0 -0
- package/hooks/__pycache__/circuit-breaker.cpython-313.pyc +0 -0
- package/hooks/__pycache__/compression_feedback.cpython-313.pyc +0 -0
- package/hooks/__pycache__/config-guard.cpython-313.pyc +0 -0
- package/hooks/__pycache__/context_pressure.cpython-313.pyc +0 -0
- package/hooks/__pycache__/credential_store.cpython-313.pyc +0 -0
- package/hooks/__pycache__/fetch-rate-limits.cpython-313.pyc +0 -0
- package/hooks/__pycache__/firewall.cpython-313.pyc +0 -0
- package/hooks/__pycache__/hashline-formatter-bridge.cpython-313.pyc +0 -0
- package/hooks/__pycache__/hashline-injector.cpython-313.pyc +0 -0
- package/hooks/__pycache__/hashline-validator.cpython-313.pyc +0 -0
- package/hooks/__pycache__/idle-detector.cpython-313.pyc +0 -0
- package/hooks/__pycache__/instructions-loaded.cpython-313.pyc +0 -0
- package/hooks/__pycache__/intentgate-keyword-detector.cpython-313.pyc +0 -0
- package/hooks/__pycache__/magic-keyword-router.cpython-313.pyc +0 -0
- package/hooks/__pycache__/policy_engine.cpython-313.pyc +0 -0
- package/hooks/__pycache__/post-tool-failure.cpython-313.pyc +0 -0
- package/hooks/__pycache__/post-write.cpython-313.pyc +0 -0
- package/hooks/__pycache__/post_write.cpython-313.pyc +0 -0
- package/hooks/__pycache__/pre-compact.cpython-313.pyc +0 -0
- package/hooks/__pycache__/pre-tool-inject.cpython-313.pyc +0 -0
- package/hooks/__pycache__/prompt-enhancer.cpython-313.pyc +0 -0
- package/hooks/__pycache__/quality-runner.cpython-313.pyc +0 -0
- package/hooks/__pycache__/query.cpython-313.pyc +0 -0
- package/hooks/__pycache__/secret-guard.cpython-313.pyc +0 -0
- package/hooks/__pycache__/secret_audit.cpython-313.pyc +0 -0
- package/hooks/__pycache__/security_validators.cpython-313.pyc +0 -0
- package/hooks/__pycache__/session-end-capture.cpython-313.pyc +0 -0
- package/hooks/__pycache__/session-start.cpython-313.pyc +0 -0
- package/hooks/__pycache__/setup_wizard.cpython-313.pyc +0 -0
- package/hooks/__pycache__/shadow_manager.cpython-313.pyc +0 -0
- package/hooks/__pycache__/state_migration.cpython-313.pyc +0 -0
- package/hooks/__pycache__/stop-gate.cpython-313.pyc +0 -0
- package/hooks/__pycache__/stop_dispatcher.cpython-313.pyc +0 -0
- package/hooks/__pycache__/tdd-gate.cpython-313.pyc +0 -0
- package/hooks/__pycache__/terms-guard.cpython-313.pyc +0 -0
- package/hooks/__pycache__/test-validator.cpython-313.pyc +0 -0
- package/hooks/__pycache__/test_generator_hook.cpython-313.pyc +0 -0
- package/hooks/__pycache__/todo-state-tracker.cpython-313.pyc +0 -0
- package/hooks/__pycache__/tool-ledger.cpython-313.pyc +0 -0
- package/hooks/__pycache__/trust_review.cpython-313.pyc +0 -0
- package/hooks/__pycache__/user-prompt-submit.cpython-313.pyc +0 -0
- package/hooks/_agent_registry.py +481 -0
- package/hooks/_analytics.py +291 -0
- package/hooks/_budget.py +31 -0
- package/hooks/_common.py +761 -0
- package/hooks/_compression_optimizer.py +119 -0
- package/hooks/_cost_ledger.py +176 -0
- package/hooks/_learnings.py +126 -0
- package/hooks/_memory.py +103 -0
- package/hooks/_post_write.py +46 -0
- package/hooks/_protected_context.py +150 -0
- package/hooks/_token_counter.py +221 -0
- package/hooks/branch_manager.py +255 -0
- package/hooks/budget_governor.py +326 -0
- package/hooks/circuit-breaker.py +270 -0
- package/hooks/compression_feedback.py +254 -0
- package/hooks/config-guard.py +193 -0
- package/hooks/context_pressure.py +119 -0
- package/hooks/credential_store.py +970 -0
- package/hooks/fetch-rate-limits.py +212 -0
- package/hooks/firewall.py +323 -0
- package/hooks/hashline-formatter-bridge.py +224 -0
- package/hooks/hashline-injector.py +273 -0
- package/hooks/hashline-validator.py +216 -0
- package/hooks/idle-detector.py +97 -0
- package/hooks/instructions-loaded.py +26 -0
- package/hooks/intentgate-keyword-detector.py +200 -0
- package/hooks/magic-keyword-router.py +195 -0
- package/hooks/policy_engine.py +767 -0
- package/hooks/post-tool-failure.py +19 -0
- package/hooks/post-write.py +233 -0
- package/hooks/pre-compact.py +470 -0
- package/hooks/pre-tool-inject.py +98 -0
- package/hooks/prompt-enhancer.py +879 -0
- package/hooks/quality-runner.py +191 -0
- package/hooks/query.py +512 -0
- package/hooks/secret-guard.py +120 -0
- package/hooks/secret_audit.py +144 -0
- package/hooks/security_validators.py +93 -0
- package/hooks/session-end-capture.py +505 -0
- package/hooks/session-start.py +261 -0
- package/hooks/setup_wizard.py +1101 -0
- package/hooks/shadow_manager.py +476 -0
- package/hooks/state_migration.py +228 -0
- package/hooks/stop-gate.py +7 -0
- package/hooks/stop_dispatcher.py +1259 -0
- package/hooks/tdd-gate.py +10 -0
- package/hooks/terms-guard.py +98 -0
- package/hooks/test-validator.py +462 -0
- package/hooks/test_generator_hook.py +123 -0
- package/hooks/todo-state-tracker.py +114 -0
- package/hooks/tool-ledger.py +165 -0
- package/hooks/trust_review.py +662 -0
- package/hooks/user-prompt-submit.py +12 -0
- package/hud/omg-hud.mjs +1571 -0
- package/lab/__init__.py +1 -0
- package/lab/__pycache__/__init__.cpython-313.pyc +0 -0
- package/lab/__pycache__/axolotl_adapter.cpython-313.pyc +0 -0
- package/lab/__pycache__/forge_runner.cpython-313.pyc +0 -0
- package/lab/__pycache__/gazebo_adapter.cpython-313.pyc +0 -0
- package/lab/__pycache__/isaac_gym_adapter.cpython-313.pyc +0 -0
- package/lab/__pycache__/mock_isaac_env.cpython-313.pyc +0 -0
- package/lab/__pycache__/pipeline.cpython-313.pyc +0 -0
- package/lab/__pycache__/policies.cpython-313.pyc +0 -0
- package/lab/__pycache__/pybullet_adapter.cpython-313.pyc +0 -0
- package/lab/axolotl_adapter.py +531 -0
- package/lab/forge_runner.py +103 -0
- package/lab/gazebo_adapter.py +168 -0
- package/lab/isaac_gym_adapter.py +190 -0
- package/lab/mock_isaac_env.py +47 -0
- package/lab/pipeline.py +712 -0
- package/lab/policies.py +52 -0
- package/lab/pybullet_adapter.py +192 -0
- package/package.json +61 -0
- package/plugins/README.md +78 -0
- package/plugins/__init__.py +1 -0
- package/plugins/__pycache__/__init__.cpython-313.pyc +0 -0
- package/plugins/advanced/commands/OMG-code-review.md +114 -0
- package/plugins/advanced/commands/OMG-deep-plan.md +266 -0
- package/plugins/advanced/commands/OMG-handoff.md +115 -0
- package/plugins/advanced/commands/OMG-learn.md +110 -0
- package/plugins/advanced/commands/OMG-maintainer.md +31 -0
- package/plugins/advanced/commands/OMG-ralph-start.md +43 -0
- package/plugins/advanced/commands/OMG-ralph-stop.md +23 -0
- package/plugins/advanced/commands/OMG-security-review.md +16 -0
- package/plugins/advanced/commands/OMG-sequential-thinking.md +20 -0
- package/plugins/advanced/commands/OMG-ship.md +46 -0
- package/plugins/advanced/commands/OMG:code-review.md +114 -0
- package/plugins/advanced/commands/OMG:deep-plan.md +266 -0
- package/plugins/advanced/commands/OMG:handoff.md +115 -0
- package/plugins/advanced/commands/OMG:learn.md +110 -0
- package/plugins/advanced/commands/OMG:maintainer.md +31 -0
- package/plugins/advanced/commands/OMG:ralph-start.md +43 -0
- package/plugins/advanced/commands/OMG:ralph-stop.md +23 -0
- package/plugins/advanced/commands/OMG:security-review.md +16 -0
- package/plugins/advanced/commands/OMG:sequential-thinking.md +20 -0
- package/plugins/advanced/commands/OMG:ship.md +46 -0
- package/plugins/advanced/plugin.json +104 -0
- package/plugins/core/plugin.json +204 -0
- package/plugins/dephealth/__init__.py +0 -0
- package/plugins/dephealth/__pycache__/__init__.cpython-313.pyc +0 -0
- package/plugins/dephealth/__pycache__/cve_scanner.cpython-313.pyc +0 -0
- package/plugins/dephealth/__pycache__/license_checker.cpython-313.pyc +0 -0
- package/plugins/dephealth/__pycache__/manifest_detector.cpython-313.pyc +0 -0
- package/plugins/dephealth/__pycache__/vuln_analyzer.cpython-313.pyc +0 -0
- package/plugins/dephealth/cve_scanner.py +279 -0
- package/plugins/dephealth/license_checker.py +135 -0
- package/plugins/dephealth/manifest_detector.py +423 -0
- package/plugins/dephealth/vuln_analyzer.py +176 -0
- package/plugins/testgen/__init__.py +0 -0
- package/plugins/testgen/__pycache__/__init__.cpython-313.pyc +0 -0
- package/plugins/testgen/__pycache__/codamosa_engine.cpython-313.pyc +0 -0
- package/plugins/testgen/__pycache__/edge_case_synthesizer.cpython-313.pyc +0 -0
- package/plugins/testgen/__pycache__/framework_detector.cpython-313.pyc +0 -0
- package/plugins/testgen/__pycache__/skeleton_generator.cpython-313.pyc +0 -0
- package/plugins/testgen/codamosa_engine.py +402 -0
- package/plugins/testgen/edge_case_synthesizer.py +184 -0
- package/plugins/testgen/framework_detector.py +271 -0
- package/plugins/testgen/skeleton_generator.py +219 -0
- package/plugins/viz/__init__.py +0 -0
- package/plugins/viz/__pycache__/__init__.cpython-313.pyc +0 -0
- package/plugins/viz/__pycache__/ast_parser.cpython-313.pyc +0 -0
- package/plugins/viz/__pycache__/diagram_generator.cpython-313.pyc +0 -0
- package/plugins/viz/__pycache__/graph_builder.cpython-313.pyc +0 -0
- package/plugins/viz/__pycache__/native_parsers.cpython-313.pyc +0 -0
- package/plugins/viz/__pycache__/regex_parser.cpython-313.pyc +0 -0
- package/plugins/viz/ast_parser.py +139 -0
- package/plugins/viz/diagram_generator.py +192 -0
- package/plugins/viz/graph_builder.py +444 -0
- package/plugins/viz/native_parsers.py +259 -0
- package/plugins/viz/regex_parser.py +112 -0
- package/pyproject.toml +143 -0
- package/registry/__init__.py +1 -0
- package/registry/__pycache__/__init__.cpython-313.pyc +0 -0
- package/registry/__pycache__/approval_artifact.cpython-313.pyc +0 -0
- package/registry/__pycache__/verify_artifact.cpython-313.pyc +0 -0
- package/registry/approval_artifact.py +236 -0
- package/registry/bundles/algorithms.yaml +45 -0
- package/registry/bundles/api-twin.yaml +48 -0
- package/registry/bundles/ast-pack.yaml +80 -0
- package/registry/bundles/claim-judge.yaml +49 -0
- package/registry/bundles/control-plane.yaml +192 -0
- package/registry/bundles/data-lineage.yaml +47 -0
- package/registry/bundles/delta-classifier.yaml +47 -0
- package/registry/bundles/eval-gate.yaml +47 -0
- package/registry/bundles/hash-edit.yaml +73 -0
- package/registry/bundles/health.yaml +45 -0
- package/registry/bundles/hook-governor.yaml +101 -0
- package/registry/bundles/incident-replay.yaml +47 -0
- package/registry/bundles/lsp-pack.yaml +80 -0
- package/registry/bundles/mcp-fabric.yaml +53 -0
- package/registry/bundles/plan-council.yaml +56 -0
- package/registry/bundles/preflight.yaml +48 -0
- package/registry/bundles/proof-gate.yaml +49 -0
- package/registry/bundles/remote-supervisor.yaml +49 -0
- package/registry/bundles/robotics.yaml +45 -0
- package/registry/bundles/secure-worktree-pipeline.yaml +69 -0
- package/registry/bundles/security-check.yaml +50 -0
- package/registry/bundles/terminal-lane.yaml +61 -0
- package/registry/bundles/test-intent-lock.yaml +49 -0
- package/registry/bundles/tracebank.yaml +47 -0
- package/registry/bundles/vision.yaml +45 -0
- package/registry/omg-capability.schema.json +378 -0
- package/registry/policy-packs/airgapped.lock.json +11 -0
- package/registry/policy-packs/airgapped.signature.json +10 -0
- package/registry/policy-packs/airgapped.yaml +16 -0
- package/registry/policy-packs/fintech.lock.json +11 -0
- package/registry/policy-packs/fintech.signature.json +10 -0
- package/registry/policy-packs/fintech.yaml +15 -0
- package/registry/policy-packs/locked-prod.lock.json +11 -0
- package/registry/policy-packs/locked-prod.signature.json +10 -0
- package/registry/policy-packs/locked-prod.yaml +18 -0
- package/registry/trusted_signers.json +44 -0
- package/registry/verify_artifact.py +493 -0
- package/runtime/__init__.py +36 -0
- package/runtime/__pycache__/__init__.cpython-313.pyc +0 -0
- package/runtime/__pycache__/adoption.cpython-313.pyc +0 -0
- package/runtime/__pycache__/agent_selector.cpython-313.pyc +0 -0
- package/runtime/__pycache__/api_twin.cpython-313.pyc +0 -0
- package/runtime/__pycache__/architecture_signal.cpython-313.pyc +0 -0
- package/runtime/__pycache__/artifact_parsers.cpython-313.pyc +0 -0
- package/runtime/__pycache__/asset_loader.cpython-313.pyc +0 -0
- package/runtime/__pycache__/background_verification.cpython-313.pyc +0 -0
- package/runtime/__pycache__/budget_envelopes.cpython-313.pyc +0 -0
- package/runtime/__pycache__/business_workflow.cpython-313.pyc +0 -0
- package/runtime/__pycache__/canonical_surface.cpython-313.pyc +0 -0
- package/runtime/__pycache__/canonical_taxonomy.cpython-313.pyc +0 -0
- package/runtime/__pycache__/claim_judge.cpython-313.pyc +0 -0
- package/runtime/__pycache__/cli_provider.cpython-313.pyc +0 -0
- package/runtime/__pycache__/compat.cpython-313.pyc +0 -0
- package/runtime/__pycache__/complexity_scorer.cpython-313.pyc +0 -0
- package/runtime/__pycache__/compliance_governor.cpython-313.pyc +0 -0
- package/runtime/__pycache__/config_transaction.cpython-313.pyc +0 -0
- package/runtime/__pycache__/context_compiler.cpython-313.pyc +0 -0
- package/runtime/__pycache__/context_engine.cpython-313.pyc +0 -0
- package/runtime/__pycache__/context_limits.cpython-313.pyc +0 -0
- package/runtime/__pycache__/contract_compiler.cpython-313.pyc +0 -0
- package/runtime/__pycache__/custom_agent_loader.cpython-313.pyc +0 -0
- package/runtime/__pycache__/data_lineage.cpython-313.pyc +0 -0
- package/runtime/__pycache__/defense_state.cpython-313.pyc +0 -0
- package/runtime/__pycache__/delta_classifier.cpython-313.pyc +0 -0
- package/runtime/__pycache__/dispatcher.cpython-313.pyc +0 -0
- package/runtime/__pycache__/doc_generator.cpython-313.pyc +0 -0
- package/runtime/__pycache__/domain_packs.cpython-313.pyc +0 -0
- package/runtime/__pycache__/ecosystem.cpython-313.pyc +0 -0
- package/runtime/__pycache__/equalizer.cpython-313.pyc +0 -0
- package/runtime/__pycache__/eval_gate.cpython-313.pyc +0 -0
- package/runtime/__pycache__/evidence_narrator.cpython-313.pyc +0 -0
- package/runtime/__pycache__/evidence_query.cpython-313.pyc +0 -0
- package/runtime/__pycache__/evidence_registry.cpython-313.pyc +0 -0
- package/runtime/__pycache__/evidence_requirements.cpython-313.pyc +0 -0
- package/runtime/__pycache__/exec_kernel.cpython-313.pyc +0 -0
- package/runtime/__pycache__/explainer_formatter.cpython-313.pyc +0 -0
- package/runtime/__pycache__/feature_registry.cpython-313.pyc +0 -0
- package/runtime/__pycache__/forge_agents.cpython-313.pyc +0 -0
- package/runtime/__pycache__/forge_contracts.cpython-313.pyc +0 -0
- package/runtime/__pycache__/forge_domains.cpython-313.pyc +0 -0
- package/runtime/__pycache__/forge_run_id.cpython-313.pyc +0 -0
- package/runtime/__pycache__/github_integration.cpython-313.pyc +0 -0
- package/runtime/__pycache__/github_review_bot.cpython-313.pyc +0 -0
- package/runtime/__pycache__/github_review_contract.cpython-313.pyc +0 -0
- package/runtime/__pycache__/github_review_formatter.cpython-313.pyc +0 -0
- package/runtime/__pycache__/guide_assert.cpython-313.pyc +0 -0
- package/runtime/__pycache__/hook_governor.cpython-313.pyc +0 -0
- package/runtime/__pycache__/host_parity.cpython-313.pyc +0 -0
- package/runtime/__pycache__/incident_replay.cpython-313.pyc +0 -0
- package/runtime/__pycache__/install_planner.cpython-313.pyc +0 -0
- package/runtime/__pycache__/interaction_journal.cpython-313.pyc +0 -0
- package/runtime/__pycache__/issue_surface.cpython-313.pyc +0 -0
- package/runtime/__pycache__/legacy_compat.cpython-313.pyc +0 -0
- package/runtime/__pycache__/mcp_config_writers.cpython-313.pyc +0 -0
- package/runtime/__pycache__/mcp_lifecycle.cpython-313.pyc +0 -0
- package/runtime/__pycache__/mcp_memory_server.cpython-313.pyc +0 -0
- package/runtime/__pycache__/memory_store.cpython-313.pyc +0 -0
- package/runtime/__pycache__/merge_writer.cpython-313.pyc +0 -0
- package/runtime/__pycache__/music_omr_testbed.cpython-313.pyc +0 -0
- package/runtime/__pycache__/mutation_gate.cpython-313.pyc +0 -0
- package/runtime/__pycache__/omc_compat.cpython-313.pyc +0 -0
- package/runtime/__pycache__/omg_browser_cli.cpython-313.pyc +0 -0
- package/runtime/__pycache__/omg_mcp_server.cpython-313.pyc +0 -0
- package/runtime/__pycache__/opus_plan.cpython-313.pyc +0 -0
- package/runtime/__pycache__/playwright_adapter.cpython-313.pyc +0 -0
- package/runtime/__pycache__/playwright_pack.cpython-313.pyc +0 -0
- package/runtime/__pycache__/plugin_diagnostics.cpython-313.pyc +0 -0
- package/runtime/__pycache__/plugin_interop.cpython-313.pyc +0 -0
- package/runtime/__pycache__/policy_pack_loader.cpython-313.pyc +0 -0
- package/runtime/__pycache__/preflight.cpython-313.pyc +0 -0
- package/runtime/__pycache__/profile_io.cpython-313.pyc +0 -0
- package/runtime/__pycache__/prompt_compiler.cpython-313.pyc +0 -0
- package/runtime/__pycache__/proof_chain.cpython-313.pyc +0 -0
- package/runtime/__pycache__/proof_gate.cpython-313.pyc +0 -0
- package/runtime/__pycache__/provider_parity_eval.cpython-313.pyc +0 -0
- package/runtime/__pycache__/release_artifact_audit.cpython-313.pyc +0 -0
- package/runtime/__pycache__/release_run_coordinator.cpython-313.pyc +0 -0
- package/runtime/__pycache__/release_surface_compiler.cpython-313.pyc +0 -0
- package/runtime/__pycache__/release_surface_registry.cpython-313.pyc +0 -0
- package/runtime/__pycache__/release_surfaces.cpython-313.pyc +0 -0
- package/runtime/__pycache__/remote_supervisor.cpython-313.pyc +0 -0
- package/runtime/__pycache__/repro_pack.cpython-313.pyc +0 -0
- package/runtime/__pycache__/rollback_manifest.cpython-313.pyc +0 -0
- package/runtime/__pycache__/router_critics.cpython-313.pyc +0 -0
- package/runtime/__pycache__/router_executor.cpython-313.pyc +0 -0
- package/runtime/__pycache__/router_selector.cpython-313.pyc +0 -0
- package/runtime/__pycache__/runtime_contracts.cpython-313.pyc +0 -0
- package/runtime/__pycache__/runtime_profile.cpython-313.pyc +0 -0
- package/runtime/__pycache__/security_check.cpython-313.pyc +0 -0
- package/runtime/__pycache__/session_health.cpython-313.pyc +0 -0
- package/runtime/__pycache__/skill_evolution.cpython-313.pyc +0 -0
- package/runtime/__pycache__/skill_registry.cpython-313.pyc +0 -0
- package/runtime/__pycache__/subagent_dispatcher.cpython-313.pyc +0 -0
- package/runtime/__pycache__/subscription_tiers.cpython-313.pyc +0 -0
- package/runtime/__pycache__/team_router.cpython-313.pyc +0 -0
- package/runtime/__pycache__/test_intent_lock.cpython-313-pytest-9.0.2.pyc +0 -0
- package/runtime/__pycache__/test_intent_lock.cpython-313.pyc +0 -0
- package/runtime/__pycache__/tmux_session_manager.cpython-313.pyc +0 -0
- package/runtime/__pycache__/tool_fabric.cpython-313.pyc +0 -0
- package/runtime/__pycache__/tool_plan_gate.cpython-313.pyc +0 -0
- package/runtime/__pycache__/tool_relevance.cpython-313.pyc +0 -0
- package/runtime/__pycache__/tracebank.cpython-313.pyc +0 -0
- package/runtime/__pycache__/untrusted_content.cpython-313.pyc +0 -0
- package/runtime/__pycache__/validate.cpython-313.pyc +0 -0
- package/runtime/__pycache__/verdict_schema.cpython-313.pyc +0 -0
- package/runtime/__pycache__/verification_controller.cpython-313.pyc +0 -0
- package/runtime/__pycache__/verification_loop.cpython-313.pyc +0 -0
- package/runtime/__pycache__/vision_artifacts.cpython-313.pyc +0 -0
- package/runtime/__pycache__/vision_cache.cpython-313.pyc +0 -0
- package/runtime/__pycache__/vision_jobs.cpython-313.pyc +0 -0
- package/runtime/__pycache__/worker_watchdog.cpython-313.pyc +0 -0
- package/runtime/adapters/__init__.py +13 -0
- package/runtime/adapters/__pycache__/__init__.cpython-313.pyc +0 -0
- package/runtime/adapters/__pycache__/claude.cpython-313.pyc +0 -0
- package/runtime/adapters/__pycache__/gpt.cpython-313.pyc +0 -0
- package/runtime/adapters/__pycache__/local.cpython-313.pyc +0 -0
- package/runtime/adapters/claude.py +63 -0
- package/runtime/adapters/gpt.py +56 -0
- package/runtime/adapters/local.py +56 -0
- package/runtime/adoption.py +280 -0
- package/runtime/api_twin.py +450 -0
- package/runtime/architecture_signal.py +226 -0
- package/runtime/artifact_parsers.py +161 -0
- package/runtime/asset_loader.py +62 -0
- package/runtime/background_verification.py +178 -0
- package/runtime/budget_envelopes.py +398 -0
- package/runtime/business_workflow.py +234 -0
- package/runtime/canonical_surface.py +53 -0
- package/runtime/canonical_taxonomy.py +27 -0
- package/runtime/claim_judge.py +648 -0
- package/runtime/cli_provider.py +105 -0
- package/runtime/compat.py +2222 -0
- package/runtime/complexity_scorer.py +148 -0
- package/runtime/compliance_governor.py +505 -0
- package/runtime/config_transaction.py +304 -0
- package/runtime/context_compiler.py +131 -0
- package/runtime/context_engine.py +708 -0
- package/runtime/context_limits.py +363 -0
- package/runtime/contract_compiler.py +3664 -0
- package/runtime/custom_agent_loader.py +366 -0
- package/runtime/data_lineage.py +244 -0
- package/runtime/defense_state.py +261 -0
- package/runtime/delta_classifier.py +231 -0
- package/runtime/dispatcher.py +47 -0
- package/runtime/doc_generator.py +319 -0
- package/runtime/domain_packs.py +75 -0
- package/runtime/ecosystem.py +371 -0
- package/runtime/equalizer.py +268 -0
- package/runtime/eval_gate.py +96 -0
- package/runtime/evidence_narrator.py +147 -0
- package/runtime/evidence_query.py +303 -0
- package/runtime/evidence_registry.py +16 -0
- package/runtime/evidence_requirements.py +157 -0
- package/runtime/exec_kernel.py +267 -0
- package/runtime/explainer_formatter.py +82 -0
- package/runtime/feature_registry.py +109 -0
- package/runtime/forge_agents.py +915 -0
- package/runtime/forge_contracts.py +519 -0
- package/runtime/forge_domains.py +68 -0
- package/runtime/forge_run_id.py +86 -0
- package/runtime/guide_assert.py +135 -0
- package/runtime/hook_governor.py +156 -0
- package/runtime/host_parity.py +373 -0
- package/runtime/incident_replay.py +310 -0
- package/runtime/install_planner.py +617 -0
- package/runtime/interaction_journal.py +566 -0
- package/runtime/issue_surface.py +472 -0
- package/runtime/legacy_compat.py +7 -0
- package/runtime/mcp_config_writers.py +360 -0
- package/runtime/mcp_lifecycle.py +175 -0
- package/runtime/mcp_memory_server.py +220 -0
- package/runtime/memory_parsers/__init__.py +0 -0
- package/runtime/memory_parsers/__pycache__/__init__.cpython-313.pyc +0 -0
- package/runtime/memory_parsers/__pycache__/chatgpt_parser.cpython-313.pyc +0 -0
- package/runtime/memory_parsers/__pycache__/claude_import.cpython-313.pyc +0 -0
- package/runtime/memory_parsers/__pycache__/export.cpython-313.pyc +0 -0
- package/runtime/memory_parsers/__pycache__/gemini_import.cpython-313.pyc +0 -0
- package/runtime/memory_parsers/__pycache__/kimi_import.cpython-313.pyc +0 -0
- package/runtime/memory_parsers/chatgpt_parser.py +257 -0
- package/runtime/memory_parsers/claude_import.py +107 -0
- package/runtime/memory_parsers/export.py +97 -0
- package/runtime/memory_parsers/gemini_import.py +91 -0
- package/runtime/memory_parsers/kimi_import.py +91 -0
- package/runtime/memory_store.py +1182 -0
- package/runtime/merge_writer.py +445 -0
- package/runtime/music_omr_testbed.py +336 -0
- package/runtime/mutation_gate.py +320 -0
- package/runtime/omc_compat.py +7 -0
- package/runtime/omg_browser_cli.py +95 -0
- package/runtime/omg_compat_contract_snapshot.json +936 -0
- package/runtime/omg_contract_snapshot.json +936 -0
- package/runtime/omg_mcp_server.py +306 -0
- package/runtime/playwright_adapter.py +39 -0
- package/runtime/playwright_pack.py +253 -0
- package/runtime/plugin_diagnostics.py +308 -0
- package/runtime/plugin_interop.py +1060 -0
- package/runtime/policy_pack_loader.py +147 -0
- package/runtime/preflight.py +135 -0
- package/runtime/profile_io.py +328 -0
- package/runtime/proof_chain.py +472 -0
- package/runtime/proof_gate.py +442 -0
- package/runtime/provider_parity_eval.py +109 -0
- package/runtime/providers/__init__.py +0 -0
- package/runtime/providers/__pycache__/__init__.cpython-313.pyc +0 -0
- package/runtime/providers/__pycache__/codex_provider.cpython-313.pyc +0 -0
- package/runtime/providers/__pycache__/gemini_provider.cpython-313.pyc +0 -0
- package/runtime/providers/__pycache__/kimi_provider.cpython-313.pyc +0 -0
- package/runtime/providers/__pycache__/opencode_provider.cpython-313.pyc +0 -0
- package/runtime/providers/codex_provider.py +129 -0
- package/runtime/providers/gemini_provider.py +143 -0
- package/runtime/providers/kimi_provider.py +167 -0
- package/runtime/providers/opencode_provider.py +99 -0
- package/runtime/release_artifact_audit.py +556 -0
- package/runtime/release_run_coordinator.py +574 -0
- package/runtime/release_surface_compiler.py +643 -0
- package/runtime/release_surface_registry.py +283 -0
- package/runtime/release_surfaces.py +320 -0
- package/runtime/remote_supervisor.py +79 -0
- package/runtime/repro_pack.py +398 -0
- package/runtime/rollback_manifest.py +143 -0
- package/runtime/router_critics.py +229 -0
- package/runtime/router_executor.py +142 -0
- package/runtime/router_selector.py +99 -0
- package/runtime/runtime_contracts.py +292 -0
- package/runtime/runtime_profile.py +133 -0
- package/runtime/security_check.py +1094 -0
- package/runtime/session_health.py +546 -0
- package/runtime/skill_evolution.py +221 -0
- package/runtime/skill_registry.py +53 -0
- package/runtime/subagent_dispatcher.py +604 -0
- package/runtime/subscription_tiers.py +258 -0
- package/runtime/team_router.py +1399 -0
- package/runtime/test_intent_lock.py +543 -0
- package/runtime/tmux_session_manager.py +172 -0
- package/runtime/tool_fabric.py +570 -0
- package/runtime/tool_plan_gate.py +460 -0
- package/runtime/tracebank.py +125 -0
- package/runtime/untrusted_content.py +360 -0
- package/runtime/validate.py +293 -0
- package/runtime/verdict_schema.py +198 -0
- package/runtime/verification_controller.py +235 -0
- package/runtime/verification_loop.py +73 -0
- package/runtime/vision_artifacts.py +31 -0
- package/runtime/vision_cache.py +38 -0
- package/runtime/vision_jobs.py +92 -0
- package/runtime/worker_watchdog.py +526 -0
- package/scripts/__pycache__/audit-published-artifact.cpython-313.pyc +0 -0
- package/scripts/__pycache__/check-doc-parity.cpython-313.pyc +0 -0
- package/scripts/__pycache__/check-omg-standalone-clean.cpython-313.pyc +0 -0
- package/scripts/__pycache__/github_review_helpers.cpython-313.pyc +0 -0
- package/scripts/__pycache__/omg.cpython-313.pyc +0 -0
- package/scripts/__pycache__/prepare-release-proof-fixtures.cpython-313.pyc +0 -0
- package/scripts/__pycache__/sync-release-identity.cpython-313.pyc +0 -0
- package/scripts/__pycache__/validate-release-identity.cpython-313.pyc +0 -0
- package/scripts/audit-published-artifact.py +59 -0
- package/scripts/check-omg-compat-contract-snapshot.py +137 -0
- package/scripts/check-omg-contract-snapshot.py +12 -0
- package/scripts/check-omg-public-ready.py +273 -0
- package/scripts/check-omg-standalone-clean.py +133 -0
- package/scripts/emit_host_parity.py +72 -0
- package/scripts/legacy_to_omg_migrate.py +29 -0
- package/scripts/migrate-legacy.py +464 -0
- package/scripts/omc_to_omg_migrate.py +12 -0
- package/scripts/omg.py +2962 -0
- package/scripts/pre-release-check.sh +38 -0
- package/scripts/prepare-release-proof-fixtures.py +602 -0
- package/scripts/print-canonical-version.py +80 -0
- package/scripts/settings-merge.py +289 -0
- package/scripts/sync-release-identity.py +481 -0
- package/scripts/validate-release-identity.py +632 -0
- package/scripts/verify-no-omc.sh +5 -0
- package/scripts/verify-standalone.sh +35 -0
- package/settings.json +751 -0
- package/tools/__init__.py +2 -0
- package/tools/__pycache__/__init__.cpython-313.pyc +0 -0
- package/tools/__pycache__/browser_consent.cpython-313.pyc +0 -0
- package/tools/__pycache__/browser_stealth.cpython-313.pyc +0 -0
- package/tools/__pycache__/browser_tool.cpython-313.pyc +0 -0
- package/tools/__pycache__/changelog_generator.cpython-313.pyc +0 -0
- package/tools/__pycache__/commit_splitter.cpython-313.pyc +0 -0
- package/tools/__pycache__/config_discovery.cpython-313.pyc +0 -0
- package/tools/__pycache__/config_merger.cpython-313.pyc +0 -0
- package/tools/__pycache__/dashboard_generator.cpython-313.pyc +0 -0
- package/tools/__pycache__/git_inspector.cpython-313.pyc +0 -0
- package/tools/__pycache__/lsp_client.cpython-313.pyc +0 -0
- package/tools/__pycache__/lsp_operations.cpython-313.pyc +0 -0
- package/tools/__pycache__/pr_generator.cpython-313.pyc +0 -0
- package/tools/__pycache__/python_repl.cpython-313.pyc +0 -0
- package/tools/__pycache__/python_sandbox.cpython-313.pyc +0 -0
- package/tools/__pycache__/session_snapshot.cpython-313.pyc +0 -0
- package/tools/__pycache__/ssh_manager.cpython-313.pyc +0 -0
- package/tools/__pycache__/theme_engine.cpython-313.pyc +0 -0
- package/tools/__pycache__/theme_selector.cpython-313.pyc +0 -0
- package/tools/__pycache__/web_search.cpython-313.pyc +0 -0
- package/tools/browser_consent.py +289 -0
- package/tools/browser_stealth.py +481 -0
- package/tools/browser_tool.py +448 -0
- package/tools/changelog_generator.py +347 -0
- package/tools/commit_splitter.py +749 -0
- package/tools/config_discovery.py +151 -0
- package/tools/config_merger.py +449 -0
- package/tools/dashboard_generator.py +300 -0
- package/tools/git_inspector.py +298 -0
- package/tools/lsp_client.py +275 -0
- package/tools/lsp_discovery.py +231 -0
- package/tools/lsp_operations.py +392 -0
- package/tools/pr_generator.py +404 -0
- package/tools/python_repl.py +712 -0
- package/tools/python_sandbox.py +768 -0
- package/tools/search_providers/__init__.py +77 -0
- package/tools/search_providers/__pycache__/__init__.cpython-313.pyc +0 -0
- package/tools/search_providers/__pycache__/brave.cpython-313.pyc +0 -0
- package/tools/search_providers/__pycache__/exa.cpython-313.pyc +0 -0
- package/tools/search_providers/__pycache__/jina.cpython-313.pyc +0 -0
- package/tools/search_providers/__pycache__/perplexity.cpython-313.pyc +0 -0
- package/tools/search_providers/__pycache__/synthetic.cpython-313.pyc +0 -0
- package/tools/search_providers/brave.py +115 -0
- package/tools/search_providers/exa.py +116 -0
- package/tools/search_providers/jina.py +104 -0
- package/tools/search_providers/perplexity.py +139 -0
- package/tools/search_providers/synthetic.py +74 -0
- package/tools/session_snapshot.py +851 -0
- package/tools/ssh_manager.py +912 -0
- package/tools/theme_engine.py +296 -0
- package/tools/theme_selector.py +137 -0
- 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
|
+
[](https://github.com/trac3r00/OMG/actions/workflows/omg-compat-gate.yml)
|
|
4
|
+
[](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
|
+

|
|
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
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|