@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,114 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Deep code review — reads file completely, checks line-by-line for issues, then analyzes whole-file structure. Enforces code hygiene.
|
|
3
|
+
allowed-tools: Read, Bash(cat:*), Bash(grep:*), Bash(wc:*), Bash(head:*), Bash(find:*), Bash(rg:*), Grep, Glob
|
|
4
|
+
argument-hint: "[file path or 'recent' for git-changed files]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /OMG:code-review — Line-by-Line + Structural Review
|
|
8
|
+
|
|
9
|
+
## Philosophy
|
|
10
|
+
Two passes: LINE-BY-LINE precision, then WHOLE-FILE understanding.
|
|
11
|
+
Don't just scan — READ and UNDERSTAND every line.
|
|
12
|
+
|
|
13
|
+
## Step 1: Determine Scope
|
|
14
|
+
|
|
15
|
+
- If file specified: review that file
|
|
16
|
+
- If "recent" or no argument: review uncommitted changes
|
|
17
|
+
```bash
|
|
18
|
+
git diff --name-only HEAD 2>/dev/null
|
|
19
|
+
git diff --cached --name-only 2>/dev/null
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Step 2: Read the FULL File First
|
|
23
|
+
|
|
24
|
+
Read the ENTIRE file. Not just the changed part. Not just a function.
|
|
25
|
+
Understanding comes from seeing the whole context.
|
|
26
|
+
|
|
27
|
+
Note:
|
|
28
|
+
- What does this file DO? (its purpose in the system)
|
|
29
|
+
- What are its DEPENDENCIES? (imports, calls)
|
|
30
|
+
- What does it EXPORT? (public API)
|
|
31
|
+
|
|
32
|
+
## Step 3: Line-by-Line Scan
|
|
33
|
+
|
|
34
|
+
For each line, check:
|
|
35
|
+
|
|
36
|
+
**Correctness:**
|
|
37
|
+
- Logic errors (off-by-one, null checks, type mismatches)
|
|
38
|
+
- Missing error handling (unhandled promises, bare except, no null check)
|
|
39
|
+
- Race conditions (shared state, async without await, unchecked concurrent access)
|
|
40
|
+
|
|
41
|
+
**Security (if auth/payment/database):**
|
|
42
|
+
- Hardcoded secrets → CRITICAL
|
|
43
|
+
- SQL injection (string concatenation in queries) → CRITICAL
|
|
44
|
+
- XSS (innerHTML, dangerouslySetInnerHTML) → HIGH
|
|
45
|
+
- Missing input validation → MEDIUM
|
|
46
|
+
- Overly permissive CORS/cookies → MEDIUM
|
|
47
|
+
|
|
48
|
+
**Hygiene:**
|
|
49
|
+
- Dead code (unused imports, variables, unreachable branches)
|
|
50
|
+
- Noise comments ("increment i", "return result", "constructor")
|
|
51
|
+
- console.log/print left in production code
|
|
52
|
+
- TODO/FIXME/HACK without tracking
|
|
53
|
+
- Overly complex functions (>40 lines → suggest extract)
|
|
54
|
+
- Duplicated logic (same pattern in 2+ places → suggest DRY)
|
|
55
|
+
|
|
56
|
+
## Step 4: Whole-File Structure Analysis
|
|
57
|
+
|
|
58
|
+
After line-by-line:
|
|
59
|
+
- Does the file do ONE thing well, or is it a dumping ground?
|
|
60
|
+
- Are functions ordered logically? (public first, helpers after, or lifecycle order)
|
|
61
|
+
- Is naming consistent? (camelCase throughout? PascalCase for classes?)
|
|
62
|
+
- Does it follow the project's domain pattern? (check .omg/knowledge/domain-patterns/)
|
|
63
|
+
- Any circular dependencies?
|
|
64
|
+
- Is error handling consistent across all functions?
|
|
65
|
+
|
|
66
|
+
## Step 5: Report
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
Code Review — [file]
|
|
70
|
+
━━━━━━━━━━━━━━━━━━━━
|
|
71
|
+
|
|
72
|
+
Structure: [CLEAN | NEEDS_WORK | MESSY]
|
|
73
|
+
Security: [SAFE | REVIEW_NEEDED | CRITICAL]
|
|
74
|
+
Hygiene: [CLEAN | NEEDS_CLEANUP]
|
|
75
|
+
|
|
76
|
+
Issues:
|
|
77
|
+
[line:col] CRITICAL: [description]
|
|
78
|
+
[line:col] HIGH: [description]
|
|
79
|
+
[line:col] MEDIUM: [description]
|
|
80
|
+
[line:col] LOW: [description]
|
|
81
|
+
|
|
82
|
+
Dead Code:
|
|
83
|
+
[line] unused import: [name]
|
|
84
|
+
[line] unreachable after return
|
|
85
|
+
|
|
86
|
+
Noise Comments (remove these):
|
|
87
|
+
[line] "// increment counter"
|
|
88
|
+
[line] "// return the value"
|
|
89
|
+
|
|
90
|
+
Structural:
|
|
91
|
+
- [function] is [N] lines — consider extracting [suggestion]
|
|
92
|
+
- [pattern] duplicated at lines [X] and [Y]
|
|
93
|
+
|
|
94
|
+
Recommendation: [summary of what to fix, in priority order]
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Step 6: For Security-Critical Files
|
|
98
|
+
|
|
99
|
+
If the file touches auth, payment, or database:
|
|
100
|
+
```
|
|
101
|
+
/OMG:escalate codex "Line-by-line security review of [file]. Check:
|
|
102
|
+
1. Every input validation point
|
|
103
|
+
2. Every database query for injection
|
|
104
|
+
3. Every auth check for bypass
|
|
105
|
+
4. Every secret reference for hardcoding
|
|
106
|
+
Report: line numbers + severity + fix suggestion"
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Anti-patterns
|
|
110
|
+
- DON'T skim and say "looks good" — read every line
|
|
111
|
+
- DON'T only check the diff — read the full file for context
|
|
112
|
+
- DON'T ignore test files — they can have real issues too
|
|
113
|
+
- DON'T add more noise comments as "fixes" — remove them instead
|
|
114
|
+
- DON'T suggest unnecessary code as improvements
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Deep strategic planning — understands user direction, asks smart questions, creates comprehensive plan with domain awareness
|
|
3
|
+
allowed-tools: Read, Write, Edit, MultiEdit, Bash(find:*), Bash(cat:*), Bash(git:*), Bash(wc:*), Bash(tree:*), Bash(mkdir:*), Bash(tee:*), Grep, Glob
|
|
4
|
+
argument-hint: "[feature or goal to plan]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /OMG:deep-plan — Strategic Planning with Direction Understanding
|
|
8
|
+
|
|
9
|
+
## Philosophy
|
|
10
|
+
Regular planning = "what steps to take."
|
|
11
|
+
Deep planning = "understand WHY the user wants this, WHAT direction they're heading, and HOW it fits the bigger picture."
|
|
12
|
+
|
|
13
|
+
This command is the public compatibility path to the canonical `plan-council` bundle.
|
|
14
|
+
Users invoke `/OMG:deep-plan`; the runtime routes to `plan-council` for execution.
|
|
15
|
+
|
|
16
|
+
## Step 1: Direction Discovery (MANDATORY)
|
|
17
|
+
|
|
18
|
+
Do not assume goals, constraints, or context. Extract direction from:
|
|
19
|
+
- user prompt
|
|
20
|
+
- `.omg/state/handoff.md`
|
|
21
|
+
- `.omg/state/ledger/failure-tracker.json`
|
|
22
|
+
- current repo structure and patterns
|
|
23
|
+
|
|
24
|
+
Before planning anything, understand:
|
|
25
|
+
1. **User's real goal** — Often the stated request is one step toward something bigger. Ask: "What's the end state you're imagining?"
|
|
26
|
+
2. **User's constraints** — Time, budget, existing code, team preferences, tech stack decisions already made.
|
|
27
|
+
3. **User's domain knowledge** — Are they expert in this domain (follow their lead) or exploring (guide them)?
|
|
28
|
+
4. **What they've already tried** — Check .omg/state/handoff.md, failure-tracker.json, git log.
|
|
29
|
+
|
|
30
|
+
If direction is still ambiguous after repo exploration, ask only minimal focused questions.
|
|
31
|
+
|
|
32
|
+
Examples of BAD questions: "What framework do you want?" "What's your deadline?"
|
|
33
|
+
Examples of GOOD questions:
|
|
34
|
+
- "I see you have a Stripe integration started in /src/payment/. Are you building on that, or replacing it?"
|
|
35
|
+
- "Your auth uses JWT in cookies. Should the new feature respect that pattern, or are you migrating to sessions?"
|
|
36
|
+
- "The DB schema has 3 user types. Does this feature apply to all of them or just one?"
|
|
37
|
+
|
|
38
|
+
## Step 2: Map the Domain
|
|
39
|
+
|
|
40
|
+
Read the codebase to understand the CURRENT state:
|
|
41
|
+
```bash
|
|
42
|
+
# Directory structure
|
|
43
|
+
find . -type f -name "*.ts" -o -name "*.py" -o -name "*.go" | head -50
|
|
44
|
+
|
|
45
|
+
# Key architectural patterns
|
|
46
|
+
grep -rn "export class\|export function\|def \|func \|struct " src/ --include="*.{ts,py,go}" | head -30
|
|
47
|
+
|
|
48
|
+
# Existing domain boundaries
|
|
49
|
+
ls -la src/*/ # or app/*/ or packages/*/
|
|
50
|
+
|
|
51
|
+
# Data flow
|
|
52
|
+
grep -rn "import.*from\|require(" src/ --include="*.{ts,js}" | head -20
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
If DDD reference patterns exist (see .omg/knowledge/ or existing domain modules):
|
|
56
|
+
- Read the reference domain FIRST
|
|
57
|
+
- Plan the new feature to MATCH the pattern
|
|
58
|
+
- Note any intentional deviations with WHY
|
|
59
|
+
|
|
60
|
+
## Step 3: Create the Deep Plan (Plan Council Artifacts)
|
|
61
|
+
|
|
62
|
+
Generate the canonical `plan-council` artifacts. Use Bash heredoc to write these files.
|
|
63
|
+
Required artifacts: `.omg/plans/deep-plan.md`, `.omg/plans/deep-plan.json`, `.omg/plans/dissent.json`, `.omg/evidence/plan-council.json`.
|
|
64
|
+
|
|
65
|
+
### Artifact 1: `.omg/plans/deep-plan.md` (Human-readable)
|
|
66
|
+
```markdown
|
|
67
|
+
# Deep Plan: [Feature Name]
|
|
68
|
+
Created: [date]
|
|
69
|
+
CHANGE_BUDGET=[small|medium|large]
|
|
70
|
+
|
|
71
|
+
## Direction
|
|
72
|
+
[1-2 sentences: what the user is building toward, not just this task]
|
|
73
|
+
|
|
74
|
+
## Domain Context
|
|
75
|
+
Reference pattern: [file/module that sets the pattern]
|
|
76
|
+
Bounded contexts affected: [list]
|
|
77
|
+
Key interfaces: [list the interfaces/types this touches]
|
|
78
|
+
|
|
79
|
+
## Architecture Decisions
|
|
80
|
+
- [Decision]: [chosen approach] because [reason]
|
|
81
|
+
Alternatives considered: [what was rejected and why]
|
|
82
|
+
|
|
83
|
+
## Implementation Plan
|
|
84
|
+
|
|
85
|
+
### Phase 1: Foundation [N files, ~M lines]
|
|
86
|
+
1. [ ] [specific action] — [file] — [what and why]
|
|
87
|
+
2. [ ] [specific action] — [file]
|
|
88
|
+
|
|
89
|
+
### Phase 2: Core Logic [N files, ~M lines]
|
|
90
|
+
3. [ ] [specific action]
|
|
91
|
+
4. [ ] [specific action]
|
|
92
|
+
|
|
93
|
+
### Phase 3: Integration + Verification [N files, ~M lines]
|
|
94
|
+
5. [ ] [specific action]
|
|
95
|
+
6. [ ] Verification: /OMG:security-check [affected files]
|
|
96
|
+
|
|
97
|
+
### Phase 4: Verification
|
|
98
|
+
7. [ ] Tests: [what to test, how]
|
|
99
|
+
8. [ ] Edge cases: [list]
|
|
100
|
+
9. [ ] Manual verification: [steps]
|
|
101
|
+
|
|
102
|
+
## Risk Map
|
|
103
|
+
- [Risk]: [mitigation]
|
|
104
|
+
- [Risk]: [mitigation]
|
|
105
|
+
|
|
106
|
+
## What NOT to Do
|
|
107
|
+
- [Anti-pattern specific to this feature]
|
|
108
|
+
- [Approach that looks tempting but will fail because...]
|
|
109
|
+
|
|
110
|
+
## Files to Read Before Starting
|
|
111
|
+
1. [file] — [why: contains the reference pattern]
|
|
112
|
+
2. [file] — [why: defines the interface this must implement]
|
|
113
|
+
|
|
114
|
+
## Plan Council Requirements
|
|
115
|
+
### Assumptions
|
|
116
|
+
List your assumptions below:
|
|
117
|
+
- [Assumption 1]
|
|
118
|
+
- [Assumption 2]
|
|
119
|
+
|
|
120
|
+
### Objections and Dissent
|
|
121
|
+
Record any objections or dissent:
|
|
122
|
+
- [Dissent 1]
|
|
123
|
+
- [Dissent 2]
|
|
124
|
+
|
|
125
|
+
### Rollback Plan
|
|
126
|
+
Define the rollback plan:
|
|
127
|
+
- [Step 1 to revert]
|
|
128
|
+
- [Step 2 to revert]
|
|
129
|
+
|
|
130
|
+
### Verification Commands
|
|
131
|
+
List the verification commands:
|
|
132
|
+
- [Command 1]
|
|
133
|
+
- [Command 2]
|
|
134
|
+
|
|
135
|
+
### Evidence Requirements
|
|
136
|
+
Define the evidence requirements:
|
|
137
|
+
- [Requirement 1]
|
|
138
|
+
- [Requirement 2]
|
|
139
|
+
|
|
140
|
+
### What would falsify this plan?
|
|
141
|
+
Define what would falsify this plan:
|
|
142
|
+
- [Condition 1]
|
|
143
|
+
- [Condition 2]
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### Artifact 2: `.omg/plans/deep-plan.json` (Machine-readable)
|
|
147
|
+
Include the full task plan, workflow stages, and metadata.
|
|
148
|
+
|
|
149
|
+
### Artifact 3: `.omg/plans/dissent.json` (Dissent log)
|
|
150
|
+
Record all objections, risks, and counter-arguments raised during planning.
|
|
151
|
+
|
|
152
|
+
### Artifact 4: `.omg/evidence/plan-council.json` (Planning evidence)
|
|
153
|
+
Record the planning process evidence, including tool outputs and validation results.
|
|
154
|
+
|
|
155
|
+
## Step 4: Present and Iterate
|
|
156
|
+
|
|
157
|
+
Show the plan to the user. Ask:
|
|
158
|
+
- "Does this match the direction you're thinking?"
|
|
159
|
+
- "Anything I'm missing about your goals?"
|
|
160
|
+
- "Should I adjust the scope or priority?"
|
|
161
|
+
|
|
162
|
+
Update the plan based on feedback BEFORE starting implementation.
|
|
163
|
+
|
|
164
|
+
## Step 4.5: Codex Plan Validation (MANDATORY)
|
|
165
|
+
|
|
166
|
+
Before implementation, run a dedicated Codex validation pass on the final plan.
|
|
167
|
+
|
|
168
|
+
Checklist for Codex validation:
|
|
169
|
+
- ordering and dependency correctness
|
|
170
|
+
- hidden edge cases and rollback gaps
|
|
171
|
+
- security/performance blind spots
|
|
172
|
+
- missing verification steps
|
|
173
|
+
|
|
174
|
+
Only after applying those corrections, continue to execution.
|
|
175
|
+
|
|
176
|
+
## Step 4.6: Multi-Agent Bootstrap (MANDATORY)
|
|
177
|
+
|
|
178
|
+
After validation, launch exactly 5 planning tracks with mixed-model intent using OMG-native routing (same planning discipline as OMG):
|
|
179
|
+
|
|
180
|
+
1. Architect track (Claude)
|
|
181
|
+
2. Backend track (GPT/Codex)
|
|
182
|
+
3. Frontend track (Gemini)
|
|
183
|
+
4. Security track (GPT/Codex)
|
|
184
|
+
5. Verification track (Claude)
|
|
185
|
+
|
|
186
|
+
Dispatch pattern is mandatory: all 5 tracks launch in parallel as background sub-agents.
|
|
187
|
+
|
|
188
|
+
```python
|
|
189
|
+
task(subagent_type="explore", run_in_background=true, load_skills=[], description="Architect planning track", prompt="...")
|
|
190
|
+
task(subagent_type="explore", run_in_background=true, load_skills=[], description="Backend planning track", prompt="...")
|
|
191
|
+
task(subagent_type="explore", run_in_background=true, load_skills=[], description="Frontend planning track", prompt="...")
|
|
192
|
+
task(subagent_type="explore", run_in_background=true, load_skills=[], description="Security planning track", prompt="...")
|
|
193
|
+
task(subagent_type="explore", run_in_background=true, load_skills=[], description="Verification planning track", prompt="...")
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Collection and merge protocol:
|
|
197
|
+
- collect every track using `background_output(task_id="...")`
|
|
198
|
+
- run a `sequential-thinking` merge pass to resolve conflicts and ordering
|
|
199
|
+
- emit one final executable checklist only after the merge pass
|
|
200
|
+
|
|
201
|
+
Each track must return:
|
|
202
|
+
- concrete plan steps
|
|
203
|
+
- risk notes
|
|
204
|
+
- verification commands
|
|
205
|
+
|
|
206
|
+
Then merge outputs into a single execution checklist before implementation.
|
|
207
|
+
|
|
208
|
+
## Step 5: Generate Checklist
|
|
209
|
+
|
|
210
|
+
Convert the plan into `.omg/state/_checklist.md` with concrete steps.
|
|
211
|
+
Each step should be completable in ONE tool interaction (not "implement the feature").
|
|
212
|
+
|
|
213
|
+
## Step 5.5: Business Workflow Contract (MANDATORY)
|
|
214
|
+
|
|
215
|
+
Deep-plan owns the business-style delivery workflow and task-plan contract.
|
|
216
|
+
|
|
217
|
+
Always generate a normalized workflow path and task plan directly from user instructions:
|
|
218
|
+
|
|
219
|
+
- canonical stages: `plan -> implement -> qa -> simulate -> final_test -> production`
|
|
220
|
+
- accepted user path keys: `workflow`, `path`, `delivery_path`, `workflow_path`
|
|
221
|
+
- accepted stage aliases:
|
|
222
|
+
- `planning -> plan`
|
|
223
|
+
- `implementation|build -> implement`
|
|
224
|
+
- `quality|quality_assurance -> qa`
|
|
225
|
+
- `testing|test -> final_test`
|
|
226
|
+
- `prod|deploy -> production`
|
|
227
|
+
|
|
228
|
+
Rules:
|
|
229
|
+
1. If user provides a partial path, keep user order and append missing canonical stages.
|
|
230
|
+
2. If user provides no path, use the full canonical path.
|
|
231
|
+
3. Build tasks from:
|
|
232
|
+
- `user_instructions[]` (source of truth for requested workflow)
|
|
233
|
+
- `constraints[]` (delivery boundaries)
|
|
234
|
+
- `acceptance[]` (final test criteria)
|
|
235
|
+
4. Include stage readiness for production handoff:
|
|
236
|
+
- `production=ready` only when QA/simulation/final_test gates pass.
|
|
237
|
+
|
|
238
|
+
Persist this contract into planning artifacts:
|
|
239
|
+
- `.omg/plans/deep-plan.md` (human-readable plan)
|
|
240
|
+
- `.omg/plans/deep-plan.json` (machine-readable plan)
|
|
241
|
+
- include structured task metadata in the plan output (`stage`, `title`, `detail`, `source`).
|
|
242
|
+
|
|
243
|
+
## Integration with DDD
|
|
244
|
+
|
|
245
|
+
If this is a new domain:
|
|
246
|
+
1. Ask the user to write (or help write) the first domain reference
|
|
247
|
+
2. Extract the pattern: naming convention, data flow, error handling style
|
|
248
|
+
3. Document the pattern in .omg/knowledge/domain-patterns/[name].md
|
|
249
|
+
4. Use the pattern for ALL subsequent domains
|
|
250
|
+
|
|
251
|
+
## Idea-as-Code Contract (required)
|
|
252
|
+
|
|
253
|
+
Before leaving planning, ensure `.omg/idea.yml` exists with:
|
|
254
|
+
- `goal`
|
|
255
|
+
- `constraints[]`
|
|
256
|
+
- `acceptance[]`
|
|
257
|
+
- `risk.security[]|risk.performance[]|risk.compatibility[]`
|
|
258
|
+
- `evidence_required.tests[]|security_scans[]|reproducibility[]`
|
|
259
|
+
|
|
260
|
+
If missing, scaffold from template and fill from the conversation.
|
|
261
|
+
|
|
262
|
+
## Anti-patterns
|
|
263
|
+
- Don't plan in your head and dump a wall of text — INTERACT with the user
|
|
264
|
+
- Don't make architecture decisions without checking existing patterns
|
|
265
|
+
- Don't create a plan with vague steps like "implement feature" — be specific
|
|
266
|
+
- Don't skip the Direction step — it's the difference between useful and useless
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Intelligent session transfer — captures WHAT was done, HOW it was done, and WHY decisions were made. Works across platforms (Claude Code → Claude.ai).
|
|
3
|
+
allowed-tools: Read, Write, Edit, MultiEdit, Bash(git:*), Bash(cat:*), Bash(wc:*), Bash(find:*), Bash(mkdir:*), Bash(tee:*), Grep, Glob
|
|
4
|
+
argument-hint: "[optional: --portable for cross-platform, or reason for handoff]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /OMG:handoff — Intelligent Session Transfer
|
|
8
|
+
|
|
9
|
+
## Size Budget (CRITICAL)
|
|
10
|
+
- handoff.md: **≤ 60 lines** (briefing, not data dump)
|
|
11
|
+
- handoff-portable.md: **≤ 100 lines** (fits most context windows)
|
|
12
|
+
- If a section grows too long, SUMMARIZE — don't truncate mid-sentence
|
|
13
|
+
|
|
14
|
+
## Philosophy
|
|
15
|
+
A handoff is NOT a data dump. It's a **briefing** for the next session.
|
|
16
|
+
The next Claude (in ANY platform) should read this and know EXACTLY:
|
|
17
|
+
1. What was the goal
|
|
18
|
+
2. What was accomplished (with evidence)
|
|
19
|
+
3. What decisions were made and WHY
|
|
20
|
+
4. What failed and WHY (so it doesn't repeat)
|
|
21
|
+
5. The single most important next action
|
|
22
|
+
|
|
23
|
+
## Step 1: Gather Intelligence
|
|
24
|
+
|
|
25
|
+
Read these (silently, don't dump to user):
|
|
26
|
+
- .omg/state/profile.yaml or project.md (project identity)
|
|
27
|
+
- .omg/state/working-memory.md or _plan.md + _checklist.md (task state)
|
|
28
|
+
- .omg/state/ledger/failure-tracker.json (what failed)
|
|
29
|
+
- .omg/state/ledger/tool-ledger.jsonl (last 20 entries for activity summary)
|
|
30
|
+
- git diff --stat + git log --oneline -5 (what changed)
|
|
31
|
+
|
|
32
|
+
## Step 2: Synthesize — Write .omg/state/handoff.md
|
|
33
|
+
|
|
34
|
+
DO NOT copy-paste raw data. SYNTHESIZE into this structure (≤ 60 lines total):
|
|
35
|
+
|
|
36
|
+
```markdown
|
|
37
|
+
# Handoff — [date]
|
|
38
|
+
|
|
39
|
+
## Goal
|
|
40
|
+
[1 sentence: what we're trying to achieve]
|
|
41
|
+
|
|
42
|
+
## What Was Done (with evidence)
|
|
43
|
+
- [action]: [result] (verified: [command, exit code])
|
|
44
|
+
Total: [N] files changed, [M] lines
|
|
45
|
+
|
|
46
|
+
## Key Decisions (preserve these)
|
|
47
|
+
- Chose [X] over [Y] because [reason]
|
|
48
|
+
|
|
49
|
+
## What Failed (don't repeat these)
|
|
50
|
+
- [Approach A]: failed because [root cause]
|
|
51
|
+
|
|
52
|
+
## Current State
|
|
53
|
+
Branch: [name] | Uncommitted: [N files]
|
|
54
|
+
Checklist: [done]/[total] steps
|
|
55
|
+
|
|
56
|
+
## Exact Next Step
|
|
57
|
+
[Single most important action with specific instructions]
|
|
58
|
+
Read [specific file] first, then [specific action]
|
|
59
|
+
|
|
60
|
+
## Files to Read on Resume
|
|
61
|
+
1. .omg/state/profile.yaml (project identity)
|
|
62
|
+
2. .omg/state/handoff.md (this file)
|
|
63
|
+
3. [specific file relevant to next step]
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Step 3: Generate Portable Version (≤ 100 lines)
|
|
67
|
+
|
|
68
|
+
ALWAYS also generate `.omg/state/handoff-portable.md` — a **self-contained** version that works
|
|
69
|
+
when pasted into Claude.ai, ChatGPT, or any AI chat without file access.
|
|
70
|
+
|
|
71
|
+
Portable version differences:
|
|
72
|
+
- **Include** project identity inline (language, framework, key conventions) — no file references
|
|
73
|
+
- **Include** the relevant code context (key interfaces, schemas, or config) — the next AI can't Read files
|
|
74
|
+
- **Replace** "Read file X" with actual excerpts of the critical parts
|
|
75
|
+
- **Total ≤ 100 lines** (fits in most context windows)
|
|
76
|
+
|
|
77
|
+
## Step 4: Write Files
|
|
78
|
+
|
|
79
|
+
**IMPORTANT: File write method — prevents "Error writing file".**
|
|
80
|
+
|
|
81
|
+
First ensure directory exists:
|
|
82
|
+
```
|
|
83
|
+
mkdir -p .omg/state
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Then write with `Write` tool. **If Write fails** (file already exists), use Bash heredoc:
|
|
87
|
+
```bash
|
|
88
|
+
cat > .omg/state/handoff.md << 'HANDOFF_EOF'
|
|
89
|
+
[content here]
|
|
90
|
+
HANDOFF_EOF
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Do the same for handoff-portable.md.
|
|
94
|
+
|
|
95
|
+
## Step 5: Present BOTH Versions
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
Handoff ready:
|
|
99
|
+
📁 .omg/state/handoff.md ([N] lines) — for Claude Code sessions
|
|
100
|
+
📋 .omg/state/handoff-portable.md ([N] lines) — for Claude.ai / other platforms
|
|
101
|
+
|
|
102
|
+
To continue in Claude Code:
|
|
103
|
+
"Read .omg/state/profile.yaml and .omg/state/handoff.md, continue where I left off."
|
|
104
|
+
|
|
105
|
+
To continue in Claude.ai (copy-paste the portable version):
|
|
106
|
+
[Show the user the full content of handoff-portable.md so they can copy it]
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Anti-patterns
|
|
110
|
+
- Don't dump raw file contents into handoff (synthesize)
|
|
111
|
+
- Don't list every tool call (summarize activity)
|
|
112
|
+
- Don't include full error output (root cause only)
|
|
113
|
+
- Don't make the portable version reference files it can't access
|
|
114
|
+
- Don't exceed 60 lines / 100 lines budget
|
|
115
|
+
- Don't use Write tool alone if the file already exists — fallback to Bash heredoc
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Create a reusable skill from a pattern you just did. Auto-detects repetitive work and offers to skill-ify it.
|
|
3
|
+
allowed-tools: Read, Write, Edit, MultiEdit, Bash(git:*), Bash(cat:*), Bash(find:*), Bash(ls:*), Bash(mkdir:*), Bash(tee:*), Grep, Glob
|
|
4
|
+
argument-hint: "[skill name] or 'auto' to detect from recent work"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /OMG:learn — Auto-Skill Creator
|
|
8
|
+
|
|
9
|
+
## What This Does
|
|
10
|
+
Takes something you just did (test pattern, implementation approach, debugging method)
|
|
11
|
+
and turns it into a reusable Claude Code skill that activates automatically next time.
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
### Manual: /OMG:learn [skill-name]
|
|
16
|
+
Claude asks you what the pattern is and creates a skill.
|
|
17
|
+
|
|
18
|
+
### Auto: /OMG:learn auto
|
|
19
|
+
Claude analyzes recent tool-ledger entries to detect repetitive patterns.
|
|
20
|
+
|
|
21
|
+
## Step 1: Detect Pattern
|
|
22
|
+
|
|
23
|
+
### If "auto":
|
|
24
|
+
Read .omg/state/ledger/tool-ledger.jsonl (last 50 entries).
|
|
25
|
+
Look for:
|
|
26
|
+
- Same file types being created repeatedly (e.g., always creating .test.ts with same structure)
|
|
27
|
+
- Same command sequences repeated (e.g., lint → typecheck → test → format)
|
|
28
|
+
- Same file reading patterns (e.g., always reading ARCHITECTURE_TOC.md before edits)
|
|
29
|
+
- Same error→fix sequences (e.g., import error → add import → retry)
|
|
30
|
+
|
|
31
|
+
Present findings: "I noticed you repeatedly [pattern]. Want me to make this a skill?"
|
|
32
|
+
|
|
33
|
+
### If manual:
|
|
34
|
+
Ask: "Describe the pattern you want to save. What triggers it? What should happen?"
|
|
35
|
+
|
|
36
|
+
## Step 2: Create Skill
|
|
37
|
+
|
|
38
|
+
Skills live in: ~/.config/omg/skills/ (personal) or .omg/skills/ (project)
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
~/.config/omg/skills/[skill-name]/
|
|
42
|
+
├── SKILL.md # Instructions Claude follows
|
|
43
|
+
├── templates/ # Template files (optional)
|
|
44
|
+
└── scripts/ # Helper scripts (optional)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### SKILL.md Format:
|
|
48
|
+
```markdown
|
|
49
|
+
# [Skill Name]
|
|
50
|
+
|
|
51
|
+
## When to activate
|
|
52
|
+
[Trigger conditions — what keywords, file types, or situations activate this]
|
|
53
|
+
|
|
54
|
+
## Steps
|
|
55
|
+
1. [Step 1]
|
|
56
|
+
2. [Step 2]
|
|
57
|
+
...
|
|
58
|
+
|
|
59
|
+
## Templates
|
|
60
|
+
[If the skill creates files, include template content or reference templates/]
|
|
61
|
+
|
|
62
|
+
## Quality check
|
|
63
|
+
[How to verify the skill worked correctly]
|
|
64
|
+
|
|
65
|
+
## Examples
|
|
66
|
+
[1-2 examples of good output]
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Step 3: Register
|
|
70
|
+
|
|
71
|
+
Add skill to .omg/skills-index.json:
|
|
72
|
+
```json
|
|
73
|
+
{
|
|
74
|
+
"skills": [
|
|
75
|
+
{
|
|
76
|
+
"name": "api-test-pattern",
|
|
77
|
+
"trigger": ["test", "api", "endpoint"],
|
|
78
|
+
"path": "~/.config/omg/skills/api-test-pattern/SKILL.md",
|
|
79
|
+
"description": "Creates API endpoint tests with auth, validation, edge cases"
|
|
80
|
+
}
|
|
81
|
+
]
|
|
82
|
+
}
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Step 4: Verify
|
|
86
|
+
- Create a test invocation
|
|
87
|
+
- Confirm the skill produces correct output
|
|
88
|
+
- Tell user: "Skill '[name]' saved. It'll activate when you [trigger condition]."
|
|
89
|
+
|
|
90
|
+
## Built-in Skill Candidates (suggest these)
|
|
91
|
+
When detecting patterns, especially look for:
|
|
92
|
+
- **Test patterns**: How tests are structured for this project
|
|
93
|
+
- **Component patterns**: How new React/Vue/etc components are created
|
|
94
|
+
- **API patterns**: How new endpoints are added (route + handler + validation + test)
|
|
95
|
+
- **Migration patterns**: How DB migrations are created and verified
|
|
96
|
+
- **PR patterns**: How PRs are structured (description, checklist, labels)
|
|
97
|
+
- **Debug patterns**: Project-specific debugging steps (log locations, common fixes)
|
|
98
|
+
|
|
99
|
+
## Aggregated Patterns (Auto)
|
|
100
|
+
When you run `/OMG:learn auto`, OMG reads all learning files from `.omg/state/learnings/` and generates `.omg/knowledge/critical-patterns.md` with your top tool and file patterns.
|
|
101
|
+
|
|
102
|
+
Run: `python3 -c "import sys; sys.path.insert(0,'hooks'); from _learnings import save_critical_patterns; save_critical_patterns('.')"`
|
|
103
|
+
## File Write Fallback
|
|
104
|
+
If `Write` fails (file exists), use `Edit` or Bash heredoc:
|
|
105
|
+
```bash
|
|
106
|
+
cat > path/to/skill.md << 'SKILLEOF'
|
|
107
|
+
[content]
|
|
108
|
+
SKILLEOF
|
|
109
|
+
```
|
|
110
|
+
Always READ the file after writing to verify changes.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Open-source maintainer workflow — issue triage, release notes, review assistance, impact evidence pack
|
|
3
|
+
allowed-tools: Read, Write, Edit, MultiEdit, Grep, Glob, Bash(git:*), Bash(rg:*), Bash(find:*), Bash(cat:*), Bash(ls:*)
|
|
4
|
+
argument-hint: "[triage|release|review|impact]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /OMG:maintainer — OSS Maintainer Kit
|
|
8
|
+
|
|
9
|
+
## Modes
|
|
10
|
+
1. `triage`: summarize new issues, propose labels/priority/owner.
|
|
11
|
+
2. `release`: draft release notes from recent commits and notable changes.
|
|
12
|
+
3. `review`: review open changes with risk tags and test gaps.
|
|
13
|
+
4. `impact`: generate Ecosystem Impact evidence draft.
|
|
14
|
+
|
|
15
|
+
## Ecosystem Impact Evidence Pack
|
|
16
|
+
Create `.omg/evidence/oss-impact.json` with:
|
|
17
|
+
- `activity`: commits/reviews/releases in recent window
|
|
18
|
+
- `dependents`: direct/transitive usage indicators (if available)
|
|
19
|
+
- `stability`: test pass/fail trend and security findings
|
|
20
|
+
- `adoption_signals`: downloads/stars/changelog cadence (factual only)
|
|
21
|
+
- `summary_500_words`: draft narrative for application forms
|
|
22
|
+
|
|
23
|
+
## Integrity Policy
|
|
24
|
+
- Never fabricate stats.
|
|
25
|
+
- Never suggest metric manipulation (stars/download inflation).
|
|
26
|
+
- Mark unknown metrics as `unverified`.
|
|
27
|
+
|
|
28
|
+
## Output format
|
|
29
|
+
- Findings first
|
|
30
|
+
- Risks and unknowns
|
|
31
|
+
- Actionable next 3 maintainer tasks
|
|
@@ -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`
|