oh-my-claude-sisyphus 3.5.1 → 3.5.5

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.
Files changed (78) hide show
  1. package/commands/doctor.md +1 -1
  2. package/commands/ecomode.md +1 -2
  3. package/commands/help.md +1 -1
  4. package/commands/hud.md +21 -5
  5. package/commands/learn-about-omc.md +5 -0
  6. package/commands/mcp-setup.md +64 -75
  7. package/commands/omc-setup.md +38 -4
  8. package/commands/ralplan.md +1 -1
  9. package/commands/research.md +2 -2
  10. package/commands/ultraqa.md +1 -1
  11. package/dist/__tests__/analytics/transcript-token-extractor.test.js +4 -2
  12. package/dist/__tests__/analytics/transcript-token-extractor.test.js.map +1 -1
  13. package/dist/__tests__/delegation-enforcer-integration.test.d.ts +4 -0
  14. package/dist/__tests__/delegation-enforcer-integration.test.d.ts.map +1 -1
  15. package/dist/__tests__/delegation-enforcer-integration.test.js +5 -1
  16. package/dist/__tests__/delegation-enforcer-integration.test.js.map +1 -1
  17. package/dist/__tests__/hud/analytics-display.test.d.ts +2 -0
  18. package/dist/__tests__/hud/analytics-display.test.d.ts.map +1 -0
  19. package/dist/__tests__/hud/analytics-display.test.js +101 -0
  20. package/dist/__tests__/hud/analytics-display.test.js.map +1 -0
  21. package/dist/__tests__/skills.test.js +17 -19
  22. package/dist/__tests__/skills.test.js.map +1 -1
  23. package/dist/cli/analytics.js +1 -26
  24. package/dist/cli/analytics.js.map +1 -1
  25. package/dist/hooks/auto-slash-command/constants.d.ts.map +1 -1
  26. package/dist/hooks/auto-slash-command/constants.js +1 -4
  27. package/dist/hooks/auto-slash-command/constants.js.map +1 -1
  28. package/dist/hooks/ralph/loop.js +1 -1
  29. package/dist/hooks/ralph/loop.js.map +1 -1
  30. package/dist/hooks/ultraqa/index.js +1 -1
  31. package/dist/hooks/ultraqa/index.js.map +1 -1
  32. package/dist/hud/analytics-display.d.ts.map +1 -1
  33. package/dist/hud/analytics-display.js +5 -6
  34. package/dist/hud/analytics-display.js.map +1 -1
  35. package/dist/hud/index.js +94 -37
  36. package/dist/hud/index.js.map +1 -1
  37. package/dist/hud/render.js +1 -1
  38. package/dist/hud/render.js.map +1 -1
  39. package/dist/installer/index.d.ts.map +1 -1
  40. package/dist/installer/index.js +21 -3
  41. package/dist/installer/index.js.map +1 -1
  42. package/docs/CLAUDE.md +9 -16
  43. package/docs/FULL-README.md +49 -56
  44. package/docs/MIGRATION.md +96 -1
  45. package/hooks/keyword-detector.sh +1 -1
  46. package/package.json +1 -1
  47. package/scripts/install.sh +8 -217
  48. package/scripts/keyword-detector.mjs +1 -1
  49. package/scripts/persistent-mode.mjs +1 -1
  50. package/scripts/test-mutual-exclusion.ts +4 -4
  51. package/scripts/test-remember-tags.ts +6 -6
  52. package/scripts/test-session-injection.ts +4 -4
  53. package/scripts/uninstall.sh +0 -4
  54. package/skills/autopilot/SKILL.md +1 -1
  55. package/skills/cancel/SKILL.md +35 -0
  56. package/skills/doctor/SKILL.md +1 -1
  57. package/skills/help/SKILL.md +2 -2
  58. package/skills/hud/SKILL.md +21 -5
  59. package/skills/learn-about-omc/SKILL.md +128 -0
  60. package/skills/omc-setup/SKILL.md +9 -34
  61. package/skills/ralplan/SKILL.md +19 -250
  62. package/skills/research/SKILL.md +2 -2
  63. package/skills/ultrapilot/SKILL.md +1 -1
  64. package/skills/ultraqa/SKILL.md +1 -1
  65. package/commands/cancel-autopilot.md +0 -35
  66. package/commands/cancel-ecomode.md +0 -71
  67. package/commands/cancel-ralph.md +0 -41
  68. package/commands/cancel-ultraqa.md +0 -27
  69. package/commands/cancel-ultrawork.md +0 -40
  70. package/commands/planner.md +0 -174
  71. package/skills/cancel-autopilot/SKILL.md +0 -52
  72. package/skills/cancel-ecomode/SKILL.md +0 -41
  73. package/skills/cancel-ralph/SKILL.md +0 -42
  74. package/skills/cancel-ultraqa/SKILL.md +0 -28
  75. package/skills/cancel-ultrawork/SKILL.md +0 -41
  76. package/skills/omc-default/SKILL.md +0 -77
  77. package/skills/omc-default-global/SKILL.md +0 -74
  78. package/skills/planner/SKILL.md +0 -105
