@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,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Active red-team diagnostics and simulation surface for ranked issue triage."
|
|
3
|
+
allowed-tools: Read, Grep, Glob, Bash(python3 scripts/omg.py issue:*), Bash(pytest:*)
|
|
4
|
+
argument-hint: "[optional: --surfaces <csv> --simulate-surface <name> --simulate-scenario <name>]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /OMG:issue
|
|
8
|
+
|
|
9
|
+
Run active, read-only diagnostics across live and governed OMG surfaces, then emit ranked machine-readable issues.
|
|
10
|
+
|
|
11
|
+
## Command Roles
|
|
12
|
+
|
|
13
|
+
- `/OMG:issue` is the diagnostic and red-team simulation surface.
|
|
14
|
+
- `omg fix --issue` remains the issue-driven fix surface.
|
|
15
|
+
- Both share the same backend: `runtime/issue_surface.py`.
|
|
16
|
+
- `/OMG:issue` does not mutate targets.
|
|
17
|
+
|
|
18
|
+
## Surfaces Scanned
|
|
19
|
+
|
|
20
|
+
- `live_session`
|
|
21
|
+
- `forge_runs`
|
|
22
|
+
- `hooks`
|
|
23
|
+
- `skills`
|
|
24
|
+
- `mcps`
|
|
25
|
+
- `plugin_interop`
|
|
26
|
+
- `governed_tools`
|
|
27
|
+
- `domain_pipelines`
|
|
28
|
+
|
|
29
|
+
## Severity and Approval
|
|
30
|
+
|
|
31
|
+
- Severities: `critical`, `high`, `medium`, `low`, `info`
|
|
32
|
+
- High/critical issues must declare signed-approval requirements before fix execution.
|
|
33
|
+
- Output includes fix guidance plus evidence links for replay and audit.
|
|
34
|
+
|
|
35
|
+
## Usage
|
|
36
|
+
|
|
37
|
+
```text
|
|
38
|
+
/OMG:issue
|
|
39
|
+
/OMG:issue --surfaces plugin_interop,governed_tools
|
|
40
|
+
/OMG:issue --simulate-surface hooks --simulate-scenario "delete protected lock"
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Backend Output
|
|
44
|
+
|
|
45
|
+
- Evidence file: `.omg/evidence/issues/<run_id>.json`
|
|
46
|
+
- Report schema: `IssueReport`
|
|
47
|
+
- Each issue includes:
|
|
48
|
+
- `id`
|
|
49
|
+
- `severity`
|
|
50
|
+
- `surface`
|
|
51
|
+
- `title`
|
|
52
|
+
- `description`
|
|
53
|
+
- `fix_guidance`
|
|
54
|
+
- `evidence_links`
|
|
55
|
+
- `approval_required`
|
|
56
|
+
- `approval_reason`
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Set canonical mode (chill/focused/exploratory) for the current session."
|
|
3
|
+
allowed-tools: Read, Write, Edit, Bash
|
|
4
|
+
argument-hint: "[chill|focused|exploratory|clear]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /OMG:mode — Set Canonical Mode
|
|
8
|
+
|
|
9
|
+
Switch Claude's operating mode for the current session.
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
/OMG:mode chill # Focus on low-intensity, conservative progress
|
|
15
|
+
/OMG:mode focused # Focus on coding and execution
|
|
16
|
+
/OMG:mode exploratory # Focus on discovery and synthesis
|
|
17
|
+
/OMG:mode clear # Clear current mode (return to default)
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## What It Does
|
|
21
|
+
|
|
22
|
+
1. Writes `.omg/state/mode.txt` with the selected mode name
|
|
23
|
+
2. The `prompt-enhancer` hook reads this file and injects `@mode:` context on every subsequent prompt
|
|
24
|
+
3. The corresponding rule file (`rules/contextual/{mode}-mode.md`) activates
|
|
25
|
+
|
|
26
|
+
## Canonical Modes
|
|
27
|
+
|
|
28
|
+
| Mode | Focus | When to Use |
|
|
29
|
+
|------|-------|-------------|
|
|
30
|
+
| `chill` | Conservative execution pace | Low-risk maintenance and steady progress |
|
|
31
|
+
| `focused` | Implementation-forward flow | Active feature work with verification |
|
|
32
|
+
| `exploratory` | Discovery, synthesis, and mapping | Unknown domains and research-heavy sessions |
|
|
33
|
+
|
|
34
|
+
## Example
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
/OMG:mode focused
|
|
38
|
+
→ Sets mode to focused
|
|
39
|
+
→ Every prompt now gets: @mode:FOCUSED — Implement deliberately with tight verification loops.
|
|
40
|
+
|
|
41
|
+
/OMG:mode clear
|
|
42
|
+
→ Removes .omg/state/mode.txt
|
|
43
|
+
→ Mode injection stops
|
|
44
|
+
```
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Compatibility alias for /OMG:browser."
|
|
3
|
+
allowed-tools: Read, Grep, Glob
|
|
4
|
+
argument-hint: "<goal or browser task>"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /OMG:playwright
|
|
8
|
+
|
|
9
|
+
`/OMG:playwright` is an alias for `/OMG:browser`.
|
|
10
|
+
|
|
11
|
+
Use the canonical `/OMG:browser` command for public docs, setup guidance, and future OMG browser workflows.
|
|
12
|
+
|
|
13
|
+
## Compatibility Notes
|
|
14
|
+
|
|
15
|
+
- This alias exists so Playwright-oriented users can find the browser surface quickly.
|
|
16
|
+
- Runtime behavior should resolve to the same OMG browser path as `/OMG:browser`.
|
|
17
|
+
- OMG still uses upstream `playwright-cli` under the hood.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Structured OMG router that classifies risk, selects the right route, and emits an execution/evidence plan."
|
|
3
|
+
allowed-tools: Read, Grep, Glob, Bash(python3:*), Bash(rg:*)
|
|
4
|
+
argument-hint: "\"<goal>\""
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /OMG:preflight — Structured Router
|
|
8
|
+
|
|
9
|
+
Use `preflight` when the goal is clear but the safest execution route is not.
|
|
10
|
+
|
|
11
|
+
## Output Contract
|
|
12
|
+
|
|
13
|
+
- restated goal
|
|
14
|
+
- task class
|
|
15
|
+
- risk class
|
|
16
|
+
- recommended route
|
|
17
|
+
- required tools and MCPs
|
|
18
|
+
- missing constraints
|
|
19
|
+
- evidence requirements
|
|
20
|
+
|
|
21
|
+
## Typical Routes
|
|
22
|
+
|
|
23
|
+
- `security-check` for security-sensitive or trust-bound work
|
|
24
|
+
- `api-twin` for contract replay and offline integration work
|
|
25
|
+
- `crazy` for parallel execution
|
|
26
|
+
- `teams` for targeted agent dispatch
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Inspect or apply the canonical OMG preset for the current project."
|
|
3
|
+
allowed-tools: Read, Write, Edit, Bash(python*:*), Bash(ls:*), Bash(grep:*)
|
|
4
|
+
argument-hint: "[safe|balanced|interop|labs|buffet|plugins-first]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /OMG:preset
|
|
8
|
+
|
|
9
|
+
Inspect or apply the canonical OMG preset for the current project.
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```text
|
|
14
|
+
/OMG:preset
|
|
15
|
+
/OMG:preset safe
|
|
16
|
+
/OMG:preset balanced
|
|
17
|
+
/OMG:preset interop
|
|
18
|
+
/OMG:preset labs
|
|
19
|
+
/OMG:preset buffet
|
|
20
|
+
/OMG:preset plugins-first
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Presets
|
|
24
|
+
|
|
25
|
+
- `safe`: minimum managed OMG surface
|
|
26
|
+
- `balanced`: safe defaults plus extra productivity MCPs
|
|
27
|
+
- `interop`: coexistence and shared-memory oriented setup
|
|
28
|
+
- `labs`: enables experimental and browser-heavy surfaces
|
|
29
|
+
- `buffet`: full preset; enables every managed preset flag
|
|
30
|
+
- `plugins-first`: compatibility alias for `interop`
|
|
31
|
+
|
|
32
|
+
## Behavior
|
|
33
|
+
|
|
34
|
+
When a preset is supplied:
|
|
35
|
+
|
|
36
|
+
1. Resolve the requested preset through `runtime.adoption.resolve_preset`.
|
|
37
|
+
2. Persist the canonical preset via `hooks.setup_wizard.set_preferences(...)`.
|
|
38
|
+
3. Update project preset metadata in `.omg/state/cli-config.yaml` and project `settings.json` when present.
|
|
39
|
+
4. Report the resolved preset, enabled features, and selected MCP defaults.
|
|
40
|
+
|
|
41
|
+
When no preset is supplied:
|
|
42
|
+
|
|
43
|
+
1. Read the current project preset from `.omg/state/cli-config.yaml` or project `settings.json`.
|
|
44
|
+
2. Report the resolved preset and its managed feature flags.
|
|
45
|
+
|
|
46
|
+
## Notes
|
|
47
|
+
|
|
48
|
+
- `buffet` is the top-tier preset and should be treated as a superset of `labs`.
|
|
49
|
+
- If the host install also needs updating, rerun `/OMG:setup` with the same preset so the host-level command and MCP surfaces stay aligned.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Review governed profile state — preferences, confirmations, decay, and provenance
|
|
3
|
+
allowed-tools: Bash(python3:*), Read, Grep, Glob
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /OMG:profile-review
|
|
7
|
+
|
|
8
|
+
Read-only inspection of the governed user profile. Reports active style and
|
|
9
|
+
safety preferences, pending destructive confirmations, stale/decay candidates,
|
|
10
|
+
and provenance summaries.
|
|
11
|
+
|
|
12
|
+
**This command never mutates `profile.yaml`.**
|
|
13
|
+
|
|
14
|
+
## Usage
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
python3 scripts/omg.py profile-review [--format json|text]
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
- `--format json` — machine-readable JSON (default)
|
|
21
|
+
- `--format text` — human-readable summary
|
|
22
|
+
|
|
23
|
+
## JSON output shape
|
|
24
|
+
|
|
25
|
+
```json
|
|
26
|
+
{
|
|
27
|
+
"schema": "ProfileReview",
|
|
28
|
+
"style": [ { "field": "...", "value": "...", "confirmation_state": "...", ... } ],
|
|
29
|
+
"safety": [ { "field": "...", "value": "...", "confirmation_state": "...", ... } ],
|
|
30
|
+
"pending_confirmations": [ { "field": "...", "value": "...", "section": "..." } ],
|
|
31
|
+
"decay_candidates": [ { "field": "...", "decay_score": 0.3, ... } ],
|
|
32
|
+
"provenance_summary": [ { "run_id": "...", "source": "...", "field": "...", "updated_at": "..." } ],
|
|
33
|
+
"profile_version": "sha256..."
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Auto-action routing
|
|
38
|
+
|
|
39
|
+
Session health auto-actions may route to this command when governed profile
|
|
40
|
+
state becomes risky. When `evaluate_auto_actions()` in `runtime/session_health.py`
|
|
41
|
+
returns `require-review`, the agent is directed here to inspect risk before
|
|
42
|
+
proceeding. This command remains strictly read-only — it never mutates
|
|
43
|
+
`profile.yaml` or applies autonomous fixes.
|
|
44
|
+
|
|
45
|
+
Bounded auto-actions that may trigger this route:
|
|
46
|
+
|
|
47
|
+
- **pause** — session blocked due to high contamination or overthinking; destructive preferences escalate to require-review
|
|
48
|
+
- **require-review** — profile risk detected (destructive preferences or pending confirmations)
|
|
49
|
+
- **warn** — verification errors combined with profile risk
|
|
50
|
+
|
|
51
|
+
## Report sections
|
|
52
|
+
|
|
53
|
+
1. **Style preferences** — governed style entries with source, learned_at, decay metadata
|
|
54
|
+
2. **Safety preferences** — governed safety entries (decay-immune)
|
|
55
|
+
3. **Pending confirmations** — entries marked `pending_confirmation` (destructive signals awaiting user approval)
|
|
56
|
+
4. **Decay candidates** — style entries with `decay_score > 0` that may be stale
|
|
57
|
+
5. **Provenance summary** — recent profile update events from `profile_provenance.recent_updates`
|
|
58
|
+
6. **Risk assessment** — overall risk level, destructive entries, and review requirement
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Alias for /OMG:init (project setup mode). 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: "[optional: project description]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /OMG:project-init → Redirects to /OMG:init
|
|
8
|
+
|
|
9
|
+
This command is now part of `/OMG:init`. Execute `/OMG:init` (project setup mode).
|
|
10
|
+
|
|
11
|
+
Follow the **MODE A: PROJECT INIT** instructions in /OMG:init.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Start Ralph autonomous loop — continues working until all tasks complete or max iterations reached."
|
|
3
|
+
allowed-tools: Read, Write, Edit, Bash, Grep, Glob
|
|
4
|
+
argument-hint: "[goal description]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /OMG:ralph-start — Start Ralph Autonomous Loop
|
|
8
|
+
|
|
9
|
+
## Purpose
|
|
10
|
+
Starts a Ralph loop that autonomously continues working until all tasks in the goal are complete or max iterations reached.
|
|
11
|
+
|
|
12
|
+
## Usage
|
|
13
|
+
```
|
|
14
|
+
/OMG:ralph-start [goal description]
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## How it Works
|
|
18
|
+
1. Ask the user for a goal description if not provided
|
|
19
|
+
2. Create `.omg/state/ralph-loop.json` with:
|
|
20
|
+
- `active: true`
|
|
21
|
+
- `iteration: 0`
|
|
22
|
+
- `max_iterations: 50`
|
|
23
|
+
- `original_prompt: [goal]`
|
|
24
|
+
- `started_at: [ISO8601 timestamp]`
|
|
25
|
+
- `checklist_path: ".omg/state/_checklist.md"` (if exists)
|
|
26
|
+
3. Confirm: "Ralph loop started. Will continue working on: [goal]"
|
|
27
|
+
|
|
28
|
+
## State File Format
|
|
29
|
+
```json
|
|
30
|
+
{
|
|
31
|
+
"active": true,
|
|
32
|
+
"iteration": 0,
|
|
33
|
+
"max_iterations": 50,
|
|
34
|
+
"original_prompt": "fix all failing tests",
|
|
35
|
+
"started_at": "2026-02-28T10:00:00Z",
|
|
36
|
+
"checklist_path": ".omg/state/_checklist.md"
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Stop Condition
|
|
41
|
+
- Reaches max_iterations (50 by default)
|
|
42
|
+
- User runs `/OMG:ralph-stop`
|
|
43
|
+
- User deletes `.omg/state/ralph-loop.json`
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Stop Ralph autonomous loop — deactivates the state file."
|
|
3
|
+
allowed-tools: Read, Write, Edit, Bash
|
|
4
|
+
argument-hint: ""
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /OMG:ralph-stop — Stop Ralph Autonomous Loop
|
|
8
|
+
|
|
9
|
+
## Purpose
|
|
10
|
+
Stops an active Ralph loop by deactivating the state file.
|
|
11
|
+
|
|
12
|
+
## Usage
|
|
13
|
+
```
|
|
14
|
+
/OMG:ralph-stop
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## How it Works
|
|
18
|
+
1. Read `.omg/state/ralph-loop.json`
|
|
19
|
+
2. Set `active: false` in the state file (preserve iteration count for review)
|
|
20
|
+
3. Report: "Ralph loop stopped after N iterations. Gomg was: [original_prompt]"
|
|
21
|
+
|
|
22
|
+
## If No Active Loop
|
|
23
|
+
Report: "No active Ralph loop found. Nothing to stop."
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Canonical OMG security pipeline with normalized findings, dependency enrichment, and untrusted-content evidence."
|
|
3
|
+
allowed-tools: Read, Grep, Glob, Bash(python3:*), Bash(pytest:*), Bash(rg:*)
|
|
4
|
+
argument-hint: "[path or '.' for the current project]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /OMG:security-check — Canonical Security Pipeline
|
|
8
|
+
|
|
9
|
+
Run OMG's canonical security pipeline against the current project or a scoped path.
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```text
|
|
14
|
+
/OMG:security-check
|
|
15
|
+
/OMG:security-check .
|
|
16
|
+
/OMG:security-check app/
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## What It Produces
|
|
20
|
+
|
|
21
|
+
- normalized findings across policy, Python AST checks, and dependency health
|
|
22
|
+
- evidence-ready provenance and trust scores
|
|
23
|
+
- a structured result that can be reused by `ship`, the control plane, and the OMG MCP
|
|
24
|
+
|
|
25
|
+
## Notes
|
|
26
|
+
|
|
27
|
+
- Use this for auth, secrets, untrusted-content, or dependency-risk work.
|
|
28
|
+
- `omg secure --command ...` remains the low-level command-risk primitive, not the full audit surface.
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Create or manage OMG state branches for experimental workflows."
|
|
3
|
+
allowed-tools: Read, Write, Edit, Bash
|
|
4
|
+
argument-hint: "--name <branch-name> [--from <snapshot_id>]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /OMG:session-branch — Branch OMG State
|
|
8
|
+
|
|
9
|
+
Create a named branch of the current OMG state for experimentation or parallel exploration.
|
|
10
|
+
|
|
11
|
+
## Scope Statement
|
|
12
|
+
|
|
13
|
+
**This command operates on `.omg/state/` only. It does NOT modify git history, workspace files, or conversation history.**
|
|
14
|
+
|
|
15
|
+
## Important
|
|
16
|
+
|
|
17
|
+
Branching is **OMG state only** — it captures and restores `.omg/state/` directory contents. It does **not** fork the conversation, context window, or Claude session. Think of it as a checkpoint you can name and switch between. Rollback restores OMG session state only, NOT git history or repo files.
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
/OMG:session-branch --name "experiment"
|
|
23
|
+
/OMG:session-branch --name "refactor-v2" --from 20260302_143000_baseline
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## What It Does
|
|
27
|
+
|
|
28
|
+
1. Creates a snapshot of the current `.omg/state/` directory (or restores a specified snapshot)
|
|
29
|
+
2. Writes branch metadata to `.omg/state/branches/<name>.json`
|
|
30
|
+
3. Updates `.omg/state/current_branch.json` to track the active branch
|
|
31
|
+
|
|
32
|
+
## Branch Metadata
|
|
33
|
+
|
|
34
|
+
Each branch stores:
|
|
35
|
+
|
|
36
|
+
| Field | Description |
|
|
37
|
+
|-------|-------------|
|
|
38
|
+
| `name` | Branch name |
|
|
39
|
+
| `snapshot_id` | Associated snapshot ID |
|
|
40
|
+
| `created_at` | ISO timestamp of creation |
|
|
41
|
+
| `parent_branch` | Branch that was active when this branch was created |
|
|
42
|
+
| `status` | Branch status (`active`) |
|
|
43
|
+
|
|
44
|
+
## Managing Branches
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
# Show current branch and snapshot count
|
|
48
|
+
python3 tools/session_snapshot.py status
|
|
49
|
+
|
|
50
|
+
# List all branches
|
|
51
|
+
python3 tools/session_snapshot.py branches
|
|
52
|
+
|
|
53
|
+
# Switch to a branch (restores its snapshot)
|
|
54
|
+
python3 tools/session_snapshot.py switch experiment
|
|
55
|
+
|
|
56
|
+
# Create branch from specific snapshot
|
|
57
|
+
python3 tools/session_snapshot.py branch my-branch --from 20260302_143000_baseline
|
|
58
|
+
|
|
59
|
+
# Fork from a previous checkpoint
|
|
60
|
+
python3 tools/session_snapshot.py fork --from 20260302_100000_pre-refactor --name "approach-b"
|
|
61
|
+
|
|
62
|
+
# Preview a merge
|
|
63
|
+
python3 tools/session_snapshot.py merge-preview experiment --into main
|
|
64
|
+
|
|
65
|
+
# Apply a merge
|
|
66
|
+
python3 tools/session_snapshot.py merge experiment --into main
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Feature Flag
|
|
70
|
+
|
|
71
|
+
Branching is gated behind `OMG_BRANCHING_ENABLED` (default: `False`).
|
|
72
|
+
|
|
73
|
+
Enable via environment variable:
|
|
74
|
+
```bash
|
|
75
|
+
export OMG_BRANCHING_ENABLED=true
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Or in `settings.json`:
|
|
79
|
+
```json
|
|
80
|
+
{
|
|
81
|
+
"_omg": {
|
|
82
|
+
"features": {
|
|
83
|
+
"BRANCHING": true
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Example Workflow
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
# 1. Create a baseline branch
|
|
93
|
+
/OMG:session-branch --name "baseline"
|
|
94
|
+
|
|
95
|
+
# 2. Do some experimental work...
|
|
96
|
+
# 3. Create experiment branch to save progress
|
|
97
|
+
/OMG:session-branch --name "experiment-auth"
|
|
98
|
+
|
|
99
|
+
# 4. Switch back to baseline if experiment didn't work
|
|
100
|
+
python3 tools/session_snapshot.py switch baseline
|
|
101
|
+
```
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Fork OMG state from a specific snapshot checkpoint."
|
|
3
|
+
allowed-tools: Read, Write, Edit, Bash
|
|
4
|
+
argument-hint: "--from <snapshot_id> --name <fork-name>"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /OMG:session-fork — Fork OMG State from Checkpoint
|
|
8
|
+
|
|
9
|
+
Create a new branch from a specific snapshot checkpoint. This is a convenience wrapper around `/OMG:session-branch` that always requires a source snapshot.
|
|
10
|
+
|
|
11
|
+
## Scope Statement
|
|
12
|
+
|
|
13
|
+
**This command operates on `.omg/state/` only. It does NOT modify git history, workspace files, or conversation history.**
|
|
14
|
+
|
|
15
|
+
## Important
|
|
16
|
+
|
|
17
|
+
Forking is **OMG state only** — it restores a previous `.omg/state/` snapshot and creates a new named branch from it. It does **not** fork the conversation or create a parallel Claude session. Rollback restores OMG session state only, NOT git history or repo files.
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
/OMG:session-fork --from 20260302_143000_baseline --name "alt-approach"
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## What It Does
|
|
26
|
+
|
|
27
|
+
1. Looks up the specified snapshot by ID
|
|
28
|
+
2. Restores that snapshot to `.omg/state/`
|
|
29
|
+
3. Creates a new branch with the given name pointing to that snapshot
|
|
30
|
+
4. Updates `.omg/state/current_branch.json`
|
|
31
|
+
|
|
32
|
+
## When to Use Fork vs Branch
|
|
33
|
+
|
|
34
|
+
| Action | Use Case |
|
|
35
|
+
|--------|----------|
|
|
36
|
+
| `/OMG:session-branch --name X` | Save current state as a named branch |
|
|
37
|
+
| `/OMG:session-fork --from S --name X` | Go back to snapshot S and start a new exploration path |
|
|
38
|
+
|
|
39
|
+
## Example
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
# List available snapshots to find a good fork point
|
|
43
|
+
python3 tools/session_snapshot.py list
|
|
44
|
+
|
|
45
|
+
# Fork from a previous checkpoint
|
|
46
|
+
/OMG:session-fork --from 20260302_100000_pre-refactor --name "approach-b"
|
|
47
|
+
|
|
48
|
+
# Continue working from that earlier state...
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Feature Flag
|
|
52
|
+
|
|
53
|
+
Forking shares the `OMG_BRANCHING_ENABLED` feature flag with `/OMG:session-branch` (default: `False`).
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
export OMG_BRANCHING_ENABLED=true
|
|
57
|
+
```
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Merge OMG state branches together with conflict detection."
|
|
3
|
+
allowed-tools: Read, Write, Edit, Bash
|
|
4
|
+
argument-hint: "--from <source-branch> [--into <target-branch>] [--preview]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /OMG:session-merge — Merge OMG State Branches
|
|
8
|
+
|
|
9
|
+
Merge one OMG state branch into another with automatic conflict detection.
|
|
10
|
+
|
|
11
|
+
## Scope Statement
|
|
12
|
+
|
|
13
|
+
**This command operates on `.omg/state/` only. It does NOT modify git history, workspace files, or conversation history.**
|
|
14
|
+
|
|
15
|
+
## Important
|
|
16
|
+
|
|
17
|
+
Merging is **OMG state only** — it merges branch metadata (`.omg/state/branches/<name>.json`). It does **not** merge conversations, context windows, or file system state. Think of it as combining the tracked state from two named branches. Rollback restores OMG session state only, NOT git history or repo files.
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
/OMG:session-merge --from "experiment"
|
|
23
|
+
/OMG:session-merge --from "experiment" --into "main"
|
|
24
|
+
/OMG:session-merge --from "experiment" --preview
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## What It Does
|
|
28
|
+
|
|
29
|
+
1. Loads the source and target branch metadata as flat JSON dicts
|
|
30
|
+
2. Detects conflicts (keys present in both branches with different values)
|
|
31
|
+
3. If `--preview`: returns conflict report without applying changes
|
|
32
|
+
4. If no conflicts: applies source changes on top of target (last-write-wins)
|
|
33
|
+
5. Marks the source branch as `status: "merged"` in its metadata file
|
|
34
|
+
6. Updates `.omg/state/current_branch.json` to the target branch
|
|
35
|
+
|
|
36
|
+
## Conflict Detection
|
|
37
|
+
|
|
38
|
+
A **value_conflict** occurs when both branches have the same key but different values. When conflicts are found, the merge is **aborted** — you must resolve conflicts manually before merging.
|
|
39
|
+
|
|
40
|
+
Conflict report format:
|
|
41
|
+
|
|
42
|
+
```json
|
|
43
|
+
{
|
|
44
|
+
"key": "snapshot_id",
|
|
45
|
+
"source_value": "20260302_150000_experiment",
|
|
46
|
+
"target_value": "20260302_140000_main",
|
|
47
|
+
"conflict_type": "value_conflict"
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Preview Mode
|
|
52
|
+
|
|
53
|
+
Use `--preview` to see what a merge would do without applying changes:
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
python3 tools/session_snapshot.py merge-preview experiment --into main
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Returns:
|
|
60
|
+
|
|
61
|
+
```json
|
|
62
|
+
{
|
|
63
|
+
"source": "experiment",
|
|
64
|
+
"target": "main",
|
|
65
|
+
"conflicts": [],
|
|
66
|
+
"changes": 2,
|
|
67
|
+
"preview": true
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## CLI Commands
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
# Merge source into target
|
|
75
|
+
python3 tools/session_snapshot.py merge experiment --into main
|
|
76
|
+
|
|
77
|
+
# Preview merge without applying
|
|
78
|
+
python3 tools/session_snapshot.py merge-preview experiment --into main
|
|
79
|
+
|
|
80
|
+
# Merge into default target (main)
|
|
81
|
+
python3 tools/session_snapshot.py merge experiment
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Feature Flag
|
|
85
|
+
|
|
86
|
+
Merging is gated behind `OMG_MERGE_ENABLED` (default: `False`).
|
|
87
|
+
|
|
88
|
+
Enable via environment variable:
|
|
89
|
+
```bash
|
|
90
|
+
export OMG_MERGE_ENABLED=true
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Or in `settings.json`:
|
|
94
|
+
```json
|
|
95
|
+
{
|
|
96
|
+
"_omg": {
|
|
97
|
+
"features": {
|
|
98
|
+
"MERGE": true
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Merge Behavior
|
|
105
|
+
|
|
106
|
+
| Scenario | Result |
|
|
107
|
+
|----------|--------|
|
|
108
|
+
| No conflicts | Source state overlaid on target (last-write-wins) |
|
|
109
|
+
| Conflicts found | Merge aborted, conflicts returned |
|
|
110
|
+
| Source branch missing | Error returned |
|
|
111
|
+
| Target branch missing | Error returned |
|
|
112
|
+
| Feature flag disabled | `{"skipped": true}` |
|
|
113
|
+
|
|
114
|
+
## After Merge
|
|
115
|
+
|
|
116
|
+
- The **target** branch is updated with merged state
|
|
117
|
+
- The **source** branch status changes to `"merged"` (not deleted)
|
|
118
|
+
- `current_branch.json` is updated to the target branch
|
|
119
|
+
- Source branch remains accessible for reference
|
|
120
|
+
|
|
121
|
+
## Example Workflow
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
# 1. Create branches
|
|
125
|
+
/OMG:session-branch --name "main"
|
|
126
|
+
/OMG:session-branch --name "experiment"
|
|
127
|
+
|
|
128
|
+
# 2. Do experimental work on "experiment" branch...
|
|
129
|
+
|
|
130
|
+
# 3. Preview the merge
|
|
131
|
+
/OMG:session-merge --from "experiment" --preview
|
|
132
|
+
|
|
133
|
+
# 4. If no conflicts, apply the merge
|
|
134
|
+
/OMG:session-merge --from "experiment" --into "main"
|
|
135
|
+
|
|
136
|
+
# 5. Verify merge
|
|
137
|
+
python3 tools/session_snapshot.py branches
|
|
138
|
+
```
|