oh-my-claude-sisyphus 3.0.8 → 3.0.10

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.
@@ -0,0 +1,190 @@
1
+ ---
2
+ description: Diagnose and fix oh-my-claudecode installation issues
3
+ ---
4
+
5
+ # Doctor Skill
6
+
7
+ ## Task: Run Installation Diagnostics
8
+
9
+ You are the OMC Doctor - diagnose and fix installation issues.
10
+
11
+ ### Step 1: Check Plugin Version
12
+
13
+ ```bash
14
+ # Get installed version
15
+ INSTALLED=$(ls ~/.claude/plugins/cache/omc/oh-my-claudecode/ 2>/dev/null | sort -V | tail -1)
16
+ echo "Installed: $INSTALLED"
17
+
18
+ # Get latest from npm
19
+ LATEST=$(npm view oh-my-claudecode version 2>/dev/null)
20
+ echo "Latest: $LATEST"
21
+ ```
22
+
23
+ **Diagnosis**:
24
+ - If no version installed: CRITICAL - plugin not installed
25
+ - If INSTALLED != LATEST: WARN - outdated plugin
26
+ - If multiple versions exist: WARN - stale cache
27
+
28
+ ### Step 2: Check for Legacy Hooks in settings.json
29
+
30
+ Read `~/.claude/settings.json` and check if there's a `"hooks"` key with entries like:
31
+ - `bash $HOME/.claude/hooks/keyword-detector.sh`
32
+ - `bash $HOME/.claude/hooks/persistent-mode.sh`
33
+ - `bash $HOME/.claude/hooks/session-start.sh`
34
+
35
+ **Diagnosis**:
36
+ - If found: CRITICAL - legacy hooks causing duplicates
37
+
38
+ ### Step 3: Check for Legacy Bash Hook Scripts
39
+
40
+ ```bash
41
+ ls -la ~/.claude/hooks/*.sh 2>/dev/null
42
+ ```
43
+
44
+ **Diagnosis**:
45
+ - If `keyword-detector.sh`, `persistent-mode.sh`, `session-start.sh`, or `stop-continuation.sh` exist: WARN - legacy scripts (can cause confusion)
46
+
47
+ ### Step 4: Check CLAUDE.md
48
+
49
+ ```bash
50
+ # Check if CLAUDE.md exists
51
+ ls -la ~/.claude/CLAUDE.md 2>/dev/null
52
+
53
+ # Check for OMC marker
54
+ grep -q "oh-my-claudecode Multi-Agent System" ~/.claude/CLAUDE.md 2>/dev/null && echo "Has OMC config" || echo "Missing OMC config"
55
+ ```
56
+
57
+ **Diagnosis**:
58
+ - If missing: CRITICAL - CLAUDE.md not configured
59
+ - If missing OMC marker: WARN - outdated CLAUDE.md
60
+
61
+ ### Step 5: Check for Stale Plugin Cache
62
+
63
+ ```bash
64
+ # Count versions in cache
65
+ ls ~/.claude/plugins/cache/omc/oh-my-claudecode/ 2>/dev/null | wc -l
66
+ ```
67
+
68
+ **Diagnosis**:
69
+ - If > 1 version: WARN - multiple cached versions (cleanup recommended)
70
+
71
+ ### Step 6: Check for Legacy Curl-Installed Content
72
+
73
+ Check for legacy agents, commands, and skills installed via curl (before plugin system):
74
+
75
+ ```bash
76
+ # Check for legacy agents directory
77
+ ls -la ~/.claude/agents/ 2>/dev/null
78
+
79
+ # Check for legacy commands directory
80
+ ls -la ~/.claude/commands/ 2>/dev/null
81
+
82
+ # Check for legacy skills directory
83
+ ls -la ~/.claude/skills/ 2>/dev/null
84
+ ```
85
+
86
+ **Diagnosis**:
87
+ - If `~/.claude/agents/` exists with oh-my-claudecode-related files: WARN - legacy agents (now provided by plugin)
88
+ - If `~/.claude/commands/` exists with oh-my-claudecode-related files: WARN - legacy commands (now provided by plugin)
89
+ - If `~/.claude/skills/` exists with oh-my-claudecode-related files: WARN - legacy skills (now provided by plugin)
90
+
91
+ Look for files like:
92
+ - `architect.md`, `researcher.md`, `explore.md`, `executor.md`, etc. in agents/
93
+ - `ultrawork.md`, `omc-default.md`, `omc-default-global.md`, `deepsearch.md`, etc. in commands/
94
+ - Any oh-my-claudecode-related `.md` files in skills/
95
+
96
+ ---
97
+
98
+ ## Report Format
99
+
100
+ After running all checks, output a report:
101
+
102
+ ```
103
+ ## OMC Doctor Report
104
+
105
+ ### Summary
106
+ [HEALTHY / ISSUES FOUND]
107
+
108
+ ### Checks
109
+
110
+ | Check | Status | Details |
111
+ |-------|--------|---------|
112
+ | Plugin Version | OK/WARN/CRITICAL | ... |
113
+ | Legacy Hooks (settings.json) | OK/CRITICAL | ... |
114
+ | Legacy Scripts (~/.claude/hooks/) | OK/WARN | ... |
115
+ | CLAUDE.md | OK/WARN/CRITICAL | ... |
116
+ | Plugin Cache | OK/WARN | ... |
117
+ | Legacy Agents (~/.claude/agents/) | OK/WARN | ... |
118
+ | Legacy Commands (~/.claude/commands/) | OK/WARN | ... |
119
+ | Legacy Skills (~/.claude/skills/) | OK/WARN | ... |
120
+
121
+ ### Issues Found
122
+ 1. [Issue description]
123
+ 2. [Issue description]
124
+
125
+ ### Recommended Fixes
126
+ [List fixes based on issues]
127
+ ```
128
+
129
+ ---
130
+
131
+ ## Auto-Fix (if user confirms)
132
+
133
+ If issues found, ask user: "Would you like me to fix these issues automatically?"
134
+
135
+ If yes, apply fixes:
136
+
137
+ ### Fix: Legacy Hooks in settings.json
138
+ Remove the `"hooks"` section from `~/.claude/settings.json` (keep other settings intact)
139
+
140
+ ### Fix: Legacy Bash Scripts
141
+ ```bash
142
+ rm -f ~/.claude/hooks/keyword-detector.sh
143
+ rm -f ~/.claude/hooks/persistent-mode.sh
144
+ rm -f ~/.claude/hooks/session-start.sh
145
+ rm -f ~/.claude/hooks/stop-continuation.sh
146
+ ```
147
+
148
+ ### Fix: Outdated Plugin
149
+ ```bash
150
+ rm -rf ~/.claude/plugins/cache/oh-my-claudecode
151
+ echo "Plugin cache cleared. Restart Claude Code to fetch latest version."
152
+ ```
153
+
154
+ ### Fix: Stale Cache (multiple versions)
155
+ ```bash
156
+ # Keep only latest version
157
+ cd ~/.claude/plugins/cache/omc/oh-my-claudecode/
158
+ ls | sort -V | head -n -1 | xargs rm -rf
159
+ ```
160
+
161
+ ### Fix: Missing/Outdated CLAUDE.md
162
+ Fetch latest from GitHub and write to `~/.claude/CLAUDE.md`:
163
+ ```
164
+ WebFetch(url: "https://raw.githubusercontent.com/Yeachan-Heo/oh-my-claudecode/main/docs/CLAUDE.md", prompt: "Return the complete raw markdown content exactly as-is")
165
+ ```
166
+
167
+ ### Fix: Legacy Curl-Installed Content
168
+
169
+ Remove legacy agents, commands, and skills directories (now provided by plugin):
170
+
171
+ ```bash
172
+ # Backup first (optional - ask user)
173
+ # mv ~/.claude/agents ~/.claude/agents.bak
174
+ # mv ~/.claude/commands ~/.claude/commands.bak
175
+ # mv ~/.claude/skills ~/.claude/skills.bak
176
+
177
+ # Or remove directly
178
+ rm -rf ~/.claude/agents
179
+ rm -rf ~/.claude/commands
180
+ rm -rf ~/.claude/skills
181
+ ```
182
+
183
+ **Note**: Only remove if these contain oh-my-claudecode-related files. If user has custom agents/commands/skills, warn them and ask before removing.
184
+
185
+ ---
186
+
187
+ ## Post-Fix
188
+
189
+ After applying fixes, inform user:
190
+ > Fixes applied. **Restart Claude Code** for changes to take effect.
@@ -0,0 +1,64 @@
1
+ ---
2
+ description: Guide on using oh-my-claudecode plugin
3
+ ---
4
+
5
+ # How OMC Works
6
+
7
+ **You don't need to learn any commands!** OMC enhances Claude Code with intelligent behaviors that activate automatically.
8
+
9
+ ## What Happens Automatically
10
+
11
+ | When You... | I Automatically... |
12
+ |-------------|-------------------|
13
+ | Give me a complex task | Parallelize and delegate to specialist agents |
14
+ | Ask me to plan something | Start a planning interview |
15
+ | Need something done completely | Persist until verified complete |
16
+ | Work on UI/frontend | Activate design sensibility |
17
+ | Say "stop" or "cancel" | Intelligently stop current operation |
18
+
19
+ ## Magic Keywords (Optional Shortcuts)
20
+
21
+ You can include these words naturally in your request for explicit control:
22
+
23
+ | Keyword | Effect | Example |
24
+ |---------|--------|---------|
25
+ | **ralph** | Persistence mode | "ralph: fix all the bugs" |
26
+ | **ralplan** | Iterative planning | "ralplan this feature" |
27
+ | **ulw** | Max parallelism | "ulw refactor the API" |
28
+ | **plan** | Planning interview | "plan the new endpoints" |
29
+
30
+ **Combine them:** "ralph ulw: migrate the database"
31
+
32
+ ## Stopping Things
33
+
34
+ Just say:
35
+ - "stop"
36
+ - "cancel"
37
+ - "abort"
38
+
39
+ I'll figure out what to stop based on context.
40
+
41
+ ## First Time Setup
42
+
43
+ If you haven't configured OMC yet:
44
+
45
+ ```
46
+ /oh-my-claudecode:omc-setup
47
+ ```
48
+
49
+ This is the **only command** you need to know. It downloads the configuration and you're done.
50
+
51
+ ## For 2.x Users
52
+
53
+ Your old commands still work! `/ralph`, `/ultrawork`, `/planner`, etc. all function exactly as before.
54
+
55
+ But now you don't NEED them - everything is automatic.
56
+
57
+ ## Need More Help?
58
+
59
+ - **README**: https://github.com/Yeachan-Heo/oh-my-claudecode
60
+ - **Issues**: https://github.com/Yeachan-Heo/oh-my-claudecode/issues
61
+
62
+ ---
63
+
64
+ *Version: 3.0.0*
@@ -0,0 +1,235 @@
1
+ ---
2
+ description: Configure HUD display options (layout, presets, display elements)
3
+ ---
4
+
5
+ # HUD Skill
6
+
7
+ Configure the OMC HUD (Heads-Up Display) for the statusline.
8
+
9
+ ## Quick Commands
10
+
11
+ | Command | Description |
12
+ |---------|-------------|
13
+ | `/hud` | Show current HUD status (auto-setup if needed) |
14
+ | `/hud setup` | Install/repair HUD statusline |
15
+ | `/hud minimal` | Switch to minimal display |
16
+ | `/hud focused` | Switch to focused display (default) |
17
+ | `/hud full` | Switch to full display |
18
+ | `/hud status` | Show detailed HUD status |
19
+
20
+ ## Auto-Setup
21
+
22
+ When you run `/hud` or `/hud setup`, the system will automatically:
23
+ 1. Check if `~/.claude/hud/omc-hud.mjs` exists
24
+ 2. Check if `statusLine` is configured in `~/.claude/settings.json`
25
+ 3. If missing, create the HUD wrapper script and configure settings
26
+ 4. Report status and prompt to restart Claude Code if changes were made
27
+
28
+ **IMPORTANT**: If the argument is `setup` OR if the HUD script doesn't exist at `~/.claude/hud/omc-hud.mjs`, you MUST create the HUD files directly using the instructions below.
29
+
30
+ ### Setup Instructions (Run These Commands)
31
+
32
+ **Step 1:** Check if setup is needed:
33
+ ```bash
34
+ ls ~/.claude/hud/omc-hud.mjs 2>/dev/null && echo "EXISTS" || echo "MISSING"
35
+ ```
36
+
37
+ **Step 2:** Check if the plugin is built (CRITICAL - common issue!):
38
+ ```bash
39
+ # Find the latest version and check if dist/hud/index.js exists
40
+ PLUGIN_VERSION=$(ls ~/.claude/plugins/cache/omc/oh-my-claudecode/ 2>/dev/null | sort -V | tail -1)
41
+ if [ -n "$PLUGIN_VERSION" ]; then
42
+ ls ~/.claude/plugins/cache/omc/oh-my-claudecode/$PLUGIN_VERSION/dist/hud/index.js 2>/dev/null && echo "BUILT" || echo "NOT_BUILT"
43
+ fi
44
+ ```
45
+
46
+ **If NOT_BUILT**, the plugin needs to be compiled. Run:
47
+ ```bash
48
+ cd ~/.claude/plugins/cache/omc/oh-my-claudecode/$PLUGIN_VERSION && npm install
49
+ ```
50
+ This will install dependencies and build the TypeScript code automatically (via the `prepare` script).
51
+
52
+ **Step 3:** If omc-hud.mjs is MISSING or argument is `setup`, create the HUD directory and script:
53
+
54
+ First, create the directory:
55
+ ```bash
56
+ mkdir -p ~/.claude/hud
57
+ ```
58
+
59
+ Then, use the Write tool to create `~/.claude/hud/omc-hud.mjs` with this exact content:
60
+
61
+ ```javascript
62
+ #!/usr/bin/env node
63
+ /**
64
+ * OMC HUD - Statusline Script
65
+ * Wrapper that imports from plugin cache or development paths
66
+ */
67
+
68
+ import { existsSync, readdirSync } from "node:fs";
69
+ import { homedir } from "node:os";
70
+ import { join } from "node:path";
71
+
72
+ async function main() {
73
+ const home = homedir();
74
+
75
+ // 1. Try plugin cache first (marketplace: omc, plugin: oh-my-claudecode)
76
+ const pluginCacheBase = join(home, ".claude/plugins/cache/omc/oh-my-claudecode");
77
+ if (existsSync(pluginCacheBase)) {
78
+ try {
79
+ const versions = readdirSync(pluginCacheBase);
80
+ if (versions.length > 0) {
81
+ const latestVersion = versions.sort().reverse()[0];
82
+ const pluginPath = join(pluginCacheBase, latestVersion, "dist/hud/index.js");
83
+ if (existsSync(pluginPath)) {
84
+ await import(pluginPath);
85
+ return;
86
+ }
87
+ }
88
+ } catch { /* continue */ }
89
+ }
90
+
91
+ // 2. Development paths
92
+ const devPaths = [
93
+ join(home, "Workspace/oh-my-claude-sisyphus/dist/hud/index.js"),
94
+ join(home, "workspace/oh-my-claude-sisyphus/dist/hud/index.js"),
95
+ join(home, "Workspace/oh-my-claudecode/dist/hud/index.js"),
96
+ join(home, "workspace/oh-my-claudecode/dist/hud/index.js"),
97
+ ];
98
+
99
+ for (const devPath of devPaths) {
100
+ if (existsSync(devPath)) {
101
+ try {
102
+ await import(devPath);
103
+ return;
104
+ } catch { /* continue */ }
105
+ }
106
+ }
107
+
108
+ // 3. Fallback
109
+ console.log("[OMC] active");
110
+ }
111
+
112
+ main();
113
+ ```
114
+
115
+ **Step 3:** Make it executable:
116
+ ```bash
117
+ chmod +x ~/.claude/hud/omc-hud.mjs
118
+ ```
119
+
120
+ **Step 4:** Update settings.json to use the HUD:
121
+
122
+ Read `~/.claude/settings.json`, then update/add the `statusLine` field:
123
+ ```json
124
+ {
125
+ "statusLine": {
126
+ "type": "command",
127
+ "command": "node ~/.claude/hud/omc-hud.mjs"
128
+ }
129
+ }
130
+ ```
131
+
132
+ Use the Edit tool to add/update this field while preserving other settings.
133
+
134
+ **Step 5:** Clean up old HUD scripts (if any):
135
+ ```bash
136
+ rm -f ~/.claude/hud/sisyphus-hud.mjs 2>/dev/null
137
+ ```
138
+
139
+ **Step 6:** Tell the user to restart Claude Code for changes to take effect.
140
+
141
+ ## Display Presets
142
+
143
+ ### Minimal
144
+ Shows only the essentials:
145
+ ```
146
+ [OMC] ralph | ultrawork | todos:2/5
147
+ ```
148
+
149
+ ### Focused (Default)
150
+ Shows all relevant elements:
151
+ ```
152
+ [OMC] ralph:3/10 | US-002 | ultrawork skill:planner | ctx:67% | agents:2 | bg:3/5 | todos:2/5
153
+ ```
154
+
155
+ ### Full
156
+ Shows everything including multi-line agent details:
157
+ ```
158
+ [OMC] ralph:3/10 | US-002 (2/5) | ultrawork | ctx:[████░░]67% | agents:3 | bg:3/5 | todos:2/5
159
+ ├─ O architect 2m analyzing architecture patterns...
160
+ ├─ e explore 45s searching for test files
161
+ └─ s executor 1m implementing validation logic
162
+ ```
163
+
164
+ ## Multi-Line Agent Display
165
+
166
+ When agents are running, the HUD shows detailed information on separate lines:
167
+ - **Tree characters** (`├─`, `└─`) show visual hierarchy
168
+ - **Agent code** (O, e, s) indicates agent type with model tier color
169
+ - **Duration** shows how long each agent has been running
170
+ - **Description** shows what each agent is doing (up to 45 chars)
171
+
172
+ ## Display Elements
173
+
174
+ | Element | Description |
175
+ |---------|-------------|
176
+ | `[OMC]` | Mode identifier |
177
+ | `ralph:3/10` | Ralph loop iteration/max |
178
+ | `US-002` | Current PRD story ID |
179
+ | `ultrawork` | Active mode badge |
180
+ | `skill:name` | Last activated skill (cyan) |
181
+ | `ctx:67%` | Context window usage |
182
+ | `agents:2` | Running subagent count |
183
+ | `bg:3/5` | Background task slots |
184
+ | `todos:2/5` | Todo completion |
185
+
186
+ ## Color Coding
187
+
188
+ - **Green**: Normal/healthy
189
+ - **Yellow**: Warning (context >70%, ralph >7)
190
+ - **Red**: Critical (context >85%, ralph at max)
191
+
192
+ ## Configuration Location
193
+
194
+ HUD config is stored at: `~/.claude/.omc/hud-config.json`
195
+
196
+ ## Manual Configuration
197
+
198
+ You can manually edit the config file:
199
+
200
+ ```json
201
+ {
202
+ "preset": "focused",
203
+ "elements": {
204
+ "omcLabel": true,
205
+ "ralph": true,
206
+ "prdStory": true,
207
+ "activeSkills": true,
208
+ "lastSkill": true,
209
+ "contextBar": true,
210
+ "agents": true,
211
+ "backgroundTasks": true,
212
+ "todos": true
213
+ },
214
+ "thresholds": {
215
+ "contextWarning": 70,
216
+ "contextCritical": 85,
217
+ "ralphWarning": 7
218
+ }
219
+ }
220
+ ```
221
+
222
+ ## Troubleshooting
223
+
224
+ If the HUD is not showing:
225
+ 1. Run `/hud setup` to auto-install and configure
226
+ 2. Restart Claude Code after setup completes
227
+ 3. If still not working, run `/doctor` for full diagnostics
228
+
229
+ Manual verification:
230
+ - HUD script: `~/.claude/hud/omc-hud.mjs`
231
+ - Settings: `~/.claude/settings.json` should have `statusLine` configured
232
+
233
+ ---
234
+
235
+ *The HUD updates automatically every ~300ms during active sessions.*
@@ -0,0 +1,134 @@
1
+ ---
2
+ description: Extract a learned skill from the current conversation
3
+ ---
4
+
5
+ # Learner Skill
6
+
7
+ ## The Insight
8
+
9
+ Reusable skills are not code snippets to copy-paste, but **principles and decision-making heuristics** that teach Claude HOW TO THINK about a class of problems.
10
+
11
+ **The difference:**
12
+ - BAD (mimicking): "When you see ConnectionResetError, add this try/except block"
13
+ - GOOD (reusable skill): "In async network code, any I/O operation can fail independently due to client/server lifecycle mismatches. The principle: wrap each I/O operation separately, because failure between operations is the common case, not the exception."
14
+
15
+ A good skill changes how Claude APPROACHES problems, not just what code it produces.
16
+
17
+ ## Why This Matters
18
+
19
+ Before extracting a skill, ask yourself:
20
+ - "Could someone Google this in 5 minutes?" → If yes, STOP. Don't extract.
21
+ - "Is this specific to THIS codebase?" → If no, STOP. Don't extract.
22
+ - "Did this take real debugging effort to discover?" → If no, STOP. Don't extract.
23
+
24
+ If a potential skill fails any of these questions, it's not worth saving.
25
+
26
+ ## Recognition Pattern
27
+
28
+ Use /learner ONLY after:
29
+ - Solving a tricky bug that required deep investigation
30
+ - Discovering a non-obvious workaround specific to this codebase
31
+ - Finding a hidden gotcha that wastes time when forgotten
32
+ - Uncovering undocumented behavior that affects this project
33
+
34
+ ## The Approach
35
+
36
+ ### Extraction Process
37
+
38
+ **Step 1: Gather Required Information**
39
+
40
+ - **Problem Statement**: The SPECIFIC error, symptom, or confusion that occurred
41
+ - Include actual error messages, file paths, line numbers
42
+ - Example: "TypeError in src/hooks/session.ts:45 when sessionId is undefined after restart"
43
+
44
+ - **Solution**: The EXACT fix, not general advice
45
+ - Include code snippets, file paths, configuration changes
46
+ - Example: "Add null check before accessing session.user, regenerate session on 401"
47
+
48
+ - **Triggers**: Keywords that would appear when hitting this problem again
49
+ - Use error message fragments, file names, symptom descriptions
50
+ - Example: ["sessionId undefined", "session.ts TypeError", "401 session"]
51
+
52
+ - **Scope**: Almost always Project-level unless it's a truly universal insight
53
+
54
+ **Step 2: Quality Validation**
55
+
56
+ The system REJECTS skills that are:
57
+ - Too generic (no file paths, line numbers, or specific error messages)
58
+ - Easily Googleable (standard patterns, library usage)
59
+ - Vague solutions (no code snippets or precise instructions)
60
+ - Poor triggers (generic words that match everything)
61
+
62
+ **Step 3: Save Location**
63
+
64
+ - **User-level**: ~/.claude/skills/omc-learned/ - Rare. Only for truly portable insights.
65
+ - **Project-level**: .omc/skills/ - Default. Version-controlled with repo.
66
+
67
+ ### What Makes a USEFUL Skill
68
+
69
+ **CRITICAL**: Not every solution is worth saving. A good skill is:
70
+
71
+ 1. **Non-Googleable**: Something you couldn't easily find via search
72
+ - BAD: "How to read files in TypeScript" ❌
73
+ - GOOD: "This codebase uses custom path resolution in ESM that requires fileURLToPath + specific relative paths" ✓
74
+
75
+ 2. **Context-Specific**: References actual files, error messages, or patterns from THIS codebase
76
+ - BAD: "Use try/catch for error handling" ❌
77
+ - GOOD: "The aiohttp proxy in server.py:42 crashes on ClientDisconnectedError - wrap StreamResponse in try/except" ✓
78
+
79
+ 3. **Actionable with Precision**: Tells you exactly WHAT to do and WHERE
80
+ - BAD: "Handle edge cases" ❌
81
+ - GOOD: "When seeing 'Cannot find module' in dist/, check tsconfig.json moduleResolution matches package.json type field" ✓
82
+
83
+ 4. **Hard-Won**: Took significant debugging effort to discover
84
+ - BAD: Generic programming patterns ❌
85
+ - GOOD: "Race condition in worker.ts - the Promise.all at line 89 needs await before the map callback returns" ✓
86
+
87
+ ### Anti-Patterns (DO NOT EXTRACT)
88
+
89
+ - Generic programming patterns (use documentation instead)
90
+ - Refactoring techniques (these are universal)
91
+ - Library usage examples (use library docs)
92
+ - Type definitions or boilerplate
93
+ - Anything a junior dev could Google in 5 minutes
94
+
95
+ ## Skill Format
96
+
97
+ Skills are saved as markdown with this structure:
98
+
99
+ ### YAML Frontmatter
100
+
101
+ Standard metadata fields:
102
+ - id, name, description, source, triggers, quality
103
+
104
+ ### Body Structure (Required)
105
+
106
+ ```markdown
107
+ # [Skill Name]
108
+
109
+ ## The Insight
110
+ What is the underlying PRINCIPLE you discovered? Not the code, but the mental model.
111
+ Example: "Async I/O operations are independently failable. Client lifecycle != server lifecycle."
112
+
113
+ ## Why This Matters
114
+ What goes wrong if you don't know this? What symptom led you here?
115
+ Example: "Proxy server crashes on client disconnect, taking down other requests."
116
+
117
+ ## Recognition Pattern
118
+ How do you know when this skill applies? What are the signs?
119
+ Example: "Building any long-lived connection handler (proxy, websocket, SSE)"
120
+
121
+ ## The Approach
122
+ The decision-making heuristic, not just code. How should Claude THINK about this?
123
+ Example: "For each I/O operation, ask: what if this fails right now? Handle it locally."
124
+
125
+ ## Example (Optional)
126
+ If code helps, show it - but as illustration of the principle, not copy-paste material.
127
+ ```
128
+
129
+ **Key**: A skill is REUSABLE if Claude can apply it to NEW situations, not just identical ones.
130
+
131
+ ## Related Commands
132
+
133
+ - /note - Save quick notes that survive compaction (less formal than skills)
134
+ - /ralph - Start a development loop with learning capture
@@ -0,0 +1,61 @@
1
+ ---
2
+ description: Save notes to notepad.md for compaction resilience
3
+ ---
4
+
5
+ # Note Skill
6
+
7
+ Save important context to `.omc/notepad.md` that survives conversation compaction.
8
+
9
+ ## Usage
10
+
11
+ | Command | Action |
12
+ |---------|--------|
13
+ | `/note <content>` | Add to Working Memory with timestamp |
14
+ | `/note --priority <content>` | Add to Priority Context (always loaded) |
15
+ | `/note --manual <content>` | Add to MANUAL section (never pruned) |
16
+ | `/note --show` | Display current notepad contents |
17
+ | `/note --prune` | Remove entries older than 7 days |
18
+ | `/note --clear` | Clear Working Memory (keep Priority + MANUAL) |
19
+
20
+ ## Sections
21
+
22
+ ### Priority Context (500 char limit)
23
+ - **Always** injected on session start
24
+ - Use for critical facts: "Project uses pnpm", "API in src/api/client.ts"
25
+ - Keep it SHORT - this eats into your context budget
26
+
27
+ ### Working Memory
28
+ - Timestamped session notes
29
+ - Auto-pruned after 7 days
30
+ - Good for: debugging breadcrumbs, temporary findings
31
+
32
+ ### MANUAL
33
+ - Never auto-pruned
34
+ - User-controlled permanent notes
35
+ - Good for: team contacts, deployment info
36
+
37
+ ## Examples
38
+
39
+ ```
40
+ /note Found auth bug in UserContext - missing useEffect dependency
41
+ /note --priority Project uses TypeScript strict mode, all files in src/
42
+ /note --manual Contact: api-team@company.com for backend questions
43
+ /note --show
44
+ /note --prune
45
+ ```
46
+
47
+ ## Behavior
48
+
49
+ 1. Creates `.omc/notepad.md` if it doesn't exist
50
+ 2. Parses the argument to determine section
51
+ 3. Appends content with timestamp (for Working Memory)
52
+ 4. Warns if Priority Context exceeds 500 chars
53
+ 5. Confirms what was saved
54
+
55
+ ## Integration
56
+
57
+ Notepad content is automatically loaded on session start:
58
+ - Priority Context: ALWAYS loaded
59
+ - Working Memory: Loaded if recent entries exist
60
+
61
+ This helps survive conversation compaction without losing critical context.