@@ -720,161 +720,6 @@ Delegate tasks to specialized agents using the Task tool:
720
720
  - NEVER leave work incomplete
721
721
  CMD_EOF
722
722
 
723
- # omc-default mode command (project-scoped)
724
- cat > "$CLAUDE_CONFIG_DIR/commands/omc-default.md" << 'CMD_EOF'
725
- ---
726
- description: Configure oh-my-claudecode in local project (.claude/CLAUDE.md)
727
- ---
728
-
729
- $ARGUMENTS
730
-
731
- ## Task: Configure oh-my-claudecode Default Mode (Project-Scoped)
732
-
733
- **CRITICAL**: This skill ALWAYS downloads fresh CLAUDE.md from GitHub to your local project. DO NOT use the Write tool - use bash curl exclusively.
734
-
735
- ### Step 1: Create Local .claude Directory
736
-
737
- Ensure the local project has a .claude directory:
738
-
739
- ```bash
740
- # Create .claude directory in current project
741
- mkdir -p .claude && echo "✅ .claude directory created" || echo "❌ Failed to create .claude directory"
742
- ```
743
-
744
- ### Step 2: Download Fresh CLAUDE.md (MANDATORY)
745
-
746
- Execute this bash command to download fresh CLAUDE.md to local project config:
747
-
748
- ```bash
749
- # Download fresh CLAUDE.md to project-local .claude/
750
- curl -fsSL "https://raw.githubusercontent.com/Yeachan-Heo/oh-my-claude-sisyphus/main/docs/CLAUDE.md" -o .claude/CLAUDE.md && \
751
- echo "✅ CLAUDE.md downloaded successfully to .claude/CLAUDE.md" || \
752
- echo "❌ Failed to download CLAUDE.md"
753
- ```
754
-
755
- **MANDATORY**: Always run this command. Do NOT skip. Do NOT use Write tool.
756
-
757
- **FALLBACK** if curl fails:
758
- Tell user to manually download from:
759
- https://raw.githubusercontent.com/Yeachan-Heo/oh-my-claude-sisyphus/main/docs/CLAUDE.md
760
-
761
- ### Step 3: Verify Plugin Installation
762
-
763
- The oh-my-claudecode plugin provides all hooks automatically via the plugin system. Verify the plugin is enabled:
764
-
765
- ```bash
766
- grep -q "oh-my-claudecode" ~/.claude/settings.json && echo "Plugin enabled" || echo "Plugin NOT enabled"
767
- ```
768
-
769
- If plugin is not enabled, instruct user:
770
- > Run: `claude /install-plugin oh-my-claudecode` to enable the plugin.
771
-
772
- ### Step 4: Confirm Success
773
-
774
- After completing all steps, report:
775
-
776
- ✅ **oh-my-claudecode Project Configuration Complete**
777
- - CLAUDE.md: Updated with latest configuration from GitHub at ./.claude/CLAUDE.md
778
- - Scope: **PROJECT** - applies only to this project
779
- - Hooks: Provided by plugin (no manual installation needed)
780
- - Agents: 19+ available (base + tiered variants)
781
- - Model routing: Haiku/Sonnet/Opus based on task complexity
782
-
783
- **Note**: This configuration is project-specific and won't affect other projects or global settings.
784
-
785
- ---
786
-
787
- ## 🔄 Keeping Up to Date
788
-
789
- After installing oh-my-claudecode updates (via npm or plugin update), run `/omc-default` again in your project to get the latest CLAUDE.md configuration. This ensures you have the newest features and agent configurations.
790
-
791
- ---
792
-
793
- ## 🌍 Global vs Project Configuration
794
-
795
- - **`/omc-default`** (this command): Creates `./.claude/CLAUDE.md` in your current project
796
- - **`/omc-default-global`**: Creates `~/.claude/CLAUDE.md` for all projects
797
-
798
- Project-scoped configuration takes precedence over global configuration.
799
- CMD_EOF
800
-
801
- # omc-default-global mode command (global)
802
- cat > "$CLAUDE_CONFIG_DIR/commands/omc-default-global.md" << 'CMD_EOF'
803
- ---
804
- description: Configure oh-my-claudecode globally in ~/.claude/CLAUDE.md
805
- ---
806
-
807
- $ARGUMENTS
808
-
809
- ## Task: Configure oh-my-claudecode Default Mode (Global)
810
-
811
- **CRITICAL**: This skill ALWAYS downloads fresh CLAUDE.md from GitHub to your global config. DO NOT use the Write tool - use bash curl exclusively.
812
-
813
- ### Step 1: Download Fresh CLAUDE.md (MANDATORY)
814
-
815
- Execute this bash command to erase and download fresh CLAUDE.md to global config:
816
-
817
- ```bash
818
- # Remove existing CLAUDE.md and download fresh from GitHub
819
- rm -f ~/.claude/CLAUDE.md && \
820
- curl -fsSL "https://raw.githubusercontent.com/Yeachan-Heo/oh-my-claude-sisyphus/main/docs/CLAUDE.md" -o ~/.claude/CLAUDE.md && \
821
- echo "✅ CLAUDE.md downloaded successfully to ~/.claude/CLAUDE.md" || \
822
- echo "❌ Failed to download CLAUDE.md"
823
- ```
824
-
825
- **MANDATORY**: Always run this command. Do NOT skip. Do NOT use Write tool.
826
-
827
- **FALLBACK** if curl fails:
828
- Tell user to manually download from:
829
- https://raw.githubusercontent.com/Yeachan-Heo/oh-my-claude-sisyphus/main/docs/CLAUDE.md
830
-
831
- ### Step 2: Clean Up Legacy Hooks (if present)
832
-
833
- Check if old manual hooks exist and remove them to prevent duplicates:
834
-
835
- ```bash
836
- # Remove legacy bash hook scripts (now handled by plugin system)
837
- rm -f ~/.claude/hooks/keyword-detector.sh
838
- rm -f ~/.claude/hooks/stop-continuation.sh
839
- rm -f ~/.claude/hooks/persistent-mode.sh
840
- rm -f ~/.claude/hooks/session-start.sh
841
- ```
842
-
843
- Check `~/.claude/settings.json` for manual hook entries. If the "hooks" key exists with UserPromptSubmit, Stop, or SessionStart entries pointing to bash scripts, inform the user:
844
-
845
- > **Note**: Found legacy hooks in settings.json. These should be removed since the plugin now provides hooks automatically. Remove the "hooks" section from ~/.claude/settings.json to prevent duplicate hook execution.
846
-
847
- ### Step 3: Verify Plugin Installation
848
-
849
- The oh-my-claudecode plugin provides all hooks automatically via the plugin system. Verify the plugin is enabled:
850
-
851
- ```bash
852
- grep -q "oh-my-claudecode" ~/.claude/settings.json && echo "Plugin enabled" || echo "Plugin NOT enabled"
853
- ```
854
-
855
- If plugin is not enabled, instruct user:
856
- > Run: `claude /install-plugin oh-my-claudecode` to enable the plugin.
857
-
858
- ### Step 4: Confirm Success
859
-
860
- After completing all steps, report:
861
-
862
- ✅ **oh-my-claudecode Global Configuration Complete**
863
- - CLAUDE.md: Updated with latest configuration from GitHub at ~/.claude/CLAUDE.md
864
- - Scope: **GLOBAL** - applies to all Claude Code sessions
865
- - Hooks: Provided by plugin (no manual installation needed)
866
- - Agents: 19+ available (base + tiered variants)
867
- - Model routing: Haiku/Sonnet/Opus based on task complexity
868
-
869
- **Note**: Hooks are now managed by the plugin system automatically. No manual hook installation required.
870
-
871
- ---
872
-
873
- ## 🔄 Keeping Up to Date
874
-
875
- After installing oh-my-claudecode updates (via npm or plugin update), run `/omc-default-global` again to get the latest CLAUDE.md configuration. This ensures you have the newest features and agent configurations.
876
- CMD_EOF
877
-
878
723
  # Plan command (Prometheus planning system)
