@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,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: reviewer
|
|
3
|
+
description: Code review agent — security, performance, quality, best practices, test coverage
|
|
4
|
+
model: claude-opus-4-5
|
|
5
|
+
tools: Read, Grep, Glob
|
|
6
|
+
bundled: true
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Agent: Reviewer
|
|
10
|
+
|
|
11
|
+
## Role
|
|
12
|
+
|
|
13
|
+
Thorough code review agent. Reviews from multiple perspectives and produces actionable, specific feedback. Never says "LGTM" without evidence.
|
|
14
|
+
|
|
15
|
+
## Model
|
|
16
|
+
|
|
17
|
+
`slow` (claude-opus-4-5) — careful, deliberate analysis for deep code review.
|
|
18
|
+
|
|
19
|
+
## Capabilities
|
|
20
|
+
|
|
21
|
+
- Security review (injection, auth flaws, secret exposure, CORS, XSS, CSRF)
|
|
22
|
+
- Performance analysis (N+1 queries, unnecessary re-renders, memory leaks, blocking I/O)
|
|
23
|
+
- Code quality (readability, naming, complexity, duplication, dead code)
|
|
24
|
+
- Best practices (error handling, input validation, logging, observability)
|
|
25
|
+
- Test coverage (missing cases, brittle tests, test quality)
|
|
26
|
+
- Architecture fit (does this change fit the existing system design?)
|
|
27
|
+
- Dependency review (new packages, license, security advisories)
|
|
28
|
+
|
|
29
|
+
## Instructions
|
|
30
|
+
|
|
31
|
+
You are a code review agent. You find problems and explain how to fix them.
|
|
32
|
+
|
|
33
|
+
**Core rules:**
|
|
34
|
+
- NEVER write "LGTM", "Looks good", or "No issues" without specific evidence
|
|
35
|
+
- NEVER modify code — read-only access only
|
|
36
|
+
- ALWAYS provide file:line references for every finding
|
|
37
|
+
- ALWAYS categorize findings by severity: CRITICAL, HIGH, MEDIUM, LOW, INFO
|
|
38
|
+
|
|
39
|
+
**Review process:**
|
|
40
|
+
1. Read the changed files completely
|
|
41
|
+
2. Check security: auth, input validation, secret handling, injection vectors
|
|
42
|
+
3. Check performance: database queries, loops, caching, async patterns
|
|
43
|
+
4. Check quality: naming, complexity, duplication, error handling
|
|
44
|
+
5. Check tests: coverage gaps, brittle assertions, missing edge cases
|
|
45
|
+
6. Produce structured report
|
|
46
|
+
|
|
47
|
+
**Report format:**
|
|
48
|
+
```
|
|
49
|
+
## Summary
|
|
50
|
+
[1-2 sentences on overall quality]
|
|
51
|
+
|
|
52
|
+
## Findings
|
|
53
|
+
|
|
54
|
+
### CRITICAL
|
|
55
|
+
- `file.ts:42` — [description] — [fix recommendation]
|
|
56
|
+
|
|
57
|
+
### HIGH
|
|
58
|
+
- `file.ts:87` — [description] — [fix recommendation]
|
|
59
|
+
|
|
60
|
+
### MEDIUM / LOW / INFO
|
|
61
|
+
- ...
|
|
62
|
+
|
|
63
|
+
## Test Coverage Gaps
|
|
64
|
+
- [Missing test scenarios]
|
|
65
|
+
|
|
66
|
+
## Recommendations
|
|
67
|
+
- [Prioritized action items]
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**Severity guide:**
|
|
71
|
+
- CRITICAL: Security vulnerability, data loss risk, production crash
|
|
72
|
+
- HIGH: Logic error, missing error handling, significant performance issue
|
|
73
|
+
- MEDIUM: Code quality, maintainability, minor performance
|
|
74
|
+
- LOW: Style, naming, minor improvements
|
|
75
|
+
- INFO: Observations, suggestions, questions
|
|
76
|
+
|
|
77
|
+
## Example Prompts
|
|
78
|
+
|
|
79
|
+
- "Review the new authentication middleware for security issues"
|
|
80
|
+
- "Check the database query layer for N+1 problems"
|
|
81
|
+
- "Review the payment processing code before we ship"
|
|
82
|
+
- "What's missing from the test suite for the user service?"
|
|
83
|
+
- "Review this PR diff for code quality and best practices"
|
package/agents/task.md
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: task
|
|
3
|
+
description: General task execution agent — implement features, fix bugs, write tests
|
|
4
|
+
model: claude-opus-4-5
|
|
5
|
+
tools: Read, Grep, Glob, Bash, Write, Edit
|
|
6
|
+
bundled: true
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Agent: Task
|
|
10
|
+
|
|
11
|
+
## Role
|
|
12
|
+
|
|
13
|
+
General-purpose task execution agent. Implements features, fixes bugs, writes tests, and follows instructions precisely. Balanced between speed and capability.
|
|
14
|
+
|
|
15
|
+
## Model
|
|
16
|
+
|
|
17
|
+
`default` (claude-opus-4-5) — standard capability for most implementation tasks.
|
|
18
|
+
|
|
19
|
+
## Capabilities
|
|
20
|
+
|
|
21
|
+
- Feature implementation across frontend and backend
|
|
22
|
+
- Bug investigation and fixing
|
|
23
|
+
- Test writing (unit, integration, E2E)
|
|
24
|
+
- Refactoring and code cleanup
|
|
25
|
+
- Documentation writing
|
|
26
|
+
- Configuration changes
|
|
27
|
+
- Multi-file changes with consistent style
|
|
28
|
+
- Following existing patterns and conventions
|
|
29
|
+
|
|
30
|
+
## Instructions
|
|
31
|
+
|
|
32
|
+
You are a general task execution agent. You implement what's asked, no more, no less.
|
|
33
|
+
|
|
34
|
+
**Core rules:**
|
|
35
|
+
- Read existing code before writing new code — match the style and patterns
|
|
36
|
+
- NEVER claim completion without running verification (tests, linter, build)
|
|
37
|
+
- ALWAYS make the smallest change that solves the problem
|
|
38
|
+
- ALWAYS run tests after changes to confirm nothing broke
|
|
39
|
+
- If a task is ambiguous, state your interpretation before proceeding
|
|
40
|
+
|
|
41
|
+
**Execution process:**
|
|
42
|
+
1. Read the relevant existing code to understand context
|
|
43
|
+
2. Understand what "done" looks like (what test would pass?)
|
|
44
|
+
3. Make the change
|
|
45
|
+
4. Run tests/linter to verify
|
|
46
|
+
5. Report what changed and what evidence confirms it works
|
|
47
|
+
|
|
48
|
+
**Quality gates (must pass before claiming done):**
|
|
49
|
+
- [ ] Tests pass (run the test command, check exit code)
|
|
50
|
+
- [ ] Linter clean (no new errors introduced)
|
|
51
|
+
- [ ] Build succeeds (if applicable)
|
|
52
|
+
- [ ] Original behavior preserved (no regressions)
|
|
53
|
+
|
|
54
|
+
**When to escalate:**
|
|
55
|
+
- Security-sensitive changes → recommend `/OMG:escalate codex`
|
|
56
|
+
- Complex UI/visual work → recommend `/OMG:escalate gemini`
|
|
57
|
+
- Stuck after 2 attempts → recommend `/OMG:escalate codex`
|
|
58
|
+
|
|
59
|
+
**Anti-patterns to avoid:**
|
|
60
|
+
- Don't add features not asked for
|
|
61
|
+
- Don't refactor code unrelated to the task
|
|
62
|
+
- Don't change test assertions to make tests pass
|
|
63
|
+
- Don't skip verification because "it should work"
|
|
64
|
+
|
|
65
|
+
## Example Prompts
|
|
66
|
+
|
|
67
|
+
- "Add pagination to the users list endpoint"
|
|
68
|
+
- "Fix the bug where the modal doesn't close on Escape key"
|
|
69
|
+
- "Write unit tests for the `calculateDiscount` function"
|
|
70
|
+
- "Refactor the auth middleware to use the new token format"
|
|
71
|
+
- "Add error handling to the file upload route"
|
package/bin/omg
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
const { spawnSync } = require('child_process');
|
|
5
|
+
const path = require('path');
|
|
6
|
+
|
|
7
|
+
const platform = process.platform;
|
|
8
|
+
if (platform !== 'linux' && platform !== 'darwin') {
|
|
9
|
+
process.stderr.write(`omg: unsupported platform ${platform}. Use macOS or Linux.\n`);
|
|
10
|
+
process.exitCode = 1;
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
function findPython() {
|
|
15
|
+
for (const cmd of ['python3', 'python']) {
|
|
16
|
+
const r = spawnSync(cmd, ['--version'], { encoding: 'utf8', shell: false });
|
|
17
|
+
if (r.status === 0) return cmd;
|
|
18
|
+
}
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
if (process.argv.includes('--version')) {
|
|
23
|
+
const pkg = require(path.join(__dirname, '..', 'package.json'));
|
|
24
|
+
process.stdout.write(`omg ${pkg.version}\n`);
|
|
25
|
+
process.exitCode = 0;
|
|
26
|
+
} else {
|
|
27
|
+
const pythonBin = findPython();
|
|
28
|
+
if (!pythonBin) {
|
|
29
|
+
process.stderr.write(
|
|
30
|
+
'omg requires Python 3.10 or higher. Install Python and re-run.\nSee: https://python.org\n'
|
|
31
|
+
);
|
|
32
|
+
process.exitCode = 1;
|
|
33
|
+
} else {
|
|
34
|
+
const omgPath = path.join(__dirname, '..', 'scripts', 'omg.py');
|
|
35
|
+
const result = spawnSync(pythonBin, [omgPath, ...process.argv.slice(2)], {
|
|
36
|
+
shell: false,
|
|
37
|
+
stdio: 'inherit',
|
|
38
|
+
});
|
|
39
|
+
process.exitCode = result.status ?? 1;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Analyze uncommitted git changes and propose logical atomic commits grouped by concern."
|
|
3
|
+
allowed-tools: Read, Bash(python*:*), Grep, Glob
|
|
4
|
+
argument-hint: "[optional: working directory path]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /OMG:ai-commit — AI Commit Splitter
|
|
8
|
+
|
|
9
|
+
Analyze uncommitted git changes and propose logical atomic commits grouped by concern.
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
/OMG:ai-commit
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## What It Does
|
|
18
|
+
|
|
19
|
+
1. Reads hunk-level git diffs via `git_hunk()` from `tools/git_inspector.py`
|
|
20
|
+
2. Groups hunks by file type/category (python, javascript, config, docs, tests, etc.)
|
|
21
|
+
3. Separates test files from source code automatically
|
|
22
|
+
4. Generates conventional commit messages: `{type}({scope}): {description}`
|
|
23
|
+
5. Displays a human-readable preview of proposed commits
|
|
24
|
+
|
|
25
|
+
## Feature Flag
|
|
26
|
+
|
|
27
|
+
- **Flag name**: `OMG_AI_COMMIT_ENABLED`
|
|
28
|
+
- **Default**: `False` (disabled)
|
|
29
|
+
- **Enable**: `export OMG_AI_COMMIT_ENABLED=1`
|
|
30
|
+
|
|
31
|
+
Or set in `settings.json`:
|
|
32
|
+
|
|
33
|
+
```json
|
|
34
|
+
{
|
|
35
|
+
"_omg": {
|
|
36
|
+
"features": {
|
|
37
|
+
"ai_commit": true
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Output Example
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
============================================================
|
|
47
|
+
OMG AI Commit Splitter — Proposed Commit Plan
|
|
48
|
+
============================================================
|
|
49
|
+
|
|
50
|
+
Total proposed commits: 3
|
|
51
|
+
|
|
52
|
+
Commit 1: feat(tools): update commit_splitter.py
|
|
53
|
+
──────────────────────────────────────────────────
|
|
54
|
+
• tools/commit_splitter.py
|
|
55
|
+
(2 hunks)
|
|
56
|
+
|
|
57
|
+
Commit 2: test(tests): update 2 test files
|
|
58
|
+
──────────────────────────────────────────────────
|
|
59
|
+
• tests/tools/test_commit_splitter.py
|
|
60
|
+
• tests/tools/test_git_inspector.py
|
|
61
|
+
(4 hunks)
|
|
62
|
+
|
|
63
|
+
Commit 3: docs(commands): update ai-commit.md
|
|
64
|
+
──────────────────────────────────────────────────
|
|
65
|
+
• commands/ai-commit.md
|
|
66
|
+
(1 hunk)
|
|
67
|
+
|
|
68
|
+
============================================================
|
|
69
|
+
NOTE: This is a preview only. No commits were made.
|
|
70
|
+
============================================================
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Commit Type Mapping
|
|
74
|
+
|
|
75
|
+
| Category | Default Type | Description |
|
|
76
|
+
|------------|-------------|--------------------------|
|
|
77
|
+
| python | `feat` | Python source files |
|
|
78
|
+
| javascript | `feat` | JS/TS source files |
|
|
79
|
+
| tests | `test` | Test files (any language) |
|
|
80
|
+
| docs | `docs` | Documentation files |
|
|
81
|
+
| config | `chore` | Configuration files |
|
|
82
|
+
| shell | `chore` | Shell scripts |
|
|
83
|
+
| styles | `style` | CSS/SCSS/LESS files |
|
|
84
|
+
| markup | `feat` | HTML/XML/SVG files |
|
|
85
|
+
| other | `chore` | Unclassified files |
|
|
86
|
+
|
|
87
|
+
## CLI Usage
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
# Preview commit plan from terminal
|
|
91
|
+
python3 tools/commit_splitter.py --dry-run
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Safety
|
|
95
|
+
|
|
96
|
+
- **Read-only**: Never executes `git commit` or modifies the working tree
|
|
97
|
+
- **Feature-gated**: Returns empty results when disabled
|
|
98
|
+
- **Non-destructive**: Safe to run at any time
|
|
99
|
+
|
|
100
|
+
## API
|
|
101
|
+
|
|
102
|
+
```python
|
|
103
|
+
from tools.commit_splitter import analyze_changes, generate_commit_plan, preview_commit_plan
|
|
104
|
+
|
|
105
|
+
# Get grouped hunks
|
|
106
|
+
groups = analyze_changes(cwd=".")
|
|
107
|
+
|
|
108
|
+
# Get full commit plan with messages
|
|
109
|
+
plan = generate_commit_plan(cwd=".")
|
|
110
|
+
|
|
111
|
+
# Get human-readable preview string
|
|
112
|
+
preview = preview_commit_plan(cwd=".")
|
|
113
|
+
```
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Contract replay and fixture-based API simulation with fidelity tracking and live verification requirements."
|
|
3
|
+
allowed-tools: Read, Write, Edit, MultiEdit, Grep, Glob, Bash(python3:*), Bash(rg:*)
|
|
4
|
+
argument-hint: "[ingest|record|serve|verify]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /OMG:api-twin — Contract Replay
|
|
8
|
+
|
|
9
|
+
Build a local API twin from contracts and recorded fixtures without treating simulation as final proof.
|
|
10
|
+
|
|
11
|
+
## Verbs
|
|
12
|
+
|
|
13
|
+
- `ingest`: load OpenAPI, Swagger, Postman, or example JSON into OMG state
|
|
14
|
+
- `record`: store approved request/response fixtures and tag fidelity
|
|
15
|
+
- `serve`: replay a fixture locally with optional latency, failure, or schema drift
|
|
16
|
+
- `verify`: compare a twin fixture against a live response before release proof
|
|
17
|
+
|
|
18
|
+
## Rules
|
|
19
|
+
|
|
20
|
+
- every fixture carries a fidelity tag such as `schema-only`, `recorded`, `recorded-validated`, or `stale`
|
|
21
|
+
- simulated endpoints are useful for development, not release signoff
|
|
22
|
+
- release proof still requires a final live verification pass
|
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Codebase visualization — dependency graphs and architecture diagrams."
|
|
3
|
+
allowed-tools: Read, Bash(python*:*), Grep
|
|
4
|
+
argument-hint: "[render|module-name|stats|--native]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /OMG:arch — Architecture Visualization
|
|
8
|
+
|
|
9
|
+
Visualize project dependency graphs as Mermaid diagrams, render to PNG, zoom into specific modules, and inspect graph statistics.
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
/OMG:arch
|
|
15
|
+
/OMG:arch render
|
|
16
|
+
/OMG:arch <module-name>
|
|
17
|
+
/OMG:arch stats
|
|
18
|
+
/OMG:arch --native
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Sub-Commands
|
|
22
|
+
|
|
23
|
+
### `/OMG:arch` (default)
|
|
24
|
+
|
|
25
|
+
Full project dependency graph as Mermaid text output, embeddable in Markdown.
|
|
26
|
+
|
|
27
|
+
Scans all Python (.py), JavaScript/TypeScript (.js/.jsx/.ts/.tsx), and Go (.go) files. Python files are parsed via AST; JS/TS/Go files use regex-based import detection (~70% accuracy).
|
|
28
|
+
|
|
29
|
+
```python
|
|
30
|
+
from plugins.viz.graph_builder import build_project_graph
|
|
31
|
+
from plugins.viz.diagram_generator import generate_mermaid
|
|
32
|
+
|
|
33
|
+
result = build_project_graph(".")
|
|
34
|
+
graph = result.get("graph", {})
|
|
35
|
+
|
|
36
|
+
mermaid_text = generate_mermaid(graph)
|
|
37
|
+
if mermaid_text:
|
|
38
|
+
print("```mermaid")
|
|
39
|
+
print(mermaid_text)
|
|
40
|
+
print("```")
|
|
41
|
+
else:
|
|
42
|
+
print("No dependencies detected.")
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### `/OMG:arch render`
|
|
46
|
+
|
|
47
|
+
Render the dependency graph to a PNG image via the mermaid.ink public API. Saves output to `.omg/state/arch-diagram.png`.
|
|
48
|
+
|
|
49
|
+
Requires network access to `https://mermaid.ink`.
|
|
50
|
+
|
|
51
|
+
```python
|
|
52
|
+
import os
|
|
53
|
+
from plugins.viz.graph_builder import build_project_graph
|
|
54
|
+
from plugins.viz.diagram_generator import generate_mermaid, render_to_png
|
|
55
|
+
|
|
56
|
+
result = build_project_graph(".")
|
|
57
|
+
graph = result.get("graph", {})
|
|
58
|
+
mermaid_text = generate_mermaid(graph)
|
|
59
|
+
|
|
60
|
+
output_path = os.path.join(".omg", "state", "arch-diagram.png")
|
|
61
|
+
os.makedirs(os.path.dirname(output_path), exist_ok=True)
|
|
62
|
+
|
|
63
|
+
if render_to_png(mermaid_text, output_path):
|
|
64
|
+
print(f"Diagram rendered to {output_path}")
|
|
65
|
+
else:
|
|
66
|
+
print("Render failed — check network access or graph size.")
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### `/OMG:arch <module-name>`
|
|
70
|
+
|
|
71
|
+
Zoomed subgraph for a specific module. Shows only the named module and its direct dependencies.
|
|
72
|
+
|
|
73
|
+
Replace `<module-name>` with the dotted module path (e.g. `plugins.viz.graph_builder`).
|
|
74
|
+
|
|
75
|
+
```python
|
|
76
|
+
from plugins.viz.graph_builder import build_project_graph
|
|
77
|
+
from plugins.viz.diagram_generator import generate_mermaid
|
|
78
|
+
|
|
79
|
+
result = build_project_graph(".")
|
|
80
|
+
graph = result.get("graph", {})
|
|
81
|
+
|
|
82
|
+
# Zoom into a specific module
|
|
83
|
+
module_name = "<module-name>" # e.g. "plugins.viz.graph_builder"
|
|
84
|
+
mermaid_text = generate_mermaid(graph, zoom=module_name)
|
|
85
|
+
|
|
86
|
+
if mermaid_text:
|
|
87
|
+
print(f"Dependencies for: {module_name}")
|
|
88
|
+
print()
|
|
89
|
+
print("```mermaid")
|
|
90
|
+
print(mermaid_text)
|
|
91
|
+
print("```")
|
|
92
|
+
else:
|
|
93
|
+
print(f"Module '{module_name}' not found in dependency graph.")
|
|
94
|
+
print()
|
|
95
|
+
print("Available modules:")
|
|
96
|
+
for mod in sorted(graph.keys()):
|
|
97
|
+
print(f" - {mod}")
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### `/OMG:arch stats`
|
|
101
|
+
|
|
102
|
+
Graph statistics: module count, edge count, max depth, circular dependencies, and coupling score.
|
|
103
|
+
|
|
104
|
+
```python
|
|
105
|
+
from plugins.viz.graph_builder import build_project_graph
|
|
106
|
+
|
|
107
|
+
result = build_project_graph(".")
|
|
108
|
+
metrics = result.get("metrics", {})
|
|
109
|
+
|
|
110
|
+
module_count = metrics.get("module_count", 0)
|
|
111
|
+
edge_count = metrics.get("edge_count", 0)
|
|
112
|
+
max_depth = metrics.get("max_depth", 0)
|
|
113
|
+
circular_deps = metrics.get("circular_deps", [])
|
|
114
|
+
coupling_score = metrics.get("coupling_score", 0.0)
|
|
115
|
+
|
|
116
|
+
print(f"Modules: {module_count}")
|
|
117
|
+
print(f"Edges: {edge_count}")
|
|
118
|
+
print(f"Max depth: {max_depth}")
|
|
119
|
+
print(f"Circular deps: {len(circular_deps)}")
|
|
120
|
+
print(f"Coupling score: {coupling_score:.2f}")
|
|
121
|
+
|
|
122
|
+
if circular_deps:
|
|
123
|
+
print()
|
|
124
|
+
print("Circular dependency cycles:")
|
|
125
|
+
for cycle in circular_deps:
|
|
126
|
+
print(f" {' → '.join(cycle)}")
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### `/OMG:arch --native`
|
|
130
|
+
|
|
131
|
+
Use native language toolchains for higher-accuracy dependency parsing (~95% vs ~70% with regex).
|
|
132
|
+
|
|
133
|
+
Supported toolchains:
|
|
134
|
+
- **Go**: `go list -json ./...` — requires `go` on PATH
|
|
135
|
+
- **TypeScript**: `tsc --listFiles --noEmit` — requires `tsc` on PATH
|
|
136
|
+
- **Rust**: `cargo metadata --format-version=1 --no-deps` — requires `cargo` on PATH
|
|
137
|
+
|
|
138
|
+
Falls back to regex parsing when a toolchain is not available.
|
|
139
|
+
|
|
140
|
+
```python
|
|
141
|
+
from plugins.viz.native_parsers import (
|
|
142
|
+
is_toolchain_available,
|
|
143
|
+
parse_go_native,
|
|
144
|
+
parse_typescript_native,
|
|
145
|
+
parse_rust_native,
|
|
146
|
+
)
|
|
147
|
+
from plugins.viz.graph_builder import build_project_graph
|
|
148
|
+
from plugins.viz.diagram_generator import generate_mermaid
|
|
149
|
+
|
|
150
|
+
# Check available toolchains
|
|
151
|
+
toolchains = {
|
|
152
|
+
"go": is_toolchain_available("go"),
|
|
153
|
+
"tsc": is_toolchain_available("tsc"),
|
|
154
|
+
"cargo": is_toolchain_available("cargo"),
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
print("Toolchain availability:")
|
|
158
|
+
for tc, available in toolchains.items():
|
|
159
|
+
status = "available" if available else "not found"
|
|
160
|
+
print(f" {tc}: {status}")
|
|
161
|
+
print()
|
|
162
|
+
|
|
163
|
+
# Parse with native toolchains where available
|
|
164
|
+
native_graphs = {}
|
|
165
|
+
if toolchains["go"]:
|
|
166
|
+
go_result = parse_go_native(".")
|
|
167
|
+
if "error" not in go_result:
|
|
168
|
+
native_graphs.update(go_result["graph"])
|
|
169
|
+
print(f"Go: {len(go_result['graph'])} packages (native-95% accuracy)")
|
|
170
|
+
|
|
171
|
+
if toolchains["tsc"]:
|
|
172
|
+
ts_result = parse_typescript_native(".")
|
|
173
|
+
if "error" not in ts_result:
|
|
174
|
+
native_graphs.update(ts_result["graph"])
|
|
175
|
+
print(f"TypeScript: {len(ts_result['graph'])} modules (native-95% accuracy)")
|
|
176
|
+
|
|
177
|
+
if toolchains["cargo"]:
|
|
178
|
+
rust_result = parse_rust_native(".")
|
|
179
|
+
if "error" not in rust_result:
|
|
180
|
+
native_graphs.update(rust_result["graph"])
|
|
181
|
+
print(f"Rust: {len(rust_result['graph'])} crates (native-95% accuracy)")
|
|
182
|
+
|
|
183
|
+
# Fall back to regex-based graph for remaining files
|
|
184
|
+
result = build_project_graph(".")
|
|
185
|
+
graph = result.get("graph", {})
|
|
186
|
+
|
|
187
|
+
# Merge: native results override regex results
|
|
188
|
+
merged = {**graph, **native_graphs}
|
|
189
|
+
|
|
190
|
+
mermaid_text = generate_mermaid(merged)
|
|
191
|
+
if mermaid_text:
|
|
192
|
+
print()
|
|
193
|
+
print("```mermaid")
|
|
194
|
+
print(mermaid_text)
|
|
195
|
+
print("```")
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
## Feature Flag
|
|
199
|
+
|
|
200
|
+
- **Flag name**: `OMG_CODEBASE_VIZ_ENABLED`
|
|
201
|
+
- **Default**: `False` (disabled)
|
|
202
|
+
- **Enable**: `export OMG_CODEBASE_VIZ_ENABLED=1`
|
|
203
|
+
|
|
204
|
+
Or set in `settings.json`:
|
|
205
|
+
|
|
206
|
+
```json
|
|
207
|
+
{
|
|
208
|
+
"_omg": {
|
|
209
|
+
"features": {
|
|
210
|
+
"CODEBASE_VIZ": true
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
## Output Example
|
|
217
|
+
|
|
218
|
+
### `/OMG:arch` output
|
|
219
|
+
|
|
220
|
+
````
|
|
221
|
+
```mermaid
|
|
222
|
+
graph TD
|
|
223
|
+
hooks_budget_governor["hooks.budget_governor"]
|
|
224
|
+
hooks__common["hooks._common"]
|
|
225
|
+
hooks__cost_ledger["hooks._cost_ledger"]
|
|
226
|
+
plugins_viz_graph_builder["plugins.viz.graph_builder"]
|
|
227
|
+
plugins_viz_ast_parser["plugins.viz.ast_parser"]
|
|
228
|
+
plugins_viz_regex_parser["plugins.viz.regex_parser"]
|
|
229
|
+
hooks_budget_governor --> hooks__common
|
|
230
|
+
hooks_budget_governor --> hooks__cost_ledger
|
|
231
|
+
plugins_viz_graph_builder --> plugins_viz_ast_parser
|
|
232
|
+
plugins_viz_graph_builder --> plugins_viz_regex_parser
|
|
233
|
+
```
|
|
234
|
+
````
|
|
235
|
+
|
|
236
|
+
### `/OMG:arch stats` output
|
|
237
|
+
|
|
238
|
+
```
|
|
239
|
+
============================================================
|
|
240
|
+
OMG Architecture — Graph Statistics
|
|
241
|
+
============================================================
|
|
242
|
+
|
|
243
|
+
Modules: 42
|
|
244
|
+
Edges: 87
|
|
245
|
+
Max depth: 6
|
|
246
|
+
Circular deps: 1
|
|
247
|
+
Coupling score: 2.07
|
|
248
|
+
|
|
249
|
+
Circular dependency cycles:
|
|
250
|
+
hooks._common → hooks.query → hooks._common
|
|
251
|
+
|
|
252
|
+
============================================================
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
### `/OMG:arch --native` accuracy comparison
|
|
256
|
+
|
|
257
|
+
| Method | Accuracy | Requires |
|
|
258
|
+
|--------|----------|----------|
|
|
259
|
+
| Regex (default) | ~70% | No external tools |
|
|
260
|
+
| Native toolchain | ~95% | `go`, `tsc`, or `cargo` on PATH |
|
|
261
|
+
|
|
262
|
+
## Supported Languages
|
|
263
|
+
|
|
264
|
+
| Language | Extensions | Default Parser | Native Parser |
|
|
265
|
+
|----------|-----------|----------------|---------------|
|
|
266
|
+
| Python | `.py` | AST (`ast` stdlib) | — |
|
|
267
|
+
| JavaScript/TypeScript | `.js`, `.jsx`, `.ts`, `.tsx`, `.mjs`, `.cjs` | Regex | `tsc --listFiles` |
|
|
268
|
+
| Go | `.go` | Regex | `go list -json` |
|
|
269
|
+
| Rust | `.rs` (via Cargo) | — | `cargo metadata` |
|
|
270
|
+
|
|
271
|
+
## Safety
|
|
272
|
+
|
|
273
|
+
- **Read-only**: All sub-commands only read source files and query external APIs (mermaid.ink for PNG render)
|
|
274
|
+
- **Feature-gated**: Requires `CODEBASE_VIZ` flag enabled
|
|
275
|
+
- **No mutations**: Never modifies source code, dependencies, or project configuration
|
|
276
|
+
- **Crash-isolated**: All operations return empty/false on failure (never raise to caller)
|
|
277
|
+
- **Cache**: Graph cached to `.omg/state/dependency-graph.json` with mtime-based incremental updates
|
|
278
|
+
- **Network**: `/arch render` requires internet access for mermaid.ink API
|
|
279
|
+
- **Subprocess safety**: Native parsers use argv lists (never `shell=True`) with 30s timeout
|
|
280
|
+
|
|
281
|
+
## API
|
|
282
|
+
|
|
283
|
+
```python
|
|
284
|
+
from plugins.viz.graph_builder import build_project_graph
|
|
285
|
+
from plugins.viz.diagram_generator import generate_mermaid, generate_d2, render_to_png
|
|
286
|
+
from plugins.viz.native_parsers import (
|
|
287
|
+
parse_go_native,
|
|
288
|
+
parse_typescript_native,
|
|
289
|
+
parse_rust_native,
|
|
290
|
+
is_toolchain_available,
|
|
291
|
+
)
|
|
292
|
+
|
|
293
|
+
# Build full dependency graph (regex + AST)
|
|
294
|
+
result = build_project_graph(".")
|
|
295
|
+
# result = {"graph": {...}, "metrics": {...}}
|
|
296
|
+
|
|
297
|
+
# Generate Mermaid diagram text
|
|
298
|
+
mermaid_text = generate_mermaid(result["graph"])
|
|
299
|
+
|
|
300
|
+
# Generate Mermaid for a single module (zoomed)
|
|
301
|
+
zoomed = generate_mermaid(result["graph"], zoom="plugins.viz.graph_builder")
|
|
302
|
+
|
|
303
|
+
# Generate D2 diagram text
|
|
304
|
+
d2_text = generate_d2(result["graph"])
|
|
305
|
+
|
|
306
|
+
# Render Mermaid to PNG via mermaid.ink
|
|
307
|
+
success = render_to_png(mermaid_text, ".omg/state/arch-diagram.png")
|
|
308
|
+
|
|
309
|
+
# Native toolchain parsing (higher accuracy)
|
|
310
|
+
go_deps = parse_go_native(".")
|
|
311
|
+
ts_deps = parse_typescript_native(".")
|
|
312
|
+
rs_deps = parse_rust_native(".")
|
|
313
|
+
```
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Canonical OMG browser automation and verification surface powered by upstream playwright-cli."
|
|
3
|
+
allowed-tools: Read, Write, Edit, Bash(python3:*), Bash(node:*), Bash(npx:*), Bash(playwright:*), Bash(which:*), Bash(ls:*), Bash(cat:*), Grep, Glob
|
|
4
|
+
argument-hint: "<goal or browser task>"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /OMG:browser
|
|
8
|
+
|
|
9
|
+
Use this as the canonical OMG browser surface for automation, visual verification, and trace-backed browser evidence.
|
|
10
|
+
|
|
11
|
+
## Contract
|
|
12
|
+
|
|
13
|
+
- `/OMG:browser` is the public OMG command.
|
|
14
|
+
- Execution is powered by upstream `playwright-cli`.
|
|
15
|
+
- OMG owns the command contract, remediation messages, and `.omg/evidence/` artifact normalization.
|
|
16
|
+
- This is not a new OMG MCP server.
|
|
17
|
+
|
|
18
|
+
## Typical Flow
|
|
19
|
+
|
|
20
|
+
1. Verify `playwright-cli` is installed.
|
|
21
|
+
2. Verify browser assets are available.
|
|
22
|
+
3. Run the requested browser workflow.
|
|
23
|
+
4. Emit normalized screenshots, traces, and browser evidence under `.omg/evidence/`.
|
|
24
|
+
|
|
25
|
+
## Notes
|
|
26
|
+
|
|
27
|
+
- Claude users invoke this command directly.
|
|
28
|
+
- Codex, Gemini, and Kimi consume the same capability through OMG-managed setup, runtime, and proof flows.
|
|
29
|
+
- Use `/OMG:playwright` only as a compatibility alias when needed.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: OMG CCG mode (tri-track synthesis) in standalone mode.
|
|
3
|
+
allowed-tools: Read, Grep, Glob, Bash(python3:*), Bash(git:*), Bash(rg:*), Bash(find:*), Bash(cat:*)
|
|
4
|
+
argument-hint: "problem statement"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /OMG:ccg — Standalone CCG
|
|
8
|
+
|
|
9
|
+
Runs OMG internal tri-track routing and returns merged actions.
|
|
10
|
+
|
|
11
|
+
CCG execution standard:
|
|
12
|
+
- launch backend/frontend/architecture analysis in parallel sub-agents
|
|
13
|
+
- collect all tracks with `background_output`
|
|
14
|
+
- run `sequential-thinking` to merge tracks into one execution order
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
OMG_CLI="${OMG_CLI_PATH:-$HOME/.claude/omg-runtime/scripts/omg.py}"
|
|
18
|
+
if [ ! -f "$OMG_CLI" ] && [ -f "scripts/omg.py" ]; then OMG_CLI="scripts/omg.py"; fi
|
|
19
|
+
python3 "$OMG_CLI" ccg --problem "[problem]"
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Use this when backend+frontend+architecture are coupled.
|