claudecode-omc 4.8.2 → 4.8.4
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 +7402 -3580
- 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 +27 -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 +81 -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 +1 -1
- package/dist/hud/usage-api.d.ts.map +1 -1
- package/dist/hud/usage-api.js +207 -106
- 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/analyze/SKILL.md +28 -73
- package/skills/ask/SKILL.md +51 -0
- package/skills/bdd-generator/SKILL.md +60 -0
- package/skills/ccg/SKILL.md +6 -6
- package/skills/deep-interview/SKILL.md +4 -0
- package/skills/e2e/SKILL.md +55 -0
- package/skills/electron-driver/SKILL.md +51 -0
- package/skills/electron-driver/scripts/driver-template.js +46 -0
- package/skills/multi-model-research/SKILL.md +51 -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/planning-with-files/SKILL.md +49 -0
- package/skills/planning-with-files/examples.md +17 -0
- package/skills/planning-with-files/reference.md +21 -0
- package/skills/planning-with-files/scripts/check-complete.ps1 +28 -0
- package/skills/planning-with-files/scripts/check-complete.sh +31 -0
- package/skills/planning-with-files/scripts/init-session.ps1 +31 -0
- package/skills/planning-with-files/scripts/init-session.sh +36 -0
- package/skills/planning-with-files/scripts/session-catchup.py +66 -0
- package/skills/planning-with-files/templates/findings.md +24 -0
- package/skills/planning-with-files/templates/progress.md +38 -0
- package/skills/planning-with-files/templates/task_plan.md +53 -0
- package/skills/ralph/SKILL.md +16 -10
- package/skills/release/SKILL.md +4 -0
- package/skills/setup/SKILL.md +40 -0
- package/skills/start-dev/SKILL.md +45 -0
- package/skills/tdd-generator/SKILL.md +51 -0
- package/skills/team/SKILL.md +6 -6
- package/skills/test-coverage/SKILL.md +40 -0
- package/skills/test-gen/SKILL.md +70 -0
- 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/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/test-gen/skill.md +0 -531
- package/skills/trace/SKILL.md +0 -33
|
@@ -34,14 +34,31 @@ Spawn N CLI worker processes in tmux panes to execute tasks in parallel. Support
|
|
|
34
34
|
|
|
35
35
|
## Requirements
|
|
36
36
|
|
|
37
|
-
- **tmux** must be
|
|
37
|
+
- **tmux binary** must be installed and discoverable (`command -v tmux`)
|
|
38
|
+
- **Active tmux session** required to launch worker panes (`$TMUX` set, or start/attach tmux first)
|
|
38
39
|
- **claude** CLI: `npm install -g @anthropic-ai/claude-code`
|
|
39
40
|
- **codex** CLI: `npm install -g @openai/codex`
|
|
40
41
|
- **gemini** CLI: `npm install -g @google/gemini-cli`
|
|
41
42
|
|
|
42
43
|
## Workflow
|
|
43
44
|
|
|
44
|
-
### Phase
|
|
45
|
+
### Phase 0: Verify prerequisites
|
|
46
|
+
|
|
47
|
+
Check tmux explicitly before claiming it is missing:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
command -v tmux >/dev/null 2>&1
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
- If this fails, report that **tmux is not installed** and stop.
|
|
54
|
+
- If `tmux` exists but `$TMUX` is empty, report that the user is **not currently inside an active tmux session**. Do **not** say tmux is missing; tell them to start or attach tmux, then rerun.
|
|
55
|
+
- If you need to confirm the active session, use:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
tmux display-message -p '#S'
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Phase 1: Parse + validate input
|
|
45
62
|
|
|
46
63
|
Extract:
|
|
47
64
|
|
|
@@ -49,6 +66,12 @@ Extract:
|
|
|
49
66
|
- `agent-type` — `claude|codex|gemini`
|
|
50
67
|
- `task` — task description
|
|
51
68
|
|
|
69
|
+
Validate before decomposing or running anything:
|
|
70
|
+
|
|
71
|
+
- Reject unsupported agent types up front. `/omc-teams` only supports **`claude`**, **`codex`**, and **`gemini`**.
|
|
72
|
+
- If the user asks for an unsupported type such as `expert`, explain that `/omc-teams` launches external CLI workers only.
|
|
73
|
+
- For native Claude Code team agents/roles, direct them to **`/oh-my-claudecode:team`** instead.
|
|
74
|
+
|
|
52
75
|
### Phase 2: Decompose task
|
|
53
76
|
|
|
54
77
|
Break work into N independent subtasks (file- or concern-scoped) to avoid write conflicts.
|
|
@@ -69,6 +92,15 @@ omc team <N>:<claude|codex|gemini> "<task>"
|
|
|
69
92
|
|
|
70
93
|
Team name defaults to a slug from the task text (example: `review-auth-flow`).
|
|
71
94
|
|
|
95
|
+
After launch, verify the command actually executed instead of assuming Enter fired. Check pane output and confirm the command or worker bootstrap text appears in pane history:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
tmux list-panes -a -F '#{session_name}:#{window_index}.#{pane_index} #{pane_id} #{pane_current_command}'
|
|
99
|
+
tmux capture-pane -pt <pane-id> -S -20
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Do not claim the team started successfully unless pane output shows the command was submitted.
|
|
103
|
+
|
|
72
104
|
### Phase 4: Monitor + lifecycle API
|
|
73
105
|
|
|
74
106
|
```bash
|
|
@@ -111,6 +143,7 @@ If encountered, switch to `omc team ...` CLI commands.
|
|
|
111
143
|
| Error | Cause | Fix |
|
|
112
144
|
| ---------------------------- | ----------------------------------- | ----------------------------------------------------------------------------------- |
|
|
113
145
|
| `not inside tmux` | Shell not running inside tmux | Start tmux and rerun |
|
|
146
|
+
| `Unsupported agent type` | Requested agent is not claude/codex/gemini | Use `claude`, `codex`, or `gemini`; for native Claude Code agents use `/oh-my-claudecode:team` |
|
|
114
147
|
| `codex: command not found` | Codex CLI not installed | `npm install -g @openai/codex` |
|
|
115
148
|
| `gemini: command not found` | Gemini CLI not installed | `npm install -g @google/gemini-cli` |
|
|
116
149
|
| `Team <name> is not running` | stale or missing runtime state | `omc team status <team-name>` then `omc team shutdown <team-name> --force` if stale |
|
package/skills/plan/SKILL.md
CHANGED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: planning-with-files
|
|
3
|
+
description: File-based planning workflow for complex tasks. Create and maintain task_plan.md, findings.md, and progress.md as persistent working memory.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Planning With Files
|
|
7
|
+
|
|
8
|
+
Use this skill when the task is complex, long-running, or likely to exceed context continuity.
|
|
9
|
+
|
|
10
|
+
## Use When
|
|
11
|
+
|
|
12
|
+
- Multi-step tasks (typically 3+ phases)
|
|
13
|
+
- Investigations requiring many reads/searches
|
|
14
|
+
- Work that spans planning, implementation, and verification
|
|
15
|
+
|
|
16
|
+
## Core Pattern
|
|
17
|
+
|
|
18
|
+
Context window is volatile; files are durable.
|
|
19
|
+
Write key decisions and discoveries to disk early.
|
|
20
|
+
|
|
21
|
+
## Standard Files
|
|
22
|
+
|
|
23
|
+
- `task_plan.md`: goals, phases, decisions, errors
|
|
24
|
+
- `findings.md`: research notes, references, technical findings
|
|
25
|
+
- `progress.md`: chronological execution and test log
|
|
26
|
+
|
|
27
|
+
## Workflow
|
|
28
|
+
|
|
29
|
+
1. Initialize files in project root:
|
|
30
|
+
- `bash skills/planning-with-files/scripts/init-session.sh`
|
|
31
|
+
2. Before major decisions, re-read `task_plan.md`.
|
|
32
|
+
3. After every 2 search/view operations, update `findings.md`.
|
|
33
|
+
4. After each phase, update status and `progress.md`.
|
|
34
|
+
5. Before handoff, validate completeness:
|
|
35
|
+
- `bash skills/planning-with-files/scripts/check-complete.sh`
|
|
36
|
+
|
|
37
|
+
## Rules
|
|
38
|
+
|
|
39
|
+
- Do not start complex implementation without `task_plan.md`.
|
|
40
|
+
- Record all meaningful errors and attempted fixes.
|
|
41
|
+
- Do not repeat identical failed actions.
|
|
42
|
+
- Keep plans minimal and reversible.
|
|
43
|
+
|
|
44
|
+
## Templates
|
|
45
|
+
|
|
46
|
+
- `skills/planning-with-files/templates/task_plan.md`
|
|
47
|
+
- `skills/planning-with-files/templates/findings.md`
|
|
48
|
+
- `skills/planning-with-files/templates/progress.md`
|
|
49
|
+
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Planning With Files Examples
|
|
2
|
+
|
|
3
|
+
## Example: feature delivery
|
|
4
|
+
|
|
5
|
+
1. Run `bash skills/planning-with-files/scripts/init-session.sh`
|
|
6
|
+
2. Set goal and phases in `task_plan.md`
|
|
7
|
+
3. Log findings during discovery in `findings.md`
|
|
8
|
+
4. Implement phase by phase and append test results to `progress.md`
|
|
9
|
+
5. Run `bash skills/planning-with-files/scripts/check-complete.sh`
|
|
10
|
+
|
|
11
|
+
## Example: bug investigation
|
|
12
|
+
|
|
13
|
+
1. Capture repro steps and hypotheses in `task_plan.md`
|
|
14
|
+
2. Store command outputs and traces in `findings.md`
|
|
15
|
+
3. Log each failed attempt and changed hypothesis in `progress.md`
|
|
16
|
+
4. Only implement once root cause is validated
|
|
17
|
+
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Planning With Files Reference
|
|
2
|
+
|
|
3
|
+
## Why this exists
|
|
4
|
+
|
|
5
|
+
Long tasks lose context. Persisting decisions and findings in project files
|
|
6
|
+
keeps implementation aligned with goals and reduces repeated failures.
|
|
7
|
+
|
|
8
|
+
## Core principles
|
|
9
|
+
|
|
10
|
+
1. Plan before implementing.
|
|
11
|
+
2. Re-read the plan before major decisions.
|
|
12
|
+
3. Externalize discoveries to `findings.md`.
|
|
13
|
+
4. Track execution and verification in `progress.md`.
|
|
14
|
+
5. Keep failed attempts visible to avoid repeating them.
|
|
15
|
+
|
|
16
|
+
## Recommended cadence
|
|
17
|
+
|
|
18
|
+
- Every phase transition: update `task_plan.md`
|
|
19
|
+
- Every 2 search/view actions: update `findings.md`
|
|
20
|
+
- Every test run or fix cycle: update `progress.md`
|
|
21
|
+
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
param(
|
|
2
|
+
[string]$PlanFile = "task_plan.md"
|
|
3
|
+
)
|
|
4
|
+
|
|
5
|
+
if (-not (Test-Path $PlanFile)) {
|
|
6
|
+
Write-Host "ERROR: $PlanFile not found"
|
|
7
|
+
exit 1
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
$content = Get-Content $PlanFile -Raw
|
|
11
|
+
$total = ([regex]::Matches($content, "### Phase")).Count
|
|
12
|
+
$complete = ([regex]::Matches($content, "\*\*Status:\*\* complete")).Count
|
|
13
|
+
$inProgress = ([regex]::Matches($content, "\*\*Status:\*\* in_progress")).Count
|
|
14
|
+
$pending = ([regex]::Matches($content, "\*\*Status:\*\* pending")).Count
|
|
15
|
+
|
|
16
|
+
Write-Host "Total phases: $total"
|
|
17
|
+
Write-Host "Complete: $complete"
|
|
18
|
+
Write-Host "In progress: $inProgress"
|
|
19
|
+
Write-Host "Pending: $pending"
|
|
20
|
+
|
|
21
|
+
if ($total -gt 0 -and $complete -eq $total) {
|
|
22
|
+
Write-Host "ALL PHASES COMPLETE"
|
|
23
|
+
exit 0
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
Write-Host "TASK NOT COMPLETE"
|
|
27
|
+
exit 1
|
|
28
|
+
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Verify all phases in task_plan.md are complete.
|
|
3
|
+
# Usage: bash skills/planning-with-files/scripts/check-complete.sh [task_plan_path]
|
|
4
|
+
|
|
5
|
+
set -euo pipefail
|
|
6
|
+
|
|
7
|
+
PLAN_FILE="${1:-task_plan.md}"
|
|
8
|
+
|
|
9
|
+
if [[ ! -f "${PLAN_FILE}" ]]; then
|
|
10
|
+
echo "ERROR: ${PLAN_FILE} not found"
|
|
11
|
+
exit 1
|
|
12
|
+
fi
|
|
13
|
+
|
|
14
|
+
TOTAL="$(grep -c "### Phase" "${PLAN_FILE}" || true)"
|
|
15
|
+
COMPLETE="$(grep -cF "**Status:** complete" "${PLAN_FILE}" || true)"
|
|
16
|
+
IN_PROGRESS="$(grep -cF "**Status:** in_progress" "${PLAN_FILE}" || true)"
|
|
17
|
+
PENDING="$(grep -cF "**Status:** pending" "${PLAN_FILE}" || true)"
|
|
18
|
+
|
|
19
|
+
echo "Total phases: ${TOTAL}"
|
|
20
|
+
echo "Complete: ${COMPLETE}"
|
|
21
|
+
echo "In progress: ${IN_PROGRESS}"
|
|
22
|
+
echo "Pending: ${PENDING}"
|
|
23
|
+
|
|
24
|
+
if [[ "${TOTAL}" -gt 0 && "${COMPLETE}" -eq "${TOTAL}" ]]; then
|
|
25
|
+
echo "ALL PHASES COMPLETE"
|
|
26
|
+
exit 0
|
|
27
|
+
fi
|
|
28
|
+
|
|
29
|
+
echo "TASK NOT COMPLETE"
|
|
30
|
+
exit 1
|
|
31
|
+
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
param(
|
|
2
|
+
[string]$ProjectName = "project"
|
|
3
|
+
)
|
|
4
|
+
|
|
5
|
+
$date = Get-Date -Format "yyyy-MM-dd"
|
|
6
|
+
Write-Host "Initializing planning files for: $ProjectName"
|
|
7
|
+
|
|
8
|
+
if (-not (Test-Path "task_plan.md")) {
|
|
9
|
+
Copy-Item "skills/planning-with-files/templates/task_plan.md" "task_plan.md"
|
|
10
|
+
Write-Host "Created task_plan.md"
|
|
11
|
+
} else {
|
|
12
|
+
Write-Host "task_plan.md already exists, skipping"
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
if (-not (Test-Path "findings.md")) {
|
|
16
|
+
Copy-Item "skills/planning-with-files/templates/findings.md" "findings.md"
|
|
17
|
+
Write-Host "Created findings.md"
|
|
18
|
+
} else {
|
|
19
|
+
Write-Host "findings.md already exists, skipping"
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
if (-not (Test-Path "progress.md")) {
|
|
23
|
+
Copy-Item "skills/planning-with-files/templates/progress.md" "progress.md"
|
|
24
|
+
(Get-Content "progress.md") -replace "\[DATE\]", $date | Set-Content "progress.md"
|
|
25
|
+
Write-Host "Created progress.md"
|
|
26
|
+
} else {
|
|
27
|
+
Write-Host "progress.md already exists, skipping"
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
Write-Host "Planning files initialized."
|
|
31
|
+
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Initialize planning files in the current project root.
|
|
3
|
+
# Usage: bash skills/planning-with-files/scripts/init-session.sh [project-name]
|
|
4
|
+
|
|
5
|
+
set -euo pipefail
|
|
6
|
+
|
|
7
|
+
PROJECT_NAME="${1:-project}"
|
|
8
|
+
DATE="$(date +%Y-%m-%d)"
|
|
9
|
+
|
|
10
|
+
echo "Initializing planning files for: ${PROJECT_NAME}"
|
|
11
|
+
|
|
12
|
+
if [[ ! -f task_plan.md ]]; then
|
|
13
|
+
cp skills/planning-with-files/templates/task_plan.md task_plan.md
|
|
14
|
+
echo "Created task_plan.md"
|
|
15
|
+
else
|
|
16
|
+
echo "task_plan.md already exists, skipping"
|
|
17
|
+
fi
|
|
18
|
+
|
|
19
|
+
if [[ ! -f findings.md ]]; then
|
|
20
|
+
cp skills/planning-with-files/templates/findings.md findings.md
|
|
21
|
+
echo "Created findings.md"
|
|
22
|
+
else
|
|
23
|
+
echo "findings.md already exists, skipping"
|
|
24
|
+
fi
|
|
25
|
+
|
|
26
|
+
if [[ ! -f progress.md ]]; then
|
|
27
|
+
cp skills/planning-with-files/templates/progress.md progress.md
|
|
28
|
+
# Replace session token with current date for convenience.
|
|
29
|
+
sed -i.bak "s/\\[DATE\\]/${DATE}/g" progress.md && rm -f progress.md.bak
|
|
30
|
+
echo "Created progress.md"
|
|
31
|
+
else
|
|
32
|
+
echo "progress.md already exists, skipping"
|
|
33
|
+
fi
|
|
34
|
+
|
|
35
|
+
echo "Planning files initialized."
|
|
36
|
+
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Session catchup helper for planning-with-files.
|
|
4
|
+
|
|
5
|
+
Checks if planning files were updated long ago while the working tree changed,
|
|
6
|
+
and prints a lightweight catchup reminder.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from __future__ import annotations
|
|
10
|
+
|
|
11
|
+
import os
|
|
12
|
+
import subprocess
|
|
13
|
+
import sys
|
|
14
|
+
from datetime import datetime
|
|
15
|
+
from pathlib import Path
|
|
16
|
+
|
|
17
|
+
PLANNING_FILES = ("task_plan.md", "findings.md", "progress.md")
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def run(cmd: list[str], cwd: Path) -> str:
|
|
21
|
+
try:
|
|
22
|
+
out = subprocess.check_output(cmd, cwd=str(cwd), stderr=subprocess.STDOUT, text=True)
|
|
23
|
+
return out.strip()
|
|
24
|
+
except Exception:
|
|
25
|
+
return ""
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def newest_planning_mtime(root: Path) -> float:
|
|
29
|
+
mtimes = []
|
|
30
|
+
for name in PLANNING_FILES:
|
|
31
|
+
p = root / name
|
|
32
|
+
if p.exists():
|
|
33
|
+
mtimes.append(p.stat().st_mtime)
|
|
34
|
+
return max(mtimes) if mtimes else 0.0
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def main() -> int:
|
|
38
|
+
root = Path(sys.argv[1]).resolve() if len(sys.argv) > 1 else Path.cwd().resolve()
|
|
39
|
+
if not (root / ".git").exists():
|
|
40
|
+
return 0
|
|
41
|
+
|
|
42
|
+
planning_mtime = newest_planning_mtime(root)
|
|
43
|
+
if planning_mtime == 0:
|
|
44
|
+
return 0
|
|
45
|
+
|
|
46
|
+
diff_stat = run(["git", "diff", "--stat"], root)
|
|
47
|
+
if not diff_stat:
|
|
48
|
+
return 0
|
|
49
|
+
|
|
50
|
+
now = datetime.now().timestamp()
|
|
51
|
+
age_hours = (now - planning_mtime) / 3600
|
|
52
|
+
if age_hours < 1:
|
|
53
|
+
return 0
|
|
54
|
+
|
|
55
|
+
print("[planning-with-files] Catchup reminder")
|
|
56
|
+
print("Detected git changes after last planning file update.")
|
|
57
|
+
print("Recommended next steps:")
|
|
58
|
+
print("1. Read task_plan.md, findings.md, progress.md")
|
|
59
|
+
print("2. Run: git diff --stat")
|
|
60
|
+
print("3. Sync planning files with current code changes")
|
|
61
|
+
return 0
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
if __name__ == "__main__":
|
|
65
|
+
raise SystemExit(main())
|
|
66
|
+
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Findings and Decisions
|
|
2
|
+
|
|
3
|
+
## Requirements
|
|
4
|
+
-
|
|
5
|
+
|
|
6
|
+
## Research Findings
|
|
7
|
+
-
|
|
8
|
+
|
|
9
|
+
## Technical Decisions
|
|
10
|
+
| Decision | Rationale |
|
|
11
|
+
|----------|-----------|
|
|
12
|
+
| | |
|
|
13
|
+
|
|
14
|
+
## Issues Encountered
|
|
15
|
+
| Issue | Resolution |
|
|
16
|
+
|-------|------------|
|
|
17
|
+
| | |
|
|
18
|
+
|
|
19
|
+
## Resources
|
|
20
|
+
-
|
|
21
|
+
|
|
22
|
+
## Visual or Browser Findings
|
|
23
|
+
-
|
|
24
|
+
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Progress Log
|
|
2
|
+
|
|
3
|
+
## Session: [DATE]
|
|
4
|
+
|
|
5
|
+
### Phase 1: [Title]
|
|
6
|
+
- **Status:** in_progress
|
|
7
|
+
- **Started:** [timestamp]
|
|
8
|
+
- Actions taken:
|
|
9
|
+
-
|
|
10
|
+
- Files created or modified:
|
|
11
|
+
-
|
|
12
|
+
|
|
13
|
+
### Phase 2: [Title]
|
|
14
|
+
- **Status:** pending
|
|
15
|
+
- Actions taken:
|
|
16
|
+
-
|
|
17
|
+
- Files created or modified:
|
|
18
|
+
-
|
|
19
|
+
|
|
20
|
+
## Test Results
|
|
21
|
+
| Test | Input | Expected | Actual | Status |
|
|
22
|
+
|------|-------|----------|--------|--------|
|
|
23
|
+
| | | | | |
|
|
24
|
+
|
|
25
|
+
## Error Log
|
|
26
|
+
| Timestamp | Error | Attempt | Resolution |
|
|
27
|
+
|-----------|-------|---------|------------|
|
|
28
|
+
| | | 1 | |
|
|
29
|
+
|
|
30
|
+
## Reboot Check
|
|
31
|
+
| Question | Answer |
|
|
32
|
+
|----------|--------|
|
|
33
|
+
| Where am I? | Phase X |
|
|
34
|
+
| Where am I going? | Remaining phases |
|
|
35
|
+
| What is the goal? | See task_plan.md |
|
|
36
|
+
| What have I learned? | See findings.md |
|
|
37
|
+
| What have I done? | See this file |
|
|
38
|
+
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Task Plan: [Brief Description]
|
|
2
|
+
|
|
3
|
+
## Goal
|
|
4
|
+
[One sentence describing the end state]
|
|
5
|
+
|
|
6
|
+
## Current Phase
|
|
7
|
+
Phase 1
|
|
8
|
+
|
|
9
|
+
## Phases
|
|
10
|
+
|
|
11
|
+
### Phase 1: Requirements and Discovery
|
|
12
|
+
- [ ] Understand user intent
|
|
13
|
+
- [ ] Identify constraints and requirements
|
|
14
|
+
- [ ] Document findings in findings.md
|
|
15
|
+
- **Status:** in_progress
|
|
16
|
+
|
|
17
|
+
### Phase 2: Planning and Structure
|
|
18
|
+
- [ ] Define technical approach
|
|
19
|
+
- [ ] Create project structure if needed
|
|
20
|
+
- [ ] Document major decisions
|
|
21
|
+
- **Status:** pending
|
|
22
|
+
|
|
23
|
+
### Phase 3: Implementation
|
|
24
|
+
- [ ] Execute plan in small steps
|
|
25
|
+
- [ ] Keep changes reversible
|
|
26
|
+
- [ ] Verify incrementally
|
|
27
|
+
- **Status:** pending
|
|
28
|
+
|
|
29
|
+
### Phase 4: Testing and Verification
|
|
30
|
+
- [ ] Verify requirements are met
|
|
31
|
+
- [ ] Log test results in progress.md
|
|
32
|
+
- [ ] Fix issues found
|
|
33
|
+
- **Status:** pending
|
|
34
|
+
|
|
35
|
+
### Phase 5: Delivery
|
|
36
|
+
- [ ] Review output quality
|
|
37
|
+
- [ ] Summarize results and residual risks
|
|
38
|
+
- **Status:** pending
|
|
39
|
+
|
|
40
|
+
## Key Questions
|
|
41
|
+
1. [Question to answer]
|
|
42
|
+
2. [Question to answer]
|
|
43
|
+
|
|
44
|
+
## Decisions Made
|
|
45
|
+
| Decision | Rationale |
|
|
46
|
+
|----------|-----------|
|
|
47
|
+
| | |
|
|
48
|
+
|
|
49
|
+
## Errors Encountered
|
|
50
|
+
| Error | Attempt | Resolution |
|
|
51
|
+
|-------|---------|------------|
|
|
52
|
+
| | 1 | |
|
|
53
|
+
|
package/skills/ralph/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ralph
|
|
3
|
-
description: Self-referential loop until task completion with
|
|
3
|
+
description: Self-referential loop until task completion with configurable verification reviewer
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
[RALPH + ULTRAWORK - ITERATION {{ITERATION}}/{{MAX}}]
|
|
@@ -8,14 +8,14 @@ description: Self-referential loop until task completion with architect verifica
|
|
|
8
8
|
Your previous attempt did not output the completion promise. Continue working on the task.
|
|
9
9
|
|
|
10
10
|
<Purpose>
|
|
11
|
-
Ralph is a PRD-driven persistence loop that keeps working on a task until ALL user stories in prd.json have passes: true and are
|
|
11
|
+
Ralph is a PRD-driven persistence loop that keeps working on a task until ALL user stories in prd.json have passes: true and are reviewer-verified. It wraps ultrawork's parallel execution with session persistence, automatic retry on failure, structured story tracking, and mandatory verification before completion.
|
|
12
12
|
</Purpose>
|
|
13
13
|
|
|
14
14
|
<Use_When>
|
|
15
15
|
- Task requires guaranteed completion with verification (not just "do your best")
|
|
16
16
|
- User says "ralph", "don't stop", "must complete", "finish this", or "keep going until done"
|
|
17
17
|
- Work may span multiple iterations and needs persistence across retries
|
|
18
|
-
- Task benefits from structured PRD-driven execution with
|
|
18
|
+
- Task benefits from structured PRD-driven execution with reviewer sign-off
|
|
19
19
|
</Use_When>
|
|
20
20
|
|
|
21
21
|
<Do_Not_Use_When>
|
|
@@ -30,13 +30,15 @@ Complex tasks often fail silently: partial implementations get declared "done",
|
|
|
30
30
|
1. Structuring work into discrete user stories with testable acceptance criteria (prd.json)
|
|
31
31
|
2. Iterating story-by-story until each one passes
|
|
32
32
|
3. Tracking progress and learnings across iterations (progress.txt)
|
|
33
|
-
4. Requiring fresh
|
|
33
|
+
4. Requiring fresh reviewer verification against specific acceptance criteria before completion
|
|
34
34
|
</Why_This_Exists>
|
|
35
35
|
|
|
36
36
|
<PRD_Mode>
|
|
37
37
|
By default, ralph operates in PRD mode. A scaffold `prd.json` is auto-generated when ralph starts if none exists.
|
|
38
38
|
|
|
39
39
|
**Opt-out:** If `{{PROMPT}}` contains `--no-prd`, skip PRD generation and work in legacy mode (no story tracking, generic verification). Use this for trivial quick fixes.
|
|
40
|
+
|
|
41
|
+
**Reviewer selection:** Pass `--critic=architect`, `--critic=critic`, or `--critic=codex` in the Ralph prompt to choose the completion reviewer for that run. `architect` remains the default.
|
|
40
42
|
</PRD_Mode>
|
|
41
43
|
|
|
42
44
|
<Execution_Policy>
|
|
@@ -84,20 +86,24 @@ By default, ralph operates in PRD mode. A scaffold `prd.json` is auto-generated
|
|
|
84
86
|
b. If NOT all complete, loop back to Step 2 (pick next story)
|
|
85
87
|
c. If ALL complete, proceed to Step 7 (architect verification)
|
|
86
88
|
|
|
87
|
-
7. **
|
|
89
|
+
7. **Reviewer verification** (tiered, against acceptance criteria):
|
|
88
90
|
- <5 files, <100 lines with full tests: STANDARD tier minimum (architect-medium / Sonnet)
|
|
89
91
|
- Standard changes: STANDARD tier (architect-medium / Sonnet)
|
|
90
92
|
- >20 files or security/architectural changes: THOROUGH tier (architect / Opus)
|
|
93
|
+
- If `--critic=critic`, use the Claude `critic` agent for the approval pass
|
|
94
|
+
- If `--critic=codex`, run `omc ask codex --agent-prompt critic "..."` for the approval pass
|
|
91
95
|
- Ralph floor: always at least STANDARD, even for small changes
|
|
92
|
-
- The
|
|
96
|
+
- The selected reviewer verifies against the SPECIFIC acceptance criteria from prd.json, not vague "is it done?"
|
|
93
97
|
|
|
94
98
|
8. **On approval**: Run `/oh-my-claudecode:cancel` to cleanly exit and clean up all state files
|
|
95
99
|
|
|
96
|
-
9. **On rejection**: Fix the issues raised, re-verify
|
|
100
|
+
9. **On rejection**: Fix the issues raised, re-verify with the same reviewer, then loop back to check if the story needs to be marked incomplete
|
|
97
101
|
</Steps>
|
|
98
102
|
|
|
99
103
|
<Tool_Usage>
|
|
100
|
-
- Use `Task(subagent_type="oh-my-claudecode:architect", ...)` for verification cross-checks when changes are security-sensitive, architectural, or involve complex multi-system integration
|
|
104
|
+
- Use `Task(subagent_type="oh-my-claudecode:architect", ...)` for architect verification cross-checks when changes are security-sensitive, architectural, or involve complex multi-system integration
|
|
105
|
+
- Use `Task(subagent_type="oh-my-claudecode:critic", ...)` when `--critic=critic`
|
|
106
|
+
- Use `omc ask codex --agent-prompt critic "..."` when `--critic=codex`
|
|
101
107
|
- Skip architect consultation for simple feature additions, well-tested changes, or time-critical verification
|
|
102
108
|
- Proceed with architect agent verification alone -- never block on unavailable tools
|
|
103
109
|
- Use `state_write` / `state_read` for ralph mode state persistence between iterations
|
|
@@ -171,7 +177,7 @@ Why bad: Did not refine scaffold criteria into task-specific ones. This is PRD t
|
|
|
171
177
|
- Stop and report when a fundamental blocker requires user input (missing credentials, unclear requirements, external service down)
|
|
172
178
|
- Stop when the user says "stop", "cancel", or "abort" -- run `/oh-my-claudecode:cancel`
|
|
173
179
|
- Continue working when the hook system sends "The boulder never stops" -- this means the iteration continues
|
|
174
|
-
- If
|
|
180
|
+
- If the selected reviewer rejects verification, fix the issues and re-verify (do not stop)
|
|
175
181
|
- If the same issue recurs across 3+ iterations, report it as a potential fundamental problem
|
|
176
182
|
</Escalation_And_Stop_Conditions>
|
|
177
183
|
|
|
@@ -184,7 +190,7 @@ Why bad: Did not refine scaffold criteria into task-specific ones. This is PRD t
|
|
|
184
190
|
- [ ] Fresh build output shows success
|
|
185
191
|
- [ ] lsp_diagnostics shows 0 errors on affected files
|
|
186
192
|
- [ ] progress.txt records implementation details and learnings
|
|
187
|
-
- [ ]
|
|
193
|
+
- [ ] Selected reviewer verification passed against specific acceptance criteria
|
|
188
194
|
- [ ] `/oh-my-claudecode:cancel` run for clean state cleanup
|
|
189
195
|
</Final_Checklist>
|
|
190
196
|
|
package/skills/release/SKILL.md
CHANGED
|
@@ -25,6 +25,8 @@ Update version in all locations:
|
|
|
25
25
|
- `src/installer/index.ts` (VERSION constant)
|
|
26
26
|
- `src/__tests__/installer.test.ts` (expected version)
|
|
27
27
|
- `.claude-plugin/plugin.json`
|
|
28
|
+
- `.claude-plugin/marketplace.json` (both `plugins[0].version` and root `version`)
|
|
29
|
+
- `docs/CLAUDE.md` (`<!-- OMC:VERSION:X.Y.Z -->` marker)
|
|
28
30
|
- `README.md` (version badge and title)
|
|
29
31
|
|
|
30
32
|
### 2. Run Tests
|
|
@@ -68,6 +70,8 @@ gh release create v<version> --title "v<version> - <title>" --notes "<release no
|
|
|
68
70
|
| `src/installer/index.ts` | `export const VERSION = 'X.Y.Z'` |
|
|
69
71
|
| `src/__tests__/installer.test.ts` | `expect(VERSION).toBe('X.Y.Z')` |
|
|
70
72
|
| `.claude-plugin/plugin.json` | `"version": "X.Y.Z"` |
|
|
73
|
+
| `.claude-plugin/marketplace.json` | `plugins[0].version` + root `version` |
|
|
74
|
+
| `docs/CLAUDE.md` | `<!-- OMC:VERSION:X.Y.Z -->` |
|
|
71
75
|
| `README.md` | Title + version badge |
|
|
72
76
|
|
|
73
77
|
## Semantic Versioning
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: setup
|
|
3
|
+
description: Unified setup entrypoint for install, diagnostics, and MCP configuration
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Setup
|
|
7
|
+
|
|
8
|
+
Use `/oh-my-claudecode:setup` as the unified setup/configuration entrypoint.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
/oh-my-claudecode:setup # full setup wizard
|
|
14
|
+
/oh-my-claudecode:setup doctor # installation diagnostics
|
|
15
|
+
/oh-my-claudecode:setup mcp # MCP server configuration
|
|
16
|
+
/oh-my-claudecode:setup wizard --local # explicit wizard path
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Routing
|
|
20
|
+
|
|
21
|
+
Route by the first argument:
|
|
22
|
+
|
|
23
|
+
- No argument, `wizard`, `local`, `global`, or `--force` -> run `/oh-my-claudecode:omc-setup {{ARGUMENTS}}`
|
|
24
|
+
- `doctor` -> run `/oh-my-claudecode:omc-doctor {{ARGUMENTS_AFTER_DOCTOR}}`
|
|
25
|
+
- `mcp` -> run `/oh-my-claudecode:mcp-setup {{ARGUMENTS_AFTER_MCP}}`
|
|
26
|
+
|
|
27
|
+
Examples:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
/oh-my-claudecode:omc-setup {{ARGUMENTS}}
|
|
31
|
+
/oh-my-claudecode:omc-doctor {{ARGUMENTS_AFTER_DOCTOR}}
|
|
32
|
+
/oh-my-claudecode:mcp-setup {{ARGUMENTS_AFTER_MCP}}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Notes
|
|
36
|
+
|
|
37
|
+
- `/oh-my-claudecode:omc-setup`, `/oh-my-claudecode:omc-doctor`, and `/oh-my-claudecode:mcp-setup` remain valid compatibility entrypoints.
|
|
38
|
+
- Prefer `/oh-my-claudecode:setup` in new documentation and user guidance.
|
|
39
|
+
|
|
40
|
+
Task: {{ARGUMENTS}}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: start-dev
|
|
3
|
+
description: Adaptive development workflow that runs discover -> research -> plan -> implement -> verify with explicit quality gates.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# start-dev
|
|
7
|
+
|
|
8
|
+
Use this skill as a practical default for non-trivial feature delivery.
|
|
9
|
+
|
|
10
|
+
## Goal
|
|
11
|
+
|
|
12
|
+
Move from request to verified implementation with minimal rework.
|
|
13
|
+
|
|
14
|
+
## Workflow
|
|
15
|
+
|
|
16
|
+
1. Discover:
|
|
17
|
+
- Map affected modules
|
|
18
|
+
- Identify constraints and existing patterns
|
|
19
|
+
2. Research:
|
|
20
|
+
- Validate version-sensitive APIs and framework behavior from official docs
|
|
21
|
+
3. Plan:
|
|
22
|
+
- Define smallest reversible change
|
|
23
|
+
- List files and risks
|
|
24
|
+
4. Implement:
|
|
25
|
+
- Execute in small increments
|
|
26
|
+
- Keep tests and build green
|
|
27
|
+
5. Verify:
|
|
28
|
+
- Run targeted tests, then broader checks
|
|
29
|
+
- Summarize residual risk honestly
|
|
30
|
+
|
|
31
|
+
## Delegation Pattern
|
|
32
|
+
|
|
33
|
+
- `explore` for codebase mapping
|
|
34
|
+
- `architect` for design tradeoffs
|
|
35
|
+
- `executor` for implementation
|
|
36
|
+
- `test-engineer` for test strategy
|
|
37
|
+
- `code-reviewer` or `verifier` for final quality pass
|
|
38
|
+
|
|
39
|
+
## Quality Gates
|
|
40
|
+
|
|
41
|
+
- Requirements are explicit before coding.
|
|
42
|
+
- Plan includes rollback strategy.
|
|
43
|
+
- Verification commands and results are captured.
|
|
44
|
+
- No completion claim without evidence.
|
|
45
|
+
|