879
724
  cat > "$CLAUDE_CONFIG_DIR/commands/plan.md" << 'CMD_EOF'
880
725
  ---
@@ -1003,57 +848,7 @@ Plans are saved to `.omc/plans/` for later execution with `/sisyphus`.
1003
848
  Tell me about what you want to build or accomplish. I'll ask questions to understand the full scope before creating a plan.
1004
849
  CMD_EOF
1005
850
 
1006
- # Ralph Loop Command
1007
- cat > "$CLAUDE_CONFIG_DIR/commands/ralph-loop.md" << 'CMD_EOF'
1008
- ---
1009
- description: Start self-referential development loop until task completion
1010
- ---
1011
-
1012
- [RALPH LOOP ACTIVATED]
1013
-
1014
- $ARGUMENTS
1015
-
1016
- ## How Ralph Loop Works
1017
-
1018
- You are starting a Ralph Loop - a self-referential development loop that runs until task completion.
1019
-
1020
- 1. Work on the task continuously and thoroughly
1021
- 2. When the task is FULLY complete, output: `<promise>DONE</promise>`
1022
- 3. If you stop without the promise tag, the loop will remind you to continue
1023
- 4. Maximum iterations: 100 (configurable)
1024
-
1025
- ## Exit Conditions
1026
-
1027
- - **Completion**: Output `<promise>DONE</promise>` when fully done
1028
- - **Cancel**: User runs `/cancel-ralph`
1029
- - **Max Iterations**: Loop stops at limit
1030
-
1031
- ## Guidelines
1032
-
1033
- - Break the task into steps and work through them systematically
1034
- - Test your work as you go
1035
- - Don't output the promise until you've verified everything works
1036
- - Be thorough - the loop exists so you can take your time
1037
-
1038
- ---
1039
-
1040
- Begin working on the task. Remember to output `<promise>DONE</promise>` when complete.
1041
- CMD_EOF
1042
-
1043
- # Cancel Ralph Command
1044
- cat > "$CLAUDE_CONFIG_DIR/commands/cancel-ralph.md" << 'CMD_EOF'
1045
- ---
1046
- description: Cancel active Ralph Loop
1047
- ---
1048
-
1049
- [RALPH LOOP CANCELLED]
1050
-
1051
- The Ralph Loop has been cancelled. You can stop working on the current task.
1052
-
1053
- If you want to start a new loop, use `/ralph-loop "task description"`.
1054
- CMD_EOF
1055
-
1056
- echo -e "${GREEN}✓ Installed 10 slash commands${NC}"
851
+ echo -e "${GREEN}✓ Installed 8 slash commands${NC}"
1057
852
 
