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.
- package/commands/doctor.md +1 -1
- package/commands/ecomode.md +1 -2
- package/commands/help.md +1 -1
- package/commands/hud.md +21 -5
- package/commands/learn-about-omc.md +5 -0
- package/commands/mcp-setup.md +64 -75
- package/commands/omc-setup.md +38 -4
- package/commands/ralplan.md +1 -1
- package/commands/research.md +2 -2
- package/commands/ultraqa.md +1 -1
- package/dist/__tests__/analytics/transcript-token-extractor.test.js +4 -2
- package/dist/__tests__/analytics/transcript-token-extractor.test.js.map +1 -1
- package/dist/__tests__/delegation-enforcer-integration.test.d.ts +4 -0
- package/dist/__tests__/delegation-enforcer-integration.test.d.ts.map +1 -1
- package/dist/__tests__/delegation-enforcer-integration.test.js +5 -1
- package/dist/__tests__/delegation-enforcer-integration.test.js.map +1 -1
- package/dist/__tests__/hud/analytics-display.test.d.ts +2 -0
- package/dist/__tests__/hud/analytics-display.test.d.ts.map +1 -0
- package/dist/__tests__/hud/analytics-display.test.js +101 -0
- package/dist/__tests__/hud/analytics-display.test.js.map +1 -0
- package/dist/__tests__/skills.test.js +17 -19
- package/dist/__tests__/skills.test.js.map +1 -1
- package/dist/cli/analytics.js +1 -26
- package/dist/cli/analytics.js.map +1 -1
- package/dist/hooks/auto-slash-command/constants.d.ts.map +1 -1
- package/dist/hooks/auto-slash-command/constants.js +1 -4
- package/dist/hooks/auto-slash-command/constants.js.map +1 -1
- package/dist/hooks/ralph/loop.js +1 -1
- package/dist/hooks/ralph/loop.js.map +1 -1
- package/dist/hooks/ultraqa/index.js +1 -1
- package/dist/hooks/ultraqa/index.js.map +1 -1
- package/dist/hud/analytics-display.d.ts.map +1 -1
- package/dist/hud/analytics-display.js +5 -6
- package/dist/hud/analytics-display.js.map +1 -1
- package/dist/hud/index.js +94 -37
- package/dist/hud/index.js.map +1 -1
- package/dist/hud/render.js +1 -1
- package/dist/hud/render.js.map +1 -1
- package/dist/installer/index.d.ts.map +1 -1
- package/dist/installer/index.js +21 -3
- package/dist/installer/index.js.map +1 -1
- package/docs/CLAUDE.md +9 -16
- package/docs/FULL-README.md +49 -56
- package/docs/MIGRATION.md +96 -1
- package/hooks/keyword-detector.sh +1 -1
- package/package.json +1 -1
- package/scripts/install.sh +8 -217
- package/scripts/keyword-detector.mjs +1 -1
- package/scripts/persistent-mode.mjs +1 -1
- package/scripts/test-mutual-exclusion.ts +4 -4
- package/scripts/test-remember-tags.ts +6 -6
- package/scripts/test-session-injection.ts +4 -4
- package/scripts/uninstall.sh +0 -4
- package/skills/autopilot/SKILL.md +1 -1
- package/skills/cancel/SKILL.md +35 -0
- package/skills/doctor/SKILL.md +1 -1
- package/skills/help/SKILL.md +2 -2
- package/skills/hud/SKILL.md +21 -5
- package/skills/learn-about-omc/SKILL.md +128 -0
- package/skills/omc-setup/SKILL.md +9 -34
- package/skills/ralplan/SKILL.md +19 -250
- package/skills/research/SKILL.md +2 -2
- package/skills/ultrapilot/SKILL.md +1 -1
- package/skills/ultraqa/SKILL.md +1 -1
- package/commands/cancel-autopilot.md +0 -35
- package/commands/cancel-ecomode.md +0 -71
- package/commands/cancel-ralph.md +0 -41
- package/commands/cancel-ultraqa.md +0 -27
- package/commands/cancel-ultrawork.md +0 -40
- package/commands/planner.md +0 -174
- package/skills/cancel-autopilot/SKILL.md +0 -52
- package/skills/cancel-ecomode/SKILL.md +0 -41
- package/skills/cancel-ralph/SKILL.md +0 -42
- package/skills/cancel-ultraqa/SKILL.md +0 -28
- package/skills/cancel-ultrawork/SKILL.md +0 -41
- package/skills/omc-default/SKILL.md +0 -77
- package/skills/omc-default-global/SKILL.md +0 -74
- package/skills/planner/SKILL.md +0 -105
package/scripts/install.sh
CHANGED
|
@@ -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
|
-
|
|
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-
|
|
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
|
|
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
|
|
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-
|
|
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-
|
|
1875
|
-
echo "
|
|
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-
|
|
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 .
|
|
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 .
|
|
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 .
|
|
22
|
-
const tempDir = mkdtempSync(join(tmpdir(), '
|
|
23
|
-
const
|
|
24
|
-
mkdirSync(
|
|
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
|
|
9
|
-
mkdirSync(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
|
8
|
-
mkdirSync(
|
|
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(
|
|
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(
|
|
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
|
|
package/scripts/uninstall.sh
CHANGED
|
@@ -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
|
package/skills/cancel/SKILL.md
CHANGED
|
@@ -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
|
|
package/skills/doctor/SKILL.md
CHANGED
|
@@ -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`, `
|
|
94
|
+
- `ultrawork.md`, `deepsearch.md`, etc. in commands/
|
|
95
95
|
- Any oh-my-claudecode-related `.md` files in skills/
|
|
96
96
|
|
|
97
97
|
---
|
package/skills/help/SKILL.md
CHANGED
|
@@ -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`, `/
|
|
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.
|
|
65
|
+
*Version: 3.5.5*
|
package/skills/hud/SKILL.md
CHANGED
|
@@ -46,11 +46,21 @@ if [ -n "$PLUGIN_VERSION" ]; then
|
|
|
46
46
|
fi
|
|
47
47
|
```
|
|
48
48
|
|
|
49
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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();
|