claudecode-omc 4.8.1 → 4.8.3
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/.claude-plugin/marketplace.json +3 -3
- package/.claude-plugin/plugin.json +3 -3
- package/README.de.md +60 -0
- package/README.es.md +60 -0
- package/README.fr.md +60 -0
- package/README.it.md +60 -0
- package/README.ja.md +60 -0
- package/README.ko.md +60 -0
- package/README.md +101 -16
- package/README.pt.md +60 -0
- package/README.ru.md +60 -0
- package/README.tr.md +60 -0
- package/README.vi.md +60 -0
- package/README.zh.md +60 -0
- package/agents/code-reviewer.md +107 -6
- package/agents/critic.md +212 -42
- package/agents/debugger.md +52 -4
- package/agents/document-specialist.md +39 -60
- package/agents/executor.md +29 -9
- package/agents/explore.md +3 -1
- package/agents/security-reviewer.md +57 -0
- package/agents/test-engineer.md +21 -0
- package/agents/verifier.md +2 -0
- package/agents/writer.md +2 -0
- package/bridge/cli.cjs +7412 -3577
- package/bridge/mcp-server.cjs +558 -43
- package/bridge/runtime-cli.cjs +3034 -1801
- package/bridge/team-bridge.cjs +25 -1
- package/bridge/team-mcp.cjs +257 -88
- package/bridge/team.js +5226 -413
- package/dist/__tests__/agent-boundary-guidance.test.d.ts +2 -0
- package/dist/__tests__/agent-boundary-guidance.test.d.ts.map +1 -0
- package/dist/__tests__/agent-boundary-guidance.test.js +48 -0
- package/dist/__tests__/agent-boundary-guidance.test.js.map +1 -0
- package/dist/__tests__/agent-registry.test.js +48 -11
- package/dist/__tests__/agent-registry.test.js.map +1 -1
- package/dist/__tests__/auto-slash-aliases.test.js +25 -0
- package/dist/__tests__/auto-slash-aliases.test.js.map +1 -1
- package/dist/__tests__/bedrock-model-routing.test.d.ts +21 -0
- package/dist/__tests__/bedrock-model-routing.test.d.ts.map +1 -0
- package/dist/__tests__/bedrock-model-routing.test.js +397 -0
- package/dist/__tests__/bedrock-model-routing.test.js.map +1 -0
- package/dist/__tests__/cleanup-validation.test.js +7 -3
- package/dist/__tests__/cleanup-validation.test.js.map +1 -1
- package/dist/__tests__/cli-win32-warning.test.js +15 -2
- package/dist/__tests__/cli-win32-warning.test.js.map +1 -1
- package/dist/__tests__/consolidation-contracts.test.js +28 -3
- package/dist/__tests__/consolidation-contracts.test.js.map +1 -1
- package/dist/__tests__/context-guard-stop.test.d.ts +2 -0
- package/dist/__tests__/context-guard-stop.test.d.ts.map +1 -0
- package/dist/__tests__/context-guard-stop.test.js +58 -0
- package/dist/__tests__/context-guard-stop.test.js.map +1 -0
- package/dist/__tests__/delegation-enforcer.test.js +76 -11
- package/dist/__tests__/delegation-enforcer.test.js.map +1 -1
- package/dist/__tests__/doctor-conflicts.test.js +62 -1
- package/dist/__tests__/doctor-conflicts.test.js.map +1 -1
- package/dist/__tests__/hooks.test.js +165 -4
- package/dist/__tests__/hooks.test.js.map +1 -1
- package/dist/__tests__/hud/defaults.test.js +4 -0
- package/dist/__tests__/hud/defaults.test.js.map +1 -1
- package/dist/__tests__/hud/limits-error.test.js +2 -4
- package/dist/__tests__/hud/limits-error.test.js.map +1 -1
- package/dist/__tests__/hud/mission-board-state.test.d.ts +2 -0
- package/dist/__tests__/hud/mission-board-state.test.d.ts.map +1 -0
- package/dist/__tests__/hud/mission-board-state.test.js +170 -0
- package/dist/__tests__/hud/mission-board-state.test.js.map +1 -0
- package/dist/__tests__/hud/mission-board.test.d.ts +2 -0
- package/dist/__tests__/hud/mission-board.test.d.ts.map +1 -0
- package/dist/__tests__/hud/mission-board.test.js +143 -0
- package/dist/__tests__/hud/mission-board.test.js.map +1 -0
- package/dist/__tests__/hud/rate-limits-error.test.js +13 -0
- package/dist/__tests__/hud/rate-limits-error.test.js.map +1 -1
- package/dist/__tests__/hud/render-rate-limits-priority.test.d.ts +8 -0
- package/dist/__tests__/hud/render-rate-limits-priority.test.d.ts.map +1 -0
- package/dist/__tests__/hud/render-rate-limits-priority.test.js +145 -0
- package/dist/__tests__/hud/render-rate-limits-priority.test.js.map +1 -0
- package/dist/__tests__/hud/render.test.js +22 -0
- package/dist/__tests__/hud/render.test.js.map +1 -1
- package/dist/__tests__/hud/stale-indicator.test.d.ts +9 -0
- package/dist/__tests__/hud/stale-indicator.test.d.ts.map +1 -0
- package/dist/__tests__/hud/stale-indicator.test.js +81 -0
- package/dist/__tests__/hud/stale-indicator.test.js.map +1 -0
- package/dist/__tests__/hud/state.test.js +30 -0
- package/dist/__tests__/hud/state.test.js.map +1 -1
- package/dist/__tests__/hud/usage-api-lock.test.d.ts +2 -0
- package/dist/__tests__/hud/usage-api-lock.test.d.ts.map +1 -0
- package/dist/__tests__/hud/usage-api-lock.test.js +245 -0
- package/dist/__tests__/hud/usage-api-lock.test.js.map +1 -0
- package/dist/__tests__/hud/usage-api-stale.test.d.ts +9 -0
- package/dist/__tests__/hud/usage-api-stale.test.d.ts.map +1 -0
- package/dist/__tests__/hud/usage-api-stale.test.js +297 -0
- package/dist/__tests__/hud/usage-api-stale.test.js.map +1 -0
- package/dist/__tests__/hud/usage-api.test.js +223 -0
- package/dist/__tests__/hud/usage-api.test.js.map +1 -1
- package/dist/__tests__/hud/watch-mode-init.test.d.ts +2 -0
- package/dist/__tests__/hud/watch-mode-init.test.d.ts.map +1 -0
- package/dist/__tests__/hud/watch-mode-init.test.js +133 -0
- package/dist/__tests__/hud/watch-mode-init.test.js.map +1 -0
- package/dist/__tests__/hud-agents.test.js +12 -10
- package/dist/__tests__/hud-agents.test.js.map +1 -1
- package/dist/__tests__/hud-build-guidance.test.js +6 -2
- package/dist/__tests__/hud-build-guidance.test.js.map +1 -1
- package/dist/__tests__/hud-marketplace-resolution.test.d.ts +2 -0
- package/dist/__tests__/hud-marketplace-resolution.test.d.ts.map +1 -0
- package/dist/__tests__/hud-marketplace-resolution.test.js +53 -0
- package/dist/__tests__/hud-marketplace-resolution.test.js.map +1 -0
- package/dist/__tests__/installer-hud-skip.test.js +12 -0
- package/dist/__tests__/installer-hud-skip.test.js.map +1 -1
- package/dist/__tests__/installer-plugin-agents.test.d.ts +2 -0
- package/dist/__tests__/installer-plugin-agents.test.d.ts.map +1 -0
- package/dist/__tests__/installer-plugin-agents.test.js +111 -0
- package/dist/__tests__/installer-plugin-agents.test.js.map +1 -0
- package/dist/__tests__/installer-version-guard.test.d.ts +2 -0
- package/dist/__tests__/installer-version-guard.test.d.ts.map +1 -0
- package/dist/__tests__/installer-version-guard.test.js +75 -0
- package/dist/__tests__/installer-version-guard.test.js.map +1 -0
- package/dist/__tests__/installer.test.js +58 -4
- package/dist/__tests__/installer.test.js.map +1 -1
- package/dist/__tests__/omc-tools-server.test.js +8 -5
- package/dist/__tests__/omc-tools-server.test.js.map +1 -1
- package/dist/__tests__/pre-tool-enforcer.test.js +38 -0
- package/dist/__tests__/pre-tool-enforcer.test.js.map +1 -1
- package/dist/__tests__/prompt-injection.test.js +3 -3
- package/dist/__tests__/prompt-injection.test.js.map +1 -1
- package/dist/__tests__/ralph-prd-mandatory.test.js +53 -2
- package/dist/__tests__/ralph-prd-mandatory.test.js.map +1 -1
- package/dist/__tests__/rate-limit-wait/rate-limit-monitor.test.js +42 -0
- package/dist/__tests__/rate-limit-wait/rate-limit-monitor.test.js.map +1 -1
- package/dist/__tests__/rate-limit-wait/tmux-detector.test.js +1 -1
- package/dist/__tests__/session-history-search.test.d.ts +2 -0
- package/dist/__tests__/session-history-search.test.d.ts.map +1 -0
- package/dist/__tests__/session-history-search.test.js +115 -0
- package/dist/__tests__/session-history-search.test.js.map +1 -0
- package/dist/__tests__/session-start-script-context.test.d.ts +2 -0
- package/dist/__tests__/session-start-script-context.test.d.ts.map +1 -0
- package/dist/__tests__/session-start-script-context.test.js +49 -0
- package/dist/__tests__/session-start-script-context.test.js.map +1 -0
- package/dist/__tests__/skills.test.js +71 -24
- package/dist/__tests__/skills.test.js.map +1 -1
- package/dist/__tests__/standalone-server.test.js +8 -4
- package/dist/__tests__/standalone-server.test.js.map +1 -1
- package/dist/__tests__/tier0-docs-consistency.test.js +10 -2
- package/dist/__tests__/tier0-docs-consistency.test.js.map +1 -1
- package/dist/agents/definitions.d.ts +5 -15
- package/dist/agents/definitions.d.ts.map +1 -1
- package/dist/agents/definitions.js +48 -49
- package/dist/agents/definitions.js.map +1 -1
- package/dist/agents/document-specialist.d.ts +1 -1
- package/dist/agents/document-specialist.d.ts.map +1 -1
- package/dist/agents/document-specialist.js +46 -21
- package/dist/agents/document-specialist.js.map +1 -1
- package/dist/agents/explore.d.ts.map +1 -1
- package/dist/agents/explore.js +3 -2
- package/dist/agents/explore.js.map +1 -1
- package/dist/agents/index.d.ts +2 -4
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +3 -6
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/types.d.ts +2 -2
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/cli/__tests__/ask.test.js +255 -8
- package/dist/cli/__tests__/ask.test.js.map +1 -1
- package/dist/cli/__tests__/session-search-help.test.d.ts +2 -0
- package/dist/cli/__tests__/session-search-help.test.d.ts.map +1 -0
- package/dist/cli/__tests__/session-search-help.test.js +13 -0
- package/dist/cli/__tests__/session-search-help.test.js.map +1 -0
- package/dist/cli/__tests__/session-search.test.d.ts +2 -0
- package/dist/cli/__tests__/session-search.test.d.ts.map +1 -0
- package/dist/cli/__tests__/session-search.test.js +72 -0
- package/dist/cli/__tests__/session-search.test.js.map +1 -0
- package/dist/cli/__tests__/team-help.test.js +1 -1
- package/dist/cli/__tests__/team-help.test.js.map +1 -1
- package/dist/cli/__tests__/team.test.js +256 -4
- package/dist/cli/__tests__/team.test.js.map +1 -1
- package/dist/cli/commands/__tests__/team.test.js +52 -2
- package/dist/cli/commands/__tests__/team.test.js.map +1 -1
- package/dist/cli/commands/doctor-conflicts.d.ts.map +1 -1
- package/dist/cli/commands/doctor-conflicts.js +15 -1
- package/dist/cli/commands/doctor-conflicts.js.map +1 -1
- package/dist/cli/commands/session-search.d.ts +18 -0
- package/dist/cli/commands/session-search.d.ts.map +1 -0
- package/dist/cli/commands/session-search.js +47 -0
- package/dist/cli/commands/session-search.js.map +1 -0
- package/dist/cli/commands/team.d.ts +11 -0
- package/dist/cli/commands/team.d.ts.map +1 -1
- package/dist/cli/commands/team.js +94 -24
- package/dist/cli/commands/team.js.map +1 -1
- package/dist/cli/commands/wait.d.ts.map +1 -1
- package/dist/cli/commands/wait.js +12 -1
- package/dist/cli/commands/wait.js.map +1 -1
- package/dist/cli/index.js +70 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/team.d.ts +1 -0
- package/dist/cli/team.d.ts.map +1 -1
- package/dist/cli/team.js +100 -214
- package/dist/cli/team.js.map +1 -1
- package/dist/cli/win32-warning.d.ts +2 -1
- package/dist/cli/win32-warning.d.ts.map +1 -1
- package/dist/cli/win32-warning.js +20 -6
- package/dist/cli/win32-warning.js.map +1 -1
- package/dist/config/__tests__/loader.test.d.ts +2 -0
- package/dist/config/__tests__/loader.test.d.ts.map +1 -0
- package/dist/config/__tests__/loader.test.js +145 -0
- package/dist/config/__tests__/loader.test.js.map +1 -0
- package/dist/config/__tests__/models.test.d.ts +2 -0
- package/dist/config/__tests__/models.test.d.ts.map +1 -0
- package/dist/config/__tests__/models.test.js +147 -0
- package/dist/config/__tests__/models.test.js.map +1 -0
- package/dist/config/__tests__/test-helpers.d.ts +3 -0
- package/dist/config/__tests__/test-helpers.d.ts.map +1 -0
- package/dist/config/__tests__/test-helpers.js +19 -0
- package/dist/config/__tests__/test-helpers.js.map +1 -0
- package/dist/config/loader.d.ts +3 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +140 -126
- package/dist/config/loader.js.map +1 -1
- package/dist/config/models.d.ts +29 -10
- package/dist/config/models.d.ts.map +1 -1
- package/dist/config/models.js +96 -10
- package/dist/config/models.js.map +1 -1
- package/dist/features/builtin-skills/skills.d.ts.map +1 -1
- package/dist/features/builtin-skills/skills.js +8 -1
- package/dist/features/builtin-skills/skills.js.map +1 -1
- package/dist/features/builtin-skills/types.d.ts +3 -0
- package/dist/features/builtin-skills/types.d.ts.map +1 -1
- package/dist/features/delegation-enforcer.d.ts +5 -12
- package/dist/features/delegation-enforcer.d.ts.map +1 -1
- package/dist/features/delegation-enforcer.js +48 -54
- package/dist/features/delegation-enforcer.js.map +1 -1
- package/dist/features/delegation-routing/__tests__/resolver.test.js +4 -3
- package/dist/features/delegation-routing/__tests__/resolver.test.js.map +1 -1
- package/dist/features/delegation-routing/types.d.ts.map +1 -1
- package/dist/features/delegation-routing/types.js +7 -4
- package/dist/features/delegation-routing/types.js.map +1 -1
- package/dist/features/index.d.ts +1 -0
- package/dist/features/index.d.ts.map +1 -1
- package/dist/features/index.js +2 -0
- package/dist/features/index.js.map +1 -1
- package/dist/features/rate-limit-wait/daemon.d.ts.map +1 -1
- package/dist/features/rate-limit-wait/daemon.js +8 -5
- package/dist/features/rate-limit-wait/daemon.js.map +1 -1
- package/dist/features/rate-limit-wait/index.d.ts +1 -1
- package/dist/features/rate-limit-wait/index.d.ts.map +1 -1
- package/dist/features/rate-limit-wait/index.js +1 -1
- package/dist/features/rate-limit-wait/index.js.map +1 -1
- package/dist/features/rate-limit-wait/rate-limit-monitor.d.ts +9 -0
- package/dist/features/rate-limit-wait/rate-limit-monitor.d.ts.map +1 -1
- package/dist/features/rate-limit-wait/rate-limit-monitor.js +38 -0
- package/dist/features/rate-limit-wait/rate-limit-monitor.js.map +1 -1
- package/dist/features/rate-limit-wait/tmux-detector.d.ts +2 -1
- package/dist/features/rate-limit-wait/tmux-detector.d.ts.map +1 -1
- package/dist/features/rate-limit-wait/tmux-detector.js +8 -9
- package/dist/features/rate-limit-wait/tmux-detector.js.map +1 -1
- package/dist/features/rate-limit-wait/types.d.ts +11 -0
- package/dist/features/rate-limit-wait/types.d.ts.map +1 -1
- package/dist/features/session-history-search/index.d.ts +6 -0
- package/dist/features/session-history-search/index.d.ts.map +1 -0
- package/dist/features/session-history-search/index.js +480 -0
- package/dist/features/session-history-search/index.js.map +1 -0
- package/dist/features/session-history-search/types.d.ts +36 -0
- package/dist/features/session-history-search/types.d.ts.map +1 -0
- package/dist/features/session-history-search/types.js +2 -0
- package/dist/features/session-history-search/types.js.map +1 -0
- package/dist/hooks/__tests__/background-process-guard.test.js +101 -5
- package/dist/hooks/__tests__/background-process-guard.test.js.map +1 -1
- package/dist/hooks/__tests__/bridge-openclaw.test.js +16 -5
- package/dist/hooks/__tests__/bridge-openclaw.test.js.map +1 -1
- package/dist/hooks/__tests__/bridge-routing.test.js +48 -1
- package/dist/hooks/__tests__/bridge-routing.test.js.map +1 -1
- package/dist/hooks/auto-slash-command/executor.d.ts.map +1 -1
- package/dist/hooks/auto-slash-command/executor.js +9 -1
- package/dist/hooks/auto-slash-command/executor.js.map +1 -1
- package/dist/hooks/auto-slash-command/types.d.ts +2 -0
- package/dist/hooks/auto-slash-command/types.d.ts.map +1 -1
- package/dist/hooks/auto-slash-command/types.js +0 -7
- package/dist/hooks/auto-slash-command/types.js.map +1 -1
- package/dist/hooks/autopilot/adapters/execution-adapter.js +3 -3
- package/dist/hooks/autopilot/prompts.js +1 -1
- package/dist/hooks/bridge-normalize.d.ts.map +1 -1
- package/dist/hooks/bridge-normalize.js +2 -0
- package/dist/hooks/bridge-normalize.js.map +1 -1
- package/dist/hooks/bridge.d.ts.map +1 -1
- package/dist/hooks/bridge.js +248 -39
- package/dist/hooks/bridge.js.map +1 -1
- package/dist/hooks/keyword-detector/__tests__/index.test.js +41 -0
- package/dist/hooks/keyword-detector/__tests__/index.test.js.map +1 -1
- package/dist/hooks/keyword-detector/index.d.ts +1 -1
- package/dist/hooks/keyword-detector/index.d.ts.map +1 -1
- package/dist/hooks/keyword-detector/index.js +3 -1
- package/dist/hooks/keyword-detector/index.js.map +1 -1
- package/dist/hooks/permission-handler/index.d.ts +8 -0
- package/dist/hooks/permission-handler/index.d.ts.map +1 -1
- package/dist/hooks/permission-handler/index.js +76 -0
- package/dist/hooks/permission-handler/index.js.map +1 -1
- package/dist/hooks/persistent-mode/__tests__/ralph-verification-flow.test.d.ts +2 -0
- package/dist/hooks/persistent-mode/__tests__/ralph-verification-flow.test.d.ts.map +1 -0
- package/dist/hooks/persistent-mode/__tests__/ralph-verification-flow.test.js +90 -0
- package/dist/hooks/persistent-mode/__tests__/ralph-verification-flow.test.js.map +1 -0
- package/dist/hooks/persistent-mode/__tests__/team-ralplan-stop.test.d.ts +2 -0
- package/dist/hooks/persistent-mode/__tests__/team-ralplan-stop.test.d.ts.map +1 -0
- package/dist/hooks/persistent-mode/__tests__/team-ralplan-stop.test.js +535 -0
- package/dist/hooks/persistent-mode/__tests__/team-ralplan-stop.test.js.map +1 -0
- package/dist/hooks/persistent-mode/index.d.ts +1 -1
- package/dist/hooks/persistent-mode/index.d.ts.map +1 -1
- package/dist/hooks/persistent-mode/index.js +296 -21
- package/dist/hooks/persistent-mode/index.js.map +1 -1
- package/dist/hooks/persistent-mode/stop-hook-blocking.test.js +156 -0
- package/dist/hooks/persistent-mode/stop-hook-blocking.test.js.map +1 -1
- package/dist/hooks/project-memory/__tests__/integration.test.js +27 -2
- package/dist/hooks/project-memory/__tests__/integration.test.js.map +1 -1
- package/dist/hooks/project-memory/__tests__/storage.test.js +37 -0
- package/dist/hooks/project-memory/__tests__/storage.test.js.map +1 -1
- package/dist/hooks/project-memory/storage.d.ts +1 -1
- package/dist/hooks/project-memory/storage.d.ts.map +1 -1
- package/dist/hooks/project-memory/storage.js +5 -4
- package/dist/hooks/project-memory/storage.js.map +1 -1
- package/dist/hooks/ralph/index.d.ts +1 -1
- package/dist/hooks/ralph/index.d.ts.map +1 -1
- package/dist/hooks/ralph/index.js +1 -1
- package/dist/hooks/ralph/index.js.map +1 -1
- package/dist/hooks/ralph/loop.d.ts +18 -0
- package/dist/hooks/ralph/loop.d.ts.map +1 -1
- package/dist/hooks/ralph/loop.js +31 -0
- package/dist/hooks/ralph/loop.js.map +1 -1
- package/dist/hooks/ralph/verifier.d.ts +4 -1
- package/dist/hooks/ralph/verifier.d.ts.map +1 -1
- package/dist/hooks/ralph/verifier.js +56 -21
- package/dist/hooks/ralph/verifier.js.map +1 -1
- package/dist/hooks/recovery/__tests__/storage.test.d.ts +2 -0
- package/dist/hooks/recovery/__tests__/storage.test.d.ts.map +1 -0
- package/dist/hooks/recovery/__tests__/storage.test.js +65 -0
- package/dist/hooks/recovery/__tests__/storage.test.js.map +1 -0
- package/dist/hooks/recovery/storage.d.ts +5 -1
- package/dist/hooks/recovery/storage.d.ts.map +1 -1
- package/dist/hooks/recovery/storage.js +7 -29
- package/dist/hooks/recovery/storage.js.map +1 -1
- package/dist/hooks/recovery/types.d.ts +1 -1
- package/dist/hooks/recovery/types.d.ts.map +1 -1
- package/dist/hooks/session-end/__tests__/duplicate-notifications.test.d.ts +2 -0
- package/dist/hooks/session-end/__tests__/duplicate-notifications.test.d.ts.map +1 -0
- package/dist/hooks/session-end/__tests__/duplicate-notifications.test.js +140 -0
- package/dist/hooks/session-end/__tests__/duplicate-notifications.test.js.map +1 -0
- package/dist/hooks/session-end/__tests__/mode-state-cleanup.test.d.ts +2 -0
- package/dist/hooks/session-end/__tests__/mode-state-cleanup.test.d.ts.map +1 -0
- package/dist/hooks/session-end/__tests__/mode-state-cleanup.test.js +122 -0
- package/dist/hooks/session-end/__tests__/mode-state-cleanup.test.js.map +1 -0
- package/dist/hooks/session-end/__tests__/openclaw-session-end.test.js +38 -12
- package/dist/hooks/session-end/__tests__/openclaw-session-end.test.js.map +1 -1
- package/dist/hooks/session-end/callbacks.d.ts +4 -1
- package/dist/hooks/session-end/callbacks.d.ts.map +1 -1
- package/dist/hooks/session-end/callbacks.js +5 -4
- package/dist/hooks/session-end/callbacks.js.map +1 -1
- package/dist/hooks/session-end/index.d.ts.map +1 -1
- package/dist/hooks/session-end/index.js +162 -36
- package/dist/hooks/session-end/index.js.map +1 -1
- package/dist/hooks/skill-state/__tests__/skill-state.test.js +35 -33
- package/dist/hooks/skill-state/__tests__/skill-state.test.js.map +1 -1
- package/dist/hooks/skill-state/index.d.ts +3 -3
- package/dist/hooks/skill-state/index.d.ts.map +1 -1
- package/dist/hooks/skill-state/index.js +7 -11
- package/dist/hooks/skill-state/index.js.map +1 -1
- package/dist/hooks/subagent-tracker/index.d.ts.map +1 -1
- package/dist/hooks/subagent-tracker/index.js +22 -0
- package/dist/hooks/subagent-tracker/index.js.map +1 -1
- package/dist/hooks/think-mode/__tests__/index.test.js +20 -20
- package/dist/hooks/think-mode/__tests__/index.test.js.map +1 -1
- package/dist/hooks/think-mode/switcher.d.ts.map +1 -1
- package/dist/hooks/think-mode/switcher.js +13 -10
- package/dist/hooks/think-mode/switcher.js.map +1 -1
- package/dist/hooks/thinking-block-validator/__tests__/index.test.d.ts +2 -0
- package/dist/hooks/thinking-block-validator/__tests__/index.test.d.ts.map +1 -0
- package/dist/hooks/thinking-block-validator/__tests__/index.test.js +56 -0
- package/dist/hooks/thinking-block-validator/__tests__/index.test.js.map +1 -0
- package/dist/hooks/thinking-block-validator/index.d.ts.map +1 -1
- package/dist/hooks/thinking-block-validator/index.js +7 -6
- package/dist/hooks/thinking-block-validator/index.js.map +1 -1
- package/dist/hooks/todo-continuation/index.d.ts +6 -0
- package/dist/hooks/todo-continuation/index.d.ts.map +1 -1
- package/dist/hooks/todo-continuation/index.js +14 -5
- package/dist/hooks/todo-continuation/index.js.map +1 -1
- package/dist/hud/elements/agents.d.ts.map +1 -1
- package/dist/hud/elements/agents.js +8 -14
- package/dist/hud/elements/agents.js.map +1 -1
- package/dist/hud/elements/index.d.ts +1 -0
- package/dist/hud/elements/index.d.ts.map +1 -1
- package/dist/hud/elements/index.js +1 -0
- package/dist/hud/elements/index.js.map +1 -1
- package/dist/hud/elements/limits.d.ts +3 -3
- package/dist/hud/elements/limits.d.ts.map +1 -1
- package/dist/hud/elements/limits.js +26 -18
- package/dist/hud/elements/limits.js.map +1 -1
- package/dist/hud/elements/mission-board.d.ts +2 -0
- package/dist/hud/elements/mission-board.d.ts.map +1 -0
- package/dist/hud/elements/mission-board.js +2 -0
- package/dist/hud/elements/mission-board.js.map +1 -0
- package/dist/hud/index.d.ts +1 -1
- package/dist/hud/index.d.ts.map +1 -1
- package/dist/hud/index.js +10 -2
- package/dist/hud/index.js.map +1 -1
- package/dist/hud/mission-board.d.ts +75 -0
- package/dist/hud/mission-board.d.ts.map +1 -0
- package/dist/hud/mission-board.js +420 -0
- package/dist/hud/mission-board.js.map +1 -0
- package/dist/hud/render.d.ts.map +1 -1
- package/dist/hud/render.js +16 -8
- package/dist/hud/render.js.map +1 -1
- package/dist/hud/state.d.ts.map +1 -1
- package/dist/hud/state.js +13 -0
- package/dist/hud/state.js.map +1 -1
- package/dist/hud/types.d.ts +11 -0
- package/dist/hud/types.d.ts.map +1 -1
- package/dist/hud/types.js +10 -0
- package/dist/hud/types.js.map +1 -1
- package/dist/hud/usage-api.d.ts +2 -1
- package/dist/hud/usage-api.d.ts.map +1 -1
- package/dist/hud/usage-api.js +219 -103
- package/dist/hud/usage-api.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/installer/__tests__/claude-md-merge.test.js +53 -9
- package/dist/installer/__tests__/claude-md-merge.test.js.map +1 -1
- package/dist/installer/__tests__/hook-templates.test.d.ts +2 -0
- package/dist/installer/__tests__/hook-templates.test.d.ts.map +1 -0
- package/dist/installer/__tests__/hook-templates.test.js +76 -0
- package/dist/installer/__tests__/hook-templates.test.js.map +1 -0
- package/dist/installer/hooks.d.ts +15 -0
- package/dist/installer/hooks.d.ts.map +1 -1
- package/dist/installer/hooks.js +51 -0
- package/dist/installer/hooks.js.map +1 -1
- package/dist/installer/index.d.ts +25 -0
- package/dist/installer/index.d.ts.map +1 -1
- package/dist/installer/index.js +273 -64
- package/dist/installer/index.js.map +1 -1
- package/dist/lib/mode-names.d.ts.map +1 -1
- package/dist/lib/mode-names.js +2 -0
- package/dist/lib/mode-names.js.map +1 -1
- package/dist/mcp/__tests__/team-server-artifact-convergence.test.js +30 -3
- package/dist/mcp/__tests__/team-server-artifact-convergence.test.js.map +1 -1
- package/dist/mcp/__tests__/team-server-deprecation.test.js +2 -0
- package/dist/mcp/__tests__/team-server-deprecation.test.js.map +1 -1
- package/dist/mcp/team-job-convergence.d.ts.map +1 -1
- package/dist/mcp/team-job-convergence.js +12 -3
- package/dist/mcp/team-job-convergence.js.map +1 -1
- package/dist/mcp/team-server.d.ts.map +1 -1
- package/dist/mcp/team-server.js +18 -4
- package/dist/mcp/team-server.js.map +1 -1
- package/dist/notifications/__tests__/config-merge.test.js +36 -1
- package/dist/notifications/__tests__/config-merge.test.js.map +1 -1
- package/dist/notifications/__tests__/formatter.test.js +13 -5
- package/dist/notifications/__tests__/formatter.test.js.map +1 -1
- package/dist/notifications/__tests__/notify-registry-integration.test.js +27 -1
- package/dist/notifications/__tests__/notify-registry-integration.test.js.map +1 -1
- package/dist/notifications/__tests__/verbosity.test.js +33 -1
- package/dist/notifications/__tests__/verbosity.test.js.map +1 -1
- package/dist/notifications/config.d.ts +7 -0
- package/dist/notifications/config.d.ts.map +1 -1
- package/dist/notifications/config.js +18 -0
- package/dist/notifications/config.js.map +1 -1
- package/dist/notifications/formatter.d.ts +2 -2
- package/dist/notifications/formatter.d.ts.map +1 -1
- package/dist/notifications/formatter.js +7 -6
- package/dist/notifications/formatter.js.map +1 -1
- package/dist/notifications/index.d.ts +1 -1
- package/dist/notifications/index.d.ts.map +1 -1
- package/dist/notifications/index.js +5 -3
- package/dist/notifications/index.js.map +1 -1
- package/dist/notifications/template-engine.js +1 -1
- package/dist/notifications/template-engine.js.map +1 -1
- package/dist/notifications/types.d.ts +4 -0
- package/dist/notifications/types.d.ts.map +1 -1
- package/dist/openclaw/__tests__/dispatcher.test.js +26 -0
- package/dist/openclaw/__tests__/dispatcher.test.js.map +1 -1
- package/dist/openclaw/__tests__/index.test.js +42 -0
- package/dist/openclaw/__tests__/index.test.js.map +1 -1
- package/dist/openclaw/__tests__/signal.test.d.ts +2 -0
- package/dist/openclaw/__tests__/signal.test.d.ts.map +1 -0
- package/dist/openclaw/__tests__/signal.test.js +69 -0
- package/dist/openclaw/__tests__/signal.test.js.map +1 -0
- package/dist/openclaw/dispatcher.d.ts +5 -1
- package/dist/openclaw/dispatcher.d.ts.map +1 -1
- package/dist/openclaw/dispatcher.js +13 -2
- package/dist/openclaw/dispatcher.js.map +1 -1
- package/dist/openclaw/index.d.ts +2 -1
- package/dist/openclaw/index.d.ts.map +1 -1
- package/dist/openclaw/index.js +29 -15
- package/dist/openclaw/index.js.map +1 -1
- package/dist/openclaw/signal.d.ts +3 -0
- package/dist/openclaw/signal.d.ts.map +1 -0
- package/dist/openclaw/signal.js +215 -0
- package/dist/openclaw/signal.js.map +1 -0
- package/dist/openclaw/types.d.ts +35 -0
- package/dist/openclaw/types.d.ts.map +1 -1
- package/dist/shared/types.d.ts +2 -12
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/skills/__tests__/mingw-escape.test.js +41 -11
- package/dist/skills/__tests__/mingw-escape.test.js.map +1 -1
- package/dist/team/__tests__/api-interop.cwd-resolution.test.d.ts +2 -0
- package/dist/team/__tests__/api-interop.cwd-resolution.test.d.ts.map +1 -0
- package/dist/team/__tests__/api-interop.cwd-resolution.test.js +78 -0
- package/dist/team/__tests__/api-interop.cwd-resolution.test.js.map +1 -0
- package/dist/team/__tests__/api-interop.dispatch.test.d.ts +2 -0
- package/dist/team/__tests__/api-interop.dispatch.test.d.ts.map +1 -0
- package/dist/team/__tests__/api-interop.dispatch.test.js +125 -0
- package/dist/team/__tests__/api-interop.dispatch.test.js.map +1 -0
- package/dist/team/__tests__/cli-detection.test.d.ts +2 -0
- package/dist/team/__tests__/cli-detection.test.d.ts.map +1 -0
- package/dist/team/__tests__/cli-detection.test.js +36 -0
- package/dist/team/__tests__/cli-detection.test.js.map +1 -0
- package/dist/team/__tests__/model-contract.test.js +79 -2
- package/dist/team/__tests__/model-contract.test.js.map +1 -1
- package/dist/team/__tests__/runtime-done-recovery.test.js +1 -0
- package/dist/team/__tests__/runtime-done-recovery.test.js.map +1 -1
- package/dist/team/__tests__/runtime-prompt-mode.test.js +84 -8
- package/dist/team/__tests__/runtime-prompt-mode.test.js.map +1 -1
- package/dist/team/__tests__/runtime-v2.dispatch.test.d.ts +2 -0
- package/dist/team/__tests__/runtime-v2.dispatch.test.d.ts.map +1 -0
- package/dist/team/__tests__/runtime-v2.dispatch.test.js +237 -0
- package/dist/team/__tests__/runtime-v2.dispatch.test.js.map +1 -0
- package/dist/team/__tests__/runtime-v2.monitor.test.d.ts +2 -0
- package/dist/team/__tests__/runtime-v2.monitor.test.d.ts.map +1 -0
- package/dist/team/__tests__/runtime-v2.monitor.test.js +103 -0
- package/dist/team/__tests__/runtime-v2.monitor.test.js.map +1 -0
- package/dist/team/__tests__/runtime-v2.shutdown.test.d.ts +2 -0
- package/dist/team/__tests__/runtime-v2.shutdown.test.d.ts.map +1 -0
- package/dist/team/__tests__/runtime-v2.shutdown.test.js +49 -0
- package/dist/team/__tests__/runtime-v2.shutdown.test.js.map +1 -0
- package/dist/team/__tests__/runtime-watchdog-retry.test.js +3 -0
- package/dist/team/__tests__/runtime-watchdog-retry.test.js.map +1 -1
- package/dist/team/__tests__/tmux-session.create-team.test.js +29 -12
- package/dist/team/__tests__/tmux-session.create-team.test.js.map +1 -1
- package/dist/team/__tests__/tmux-session.kill-team-session.test.js +6 -0
- package/dist/team/__tests__/tmux-session.kill-team-session.test.js.map +1 -1
- package/dist/team/__tests__/tmux-session.test.js +9 -0
- package/dist/team/__tests__/tmux-session.test.js.map +1 -1
- package/dist/team/__tests__/worker-bootstrap.test.js +32 -3
- package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
- package/dist/team/api-interop.d.ts.map +1 -1
- package/dist/team/api-interop.js +153 -2
- package/dist/team/api-interop.js.map +1 -1
- package/dist/team/cli-detection.d.ts.map +1 -1
- package/dist/team/cli-detection.js +6 -2
- package/dist/team/cli-detection.js.map +1 -1
- package/dist/team/idle-nudge.js +1 -1
- package/dist/team/idle-nudge.js.map +1 -1
- package/dist/team/mcp-team-bridge.d.ts.map +1 -1
- package/dist/team/mcp-team-bridge.js +2 -1
- package/dist/team/mcp-team-bridge.js.map +1 -1
- package/dist/team/model-contract.d.ts +1 -1
- package/dist/team/model-contract.d.ts.map +1 -1
- package/dist/team/model-contract.js +35 -4
- package/dist/team/model-contract.js.map +1 -1
- package/dist/team/runtime-cli.d.ts.map +1 -1
- package/dist/team/runtime-cli.js +10 -7
- package/dist/team/runtime-cli.js.map +1 -1
- package/dist/team/runtime-v2.d.ts +4 -0
- package/dist/team/runtime-v2.d.ts.map +1 -1
- package/dist/team/runtime-v2.js +231 -59
- package/dist/team/runtime-v2.js.map +1 -1
- package/dist/team/runtime.d.ts +6 -1
- package/dist/team/runtime.d.ts.map +1 -1
- package/dist/team/runtime.js +39 -14
- package/dist/team/runtime.js.map +1 -1
- package/dist/team/tmux-session.d.ts +20 -11
- package/dist/team/tmux-session.d.ts.map +1 -1
- package/dist/team/tmux-session.js +108 -51
- package/dist/team/tmux-session.js.map +1 -1
- package/dist/team/types.d.ts +1 -0
- package/dist/team/types.d.ts.map +1 -1
- package/dist/team/types.js.map +1 -1
- package/dist/team/worker-bootstrap.d.ts +2 -0
- package/dist/team/worker-bootstrap.d.ts.map +1 -1
- package/dist/team/worker-bootstrap.js +46 -12
- package/dist/team/worker-bootstrap.js.map +1 -1
- package/dist/tools/__tests__/memory-tools.test.js +29 -1
- package/dist/tools/__tests__/memory-tools.test.js.map +1 -1
- package/dist/tools/lsp/client.d.ts +11 -0
- package/dist/tools/lsp/client.d.ts.map +1 -1
- package/dist/tools/lsp/client.js +46 -0
- package/dist/tools/lsp/client.js.map +1 -1
- package/dist/tools/session-history-tools.d.ts +23 -0
- package/dist/tools/session-history-tools.d.ts.map +1 -0
- package/dist/tools/session-history-tools.js +41 -0
- package/dist/tools/session-history-tools.js.map +1 -0
- package/dist/tools/trace-tools.d.ts +9 -0
- package/dist/tools/trace-tools.d.ts.map +1 -1
- package/dist/tools/trace-tools.js +2 -1
- package/dist/tools/trace-tools.js.map +1 -1
- package/dist/utils/frontmatter.d.ts +5 -0
- package/dist/utils/frontmatter.d.ts.map +1 -1
- package/dist/utils/frontmatter.js +22 -0
- package/dist/utils/frontmatter.js.map +1 -1
- package/dist/utils/skill-pipeline.d.ts +9 -0
- package/dist/utils/skill-pipeline.d.ts.map +1 -0
- package/dist/utils/skill-pipeline.js +97 -0
- package/dist/utils/skill-pipeline.js.map +1 -0
- package/docs/AGENTS.md +1 -1
- package/docs/ANALYTICS-SYSTEM.md +23 -132
- package/docs/CLAUDE.md +40 -139
- package/docs/MIGRATION.md +4 -4
- package/docs/OPENCLAW-ROUTING.md +102 -0
- package/docs/PERFORMANCE-MONITORING.md +30 -55
- package/docs/REFERENCE.md +62 -35
- package/docs/TIERED_AGENTS_V2.md +3 -2
- package/docs/design/SKILL_AUDIT_1445.md +75 -0
- package/docs/ko/MIGRATION.md +2 -2
- package/docs/ko/REFERENCE.md +14 -22
- package/docs/partials/agent-tiers.md +11 -15
- package/docs/partials/features.md +2 -2
- package/docs/partials/mode-selection-guide.md +2 -2
- package/docs/shared/agent-tiers.md +11 -15
- package/docs/shared/features.md +2 -2
- package/docs/shared/mode-selection-guide.md +2 -2
- package/package.json +4 -1
- package/scripts/code-simplifier.mjs +1 -1
- package/scripts/context-guard-stop.mjs +26 -10
- package/scripts/keyword-detector.mjs +99 -39
- package/scripts/persistent-mode.cjs +295 -34
- package/scripts/persistent-mode.mjs +79 -21
- package/scripts/plugin-setup.mjs +10 -1
- package/scripts/post-tool-verifier.mjs +57 -3
- package/scripts/pre-tool-enforcer.mjs +207 -2
- package/scripts/run-provider-advisor.js +30 -3
- package/scripts/session-start.mjs +3 -3
- package/scripts/setup-claude-md.sh +159 -0
- package/scripts/setup-progress.sh +123 -0
- package/scripts/sync-metadata.ts +11 -1
- package/skills/AGENTS.md +13 -17
- package/skills/ai-slop-cleaner/SKILL.md +130 -0
- package/skills/ask/SKILL.md +51 -0
- package/skills/ccg/SKILL.md +6 -6
- package/skills/deep-interview/SKILL.md +4 -0
- package/skills/omc-doctor/SKILL.md +2 -2
- package/skills/omc-setup/SKILL.md +75 -1206
- package/skills/omc-setup/phases/01-install-claude-md.md +76 -0
- package/skills/omc-setup/phases/02-configure.md +211 -0
- package/skills/omc-setup/phases/03-integrations.md +192 -0
- package/skills/omc-setup/phases/04-welcome.md +192 -0
- package/skills/omc-teams/SKILL.md +35 -2
- package/skills/plan/SKILL.md +3 -0
- package/skills/ralph/SKILL.md +16 -10
- package/skills/release/SKILL.md +4 -0
- package/skills/setup/SKILL.md +40 -0
- package/skills/team/SKILL.md +6 -6
- package/templates/hooks/code-simplifier.mjs +1 -1
- package/templates/hooks/keyword-detector.mjs +100 -32
- package/templates/hooks/persistent-mode.mjs +43 -4
- package/templates/hooks/pre-tool-use.mjs +115 -1
- package/templates/hooks/session-start.mjs +1 -1
- package/agents/build-fixer.md +0 -90
- package/agents/deep-executor.md +0 -112
- package/agents/harsh-critic.md +0 -254
- package/agents/quality-reviewer.md +0 -151
- package/skills/analyze/SKILL.md +0 -87
- package/skills/ask-codex/SKILL.md +0 -47
- package/skills/ask-gemini/SKILL.md +0 -47
- package/skills/build-fix/SKILL.md +0 -123
- package/skills/code-review/SKILL.md +0 -573
- package/skills/configure-openclaw/SKILL.md +0 -383
- package/skills/learn-about-omc/SKILL.md +0 -37
- package/skills/note/SKILL.md +0 -62
- package/skills/omc-help/SKILL.md +0 -192
- package/skills/ralph-init/SKILL.md +0 -40
- package/skills/security-review/SKILL.md +0 -282
- package/skills/tdd/SKILL.md +0 -104
- package/skills/trace/SKILL.md +0 -33
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Phase 1: Install CLAUDE.md
|
|
2
|
+
|
|
3
|
+
## Determine Configuration Target
|
|
4
|
+
|
|
5
|
+
If `--local` flag was passed, set `CONFIG_TARGET=local`.
|
|
6
|
+
If `--global` flag was passed, set `CONFIG_TARGET=global`.
|
|
7
|
+
|
|
8
|
+
Otherwise (initial setup wizard), use AskUserQuestion to prompt:
|
|
9
|
+
|
|
10
|
+
**Question:** "Where should I configure oh-my-claudecode?"
|
|
11
|
+
|
|
12
|
+
**Options:**
|
|
13
|
+
1. **Local (this project)** - Creates `.claude/CLAUDE.md` in current project directory. Best for project-specific configurations.
|
|
14
|
+
2. **Global (all projects)** - Creates `~/.claude/CLAUDE.md` for all Claude Code sessions. Best for consistent behavior everywhere.
|
|
15
|
+
|
|
16
|
+
Set `CONFIG_TARGET` to `local` or `global` based on user's choice.
|
|
17
|
+
|
|
18
|
+
## Download and Install CLAUDE.md
|
|
19
|
+
|
|
20
|
+
**MANDATORY**: Always run this command. Do NOT skip. Do NOT use the Write tool. Use bash curl exclusively.
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
bash "${CLAUDE_PLUGIN_ROOT}/scripts/setup-claude-md.sh" <CONFIG_TARGET>
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Replace `<CONFIG_TARGET>` with `local` or `global`.
|
|
27
|
+
|
|
28
|
+
**FALLBACK** if curl fails:
|
|
29
|
+
Tell user to manually download from:
|
|
30
|
+
https://raw.githubusercontent.com/Yeachan-Heo/oh-my-claudecode/main/docs/CLAUDE.md
|
|
31
|
+
|
|
32
|
+
**Note**: The downloaded CLAUDE.md includes Context Persistence instructions with `<remember>` tags for surviving conversation compaction.
|
|
33
|
+
|
|
34
|
+
**Note**: If an existing CLAUDE.md is found, it will be backed up before downloading the new version.
|
|
35
|
+
|
|
36
|
+
## Report Success
|
|
37
|
+
|
|
38
|
+
If `CONFIG_TARGET` is `local`:
|
|
39
|
+
```
|
|
40
|
+
OMC Project Configuration Complete
|
|
41
|
+
- CLAUDE.md: Updated with latest configuration from GitHub at ./.claude/CLAUDE.md
|
|
42
|
+
- Backup: Previous CLAUDE.md backed up (if existed)
|
|
43
|
+
- Scope: PROJECT - applies only to this project
|
|
44
|
+
- Hooks: Provided by plugin (no manual installation needed)
|
|
45
|
+
- Agents: 28+ available (base + tiered variants)
|
|
46
|
+
- Model routing: Haiku/Sonnet/Opus based on task complexity
|
|
47
|
+
|
|
48
|
+
Note: This configuration is project-specific and won't affect other projects or global settings.
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
If `CONFIG_TARGET` is `global`:
|
|
52
|
+
```
|
|
53
|
+
OMC Global Configuration Complete
|
|
54
|
+
- CLAUDE.md: Updated with latest configuration from GitHub at ~/.claude/CLAUDE.md
|
|
55
|
+
- Backup: Previous CLAUDE.md backed up (if existed)
|
|
56
|
+
- Scope: GLOBAL - applies to all Claude Code sessions
|
|
57
|
+
- Hooks: Provided by plugin (no manual installation needed)
|
|
58
|
+
- Agents: 28+ available (base + tiered variants)
|
|
59
|
+
- Model routing: Haiku/Sonnet/Opus based on task complexity
|
|
60
|
+
|
|
61
|
+
Note: Hooks are now managed by the plugin system automatically. No manual hook installation required.
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Save Progress
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
bash "${CLAUDE_PLUGIN_ROOT}/scripts/setup-progress.sh" save 2 <CONFIG_TARGET>
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Early Exit for Flag Mode
|
|
71
|
+
|
|
72
|
+
If `--local` or `--global` flag was used, clear state and **STOP HERE**:
|
|
73
|
+
```bash
|
|
74
|
+
bash "${CLAUDE_PLUGIN_ROOT}/scripts/setup-progress.sh" clear
|
|
75
|
+
```
|
|
76
|
+
Do not continue to Phase 2 or other phases.
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
# Phase 2: Environment Configuration
|
|
2
|
+
|
|
3
|
+
**Skip condition**: If resuming and `lastCompletedStep >= 4`, skip this entire phase.
|
|
4
|
+
|
|
5
|
+
## Step 2.1: Setup HUD Statusline
|
|
6
|
+
|
|
7
|
+
**Note**: If resuming and `lastCompletedStep >= 3`, skip to Step 2.2.
|
|
8
|
+
|
|
9
|
+
The HUD shows real-time status in Claude Code's status bar. Invoke the hud skill to set up and configure:
|
|
10
|
+
|
|
11
|
+
Use the Skill tool to invoke: `hud` with args: `setup`
|
|
12
|
+
|
|
13
|
+
This will:
|
|
14
|
+
1. Install the HUD wrapper script to `~/.claude/hud/omc-hud.mjs`
|
|
15
|
+
2. Configure `statusLine` in `~/.claude/settings.json`
|
|
16
|
+
3. Report status and prompt to restart if needed
|
|
17
|
+
|
|
18
|
+
After HUD setup completes, save progress:
|
|
19
|
+
```bash
|
|
20
|
+
CONFIG_TYPE=$(jq -r '.configType // "unknown"' ".omc/state/setup-state.json" 2>/dev/null || echo "unknown")
|
|
21
|
+
bash "${CLAUDE_PLUGIN_ROOT}/scripts/setup-progress.sh" save 3 "$CONFIG_TYPE"
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Step 2.2: Clear Stale Plugin Cache
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
node -e "const p=require('path'),f=require('fs'),h=require('os').homedir(),d=process.env.CLAUDE_CONFIG_DIR||p.join(h,'.claude'),b=p.join(d,'plugins','cache','omc','oh-my-claudecode');try{const v=f.readdirSync(b).filter(x=>/^\d/.test(x)).sort((a,c)=>a.localeCompare(c,void 0,{numeric:true}));if(v.length<=1){console.log('Cache is clean');process.exit()}v.slice(0,-1).forEach(x=>{f.rmSync(p.join(b,x),{recursive:true,force:true})});console.log('Cleared',v.length-1,'stale cache version(s)')}catch{console.log('No cache directory found (normal for new installs)')}"
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Step 2.3: Check for Updates
|
|
31
|
+
|
|
32
|
+
Notify user if a newer version is available:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
# Detect installed version (cross-platform)
|
|
36
|
+
node -e "
|
|
37
|
+
const p=require('path'),f=require('fs'),h=require('os').homedir();
|
|
38
|
+
const d=process.env.CLAUDE_CONFIG_DIR||p.join(h,'.claude');
|
|
39
|
+
let v='';
|
|
40
|
+
// Try cache directory first
|
|
41
|
+
const b=p.join(d,'plugins','cache','omc','oh-my-claudecode');
|
|
42
|
+
try{const vs=f.readdirSync(b).filter(x=>/^\d/.test(x)).sort((a,c)=>a.localeCompare(c,void 0,{numeric:true}));if(vs.length)v=vs[vs.length-1]}catch{}
|
|
43
|
+
// Try .omc-version.json second
|
|
44
|
+
if(v==='')try{const j=JSON.parse(f.readFileSync('.omc-version.json','utf-8'));v=j.version||''}catch{}
|
|
45
|
+
// Try CLAUDE.md header third
|
|
46
|
+
if(v==='')for(const c of['.claude/CLAUDE.md',p.join(d,'CLAUDE.md')]){try{const m=f.readFileSync(c,'utf-8').match(/^# oh-my-claudecode.*?(v?\d+\.\d+\.\d+)/m);if(m){v=m[1].replace(/^v/,'');break}}catch{}}
|
|
47
|
+
console.log('Installed:',v||'(not found)');
|
|
48
|
+
"
|
|
49
|
+
|
|
50
|
+
# Check npm for latest version
|
|
51
|
+
LATEST_VERSION=$(npm view claudecode-omc version 2>/dev/null)
|
|
52
|
+
|
|
53
|
+
if [ -n "$INSTALLED_VERSION" ] && [ -n "$LATEST_VERSION" ]; then
|
|
54
|
+
if [ "$INSTALLED_VERSION" != "$LATEST_VERSION" ]; then
|
|
55
|
+
echo ""
|
|
56
|
+
echo "UPDATE AVAILABLE:"
|
|
57
|
+
echo " Installed: v$INSTALLED_VERSION"
|
|
58
|
+
echo " Latest: v$LATEST_VERSION"
|
|
59
|
+
echo ""
|
|
60
|
+
echo "To update, run: claude /install-plugin oh-my-claudecode"
|
|
61
|
+
else
|
|
62
|
+
echo "You're on the latest version: v$INSTALLED_VERSION"
|
|
63
|
+
fi
|
|
64
|
+
elif [ -n "$LATEST_VERSION" ]; then
|
|
65
|
+
echo "Latest version available: v$LATEST_VERSION"
|
|
66
|
+
fi
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Step 2.4: Set Default Execution Mode
|
|
70
|
+
|
|
71
|
+
Use the AskUserQuestion tool to prompt the user:
|
|
72
|
+
|
|
73
|
+
**Question:** "Which parallel execution mode should be your default when you say 'fast' or 'parallel'?"
|
|
74
|
+
|
|
75
|
+
**Options:**
|
|
76
|
+
1. **ultrawork (maximum capability)** - Uses all agent tiers including Opus for complex tasks. Best for challenging work where quality matters most. (Recommended)
|
|
77
|
+
|
|
78
|
+
Store the preference in `~/.claude/.omc-config.json`:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
CONFIG_FILE="$HOME/.claude/.omc-config.json"
|
|
82
|
+
mkdir -p "$(dirname "$CONFIG_FILE")"
|
|
83
|
+
|
|
84
|
+
if [ -f "$CONFIG_FILE" ]; then
|
|
85
|
+
EXISTING=$(cat "$CONFIG_FILE")
|
|
86
|
+
else
|
|
87
|
+
EXISTING='{}'
|
|
88
|
+
fi
|
|
89
|
+
|
|
90
|
+
# Set defaultExecutionMode (replace USER_CHOICE with "ultrawork" or "")
|
|
91
|
+
echo "$EXISTING" | jq --arg mode "USER_CHOICE" '. + {defaultExecutionMode: $mode, configuredAt: (now | todate)}' > "$CONFIG_FILE"
|
|
92
|
+
echo "Default execution mode set to: USER_CHOICE"
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
**Note**: This preference ONLY affects generic keywords ("fast", "parallel"). Explicit keywords ("ulw") always override this preference.
|
|
96
|
+
|
|
97
|
+
## Step 2.5: Install OMC CLI Tool
|
|
98
|
+
|
|
99
|
+
The OMC CLI (`omc` command) provides standalone helper commands such as `omc hud`, `omc teleport`, and `omc team ...`.
|
|
100
|
+
|
|
101
|
+
First, check if the CLI is already installed:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
if command -v omc &>/dev/null; then
|
|
105
|
+
OMC_CLI_VERSION=$(omc --version 2>/dev/null | head -1 || echo "installed")
|
|
106
|
+
echo "OMC CLI already installed: $OMC_CLI_VERSION"
|
|
107
|
+
OMC_CLI_INSTALLED="true"
|
|
108
|
+
else
|
|
109
|
+
OMC_CLI_INSTALLED="false"
|
|
110
|
+
fi
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
If `OMC_CLI_INSTALLED` is `"true"`, skip the rest of this step.
|
|
114
|
+
|
|
115
|
+
If `OMC_CLI_INSTALLED` is `"false"`, use AskUserQuestion:
|
|
116
|
+
|
|
117
|
+
**Question:** "Would you like to install the OMC CLI globally for standalone helper commands? (`omc`, `omc hud`, `omc teleport`)"
|
|
118
|
+
|
|
119
|
+
**Options:**
|
|
120
|
+
1. **Yes (Recommended)** - Install `claudecode-omc` via `npm install -g`
|
|
121
|
+
2. **No - Skip** - Skip installation (can install manually later with `npm install -g claudecode-omc`)
|
|
122
|
+
|
|
123
|
+
If user chooses **Yes**:
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
if ! command -v npm &>/dev/null; then
|
|
127
|
+
echo "WARNING: npm not found. Cannot install OMC CLI automatically."
|
|
128
|
+
echo "Install Node.js/npm first, then run: npm install -g claudecode-omc"
|
|
129
|
+
else
|
|
130
|
+
if npm install -g claudecode-omc 2>&1; then
|
|
131
|
+
echo "OMC CLI installed successfully."
|
|
132
|
+
if command -v omc &>/dev/null; then
|
|
133
|
+
OMC_CLI_VERSION=$(omc --version 2>/dev/null | head -1 || echo "installed")
|
|
134
|
+
echo "Verified: omc $OMC_CLI_VERSION"
|
|
135
|
+
else
|
|
136
|
+
echo "Installed but 'omc' not on PATH. You may need to restart your shell."
|
|
137
|
+
fi
|
|
138
|
+
else
|
|
139
|
+
echo "WARNING: Failed to install OMC CLI (permission issue or network error)."
|
|
140
|
+
echo "You can install manually later: npm install -g claudecode-omc"
|
|
141
|
+
echo "Or with sudo: sudo npm install -g claudecode-omc"
|
|
142
|
+
fi
|
|
143
|
+
fi
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
**Note**: The CLI is optional. All core functionality is also available through the plugin system.
|
|
147
|
+
|
|
148
|
+
## Step 2.6: Select Task Management Tool
|
|
149
|
+
|
|
150
|
+
First, detect available task tools:
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
BD_VERSION=""
|
|
154
|
+
if command -v bd &>/dev/null; then
|
|
155
|
+
BD_VERSION=$(bd --version 2>/dev/null | head -1 || echo "installed")
|
|
156
|
+
fi
|
|
157
|
+
|
|
158
|
+
BR_VERSION=""
|
|
159
|
+
if command -v br &>/dev/null; then
|
|
160
|
+
BR_VERSION=$(br --version 2>/dev/null | head -1 || echo "installed")
|
|
161
|
+
fi
|
|
162
|
+
|
|
163
|
+
if [ -n "$BD_VERSION" ]; then
|
|
164
|
+
echo "Found beads (bd): $BD_VERSION"
|
|
165
|
+
fi
|
|
166
|
+
if [ -n "$BR_VERSION" ]; then
|
|
167
|
+
echo "Found beads-rust (br): $BR_VERSION"
|
|
168
|
+
fi
|
|
169
|
+
if [ -z "$BD_VERSION" ] && [ -z "$BR_VERSION" ]; then
|
|
170
|
+
echo "No external task tools found. Using built-in Tasks."
|
|
171
|
+
fi
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
If **neither** beads nor beads-rust is detected, skip this step (default to built-in).
|
|
175
|
+
|
|
176
|
+
If beads or beads-rust is detected, use AskUserQuestion:
|
|
177
|
+
|
|
178
|
+
**Question:** "Which task management tool should I use for tracking work?"
|
|
179
|
+
|
|
180
|
+
**Options:**
|
|
181
|
+
1. **Built-in Tasks (default)** - Use Claude Code's native TaskCreate/TodoWrite. Tasks are session-only.
|
|
182
|
+
2. **Beads (bd)** - Git-backed persistent tasks. Survives across sessions. [Only if detected]
|
|
183
|
+
3. **Beads-Rust (br)** - Lightweight Rust port of beads. [Only if detected]
|
|
184
|
+
|
|
185
|
+
(Only show options 2/3 if the corresponding tool is detected)
|
|
186
|
+
|
|
187
|
+
Store the preference:
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
CONFIG_FILE="$HOME/.claude/.omc-config.json"
|
|
191
|
+
mkdir -p "$(dirname "$CONFIG_FILE")"
|
|
192
|
+
|
|
193
|
+
if [ -f "$CONFIG_FILE" ]; then
|
|
194
|
+
EXISTING=$(cat "$CONFIG_FILE")
|
|
195
|
+
else
|
|
196
|
+
EXISTING='{}'
|
|
197
|
+
fi
|
|
198
|
+
|
|
199
|
+
# USER_CHOICE is "builtin", "beads", or "beads-rust" based on user selection
|
|
200
|
+
echo "$EXISTING" | jq --arg tool "USER_CHOICE" '. + {taskTool: $tool, taskToolConfig: {injectInstructions: true, useMcp: false}}' > "$CONFIG_FILE"
|
|
201
|
+
echo "Task tool set to: USER_CHOICE"
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
**Note:** The beads context instructions will be injected automatically on the next session start.
|
|
205
|
+
|
|
206
|
+
## Save Progress
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
CONFIG_TYPE=$(jq -r '.configType // "unknown"' ".omc/state/setup-state.json" 2>/dev/null || echo "unknown")
|
|
210
|
+
bash "${CLAUDE_PLUGIN_ROOT}/scripts/setup-progress.sh" save 4 "$CONFIG_TYPE"
|
|
211
|
+
```
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
# Phase 3: Integration Setup
|
|
2
|
+
|
|
3
|
+
**Skip condition**: If resuming and `lastCompletedStep >= 6`, skip this entire phase.
|
|
4
|
+
|
|
5
|
+
## Step 3.1: Verify Plugin Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
grep -q "oh-my-claudecode" ~/.claude/settings.json && echo "Plugin verified" || echo "Plugin NOT found - run: claude /install-plugin oh-my-claudecode"
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Step 3.2: Offer MCP Server Configuration
|
|
12
|
+
|
|
13
|
+
MCP servers extend Claude Code with additional tools (web search, GitHub, etc.).
|
|
14
|
+
|
|
15
|
+
Use AskUserQuestion: "Would you like to configure MCP servers for enhanced capabilities? (Context7, Exa search, GitHub, etc.)"
|
|
16
|
+
|
|
17
|
+
If yes, invoke the mcp-setup skill:
|
|
18
|
+
```
|
|
19
|
+
/oh-my-claudecode:mcp-setup
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
If no, skip to next step.
|
|
23
|
+
|
|
24
|
+
## Step 3.3: Configure Agent Teams (Optional)
|
|
25
|
+
|
|
26
|
+
Agent teams are an experimental Claude Code feature that lets you spawn N coordinated agents working on a shared task list with inter-agent messaging. **Teams are disabled by default** and require enabling via `settings.json`.
|
|
27
|
+
|
|
28
|
+
Reference: https://code.claude.com/docs/en/agent-teams
|
|
29
|
+
|
|
30
|
+
Use AskUserQuestion:
|
|
31
|
+
|
|
32
|
+
**Question:** "Would you like to enable agent teams? Teams let you spawn coordinated agents (e.g., `/team 3:executor 'fix all errors'`). This is an experimental Claude Code feature."
|
|
33
|
+
|
|
34
|
+
**Options:**
|
|
35
|
+
1. **Yes, enable teams (Recommended)** - Enable the experimental feature and configure defaults
|
|
36
|
+
2. **No, skip** - Leave teams disabled (can enable later)
|
|
37
|
+
|
|
38
|
+
### If User Chooses YES:
|
|
39
|
+
|
|
40
|
+
#### 3.3.1: Enable Agent Teams in settings.json
|
|
41
|
+
|
|
42
|
+
**CRITICAL**: Agent teams require `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` to be set in `~/.claude/settings.json`. This must be done carefully to preserve existing user settings.
|
|
43
|
+
|
|
44
|
+
First, read the current settings.json:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
SETTINGS_FILE="$HOME/.claude/settings.json"
|
|
48
|
+
|
|
49
|
+
if [ -f "$SETTINGS_FILE" ]; then
|
|
50
|
+
echo "Current settings.json found"
|
|
51
|
+
cat "$SETTINGS_FILE"
|
|
52
|
+
else
|
|
53
|
+
echo "No settings.json found - will create one"
|
|
54
|
+
fi
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Then use the Read tool to read `~/.claude/settings.json` (if it exists). Use the Edit tool to merge the teams configuration while preserving ALL existing settings.
|
|
58
|
+
|
|
59
|
+
Use jq to safely merge without overwriting existing settings:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
SETTINGS_FILE="$HOME/.claude/settings.json"
|
|
63
|
+
|
|
64
|
+
if [ -f "$SETTINGS_FILE" ]; then
|
|
65
|
+
TEMP_FILE=$(mktemp)
|
|
66
|
+
jq '.env = (.env // {} | . + {"CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"})' "$SETTINGS_FILE" > "$TEMP_FILE" && mv "$TEMP_FILE" "$SETTINGS_FILE"
|
|
67
|
+
echo "Added CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS to existing settings.json"
|
|
68
|
+
else
|
|
69
|
+
mkdir -p "$(dirname "$SETTINGS_FILE")"
|
|
70
|
+
cat > "$SETTINGS_FILE" << 'SETTINGS_EOF'
|
|
71
|
+
{
|
|
72
|
+
"env": {
|
|
73
|
+
"CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
SETTINGS_EOF
|
|
77
|
+
echo "Created settings.json with teams enabled"
|
|
78
|
+
fi
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
**IMPORTANT**: The Edit tool is preferred for modifying settings.json when possible, since it preserves formatting and comments. The jq approach above is the fallback for when the file needs structural merging.
|
|
82
|
+
|
|
83
|
+
#### 3.3.2: Configure Teammate Display Mode
|
|
84
|
+
|
|
85
|
+
Use AskUserQuestion:
|
|
86
|
+
|
|
87
|
+
**Question:** "How should teammates be displayed?"
|
|
88
|
+
|
|
89
|
+
**Options:**
|
|
90
|
+
1. **Auto (Recommended)** - Uses split panes if in tmux, otherwise in-process. Best for most users.
|
|
91
|
+
2. **In-process** - All teammates in your main terminal. Use Shift+Up/Down to select. Works everywhere.
|
|
92
|
+
3. **Split panes (tmux)** - Each teammate in its own pane. Requires tmux or iTerm2.
|
|
93
|
+
|
|
94
|
+
If user chooses anything other than "Auto", add `teammateMode` to settings.json:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
SETTINGS_FILE="$HOME/.claude/settings.json"
|
|
98
|
+
|
|
99
|
+
# TEAMMATE_MODE is "in-process" or "tmux" based on user choice
|
|
100
|
+
# Skip this if user chose "Auto" (that's the default)
|
|
101
|
+
jq --arg mode "TEAMMATE_MODE" '. + {teammateMode: $mode}' "$SETTINGS_FILE" > "${SETTINGS_FILE}.tmp" && mv "${SETTINGS_FILE}.tmp" "$SETTINGS_FILE"
|
|
102
|
+
echo "Teammate display mode set to: TEAMMATE_MODE"
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
#### 3.3.3: Configure Team Defaults in omc-config
|
|
106
|
+
|
|
107
|
+
Use AskUserQuestion with multiple questions:
|
|
108
|
+
|
|
109
|
+
**Question 1:** "How many agents should teams spawn by default?"
|
|
110
|
+
|
|
111
|
+
**Options:**
|
|
112
|
+
1. **3 agents (Recommended)** - Good balance of speed and resource usage
|
|
113
|
+
2. **5 agents (maximum)** - Maximum parallelism for large tasks
|
|
114
|
+
3. **2 agents** - Conservative, for smaller projects
|
|
115
|
+
|
|
116
|
+
**Question 2:** "Which agent type should teammates use by default?"
|
|
117
|
+
|
|
118
|
+
**Options:**
|
|
119
|
+
1. **executor (Recommended)** - General-purpose code implementation agent
|
|
120
|
+
2. **debugger** - Specialized for build/type error fixing and debugging
|
|
121
|
+
3. **designer** - Specialized for UI/frontend work
|
|
122
|
+
|
|
123
|
+
Store the team configuration in `~/.claude/.omc-config.json`:
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
CONFIG_FILE="$HOME/.claude/.omc-config.json"
|
|
127
|
+
mkdir -p "$(dirname "$CONFIG_FILE")"
|
|
128
|
+
|
|
129
|
+
if [ -f "$CONFIG_FILE" ]; then
|
|
130
|
+
EXISTING=$(cat "$CONFIG_FILE")
|
|
131
|
+
else
|
|
132
|
+
EXISTING='{}'
|
|
133
|
+
fi
|
|
134
|
+
|
|
135
|
+
# Replace MAX_AGENTS, AGENT_TYPE with user choices
|
|
136
|
+
echo "$EXISTING" | jq \
|
|
137
|
+
--argjson maxAgents MAX_AGENTS \
|
|
138
|
+
--arg agentType "AGENT_TYPE" \
|
|
139
|
+
'. + {team: {maxAgents: $maxAgents, defaultAgentType: $agentType, monitorIntervalMs: 30000, shutdownTimeoutMs: 15000}}' > "$CONFIG_FILE"
|
|
140
|
+
|
|
141
|
+
echo "Team configuration saved:"
|
|
142
|
+
echo " Max agents: MAX_AGENTS"
|
|
143
|
+
echo " Default agent: AGENT_TYPE"
|
|
144
|
+
echo " Model: teammates inherit your session model"
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
**Note:** Teammates do not have a separate model default. Each teammate is a full Claude Code session that inherits your configured model. Subagents spawned by teammates can use any model tier.
|
|
148
|
+
|
|
149
|
+
#### Verify settings.json Integrity
|
|
150
|
+
|
|
151
|
+
After all modifications, verify settings.json is valid JSON and contains the expected keys:
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
SETTINGS_FILE="$HOME/.claude/settings.json"
|
|
155
|
+
|
|
156
|
+
if jq empty "$SETTINGS_FILE" 2>/dev/null; then
|
|
157
|
+
echo "settings.json: valid JSON"
|
|
158
|
+
else
|
|
159
|
+
echo "ERROR: settings.json is invalid JSON! Restoring from backup..."
|
|
160
|
+
exit 1
|
|
161
|
+
fi
|
|
162
|
+
|
|
163
|
+
if jq -e '.env.CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS' "$SETTINGS_FILE" > /dev/null 2>&1; then
|
|
164
|
+
echo "Agent teams: ENABLED"
|
|
165
|
+
else
|
|
166
|
+
echo "WARNING: Agent teams env var not found in settings.json"
|
|
167
|
+
fi
|
|
168
|
+
|
|
169
|
+
echo ""
|
|
170
|
+
echo "Final settings.json:"
|
|
171
|
+
jq '.' "$SETTINGS_FILE"
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### If User Chooses NO:
|
|
175
|
+
|
|
176
|
+
Skip this step. Agent teams will remain disabled. User can enable later by adding to `~/.claude/settings.json`:
|
|
177
|
+
```json
|
|
178
|
+
{
|
|
179
|
+
"env": {
|
|
180
|
+
"CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
Or by running `/oh-my-claudecode:omc-setup --force` and choosing to enable teams.
|
|
186
|
+
|
|
187
|
+
## Save Progress
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
CONFIG_TYPE=$(jq -r '.configType // "unknown"' ".omc/state/setup-state.json" 2>/dev/null || echo "unknown")
|
|
191
|
+
bash "${CLAUDE_PLUGIN_ROOT}/scripts/setup-progress.sh" save 6 "$CONFIG_TYPE"
|
|
192
|
+
```
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
# Phase 4: Completion
|
|
2
|
+
|
|
3
|
+
## Detect Upgrade from 2.x
|
|
4
|
+
|
|
5
|
+
Check if user has existing 2.x configuration:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
ls ~/.claude/commands/ralph-loop.md 2>/dev/null || ls ~/.claude/commands/ultrawork.md 2>/dev/null
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
If found, this is an upgrade from 2.x. Set `IS_UPGRADE=true`.
|
|
12
|
+
|
|
13
|
+
## Show Welcome Message
|
|
14
|
+
|
|
15
|
+
### For New Users (IS_UPGRADE is not true):
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
OMC Setup Complete!
|
|
19
|
+
|
|
20
|
+
You don't need to learn any commands. I now have intelligent behaviors that activate automatically.
|
|
21
|
+
|
|
22
|
+
WHAT HAPPENS AUTOMATICALLY:
|
|
23
|
+
- Complex tasks -> I parallelize and delegate to specialists
|
|
24
|
+
- "plan this" -> I start a planning interview
|
|
25
|
+
- "don't stop until done" -> I persist until verified complete
|
|
26
|
+
- "stop" or "cancel" -> I intelligently stop current operation
|
|
27
|
+
|
|
28
|
+
MAGIC KEYWORDS (optional power-user shortcuts):
|
|
29
|
+
Just include these words naturally in your request:
|
|
30
|
+
|
|
31
|
+
| Keyword | Effect | Example |
|
|
32
|
+
|---------|--------|---------|
|
|
33
|
+
| ralph | Persistence mode | "ralph: fix the auth bug" |
|
|
34
|
+
| ralplan | Iterative planning | "ralplan this feature" |
|
|
35
|
+
| ulw | Max parallelism | "ulw refactor the API" |
|
|
36
|
+
| plan | Planning interview | "plan the new endpoints" |
|
|
37
|
+
| team | Coordinated agents | "/team 3:executor fix errors" |
|
|
38
|
+
|
|
39
|
+
**ralph includes ultrawork:** When you activate ralph mode, it automatically includes ultrawork's parallel execution. No need to combine keywords.
|
|
40
|
+
|
|
41
|
+
TEAMS:
|
|
42
|
+
Spawn coordinated agents with shared task lists and real-time messaging:
|
|
43
|
+
- /oh-my-claudecode:team 3:executor "fix all TypeScript errors"
|
|
44
|
+
- /oh-my-claudecode:team 5:debugger "fix build errors in src/"
|
|
45
|
+
Teams use Claude Code native tools (TeamCreate/SendMessage/TaskCreate).
|
|
46
|
+
|
|
47
|
+
MCP SERVERS:
|
|
48
|
+
Run /oh-my-claudecode:mcp-setup to add tools like web search, GitHub, etc.
|
|
49
|
+
|
|
50
|
+
HUD STATUSLINE:
|
|
51
|
+
The status bar now shows OMC state. Restart Claude Code to see it.
|
|
52
|
+
|
|
53
|
+
OMC CLI HELPERS (if installed):
|
|
54
|
+
- omc hud - Render the current HUD statusline
|
|
55
|
+
- omc teleport - Create an isolated git worktree
|
|
56
|
+
- omc team status - Inspect a running team job
|
|
57
|
+
- Session summaries are written to `.omc/sessions/*.json`
|
|
58
|
+
|
|
59
|
+
That's it! Just use Claude Code normally.
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### For Users Upgrading from 2.x (IS_UPGRADE is true):
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
OMC Setup Complete! (Upgraded from 2.x)
|
|
66
|
+
|
|
67
|
+
GOOD NEWS: Your existing commands still work!
|
|
68
|
+
- /ralph, /ultrawork, /omc-plan, etc. all still function
|
|
69
|
+
|
|
70
|
+
WHAT'S NEW in 3.0:
|
|
71
|
+
You no longer NEED those commands. Everything is automatic now:
|
|
72
|
+
- Just say "don't stop until done" instead of /ralph
|
|
73
|
+
- Just say "fast" or "parallel" instead of /ultrawork
|
|
74
|
+
- Just say "plan this" instead of /omc-plan
|
|
75
|
+
- Just say "stop" instead of /cancel
|
|
76
|
+
|
|
77
|
+
MAGIC KEYWORDS (power-user shortcuts):
|
|
78
|
+
| Keyword | Same as old... | Example |
|
|
79
|
+
|---------|----------------|---------|
|
|
80
|
+
| ralph | /ralph | "ralph: fix the bug" |
|
|
81
|
+
| ralplan | /ralplan | "ralplan this feature" |
|
|
82
|
+
| ulw | /ultrawork | "ulw refactor API" |
|
|
83
|
+
| omc-plan | /omc-plan | "plan the endpoints" |
|
|
84
|
+
| team | (new!) | "/team 3:executor fix errors" |
|
|
85
|
+
|
|
86
|
+
TEAMS (NEW!):
|
|
87
|
+
Spawn coordinated agents with shared task lists and real-time messaging:
|
|
88
|
+
- /oh-my-claudecode:team 3:executor "fix all TypeScript errors"
|
|
89
|
+
- Uses Claude Code native tools (TeamCreate/SendMessage/TaskCreate)
|
|
90
|
+
|
|
91
|
+
HUD STATUSLINE:
|
|
92
|
+
The status bar now shows OMC state. Restart Claude Code to see it.
|
|
93
|
+
|
|
94
|
+
OMC CLI HELPERS (if installed):
|
|
95
|
+
- omc hud - Render the current HUD statusline
|
|
96
|
+
- omc teleport - Create an isolated git worktree
|
|
97
|
+
- omc team status - Inspect a running team job
|
|
98
|
+
- Session summaries are written to `.omc/sessions/*.json`
|
|
99
|
+
|
|
100
|
+
Your workflow won't break - it just got easier!
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Optional Rule Templates
|
|
104
|
+
|
|
105
|
+
OMC includes rule templates you can copy to your project's `.claude/rules/` directory for automatic context injection:
|
|
106
|
+
|
|
107
|
+
| Template | Purpose |
|
|
108
|
+
|----------|---------|
|
|
109
|
+
| `coding-style.md` | Code style, immutability, file organization |
|
|
110
|
+
| `testing.md` | TDD workflow, 80% coverage target |
|
|
111
|
+
| `security.md` | Secret management, input validation |
|
|
112
|
+
| `performance.md` | Model selection, context management |
|
|
113
|
+
| `git-workflow.md` | Commit conventions, PR workflow |
|
|
114
|
+
| `karpathy-guidelines.md` | Coding discipline -- think before coding, simplicity, surgical changes |
|
|
115
|
+
|
|
116
|
+
Copy with:
|
|
117
|
+
```bash
|
|
118
|
+
mkdir -p .claude/rules
|
|
119
|
+
cp "${CLAUDE_PLUGIN_ROOT}/templates/rules/"*.md .claude/rules/
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
See `templates/rules/README.md` for details.
|
|
123
|
+
|
|
124
|
+
## Ask About Starring Repository
|
|
125
|
+
|
|
126
|
+
First, check if `gh` CLI is available and authenticated:
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
gh auth status &>/dev/null
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### If gh is available and authenticated:
|
|
133
|
+
|
|
134
|
+
**Before prompting, check if the repository is already starred:**
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
gh api user/starred/Yeachan-Heo/oh-my-claudecode &>/dev/null
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
**If already starred (exit code 0):**
|
|
141
|
+
- Skip the prompt entirely
|
|
142
|
+
- Continue to completion silently
|
|
143
|
+
|
|
144
|
+
**If NOT starred (exit code non-zero):**
|
|
145
|
+
|
|
146
|
+
Use AskUserQuestion:
|
|
147
|
+
|
|
148
|
+
**Question:** "If you're enjoying oh-my-claudecode, would you like to support the project by starring it on GitHub?"
|
|
149
|
+
|
|
150
|
+
**Options:**
|
|
151
|
+
1. **Yes, star it!** - Star the repository
|
|
152
|
+
2. **No thanks** - Skip without further prompts
|
|
153
|
+
3. **Maybe later** - Skip without further prompts
|
|
154
|
+
|
|
155
|
+
If user chooses "Yes, star it!":
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
gh api -X PUT /user/starred/Yeachan-Heo/oh-my-claudecode 2>/dev/null && echo "Thanks for starring!" || true
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
**Note:** Fail silently if the API call doesn't work - never block setup completion.
|
|
162
|
+
|
|
163
|
+
### If gh is NOT available or not authenticated:
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
echo ""
|
|
167
|
+
echo "If you enjoy oh-my-claudecode, consider starring the repo:"
|
|
168
|
+
echo " https://github.com/Yeachan-Heo/oh-my-claudecode"
|
|
169
|
+
echo ""
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## Mark Completion
|
|
173
|
+
|
|
174
|
+
Get the current OMC version and mark setup complete:
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
# Get current OMC version from CLAUDE.md
|
|
178
|
+
OMC_VERSION=""
|
|
179
|
+
if [ -f ".claude/CLAUDE.md" ]; then
|
|
180
|
+
OMC_VERSION=$(grep -m1 'OMC:VERSION:' .claude/CLAUDE.md 2>/dev/null | sed -E 's/.*OMC:VERSION:([^ ]+).*/\1/' || true)
|
|
181
|
+
elif [ -f "$HOME/.claude/CLAUDE.md" ]; then
|
|
182
|
+
OMC_VERSION=$(grep -m1 'OMC:VERSION:' "$HOME/.claude/CLAUDE.md" 2>/dev/null | sed -E 's/.*OMC:VERSION:([^ ]+).*/\1/' || true)
|
|
183
|
+
fi
|
|
184
|
+
if [ -z "$OMC_VERSION" ]; then
|
|
185
|
+
OMC_VERSION=$(omc --version 2>/dev/null | head -1 || true)
|
|
186
|
+
fi
|
|
187
|
+
if [ -z "$OMC_VERSION" ]; then
|
|
188
|
+
OMC_VERSION="unknown"
|
|
189
|
+
fi
|
|
190
|
+
|
|
191
|
+
bash "${CLAUDE_PLUGIN_ROOT}/scripts/setup-progress.sh" complete "$OMC_VERSION"
|
|
192
|
+
```
|