1058
853
  echo -e "${BLUE}[5/6]${NC} Installing hook scripts..."
1059
854
  mkdir -p "$CLAUDE_CONFIG_DIR/hooks"
@@ -1724,16 +1519,14 @@ Use the Task tool to delegate to specialized agents:
1724
1519
  | Command | Description |
1725
1520
  |---------|-------------|
1726
1521
  | `/orchestrate <task>` | Activate OMC multi-agent orchestration |
1727
- | `/omc-default` | Configure OMC for current project (./.claude/CLAUDE.md) |
1728
- | `/omc-default-global` | Configure OMC globally (~/.claude/CLAUDE.md) |
1522
+ | `/omc-setup` | Configure OMC (--local for project, --global for all) |
1729
1523
  | `/ultrawork <task>` | Maximum performance mode with parallel agents |
1730
1524
  | `/deepsearch <query>` | Thorough codebase search |
1731
1525
  | `/analyze <target>` | Deep analysis and investigation |
1732
- | `/plan <description>` | Start planning session with Planner |
1526
+ | `/plan <description>` | Start planning session |
1733
1527
  | `/review [plan-path]` | Review a plan with Critic |
1734
- | `/planner <task>` | Strategic planning with interview workflow |
1735
1528
  | `/ralph <task>` | Self-referential loop until task completion |
1736
- | `/cancel-ralph` | Cancel active Ralph Loop |
1529
+ | `/cancel` | Cancel active loops/modes |
1737
1530
 
1738
1531
  ## Planning Workflow
1739
1532
 
@@ -1833,8 +1626,7 @@ echo " claude # Start Claude Code normally"
1833
1626
  echo ""
1834
1627
  echo -e "${YELLOW}Slash Commands:${NC}"
1835
1628
  echo " /sisyphus <task> # Activate Sisyphus orchestration mode"
1836
- echo " /omc-default # Configure for current project"
1837
- echo " /omc-default-global # Configure globally"
1629
+ echo " /omc-setup # Configure OMC (--local or --global)"
1838
1630
  echo " /ultrawork <task> # Maximum performance mode"
1839
1631
  echo " /deepsearch <query> # Thorough codebase search"
1840
1632
  echo " /analyze <target> # Deep analysis mode"
@@ -1871,12 +1663,11 @@ echo " # Or run this install script again:"
1871
1663
  echo " curl -fsSL https://raw.githubusercontent.com/Yeachan-Heo/oh-my-claude-sisyphus/main/scripts/install.sh | bash"
1872
1664
  echo ""
1873
1665
  echo -e "${YELLOW}After Updates:${NC}"
1874
- echo " Run '/omc-default' (project) or '/omc-default-global' (global)"
1875
- echo " to download the latest CLAUDE.md configuration."
1876
- echo " This ensures you get the newest features and agent behaviors."
1666
+ echo " Run '/omc-setup' to download the latest CLAUDE.md configuration."
1667
+ echo " Use '--local' for project or '--global' for all projects."
1877
1668
  echo ""
1878
1669
  echo -e "${BLUE}Quick Start:${NC}"
1879
1670
  echo " 1. Run 'claude' to start Claude Code"
1880
- echo " 2. Type '/omc-default' for project config or '/omc-default-global' for global"
1671
+ echo " 2. Type '/omc-setup' for configuration wizard"
1881
1672
  echo " 3. Or use '/sisyphus <task>' for one-time activation"
1882
1673
  echo ""
@@ -137,7 +137,7 @@ function activateUltraworkState(directory, prompt) {
137
137
  last_checked_at: new Date().toISOString()
138
138
  };
139
139
 
140
- // Write to local .omc directory
140
+ // Write to local .sisyphus directory
141
141
  const localDir = join(directory, '.omc');
142
142
  if (!existsSync(localDir)) {
143
143
  try { mkdirSync(localDir, { recursive: true }); } catch {}
@@ -55,7 +55,7 @@ function writeJsonFile(path, data) {
55
55
 
56
56
  // Read PRD and get status
57
57
  function getPrdStatus(projectDir) {
58
- // Check both root and .omc for prd.json
58
+ // Check both root and .sisyphus for prd.json
59
59
  const paths = [
60
60
  join(projectDir, 'prd.json'),
61
61
  join(projectDir, '.omc', 'prd.json')
@@ -18,10 +18,10 @@ function printTest(testName: string, passed: boolean) {
18
18
  async function runTests() {
19
19
  console.log('\n=== Testing Mutual Exclusion Between UltraQA and Ralph Loop ===\n');
20
20
 
21
- // Create temp directory with .omc subfolder
22
- const tempDir = mkdtempSync(join(tmpdir(), 'omc-test-'));
23
- const omcDir = join(tempDir, '.omc');
24
- mkdirSync(omcDir, { recursive: true });
21
+ // Create temp directory with .sisyphus subfolder
22
+ const tempDir = mkdtempSync(join(tmpdir(), 'sisyphus-test-'));
23
+ const sisyphusDir = join(tempDir, '.sisyphus');
24
+ mkdirSync(sisyphusDir, { recursive: true });
25
25
 
26
26
  console.log(`Using temp directory: ${tempDir}\n`);
27
27
 
@@ -5,8 +5,8 @@ import { spawn } from 'child_process';
5
5
 
6
6
  // Create test directory
7
7
  const testDir = join(tmpdir(), `remember-tag-test-${Date.now()}`);
8
- const omcDir = join(testDir, '.omc');
9
- mkdirSync(omcDir, { recursive: true });
8
+ const sisyphusDir = join(testDir, '.sisyphus');
9
+ mkdirSync(sisyphusDir, { recursive: true });
10
10
 
11
11
  console.log('Testing remember tag processing in post-tool-verifier.mjs\n');
12
12
 
@@ -50,7 +50,7 @@ try {
50
50
 
51
51
  await runHook(input1);
52
52
 
53
- const notepadPath = join(omcDir, 'notepad.md');
53
+ const notepadPath = join(sisyphusDir, 'notepad.md');
54
54
  if (existsSync(notepadPath)) {
55
55
  const content = readFileSync(notepadPath, 'utf-8');
56
56
  if (content.includes('pnpm') && content.includes('Working Memory')) {
@@ -78,7 +78,7 @@ try {
78
78
 
79
79
  await runHook(input2);
80
80
 
81
- const notepadPath = join(omcDir, 'notepad.md');
81
+ const notepadPath = join(sisyphusDir, 'notepad.md');
82
82
  const content = readFileSync(notepadPath, 'utf-8');
83
83
  if (content.includes('API endpoint') && content.includes('Priority Context')) {
84
84
  console.log('✓ PASS: Priority remember tag saved to Priority Context\n');
@@ -95,7 +95,7 @@ console.log('Test 3: Non-Task tool should not process tags');
95
95
  try {
96
96
  // Clean up first
97
97
  rmSync(testDir, { recursive: true });
98
- mkdirSync(omcDir, { recursive: true });
98
+ mkdirSync(sisyphusDir, { recursive: true });
99
99
 
100
100
  const input3 = {
101
101
  toolName: 'Bash',
@@ -106,7 +106,7 @@ try {
106
106
 
107
107
  await runHook(input3);
108
108
 
109
- const notepadPath = join(omcDir, 'notepad.md');
109
+ const notepadPath = join(sisyphusDir, 'notepad.md');
110
110
  if (!existsSync(notepadPath)) {
111
111
  console.log('✓ PASS: Bash tool did not trigger remember tag processing\n');
112
112
  } else {
@@ -4,8 +4,8 @@ import { join } from 'path';
4
4
 
5
5
  // Create test notepad
6
6
  const testDir = join(tmpdir(), `session-test-${Date.now()}`);
7
- const omcDir = join(testDir, '.omc');
8
- mkdirSync(omcDir, { recursive: true });
7
+ const sisyphusDir = join(testDir, '.sisyphus');
8
+ mkdirSync(sisyphusDir, { recursive: true });
9
9
 
10
10
  const notepadContent = `# Notepad
11
11
 
@@ -22,10 +22,10 @@ Some working memory entry
22
22
  User notes here
23
23
  `;
24
24
 
25
- writeFileSync(join(omcDir, 'notepad.md'), notepadContent);
25
+ writeFileSync(join(sisyphusDir, 'notepad.md'), notepadContent);
26
26
 
27
27
  // Test priority context extraction (mimics session-start.mjs logic)
28
- const content = readFileSync(join(omcDir, 'notepad.md'), 'utf-8');
28
+ const content = readFileSync(join(sisyphusDir, 'notepad.md'), 'utf-8');
29
29
  const priorityMatch = content.match(/## Priority Context\n([\s\S]*?)(?=\n## [^#]|$)/);
30
30
  const cleanContent = priorityMatch ? priorityMatch[1].replace(/<!--[\s\S]*?-->/g, '').trim() : '';
31
31
 
@@ -63,8 +63,6 @@ rm -f "$CLAUDE_CONFIG_DIR/agents/prometheus.md"
63
63
  # Remove commands
64
64
  echo -e "${BLUE}Removing commands...${NC}"
65
65
  rm -f "$CLAUDE_CONFIG_DIR/commands/sisyphus.md"
66
- rm -f "$CLAUDE_CONFIG_DIR/commands/sisyphus-default.md"
67
- rm -f "$CLAUDE_CONFIG_DIR/commands/sisyphus-default-global.md"
68
66
  rm -f "$CLAUDE_CONFIG_DIR/commands/ultrawork.md"
69
67
  rm -f "$CLAUDE_CONFIG_DIR/commands/deepsearch.md"
70
68
  rm -f "$CLAUDE_CONFIG_DIR/commands/analyze.md"
@@ -72,8 +70,6 @@ rm -f "$CLAUDE_CONFIG_DIR/commands/plan.md"
72
70
  rm -f "$CLAUDE_CONFIG_DIR/commands/review.md"
73
71
  rm -f "$CLAUDE_CONFIG_DIR/commands/prometheus.md"
74
72
  rm -f "$CLAUDE_CONFIG_DIR/commands/orchestrator.md"
75
- rm -f "$CLAUDE_CONFIG_DIR/commands/ralph-loop.md"
76
- rm -f "$CLAUDE_CONFIG_DIR/commands/cancel-ralph.md"
77
73
  rm -f "$CLAUDE_CONFIG_DIR/commands/update.md"
78
74
 
79
75
  # Remove skills
@@ -114,7 +114,7 @@ Optional settings in `.claude/settings.json`:
114
114
  ## Cancellation
115
115
 
116
116
  ```
117
- /oh-my-claudecode:cancel-autopilot
117
+ /oh-my-claudecode:cancel
118
118
  ```
119
119
 
120
120
  Or say: "stop", "cancel", "abort"
@@ -38,6 +38,8 @@ The skill checks state files to determine what's active:
38
38
  - `.omc/swarm-state.json` → Swarm detected
39
39
  - `.omc/ultrapilot-state.json` → Ultrapilot detected
40
40
  - `.omc/pipeline-state.json` → Pipeline detected
41
+ - `.omc/state/plan-consensus.json` → Plan Consensus detected
42
+ - `.omc/ralplan-state.json` → Plan Consensus detected (legacy)
41
43
 
42
44
  If multiple modes are active, they're cancelled in order of dependency:
43
45
  1. Autopilot (includes ralph/ultraqa/ecomode cleanup)
@@ -48,6 +50,7 @@ If multiple modes are active, they're cancelled in order of dependency:
48
50
  6. Swarm (standalone)
49
51
  7. Ultrapilot (standalone)
50
52
  8. Pipeline (standalone)
53
+ 9. Plan Consensus (standalone)
51
54
 
52
55
  ## Force Clear All
53
56
 
@@ -73,6 +76,8 @@ This removes all state files:
73
76
  - `.omc/state/swarm-tasks.json`
74
77
  - `.omc/ultrapilot-state.json`
75
78
  - `.omc/pipeline-state.json`
79
+ - `.omc/state/plan-consensus.json`
80
+ - `.omc/ralplan-state.json`
76
81
  - `~/.claude/ralph-state.json`
77
82
  - `~/.claude/ultrawork-state.json`
78
83
  - `~/.claude/ecomode-state.json`
@@ -120,6 +125,15 @@ fi
120
125
  if [[ -f .omc/ultraqa-state.json ]]; then
121
126
  ULTRAQA_ACTIVE=$(cat .omc/ultraqa-state.json | jq -r '.active // false')
122
127
  fi
128
+
129
+ PLAN_CONSENSUS_ACTIVE=false
130
+
131
+ # Check both new and legacy locations
132
+ if [[ -f .omc/state/plan-consensus.json ]]; then
133
+ PLAN_CONSENSUS_ACTIVE=$(cat .omc/state/plan-consensus.json | jq -r '.active // false')
134
+ elif [[ -f .omc/ralplan-state.json ]]; then
135
+ PLAN_CONSENSUS_ACTIVE=$(cat .omc/ralplan-state.json | jq -r '.active // false')
136
+ fi
123
137
  ```
124
138
 
125
139
  ### 3A. Force Mode (if --force or --all)
@@ -140,6 +154,8 @@ if [[ "$FORCE_MODE" == "true" ]]; then
140
154
  rm -f .omc/state/swarm-tasks.json
141
155
  rm -f .omc/ultrapilot-state.json
142
156
  rm -f .omc/pipeline-state.json
157
+ rm -f .omc/state/plan-consensus.json
158
+ rm -f .omc/ralplan-state.json
143
159
 
144
160
  # Remove global state files
145
161
  rm -f ~/.claude/ralph-state.json
@@ -308,6 +324,8 @@ if [[ "$FORCE_MODE" == "true" ]]; then
308
324
  rm -f .omc/state/swarm-tasks.json
309
325
  rm -f .omc/ultrapilot-state.json
310
326
  rm -f .omc/pipeline-state.json
327
+ rm -f .omc/state/plan-consensus.json
328
+ rm -f .omc/ralplan-state.json
311
329
 
312
330
  # Remove global state files
313
331
  rm -f ~/.claude/ralph-state.json
@@ -526,6 +544,20 @@ if [[ -f .omc/pipeline-state.json ]]; then
526
544
  fi
527
545
  fi
528
546
 
547
+ # 9. Check Plan Consensus (standalone)
548
+ if [[ "$PLAN_CONSENSUS_ACTIVE" == "true" ]]; then
549
+ echo "Cancelling Plan Consensus mode..."
550
+
551
+ # Clear state files
552
+ rm -f .omc/state/plan-consensus.json
553
+ rm -f .omc/ralplan-state.json
554
+
555
+ echo "Plan Consensus cancelled. Planning session ended."
556
+ echo "Note: Plan file preserved at path specified in state."
557
+ CANCELLED_ANYTHING=true
558
+ exit 0
559
+ fi
560
+
529
561
  # No active modes found
530
562
  if [[ "$CANCELLED_ANYTHING" == "false" ]]; then
531
563
  echo "No active OMC modes detected."
@@ -539,6 +571,7 @@ if [[ "$CANCELLED_ANYTHING" == "false" ]]; then
539
571
  echo " - Swarm (.omc/swarm-state.json)"
540
572
  echo " - Ultrapilot (.omc/ultrapilot-state.json)"
541
573
  echo " - Pipeline (.omc/pipeline-state.json)"
574
+ echo " - Plan Consensus (.omc/state/plan-consensus.json)"
542
575
  echo ""
543
576
  echo "Use --force to clear all state files anyway."
544
577
  fi
@@ -556,6 +589,7 @@ fi
556
589
  | Swarm | "Swarm cancelled. Coordinated agents stopped." |
557
590
  | Ultrapilot | "Ultrapilot cancelled. Parallel autopilot workers stopped." |
558
591
  | Pipeline | "Pipeline cancelled. Sequential agent chain stopped." |
592
+ | Plan Consensus | "Plan Consensus cancelled. Planning session ended." |
559
593
  | Force | "All OMC modes cleared. You are free to start fresh." |
560
594
  | None | "No active OMC modes detected." |
561
595
 
@@ -570,6 +604,7 @@ fi
570
604
  | Swarm | No | N/A |
571
605
  | Ultrapilot | No | N/A |
572
606
  | Pipeline | No | N/A |
607
+ | Plan Consensus | Yes (plan file path preserved) | N/A |
573
608
 
574
609
  ## Notes
575
610
 
@@ -91,7 +91,7 @@ ls -la ~/.claude/skills/ 2>/dev/null
91
91
 
92
92
  Look for files like:
93
93
  - `architect.md`, `researcher.md`, `explore.md`, `executor.md`, etc. in agents/
94
- - `ultrawork.md`, `omc-default.md`, `omc-default-global.md`, `deepsearch.md`, etc. in commands/
94
+ - `ultrawork.md`, `deepsearch.md`, etc. in commands/
95
95
  - Any oh-my-claudecode-related `.md` files in skills/
96
96
 
97
97
  ---
@@ -51,7 +51,7 @@ This is the **only command** you need to know. It downloads the configuration an
51
51
 
52
52
  ## For 2.x Users
53
53
 
54
- Your old commands still work! `/ralph`, `/ultrawork`, `/planner`, etc. all function exactly as before.
54
+ Your old commands still work! `/ralph`, `/ultrawork`, `/plan`, etc. all function exactly as before.
55
55
 
56
56
  But now you don't NEED them - everything is automatic.
57
57
 
@@ -62,4 +62,4 @@ But now you don't NEED them - everything is automatic.
62
62
 
63
63
  ---
64
64
 
65
- *Version: 3.4.0*
65
+ *Version: 3.5.5*
@@ -46,11 +46,21 @@ if [ -n "$PLUGIN_VERSION" ]; then
46
46
  fi
47
47
  ```
48
48
 
49
- **If NOT_BUILT**, the plugin needs to be compiled. Run:
49
+ **⚠️ CRITICAL: If NOT_BUILT, the plugin MUST be compiled before the HUD can work!**
50
+
51
+ **WHY THIS HAPPENS:** The `dist/` directory contains compiled TypeScript code and is NOT stored on GitHub (it's in .gitignore). When you install the plugin from the marketplace, the build step happens automatically via the `prepare` script during `npm install`. However, if the plugin wasn't properly installed or the build failed, you'll get this error.
52
+
53
+ **THE FIX:** Run npm install in the plugin directory to build it:
50
54
  ```bash
51
55
  cd ~/.claude/plugins/cache/omc/oh-my-claudecode/$PLUGIN_VERSION && npm install
52
56
  ```
53
- This will install dependencies and build the TypeScript code automatically (via the `prepare` script).
57
+
58
+ This will:
59
+ 1. Install all dependencies
60
+ 2. Run the `prepare` script which executes `npm run build`
61
+ 3. Generate the `dist/hud/index.js` file that the HUD wrapper needs
62
+
63
+ **DO NOT** try to download `dist/hud/index.js` from GitHub raw URLs - it doesn't exist there!
54
64
 
55
65
  **Step 3:** If omc-hud.mjs is MISSING or argument is `setup`, create the HUD directory and script:
56
66
 
@@ -74,6 +84,7 @@ import { join } from "node:path";
74
84
 
75
85
  async function main() {
76
86
  const home = homedir();
87
+ let pluginCacheDir = null;
77
88
 
78
89
  // 1. Try plugin cache first (marketplace: omc, plugin: oh-my-claudecode)
79
90
  const pluginCacheBase = join(home, ".claude/plugins/cache/omc/oh-my-claudecode");
@@ -82,7 +93,8 @@ async function main() {
82
93
  const versions = readdirSync(pluginCacheBase);
83
94
  if (versions.length > 0) {
84
95
  const latestVersion = versions.sort().reverse()[0];
85
- const pluginPath = join(pluginCacheBase, latestVersion, "dist/hud/index.js");
96
+ pluginCacheDir = join(pluginCacheBase, latestVersion);
97
+ const pluginPath = join(pluginCacheDir, "dist/hud/index.js");
86
98
  if (existsSync(pluginPath)) {
87
99
  await import(pluginPath);
88
100
  return;
@@ -108,8 +120,12 @@ async function main() {
108
120
  }
109
121
  }
110
122
 
111
- // 3. Fallback
112
- console.log("[OMC] run /omc-setup to install properly");
123
+ // 3. Fallback - HUD not found (provide actionable error message)
124
+ if (pluginCacheDir) {
125
+ console.log(`[OMC] HUD not built. Run: cd "${pluginCacheDir}" && npm install`);
126
+ } else {
127
+ console.log("[OMC] Plugin not found. Run: /oh-my-claudecode:omc-setup");
128
+ }
113
129
  }
114
130
 
115
131
  main();